Engenharia De Software I
Total Page:16
File Type:pdf, Size:1020Kb
FCT-UNESP 04/07/2017 Engenharia de Software I Bacharelado em Ciência da Rogério Eduardo Garcia Computação ([email protected]) 19/04/2016 Aula 05 Material preparado por Fernanda Madeiral Delfim BCC Tópicos – Aula 5 19/04/2016 Contextualização UML Astah Diagramas no Astah 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 2 Prof. Dr. Rogério E. Garcia 1 FCT-UNESP 04/07/2017 BCC Análise Vs. Projeto 19/04/2016 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 3 BCC A/POO 19/04/2016 Como as responsabilidades devem ser atribuídas a classes de objetos? Como os objetos devem interagir? Quais classes devem fazer o quê? [Larman, 2004] 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 4 Prof. Dr. Rogério E. Garcia 2 FCT-UNESP 04/07/2017 BCC A/POO 19/04/2016 Soluções consagradas para os problemas de projeto podem ser (e têm sido) expressas na forma de princípios, heurísticas ou padrões [Larman, 2004] 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 5 BCC A/POO 19/04/2016 Análise OO: enfatiza na descoberta e descrição dos objetos (conceitos) no domínio do problema Projeto OO: enfatiza na definição dos objetos de software e como eles colaboram para a satisfação dos requisitos Implementação OO: os objetos de projeto são implementados [Larman, 2004] 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 6 Prof. Dr. Rogério E. Garcia 3 FCT-UNESP 04/07/2017 BCC Exemplo Biblioteca 19/04/2016 Livro Visualização titulo de conceito de Conceito do domínio domínio print() public class Livro { Representação private String titulo; em uma linguagem public Capitulo print() de programação OO { } } [Larman, 2004] 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 7 7 BCC 19/04/2016 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 8 Prof. Dr. Rogério E. Garcia 4 FCT-UNESP 04/07/2017 BCC UML 19/04/2016 UML (Unified Modeling Language) é uma família de notações gráficas¹, apoiada por um metamodelo² único, que ajuda na descrição e no projeto de sistemas de software ¹É a sintaxe gráfica da linguagem de modelagem ²Descreve a semântica dos elementos de modelagem 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 9 BCC UML 19/04/2016 UML nasceu da unificação das muitas linguagens gráficas de modelagem OO (final de 1980, início de 1990) UML é uma linguagem visual para especificar, construir e documentar os artefatos de software (OMG) 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 10 Prof. Dr. Rogério E. Garcia 5 FCT-UNESP 04/07/2017 BCC UML – Aplicação 19/04/2016 UML como rascunho Diagramas incompletos e informais criados para explorar partes difíceis do problema ou espaço de soluções UML como planta de software Diagramas detalhados usados para: Engenharia reversa: para visualizar e melhor entender o código existente em diagramas UML Geração de código: engenharia avante 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 11 BCC UML – Aplicação 19/04/2016 UML como linguagem de programação Especificação executável completa de um sistema de software Código executável será automaticamente gerado Ainda em desenvolvimento em termos de teoria, ferramentas robustas e usabilidade... 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 12 Prof. Dr. Rogério E. Garcia 6 FCT-UNESP 04/07/2017 BCC UML 19/04/2016 A mesma notação pode ser usada para três perspectivas diferentes: Perspectiva conceitual Perspectiva de especificação Perspectiva de implementação 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 13 BCC UML 19/04/2016 A mesma notação pode ser usada para três perspectivas diferentes: Conceitual Os diagramas são interpretados como descrevendo coisas em uma situação do mundo real ou domínio de interesse De especificação Os diagramas descrevem abstrações de software ou componentes com especificações e interfaces Sem comprometimento com uma implementação particular (LP) 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 14 Prof. Dr. Rogério E. Garcia 7 FCT-UNESP 04/07/2017 BCC UML 19/04/2016 A mesma notação pode ser usada para três perspectivas diferentes (cont.): De implementação Os diagramas descrevem implementações de software em uma tecnologia particular 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 15 BCC Diagramas da UML 19/04/2016 Diagrama Linhagem Atividades Na UML 1 Classes Na UML 1 Comunicação Colaboração da UML 1 Componentes Na UML 1 Estruturas Compostas Na UML 2 Instalação Na UML 1 Visão Geral da Interação UML 2 Objetos Extra-oficialmente na UML 1 Pacotes Extra-oficialmente na UML 1 Sequência Na UML 1 Máquinas de Estado Na UML 1 Sincronismo Na UML 2 Casos de Uso Na UML 1 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia[Fowler, 2005] 16 Prof. Dr. Rogério E. Garcia 8 FCT-UNESP 04/07/2017 Classificação dos diagramas BCC da UML Diagrama 19/04/2016 Diagrama de Diagrama de estrutura comportamento Diagrama de Diagrama de classes casos de uso Diagrama de Diagrama de objetos atividades Diagrama de sequência Diagrama de Diagrama de instalação interações Diagrama de Diagrama de Diagrama de comunicação estruturas máquina de compostas estados Diagrama de sincronização Diagrama de componentes Diagrama de visão geral da Diagrama de interação pacotes 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 17 BCC Astah 19/04/2016 Astah Community é uma ferramenta para trabalhar com diagramas UML Link de download: http://astah.change- vision.com/en/product/astah-community.html 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 18 Prof. Dr. Rogério E. Garcia 9 FCT-UNESP 04/07/2017 BCC Astah Menu 19/04/2016 Elementos de diagrama Visão do projeto Visão das Editor de propriedades diagramas 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 19 BCC Astah 19/04/2016 Menu: é o menu principal e a barra de ferramentas do Astah Visão do projeto: Estrutura (em árvore): exibe a estrutura de modelos (diagramas) Herança: exibe a estrutura de herança Mapa: exibe um editor de diagrama inteiro Diagrama: exibe uma lista de diagramas no projeto 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 20 Prof. Dr. Rogério E. Garcia 10 FCT-UNESP 04/07/2017 BCC Astah 19/04/2016 Visão das propriedades: em que é permitido a edição das propriedades dos modelos Editor de diagramas: área em que os diagramas são editados Elementos de diagrama: barra de ferramentas que disponibiliza elementos específicos para cada diagrama e elementos em comum 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 21 BCC Astah 19/04/2016 Criação de um projeto: “File” -> “New”, no menu principal ou “Create a New File”, na barra de ferramentas Criação de um projeto com um modelo: “File” -> “New By Template”, e selecione um arquivo de modelo 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 22 Prof. Dr. Rogério E. Garcia 11 FCT-UNESP 04/07/2017 BCC Astah 19/04/2016 Criação de um modelo: “Diagram”, no menu principal, e escolha um diagrama 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 23 Classificação dos diagramas BCC da UML Diagrama 19/04/2016 Diagrama de Diagrama de estrutura comportamento Diagrama de Diagrama de classes casos de uso Diagrama de Diagrama de objetos atividades Diagrama de sequência Diagrama de Diagrama de instalação interações Diagrama de Diagrama de Diagrama de comunicação estruturas máquina de compostas estados Diagrama de sincronização Diagrama de componentes Diagrama de visão geral da Diagrama de interação pacotes 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 24 Prof. Dr. Rogério E. Garcia 12 FCT-UNESP 04/07/2017 BCC Casos de Uso 19/04/2016 Os casos de uso são uma técnica para captar os requisitos funcionais de um sistema Um caso de uso é uma narrativa sobre como o sistema é utilizado por meio da descrição das interações entre os usuários de um sistema e o próprio sistema 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 25 BCC Casos de Uso – Exemplo 19/04/2016 Caso de Uso: Compra de Produto Cenário principal de sucesso: 1. O cliente navega pelo catálogo e seleciona itens para comprar 2. O cliente vai para o caixa 3. O cliente preenche o formulário da remessa (endereço de entrega; opção de entrega imediata ou em três dias) 4. O sistema apresenta a informação completa do faturamento, incluindo a remessa 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 26 Prof. Dr. Rogério E. Garcia 13 FCT-UNESP 04/07/2017 BCC Casos de Uso – Exemplo 19/04/2016 Cenário principal de sucesso (cont.): 5. O cliente preenche a informação de cartão de crédito 6. O sistema autoriza a compra 7. O sistema confirma imediatamente a venda 8. O sistema envia uma confirmação para o cliente por e-mail 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 27 BCC Casos de Uso – Exemplo 19/04/2016 Extensões: 3a. Cliente regular .1: O sistema mostra a informação atual da remessa, a informação de preço e a informação de cobrança .2: O cliente pode aceitar ou escrever por cima desses padrões, retornando ao CPS, no passo 6 6a. O sistema falha na autorização da compra a crédito .1: O cliente pode inserir novamente a informação do cartão de crédito ou cancelar 04/07/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 28 Prof.