Please enable JavaScript.
Coggle requires JavaScript to display documents.
UE 5 Documentação de Requisitos Usando Linguagem Natural (Construção de…
UE 5 Documentação de Requisitos Usando Linguagem Natural
Efeitos da Linguagem
Efeitos transformacionais
As alterações de percepção e representação da realidade são inerentes à linguagem natural
Tipos
Nominalização
Através da nominalização, um processo é convertido em um evento
Exemplo: Em caso de crash do sistema, será realizado um restart do sistema
O processo deve ser explicitamente definido pelo termo utilizado
Devem ser utilizadas somente se o processo subjacente estiver completamente definido
A definição de um termo normalizado não deve deixar qualquer margem de interpretação dos processos
Deve representar o processo de forma precisa, incluindo quaisquer exceções que possam ocorrer, bem como todos os parâmetros de entrada e saída
Os termos crash do sistema e restar descrevem processos que deveriam ser analisados com maior precisão
Substantivos sem ponto de referência
Exemplo Errado: Os dados deverão ser exibidos para o usuário no terminal
Exemplo Correto: O sistema deverá exibir os dados de faturamento para o usuário cadastrado no terminal em que ele estiver logado
Que dados? Que usuário? Que Terminal?
Quantificadores universais
Especificam quantidades e frequências
Agrupam um conjunto de objetos e fazem uma declaração sobre o comportamento desse grupo
Existe o risco do comportamento ou da propriedade especificada não se aplicar a todos os objetos do conjunto especificado
Exemplo: O sistema deverá mostrar todos os conjuntos de dados em cada submenu
Nesse caso, é preciso fazer as seguintes perguntas: Realmente em cada submenu? Realmente todos os conjuntos de dados?
Condições formuladas de forma incompleta
São requisitos contendo condições que especificam o comportamento que deve ocorrer quando a condição for atendida
Os requisitos devem especificar também qual comportamento deve ocorrer se a condição não for atendida
Exemplo Errado: O sistema do restaurante deverá oferecer todas as bebidas para um cliente registrado com mais de 20 anos
E os clientes que tiverem menos de 20 anos?
Exemplo correto: O sistema do restaurante deve oferecer:
Todas as bebidas não alcoólicas para qualquer usuário registrado com menos de 21 anos
Todas as bebidas, inclusive as alcoólicas, para qualquer usuário acima de 20 anos
Formulações verbais de forma incompleta
Alguns verbos de processo requerem mais de um substantivo para serem especificados de forma completa
O uso de palavras de processo especificados de forma incompleta pode ser evitado ou minimizado na maioria das vezes se os requisitos passarem a ser formulados na voz ativa e não na voz passiva
Exemplo Errado (Voz passiva): Para logar um usuário, os dados de login são inseridos
Exemplo Certo (Voz ativa): O sistema deve permitir ao usuário inserir seu username e senha usando o teclado do terminal
Os requisitos são definidos e lidos por pessoas com diferentes níveis de conhecimentos, diferentes origens sociais e diferentes experiências
A diversidade entre pessoas envolvidas nos processos de desenvolvimento pode levar a mal-entendidos, visto que as pessoas interpretam informações de modo diferente
Durante tal processo ocorrem os chamados "Efeitos Transformacionais"
A linguagem natural tem a vantagem de (supostamente) não exigir tempo de preparo para ser lida e compreendida pelos stakeholders
Requisitos elicitados para o sistema a ser desenvolvido são frequentemente documentados usando linguagem natural
Construção de Requisitos Usando Templates de Sentenças
São de fácil aprendizado e sua aplicação reduz os efeitos de linguagem de requisitos
Passo a passo para a aplicação correta dos templates de requisitos
1 - Determinar a obrigação legal
Deve ser determinado o grau de obrigatoriedade legal para um requisito
Geralmente existem: requisitos legalmente obrigatórios (deverá), os requisitos recomendados com caráter de urgência (deveria) e requisitos futuros (irá)
2 - Determinar o núcleo do requisito
É a funcionalidade que ele especifica
Por exemplo: imprimir, salvar, colar ou calcular
Essa funcionalidade é denominada de processo
Processos são atividades e somente podem ser descritos por meio de verbos
3 - Caracterizar a atividade do sistema
Para requisitos funcionais, a atividade do sistema pode ser classificada como um dos seguintes tipos relevantes:
Atividade autônoma de sistema
O sistema executa o processo de forma autônoma, ou seja, não depende de ninguém além dele mesmo
Template: O sistema <nome do sistema> deverá <verbo de processo>
Interação com usuário
O sistema fornece o processo como um serviço para o usuário
Template: O sistema <nome do sistema> deverá/deveria/irá fornecer <a quem> a capacidade de <verbo de processo>
Requisito de interface
O sistema executa um processo na dependência de uma terceira parte. O sistema é passivo e espera um evento externo (por exemplo, outro sistema)
Template: o sistema <nome do sistema> deverá/deveria/irá ser capaz de <verbo de processo>
4 - Inserir objetos
Alguns verbos de processo necessitam um ou mais objetos adicionais para serem considerados completos
Os objetos que possivelmente estiverem faltando, bem como os complementos dos objetos, são identificados e adicionados ao requisito
Exemplo: O template de requisitos para o verbo de processo imprimir é complementado com as informações sobre "o que" está sendo impresso e "onde" está sendo impresso
5 - Determinar as condições lógicas temporais
Para diferenciar facilmente entre condições lógicas e temporais, escolhemos a conjunção temporal "assim que" para condições temporais
E a conjunção condicional "se" para condições lógicas
A conjunção "quando" não deixa claro se uma condição temporal ou lógica está sendo descrita e deveria portanto ser evitada
Requisitos de qualidade que descrevem as condições nas quais um requisito é atendido são adicionados ao início do requisito como uma oração subordinada
Template: Assim que <condição temporal> Se <condição lógica o sistema <nome do sistema> ...
A atribuição de obrigatoriedade pode ser determinada no próprio texto do requisito, por meio de frases com verbos como "deverá", "poderá" ou "será".
Os melhores resultados não são obtidos com a imposição compulsória de um template de sentença (frase), mas oferecendo treinamento para sua utilização e apresentando os templates como ferramentas de apoio
Fornecem apoio para que o autor possa obter alta qualidade e não-ambiguidade sintática, com baixo custo e tempo otimizado
Template de requisitos é um padrão para a estrutura sintática de requisitos individuais
Templates de requisitos devem ser usados quando os membros do projeto têm interesse em um processo formal de desenvolvimento
Estilo e criatividade são fortemente limitados quando templates de requisitos são utilizados
A íinima qualidade dos requisitos já estará na documentação inicial
Requisitos formulados em conformidade com um template de requisitos pode apresentar processos transformacionais de linguagem
Aprender a escrever requisitos em conformidade com um template de requisitos não leva muito tempo
Resumo
Requisitos de sistema são documentados frequentemente em linguagem natural
Vantagens: incluiem uma melhor legalidade dos requisitos, a aplicabilidade universal, além da não-exigência de qualquer experiência prévia em termos de notação
Desvantagens: Não têm um estrutura formal, possibilitam ambiguidade, pode causar mal-entendidos
As desvantagens podem ser minimizadas durante a documentação de requisitos - por exemplo, através do uso de templates de requisitos e da verificação de efeitos transformacionais da linguagem nos requisitos