Os requisitos, de modo geral, pordem ser classificados em dois grandes grupos: os requisitos funcionais e os não funcionais.
O requisitos funcionais são aqueles que descrevem o comportamento do sistema, suas ações para cada entrada, ou seja, é aquilo que descreve o que tem que ser feito pelo sistema. São o cérebro do projeto, já que descrevem as funcionalidades que o sistema deve dispor.
Os requisitos não funcionais são aqueles que expressam como deve ser feito (não confundir requisitos não funcionais com design). Em geral se relacionam com padrões de qualidade como confiabilidade, performance, robustez, etc. São muito importantes, pois definem se o sistema será eficiente para a tarefa que se propõe a fazer ou não. Um sistema ineficiente certamente não será usado. Neles também são apresentados restrições e especificações de uso para os requisitos funcionais.
Além desses dois, existem ainda os requisitos de interface, que como o nome já diz especifica as funcionalidades inerentes a interface do sistema com usuário.
Muitas vezes é difícil discernir entre quais requisitos são funcionais e quais não são. Essa pática vem com o tempo e com a experiência e, por isso, para quem não trabalha diretamente com análise, é sempre bom exercitar. Vejamos o exemplo:
Requisito:
O sistema deve prover um grid na tela, que permitirá a visualização de imagens. Esse grid poderá ser ativado ou desativado através do clique em um botão. O grid terá uma régua, cuja escala poderá estar tanto em centímetros como em polegadas, que ajudará no redimensionamento das imagens.
Os requisitos não foram especificados da maneira correta no exemplo acima. É o que chamamos de aglutinação de requisitos. Temos então que seprarar requisitos funcionais, não funcionais e de interface. No nosso caso, o maneira correta seria:
- Funcional: O sistema deve prover um grid para a visualização de imagens. Este grid poderia ser ativado ou desativado.
- Não funcional: A escala do grid poderá estar tanto em centímetros com em polegadas.
- Interface: Deve haver um botão responsável por habilitar e desabilitar o grid.
O processo de análise é uma das fases mais complexas do projeto de software. Vamos ainda continuar falando sobre o processo de elicitação de requisitos e de análise em geral em próximas ocasiões.
Até a próxima!
25 comentários:
Muito bom, eu estava procurando algo sobre requisitos não funcionais e esta coluna esclareceu bastante minhas dúvidas. Obrigado!
Está muito bom a sua pesquisa. Só não ficou bem claro quando se classificou os requisitos de interface como não sendo requisitos não-funcionais. Muitas bibliografias atuais e algumas menos atuais englobam os requisitos de interface no conjunto dos requisitos não-funcionais. Seria bom se você postasse a bibliografia que você utilizou para escrever esse comentário.
Texto legal, sempre tenho que dar uma pesquisada sobre o assunto quando vou capturar requisitos. Dessa vez me deparei com seu post bastante informativo.
Estou na fase de análise do meu projeto de conclusão de curso nesse momento, anotando os requisitos para separa-los em funcionais e não-funcionais.
Goste do tema, estava mesmo a procura de requisitos funcionais e nao funcionais. E esclareceu as minhas duvidas.
Requisitos funcionais e não funcionais. Há algum motivo especial para separá-los, visto que ambos são requisitos e deverão ser implementados? Por ser não funcional, diminui sua importancia?
Muito bom, está me ajundado muito. publique mais assuntos
Gostava de saber como se faz uma tabela de impacto.
muito obrigada
ficou um guia muito bom, falou o necessário sem enrrolar e atingindo o ponto chave desse assunto, Parabens.
Eduardo disse...
Requisitos funcionais e não funcionais. Há algum motivo especial para separá-los, visto que ambos são requisitos e deverão ser implementados? Por ser não funcional, diminui sua importancia?
26/08/2008 11:36:00
R> eles teem que ser separados pois os requisitos funcionais é o que o sistema vai fazer, suas funcionalidades... enfim, o que vc quer que ele faça??? uma boa maneira de definir requisitos funcionais é utilizando o préfixo: o sistema deve... depois vc coloca um verbo e complemento como por exemplo: o sistema deve permitir o cadastro de alunos.
os requisitos não funcionais são complementos ou restrições do sistema de como eles devem realizar seus requisitos funcionais.
citarei um exemplo se baseando no exemplo acima: apenas coordenadores podem cadastrar clientes.
bem, isso foi apenas um conceito básico hehe.
abraços e continuem assim.
aaa... cara vc salvou-me algumas horas de pesquisa... vc foi direto ao ponto ... valew
Ótimo e bem objetivo!
Parabéns!
oi, achei boa a tua pesquisa porque estou fazendo um trabalho sobre requisitos e eel me ajudou bastanteforça e continue fazendo esse trabalho.gracias
Beleza! Nada contra! Mas achei um tanto superficial.
Requisitos funcionais descrevem o comportamento, o que o sistema tem que atender, o que o usuário deseja obter de resultado, o que o usuário pode entrar de dados, que tipos de interação vai ocorrer entre o usuário e o sistema e o resultado esperado desta.
Requisitos não funcionais estão relacionados a itens como: confiabilidade - aí entrariam restrições de banco de dados que, por exemplo, suportassem transação; restrições de codificação, que fosse escrito em linguagem orientada a objetos e que a aplicação fosse dividida em camadas aumentando a escalabilidade, extensibilidade e facilitando a manutenção, entre outros... - não vou aqui fazer um artigo completo -.
Resumindo: faltou exemplos do que foi dito e um aprofundamento maior em cada detalhe.
Exemplo simples e direto!
Muito bom.
Gostei muito do trabalho, mas concordei com as ponderaÇões sobre requisitos de interface, que para mim estão no mesmo grupo não funcionais.
Achei aqui, eu tenho que fazer a monografia. Valeu!
Saberia me dizer qual dos dois requisitos deve ser focado em um primeiro momento. Se por exemplo na etapa do levantamento de requisitos eu sugerisse que os envolvidos se concentrassem exclusivamente nos requisitos funcionais, estaria errado ? Obrigado !
Boa, sempre bom ter mais informações relacionados à area de engenharia de requisitos.
Excelente post! Parabéns!
Obrigado pela aulinha. Achei o exemplo exposto bem eficiente.
Muito bom, esclareceu demais.
Valeu! Esclareceu demais!
Otimo.
Otimo.
E muito bom o conteúdo, ajudou bastante!
Muito bom, me ajudou muito !!
Obrigado.
Postar um comentário