4. Requisitos de Software e Engenharia de Requisitos - franAnder/Engenharia-de-software-FACIMP GitHub Wiki
Requisitos De Software
A etapa referente á engenharia de requisitos começa com a concepção, etapa em que se define a abrangência e a natureza do problema a ser resolvido. Na sequência, há o levantamento de informações, que ajuda os envolvidos a definir o que é necessário e, em seguida, temos a etapa de elaboração, em que os requisitos básicos são refinados e modificados.
Á medida que as pessoas envolvidas vão definindo o problema, ocorre a negociação, em que são estabelecidas as prioridades, o que é essencial e quando deverá ser entregue. Finalmente, o problema é especificado e validado para garantir que seu entendimento sobre o problema e o dos envolvidos coincidam. Na prática, pelo menos, deveria funcionar assim. No entanto, durante esse processo, o entendimento é alterado, pois as pessoas começam a ter uma compreensão melhor da solução e mudanças pode ser solicitadas. Mesmo que a especificação do problema ou a solução a ser desenvolvida seja identificada, poderão haver muitas discussões entre o cliente e o profissional responsável pelo levantamento de requisitos. De acordo com sommerville(2011), os requisitos de um sistema são descrições do que o sistema deve fazer, os serviços oferecidos e as restrições do seu funcionamento. Esses requisitos refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada, como controlar um dispositivo, colocar um pedido ou encontrar informações.
- O termo “requisito” não é usado de forma consistente pela indústria desoftware. Há casos em que o requisito é uma declaração abstrata em alto nível, um serviço que o sistema deve oferecer, uma restrição do sistema, uma definição detalhada e formal de um recurso ou uma função do sistema.
O levantamento de requisitos é crítico para o processo de construção de software. Equívocos nessa etapa comprometerão as demais subsequentes. Um dos problemas que surgem são as falhas em não fazer uma clara separação entre esses diferentes níveis de descrição. É sugerida uma distinção entre os "requisitos de usuário" que expressará os requisitos abstratos de altos nível e "requisitos de sistema", que expressará a descrição detalhada do que o sistema deve fazer.