Engenharia de Software Engenharia de Requisitos Docência Orientada: Henrique Michel Persch [email protected] Prof.ª: Lisandra Manzoni Fontoura Engenharia de Requisitos, Liane Cafarate, 2009 ‹#› Roteiro Processos de Engenharia de Requisitos • Estudos de viabilidade • Elicitação e análise de requisitos • Especificação de requisitos • Validação de requisitos É um processo iterativo em que as atividades são intercaladas. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Processos de engenharia de requisitos Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Etapas do processo Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Estudo de viabilidade Um estudo de viabilidade decide se vale a pena ou não gastar tempo e esforço com sistema proposto. É um estudo breve e focalizado que verifica • Se o sistema contribui para os objetivos da organização; • Se o sistema pode ser implementado usando tecnologia atual e dentro do orçamento; • Se o sistema pode ser integrado a outros. Muitas vezes as empresas desenvolvem sistemas que não contribuem para os seus objetivos pois elas não têm um perfil claro desses objetivos. • O que faria se o sistema não fosse implementado? Quais são os problemas com processo atuais? Como o sistema proposto ajudará? ... Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e análise de requisitos Envolve pessoal técnico trabalhando com os clientes para descobrir sobre o domínio de aplicação, os serviços que o sistema deve fornecer e sobre as restrições operacionais. Por que esse processo é tão difícil? • Stakeholders não sabem o que eles realmente querem. • Stakeholders expressam requisitos em seus próprios termos. • Diferentes stakeholders podem ter requisitos conflitantes. • Fatores organizacionais e políticos podem influenciar os requisitos de sistema. • A mudança de requisitos durante o processo de análise. Novos stakeholders podem surgir e o ambiente de negócio pode mudar. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Processo de elicitação e análise 1. Descoberta de Requisitos 2. Classificação e organização de requisitos 4. Especificação de requisitos Processo iterativo e contínuo! 3. Priorização e Negociação de requisitos Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Etapas Descoberta de requisitos • Interação com os stakeholders para coletar seus requisitos. Classificação e organização de requisitos • Agrupa requisitos relacionados e organiza-os em conjuntos coerentes. Priorização e negociação de requisitos • Priorização de requisitos e resolução de conflitos de requisitos. Especificação de requisitos • Os requisitos são documentados e inseridos no próxima ciclo. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Descoberta de Requisitos É o processo de reunir informações sobre os sistemas propostos e existentes, e obter requisitos de usuário e de sistema a partir dessas informações. As fontes de informação incluem documentação, stakeholders e as especificações de sistemas similares. A obtenção ocorre por meio de entrevistas e observações, podendo ser usados cenários e protótipos para auxiliar no processo. Além dos stakeholders, os requisitos podem ser provenientes do domínio e de outros sistemas (essas fontes de requisitos podem ser representadas como pontos de vista do sistema). Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Descoberta de Requisitos – Entrevistas Servem para obter um entendimento geral sobre o que os stakeholders fazem, como eles podem interagir com o sistema e as dificuldades que enfrentam os sistemas atuais; Formais/Informais; Entrevistas Abertas (não existe roteiro predefinido) ou Fechadas (stakeholder responde perguntas predefinidas); Na prática, abertas+fechadas; Abertas geralmente não funcionam bem; Dificuldade de elicitar requisitos de domínio por causa da linguagem utilizada. Dificuldade de elicitar requisitos organizacionais (poder, influência); As entrevistas são um método complementar; Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Descoberta de Requisitos – Cenários São exemplos reais de como um sistema pode ser usado São úteis para adicionar detalhes a um esboço da descrição de requisitos Um cenário deve incluir: Descrição do fluxo normal de eventos no cenário; Descrição do que pode dar errado e como isso é tratado; Descrição do que os usuários esperam do sistema no início do cenário; Informações sobre outras atividades que podem ocorrer simultaneamente; Descrição do estado do sistema no fim do cenário. Podem ser escritos na forma de textos, com diagramas, imagens... Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Descoberta de Requisitos – Casos de uso Um caso de uso engloba um conjunto de cenários Característica fundamental na UML Um caso de uso identifica os atores envolvidos em uma interação e dá nome ao tipo de interação. Representa todas as possíveis interações que serão descritas nos requisitos de sistema. Os casos de uso identificam as interações individuais entre o sistema e seus usuários ou outros sistemas. Cenários e casos de uso são técnicas eficazes para elicitar requisitos dos stakeholders que vão interagir diretamente com sistema. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Descoberta de Requisitos – Casos de Uso Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Etnografia O que é? Técnica de observação que pode ser usada para compreender os requisitos sociais e organizacionais; Sistemas não existem isoladamente (contexto social, organizacional); Muitos sistemas nunca são usados porque não levam em conta requisitos restringidos por esse contexto; Etnografia focalizada: Combina etnografia com prototipação. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Elicitação e Análise Etnografia - Vantagens Ajuda que presta aos analistas para descobrir requisitos implícitos do sistema, que refletem processos reais e não formais; Pessoas consideram muito difícil articular detalhes do seu trabalho, pode ser difícil relacionar com as demais áreas; Eficaz para descobrir dois tipos de requisitos – Requisitos derivados da maneira como as pessoas realmente trabalham – Requisitos derivados da cooperação e do conhecimento das atividades de outras pessoas; Técnica não apropriada para obter requisitos organizacionais ou de domínio (foco no usuário); Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Validação de Requisitos Dedica-se a mostrar que os requisitos definem o sistema que o cliente realmente deseja. Custos de erros de requisitos são altos e, desse modo, a validação é muito importante: – A custo da reparação de um erro de requisitos depois da entrega pode equivaler a 100 vezes o custo de reparação de um erro de implementação. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Validação de Requisitos Verificação de Requisitos Verificação de validade: O sistema fornece as funções que melhor apóiam as necessidades do cliente? Verificação de consistência: Existe algum tipo de conflito de requisitos? Verificação de completude: Todas as funções requisitadas pelo cliente foram incluídas? Verificação de realismo: Os requisitos podem ser implementados com o orçamento e a tecnologia disponíveis? Verificabilidade: Os requisitos podem ser verificados? Os requisitos do sistema devem ser passíveis de verificação. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Validação de Requisitos Revisões de Requisitos Existe uma série de técnicas de validação de requisitos: Revisões de Requisitos: os requisitos são analisados que verificam erros e inconsistências. Prototipação: é um modelo executável demonstrado aos usuários finais e clientes que verificam se atende as reais necessidades. Geração de Casos de Teste: Os requisitos devem ser testáveis. Os casos de testes devem ser parte do processo de validação, que revelam problemas de requisitos. Durante o processo de validação dos requisitos raramente encontrará todos os problemas dos requisitos. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Gerenciamento de Requisitos O que é? É o processo de compreensão e controle das mudanças nos requisitos do sistema. O entendimento dos stakeholders a respeito do problema está em constante mutação / evolução. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Gerenciamento de Requisitos Processo pra compreender e controlar a mudança dos requisitos de sistema; Necessário manter acompanhamento dos requisitos individuais e manter as ligações entre os requisitos dependentes, de modo que seja possível avaliar o impacto das mudanças de requisitos; Requisitos permanentes: relativamente estáveis, se relacionam diretamente com o domínio de aplicação do sistema; Requisitos voláteis: provavelmente irão mudar durante o processo do desenvolvimento ou depois de instalado; Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Gerenciamento de Requisitos Planejamento Durante o estágio de gerenciamento de requisitos, você tem de planejar: – – – – A Identificação de requisitos • Como os requisitos são identificados individualmente; O processo de gerenciamento de mudanças • Conjunto de atividades que avaliam o impacto e o custo das mudanças; Políticas de rastreabilidade • Definem os relacionamentos entre cada requisito e entre os requisitos e o projeto de sistema que deve ser registrado. Ferramentas de Apoio • O apoio de ferramenta requisitada para auxiliar no gerenciamento das mudanças requisitos. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Gerenciamento de Requisitos Planejamento: Ferramentas de Apoio Necessidade de Ferramentas de Apoio para: – Armazenamento de Requisitos: • – Gerenciamento de mudanças: • – Os requisitos devem ser mantidos em um repositório de dados gerenciado e seguro. Processo de gerenciamento de mudanças simplificado com o uso de ferramentas; Gerenciamento de Rastreabilidade: • Algumas ferramentas utilizam de PLN para descobrir possíveis relações entre requisitos. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Gerenciamento de Requisitos Gerenciamento de Mudanças Deve ser aplicado à todas as mudanças propostas aos requisitos. Estágios principais – Análise de problema e especificação de mudanças: discutir problemas e mudanças de requisitos; – Análise de mudança e custo: avaliar os efeitos das mudanças sobre outros requisitos; – Implementação de mudança: Modificar documentos de requisitos e outros documentos para refletir as mudanças. Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#› Bibliografia SOMMERVILLE, I. Engenharia de Software, 9 edição. São Paulo: Pearson AddisonWesley, 2011. PRESSMAN, R. Engenharia de Software, 6 edição. São Paulo: McGraw-Hill, 2006. MILES, R. e PILONE, D. Head First Sofware Development. O'Reilly. Requirements Definition: Bringing Software Requirements to Life:http://www.youtube.com/watch?v=fHjc3cJ6m00 The Problem with Software Definition:http://www.youtube.com/watch?v=FqkQrPmsP2w&feature=related Engenharia de Requisitos, Henrique Michel Persch, 2015 ‹#›