Na maioria dos processos de produção de software a atividade de levantamento de requisitos é composta pelas seguintes tarefas: elicitação, análise, especificação e validação. O principal objetivo desta atividade é expressar as necessidades e restrições necessárias em um produto caracterizado como software.
Os requisitos podem ser divididos em dois grandes grupos: funcionais e não-funcionais.
Os requisitos funcionais expressam o comportamento de um software. As informações de entrada, o processamento e a saída emitida por uma funcionalidade são informações necessárias para especificar o requisito do referido grupo.
Já os requisitos não funcionais mapeiam os aspectos qualitativos de um software, por exemplo: performance (tempo de resposta); segurança (restrições de acesso, privilégios); perspectiva do usuário (padrão das cores, disposição dos objetivos na tela); comunicabilidade (e-mail, VoIP, Browser); usabilidade e portabilidade (a aplicação deve rodar em vários tipos de aplicativos: móveis, desktop, note). Este grupo é de suma importância e não deve ser desprezado durante o processo de produção de software. Como qualquer outro tipo de requisito, ele deve ser levantado, analisado, especificado e validado.
É importante salientar que a validação de um requisito não funcional requer a aplicação de atributos quantitativos. Porém, em alguns casos, esse tipo de atributo não é mapeado facilmente. Imagine que você tenha validar um requisito não funcional caracterizado pela perspectiva do usuário em uma aplicação que será acessada por milhares de pessoas. Neste caso um padrão de cores pode agradar alguns e desagradar outros.
É de fundamental importância encontrar um mecanismo que quantifique um requisito não funcional. Partimos do seguinte exemplo: Um requisito não funcional qualquer estabelece que o software tem que ter um bom tempo de resposta. Para quantificar esse requisito, pergunte ao usuário o que ele considera um bom tempo de resposta. Uma variação ente 0,5 e 2 segundos é aceitável?
Enfim, os requisitos não funcionais são de suma importância e podem delimitar o sucesso ou o fracasso de um projeto de software.
Abraços
J. A. Fabri
Oi Guto
Será que você não se enganhou no título deste post? Digo porque o enfoque do texto está nos requisitos “não funcionais”, mas no título você deixou “Os requisitos funcionais em um projeto de software”.
Até, abraços
Fernanda Salvalaggio
Fernanda,
Obrigado pelo alerta enviado.
abraços
Guto
Sou uma assassina da língua portugues rsrs…. corrigindo: enganou e não enganhou…
Valeu cara pela ajuda, por meio deste consegui fazer parte de um documento de projeto!!! Thankx
Estava com algumas dúvidas sobre requisitos não-funcionais, seu post valeu muito.
Obrigado Augusto!
Elma