SlideShare uma empresa Scribd logo
1 de 10
Este trabalho trata-se da engenharia de software onde mais especificamente requisitos de
software ,e também descreve algumas dificuldades existentes e apresenta praticas para o
auxilio de elaboração dos requisitos necessários para o sistema solicitado ao usuário final.



Software é toda a parte logica que o usuário pode ver e usar em um computador , a analise
de sistemas identifica problemas existentes no mesmo, e apresenta meios para soluções.

Após ser feita a analise do computador , é realizado o escorpo onde os requisitos de
software são definidos.



Os requisitos de um sistema

Os requisitos de um sistema refletem as necessidades dos clientes de um sistema que
ajuda a resolver algum problema, por exemplo, controlar um dispositivo, enviar um
pedido ou encontrar informações. O processo de descobrir, analisar, documentar e
verificar esses serviços e restrições é chamado de engenharia de requisitos( R E –
RequirementsEngineering).” (Ian Sommerville/2007)



Requisitos funcionais

São declarações de serviços que o sistema fornece, como o mesmo deve reagir as estradas
especificas e como ele deve se comportar em uma determinada situação. Em alguns casos
o mesmo pode funcionar também estabelecer o que o sitema não deve fazer.

Requisitos não funcionais

Os requisitos não funcionais são aqueles diretamente relacionados as funções especificas
fornecidas pelo sistema. Esses requisitos podem especificar desempenho, proteção ,
disponibilidade entre outras propriedades emergentes de sistema.

Requisitos não funcionais determinam o processo que deve ser usado para desenvolver o
sistema. Exemplo: as especificações no padrão de qualidade, o tópico de ferramentas CASE
e uma descrição do processo que deve ser seguido.

        Os requisitos não funcionais surgem pela as necessidades do usuário final, às
restrições de orçamento, as políticas organizacionais

* Requisitos de produto: especificam o comportamento do produto. Entre eles estão
requisitos de desempenho, confiabilidade, portabilidade e usabilidade.

  * Requisitos organizacionais: este requisito é derivado de políticas da organização do
cliente e do desenvolvedor, exemplo requisito de implementação como a linguagem de
programação ou o método de projeto usado e requisitos de entrega que especificam
quando o produto e a sua documentação devem ser entregues.

  * Requisitos externos: são requisitos derivados de fatores externos ao sistema e seu
processo de desenvolvimento. Podem incluir requisitos de interoperabilidade, requisitos
legais e requisitos éticos.
Os tipos de requisitos não funcionais são:



  * Requisitos de produto: neste requisito ele montra o comportamento do produto. Entre
eles estão requisitos de desempenho, confiabilidade e usabilidade.

  * Requisitos organizacionais: neste requisito é derivado de políticas da organização do
cliente e do desenvolvedor, exemplo: requisito de implementação como a linguagem de
programação ou o método de projeto usado e requisitos de entrega que especificam
quando o produto e a sua documentação devem ser entregues.

  * Requisitos externos: são requisitos derivados de fatores externos ao sistema e seu
processo de desenvolvimento. Podem incluir requisitos de interoperabilidade, requisitos
legais e requisitos éticos.



Requisitos de Usuário

Os requisitos de usuário de um sistema se define pela descrição do que o sistema deve
fazer (requisitos funcionais e não funcionais) que seja compreendido pelo usuário não
final . Deve ser escrito em uma linguagem simples.

       Entretanto, alguns problemas podem surgir com essa especificação em linguagem
natural. São eles: falta de clareza; confusão de requisitos e fusão de requisitos.

       O requisito de usuário deve simplesmente enfocar apenas características
essenciais ao sistema. Requisitos muito detalhado geralmente limitam as soluções para os
problemas e são difíceis de serem compreendidos.



Requisitos de sistema



Os requisitos de sistemas são versões expandidas dos requisitos de usuários usados pelos
engenheiros de software como ponto de partida para o projeto de sistema.” (Sommerville
– 2007).

São descrições detalhados pelos usuários sobre o sistema que servem como base para a
implementação com a especificação completa e consistente de todo o sistema.

       Uso da linguagem estruturada, que é padronizada, a torna com a liberdade mais
limitada e com isso mantém a facilidade de expressão e compreensão .

Podemos também usar tabelas ou modelos gráficos para facilitar o entendimento do
sistema de como é processada a informação, como a informação é armazenada e as
sequencias de ações que serão tomadas de maneira bem detalhada e assim reduzir as
dúvidas do usuário sobre o funcionamento do sistema.
Documentos de Requisitos


Como resultado do processo de levantamento de requisitos é feito o documento de requisitos
do sistema. Este documento contém todas as especificações de todos os requisitos funcionais
e não funcionais do software, incluindo as capacidades do produto, os recursos disponíveis, os
benefícios e os critérios de aceitação ou não.
Características do documento de requisitos


O documento de requisitos do sistema deve ser composto por sentenças em linguagem
natural, seguindo determinados padrões:


1) Iniciar com “O sistema deve”.
2) Deve-se usar frases curtas


• Exemplo: “O sistema deve rodar em microcomputadores com memorias ram acima de 2 gb”
SCRUM


O SCRUM é um modelo de desenvolvimento ágil de software para fornece métodos para se
definir o planejamento, os principais papéis de pessoas e a forma de trabalho. A ideia do
SCRUM é justamente definir papéis bem específicos para as pessoas envolvidas no projeto ,ou
seja, o que cada uma vai ter que fazer para o desenvolvimento do software .


Em geral e de forma reduzida, esta metodologia funciona da seguinte forma:


 1. O produto é definido: quais são realmente seus requisitos? O que realmente o cliente
deseja ?


 2. O Proprietário do Produto define quais são as funcionalidades do programa que mais
importam.


 3. Com as prioridades definidas, uma pessoa é definida para ser o ScrumMaster, uma
espécie de coordenador do projeto. O ScrumMaster, junto com o Proprietário do Produto e o
Time de desenvolvimento definem o que chamamos de Sprints.




RUP


O Processo Unificado da Rational conhecido como RUP , é um processo de engenharia de
software criado para apoiar o desenvolvimento orientado a objetos, fornecendo uma forma
sistemática para se obter vantagens no uso da UML. Foi criado pela Rational Software
Corporation e adquirido em fevereiro de 2003 pela IBM. O principal objetivo do RUP é atender
as necessidades dos usuários garantindo uma produção de software de alta qualidade que
cumpra um cronograma e um orçamento exato. Assim, o RUP mostra como o sistema será
construído na fase de implementação, gerando o modelo do projeto . O RUP define
perfeitamente quem é responsável pelo que, como as coisas deverão ser feitas e quando
devem ser realizadas, descrevendo todas as metas de desenvolvimento especificamente para
que sejam alcançadas.


O RUP organiza o desenvolvimento de software em quatro fases, onde são tratadas questões
sobre planejamento, levantamento de requisitos, análise, implementação, teste e implantação
do software. Cada fase tem um papel fundamental para que o objetivo seja cumprido,
distribuídos entre vários profissionais como o Analista de sistema, Projetista, Projetista de
testes, entre outros.
Fases do RUP


1-Fase de Concepção / Iniciação: Nesta fase do RUP abrange as tarefas de comunicação com
o cliente e planejamento. É feito um plano de projeto avaliando todos os riscos possíveis , as
estimativas de custo e prazos, estabelecendo as prioridades, levantamento dos requisitos do
sistema e preliminarmente analisá-lo.


2-Fase de Elaboração: O objetivo desta fase é analisar de forma mais detalhada a análise do
domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto
começa a ter sua forma básica. Por exemplo as duvidas mais apontadas são “O plano do
projeto é confiável?”, “Os custos são admissíveis?” todas e mais duvidas são esclarecidas
nesta etapa.


3-Fase de Construção: O principal objetivo desta fase é a construção do sistema de software,
com foco no desenvolvimento de componentes e outros recursos do sistema. É na fase de
Construção que a maior parte de codificação ocorre.


4-Fase de Transição: Abrange a entrega do software ao usuário e a fase de testes. O objetivo
desta fase é disponibilizar o sistema, tornando-o disponível e compreendido pelo usuário final.




Xp


O método XP, do inglês eXtremingProgramming, é uma proposta de desenvolvimento ágil e se
repete diversas vezes para se chegar a um resultado. O método XP propõe um processo leve,
e com a entrega constante de pequenas partes da funcionalidade do software. As partes
devem ser incrementadas e requerem a melhoria constante do código .


         A possibilidade de entrega rápida do código é um dos fatores de sucesso do XP. Isto
no entanto, apenas pode ser feito com o envolvimento constante do cliente que se torna um
participante da equipe de desenvolvimento. Esta é uma das características importantes para o
método funcionar bem. No entanto, nem sempre o cliente está disponível para a participação
ativa.


         Uma das características importantes do XP é que não existe um processo de design
tradicional com a elaboração de modelos da arquitetura do software.
O retrabalho ou pré-fabricação é uma atividade fundamental e necessária para o XP funcionar.
Mesmo que o código esteja 100% testado, para viabilizar reuso, ele precisa ser revisto para
remover redundâncias, retirar funcionalidades desnecessárias e modificar arquitetura . O
retrabalho do código ao longo de todo o ciclo de vida reduz o tempo total de entrega do código
e aumenta a qualidade do software produzido.


Regras e Práticas


Planejando


 * Planejando liberações e pequenas liberações


 * Dividir projetos em diversas partes


* Medindo velocidade do projeto


   * Reuniões diárias


Projetando


 * Simplicidade


 * Metáfora


 * Re-fabricar




Codificando


 * O cliente deve estar sempre disponível.


 * Programação em pares.


 * Codificar de acordo com padrões acordados.


 * Codificar testes de unidade primeiro.


 * Integrar com frequência.


 * O código é propriedade coletiva.
.




Testando


    * Todo código deve ter os testes de unidade.


    * Cada unidade deve ser testada antes de liberada.


    * Quando um erro é encontrado, testes devem ser realizados.


    * Testes de aceitação devem ser freqüentes.


          A programação extrema tem sido bem sucedida em projetos pequenos com times
pequenos. Relatos mostram que para projetos grandes o método XP não é recomendado.
Conclusão
Bibliografia

SOMMERVILLE, Ian – Engenharia de Software. 8ª Ed. Pearson Education, 2007.

CARDOZO, Eleri – Requisitos de Software 2ª parte. FEEC/Unicamp, 2007.

KOTONYA, Gerald - http://www.scc.lancs.ac.uk/

IEEE Std 830-1998,

IEEE RecommendedPractice for Software RequirementsSpecifications -
http://www.ieee.org.br/

* http://www.agilealliance.org/article/articles_by_category/17

 * http://www.codeproject.com/KB/architecture/scrum.aspx

Mais conteúdo relacionado

Mais procurados

A importância da análise de requisitos e casos de uso
A importância da análise de requisitos e casos de usoA importância da análise de requisitos e casos de uso
A importância da análise de requisitos e casos de usoHussani Oliveira
 
Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado Julia
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Engenharia de software i 3 - processos de engenharia de requisitos
Engenharia de software i   3 - processos de engenharia de requisitosEngenharia de software i   3 - processos de engenharia de requisitos
Engenharia de software i 3 - processos de engenharia de requisitosWillian Moreira Figueiredo de Souza
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02Franklin Matos Correia
 
Engenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEngenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEduardo Castro
 

Mais procurados (20)

Analise sistemas 06
Analise sistemas 06Analise sistemas 06
Analise sistemas 06
 
A importância da análise de requisitos e casos de uso
A importância da análise de requisitos e casos de usoA importância da análise de requisitos e casos de uso
A importância da análise de requisitos e casos de uso
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Gerência de Requisitos
Gerência de RequisitosGerência de Requisitos
Gerência de Requisitos
 
Analise sistemas 04
Analise sistemas 04Analise sistemas 04
Analise sistemas 04
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02
 
Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Engenharia de software i 3 - processos de engenharia de requisitos
Engenharia de software i   3 - processos de engenharia de requisitosEngenharia de software i   3 - processos de engenharia de requisitos
Engenharia de software i 3 - processos de engenharia de requisitos
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Engenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEngenharia Requisitos - Método RON
Engenharia Requisitos - Método RON
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 

Semelhante a Requisitos de Software

aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqpatriciaalipiosilva
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAlexandreLisboadaSil
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfAthena542429
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de SoftwareRobson Silva Espig
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaLucasBastos305659
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Os aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosJosé Vieira
 
ASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOSASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOSJaffer Veronezi
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...André Agostinho
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasluanrjesus
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
 

Semelhante a Requisitos de Software (20)

Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise req
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptx
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software Moderna
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Os aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de RequisitosOs aspectos mais relevantes da Engenharia de Requisitos
Os aspectos mais relevantes da Engenharia de Requisitos
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
ASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOSASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOS
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Conceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemasConceito de analise de desenvolvivento de sistemas
Conceito de analise de desenvolvivento de sistemas
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
FDD
FDDFDD
FDD
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 

Requisitos de Software

  • 1. Este trabalho trata-se da engenharia de software onde mais especificamente requisitos de software ,e também descreve algumas dificuldades existentes e apresenta praticas para o auxilio de elaboração dos requisitos necessários para o sistema solicitado ao usuário final. Software é toda a parte logica que o usuário pode ver e usar em um computador , a analise de sistemas identifica problemas existentes no mesmo, e apresenta meios para soluções. Após ser feita a analise do computador , é realizado o escorpo onde os requisitos de software são definidos. Os requisitos de um sistema Os requisitos de um sistema refletem as necessidades dos clientes de um sistema que ajuda a resolver algum problema, por exemplo, controlar um dispositivo, enviar um pedido ou encontrar informações. O processo de descobrir, analisar, documentar e verificar esses serviços e restrições é chamado de engenharia de requisitos( R E – RequirementsEngineering).” (Ian Sommerville/2007) Requisitos funcionais São declarações de serviços que o sistema fornece, como o mesmo deve reagir as estradas especificas e como ele deve se comportar em uma determinada situação. Em alguns casos o mesmo pode funcionar também estabelecer o que o sitema não deve fazer. Requisitos não funcionais Os requisitos não funcionais são aqueles diretamente relacionados as funções especificas fornecidas pelo sistema. Esses requisitos podem especificar desempenho, proteção , disponibilidade entre outras propriedades emergentes de sistema. Requisitos não funcionais determinam o processo que deve ser usado para desenvolver o sistema. Exemplo: as especificações no padrão de qualidade, o tópico de ferramentas CASE e uma descrição do processo que deve ser seguido. Os requisitos não funcionais surgem pela as necessidades do usuário final, às restrições de orçamento, as políticas organizacionais * Requisitos de produto: especificam o comportamento do produto. Entre eles estão requisitos de desempenho, confiabilidade, portabilidade e usabilidade. * Requisitos organizacionais: este requisito é derivado de políticas da organização do cliente e do desenvolvedor, exemplo requisito de implementação como a linguagem de programação ou o método de projeto usado e requisitos de entrega que especificam quando o produto e a sua documentação devem ser entregues. * Requisitos externos: são requisitos derivados de fatores externos ao sistema e seu processo de desenvolvimento. Podem incluir requisitos de interoperabilidade, requisitos legais e requisitos éticos.
  • 2. Os tipos de requisitos não funcionais são: * Requisitos de produto: neste requisito ele montra o comportamento do produto. Entre eles estão requisitos de desempenho, confiabilidade e usabilidade. * Requisitos organizacionais: neste requisito é derivado de políticas da organização do cliente e do desenvolvedor, exemplo: requisito de implementação como a linguagem de programação ou o método de projeto usado e requisitos de entrega que especificam quando o produto e a sua documentação devem ser entregues. * Requisitos externos: são requisitos derivados de fatores externos ao sistema e seu processo de desenvolvimento. Podem incluir requisitos de interoperabilidade, requisitos legais e requisitos éticos. Requisitos de Usuário Os requisitos de usuário de um sistema se define pela descrição do que o sistema deve fazer (requisitos funcionais e não funcionais) que seja compreendido pelo usuário não final . Deve ser escrito em uma linguagem simples. Entretanto, alguns problemas podem surgir com essa especificação em linguagem natural. São eles: falta de clareza; confusão de requisitos e fusão de requisitos. O requisito de usuário deve simplesmente enfocar apenas características essenciais ao sistema. Requisitos muito detalhado geralmente limitam as soluções para os problemas e são difíceis de serem compreendidos. Requisitos de sistema Os requisitos de sistemas são versões expandidas dos requisitos de usuários usados pelos engenheiros de software como ponto de partida para o projeto de sistema.” (Sommerville – 2007). São descrições detalhados pelos usuários sobre o sistema que servem como base para a implementação com a especificação completa e consistente de todo o sistema. Uso da linguagem estruturada, que é padronizada, a torna com a liberdade mais limitada e com isso mantém a facilidade de expressão e compreensão . Podemos também usar tabelas ou modelos gráficos para facilitar o entendimento do sistema de como é processada a informação, como a informação é armazenada e as sequencias de ações que serão tomadas de maneira bem detalhada e assim reduzir as dúvidas do usuário sobre o funcionamento do sistema.
  • 3. Documentos de Requisitos Como resultado do processo de levantamento de requisitos é feito o documento de requisitos do sistema. Este documento contém todas as especificações de todos os requisitos funcionais e não funcionais do software, incluindo as capacidades do produto, os recursos disponíveis, os benefícios e os critérios de aceitação ou não.
  • 4. Características do documento de requisitos O documento de requisitos do sistema deve ser composto por sentenças em linguagem natural, seguindo determinados padrões: 1) Iniciar com “O sistema deve”. 2) Deve-se usar frases curtas • Exemplo: “O sistema deve rodar em microcomputadores com memorias ram acima de 2 gb”
  • 5. SCRUM O SCRUM é um modelo de desenvolvimento ágil de software para fornece métodos para se definir o planejamento, os principais papéis de pessoas e a forma de trabalho. A ideia do SCRUM é justamente definir papéis bem específicos para as pessoas envolvidas no projeto ,ou seja, o que cada uma vai ter que fazer para o desenvolvimento do software . Em geral e de forma reduzida, esta metodologia funciona da seguinte forma: 1. O produto é definido: quais são realmente seus requisitos? O que realmente o cliente deseja ? 2. O Proprietário do Produto define quais são as funcionalidades do programa que mais importam. 3. Com as prioridades definidas, uma pessoa é definida para ser o ScrumMaster, uma espécie de coordenador do projeto. O ScrumMaster, junto com o Proprietário do Produto e o Time de desenvolvimento definem o que chamamos de Sprints. RUP O Processo Unificado da Rational conhecido como RUP , é um processo de engenharia de software criado para apoiar o desenvolvimento orientado a objetos, fornecendo uma forma sistemática para se obter vantagens no uso da UML. Foi criado pela Rational Software Corporation e adquirido em fevereiro de 2003 pela IBM. O principal objetivo do RUP é atender as necessidades dos usuários garantindo uma produção de software de alta qualidade que cumpra um cronograma e um orçamento exato. Assim, o RUP mostra como o sistema será construído na fase de implementação, gerando o modelo do projeto . O RUP define perfeitamente quem é responsável pelo que, como as coisas deverão ser feitas e quando devem ser realizadas, descrevendo todas as metas de desenvolvimento especificamente para que sejam alcançadas. O RUP organiza o desenvolvimento de software em quatro fases, onde são tratadas questões sobre planejamento, levantamento de requisitos, análise, implementação, teste e implantação do software. Cada fase tem um papel fundamental para que o objetivo seja cumprido, distribuídos entre vários profissionais como o Analista de sistema, Projetista, Projetista de testes, entre outros.
  • 6. Fases do RUP 1-Fase de Concepção / Iniciação: Nesta fase do RUP abrange as tarefas de comunicação com o cliente e planejamento. É feito um plano de projeto avaliando todos os riscos possíveis , as estimativas de custo e prazos, estabelecendo as prioridades, levantamento dos requisitos do sistema e preliminarmente analisá-lo. 2-Fase de Elaboração: O objetivo desta fase é analisar de forma mais detalhada a análise do domínio do problema, revisando os riscos que o projeto pode sofrer e a arquitetura do projeto começa a ter sua forma básica. Por exemplo as duvidas mais apontadas são “O plano do projeto é confiável?”, “Os custos são admissíveis?” todas e mais duvidas são esclarecidas nesta etapa. 3-Fase de Construção: O principal objetivo desta fase é a construção do sistema de software, com foco no desenvolvimento de componentes e outros recursos do sistema. É na fase de Construção que a maior parte de codificação ocorre. 4-Fase de Transição: Abrange a entrega do software ao usuário e a fase de testes. O objetivo desta fase é disponibilizar o sistema, tornando-o disponível e compreendido pelo usuário final. Xp O método XP, do inglês eXtremingProgramming, é uma proposta de desenvolvimento ágil e se repete diversas vezes para se chegar a um resultado. O método XP propõe um processo leve, e com a entrega constante de pequenas partes da funcionalidade do software. As partes devem ser incrementadas e requerem a melhoria constante do código . A possibilidade de entrega rápida do código é um dos fatores de sucesso do XP. Isto no entanto, apenas pode ser feito com o envolvimento constante do cliente que se torna um participante da equipe de desenvolvimento. Esta é uma das características importantes para o método funcionar bem. No entanto, nem sempre o cliente está disponível para a participação ativa. Uma das características importantes do XP é que não existe um processo de design tradicional com a elaboração de modelos da arquitetura do software.
  • 7. O retrabalho ou pré-fabricação é uma atividade fundamental e necessária para o XP funcionar. Mesmo que o código esteja 100% testado, para viabilizar reuso, ele precisa ser revisto para remover redundâncias, retirar funcionalidades desnecessárias e modificar arquitetura . O retrabalho do código ao longo de todo o ciclo de vida reduz o tempo total de entrega do código e aumenta a qualidade do software produzido. Regras e Práticas Planejando * Planejando liberações e pequenas liberações * Dividir projetos em diversas partes * Medindo velocidade do projeto * Reuniões diárias Projetando * Simplicidade * Metáfora * Re-fabricar Codificando * O cliente deve estar sempre disponível. * Programação em pares. * Codificar de acordo com padrões acordados. * Codificar testes de unidade primeiro. * Integrar com frequência. * O código é propriedade coletiva.
  • 8. . Testando * Todo código deve ter os testes de unidade. * Cada unidade deve ser testada antes de liberada. * Quando um erro é encontrado, testes devem ser realizados. * Testes de aceitação devem ser freqüentes. A programação extrema tem sido bem sucedida em projetos pequenos com times pequenos. Relatos mostram que para projetos grandes o método XP não é recomendado.
  • 10. Bibliografia SOMMERVILLE, Ian – Engenharia de Software. 8ª Ed. Pearson Education, 2007. CARDOZO, Eleri – Requisitos de Software 2ª parte. FEEC/Unicamp, 2007. KOTONYA, Gerald - http://www.scc.lancs.ac.uk/ IEEE Std 830-1998, IEEE RecommendedPractice for Software RequirementsSpecifications - http://www.ieee.org.br/ * http://www.agilealliance.org/article/articles_by_category/17 * http://www.codeproject.com/KB/architecture/scrum.aspx