Engenharia de Software. Gerenciamento de Requisitos. Prof. Rodolfo Miranda de Barros - PDF
Engenharia de Software. Gerenciamento de Requisitos. Prof. Rodolfo Miranda de Barros
Download "Engenharia de Software. Gerenciamento de Requisitos. Prof. Rodolfo Miranda de Barros rodolfo@uel.br"
Ana Júlia Vieira da Mota
1 Engenharia de Software Gerenciamento de Requisitos Prof. Rodolfo Miranda de Barros
2 Engenharia de Requisitos (ER) Engenharia de O termo Engenharia implica em dizer que um processo sistemático é usado para definição de um sistema de software; A Engenharia de Requisitos (ER) - Requirements Engineering - preocupa-se com o quê (compreensão) e não como fazer. 2
3 Engenharia de Requisitos Engenharia de Uma boa ER é um passo essencial para o desenvolvimento de um bom produto; Um dos problemas básicos da ER é o levantamento e documentação dos requisitos dos produtos de software; Quando este levantamento é bem feito, os requisitos implícitos (expectativas dos clientes e usuários que serão cobradas apesar de não estarem documentadas) são minimizados; 3
4 Engenharia de Requisitos Engenharia de Quando este levantamento é bem feito, os requisitos documentados têm maiores chances de serem corretamente entendidos pelos desenvolvedores; Cabe aos engenheiros de software insistirem sempre na elaboração de uma boa especificação de requisitos. Faz parte do seu trabalho convencer clientes e usuários de que: 4
5 Engenharia de Requisitos Engenharia de Boas especificações de requisitos são indispensáveis; Elas não representam custos supérfluos, mas investimentos necessários; A participação dos usuários na ER é fundamental para que as suas necessidades sejam corretamente atendidas pelo produto; Uma boa especificação de requisitos custa tempo e dinheiro; A ausência de uma boa especificação de requisitos custa muito mais tempo e dinheiro. 5
6 Engenharia de Requisitos - Motivação Engenharia de Entre as várias motivações que nos levam a estudar a ER, que variam desde razões sociais à motivos econômicos, destacamos: Estudos recentes mostram que existe um grande número de sistemas de informação que não são apropriados para as necessidades de seus usuários; Do ponto de vista jurídico, desejamos que o documento de requisitos funcione como um acordo contratual entre os clientes e fornecedores de software; 6
7 Engenharia de Requisitos - Motivação Engenharia de Existem também fortes razões econômicas para se estudar a ER, pois embora a etapa de análise represente um pequeno custo no desenvolvimento e manutenção de software, é de vital importância que ela seja bem realizada; Estudos realizados mostram que cerca de 40% dos erros cometidos ocorrem na fase de especificação do sistema. Como eles são os mais caros de consertar, a correção de problemas oriundos da fase de especificação atingem a um patamar de 60% do custo total de correção de erros. 7
8 ER - Como os requisitos evoluem O que é necessário fazer Engenharia de O que os usuários querem O que os usuários pedem O que os desenvolvedores entendem O que acaba sendo feito 8
9 Engenharia de Requisitos Gerenciar Requisitos Elicitar Analisar Modelar 9
10 ER: Principais atividades Compreender (problema) domínio Engenharia de requisitos Especificar o problema (elicitar) Compreender o problema (analisar) Definir uma proposta (modelo válido) Atualizar requisitos (gerenciar) 10
11 ER: Principais atividades Elicitação - consiste na identificação dos requisitos a partir de consulta aos stakeholders, da análise de documentos, da análise de informações do domínio e/ou de estudos de mercado; Análise e Negociação - consiste na análise detalhada dos requisitos com a negociação entre os diferentes stakeholders visando decidir quais os requisitos que serão aceitos; 11
12 ER: Principais atividades Documentação - os requisitos aprovados na atividade de análise e negociação devem ser registrados em um documento apropriado, em nível de detalhamento adequado; Validação - depois de documentados, os requisitos devem sofrer cuidadosa verificação de consistência e completitude. 12
14 Domínio: conceitos Engloba o contexto para o qual será provida uma solução; O processo de reconhecimento do domínio caracteriza-se pela definição de sua fronteira; O conteúdo de um domínio compreende: fatos, regras, necessidades, conceitos, agentes etc. 14
15 Domínio: esquema básico Ambiente externo Domínio Agentes Fronteira Regras Fatos Conteúdo Necessidades Conceitos... 15
16 Definição dos limites do domínio Os limites do domínio (fronteira) podem ser determinados através do estabelecimento dos objetivos ( macro objetivos ) pretendidos; Para tanto, não se deve centrar em funcionalidades e sim na finalidade. 16
17 Requisitos: definição Condição necessária para a obtenção de certo objetivo, ou para o preenchimento de certo objetivo ; Requisitos são uma descrição das necessidades ou desejos para um produto ; Requisitos são objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema. 17
18 Definir requisitos Na definição de requisitos pode-se utilizar de uma narrativa ou de representações gráficas (linguagem natural, formal e rigorosa); Normalmente, as informações coletadas são fornecidas pelo usuário; Requisitos podem ser divididos em: Requisitos Funcionais (RF) Requisitos Não-Funcionais (RNF) 18
19 Requisitos Funcionais (RF) Os requisitos funcionais definem as funções do sistema, ou seja, o que se espera que o sistema faça; Eles relatam as diversas funções que deverão ser providas pelo software ao cliente ou usuário; Ex.: Monitorar sensores de temperatura; Cancelar o débito na conta corrente caso a operação não seja completada; Avisar quando o estoque chegar no limite mínimo. 19
20 Requisitos Não-Funcionais (RNF) Requisitos não-funcionais definem as características de qualidade que o sistema deverá possuir; Ex.: O sistema deverá apresentar interface gráfica (padrão Windows); Facilidade de uso; Tempo de resposta de uma operação. 20
21 Especificando Requisitos de Confiabilidade Definição de Confiabilidade" É a habilidade que o software deve comportar-se consistentemente de maneira aceitável pelo usuário Requisitos de Confiabilidade Disponibilidade (xx.xx%) MTBF - média de tempo entre falhas (xx h) Máximo de erros por/kloc (0-x) (Line Of Code) Erros por classe - crítico, importante, insignificante
22 Especificando Requisitos de Suportabilidade Definição de "Suportabilidade" É a habilidade do software para ser facilmente modificado para acomodar melhorias e correções Requisitos de Suportabilidade Linguagens, DBMS, ferramentas, etc. Padrões de programação Tratamento de erros e relatórios padrões Muita dificuldade para especificar Se não for mensurável ou observável, ele não é um requisito Ele é uma restrição do projeto? Ele é uma intenção ou meta?
23 Especificando Requisitos de Performance Definição de Performance" É a medida da velocidade ou eficiência da execução de um sistema Requisitos de Performance Capacidade Processamento Tempo de Resposta Memória Modos de degradação Uso eficiente de recursos escassos Processador, memória, disco, banda da rede
24 Especificando Requisitos de Usabilidade Definição de "usabilidade" É a facilidade que o software tem para entendimento e operação das intenções dos usuários. Requisitos de Usabilidade Tempo de treinamento em requisitos, tarefa de medição de tempos Habilidades do usuário (iniciante/avançado) Comparação com outros sistema que os usuários conhecem e gostam Sistema de ajuda online, ferramentas de dicas, necessidades de documentação Conformidade com padrões Exemplos: Windows, guias de estilo, padrões de GUI
25 Revisões de Software As revisões de software são um filtro para o processo de engenharia de software. Ou seja, as revisões são aplicadas em vários pontos durante o desenvolvimento de software e servem para descobrir defeitos que possam ser eliminados. As revisões de software têm como objetivo purificar as atividades de engenharia de software
26 Revisões de Software Uma revisão técnica é uma atividade de garantia de qualidade de software executada por profissionais da engenharia de software, e tem como objetivos: 1. Descobrir erros de função, lógica ou implementação em qualquer representação do software; 2. Verificar se o software que se encontra sob revisão atende a seus requisitos; 26
27 Revisões de Software 3. Garantir que o software tenha sido representado de acordo com padrões predefinidos; 4. Obter um software que seja desenvolvido uniformemente; 5. Tornar os projetos mais administráveis. 27
28 Diretrizes de Revisão Revise o produto, não o produtor; Fixe e mantenha uma agenda; Limite o debate e a refutação; Enuncie as áreas problemáticas, mas não tente resolver cada problema anotado; Faça anotações por escrito; Limite o número de participantes e insista numa preparação antecipada; Desenvolva uma lista de conferência para cada produto que provavelmente será revisto; Atribua recursos e uma programação de tempo para a revisão dentro do cronograma de desenvolvimento; Realize um treinamento significativo para todos os revisores; Reveja suas antigas revisões. 28
29 Revisão da Especificação Lista de Conferência A lista de conferência não pretende ser abrangente, mas, ao contrário, pretende oferecer um ponto de partida para a revisão; 1. As funções principais são definidas de uma forma delimitada e sem ambigüidades? 29
30 Revisão da Especificação Lista de Conferência 2. As interfaces entre os elementos do sistema estão definidas? 3. Foram definidos limites de desempenho para o sistema como um todo e para cada elemento? 4. As restrições de projeto foram estabelecidas para cada elemento? 5. As melhores alternativas foram selecionadas? 6. A solução é tecnologicamente viável? 7. Foi estabelecido um mecanismo de validação e verificação par o sistema? 8. Há consistência entre todos os elementos do sistema? 30
31 Resultados da Revisão - Classificação dos Defeitos Quanto à gravidade: Críticos: defeito que reflete a ausência de um requisito essencial ou impede a utilização do produto. Não pode ser contornado, exigindo ação corretiva imediata; Maiores: defeito que reflete a ausência de um requisito importante ou afeta, mas não impede, a utilização do produto. Exige ação corretiva tão logo possível; Menores: todos os outros problemas, como erros de documentação, erros de mensagens do produto, etc. Algumas correções, como a inclusão de facilidades menores solicitadas pelos usuários, podem ser deixadas para versões futuras. Em função desses aspectos, a determinação da prioridade de correção desses erros é de responsabilidade gerencial. 31
32 Resultados da Revisão - Classificação dos Defeitos Quanto à natureza: Omissão: ausência de uma seção, requisito, funcionalidade ou algum outro item qualquer no documento; Violação: incoerência de um item do documento com um outro documento do projeto elaborado anteriormente, ou ainda alguma incorreção do documento levantada por um usuário participante da revisão técnica; Imprecisão: requisito, seção ou funcionalidade do documento especificada de forma ambígua ou incompleta; Estilo: erros de português, de formatação, etc. 32
33 Resultados da Revisão Resultado Final Aceito sem modificações; Aceito com pequenas modificações: não será necessária nova revisão técnica para o resultado do projeto em pauta, um revisão informal entre membros e gerente é o suficiente); Rejeitado para profundas modificações: haverá necessidade de nova revisão após serem feitas as modificações sugeridas; Rejeitado para reconstrução: será necessária nova confecção do material; A revisão não foi completada: foi necessário cancelar ou interromper a reunião, e uma nova será marcada. 33
34 Procedimentos de Gestão de Requisitos
35 Gestão de Requisitos Se fosse possível realizar de forma perfeita as atividades da ER, não deveria haver necessidade de alteração nos requisitos ao longo do projeto; Na prática, essas alterações podem ocorrer devido a fatores externos, como alterações tecnológicas, gerenciais, legais e políticas, e a fatores internos, como o melhor entendimento do problema por parte de usuários ou dos desenvolvedores; 35
36 Gestão de Requisitos Todos esses fatores fazem com que seja necessário alterar os requisitos; Tais alterações precisam ser conduzidas de forma ordenada para que não se perca controle sobre o prazo e o custo do desenvolvimento; 36
37 Gestão de Requisitos Os benefícios desta atividade são percebidos no médio prazo sendo que são necessários investimentos no curto prazo; Assim, a atividade é, muitas vezes, tida como um fardo desnecessário à condução do processo; Contudo, sua não implementação faz com que as economias de curto prazo sejam logo suplantadas pelas despesas no longo prazo, verificadas com superação de custo e prazo nos projetos conduzidos. 37
38 Gestão de Requisitos Considerando-se o forte impacto que as alterações de requisitos geralmente têm nos prazos e custos dos projetos, elas devem obedecer a um procedimento documentado, estabelecido de Gestão de Requisitos (um exemplo pode ser visto mais adiante); 38
39 Gestão de Requisitos Alterações nos requisitos só podem ocorrer em marcos do projeto que sejam definidos e acordados entre clientes, usuários, a equipe do projeto e outros grupos afetados; O cadastro dos requisitos do software deve ser usado para localizar todas as alterações conseqüentes em outros artefatos do projeto; Os impactos nos compromissos devem ser avaliados pelas pessoas afetadas, pesquisando-se todas as associações pertinentes guardadas no Cadastro dos Requisitos; Devem-se comunicar de forma muito clara os impactos nas alterações nos requisitos ao cliente e usuários, requerendose a concordância destes em absorver esses impactos; 39
40 Gestão de Requisitos As alterações devem ser revistas pelos grupos envolvidos, e, em casos de alterações maiores, submetidas a revisões técnicas; As alterações devem ser revistas e aprovados pelos usuários chaves, pelo cliente, pelo gerente do projeto e pela gerência executiva; Devem ser produzidas novas versões da ER do Software e dos artefatos alterados em conseqüência, incorporando-se as alterações no respectivo texto; A nova versão da ER do Software, a nova versão do cadastro dos requisitos e demais artefatos devem ser incorporados em nova linha de base do projeto, ou em alteração da linha de base corrente. 40
41 Gestão de Requisitos - Monitoração Ao longo do projeto, deve ser mantido atualizado o status dos requisitos; O status reflete as modificações solicitadas e aprovadas: um requisito pode ser excluído, adicionado ou alterado; A alteração de um requisito pode se referir ao seu conteúdo (um detalhe de um caso de uso ou um valor de uma métrica de um requisito não-funcional); Também pode se referir a um de seus atributos (um requisito pode ser rebaixado de essencial para desejável); As alterações devem ser documentadas visando subsidiar futuras solicitações de alterações de requisitos nesse ou em outros projetos similares. 41
42 Procedimentos de gestão de requisitos Cadastramento dos Requisitos No. Nome do Requisito Tipo Importância Complexidade Estabilidade 1 Interface de usuário Tela de Abertura do Caixa Interface Essencial Baixa Média 2 Caso de Uso Abertura do Caixa Caso de Uso 3 Caso de Uso Pedido de Compra Caso de Uso Essencial Baixa Média Opcional Baixa Baixa 4 Caso de Uso Operação de Venda 5 Requisito desempenho tempo de resposta Caso de Uso Nãofuncional Essencial Alta Média Desejável Baixa Alta 42
43 Procedimentos de gestão de requisitos Atualização dos Requisitos No. Nome do Requisito Tipo Importância Complexidade Estabilidade Status 1 Interface de usuário Tela de Abertura do Caixa Interface Essencial Baixa Média Original 2 Caso de Uso Abertura do Caixa Caso de Uso 3 Caso de Uso Pedido de Compra Caso de Uso Essencial Baixa Média Original Opcional Baixa Baixa Alterado 4 Caso de Uso Operação de Venda 5 Requisito desempenho tempo de resposta Caso de Uso Nãofuncional Essencial Alta Média Original Desejável Baixa Alta Original 43
44 Procedimentos de gestão de requisitos Tabela de Alterações dos Requisitos Data Item alterado Tipo da Mudança Motivo Impacto 10/03/2010 Caso de Uso Pedido de Alteração no fluxo Falha na 3 dias de atraso; Compra Especificação de mais 15 horas de Requisitos esforço 12/03/2010 Interface de usuário Emissão de Notas Fiscais Alteração no leiaute Mudança na legislação Mais 2 horas de esforço 44
45 Bibliografia CARVALHO, A. M. B. R.; CHIOSSI, T. C. S. Introdução à Engenharia de Software. Editora da Unicamp, KOTONYA, Gerald.; SOMMERVILE Requirements engineering: processes and techniques. Ed. John Wiley, PAULA FILHO, W.P. de. Engenharia de software: fundamentos, métodos e padrões. 2.ed. Rio de Janeiro : LTC, PRESSMAN, Roger. Software engineering: A practitioner s approach. 5 a. Edição. McGrall-Hill, SOMMERVILLE, Ian. Software Engineering. 5ª edição. Ed. Addison- Wesley,