Baixe o app para aproveitar ainda mais
Prévia do material em texto
�1 Bacharelado em Ciência da Computação 2014 Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Aula 04 In a calm sea every man is a pilot. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 2 Engenharia de Software I – Aula 4 � Revisão � Introdução ao Método Larman � Planejar e Elaborar � Construir � Analisar � Revisão de conceitos de Orientação a Objetos �2 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 6 Padrão IEEE para o Documento de Requisitos � 1 Introdução � 1.1 Propósito do documento de requisitos � Motivações, público-alvo, ... � 1.2 Escopo do produto � Explicitar o que o produto faz (e o que não faz). � Descrever a aplicação. � 1.3 Definições, acrônimos e abreviações � 1.4 Referências � Listar todos os documentos referenciados. � Especificar a origem dos documentos. � 1.5 Visão geral do restante do documento � Estrutura/organização. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 7 Padrão IEEE para o Documento de Requisitos � 2 Descrição Geral � 2.1 Perspectiva do Produto � Relacionamento: sistema, usuário, hardware, software, comunicação. � 2.2 Funcionalidades do Produto � 2.3 Características do Usuário � 2.4 Restrições Gerais � Limitações de hardware, considerações sobre segurança, ... � 2.5 Suposições e Dependências � Máquina específica, sistema operacional, ... �3 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 8 Padrão IEEE para o Documento de Requisitos � 3 Requisitos Específicos � Abrangem os requisitos funcionais, não funcionais e de interface. � Os requisitos podem documentar interfaces externas, descrever funcionalidade e desempenho do sistema, especificar requisitos lógicos de banco de dados, restrições de projeto, propriedades emergentes do sistema e características de qualidade. � 4 Apêndices � 5 Índice BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 9 Análise de Requisitos ANÁLISE DE REQUISITOS Engenharia de Sistemas de Computador Projeto de Software Como Proceder? �4 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 10 Princípios da Análise � O domínio de informação de um problema deve ser representado e compreendido � Modelos que descrevam a informação, função e comportamento do sistema devem ser desenvolvidos � Os modelos devem ser divididos em partições, de maneira que revele os detalhes em forma de camadas, preferencialmente � O processo de análise deve ter como foco a informação essencial do (UdeI) – detalhes de implementação ficam para a fase de Projeto BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 11 Princípios da Especificação � Separar funcionalidade de implementação � Uso de uma linguagem de especificação orientada ao processo � A especificação deve abranger o sistema do qual o software é um componente � A especificação deve abranger o sistema no qual o software opera �5 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 12 Princípios da Especificação (Cont.) � Uma especificação deve ser um modelo cognitivo � Uma especificação deve ser operacional � Uma especificação deve ser tolerante com a não- inteireza e ser expansível � Uma especificação deve ser localizada e fracamente acoplada BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 13 Estabelecimento das necessidades do sistema Estudo de viabilidade Modelagem do sistema Definição dos requisitos Especif. dos requisitos Especific. do sistema Documento de requisitos Relatório de viabilidade Relatório de necessidades Especificação do projeto Formulação dos requisitos �6 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 14 Para que tudo isso? � Obter uma descrição dos requisitos � Propor uma solução (“software”) que atenda ao requisitos da melhor maneira possível � Possibilidade de avaliar não apenas a proposta, mas também as conseqüências de decisões tomadas em tempo de projeto BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 15 Problema Solução Abstrato Concreto Problema X Solução �7 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 16 Portanto... � É preciso planejar considerando a maneira com que um projeto será implementado... Orientado a Objetos BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 18 Mundo x Paradigma OO � Mundo Real é formado por objetos que se interagem � Representar esses objetos em um software é mais natural e permanente do que representar a sua funcionalidade (decomposição funcional), pois essa é mutável � A representação usando objetos facilita o mapeamento do mundo real, ou seja, a criação de um modelo que o represente �8 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 19 Problema... ESPAÇO DE PROBLEMAS ESPAÇO DE SOLUÇÕES Gap Semântico Mundo Real Mundo Computacional Todo software representa um Modelo de um problema do mundo real, no Espaço de Soluções BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 21 Gap Semântico � Quanto menor o Gap (diferença entre espaços) mais fácil será : � o desenvolvimento da aplicação � assegurar a compreensão, confiabilidade e manutenção da aplicação � Diminuir o Gap implica em tornar o mapeamento do mundo real (modelo) mais próximo da realidade � Sendo mais “natural”, o Paradigma de Orientação a Objetos tem por objetivo diminuir o gap semântico �9 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 22 Criação de Modelos Mapeamento Processo de Identificação de “coisas” do mundo real para compor o modelo ABSTRAÇÃO Modelo Conceitual BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 23 Problema Solução Abstrato Concreto Problema X Solução �10 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 24 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 25 Método Larman: Visão Geral Tópicos e Habilidades Padrões Desenvolvimento Iterativo A/POO Notação UML Princípios e Diretrizes Engenharia de Requisitos �11 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 26 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 27 UML � História da UML � início em 1994 – esforço conjunto de Booch e Rumbaugh para combinar as notações diagramáticas de seus métodos Booch e OMT (Object Modeling Technique) � a eles juntaram-se outros colaboradores � adotada como padrão em 1997 pela OMG � continua a ser refinada… � versão 2.0 em andamento (???) �12 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 28 UML � Segundo OMG: “A UML (Unified Modeling Language - Linguagem de Modelagem Unificada) é uma linguagem para especificar, visualizar, construir e documentar os artefatos de sistemas de software, bem como para modelar negócios e outros sistemas quenão sejam de software” � Notação UML - principalmente diagramática, para modelagem de sistemas usando conceitos baseados na metáfora de “objetos” BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 31 UML � A UML é a linguagem padrão para visualizar, especificar, construir e documentar os artefatos de um sistema intensamente baseado em software � Pode ser usada com todos os processos, durante todo o ciclo de desenvolvimento, e com diferentes tecnologias de implementação; �13 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 32 Diagramas � Use Case � Diagramas de Estrutura Estática � Diagrama de Objetos � Diagramas de Classe � Diagramas de Interação � Diagrama de Seqüência � Diagrama de Colaboração � Statecharts � Diagramas de Atividade � Diagrama de Implementação � Diagrama de Componentes � Diagrama de Desdobramentos (Deployment) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 33 Problema Solução Abstrato Concreto Problema X Solução Diagrama de Classes Diagrama de Classes �14 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 34 Método Larman: Visão Geral � Processo Planejar e Elaborar � Casos de Uso: Formatos, Tipos e Diagrama � Modelo Conceitual: Conceitos e Associações � Processo Construir (Fase Analisar) � Modelo Conceitual: Agregações, Generalizações e Tipos Associativos � Diagramas de Seqüência � Contratos de Operação BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 35 Método Larman: Visão Geral � Auxiliar o desenvolvedor a: � Aplicar princípios, diretrizes e padrões na construção de software � Seguir um conjunto de atividades comuns de análise e projeto, a partir de um ciclo de desenvolvimento iterativo � Criar diagramas freqüentemente utilizados na notação UML �15 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 36 Desenvolvimento Iterativo � Um ciclo de vida iterativo (CVI) envolve a repetição dos ciclos de planejamento, elaboração, construção e instalação � O sistema cresce pela adição de novas funções (e refinamento das existentes) em cada ciclo iterativo � Cada ciclo ataca um pequeno conjunto de requisitos planejar elaborarconstruir instalar BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 37 Método Larman Planejar e Elaborar Construir Instalar Ciclo de Desenvolvimento 1 Ciclo de Desenvolvimento 2 … Refinar Plano Sincronizar Artefatos Analisar Projetar Construir Testar �16 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 38 Método Larman Planejar e Elaborar Construir Instalar Ciclo de Desenvolvimento 1 Ciclo de Desenvolvimento 2 … Refinar Plano Sincronizar Artefatos Analisar Projetar Construir Testar BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 39 Método Larman: Planejar e Elaborar Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário a 5. Implementar Protótipo bd 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial c 8. Definir Arquitetura Inicial do Sistema acd 9. Aperfeiçoar (Refinar) Plano a o n go in g b o pc io n al c ad iá v el d o rd em v ar ia da �17 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 40 Método Larman Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário 5. Implementar Protótipo 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial 8. Definir Arquitetura Inicial do Sistema 9. Aperfeiçoar (Refinar) Plano Engenharia de Requisitos BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 41 Entendimento dos Requisitos � Objetivos: � Criar os artefatos da fase de engenharia de requisitos � Documento de Especificação de Requisitos � Identificar e categorizar as funções do sistema � Identificar e categorizar os atributos do sistema e relacioná-los com as funções JÁ VISTO!!! �18 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 42 Funções do Sistema � O QUE o sistema deve fazer? � ex: autorizar pagamento por cartão de crédito � funções do sistema devem ser identificadas e listadas em agrupamentos lógicos � Geralmente escritas da forma: “O sistema deve fazer <X>” � Cada função pode ser expressa em termos de um ou mais requisitos que o sistema deve atender BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 43 Tipos de Funções � Evidente ou Visível (E): deve ser executada e o usuário tem conhecimento de ela foi executada � Oculta (O): deve ser executada, mas não é visível para o usuário � vale para muitos serviços técnicos de infra-estrutura, tais como salvar a informação em um dispositivo permanente de armazenamento � são freqüentemente, e incorretamente, esquecidas durante a fase de especificação de requisitos �19 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 44 Tipos de Funções � Enfeite/Decoração/Luxo (D): opcional � sua adição não afeta significativamente o custo ou outras funções. ??? BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 45 Estudo de caso - TPV � Descrição Geral: � O propósito deste projeto é criar um terminal de ponto de vendas (TPV) para ser usado em lojas de varejo � Clientes � ObjectStore, Inc., uma multinacional que comercializa objetos �20 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 46 Estudo de caso - TPV � Objetivos: � O objetivo geral é aumentar a automatização das compras (checkout) para permitir serviços e processos comerciais mais rápidos, melhores e mais baratos. Tipicamente, isso inclui: � checkout (passagem pelo caixa) mais rápido para o cliente � análise rápida e precisa do crédito � controle automático do estoque BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 47 TPV - Funções Básicas � R1.1 – Registrar a venda em andamento (corrente), isto é, os itens comprados (E) � R1.2 – Calcular o total da venda corrente, incluindo os cálculos de impostos e de cupons de desconto (E) � R1.3 – Capturar a informação de um item adquirido, usando o código, obtido por um leitor de código de barra, ou pela entrada manual do código do produto, usando o código universal de produto (CUP ou UPC) (E) �21 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 48 Funções Básicas - TPV � R1.4 – Reduzir a quantidade em estoque quando a venda for finalizada (O) � R1.5 – Registrar as vendas completadas (O) � R1.6 – O funcionário (Caixa) deve abrir o caixa (log in) com um Identificador (ID) e uma senha para poder usar o sistema (E) � R1.7 – Fornecer um mecanismo de armazenamento permanente (O) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 49 Funções Básicas - TPV � R1.8 – Fornecer mecanismos de comunicaçãointer-processos e inter- sistemas (O) � R1.9 – Exibir a descrição e o preço do item registrado (E) �22 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 50 Funções de Pagamento - TPV � R2.1 – Tratar os pagamentos em dinheiro: capturar a quantia recebida e informar o troco (E) � R2.2 – Tratar o pagamento com cartão de crédito: captar a informação do cartão de crédito por um leitor de cartões ou uma entrada manual e autorizar o pagamento com o serviço de autorização de crédito (externo) da loja via conexão por modem (E) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 51 Funções de Pagamento - TPV � R2.3 – Registrar os pagamentos por crédito no sistema de contas a receber da loja, uma vez que o serviço de autorização de crédito deve à loja a quantia oferecida como pagamento (O) � R2.4 – Tratar os pagamentos com cheque: capturar o CPF por entrada manual e autorizar o pagamento com o serviço de autorização de crédito da loja (externo) via conexão por modem (E) �23 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 52 Atributos do Sistema – TPV � para R1.9 (Exibir a descrição e o preço do item registrado (E)) � tempo de resposta: Max 5s � Obrigatório � metáfora da interface: � saída baseada em formulário � Obrigatório � saída colorida � Desejável BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 53 Atributos do Sistema – TPV � para R2.3 (Registrar os pagamentos por crédito no sistema de contas a receber da loja (O)) � tolerância a falhas: deve registrar no sistema de contas a receber em 24h, mesmo em caso de falhas elétrica ou de hardware � Obrigatório � tempo de resposta: Max 10s � Obrigatório �24 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 54 Método Larman Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário 5. Implementar Protótipo 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial 8. Definir Arquitetura Inicial do Sistema 9. Aperfeiçoar (Refinar) Plano BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 55 Casos de Uso: descrevendo processos � Objetivos: � Identificar e Escrever Casos de Uso � Elaborar Diagramas de Casos de Uso � Contrastar Casos de Uso de Alto Nível e Expandidos � Contrastar Casos de Uso Reais e Essenciais �25 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 56 Casso de Uso – Documentação � Um documento de fluxo de eventos é criado para cada caso de uso � Escrito do ponto de vista do ator � Detalha o que o sistema deve fornecer quando o caso de uso é executado � Conteúdos típicos � Como o caso de uso inicia e termina � Fluxo normal de eventos � Fluxos alternativos de eventos � Fluxos excepcionais de eventos (respostas a erros) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 57 Casos de Uso � Um caso de uso é um padrão de comportamento que o sistema exibe � Cada caso de uso é uma seqüência de transações relacionadas executadas por um ator e o sistema em um diálogo �26 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 58 Casos de Uso � Um caso de uso é um documento textual que descreve a seqüência de eventos realizados por um ator (um agente externo) para completar um processo durante o uso do sistema � Contam “histórias” de utilização do sistema � Casos de uso não são especificação de requisitos, mas ilustram e implicam requisitos � dependem de que se tenha um entendimento ao menos parcial dos requisitos do sistema BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 59 Atores � Um ator é uma entidade externa ao sistema que participa de um caso de uso de alguma forma. � Atores interagem com o sistema, estimulando-o com eventos de entrada ou de saída � Representam o papel que desempenham no caso de uso. Ex: Cliente, Caixa � uma pessoa, por exemplo, pode assumir vários papéis � várias pessoas podem ser instâncias de um ator �27 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 60 Atores � Atores podem ser papéis desempenhados por pessoas, sistemas de computadores, dispositivos elétricos e mecânicos, … � Para um caso de uso, geralmente existe um ator iniciador e possivelmente vários outros atores participantes BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 61 Método Larman: Formatos dos Casos de Uso � de alto nível � descreve o processo sucintamente, em duas ou três sentenças � são vagos a respeito de decisões de projeto e são úteis para a compreensão dos principais processos globais � expandidos � mostram mais detalhes � compreensão mais profunda dos processos e requisitos �28 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 62 Caso de Uso de Alto Nível Caso de uso: Comprar Itens Atores: Cliente, Caixa Tipo: primário (a ser discutido adiante…) Descrição: Um Cliente chega ao balcão de saída da loja com itens que deseja comprar. O Caixa registra os itens de compra e recebe o pagamento. Quando termina, o Cliente sai com os itens comprados. Usar verbo para nomear caso de uso Nome de atores com letra maiúscula BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 63 Caso de Uso Expandido (Parte 1 - Resumo) (restrito a pagamento em dinheiro e sem tratar controle de estoque) Caso de Uso: Comprar Itens com Dinheiro Atores: Cliente (iniciador), Caixa Finalidade: Capturar a venda e seu pagamento em dinheiro Visão geral: Um Cliente chega ao balcão de saída da loja com itens que deseja comprar. O Caixa registra os itens de compra e recebe o pagamento. Quando termina, o Cliente sai com os itens comprados. Tipo: primário e essencial (a ser discutido adiante…) Referências Requisitos: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1 Cruzadas: Informar ator que inicia o processo �29 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 64 Caso de Uso Expandido � Rastreabilidade � A cláusula de referência cruzada permite conferir se todos os requisitos foram atendidos por casos de uso. � Ao final, todos os casos de uso devem poder ser rastreados para a implementação e o teste. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 65 Lembrando... � R1.1 – Registrar a venda em andamento … (E) � R1.2 – Calcular o total da venda corrente … (E) � R1.3 – Capturar a informação de um item adquirido, usando o código… (E) � R1.7 – Fornecer um mecanismo de armazenamento permanente (O) � R1.9 – Exibir a descrição e o preço do item registrado (E) � R2.1 – Tratar os pagamentos em dinheiro… (E) �30 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 66 Caso de Uso Expandido Parte 2 - Seqüência típica de eventos Ação do ator Resposta do Sistema 1. Este caso de uso começa quando o Cliente chega ao TPV com itens para comprar 2. O Caixa registra o identificador de cada item 3. Determina o preço do item e adiciona informação sobre o item à transação de venda corrente Se há mais de um do mesmo item, ocaixa também entra a quantidade A descrição e o preço do item são apresentados 4. Quando termina a entrada dos itens, o Caixa indica ao TPV que as entradas estão completas 5. Calcula e apresenta o total da venda 6. O Caixa informa o total ao cliente 7. O Cliente entrega o pagamento em dinheiro – o “pagamento em dinheiro” – possivelmente maior que o total da venda BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 67 Caso de Uso Expandido Parte 2 - Seqüência típica de eventos-Cont. Ação do ator Resposta do Sistema 8. O Caixa registra a quantidade de dinheiro recebida 9. Exibe o valor do troco a ser devolvido ao cliente 10. O Caixa deposita o dinheiro recebido e retira o troco devido 11. Registra a venda completada (logs) O Caixa entrega ao cliente o troco e o recibo impresso 12. O Cliente sai com os itens comprados �31 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 68 Caso de Uso Expandido (Parte 3 – Seqüências Alternativas) � Descreve alternativas importantes ou exceções que podem ocorrer numa seqüência típica � se forem muito complexas podem se transformar num caso de uso � Seqüências alternativas: � Linha 2: Identificador de item inválido digitado. Indicar o erro. � Linha 7: O Cliente não tem dinheiro suficiente. Cancelar a transação de venda BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 69 Tipos de Casos de Uso (I) � Primários : principais processos comuns Ex: Comprar Itens � Secundários: processos menos importantes ou raros Ex: Requisição de estoque de produto novo � Opcionais: processos que podem não ser incluídos na solução �32 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 70 Tipos de Casos de Uso (II) � Essencial: caso de uso expandido expresso numa forma ideal, que é relativamente livre de detalhes tecnológicos e de implementação � decisões de projeto são postergadas � Real: descreve o processo em termos de seu projeto atual (real) � considera tecnologia, entrada e saída, interface,… � definido na fase de projeto BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 71 Tipos de Casos de Uso (II) � Casos de uso de alto nível são essenciais por natureza, devido à sua forma resumida e alto nível de abstração � O intervalo entre essencial e real deve ser visto como um contínuo em que o caso de uso pode se situar em qualquer ponto Real, muito concreto Essencial, muito abstrato Requisitos/Anális e Projeto �33 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 72 Caso de Uso Comprar Itens: Essencial Ação do ator Resposta do Sistema 1. Este caso de uso começa quando o Cliente chega ao TPV com itens para comprar 2. O Caixa registra o identificador de cada item 3. Determina o preço do item e adiciona informação sobre o item à transação de venda corrente Se há mais de um do mesmo item, o caixa também entra a quantidade A descrição e o preço do item são apresentados 4. … …. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 73 Caso de Uso Comprar Itens: Real Ação do Ator Resposta do Sistema 1. Este caso de uso começa quando o Cliente chega ao TPV com itens para comprar 2. Para cada item o Caixa digita o código universal do produto no campo de entrada UPC da janela. Ele então pressiona o botão “Entrar Item” com o mouse ou pressiona <Enter> 3. Mostra o preço do item e adiciona a informação do item à transação de venda corrente. A descrição e o preço são mostrados na caixa de texto 2 da Janela1. …. ... �34 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 74 Importante � Em geral, os casos de uso reais não devem ser produzidos na fase de engenharia de requisitos (comprometimento prematuro com uma decisão de projeto e complexidade desnecessária) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 75 Resumo Formato do caso de uso Alto nível Expandido Tipo do caso de uso (I) Primário Opcional Secundário Tipo do caso de uso (II) Essencial Real �35 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 76 Diagrama de Casos de Uso: UML Diagram � Objetivo � Mostrar como o sistema a ser desenvolvido irá interagir com o ambiente, delimitando o sistema e definindo a funcionalidade � Importantes na organização e modelagem do comportamento do sistema BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 77 Diagrama de Casos de Uso � Um diagrama de caso de uso mostra o relacionamento entre os atores e os casos de uso dentro de um sistema. � Um caso de uso representa uma funcionalidade do sistema. � Representado por uma elipse contendo o nome do caso de uso. � Um ator é um agente externo (um usuário ou um outro sistema) que interage com o sistema. � Pode ser representado como um retângulo de classe com o estereótipo "ator” ou pela figura de um homem estilizado. �36 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 78 Diagrama de Casos de Uso: Notação Comprar Itens ícone para caso de uso Caixa ícone para ator BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 79 Diagrama de Casos de Uso TPV Comprar Itens Abrir (Log in) Reembolsar Itens Caixa Cliente �37 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 80 Diagrama de Casos de Uso TPV Comprar Itens Abrir (Log in) Reembolsar Itens Caixa Cliente BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 81 Diagrama de Casos de Uso: Notação � Relacionamentos entre casos de uso e atores: � communicates: relacionamento entre atores e casos de uso. � extends: um relacionamento extends de um caso de uso A para um caso de uso B indica que uma instância de B pode incluir o comportamento especificado por A. � include: um relacionamento include de um caso de uso A para um caso de uso B indica que uma instância de B inclui o comportamento especificado por A. �38 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 82 Relacionamento <<include>> Relacionamento <<extends>> ValidarCliente Cliente RealizarPedido <<include>> CadastrarCliente Cliente RealizarPedido <<extends>> Diagrama de Casos de Uso: Notação BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 83 Diagrama de Casos de Uso: Exemplo Leitor Bibliotecário Bibliotecário Sistema de Biblioteca <<extends>> << extends >> Adicionar título Manter Reservar Cancelar reserva Emprestar Devolver Remover /atualizar título Adicionar item Adicionar leitor << extends >> << extends >> << extends >> �39 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 84 Identificação de casos de uso � Dois métodos: baseado nos atores ou baseado nos eventos do sistema � Baseado em atores � Identificar os atores relacionados a um sistema ou organização � Para cada ator, identificar os processos que eles iniciam ou dos quais eles participam � Exemplos: � Caixa - Iniciar uso, Registrar retirada de dinheiro � Cliente – Comprar itens, Reembolsar itens BCC 2014 25/03/2014 Ciênciada Computação - Engenharia de Software I - Rogério Eduardo Garcia 85 Identificação de casos de uso � Baseado em eventos � Identificar os eventos externos aos quais um sistema deve responder � Relacionar os eventos a atores e a casos de uso � Exemplos: � Itens vendidos (ator=cliente, caso de uso=comprar item) � Dinheiro retirado (ator=caixa, caso de uso=registrar retirada de dinheiro) �40 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 86 Importante � um caso de uso não representa um passo individual ou uma operação ou transação de entrada. por exemplo: “imprimir o recibo” não é um caso de uso no sistema de TPV � um caso de uso é normalmente a descrição de um processo relativamente grande, com início e fim próprios, que normalmente incluem várias transações ou operações de entrada e saída. Ex: � retirar dinheiro de um caixa automático � matricular-se em uma disciplina � verificar ortográfica em um editor de texto � … BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 87 Escopo do Sistema � O sistema pode ser limitado por: � Hardware ou software � Departamentos de uma organização � Toda a organização � O limite é sempre delimitado arbitrariamente pelo analista e o cliente, mas geralmente leva em conta critérios tais como: política organizacional, limites de menor comunicação entre os subsistemas, oportunidade e tamanho do sistema �41 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 88 Exemplo Ex: considerar toda a loja como sendo o sistema. O caixa está dentro do sistema e é um de seus recursos. LOJA Comprar Itens Reembolsar Itens Cliente TPV Comprar Itens Abrir (Log in) Reembolsar Itens Caixa Cliente Limite do sistema BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 89 Decisão e Desvio � Pontos de decisão e desvio podem ocorrer em um caso de uso � Ex: no caso de uso Comprar Itens, o cliente pode pagar em dinheiro, cartão de crédito ou cheque � Dividir o caso de uso em seções � Para cada caso de uso: � Parte 1 – Resumo � Seção Principal � parte 2 – seqüência típica de eventos � parte 3 – seqüências alternativas � Seção Pagamento com dinheiro � parte 2 – seqüência típica de eventos � parte 3 – seqüências alternativas � Seção Pagamento com cartão de crédito � … �42 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 90 Caso de Uso Comprar Itens Seção Principal Seqüência típica de eventos Ação do ator Resposta do Sistema 1. Este caso de uso começa quando o Cliente chega ao TPV com itens para comprar 2. O Caixa registra o identificador de cada item … 3. Determina o preço do item… 4. Quando termina a entrada dos itens… 5. Calcula… 6. O Caixa informa o total ao cliente 7. O Cliente escolhe o tipo de pagamento: i. Se for pagamento em dinheiro, ver seção Pagamento em Dinheiro ii. Se for pagamento com cartão de crédito ver seção Pagamento por Cartão de Crédito iii. Se for pagamento por cheque, ver seção Pagamento em Cheque 8. Registra a venda completada 9. O Caixa entrega o recibo para o Cliente 10. O Cliente sai da loja com os itens… BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 91 Caso de Uso Comprar Itens Seção Pagamento com Dinheiro Seqüência típica de eventos Ação do ator Resposta do Sistema 1. O Cliente entrega o pagamento em dinheiro, possivelmente maior que o total da venda 2. O Caixa registra a quantidade de dinheiro recebida 3. Exibe o valor do troco a ser devolvido ao cliente 4. O Caixa deposita o dinheiro recebido e retira o troco devido O Caixa entrega o troco ao Cliente Seqüência alternativa: • Linha 4: Dinheiro insuficiente na gaveta para pagar o troco. Solicita dinheiro ao supervisor �43 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 92 Planejar e Elaborar: Passos do Processo 1. Listar todas as funções (requisitos), definir os limites do sistema e identificar atores e casos de uso. 2. Escrever todos os casos de uso no formato de alto nível, classificando- os como principais, secundários e opcionais. 3. Desenhar o diagrama de casos de uso. 4. Escrever o formato expandido dos casos de uso mais importantes, mais complexos ou mais arriscados. Os demais poderão ser expandidos quando forem tratados em fases posteriores do processo de desenvolvimento. 5. Idealmente, postergar os casos de uso reais até a fase de projeto. Exceções podem ocorrer se: a) descrições concretas auxiliam grandemente a compreensão, ou b) os clientes demandam que o processo seja especificado dessa forma. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 93 Exemplo – Sistema TPV Os limites do sistema serão definidos como o sistema de hardware e software. Atores e casos de uso: Caixa: Abrir (Log In), Retirar dinheiro da caixa, Fechar Cliente: Comprar Itens, Reembolsar Itens Gerente: Iniciar e Encerrar (o sistema) Administrador do Sistema: Adicionar novo usuário (Passo 1. Identificar atores, casos de uso e limites do sistema.) �44 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 94 Exemplo – Sistema TPV Caso de uso: Comprar Itens Atores: Cliente (iniciador), Caixa Tipo: primário Descrição: Um cliente chega ao balcão de saída da loja com itens para comprar. O caixa registra os itens de compra e recebe o pagamento. Quando termina, o cliente sai com os itens comprados. (Passo 2. Escrever casos de uso no formato de alto nível.) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 95 Caso de uso: Iniciar Atores: Gerente Tipo: primário Descrição: Um Gerente liga o sistema TPV de modo a prepará-lo para o uso pelos Caixas. O Gerente confere que as datas e hora estão corretas, após o que o sistema está pronto para uso dos Caixas. Exemplo – Sistema TPV (Passo 2. Escrever casos de uso no formato de alto nível.) �45 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 96 TPV Comprar Itens Abrir Reembolsar Itens Caixa Cliente Administrador Do Sistema Gerente Adicionar novos usuários Iniciar etc. (Passo 3. Desenhar um diagrama de casos de uso.) Exemplo: Sistema TPV BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 97 Caso de Uso: Comprar Itens Atores: Cliente (iniciador), Caixa ’ Propósito: Captura a venda e seu pagamento em dinheiro Visão geral: Um cliente chega a um ponto de pagamento, com vários itens que deseja comprar. O caixa registra os itens de compra e recebe o pagamento, o qual pode necessitar autorização. No final, o cliente sai com os itens comprados. Tipo: primário e essencial Referências Cruzadas: Funções: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1, R2.2, R2.3, R2.4 Casos de Uso: o caixa deve ter completado o caso de uso Abrir (Passo 4. Escrever casos de uso essenciais expandidos.)Exemplo – Sistema TPV �46 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 98 Seção : Principal Seqüência Típica de Eventos Ação do ator Resposta do sistema 1. Este caso de uso começa quando um Cli- ente chega a um ponto de pagamento equi- pado com um TPV, com vários itens que deseja comprar. 2. O Caixa registra cada item. 3. Determina o preço do item e acrescenta informação sobre o Se houver mais de um exemplar do item, o itemà transação de vendas em andamento Caixa também pode entrar a quantidade. A descrição e o preço do item corrente são apresentados 4. No término da entrada de itens, o Caixa 5. Calcula e apresenta o total indica para o TPV que a entrada de itens da venda. está completa. 6. O Caixa informa ao Cliente o total. (Passo 4. Escrever casos de uso essenciais expandidos.)Exemplo – Sistema TPV BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 99 (continuação…) Ação do ator Resposta do sistema 7. O Cliente escolhe o tipo de pagamento: a. Se pagamento em dinheiro, ver seção Pagar com Dinheiro. b. Se pagamento com cartão, ver seção Pagar com Cartão de Crédito. c. Se pagamento com cheque, ver seção Pagar com Cheque. 8. Registra a venda completada. 9. Atualiza os níveis de estoque. 10. Gera um recibo. 11. O Caixa dá o recibo ao Cliente. 12. O Cliente sai com os itens comprados. Seqüências alternativas Linha 2: Entrada de Identificador de item inválido. Indicas erro. Linha 7: Cliente não pode pagar. Cancelar a transação de venda. (Passo 4. Escrever casos de uso essenciais expandidos.)Exemplo – Sistema TPV �47 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 100 Seção: Pagar com Dinheiro Seqüência Típica de Eventos Ação do ator Resposta do sistema 1. O Cliente dá um pagamento em dinheiro. O valor fornecido é possivelmente maior que o total da venda. 2. O Caixa registra a quantia fornecida 3. Apresenta o troco devido ao Cliente 4. O Caixa deposita o dinheiro recebido e retira o troco devido. O Caixa dá o troco ao Cliente Seqüências Alternativas Linha 1: O Cliente não tem dinheiro suficiente. Pode cancelar a venda ou iniciar outro método de pagamento Linha 4: A gaveta de dinheiro não contém o suficiente para pagar o troco. O Caixa solicita mais dinheiro ao supervisor ou pede ao Cliente uma quantia de dinheiro diferente ou a opção por um outro método de pagamento Exemplo – Sistema TPV(Passo 4. Escrever casos de uso essenciais expandidos.) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 101 Seção: Pagar com Cartão de Crédito Seqüência Típica de Eventos Ação do ator Resposta do sistema 1. O Cliente comunica suas 2. Gera uma solicitação de pagamento com informações de Crédito para o cartão de crédito e a envia a um Serviço pagamento com cartão de crédito de Autorização de Crédito (SAC) externo 3. O SAC autoriza o pagamento 4. Recebe uma resposta de aprovação de crédito do SAC. 5. Lança o pagamento com cartão de crédito e a informação da resposta de aprovação no sistema de Contas a Receber (C/R). (O SAC deve dinheiro à Loja, logo C/R deve fazer o acompanhamento) 6. Exibe a mensagem de autorização bem sucedida Seqüências Alternativas Linha 3: Solicitação de crédito negada pelo SAC. Sugerir um método de pagamento diferente (Passo 4. Escrever casos de uso essenciais expandidos.)Exemplo – Sistema TPV �48 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 102 Seção: Pagar com Cheque Seqüência Típica de Eventos Ação do ator Resposta do sistema 1. O Cliente preenche um cheque e se identifica. 2. O Caixa registra a informação de 3. Gera uma solicitação de pagamento identificação e solicita autorização com cheque e a envia a um Serviço de para pagamento com cheque Autorização de Cheques externo 4. O Serviço de autorização de 5. Recebe uma resposta de aprovação Cheques autoriza o pagamento do Serviço de Autorização de Cheques. 6. Indica autorização bem-sucedida. Seqüências Alternativas Linha 4: Solicitação de cheque negada pelo Serviço de Autorização de Cheques. Sugerir um método de pagamento diferente Exemplo – Sistema TPV(Passo 4. Escrever casos de uso essenciais expandidos.) BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 103 Planejar e Elaborar: Artefatos Relatório de Investigação Preliminar Protótipos Orçamento, Cronograma Especificação de Requisitos Casos de Uso a. Todos os de alto nível b. Alguns essenciais expandidos Diagramas de Casos de Uso Esboço do modelo conceitual Glossário Depende de �49 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 104 Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário 5. Implementar Protótipo 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial 8. Definir Arquitetura Inicial do Sistema 9. Aperfeiçoar (Refinar) Plano Método Larman BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 105 Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário 5. Implementar Protótipo 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial 8. Definir Arquitetura Inicial do Sistema 9. Aperfeiçoar (Refinar) Plano Método Larman �50 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 106 Modelos Conceituais � Modelo Conceitual é uma representação dos conceitos, ou objetos, do mundo real pertencentes a um domínio de interesse � É exibido por um conjunto de diagramas de estrutura estática, no qual não se definem operações � Pode ser tratado como um “dicionário visual” das abstrações significativas do domínio � ajuda a compreender vocabulário e informação do domínio � Pode mostrar: conceitos, associações entre conceitos e atributos de conceitos BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 107 Modelagem Conceitual � Realiza-se a análise do domínio da aplicação e a modelagem das entidades e fenômenos desse domínio considerados importantes, independentemente da implementação. � A tarefa de modelagem conceitual envolve dois mecanismos: � Abstração e � Representação. �51 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 108 Modelagem Conceitual Entidade Observada Entidade Representada Avião ABSTRAÇÃO REPRESENTAÇÃO Operação mental para observar um domínio e capturar sua estrutura Expressão segundo as convenções: notação gráfica, linguagem de programação, etc. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 112 Classificação/Instanciação Estudante de Graduação José Maria CL A SS IF IC A ÇÃ O IN ST A N C IA ÇÃ OCATEGORIA INDIVÍDUO (Objeto) �52 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 113 Modelo Conceitual: Conceito � Informal: idéia, “coisa”, ou objeto do mundo real no domínio de interesse. � Algo digno de nota, de ser documentado, de importância para o domínio. � Formal: Um conceito pode ser considerado em termos de seu: � Símbolo: palavra ou imagem representando um conceito. � Ex.: Venda � Intenção: a definição de um conceito. � Ex.: Uma venda representa uma transação de compra e possui data e hora. � Extensão: o conjunto de exemplos (instâncias) ao qual o conceito se aplica. � Ex.: Venda1, Venda2, Venda3 … BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 114 Modelo Conceitual: Conceito � Símbolo � Ex.: Aeronave � Intenção � Ex.: (o conceito) Aeronave representa uma aeronave, ou seja, um meio de transporteaéreo que possui categoria, dimensões, número de lugares, … � Extensão � Ex.: AirBus PT999, Boing747 PX111, … �53 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 115 Conceitos no Sistema TPV � Como identificar conceitos em um sistema ? TPV Venda Loja BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 116 Estratégias para Identificar Conceitos � É melhor especificar em excesso um modelo conceitual com muitos conceitos do que subespecificá-lo. � Menos conceitos não implicam em um modelo melhor. � Não exclua um conceito só porque sua necessidade não está óbvia nos requisitos. � Não exclua um conceito só porque não tem atributos – ele pode possuir um papel de comportamento e não de informação. � Usar uma Lista de Categorias de Conceitos. � Identificar Substantivos. �54 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 117 Conceito - Definição � Informal: idéia, “coisa”, ou objeto do mundo real no domínio de interesse � algo digno de nota, de ser documentado, de importância para o domínio � Formal - Um conceito pode ser considerado em termos de seu: � Símbolo: palavra ou imagem representando um conceito. Ex: Venda � Intenção: a definição de um conceito. Ex: Uma venda representa uma transação de compra e possui data e hora � Extensão: o conjunto de exemplos (instâncias) ao qual o conceito se aplica: Ex: Venda1, Venda2, Venda3 … BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 118 Exemplo � Símbolo - Ex: Aeronave � Intenção - Ex: (o conceito) Aeronave representa uma aeronave, ou seja, um meio de transporte aéreo que possui categoria, dimensões, número de lugares, … � Extensão - Ex: AirBus PT999, Boing747 PX111,… �55 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 119 Conceitos no Sistema TPV � Como identificar conceitos em um sistema ? TPV Venda Loja BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 120 Exemplos de Categorias de Conceitos � Objetos físicos ou tangíveis: TPV, Carro, Aeronave � Especificações ou Descrições de “Coisas”: EspecificaçãoProduto, ListaVerificação � Lugares: Loja, Aeroporto � Transações: Venda, Pagamento, Reserva � Regras e Políticas: PolíticaReembolso � Itens de linha de transação: ItemLinhaVendas �56 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 121 Exemplos de Categorias de Conceitos (cont.) � Papéis desempenhados por pessoas: Caixa � Contêineres: Depósito, Armário, Aeronave � Coisas em um contêiner: Item, Passageiro � Catálogos: CatálogoProdutos, CatálogoPeças � Organizações: DepartamentoVendas � Sistema externo: SistmAutorizaçãoCartCrédito � … BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 122 Identificação de Substantivos - caso de uso Comprar Itens 1. Este caso de uso começa quando um Cliente chega a um ponto de pagamento equipado com um TPV com vários itens que deseja comprar. 2. O caixa registra o código universal do produto (UPC) de cada item. Se houver mais de um exemplar do item o caixa também pode entrar a quantidade. 3. Determina o preço do item e acrescenta informação sobre o item à transação de vendas em andamento. A descrição e o preço do item corrente são apresentados �57 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 123 Identificação de Substantivos Lembre-se: 1. Nem todos os substantivos são conceitos – linguagem natural pode ser ambígua Ex: substantivos diferentes podem representar o mesmo conceito – (Consumidor e Cliente) 2. Alguns dos substantivos são candidatos a conceitos e outros são candidatos a atributos BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 124 Conceitos candidatos Domínio TPV – caso de uso Comprar Itens • TPV • Item • Loja • Venda • CatálogoProdutos • EspecificaçãoProduto • ItemLinhaVenda • Caixa • Cliente • Pagamento • Gerente ⇒⇒⇒⇒ Ideal: Combinar as estratégias para identificar uma lista de candidatos a conceito �58 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 125 Incluir no modelo objetos do tipo relatório? � Um recibo é um relatório (uma saída do sistema) de uma venda � a informação contida num recibo é derivada de outras fontes, e portanto essa informação é duplicada � ⇒ razão para excluí-lo � Um recibo desempenha um papel importante em termos das regras do negócio � confere ao portador o direito de retornar o item comprado ⇒ razão para incluí-lo � Então… o Recibo deve ser incluído somente na fase onde o retorno de itens for tratado – considerando o ciclo de desenvolvimento iterativo BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 126 O Conceito de Especificação (ou de Descrição) � O que aconteceria se todas as TVs de 19” (Item) fossem vendidas ? � Como fazer para saber o preço desse item de venda ? Item descrição preço número série CUP ou ????? EspecificaçãoProduto Item número sériedescrição preço CUP Descreve 1 * MELHOR �59 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 127 Quando utilizar conceitos de especificações � Quando houver necessidade da existência de uma descrição de um item ou serviço, independente da existência de uma instância do item ou serviço � se a exclusão de instâncias do item/serviço resultar em perda de informação que deveria ser mantida � Quando reduzir informação redundante ou duplicada BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 128 Dicas... � Objetos podem ser: � Entidades Externas que produzem ou consomem informações (outros sistemas, pessoas) � Coisas que fazem parte do domínio (relatórios, displays, cartas) � Eventos que ocorrem no contexto do sistema (transferência de propriedade) � Papéis desempenhados por pessoas (gerente, engenheiro, vendedor) � Unidades organizacionais (grupo, equipe) � Lugares que estabelecem o contexto do problema (piso de fábrica, área de descarga) �60 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 129 Dicas... � Isolar nomes (e locuções nominais), verbos (e locuções verbais) � Os nomes e os verbos que são sinônimos ou que não tem nenhuma relação com o processo de modelagem são omitidos � Os nomes são classes ou atributos (itens de dados) � Os verbos são operações (métodos) - relacionamento entre classes BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 130 Exemplo para TPV Venda data hora Pagamento quantiaPago-por 1 1 � Parte do Modelo Conceitual do TPV � indica que os conceitos Venda e Pagamento são significativos para o domínio � indica que Venda e Pagamento estão relacionados de uma forma digna de nota �61 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 131 Modelo Conceitual � Modelo Conceitual NÃO mostra artefatos de software � objetos ou classes de software � métodos ou responsabilidades � janelas � bases de dados BDdeVendas Venda data hora imprimir () NÃO!!! BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 132 Cardinalidade ou Multiplicidade � Cardinalidade define quantos objetos participam da relação� É o número de instâncias de objetos da classe que participam da relação � Para cada associação e agregação, são definidas duas multiplicidades: uma para cada participante do relacionamento. �62 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 133 Multiplicidade: Exemplo C C C C C * 1..* 1..40 5 3,5,8 zero ou mais - muitos (as) um ou mais um a quarenta exatamente cinco exatamente três, cinco ou oito • A multiplicidade define quantas instâncias de um conceito A podem ser associadas a cada instância do conceito B BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 134 Navegação � Embora associações e agregações sejam bi- direcionais por default, por ser desejável restringir a navegação em uma direção � Para isso, uma ponta (flecha) é adicionada à linha, indicando a direção da navegação �63 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 135 Exemplo do Sistema TPV TPV Venda Captura 1 1 associação nome da associação direção de leitura (default: opcional) OBS: o símbolo SOMENTE indica direção de leitura – não tem significado no modelo BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 136 Exemplo TPV Venda Captura 1 1 nome da associação multiplicidade direção de leitura (default: opcional) associação Loja Item1 *Estoca �64 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 137 Associação - definição � Associação é um relacionamento entre conceitos � indica uma conexão com significado e interesse � Em UML são descritas como “relacionamentos semânticos entre objetos diferentes” BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 138 Critérios para incluir associações � Quando o conhecimento associado necessita ser preservado por algum tempo � “necessário-ser-conhecida” – requisitos indicam essa necessidade � Ex: associação entre Venda e Pagamento � Evite associações cuja necessidade não é sugerida nos requisitos � Ex: associação entre Venda e Gerente � É mais importante identificar conceitos do que associações � Excesso de associações pode tornar o modelo conceitual confuso � Evite mostrar associações redundantes ou deriváveis �65 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 139 Associações Comuns � A é uma parte física de B � Gaveta – TPV � Asa - Aeronave � A é uma parte lógica de B � ItemLinhaVenda – Venda � PernaVôo (Flight Leg) - RotaVôo � A está fisicamente contida em/sobre B � Item – Prateleira � Passageiro - Aeronave � A está logicamente contida em B � DescriçãoItem - Catálogo � Vôo – ProgramaçãoVôo � A é registrada em B � Venda - TPV � Reserva - ManifestoVôo BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 140 Associações Comuns � A é uma descrição para B � DescriçãoItem – Item � DescriçãoVôo – Vôo � A é um item de linha de uma transação ou relatório B � ItemLinhaVenda – Venda � ServiçoManutenção - LogManutenção � A é uma transação relacionada a outra transação B � Pagamento – Venda � Reserva – Cancelamento � … �66 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 141 Associações com Papéis � Cada extremo de uma associação é chamado de papel. � Os papéis podem ter, opcionalmente, as seguintes propriedades: � Nome � Expressão de multiplicidade � Navegabilidade BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 142 Associações com Papéis � Nomes de papéis são necessários, principalmente, para associação entre dois objetos de mesma classe. Companhia Empregado 1 0 .. * subordinado1 1 .. * �67 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 143 Associações Múltiplas entre Conceitos Vôo Aeroporto Voa-para Voa-de * 1 * 1 Origem Destino BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 144 Associações e Implementação � Uma associação indica um relacionamento significativo apenas sob a perspectiva conceitual. � Uma associação não implica em um fluxo de dados ou conexão entre objetos em uma solução de software. � Algumas associações do modelo conceitual podem não ser necessárias na implementação. � Durante a implementação podem ser descobertas associações entre objetos de software que foram esquecidas durante a modelagem conceitual. �68 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 145 Exemplo Companhia Aérea Pessoa 1..* 1 Emprega 1 Vôo * Designada-para Aeronave 1* Designada-para Supervisiona 1 * OBS: considere vôos não simultâneos na alocação de pessoas e aeronaves. Essa alocação seria feita, por exemplo, o planejamento de vôos do dia/semana/mês… BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 146 Exemplo Pagamento 1..1 1..1 1..1 Gerente 0..* 1..* 1..1 * 1..1 1..1 1..1 1..1 Cliente 1..1 1..1 * 1..1 TPV 1..10..* Iniciado por 1..1 *1..1 Loja 1..* 1..1 Possui 1..*1..1 Catálogo de Produtos * 1..1 Usado-por 1..1 1..* 1..1 Item *1..1 Estoca 0..1 1..1 Especificação de Produto1..*1..1 Contém * Descreve * ItemLinhaVenda 1..1 0..1 Registra-venda-de 1..1 * Descritos-por Venda 1..1 1..1 Paga-por 1..1 1..1 Iniciada-por 1..1 * Registra-dados-da v 1..1 1..1 capturada-em 1..1 1..* Contido-em Caixa 1..1 1..1 < Registra-Vendas-do 1..1 1..1 Iniciada-por 1..1 1..1 1..1 �69 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 147 Modelo Conceitual Planejar e Elaborar Construir Implantar 1. Definir Plano Inicial 2. Criar Relatório de Investigação Preliminar 3. Definir Requisitos 4. Registrar Termos no Glossário 5. Implementar Protótipo 6. Definir Casos de Uso (Alto Nível e Essenciais) 7. Definir Modelo Conceitual Inicial 8. Definir Arquitetura Inicial do Sistema 9. Aperfeiçoar (Refinar) Plano BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 148 Desenvolvimento Iterativo Planejar e elaborar Construir Instalar Ciclo de Desenvolvimento 1 Ciclo de Desenvolvimento 2 … Refinar Plano Sincronizar Artefatos Analisar Projetar Construir Testar �70 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 149 Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 1. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas deSeqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado Método Larman BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 150 Modelo Conceitual: Atributo � Um atributo é um valor de dados lógico de um objeto. Descreve uma característica do objeto. � Inclua no modelo conceitual apenas os atributos para os quais os requisitos sugerem ou implicam uma necessidade de memorizar a informação. � Ex: preço de item, valor da compra, … � Preferivelmente, no modelo conceitual,os tipos de atributos devem ser simples, como: � tipos de dados primitivos - booleano, inteiro, real, cadeia de caracteres,... � data, hora, cor, endereço, geometria, número de telefone, CEP, … �71 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 151 Modelo Conceitual: Atributo � Os atributos são descritos na segunda seção da caixa de conceito. � O tipo do atributo é opcional. Pessoa nome: String idade: Inteiro Venda data: Data hora: Hora BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 152 1..1 1..1 Caixa 1..1 Gerente 1..* 1..* * 1..1 1..1 Pagamento quantia 1..1 1..1 Cliente 1..1 1..1 TPV 1..1 Registra-Vendas-do Iniciado por *1..1 Loja endereço nome 1..1 Possui 1..*1..1 CatálogoProdutos * 1..1 Usado-por * 1..1 Venda data hora 1..1 1..1 Paga-por 1..1 1..1 Iniciada-por 1..1 * Registra-Dados-da 1..1 1..1 Capturada-em 1..* Item * Estoca 0..1 1..1 EspecificaçãoProduto descrição preço UPC 1..*1..1 Contém * Descreve * ItemLinhaVenda quantidade 1..1 1..* Contido-em 1..* 0..1 Registra-venda-de 1..1 * Descritos-por 1..1 Exemplo �72 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 153 Generalização � No sistema TPV – caso de uso ComprarItens : � Os conceitos de PagamentoComDinheiro, PagamentoComCartãoCrédito e PagamentoComCheque são muitos semelhantes. � Podem ser organizados em uma hierarquia de tipos (ou conceitos). � Hierarquia “generalização/especialização”. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 154 Generalização � Identifica o que há em comum entre conceitos. � Permite: � Construir classificações taxonômicas – hierarquias de tipos. � Compreender os conceitos em termos mais gerais e abstratos, ou mais refinados. � Conduz a uma notação mais econômica � Evita repetição de informação. � Na implementação, pode ser feita com classes e herança. �73 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 155 Generalização: Notação UML ConceitoA ConceitoA1 ConceitoA2 ConceitoA3 ConceitoA ConceitoA1 ConceitoA2 ConceitoA3 supertipo – conceito geral subtipo - conceito especializado BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 156 Generalização e Tipo � A definição de um supertipo é mais geral e mais abrangente que a definição de um subtipo. � Pagamento: uma transação de transferência de dinheiro (não necessariamente em espécie) de um comprador para um vendedor. � PagamentoComCartãoCrédito: transferência de dinheiro, via uma instituição de crédito, que necessita ser autorizada. � Propriedade pertinência ao conjunto: todos os membros de um subtipo são membros do supertipo. � ex: PagamentosComCartãoCrédito estão dentro do conjunto Pagamento. �74 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 157 Regra É-Um Todos os membros de um conjunto subtipo devem ser membros de seu conjunto supertipo. O Subtipo é um Supertipo. Generalização/Especialização BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 158 Pagamento PagamentoComDinheiro PagamentoComCartãoCrédito PagamentoCheque supertipo – conceito geral subtipo - conceito especializado Pagamento Pagamento Com Dinheiro Pagamento Com Cheque Pagamento Com Cartão Crédito Exemplo �75 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 159 PagamentoComDinheiro PagamentoComCartãoCrédito PagamentoComCheque Pagamento valor: Quantia VendaPago-a Regra dos 100% 100% da definição do supertipo dever ser aplicada ao subtipo. O subtipo deve estar em conformidade com 100% dos seguintes elementos do supertipo: • Atributos • Associação Generalização/Especialização BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 160 Quando definir um subtipo ? � Criar subtipos significa particionar um tipo. � Dividir um tipo em subtipos disjuntos. � Quando mostrar a partição de um tipo? � Depende da relevância da partição para o domínio do problema. � Ex: No sistema TPV seria útil definir a seguinte hierarquia?? Cliente ClienteFeminino ClienteMasculino �76 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 161 Dicas de quando particionar... 1. Um subtipo tem atributos adicionais de interesse. 2. O subtipo tem associações adicionais de interesse. 3. O conceito do subtipo é tratado, operado ou manipulado de maneira diferente que o supertipo ou outros subtipos, segundo formas que são de interesse considerar. 4. O conceito do subtipo representa uma coisa ou ser animado que se comporta de maneira diferente do supertipo ou de outros subtipos, segundo formas que são de interesse considerar. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 162 Exemplo Estudante Disciplina Docente Pessoa nome CPF nro. UNESP código MinistraCursa * * 0..3 1..2 titulação Departamento nome Está-vinculada-a 1* atributos em comum subtipos com atributos e associações adicionais, e comportament o e distintos �77 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 163 Exemplo – Sistema TPV PagamentoComDinheiro Pagamento valor : Quantia VendaPago-a PagamentoComCartãoCrédito CartãodeCrédito PagamentoComCheque Cheque Identifica_crédito_com 1 * Pago_com 1 1 11 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 164 O que fazer??? Empresa nome Pessoa nome* * emprega � Se uma pessoa pode ter mais de um emprego em empresas diferentes, onde colocar a informação de salário???? Empresa nome Pessoa nome* * emprega Salário valor recebepaga * * ** � Uma opção: �78 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 165 Um opção MELHOR: Tipos Associativos � Classe associativa: seus atributos estão relacionados a uma associação e não a um dos conceitos envolvidos na associação. � Seu tempo de vida depende do tempo de vida da associação. Empresa nome Pessoa nome* * emprega Emprego salário: Quantia TIPO ASSOCIATIVO BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 166 Tipos Associativos � Indícios da existência de tipos associativos: � Um atributo está relacionado a uma associação. � As instâncias do tipo associativo têm tempo de vida dependente do tempo de vida da associação. � Existe uma associação muitos-para-muitos entre dois conceitos, bem como informações relacionadas à associação propriamente dita. �79 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 167 Agregação � É um tipo de associação usado para modelar relacionamentos todo-parte entre coisas. � O todo é geralmente chamado composto, as partes podem ser chamadas componentes. � Notação em UML: losango vazio ou preenchido. Mão Dedo 0..51 COMPOSTO COMPONENT E BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 168 Agregação Composta (Losango Preenchido) � Agregação composta ou composição significaque: � A multiplicidade na extremidade do composto pode ser no máximo 1. � Uma instância do componente pode ser parte de apenas uma instância do composto (simultaneamente). � Existe uma dependência de existência entre o componente e o composto. � A existência de uma instância do composto implica na existência de instâncias dos componentes. � A destruição de uma instância do composto implica na destruição das instâncias dos componentes agregados. �80 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 169 Exemplos Mão Dedo0..51 � Um dedo só pode fazer parte de uma mão. Venda 1..*1 � Um item de linha de venda só pode fazer parte de uma venda. ItemLinhaVenda 1..*1 � Uma especificação de produto só pode ser parte de um catálogo. CatálogoProduto EspecificaçãoProduto BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 170 Agregação Compartilhada (Losango Vazio) � Agregação compartilhada significa que: � A multiplicidade na extremidade do composto pode ser maior que 1. � Uma instância do componente pode estar simultaneamente em muitas instâncias do composto. � Esse tipo de agregação é raro em agregados físicos, mas aparece em conceitos não-físicos. � Exemplo: Software OO Classe** �81 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 171 Modelo Conceitual: Diretrizes para Construção � Liste os conceitos candidatos relacionados aos requisitos considerados. � Use a Lista de Categorias de Conceitos e a Identificação de Substantivos. � Desenhe os conceitos em um modelo conceitual. � Registre as associações entre conceitos. � Acrescente os atributos necessários para completar os requisitos. � Identifique possíveis agregações, generalizações e tipos associativos. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 172 Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 1. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas deSeqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado Método Larman �82 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 173 Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 1. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas deSeqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado Método Larman BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 174 Diagramas de Seqüência do Sistema (DSS) � Para dar prosseguimento à fase de análise, é desejável ter uma noção mais concreta do comportamento esperado do sistema diante dos eventos que fazem parte de cada caso de uso � Idéia: investigar e definir o comportamento do sistema como uma “caixa preta”. � O comportamento é dependente dos casos de uso. � Interação de atores com o sistema gera eventos que solicitam operações em resposta. �83 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 175 Diagramas de Seqüência do Sistema (DSS) � Os diagramas de seqüência do sistema são utilizados para especificar parte de seu comportamento. � Mostram um cenário global do funcionamento do sistema, dividindo o caso de uso em partes bem definidas, denominadas operações, que são executadas em resposta aos eventos. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 176 Diagramas de Seqüência do Sistema (DSS) � Um DSS ilustra os eventos de entrada e saída do sistema. Para uma seqüência específica de eventos (cenário) de um caso de uso, o DSS mostra: � Os atores que interagem com o sistema. � O sistema, como uma “caixa-preta”. � Eventos do sistema gerados pelos atores. � Eventos entre sistemas. � A ordem dos eventos. � Deve ser feito para uma seqüência típica do caso de uso. � Possivelmente outros DSS podem ser criados para as seqüências alternativas mais interessantes. �84 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 177 Eventos e Operações do Sistema � Um evento de sistema é um evento externo de entrada para o sistema, gerado por um ator. � Eventos de sistema podem incluir parâmetros. � Cada evento inicia uma operação de resposta do sistema. � Uma operação de sistema é uma operação executada em resposta a um evento de sistema. � Um mesmo nome é atribuído a um evento e à operação correspondente (assim como mensagens e métodos). � Eventos e operações também podem ser de saída. BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 178 Relembrando... Caso de Uso Expandido: Comprar Itens (restrito a pagamento em dinheiro e sem tratar controle de estoque) Caso de Uso: Comprar Itens com Dinheiro Atores: Cliente (iniciador), Caixa Finalidade: Capturar a venda e seu pagamento em dinheiro Visão geral: Um Cliente chega ao balcão de saída da loja com itens que deseja comprar. O Caixa registra os itens de compra e recebe o pagamento. Quando termina, o Cliente sai com os itens comprados. Tipo: primário e essencial (a ser discutido adiante…) Referências Requisitos: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1 Cruzadas: �85 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 179 Caso de Uso Expandido Ação do ator Resposta do Sistema 1. Este caso de uso começa quando o Cliente chega ao TPV com itens para comprar 2. O Caixa registra o identificador de cada item 3. Determina o preço do item e adiciona informação sobre o item à transação de venda corrente Se há mais de um do mesmo item, o caixa também entra a quantidade A descrição e o preço do item são apresentados 4. Quando termina a entrada dos itens, o Caixa indica ao TPV que as entradas estão completas 5. Calcula e apresenta o total da venda 6. O Caixa informa o total ao cliente 7. O Cliente entrega o pagamento em dinheiro – o “pagamento em dinheiro” – possivelmente maior que o total da venda BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 180 Ação do ator Resposta do Sistema 8. O Caixa registra a quantidade de dinheiro recebida 9. Exibe o valor do troco a ser devolvido ao cliente 10. O Caixa deposita o dinheiro recebido e retira o troco devido 11. Registra a venda completada (logs) O Caixa entrega ao cliente o troco e o recibo impresso 12. O Cliente sai com os itens comprados Caso de Uso Expandido Que ator(es) realmente interage(m) com o sistema?? �86 BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 181 :Sistema :Caixa Comprar Itens terminarVenda() fazerPagamento(quantia) troco, recibo entrarItem(CUP, quantidade) descrição item, total iniciarNovaVenda( ) *[mais itens] Linha do tempo Operação Ator Repetição de uma operação “:” indica instância “*[..]” indica iteração e a caixa refere-se à iteração Exemplo – Sistema TPV DSS para o Caso de Uso Comprar Itens BCC 2014 25/03/2014 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 182 :Sistema :Caixa Comprar Itens terminarVenda() fazerPagamento(quantia) troco, recibo entrarItem(CUP, quantidade) descrição item, total iniciarNovaVenda( ) *[mais
Compartilhar