43
Engenharia de Software Prof. Me. Clodoaldo Brasilino [email protected]

Prof. Me. Clodoaldo Brasilino [email protected] · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Embed Size (px)

Citation preview

Page 1: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Engenharia de SoftwareProf. Me. Clodoaldo Brasilino [email protected]

Page 2: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 3: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 4: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Diagramas de Classes

Page 5: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 6: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se
Page 7: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

7

• Propriedades: • Representam as características estruturais

de uma classe • Dividem-se em:

• Atributo • Associação

Estrutura e Composição

Page 8: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 9: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 10: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 11: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 12: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

12

Quando devo usar associação ou atributo?

Estrutura e Composição

Page 13: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se
Page 14: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 15: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

15

Multiplicidade

Page 16: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 17: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 18: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 19: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se
Page 20: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

20

Interpretação em programas

Page 21: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

21

• Até agora vimos associações unidirecionais • Podemos ter associações bidirecionais, como

a descrita abaixo:

Associações bidirecionais

Page 22: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 23: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 24: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

24

Cuidado com as associações bidirecionais!

Associações bidirecionais

Dica para o

programador

Page 25: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

25

Devemos atualizar ambos os lados

sempre!

Associações bidirecionais

Dica para o

programador

Page 26: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 27: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 28: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 29: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 30: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 31: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 32: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 33: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

33

• Exemplo clássico: Pessoa

Generalização

Page 34: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

34

• Podem aparecer isolados ou vinculados através de uma linha tracejada

Notas e comentários

Page 35: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 36: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

36

Dependência

Page 37: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 38: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

38

Dependência

Page 39: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 40: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

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

Page 41: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

41

• Vimos: ‣ Diagramas de Classes

Resumo da Aula

Page 42: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

42

Alguma dúvida?

Page 43: Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu · • Os diagramas UML são a “espinha dorsal” da linguagem • Diagramas de classes são tão ricos que podem tornar-se

Prof. Me. Clodoaldo Brasilino

43

• Leitura dos capítulos: ‣ UML Essencial - Cap. 3

Fixação da Aula