-
1 Definição
- Processo de atividades para documentação de requisitos e sua manutenção
- Deve ser precedido de estudos de viabilidade, para determinar se é ou não viável prosseguir a identificação dos requisitos
- especificar o que o sistema deverá fazer e determinar os critérios de validação que serão utilizados para que se possa avaliar se o sistema cumpre o que foi definido.
- Coletar, detalhar e organizar o conjunto (pacote) de artefatos que descrevem completamente os requisitos de software do sistema ou subsistema.
-
Atividades
- Identificação.
- Análise e negociação.
- Especificação e documentação.
- Validação.
-
2 Estudos de viabilidade
-
Responder as seguintes questões, juntamente com os Stakeholders do projeto
- Será que o sistema contribui para os objetivos da organização?
- Dadas as restrições tecnológicas, organizacionais (econômicas, políticas, ambientais, recursos disponíveis) e temporais associadas ao projeto, será que o sistema pode ser implementado?
- Caso haja necessidade de integração entre diferentes sistemas, será que esta é possível?
- Identificar quem pode responder as questões
-
e coletar informações
- Se o novo sistema não fosse implementado, quais seriam as alternativas para a organização?
- Quais são os problemas que os sistemas atuais apresentam e como é que um sistema novo irá resolver estas falhas?
- De que forma é que o sistema irá contribuir diretamente para os objetivos da organização?
- É possível a integração com os outros sistemas da organização (de um ponto de vista tecnológico)? Com que facilidade é que se consegue partilhar informação entre estes sistemas?
- produção de um relatório que determinará a continuação do desenvolvimento do projeto, e definindo alguns requisitos de alto nível.
-
3 Identificação
-
Atividades
-
Compreensão do Dominio
- Conhecer o Core Business da empresa que será implantado o sistema facilita o levantamento de requisitos
- Identificação das partes interessadas
-
Captura
- Obter com os stakeholders os Requisitos necessários
-
Identificação e análise de problemas
- Identificar problemas e propor soluções junto com os stakeholders
-
Dificuldades
- O cliente pode não saber exatamente o que deseja para o sistema, ou sabê-lo mas não conseguir articulá-lo (o que é bastante comum).
- Os requisitos identificados podem não ser realistas (do ponto de vista econômico ou tecnológico, por exemplo).
- Cada parte interessada pode expressar os mesmos requisitos de formas diferentes, sendo necessário - através de um bom conhecimento do domínio - identificar estas situações.
-
Técnicas para levantamento de requisitos
- Entrevistas e Questionários
- Workshops de requisitos
- Cenários
- Prototipagem
- Estudo etnográfico
-
4 Análise e negociação dos requisitos
-
Atividades
-
Classificação
- agrupamento de requisitos em "módulos"
- Resolução de conflitos
-
Prioritização
- consiste na atribuição de uma "prioridade" a cada requisito
-
Confirmação
- Confirmar com stakeholders completude dos requisitos, sua consistência e validade
-
Dificuldades
- Fatores externos (políticos) podem influenciar os requisitos
- O ambiente (económico e/ou organizacional) em que a análise é feita possui fatores dinâmicos, e como tal, os requisitos estão sujeitos a alterações em decorrência destes
-
Negociações
-
Dicas
- Saber lidar com ataques pessoais, de preferência nunca tomando partidos.
- Fomentar a justificação das posições (negativas) tomadas pelos intervenientes na negociação.
- Salientar (e procurar encontrar) os benefícios que uma solução apresenta para todos os envolvidos.
- Relaxar restrições, quando se torna óbvio que as actuais não conseguem levar a um consenso.
-
5 Especificação e documentação
- Produção da documentação de Requisitos
-
Tipos de Requisitos:
-
Requisitos Funcionais
- descrevem as funcionalidades, de uma forma completa e consistente. É aquilo que o utilizador espera que o sistema ofereça.
-
Requisitos Não-Funcionais
-
referem-se a aspectos não-funcionais do sistema, como restrições nas quais o sistema deve operar ou propriedades emergentes do sistema.
- Requisitos não-funcionais de: Utilidade,
- Confiança,
- Desempenho,
- Suporte
- Escalabilidade.
- Requisitos do Domínio
-
tipos de especificação:
-
Especificação de requisitos do utilizador.
- destinam-se aos vários níveis hierárquicos da organização, e são descritos usando apenas linguagem natural, formulários e diagramas muito simples.
-
Dificuldades
- Ambiguidade:
- torna-se difícil descrever os requisitos de uma forma inequívoca sem tornar a sua descrição muito longa ou de difícil compreensão.
- Confusão:
- a distinção entre requisitos funcionais/não-funcionais e objetivos do sistema torna-se difícil.
- Agrupamento de requisitos:
- pode tornar-se difícil separar claramente os requisitos, o que leva a que vários requisitos sejam expressos como sendo apenas um.
-
Considerações
- Usar o mesmo formato em todos os requisitos
- Distinguir claramente entre comportamentos esperados e desejáveis. É importante deixar claro o que o sistema tem de fazer e sugestões de como o deve fazer.
- Usar formatação de texto para salientar determinados aspectos do documento (usando negrito, por exemplo).
- Evitar usar termos demasiado técnicos ou fora do âmbito do sistema, identificando-os e definindo-os de uma forma clara quando for absolutamente necessário usá-los.
-
Especificação de requisitos do sistema.
- carácter mais técnico
- consistindo numa descrição detalhada dos requisitos do utilizador, para além da linguagem natural, de linguagens estruturadas e notações gráficas.
- Estes requisitos destinam-se ainda aos utilizadores do sistema
- destinam-se também às equipes de especificação de arquitetura do sistema e de desenvolvimento
-
dificuldades
- As mesmas palavras podem designar conceitos diferentes.
- O mesmo requisito pode ser descrito de formas diferente
-
Especificação do design da aplicação.
-
Design da aplicação
- documento usado pela equipe de desenvolvimento do sistema
- detalhamento da arquitetura em nível técnico
- entendimento comum do sistema, facilidade de compreensão por novos membros da equipe.
- arquitetura inicial não conseguirá prever todos os eventos.
-
Documento de Especificação de Requisitos
- declaração oficial dos requisitos do sistema
- (Software Requirements Specification ou SRS)
- combinação dos requisitos do utilizador e do sistema
-
e tem diferentes utilidades para diferentes pessoas
- Clientes: confirmar a completude dos requisitos e propor alterações.
- Gestores: orçamentar o sistema e planejar o processo de desenvolvimento.
- Engenheiros: compreender o sistema a desenvolver.
- Engenheiros (testes): desenvolver testes para validar o cumprimento dos requisitos.
- Engenheiros (manutenção): compreender o sistema e a ligação entre as suas partes.
-
10 Análise e especificação de requisitos de software
- determinar os objetivos de um software
- as restrições associadas a ele
- elaborar a especificação precisa do software.
- parte da análise de sistemas.
- iniciadas juntamente com a análise do sistema
-
Análise e especificação são atividades inter-dependentes
- devem ser realizadas conjuntamente
-
processo de
- observação,
- classificação
- modelagem dos elementos do domínio
-
Identificar
- pessoas,
- as atividades,
- as informações do domínio
- A especificação é a descrição sistemática e abstrata do que o software deve fazer, a partir daquilo que foi analisado
- olução de como os problemas levantados na análise serão resolvidos pelo software
- descrever de maneira sistemática quais as propriedades funcionais são necessárias para resolver o problema do domínio.
- forma de comunicação sistemática com os arquitetos, programadores e testadores do software.
-
9 seções
- Visão geral do produto e Sumário
- Ambientes de desenvolvimento, operação e manutenção
- Interfaces Externas e Fluxo de Dados
- Requisitos Funcionais
- Requisitos de Desempenho
- Tratamento de Exceções
- Prioridades de Implementação
- Antecipação de mudanças e extensões
- Dicas e diretrizes de Design
- Critérios de aceitação
- Índice Remissivo
- Glossário
-
8 Uma boa especificação de requisitos deve ser:
- Clara e não-ambígua
- Completa
- Correta
- Compreensível
- Consistente
- Concisa
- Confiável
-
7 Requisitos
- Requisitos são objetivos ou restrições estabelecidas por clientes e usuários que definem as suas diversas propriedades do sistema.
- Um conjunto de requisitos pode ser definido como uma condição ou capacidade necessária que o software deve possuir (1) para que o usuário possa resolver um problema ou atingir um objetivo ou (2) para atender as necessidades ou restrições da organização ou dos outros componentes do sistema.
-
Tipos de requisitos
-
Funcionais
-
Exemplos
- "o software deve possibilitar o cálculo dos gastos diários, semanais, mensais e anuais com pessoal".
- "o software deve emitir relatórios de compras a cada quinze dias"
- "os usuários devem poder obter o número de aprovações, reprovações e trancamentos em todas as disciplinas por um determinado período de tempo.
- deve determinar o que se espera que o software faça
- não se preocupar como
- descrição das diversas funções que clientes e usuários querem ou precisam que o software faça
-
Não funcionais
- qualidades globais de um software, como manutenibilidade, usabilidade, desempenho, custos e várias outras.
-
Exemplos
- "a base de dados deve ser protegida para acesso apenas de usuários autorizados".
- "o tempo de resposta do sistema não deve ultrapassar 30 segundo".
- "o software deve ser operacionalizado no sistema Linux"
- "o tempo de desenvolvimento não deve ultrapassar seis meses".
- estabelecer os requisitos de forma precisa
-
6 Validação
- validar documentação de requisitos
- encontrar problemas/conflitos na especificação
- lida com uma especificação completa dos requisitos.
- reduzir riscos
- reduzir custos
-
checklist dos seguintes atributos dos requisitos
-
Validade:
- a especificação resulta da análise dos requisitos identificados junto das diversas partes interessadas envolvidas e aceite a especificação final obtida.
-
Consistência:
- não devem existir conflitos entre os requisitos identificados.
-
Compreensibilidade / Ambiguidade:
- os requisitos devem poder ser compreendidos de forma inequívoca pelas partes interessadas.
-
Completude:
- todas as funcionalidades pretendidas devem fazer parte da especificação do sistema.
-
Realismo:
- dadas as restrições do projeto (tecnológicas, financeiras e temporais) o sistema especificado tem de ser implementável.
-
Verificabilidade:
- se o sistema final corresponde à especificação inicial.
-
Rastreabilidade:
- a origem dos requisitos, em relação ao cliente, deve estar claramente identificada.
- Conformidade com normas:
-
Técnicas de validação
-
Revisões dos requisitos
- Uma equipe de revisores pode analisar sistematicamente a especificação produzida
-
Prototipificação
- A implementação de um protótipo pode ser útil para os utilizadores finais
-
desvantagens:
- tempo gasto na sua implementação
- desilusões com a versão final do sistema
- tentação de usar o protótipo para continuar o desenvolvimento do sistema
-
Geração de casos de teste
- cada requisito deve ser testável
- deveria ser possível criar (desenhar) os respectivos testes
- se isto não for possível, é sinónimo de que a implementação deste requisito será difícil e que este poderá ter de ser reconsiderado.
-
Análise de consistência automática
- testar de forma automática a consistência dos modelos criados