Prof. Me. Clodoaldo Brasilino [email protected] · • Os diagramas UML são a “espinha...
Transcript of Prof. Me. Clodoaldo Brasilino [email protected] · • Os diagramas UML são a “espinha...
Engenharia de SoftwareProf. Me. Clodoaldo Brasilino [email protected]
Prof. Me. Clodoaldo Brasilino
2
1. Introdução à Engenharia de Software 2. Processos de Software e Projetos 3. Metodologia Ágil 4. UML5. Git - Gerência de Configuração
Acompanhamento da Disciplina
Prof. Me. Clodoaldo Brasilino
3
• Diagrama de Classes • Estrutura e composição • Multiplicidade • Interpretação em programas • Associações bidirecionais • Operações • Generalização • Notas e comentários • Dependência • Dicas de utilização
Conteúdo da Aula
Diagramas de Classes
Prof. Me. Clodoaldo Brasilino
5
• O diagrama de Classes é um diagrama estrutural
• Descreve: • Os tipos de objetos presentes no sistema • Os tipos de relacionamento estáticos • Características:
• Propriedades • Operações
• Restrições
Diagramas de Classes
Prof. Me. Clodoaldo Brasilino
7
• Propriedades: • Representam as características estruturais
de uma classe • Dividem-se em:
• Atributo • Associação
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
8
• Atributo: • linha de texto na caixa no seguinte formato:
visibilidade nome: tipo multiplicidade = valor_padrão {restrições}
• visibilidade: • público (+) • privado (-) • pacote (~) • protegido (#)
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
9
• Atributo: • linha de texto na caixa no seguinte formato:
visibilidade nome: tipo multiplicidade = valor_padrão {restrições}
• nome: nome do atributo • tipo: restrição sobre o tipo de objeto • multiplicidade: veremos em breve
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
10
• Atributo: • linha de texto na caixa no seguinte formato:
visibilidade nome: tipo multiplicidade = valor_padrão {restrições}
• valor_padrão: valor atribuído, caso não se tenha definido algum em sua criação
• restrições: restrições e propriedades que podem ser definidas ao tipo
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
11
• Associação: • Linha cheia entre duas classes,
direcionada da classe de origem para a de destino
• O nome da propriedade fica no destino • O destino vincula à classe que é o tipo da
propriedade • Pode apresentar multiplicidades
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
12
Quando devo usar associação ou atributo?
Estrutura e Composição
Prof. Me. Clodoaldo Brasilino
14
• A multiplicidade indica quantos objetos podem/devem preencher um objeto;
• As mais comuns são: • 1 - deve ter exatamente • 0..1 - pode ou não ter um único • * - pode ter nenhum, um ou vários
Multiplicidade
Prof. Me. Clodoaldo Brasilino
15
Multiplicidade
Prof. Me. Clodoaldo Brasilino
16
• Geralmente são definidas com limite inferior e superior • Limite inferior: qualquer número natural (>=0) • Limite superior: qualquer número positivo (>0)
ou * para ilimitado • Termos referentes à multiplicidade:
• Opcional: limite inferior = 0 • Obrigatório: limite inferior > 0 • Valor único: limite superior = 1 • Valores múltiplos: limite superior > 1 (em geral, *)
Multiplicidade
Prof. Me. Clodoaldo Brasilino
17
• Quando uma propriedade tem valores múltiplos, em geral usamos plural no nome dela
• Valores múltiplos assumem a forma de conjunto, logo podem-se aplicar restrições como:
• {ordered} - ordenado • {unordered} - desordenado • {unique} - objetos distintos apenas • {nonunique} - objetos iguais permitidos • {bag} - desordenado, iguais permitidos
Multiplicidade
Prof. Me. Clodoaldo Brasilino
18
• Não existe uma maneira única de interpretar propriedades no código
• Analisem a propriedade preço a seguir
Interpretação em programas
Prof. Me. Clodoaldo Brasilino
20
Interpretação em programas
Prof. Me. Clodoaldo Brasilino
21
• Até agora vimos associações unidirecionais • Podemos ter associações bidirecionais, como
a descrita abaixo:
Associações bidirecionais
Prof. Me. Clodoaldo Brasilino
22
• No caso, a classe Carro tem a propriedade
proprietário: Pessoa[1]
• E a classe Pessoa tem a propriedade
carros: Carro[*]
Associações bidirecionais
Prof. Me. Clodoaldo Brasilino
23
• Podemos não definir a navegabilidade também, através da representação abaixo
• Nesta representação, não importa a navegabilidade (unidirecional para um sentido ou outro, ou bidirecional)
Associações bidirecionais
Prof. Me. Clodoaldo Brasilino
24
Cuidado com as associações bidirecionais!
Associações bidirecionais
Dica para o
programador
Prof. Me. Clodoaldo Brasilino
25
Devemos atualizar ambos os lados
sempre!
Associações bidirecionais
Dica para o
programador
Prof. Me. Clodoaldo Brasilino
26
• São as ações que uma classe sabe realizar • Correspondem diretamente aos métodos • Em geral, as operações que apenas
manipulam propriedades (encapsulamento) são omitidas
Operações
Prof. Me. Clodoaldo Brasilino
27
• A sintaxe das operações UML é: visibilidade nome (lista-de-parâmetros) : tipo-
retorno {restrições} • visibilidade:
• público (+) • privado (-) • pacote (~) • protegido (#)
Operações
Prof. Me. Clodoaldo Brasilino
28
• A sintaxe das operações UML é: visibilidade nome (lista-de-parâmetros) : tipo-
retorno {restrições} • nome: nome da operação • lista-de-parâmetros: lista de parâmetros • tipo-retorno: tipo do dado retornado, caso
haja algum • restrições: restrições e propriedades que
podem ser definidas à operação
Operações
Prof. Me. Clodoaldo Brasilino
29
• A lista-de-parâmetros é escrita da seguinte forma:
direção nome: tipo = valor_padrão • direção: pode ser de entrada (in), saída (out) ou
entrada e saída (inout) • Em Java, todos os parâmetros são inout
• nome: nome do parâmetro • tipo: restrição sobre o tipo de objeto • valor_padrão: valor atribuído, caso não se tenha
definido algum em sua chamada
Operações
Dica para o
programador
Prof. Me. Clodoaldo Brasilino
30
• Alguns conceitos da UML sobre operações: • Consulta - operação que não modifica o
estado do sistema: restrição {query} • Modificadores ou comandos - operações
que alteram o estado do sistema • Método de leitura - retorna o valor de um
campo apenas • Método de modificação - coloca um valor
em um campo apenas
Operações
Prof. Me. Clodoaldo Brasilino
31
• Alguns conceitos da UML sobre operações: • Operação - algo que é chamado em um
objeto (a declaração de um método/função)
• Método - é o corpo de um procedimento/função
Operações
Prof. Me. Clodoaldo Brasilino
32
• É a visão na UML da herança nas linguagens orientadas a objetos
• Envolve a separação de tipos específicos e gerais de um certo grupo de tipos
Generalização
Prof. Me. Clodoaldo Brasilino
33
• Exemplo clássico: Pessoa
Generalização
Prof. Me. Clodoaldo Brasilino
34
• Podem aparecer isolados ou vinculados através de uma linha tracejada
Notas e comentários
Prof. Me. Clodoaldo Brasilino
35
• Uma dependência entre dois elementos existe quando mudanças na definição de um elemento afeta outro
• Identificar dependências é um fator muito importante em sistemas que tomam grandes proporções • Quanto maior for a propagação das
dependências, mais difícil/custoso será modificar
Dependência
Prof. Me. Clodoaldo Brasilino
36
Dependência
Prof. Me. Clodoaldo Brasilino
37
• Muitos relacionamentos apresentam dependência, não apenas o relacionamento de Dependência
• A dependência básica não é transitiva • Cuidado com ciclos de dependência! • Mostrar todas as dependências existentes em um
diagrama de classes é perda de tempo! • Mostre apenas o que for necessário
• Ferramentas de engenharia reversa são de grande utilidade na identificação de dependências
Dependência
Prof. Me. Clodoaldo Brasilino
38
Dependência
Prof. Me. Clodoaldo Brasilino
39
• São aspectos importantes das definições das estruturas de dados
• Deve-se escrever as restrições entre chaves {} • Já vimos alguns exemplos anteriormente
• Podemos utilizar: • Linguagem natural • Linguagem de programação • OCL - Object Constraint Language
• OCL é a notação formal da UML
Restrições
Prof. Me. Clodoaldo Brasilino
40
• Os diagramas UML são a “espinha dorsal” da linguagem
• Diagramas de classes são tão ricos que podem tornar-se complexos demais para utilizar • Não tente utilizar todas as notações que
dispõe • Diagramas de classe conceituais são muito
úteis na exploração da linguagem de negócio • Não desenhe modelos para tudo • Cuidado para não focar apenas na estrutura
Dicas de Utilização
Prof. Me. Clodoaldo Brasilino
41
• Vimos: ‣ Diagramas de Classes
Resumo da Aula
Prof. Me. Clodoaldo Brasilino
42
Alguma dúvida?
Prof. Me. Clodoaldo Brasilino
43
• Leitura dos capítulos: ‣ UML Essencial - Cap. 3
Fixação da Aula