Baixe o app para aproveitar ainda mais
Prévia do material em texto
6/17/19 1 z Engenharia de Software Curso de Sistemas de Informação Prof. Jair Figueiredo E-mail: jose.figueiredo@uninorteac.edu.br z Áreas da Engenharia de Software Gerência de Configuração de Software Gerência de Engenharia de Software Processo de Engenharia de Software Ferramentas e Métodos Qualidade de Software Requisitos de software Design de software Construção de Software Teste de Software Manutenção de Software 6/17/19 2 z Requisito § Um requisito de software é uma propriedade que deve ser apresentada por software desenvolvido ou adaptado para resolver um problema específico.. [Guide to the Software Engineering Body of Knowledge] § Requirement. § (1) Uma condição ou capacidade necessária para um usuário resolver um problema ou atingir um objetivo § (2) Uma condição ou capacidade que deve ser atendida ou possuída por um sistema ou componente do sistema para atender a um contrato, padrão, especificação ou outros documentos formalmente impostos. § (3) Uma representação documentada de uma condição ou capacidade como em (1) ou (2). [IEEE Standard Glossary of Software Engineering Terminology (1990)] z ↳ os requisitos de um sistema devem focar-se no "o quê?" ↳ o que é que o sistema deve fazer? ↳ o "como?" deve ser relegado para segundo plano ↳ no entanto a separação do "o quê?" e do "como?" é difícil de conseguir na prática ↳ os requisitos de um sistema incluem na prática uma mistura de dados sobre o problema, descrições do comportamento do sistema e propriedades e restrições da construção do sistema. O quê versus como ■Os requisitos terminam onde começa a liberdade do implementar 6/17/19 3 z Que tipos de requisitos temos? z Exemplo: 6/17/19 4 z Introdução à Engenharia de Requisitos Capítulo 8 [Pressman e Maxim] z Índice § Noção de requisito § Tipos de requisitos § Classificação de requisitos não funcionais com base na norma ISSO/IEC 9126 § O processo de engenharia de requisitos § Enquadramento da engenharia de requisitos no ciclo de vida dos sistemas 6/17/19 5 z Princípios que orientam o processo Seja ágil. Concentre-se na qualidade em todas as etapas. Esteja pronto para adaptações. Mecanismos para comunicação e coordenação. Monte uma equipe eficiente. Gerencie mudanças Avalie os riscos. Gere artefatos que forneçam valor para outros. z Princípios que orientam a prática Divida e conquiste Compreenda o uso da abstração. Esforce-se pela consistência. Concentre-se na transferência de informações. Construa software que apresente modularidade efetiva. . Verifique os padrões. Quando possível, represente o problema e sua solução sob perspectivas diferentes. Lembre- sedequealguémfaráamanutençãodosoftware 6/17/19 6 z Âmbito e importância da engenharia de requisitos z 6/17/19 7 z Engenharia de Requisitos Requisitos Coletados Documenta dos GerenciadosAnalisados z Importância da Engenharia de Requisitos (fonte: "Software Project Survival Guide", Steve McConnell) 6/17/19 8 z Processo de Software z Onde os requisitos estão no ciclo de vida de um software? Estimativas Modelagem Projeto Implementação Testes Manutenção 6/17/19 9 z Processo da Eng. Requisitos § Requisitos envolvem atividades de: § Desenvolvimento § através do Levantamento, Análise e Documentação de Requisitos, § Gerência § através da Gerência de Requisitos § Controle da qualidade § através da Verificação, Validação e Garantia da Qualidade de Requisitos. z 1. Levantamento de Requisitos § Fase inicial do processo de engenharia de requisitos. Domínio da Aplicação Problema Negócio Necessidades e Restrições en te nd im en to s qu e de ve m os po ss ui r 6/17/19 10 z Tecnicas para Levantamento de Requisitos z 2. Análise de Requisitos § Segundo a IEEE (1990) a análise de requisitos é um processo que envolve o estudo das necessidades do usuário para se encontrar uma definição correta ou completa do sistema ou requisito de software. § Os requisitos colhidos devem ser quantitativos, detalhados e relevantes para o projeto. 6/17/19 11 z Análise de Requisitos Reconhecer o problema Avaliar o problema e a síntese da solução Modelar (Modelagem) Especificar os requisitos Revisar (Revisão) z 3. Documentação de Requisitos § O documento serve para apresentar uma visão geral e funcional do produto, § mas o que deve contém? 6/17/19 12 z 3. Documentação de Requisitos § Introdução § Visão geral do produto § Termos técnicos específicos para um determinado contexto § Abreviações e acrônimos § Envolvidos e Usuários § Requisitos (Funcionais, Não-Funcionais e Regras de Negócio) § Caso de Uso § Anexos (protótipos, arquitetura e documentos auxiliares) z 4. Gerência de Requisitos § Essa etapa permeia todo o ciclo de vida do produto e consiste em dois aspectos fundamentais: § Garantia do escopo do produto § Gestão de mudanças 6/17/19 13 z 4. Gerência de Requisitos § https://cio.com.br/5-principais-ferramentas- de-gerenciamento-de-requisitos/ z 5. Verificação, Validação e Garantia da Qualidade de Requisitos § A validação pode ser através de uma reunião fazendo com que os responsáveis assinem o documento para que ele possa ter validade, ou dando ciência da responsabilidade dos requisitos levantados por e-mail. § Essa etapa também serve para correções e podem ser descobertos/inclusos outras funcionalidade. https://cio.com.br/5-principais-ferramentas-de-gerenciamento-de-requisitos/ 6/17/19 14 z z Engenharia de requisitos § Análise de requisitos. § (1) O processo de estudar as necessidades do usuário para obter uma definição do Sistema, hardware ou requisites de software. § (2) O processo de estudo e refinamento do Sistema, Hardware ou Requisitos de Software. (IEEE Standard Glossary of Software Engineering Terminology IEEE Std 610.12-1990) § Engenharia de requisitos = desenvolvimento de requisitos (necessidades -> espec. req.) + gestão de requisitos § Engenharia de requisitos = área de conhecimento 6/17/19 15 z ↳ o que é a engenharia de requisitos? ↳ designa todas as actividades envolvidas em ↳ descobrir, obter, analisar ↳ especificar, documentar ↳ verificar, gerir, manter ↳ os requisitos de um sistema • implica a utilização de um conjunto de técnicas e modelos que tornam sistemática e repetitiva a execução destas tarefas Engenharia de requisitos z Engenharia de Requisitos 6/17/19 16 z Engenharia de Requisitos O processo de estabelecer as funções que um cliente requer de um sistema e as restrições sob as quais ele deve funcionar e ser desenvolvido Os requisitos são descrições das funções e restrições que são geradas durante o processo de engenharia de requisitos z Atividades de Engenharia de Requisitos – Recursos Humanos 6/17/19 17 Organização e Responsabilidade - Papéis Analista de Negócios Negocia junto com os clientes e os demais envolvidos a lista dos requisitos iniciais e suas ampliações, priorizando-os e quando necessário agrupando-os em pacotes a serem desenvolvidos em iterações. É responsável por explicitar as regras de negócio e o glossário associado ao negócio. Analista de Requisitos Elicita os requisitos de produto e registrá-os de forma adequada. Garante a rastreabilidade dos requisitos de negócio e requisitos de produto ao longo do projeto. Cliente Aprova a versão final do escopo da aplicação, descrito na Especificação de Requisitos de software Inspetor Inspeciona a Especificação de Requisitos de Software com relação ao formato. Testador Aplica o Plano de Testes e assegura que os requisitos implementados estão de acordo com o requisitado pelo cliente. z Ø Explicitar o domínio do problema Ø Identificar possibilidade de reuso de solução Ø Identificar pessoas e áreas impactadas Ø Elicitar e classificar os requisitos de negócio Ø Envolver a área de serviços e definir alternativas de solução Ø Analisar e validar os requisitos Necessidades Analista de Negócios Regras de Negócio Glossário Documento de Visão Elicitaçãodos Requisitos de Negócio 6/17/19 18 z Especificação e Modelagem de Requisitos Ø Elicitar Requisitos de Produto Ø Especificar casos de uso e validá-los Ø Especificar requisitos não funcionais Ø Analisar e validar os requisitos Requisitos p/ Inspeção Plano e Casos de Teste Casos de Uso e Esp. Suplementar Regras de Negócio Glossário Documento de Visão Analista de Requisitos z Verificação e Validação dos Requisitos Ø Verificar conflitos de requisitos Ø Verificar consistência de requisitos Ø Verificar completude de requisitos Ø Verificar existência de requisitos ambíguos Analista de Requisitos Requisitos p/ Inspeção Plano e Casos de Teste Casos de Uso e Esp. Suplementar Ø Garantir a rastreabilidade dos requisitos Ø Validar requisitos com o cliente Inspeto r Especificação de Requisitos Atualizada Resultado dos Casos de Teste 6/17/19 19 z Rastreabilidade e Gestão de Mudanças Ø Avaliar o impacto nos requisitos Ø Validar com o cliente Ø Notificar os envolvidos Ø Atualizar as especificações de requisitos Ø Garantir a rastreabilidade nos requisitos Necessidade Documento de Visão Atualizado Solic. Mudança Analista de Requisitos Analista de Negócios Especificação de Requisitos Atualizada z Elicitação de Requisitos 6/17/19 20 z Ø Explicitar o domínio do problema Ø Identificar possibilidade de reuso de solução Ø Identificar pessoas e áreas impactadas Ø Elicitar e classificar os requisitos de negócio Ø Envolver a área de serviços e definir alternativas de solução Ø Analisar e validar os requisitos Necessidades Analista de Negócios Regras de Negócio Glossário Documento de Visão Elicitação dos Requisitos de Negócio z Elicitação de Requisitos § Atividades que envolvem a descoberta de requisitos de um sistema: § identificação das fontes de informação § técnicas de elicitação (coleta de fatos) § comunicação (estabelecer uma linguagem comum) § Envolve pessoal objetivando descobrir: § o domínio de aplicação § serviços que devem ser fornecidos § restrições 6/17/19 21 z Elicitação de Requisitos § Pode envolver diferentes tipos de pessoas em uma organização (stakeholders): § usuários § gerentes § desenvolvedores § especialistas de domínio § sindicatos,... § A equipe de desenvolvimento e clientes trabalham em conjunto visando identificar: § detalhes do domínio da aplicação § serviços que o sistema deve oferecer § desempenho § restrições de hardware, ... z Elicitação de Requisitos § Problemas: § Em geral, stakeholders não sabem o que querem de fato § dificuldade de expressão § pedidos não realistas § Stakeholders expressam requisitos em sua própria terminologia § conhecimento implícito § Stakeholders distintos podem ter requisitos conflitantes § Fatores políticos podem influenciar os requisitos do sistema § Ambientes econômicos e de negócios são dinâmicos § requisitos mudam durante o processo de análise § novos requisitos podem surgir (novos stakeholders) 6/17/19 22 z Elicitação de Requisitos § Atividades do Processo: § Compreensão do domínio § Coleta de requisitos § Classificação § Resolução de conflitos § Definição de Prioridades § Verificação de requisitos z Compreensão do Domínio § Os analistas devem desenvolver sua compreensão do domínio da aplicação § se estiver desenvolvendo um sistema de supermercado deverá descobrir como este funciona § utilizar técnicas para descobrir este funcionamento § aprender a linguagem do usuário § elaborar um Glossário 6/17/19 23 z Coleta de Requisitos § Interagir com stakeholders para descobrir os requisitos § A coleta de requisitos é feita através de técnicas § Os requisitos são simplesmente documentados à medida que são coletados § resulta em documento preliminar (draft) z Classificação dos Requisitos § Consiste basicamente em agrupar os diversos requisitos coletados em categorias bem-definidas § Classificação: § Funcional Ex.: Deve ser possível consultar o preço de uma mercadoria § Não Funcional Ex.: A consulta deve retornar uma resposta em no máximo 5s § Inversos Ex.: O sistema não fará controle de estoque. 6/17/19 24 z Resolução de Conflitos § É normal que ocorram requisitos conflitantes § Por exemplo § R-23: O sistema deve ... § R-45: O sistema não deve ... § Cliente é o responsável por resolver conflitos e ambigüidades z Atribuição de Prioridade § Alguns requisitos são mais urgentes que outros § É essencial determinar a prioridade dos requisitos junto ao cliente § Requisitos de maior prioridade são considerados em primeiro lugar 6/17/19 25 z Prioridade § Requisitos podem ser agrupados em classes, por exemplo: § Essenciais § Importantes § Desejáveis § Em princípio, o sistema deve abranger todos os requisitos de essenciais para desejáveis z Exemplo de Prioridade § A consulta ao extrato bancário deve retornar dados do movimento até o dia anterior § Prioridade: Essencial § A consulta ao extrato bancário deve visualizar dados segundo padrão X § Prioridade: Importante § A consulta ao extrato bancário deve usar cores vermelhas para saldos negativos § Prioridade: Desejável 6/17/19 26 z Verificação de Requisitos § Os requisitos são verificados § Completos? § Consistentes? § Em concordância com o que os stakeholders desejam? z Referências § Requirements Engineering – Processes and Techniques, Gerald Kotonya, Ian Sommerville, Wiley, 1998 § Information Systems: An introduction to informatics in organizations. P. Beynon- Davies, Palgrave, 2002 § Software Testing, Ron Patton, SAMS, 2001 § Planeamento de Sistemas de Informação, Luís Amaral, João Varajão, FCA Editora, 2000 § Requirements Analysis and System Design: Developing Information Systems with UML, L. A. Maciaszek, Addison-Wesley, 2001 § IEEE Std 610.12: 1990 - Standard Glossary of Software Engineering Terminology (http://ieeexplore.ieee.org/iel1/2238/4148/00159342.pdf?arnumber=159342) § Guide to the Software Engineering Body of Knowledge (SWEBOK), 2004 edition, IEEE Computer Society (http://www.swebok.org/ ) § ISO/IEC Std 12207:1995 - Information technology - Software life cycle processes (http://www.iso.org/ ) http://ieeexplore.ieee.org/iel1/2238/4148/00159342.pdf?arnumber=159342 http://www.swebok.org/ http://www.iso.org/
Compartilhar