Engenharia de Requisitos

7,683 views
7,510 views

Published on

Published in: Education

Engenharia de Requisitos

  1. 1. Universidade Positivo Especialização em Engenharia de Software Engenharia de Requisitos Tiago Barros | [email_address]
  2. 2. Apresentação do professor <ul><li>Tiago Barros </li></ul><ul><ul><li>Mestre em Ciência da Computação – UFPE (2007) </li></ul></ul><ul><ul><li>Bacharel em Ciência da Computação – UFPE (2003) </li></ul></ul><ul><ul><li>Técnico em Eletrônica – ETFPE (1998) </li></ul></ul><ul><ul><li>Engenheiro de Sistemas Senior do CESAR, desde 2002 </li></ul></ul><ul><ul><li>Especialista em tecnologia do grupo de inovação CESAR.SUL </li></ul></ul><ul><ul><li>Mais de 10 anos de experiência docente </li></ul></ul><ul><ul><ul><li>CIn/UFPE/Motorola, CESAR, Qualiti, Unibratec, Fisam/Faberludens </li></ul></ul></ul><ul><ul><li>Mais de 15 anos de experiência em desenvolvimento de software </li></ul></ul><ul><ul><ul><li>C/C++, Java, J2ME, BREW, Symbian, Embedded Linux, Assembly, Basic, PHP </li></ul></ul></ul>
  3. 3. Conteúdo do curso <ul><li>Processos de desenvolvimento de software </li></ul><ul><li>Elicitação de requisitos </li></ul><ul><li>Documentação de requisitos </li></ul><ul><li>Gerência de requisitos </li></ul><ul><li>Ferramentas </li></ul>
  4. 4. Método de avaliação <ul><li>Documentar os requisitos do projeto, com a definição dos requisitos funcionais, e não funcionais, além dos requisitos de interface e uso. </li></ul><ul><li>Apresentação das técnicas e ferramentas utilizadas no processo de elicitação e documentação de requisitos, bem como os resultados obtidos. </li></ul>
  5. 5. Equipes <ul><li>Formar equipes de 2 alunos </li></ul><ul><li>Definir o projeto da equipe </li></ul>
  6. 6. Processos de desenvolvimento de software
  7. 7. Processos de desenvolvimento de software <ul><li>Processo de software </li></ul><ul><ul><li>Conjunto de atividades associadas para produzir um produto de software </li></ul></ul><ul><ul><li>Aspectos importantes do software </li></ul></ul><ul><ul><ul><li>Custo </li></ul></ul></ul><ul><ul><ul><li>Uso </li></ul></ul></ul><ul><ul><ul><li>Manutenção </li></ul></ul></ul>
  8. 8. Processos de desenvolvimento de software <ul><li>Fases do desenvolvimento de software </li></ul><ul><ul><li>Planejamento/Acompanhamento </li></ul></ul><ul><ul><li>Requisitos </li></ul></ul><ul><ul><li>Arquitetura </li></ul></ul><ul><ul><li>Implementação </li></ul></ul><ul><ul><li>Testes </li></ul></ul><ul><ul><li>Implantação </li></ul></ul><ul><ul><li>Manutenção </li></ul></ul><ul><ul><li>Novas funcionalidades </li></ul></ul>
  9. 9. Processos de desenvolvimento de software <ul><li>Modelos de desenvolvimento </li></ul><ul><ul><li>Conjunto organizado de atividades para transformação das entradas do desenvolvimento (necessidades do cliente e do domínio) em saídas (produto de software) </li></ul></ul><ul><ul><li>Definem a abordagem utilizada nas fases do desenvolvimento de software </li></ul></ul>
  10. 10. Processos de desenvolvimento de software <ul><li>Modelos de desenvolvimento </li></ul><ul><ul><li>Cascata </li></ul></ul>
  11. 11. Processos de desenvolvimento de software <ul><li>Modelos de desenvolvimento </li></ul><ul><ul><li>Interativo Incremental </li></ul></ul>
  12. 12. Prática <ul><li>Definição do projeto de software a ser desenvolvido durante o curso </li></ul><ul><li>Apresentação do projeto </li></ul>
  13. 13. Engenharia de requisitos
  14. 14. Engenharia de requisitos <ul><li>O que é a engenharia de requisitos? </li></ul><ul><ul><li>Conjunto de ativiades estruturadas envolvidas no desenvolvimento dos requisitos de um sistema </li></ul></ul><ul><li>O que são requisitos? </li></ul><ul><ul><li>Descrição de serviço, funcionalidade e/ou limitação do sistema, bem como suas propriedades essenciais e desejáveis. </li></ul></ul><ul><li>Qual a importância da engenharia de requisitos? </li></ul><ul><ul><li>Elicitar, documentar e validar com os stakeholders as funcionalidades do sistema </li></ul></ul>
  15. 15. Processo de engenharia de requisitos Estudos de Viabilidade Elicitação e análise de requisitos Especificação e documentação de requisitos Validação de requisitos Gerenciamento de requisitos e mudanças
  16. 16. Estudos de viabilidade <ul><li>Avaliação para verificar se as necessidades dos usuários identificadas podem ser satisfeitas por meio das tecnologias atuais de hardware e software </li></ul><ul><li>Também utilizado para ajudar na escolha de tecnologias a serem adotadas no projeto </li></ul>
  17. 17. Elicitação de requisitos <ul><li>O papel da elicitação de requisitos </li></ul><ul><ul><li>Necessidades dos usuários do sistema </li></ul></ul><ul><ul><li>Necessidades do domínio da aplicação </li></ul></ul><ul><ul><li>Legislação, padrões, normas </li></ul></ul><ul><li>Envolvidos </li></ul><ul><ul><li>Usuários do sistema </li></ul></ul><ul><ul><li>Clientes do sistema </li></ul></ul><ul><ul><li>Equipe de desenvolvimento do sistema </li></ul></ul>
  18. 18. Tipos de requisitos <ul><li>Requisitos funcionais </li></ul><ul><ul><li>Necessidades e funcionalidades requeridas pelos usuários do sistema </li></ul></ul><ul><ul><li>Necessidades do negócio ( domínio da aplicação, requisitos do sistema ) </li></ul></ul><ul><li>Requisitos não-funcionais </li></ul><ul><ul><li>Comportamento geral do sistema em seu ambiente operacional </li></ul></ul><ul><ul><li>Restrições, legislação </li></ul></ul>
  19. 19. Tipos de requisitos <ul><li>Especialização dos requisitos funcionais do usuário </li></ul><ul><ul><li>Expressam detalhes dos requisitos que envolvem a interação do usuário com o sistema </li></ul></ul><ul><ul><li>Requisitos de interface e uso </li></ul></ul><ul><ul><ul><li>Entendimento da interface </li></ul></ul></ul><ul><ul><ul><li>passos para execução da tarefa </li></ul></ul></ul><ul><ul><ul><li>Nomenclatura e semântica </li></ul></ul></ul>
  20. 20. Elicitação de requisitos <ul><li>Fases da elicitação de requisitos </li></ul>
  21. 21. Elicitação de requisitos <ul><li>ELICITAR: descobrir, definir, tornar explícito, claro </li></ul><ul><li>Identificar as funcionalidades e necessidades que compõem os requisitos do sistema, de forma a prover uma especificação clara para os stakeholders e desenvolvedores </li></ul>
  22. 22. Elicitação de requisitos <ul><li>Dificuldades </li></ul><ul><ul><li>Usuários podem não ter uma idéia clara e precisa do sistema requerido </li></ul></ul><ul><ul><li>Usuários podem ter dificuldades para descrever o seu conhecimento sobre o domínio do problema </li></ul></ul><ul><ul><li>Usuários e analistas tem diferentes pontos de vista do problema </li></ul></ul>
  23. 23. Técnicas de elicitação de requisitos <ul><li>Requisitos de sistema (domínio) </li></ul><ul><ul><li>Entrevistas </li></ul></ul><ul><ul><ul><li>Discussão dos requisitos com os stakeholders </li></ul></ul></ul><ul><ul><ul><li>Cuidado com informações implícitas </li></ul></ul></ul><ul><ul><li>Questionarios </li></ul></ul><ul><ul><ul><li>Quando existe um grande número de stakeholders </li></ul></ul></ul><ul><ul><ul><li>Permite dados estatísticos </li></ul></ul></ul><ul><ul><ul><li>Informação limitada às perguntas </li></ul></ul></ul><ul><ul><li>Cenários (casos de uso) </li></ul></ul><ul><ul><ul><li>Descrição das atividades executadas no sistema </li></ul></ul></ul>
  24. 24. Técnicas de elicitação de requisitos <ul><li>Casos de uso </li></ul><ul><ul><li>Pré-condições do sistema </li></ul></ul><ul><ul><li>Pós-condições do sistema </li></ul></ul><ul><ul><li>Fluxo de eventos principal </li></ul></ul><ul><ul><li>Fluxo(s) de evento(s) alternativos ou de exceção e erro </li></ul></ul><ul><li>Notação UML </li></ul>
  25. 25. Técnicas de elicitação de requisitos <ul><li>Requisitos de usuário (interação) </li></ul><ul><ul><li>Observação (etnografia) </li></ul></ul><ul><ul><ul><li>Utilizada para compreender os requisitos sociais </li></ul></ul></ul><ul><ul><ul><li>Analista se insere no contexto de uso e anota as atividades e as necessidades do usuário </li></ul></ul></ul><ul><ul><ul><li>Descobrir requisitos implícitos e que refletem os processos reais </li></ul></ul></ul>
  26. 26. Técnicas de elicitação de requisitos <ul><li>Requisitos de interface e uso </li></ul><ul><ul><li>Estudo de experiência do usuário </li></ul></ul><ul><ul><ul><li>Criação de protótipos não-funcionais e/ou funcionais para identificar necessidades do usuário e funcionalidades que poderiam ser removidas </li></ul></ul></ul>Analisar e compreender as atividades do usuário Protótipo em papel Avaliar protótipo com usuários finais Protótipo dinâmico Avaliar protótipo com usuários finais
  27. 27. Técnicas de elicitação de requisitos <ul><li>Requisitos de interface e uso </li></ul><ul><ul><li>Testes de usabilidade </li></ul></ul><ul><ul><ul><li>Testes de uso no protótipo funcional para validar os requisitos </li></ul></ul></ul><ul><ul><ul><li>Usuário executa um conjunto de tarefas com o protótipo </li></ul></ul></ul><ul><ul><ul><li>Analista verifica como o usuário executa as tarefas e o que está dificultando a execução </li></ul></ul></ul><ul><ul><ul><li>O resultado são sugestões de modificações nos requisitos baseadas no uso do protótipo pelos usuários finais </li></ul></ul></ul>
  28. 28. Prática <ul><li>Planejamento da elicitação de requisitos </li></ul><ul><ul><li>Identificação dos stakeholders </li></ul></ul><ul><ul><li>Pesquisa e definição das técnicas utilizadas </li></ul></ul><ul><ul><li>Preparar material para cada uma das técnicas </li></ul></ul><ul><ul><li>Justificar o uso das técnicas e os objetivos pretendidos </li></ul></ul><ul><li>Apresentação do planejamento da elicitação de requisitos </li></ul>
  29. 29. Documentação de requisitos <ul><ul><li>Os documentos de requisitos são utilizados para comunicar as necessidades do sistema aos diversos participantes envolvidos no processo de desenvolvimento do software </li></ul></ul><ul><ul><li>Marketing Requirements Document </li></ul></ul><ul><ul><ul><li>Requisitos de alto nível, que representam as necessidades do cliente </li></ul></ul></ul><ul><ul><li>Product Requirements Document </li></ul></ul><ul><ul><ul><li>Descrevem os cenários de uso do sistema </li></ul></ul></ul><ul><ul><li>System Requirements Document (Tecnical Requirements Document) </li></ul></ul><ul><ul><ul><li>Descrevem o funcionamento do cistema </li></ul></ul></ul>
  30. 30. Documentação de requisitos <ul><li>Os componentes típicos dos documentos de requisitos são: </li></ul><ul><ul><li>Informação de título e autor do documento (com logo da empresa e cliente) </li></ul></ul><ul><ul><li>Propósito e escopo do documento </li></ul></ul><ul><ul><li>Identificação dos stakeholders e aprovadores do documento </li></ul></ul><ul><ul><li>Overview do sistema </li></ul></ul>
  31. 31. Documentação de requisitos <ul><li>Product Requirements Document </li></ul><ul><ul><li>O documento de requisitos do produto também deve contemplar: </li></ul></ul><ul><ul><ul><li>os diagramas de casos de uso do sistema; </li></ul></ul></ul><ul><ul><ul><li>a descrição dos casos de uso do sistema, com todos os seus fluxos principais e alternativos; </li></ul></ul></ul>
  32. 32. Documentação de requisitos <ul><li>Estrutura para um documento de requisitos do produto </li></ul><ul><ul><li>1. Introdução </li></ul></ul><ul><ul><li>1.1 Propósito do documento </li></ul></ul><ul><ul><li>1.2 Escopo </li></ul></ul><ul><ul><li>1.3 Definições, acrônimos e abreviações </li></ul></ul><ul><ul><li>1.4 Referencias </li></ul></ul><ul><ul><li>2. Casos de uso </li></ul></ul><ul><ul><li>2.1 Diagramas </li></ul></ul><ul><ul><li>2.2 Casos de uso </li></ul></ul><ul><ul><ul><li>para cada caso de uso: </li></ul></ul></ul><ul><ul><ul><ul><li>Nome </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Fluxo principal </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Fluxos alternativos </li></ul></ul></ul></ul>
  33. 33. Documentação de requisitos <ul><li>System Requirements Document </li></ul><ul><ul><li>O documento de requisitos do sistema também deve contemplar: </li></ul></ul><ul><ul><ul><li>restrições do sistema; </li></ul></ul></ul><ul><ul><ul><li>Requisitos funcionais; </li></ul></ul></ul><ul><ul><ul><li>Requisitos não funcionais; </li></ul></ul></ul>
  34. 34. Documentação de requisitos <ul><li>Estrutura para um documento de requisitos do sistema </li></ul><ul><ul><li>1. Introdução </li></ul></ul><ul><ul><li>1.1 Propósito do documento </li></ul></ul><ul><ul><li>1.2 Escopo </li></ul></ul><ul><ul><li>1.3 Definições, acrônimos e abreviações </li></ul></ul><ul><ul><li>1.4 Referencias </li></ul></ul><ul><ul><li>2. Restrições e premissas </li></ul></ul><ul><ul><li>3. Requisitos funcionais </li></ul></ul><ul><ul><li>4. Requisitos não-funcionais </li></ul></ul><ul><ul><li>5. Requisitos de interface e uso </li></ul></ul><ul><ul><li>5.1 Modelo navegacional </li></ul></ul>
  35. 35. Prática <ul><li>Realização da elicitação de requisitos </li></ul><ul><ul><li>Executar a elicitação de requisitos do software desenvolvido, de acordo com o planejamento anterior </li></ul></ul><ul><li>Documentar os requisitos </li></ul><ul><ul><li>Produzir os documentos de requisitos do usuário e do sistema </li></ul></ul><ul><ul><li>Utilizar templates de documentos existentes na internet </li></ul></ul>
  36. 36. Prática – próxima aula <ul><li>Apresentação do resultado da elicitação dos requisitos </li></ul><ul><ul><li>Resultado das técnicas utilizadas </li></ul></ul><ul><ul><li>Requisitos do sistema elicitados </li></ul></ul><ul><li>Entrega dos documentos de requisitos do sistema e do usuário </li></ul>
  37. 37. Referências <ul><li>Requeriments Engineering </li></ul><ul><ul><li>G Kotonya e I Sommerville, 1998 </li></ul></ul><ul><ul><li>http://www.computing.dcu.ie/~nbrophy/ca222/week4_6/som1.pdf </li></ul></ul><ul><li>Requirements Engineering </li></ul><ul><ul><li>I Sommerville e P Sawyer, 1997 </li></ul></ul><ul><ul><li>https://www.cs.st-andrews.ac.uk/~ifs/Teaching/Sys%20Eng%20for%20LSCITS/L3-RE-overview.pdf </li></ul></ul><ul><li>Integrating Ethnography in the requirements engineering process </li></ul><ul><ul><li>I Sommerville, P Sawyer, T Rodden et al. </li></ul></ul><ul><ul><li>http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.7588&rep=rep1&type=pdf </li></ul></ul><ul><li>Techniques for requirements elicitation </li></ul><ul><ul><li>GA Goguen e C Linde, 1993 </li></ul></ul><ul><ul><li>http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.13.3557&rep=rep1&type=pdf </li></ul></ul>

×