Engenharia de requisitos
1) Defina requisitos e seus tipos.
R: Uma condição ou capacidade que deve ser cumprida ou possuída por um sistema ou componente do sistema para satisfazer um contrato, padrão, especificação ou outro documento formal imposto.
Funcionais
São os mais comuns
Definem detalhadamente:
As funcionalidades ou os serviços esperados do sistema.
Como o sistema deve reagir a entradas específicas.
Como o sistema deve se comportar em determinadas situações.
Restrições de projeto
São restrições relativas a fatores externos ao sistema, como:
O ambiente de desenvolvimento ou de operação.
Interfaces com outros sistemas.
Usuários do sistema.
Restrições de processo
São restrições relativas à forma como o desenvolvimento do sistema será conduzido, como:
Recursos disponíveis.
Documentação exigida.
Normas a serem seguidas.
Processo de desenvolvimento de software a ser seguido.
Não-funcionais
Quantificam determinados aspectos do comportamento do sistema
Podem ser mais críticos do que requisitos funcionais.
Se eles não forem atendidos, o sistema pode se tornar inútil.
Podem influenciar um ou mais requisitos funcionais, ou mesmo todos.
Devido à sua própria definição, requisitos não-funcionais devem ser mensuráveis.
2) Quais são as dificuldades para encontrar requisitos?
R:
Clientes e usuários nem sempre compreendem os processos de desenvolvimento de software em grau suficiente para produzir uma especificação de requisitos de implementação viável.
Especialistas no domínio podem entender tão bem a área que não tornam todos os requisitos explícitos.
Analistas de requisitos nem sempre entendem o domínio da aplicação de forma suficiente para produzir uma especificação de requisitos satisfatória.
Por não ser a especialidade dos engenheiros de software as características do domínio da aplicação podem não ser entendidas pelos profissionais que irão desenvolver a aplicação.
3) O que são Regras de negócio? Quais são os