Caderno do Aluno Engenharia de Requisitos de Software Visão Geral João Sousa Apoio: Desenvolvimento de Sw - Como estamos? • Segundo o Standish Group (CHAOS Report 2004): – 34% dos projetos com sucesso. – 15% dos projetos cancelados antes de completados. – 51% dos projetos completados com problemas: • Custo adicional médio: 46% • Prazo adicional médio: 82% • Entrega média: 52% do escopo previsto Nota: Já foi pior!! – Veja relatório de 1994 Nota: E não tem melhorado Em 2008 32% dos projetos com sucesso http://www.standishgroup.com/newsroom/chaos_2009.php Slide 2 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 1 Caderno do Aluno Fatores de Sucesso • Características normalmente presentes em projetos bem sucedidos: – Apoio da alta direção. – Stakeholders comprometidos e participando efetivamente do projeto. – Definição clara dos requisitos e método controlado de modificações. – Processo de desenvolvimento organizado. – Estimativas realistas. – Gerenciamento efetivo do projeto (incluindo riscos). Slide 3 Disciplinas Uma disciplina é uma coleção de atividades que estão relacionadas a uma área de conhecimento. • As disciplinas são: – Modelagem de Negócios – Requisitos – Análise e Design – Implementação – Implantação – Gerência de Configuração e Mudança – Gerenciamento de Projeto – Teste Slide 4 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 2 Caderno do Aluno Relacionamento entre as Principais Disciplinas orientam Escopo Requisitos Gerência Projetos projetados verificados implementados planeja acompanha construídos Análise e Design avaliados Implementação controlados Testes Gerência de Configuração e Mudança Slide 5 Importância dos Requisitos • “A parte individual mais difícil da construção de um sistema de software é decidir o que construir. Nenhuma parte do trabalho danifica tanto o sistema resultante se for feita de forma incorreta. Nenhuma outra parte é mais difícil de se consertar depois.” Fred Brooks • Quanto mais tarde no processo de desenvolvimento um defeito for detectado, maior será o custo para consertá-lo. • Estágio Custo Relativo Requisitos 1-2 Design 5 Codificação 10 Teste de Unidade 20 Teste de Aceitação Manutenção 50 200 Slide 6 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 3 Caderno do Aluno Importância dos Requisitos Problema Real Requisitos Especificação Correta Especificação com Erro • Os erros são propagados e aumentam substancialmente quanto mais cedo forem cometidos. • Erros em requisitos contribuem para 70% do retrabalho e podem consumir de 25% a 40% do orçamento do projeto. Fonte : Boehm e Papaccio Design Implementação Testes Design com Erro Design Correto Design Baseado em Especificação com Erro Código Correto Código com Erro Funções Corretas Erros Fácil Correção Código Baseado em Código Baseado em Design com Erro Especificação com Erro Erros “Difícil’ Correção Erros Ocultos Slide 7 Requisito - Definição • Algo que se deseja ou precisa (Webster´s Dictionary) • Uma característica que o usuário necessita para resolver um problema ou atingir um objetivo (IEEE Standard) • Uma característica que o sistema deve possuir para satisfazer um contrato, padrão ou outro documento formal (IEEE Standard) Slide 8 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 4 Caderno do Aluno Níveis de Abstração - Problema x Solução Necessidades Problema Solução Características (requisitos de alto nível) Visão Especificação Detalhada Requisitos detalhados do software Slide 9 Necessidade Eu preciso me comunicar com outras pessoas, seja por iniciativa minha ou delas, a qualquer tempo, onde quer que eu esteja. Slide 10 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 5 Caderno do Aluno Solução O que diferencia uma solução da outra? Como conhecer essas diferenças? Slide 11 Refinamento de Requisitos Necessidade Especificação Detalhada Acompanhar indicadores de qualidade ao longo do projeto. Requisito 63.1: Apresentar um relatório de histograma mostrando o tempo no eixo x e o número de defeitos encontrados no eixo y. Visão Sistema de Controle de Defeitos Característica 63: Apresentar graficamente a evolução da quantidade de defeitos ao longo do projeto. Requisito 63.2: O usuário pode informar o período a ser apresentado no relatório em uma das seguintes unidades: dias, semanas ou meses. Padrão: semanas Requisito 63.3: O usuário pode informar o conjunto de módulos do sistema que serão considerados no relatório. Padrão: todos. Requisito 63.4: O relatório de histograma deve seguir o formato descrito no apêndice X. Slide 12 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 6 Caderno do Aluno Requisitos Funcionais x Não Funcionais • Requisitos Funcionais – Funcionalidades disponibilizadas pelo software, de modo a capacitar os usuários a executar suas tarefas e satisfazer às necessidades do negócio. – São ações que o produto deve realizar de modo a fornecer funcionalidades úteis para seus usuários. – Ex: emitir conta telefônica mensal • Requisitos Não Funcionais – São propriedades ou qualidades que o produto deve possuir – Em sua maioria, não expressam nenhuma função a ser realizada pelo software, e sim necessidades e restrições que o mesmo deve satisfazer. – Relacionados com a Arquitetura do Software – Ex: desempenho, robustez, facilidade de uso, ... Slide 13 Modelo Genérico da Engenharia de Requisitos Levantamento dos Requisitos Análise e Negociação dos Requisitos Especificação dos Requisitos Verificação e Validação dos Requisitos Gerência dos Requisitos Slide 14 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 7 Caderno do Aluno Levantamento • Entender as atividades, os conceitos, os problemas, a cultura e a linguagem dos usuários para construir sistemas que atendam às suas necessidades. • Entrevistas • Observação / Demonstração • Reuniões Estruturadas – Brainstorming e Brainwriting – Workshops – JAD: Joint Application Development – ... Slide 15 Análise e Negociação • Já falei com os interessados. Agora é só escrever os casos de uso, certo? • Analisar o que foi levantado: – Registrar os problemas / necessidades. – Modelar o entendimento sobre o contexto (dados, processos, envolvidos, locais, eventos/ciclos temporais, motivações/regras). – Entender a importância relativa das necessidades. – Identificar conflitos, inconsistências, omissões. – Propor e negociar alternativas de solução. Slide 16 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 8 Caderno do Aluno Especificação • Requisitos são especificados de forma que todos os envolvidos possam ter um entendimento comum sobre o que deve ser construído. • Como especificar? – User Stories – Casos de Uso – Especificações Tradicionais • Preciso mesmo especificar? – Nossa memória tem capacidade limitada. • Projeto Boeing 777: 300.000 requisitos!! Slide 17 Refinamento de Requisitos • Até que nível de detalhe devemos ir? • Definir: – Cada entrada e saída – Cada validação – Cada transformação – Os comportamento normais e alternativos – Os comportamentos em cada exceção • Não se esqueça das questões não funcionais – Performance, robustez, confiabilidade, segurança, etc. • E a Interface com o Usuário? – Nível mais concreto observado pelo usuário. – Deve ser validada antes de se investir grande esforço na construção. Processo de Refinamento: “Os problemas surgem nos detalhes!” Slide 18 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 9 Caderno do Aluno Verificação e Validação • Estamos construindo o produto correto? • Estamos construindo o produto da forma correta? • A especificação é examinada de forma a tentar assegurar que os requisitos foram definidos sem ambigüidades, inconsistências ou omissões, e que todos os defeitos foram detectados e corrigidos. • Inspeção e utilização de Checklists • Diferentes Perspectivas (Cliente, Testador, ...) • Protótipos e Maquetes. Slide 19 Gerência de Requisitos • Define uma abordagem sistemática para levantar, organizar e documentar as modificações nos requisitos. • É executada em paralelo durante todo o processo de desenvolvimento. • Fornece instrumentos para apoiar a análise de impacto das mudanças. • Verifica a consistência entre os requisitos e todos demais produtos relacionados (código, modelos, cenários de testes, ...). • Captura de informações de apoio à gerência do projeto: – Importância, Risco, Release previsto, ... Slide 20 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 10 Caderno do Aluno Controlar as mudanças dos Requisitos Cliente Fornecedor Solicitar Mudança Identificar Requisitos Impactados Definir Impacto da Mudança Aprovar Solicitação de Mudança Estimar Impacto da Mudança Revisar Impacto da Mudança Implementar e Validar Mudança • Ferramenta de Workflow para acompanhamento – JIRA, ClearQuest, ... Slide 21 Rastreabilidade Necessidade Característica Requisito Suplementar Caso de Uso Caso de Teste Regra Módulo Implementação Todos os itens de projeto e implementação partem de um requisito inicial e se identificam com ele! Slide 22 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 11 Caderno do Aluno Processo • Conjuntos de atividades definidas – Insumos – Resultados – Papéis – Instrumentos de apoio - Ferramentas • e uma seqüência estabelecida entre elas – pode conter ciclos – deve conter possibilidade de paralelismo • Define os artefatos que serão desenvolvidos • Define quando e como eles serão desenvolvidos (atividades) • Define o perfil de quem irá desenvolvê-los Slide 23 Processo Métodos / Técnicas Processo Pessoas habilitadas, treinadas e motivadas Ferramentas / Equipamentos / Tecnologia Slide 24 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 12 Caderno do Aluno Processo de Requisitos – Exemplo Necessidades An. Requisito Visão Geral Software Definir Escopo Projeto Lista de Casos de Uso An. Requisito Identificar Comportamento do Software Casos de Uso An. Requisto Detalhar Requisitos do Software M Aprovação Requisitos Cliente Aprovação Detalhamento M Cliente Plano Gerência Requisitos Atributos e Rastreabilidade An. Requisito Gerenciar Requisitos Slide 25 Definir a Visão Geral da Solução • Entender o problema a ser resolvido. • Identificar os stakeholders e suas necessidades. • Definir as fronteiras da solução. • Identificar restrições e premissas. • Definir características funcionais que o software deve apresentar para atender as necessidades. • Definir características suplementares que o software deve apresentar para atender as necessidades. • Definir características que poderiam ser aplicáveis, mas que não serão contempladas pelo software. Slide 26 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 13 Caderno do Aluno Caso de Uso • O comportamento funcional do software pode ser descrito através da técnica de casos de uso. • O comportamento do software é documentado em um modelo de Caso de Uso que ilustra as funcionalidades existentes no software (Casos de Uso), suas fronteiras (Atores) e os relacionamentos entre os Casos de Uso e os Atores (Diagramas de Caso de Uso). • Um caso de uso é um curso completo de eventos iniciados por um ator, especificando as interações que ocorrem entre atores e o software, incluindo variações, de modo que um resultado de valor observável seja obtido. • O papel mais importante deste modelo é comunicar o comportamento do software aos clientes ou usuários finais. Slide 27 Ator • Representa alguém ou alguma coisa que interage com o software. Não fazem parte do software. Eles delimitam os elementos externos ao software. • Escreva para cada ator uma breve descrição e defina as suas responsabilidades. • Questões: – Ator Cliente X Operador ? Quem utiliza o sistema? – Temporizador x Ator primário Slide 28 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 14 Caderno do Aluno Identificando Casos de Uso • Normalmente é difícil decidir se um determinado conjunto de interações constituem apenas um caso de uso ou vários casos de uso. • Exemplo: – Inserir latas e garrafas – Solicitar impressão do recibo Quantos casos de uso você identifica neste exemplo? Slide 29 Decomposição Funcional • Quebrar um problema em partes pequenas e isoladas. – As partes trabalham juntas para prover a funcionalidade do sistema. – Muitas vezes não fazem sentido isoladamente. • Casos de Uso: – NÃO é decomposição funcional. – Mantém a funcionalidade agrupada para descrever um uso completo do sistema. – Provê contexto. – Mesmo nível de detalhe da decomposição funcional mas estruturados para facilitar o entendimento dos stakeholders Slide 30 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 15 Caderno do Aluno Decomposição Funcional: Um Exemplo Processar Transação Inserir Cartão Consórcio Bancos Entrar PIN Selecionar Conta Destino Selecionar Transferência Cliente Entrar Montante de Fundos Selecionar Conta Origem Selecionar Saque Selecionar Saldo da Conta Slide 31 Evitar Decomposição Funcional Sintomas Ações Corretivas – Casos de uso muito pequenos – Muitos casos de uso – Casos de uso sem resultado de valor – Nomes com operações de baixo nível • “Operação” + “objeto” • “Função” + “dados” • Exemplo: “Inserir cartão” – Buscar um contexto maior “Por que estamos construindo o sistema?” – Coloque-se no papel do usuário “O que o usuário quer alcançar?” “O objetivo de quem esse caso de uso satisfaz?” “Que valor este caso de uso agrega?” – Dificuldade em entender o modelo com um todo Slide 32 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 16 Caderno do Aluno Casos de Uso (sem decomposição funcional) Sacar Dinheiro Transferir Fundos Consórcio Bancos Cliente Depositar Fundos Slide 33 Caso de Uso - Atividades de Identificação • A identificação dos casos de uso é uma atividade de definição da solução • É fundamental contextualizar o motivo da existência de cada caso de uso • Entender como os casos de uso colaboram entre si para atender as necessidades e os objetivos da solução • Combinar o entendimento funcional e de informações (domínio) • Análise do problema para definição da solução Slide 34 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 17 Caderno do Aluno Caso de Uso - Atividades de Identificação • Definir Módulos – Organizar os casos de uso em pacotes a partir do domínio do problema. • Identificar Atores • Identificar Casos de Uso – Nome e Descrição Resumida • Contextualizar o motivo da existência de cada caso de uso – Relacionar Casos de Uso identificados com atividades, entidades(domínio) e eventos do negócio. – Existe uma “ordem de execução” desses casos de uso? – Representar o ciclo de vida para entidades que tiverem uma dinâmica de estados significativa. Slide 35 Elaborar Modelo de Domínio (Conceitual) Conferência Edição da Conferência 1 0..* Tópico de Interesse 0..* 0..* 1 * Remetente Pessoa 1 +classicado em * * Autor * * Artigo * Slide 36 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 18 Caderno do Aluno Elaborar Modelo de Domínio (Estados) Visão Dinâmica da Entidade de Negócio Artigo UC - Cancelar Submissão UC - Submeter Artigo UC - Submeter Artigo Com Pendência Submetido UC - Cancelar Submissão Cancelado UC - Realizar Triagem Artigo : [ Artigo Não OK ] UC - Cancelar Submissão UC - Realizar Triagem Artigo : [ Artigo OK ] Liberado para Distribuição Slide 37 Casos de Uso • Um caso de uso descreve um conjunto de caminhos que podem ser seguidos durante a utilização do sistema em um determinado contexto. Ex: Registrar Venda A) Venda normal B) Produto não está disponível C) Cancelamento de Item D) Cancelamento da Venda Fluxo normal e Fluxos alternativos/exceções Slide 38 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 19 Caderno do Aluno Casos de Uso X Cenários • Cenário de utilização é a descrição de uma situação real que os usuários do software poderão encontrar. • Cada caso de uso está relacionado com uma coleção de cenários. • Explorar os cenários auxilia na definição dos Casos de Uso. – Cenários (concreto) x Caso de Uso (abstração). Slide 39 Cenários - Exemplo • Caso de Uso Empréstimo de Filme - Cenário 1 • O sócio José de matrícula 111 solicita o empréstimo do filme “Avatar”. • O sócio não está com saldo devedor. • O sócio não possui outros filmes emprestados em seu poder. • Existem cópias do filme disponíveis (não estão nem emprestadas e nem reservadas por outro sócio). Slide 40 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 20 Caderno do Aluno Cenários - Exemplo • Caso de Uso Empréstimo de Filme - Cenário 2 • O sócio José de matrícula 111 solicita o empréstimo do filme “Avatar”. • O sócio não está com saldo devedor. • O sócio possui cinco outros filmes emprestados em seu poder. • Existem cópias do filme disponíveis (não estão nem emprestadas e nem reservadas por outro sócio). Slide 41 Cenários - Exemplo • Caso de Uso Empréstimo de Filme - Cenário 3 • O sócio José de matrícula 111 solicita o empréstimo do filme “Avatar”. • O sócio não está com saldo devedor. • O sócio não possui outros filmes emprestados em seu poder. • Não existem cópias do filme disponíveis (todas as cópias estão emprestadas ou reservadas por outros sócios). Slide 42 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 21 Caderno do Aluno Formato da Especificação de Caso de Uso • Vários formatos foram propostos por diferentes autores • Componentes Principais – Identificador do Caso de Uso (ID) – Nome do Caso de Uso – Descrição ou Resumo – Objetivo do Caso de Uso – Atores Participantes – Pré-condições – Pós-condições – Fluxos de Eventos • Fluxo Normal • Sub-Fluxos • Fluxos Alternativos • Fluxos de Exceção Slide 43 Formato da Especificação de Caso de Uso • Componentes Auxiliares – Outros requisitos (tipicamente requisitos não funcionais) – Regras de Negócio (específicas desse caso de uso) – Dados (detalhamento dos fluxos de dados utilizados em diferentes pontos do caso de uso) – Detalhamento das Interfaces • Alternativas para os componentes auxiliares: – Seção específica na descrição detalhada do caso de uso para os itens que relacionados só a um caso de uso específico. – Documento específico para os itens relacionados a vários casos de uso. – Repositório Corporativo (baseado em SGBD) melhor Slide 44 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 22 Caderno do Aluno Formas de Detalhamento dos Fluxos Passos numerados com rótulos IDENTIFICAÇÃO DO SÓCIO 1. Atendente solicita ao sistema iniciar o registro de um aluguel de cópias. 2. Sistema solicita a identificação do sócio que está alugando as cópias. 3. Atendente informa o código do sócio. 4. Sistema verifica que o código informado corresponde a um sócio que pode alugar cópias. 5. Sistema apresenta o número máximo de cópias que o sócio pode levar. Slide 45 Formas de Detalhamento dos Fluxos Passos numerados com rótulos (estilo jornal) IDENTIFICAÇÃO DAS CÓPIAS 6. Atendente informa a identificação de cada cópia a ser alugada. 7. A cada cópia informada, o sistema apresenta o título do filme correspondente, o preço de aluguel da cópia e o valor total do aluguel. PAGAMENTO 8. Atendente informa o valor pago pelo sócio e confirma o aluguel. 9. Sistema emite o comprovante de aluguel de cópias. 10. O sistema registra as informações do aluguel realizado e o caso de uso se encerra. Slide 46 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 23 Caderno do Aluno O que descrever nos Fluxos? • Como e quando o caso de uso é iniciado – Atendente solicita ao sistema iniciar o registro de um aluguel de cópias. • Informações/eventos que são trocados entre um ator e o sistema Atendente informa a identificação de cada cópia a ser alugada. (Ação do Ator) Sistema apresenta o nome do filme correspondente, o preço de aluguel da cópia e o valor total devido (Resposta Externa) • Armazenamento/Atualização de informações no sistema – O sistema registra as informações do aluguel realizado. (Resposta interna) • Indicação de verificações realizadas pelo sistema – Sistema verifica que o código informado corresponde a um sócio que pode alugar cópias (Verificação). • Como e quando o caso de uso termina Slide 47 Especificação Tudo se resume a especificar casos de uso? RNF Dados Caso de Uso Interações (Fluxos) Regras GUI 48 Slide 48 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 24 Caderno do Aluno Recomendações Gerais • Use um estilo consistente e padronizado de descrição (trabalho em equipe). • Explore todos os cenários possíveis • Evite advérbios e adjetivos (muito, mais, melhor,...). • Cuidado com pronomes (seu, sua, dele, ...) • Evite utilizar termos que representem elementos concretos de interface com o usuário (botão, listbox, clicar, ...) • Seja conciso e objetivo • Dilema - Diferentes perspectivas de detalhamento – Comunicar ao usuário o funcionamento do software – Comunicar aos desenvolvedores as funcionalidades a serem desenvolvidas – Roteiro para os testes – Documentar o Software Slide 49 Referências • Managing Software Requirements: A Use Case Approach, Second Edition. Leffingwell, D.; Widrig, D. Addison-Wesley Pub Co, 2003. ISBN: 032112247X. • Software Requirements, Second Edition. Wiegers, K. Microsoft Press, 2003. ISBN: 0735618798. • Use Case Modeling. Bittner, K; Spence, I. Addison-Wesley Pub Co, 2002. ISBN: 0201709139. • Writing Effective Use Cases. Cockburn, A. Addison-Wesley Pub Co, 2000. ISBN: 0201702258 Slide 50 Engenharia de Requisitos Copyright © 2011 Alexandre Correa e João Sousa. Todos os direitos reservados. Este documento não poderá ser reproduzido, na íntegra ou em parte, sem prévia autorização por escrito dos autores. 25