Também será descrito o processo de elicitação de requisitos e algumas etapas envolvidas, técnicas utilizadas e a metodologia JAD para agilizar o processo de desenvolvimento de software. Por fim, são citados alguns tipos de modelos para documentar requisitos e algumas ferramentas CASE para suporte automatizado.
Sistemas computacionais são produzidos para auxiliar o ser humano em tarefas diárias que necessitem de auxílio automatizado, sejam estas tarefas domésticas ou de grandes organizações. Contudo, sistemas computacionais precisam ser planejados para que sejam produzidos com qualidade e custo viável para ser obtido pelo cliente e atender as suas reais necessidades.
Para que se possa atender as reais necessidades do cliente é necessário extrair do mesmo o ambiente de suas necessidades, as características deste ambiente, limitações e os problemas que necessitam ser resolvidos. Estas informações devem ser extraídas do cliente e das demais pessoas que estão inseridas no contexto deste ambiente como pessoas beneficiadas das soluções computacionais ou a cultura do ambiente, que são os chamados stakeholders.
Além de adquirir estas informações, elas precisam ser preparadas para que sejam utilizadas nas próximas etapas do processo de desenvolvimento do software como projeto, implementação e testes de Software, aumentando o nível de detalhamento na medida em que vai se aprofundando nas etapas do desenvolvimento.
Além disso, essas informações precisam ser entendíveis na visão dos diversos tipos de stakeholders. Este processo de extração de informações das necessidades do cliente quanto ao uso de soluções computacionais é conhecido como elicitação de requisitos. De uma forma geral, damos o nome de requisitos às necessidades que o cliente descreve para utilidade de soluções computacionais.
Vale salientar que atualmente o ciclo de vida dos sistemas de software não termina na sua entrega, mas continua por prazo indeterminando de acordo com as necessidades de utilização deste software. Assim, para manter a utilidade do software, o software passa por atividades de manutenção.
Esta manutenção torna o processo de ciclo de vida do software indefinido e evolutivo. Assim, existe a necessidade de planejar e gerenciar as alterações de requisitos do cliente. Tem-se também a necessidade de executar atividades de revisão de requisitos que tenham sido mal planejados no processo de extração dos requisitos.
O processo de descoberta, análise, documentação, verificação e gerenciamento de requisitos é conhecido como engenharia de requisitos.
Engenharia de Requisitos
A engenharia de requisitos trata-se de uma etapa com diversos processos envolvidos para o planejamento e gerenciamento de requisitos do software. Trata-se de uma etapa contínua e presente em todo o processo de desenvolvimento e evolução do software.
A indústria de software não possui uma forma consistente de descrever o termo “requisito”. Requisitos descrevem informações sobre o que o software deve fazer, quais os seus serviços e suas restrições em termos de funcionamento. Então, os requisitos além de corresponderem às necessidades do cliente, também correspondem às características do ambiente, restrições do ambiente e demais informações relevantes e necessárias ao funcionamento e implantação do software.
Requisitos podem ser descritos sob duas perspectivas: requisitos do usuário e requisitos do sistema. Requisitos do usuário descrevem informações sobre os serviços ofertados ao usuário e suas restrições de funcionamento.
Requisitos do sistema descrevem como o software deve operar detalhando as funções, serviços e restrições do funcionamento. A primeira perspectiva é utilizada na comunicação com o usuário e a segunda é utilizada para comunicação com os desenvolvedores de software.
De um modo geral, os requisitos são classificados de duas formas: requisitos funcionais (RF) e requisitos não funcionais (RNF). Requisitos funcionais são aqueles que descrevem as funcionalidades do sistema, o comportamento funcional e as reações do sistema à entrada de dados, inclusive o que o sistema não deve fazer.
Já os requisitos não funcionais são utilizados para descrever as restrições do sistema no contexto de manter a sua qualidade. Estas restrições são impostas às funcionalidades do sistema para manter o seu desempenho e podem estar relacionadas à segurança, tecnologias utilizadas, usabilidade, éticos, operacionais, ambientais.
Algumas literaturas descrevem ainda requisitos de domínio e requisitos inversos. Os ...