70
Visão Geral e Conceitos

Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Embed Size (px)

Citation preview

Page 1: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Visão Geral e Conceitos

Page 2: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 2

ObjetivosApresentar os princípios e conceitos de orientação a objetos com a notação UML correspondenteImportância de processos de software e padrões

Page 3: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 3

Princípios básicos de OOModelagem centrada em dados Por que não funções?

Potencialmente, embutem características como Abstração Encapsulamento e information hiding modularidade Extensibilidade (herança) Polimorfismo

Page 4: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 4

AbstraçãoConstrução de um modelo para representação de uma realidade

Concentração nas características essenciais, gerenciando complexidade

Page 5: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 5

EncapsulamentoAgrupa elementos relacionados em uma unidade sintática (cápsula, módulo, classe, pacote, ...)

Page 6: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 6

Information hidingElimina dependência de implementação, escondendo-a do clienteUso de interfacesImplementado via mecanismos de controle de visibilidade Ex.: elementos privados em classes

Java

Page 7: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 7

Número Saldo

21.342-7 875,32

Crédito

Débito

Exemplo: objeto conta bancária

Encapsulamentoagregação de

elementos

Information hidingocultamento de

elementos

Page 8: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 8

Modularidade

Page 9: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 9

ModularidadeDecomposição de um problema em partes menores, para gerenciar complexidadeCada conceito independente deve ser representado por um módulo (abstração)Construção de módulos desacoplados e coesosDividir para conquistar ...

Page 10: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 10

Herança

Figura

RetânguloTriângulo

Polígono

ContaEspecialPoupança

Conta

Page 11: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 11

HerançaCriação de hierarquias de abstraçãoBase conceitual para permitir extensibilidade do softwareReuso de código e comportamento (subtipo)Herança comportamental (behavioural inheritance)Referência clássica: A behavioral notion of subtyping (Liskov & Wing)

Page 12: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 12

PolimorfismoLinguagens polimórficas permitem que valores e identificadores (variáveis e operações) possuam mais de um tipoHá vários tipos de polimorfismo: Paramétrico, de inclusão, overloading e

coerção Referência clássica: On understanding types, data abstraction and polymorphism (Cardelli & Wegner)

Page 13: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 13

Polimorfismo de inclusão Herança define polimorfismo Objeto da subclasse usado no lugar

do objeto da classe Exemplo: uso de poupança em

contextos onde contas são esperadas

Interfaces também definem polimorfismo Reuso de tipo, mas não de código

Page 14: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 14

Polimorfismo real ou paramétrico

Forma mais pura de polimorfismoO mesmo objeto ou operação usada uniformemente em diferentes contextos (tipos só determinados em tempo de execução)Exemplo: generics em Java 1.5

Page 15: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 15

Polimorfismo via overloading e coerção

Overloading permite o uso do mesmo nome para vários elementos semânticos Exemplo: métodos ou construtores

em JavaCoerção é semelhante, mas inclui conversão implícita de tipos Exemplo: soma envolvendo um

operando inteiro e outro real

Page 16: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 16

Elementos básicos de OO em UML

ObjetoClasseAtributoOperaçãoInterfaceComponentePacoteSubsistemaRelacionamentos

Page 17: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 17

Objeto em UML

: Conta

contaSaque :Conta

contaSaqueApenas o nome daclasse

Apenas o nome doobjeto

Nome da classe e doobjeto

Page 18: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 18

Classe em UML

Conta

Nome da Classe Conta

Atributos Operações

numerosaldo

credito()debito()getSaldo()getNumero()

estrutura

comportamento

Page 19: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 19

Atributo e cenários em UML

: Conta

numero = 23.025-1saldo = 500,00

: Conta

numero = 21.342-7saldo = 875,32

Conta

numero: Stringsaldo: Real

Valor do Atributo

Objeto

Page 20: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 20

Operação em UML

Conta

credito(valor:Real)debito(valor:Real)getSaldo(): RealgetNumero(): String

Especificação das operações

Page 21: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 21

Visibilidade

Marcações de acesso podem ser usadas para especificar o tipo de acesso permitido aos atributos e operações

+ público # protegido - privado

Page 22: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 22

InterfaceInterfaces definem um tipo especificando apenas a assinatura de seus métodosInterfaces não possuem atributos e seus métodos não têm corpoClasses, subsistemas e componentes implementam interfaces provêem implementação para os métodos

especificados em uma interface

Page 23: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 23

Exemplo: Independência do meio de armazenamento

Isolando as coleções de negócio de mudanças na coleção de dados correspondente

RepositorioContasBDR RepositorioContasOO

CadastroContas

<<interface>>RepositorioContas

Page 24: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 24

Interface em UML: notação alternativa

RepositorioContas

Relacionamentos de realização

RepositorioContasOO

RepositorioContasXML

RepositorioContasBDR

Page 25: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 25

Classe abstrataClasse abstrata não possui instânciaEm geral, possui pelo menos um método abstratoMétodos abstratos não têm corpo subclasses não abstratas são obrigadas

a fornecer uma implementação para eles

Page 26: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 26

Classes, Interfaces e Classes Abstratas

Classes

• Atributos• Métodos

Classes Abstratas

• Atributos• Métodos• Assinatura de Métodos

Interfaces

• Assinaturas dos métodos

Page 27: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 27

ComponenteParte não trivial, independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s)Exemplos um código fonte um componente de tempo de execução

um componente executável

Page 28: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 28

Componente em UML

Interface doComponente

Arquivo fonte<<DLL>>

Componente<<EXE>>Arquivo

executável

Page 29: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 29

PacoteMecanismo para organizar elementos em gruposFacilita entendimento do sistemaFavorece modularidade e reuso em larga escalaEssencial para estruturar sistemas complexos

nome do pacote

nome do pacote

Page 30: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 30

Coesão e AcoplamentoAcoplamento é a medida de quão conectadas duas classes são

Coesão é a medida de quão auto-contida uma classe é

Sistemas devem ter baixo acoplamento e alta coesão

Page 31: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 31

SubsistemaUnião de pacote (agrupa outros elementos) classe (comportamento)

Realiza uma ou mais interfaces, que definem o seu comportamento

Page 32: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 32

Subsistema em UML

Subsistema

Interface

Realização

<<subsystem>>

Nome do subsistema

Page 33: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 33

Subsistemas e Componentes

Ambos encapsulam um comportamento modelado por interfacesSubsistemas representam componentes no modelo de projetoComponentes são a realização física dos subsistemas

Projeto

Implementação

Nome do componente

<<subsystem>>Nome do subsistema

Page 34: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 34

RelacionamentosAssociação simples agregação composiçãoDependência GeneralizaçãoRealização

Page 35: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 35

AssociaçãoRelação estrutural entre classes

Pessoa

Pessoa Empresa

Empresa

trabalha

Associação

Nome da associação

Classe

Empregado Empregador

Papéis

Page 36: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 36

AgregaçãoTipo especial de associaçãoRelacionamento todo-parteO todo possui um nível de abstração maior que a parte

DepartamentoEmpresa

Todo Parte

Agregação

Page 37: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 37

ComposiçãoTipo especial de agregaçãoRelação de posse mais forteO todo é responsável pela criação da parteA parte não vive sem o todoNão permite compartilhamento

DepartamentoEmpresa

Todo Parte

Composição

Page 38: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 38

Associação x Agregação x Composição

Como você modelaria: Dependente e Funcionário? Pedido e Item do pedido? Funcionário e Cartão de ponto? Carro, Roda, Direção e Carburador?

Na dúvida, use agregação!

Na dúvida, use associação!

Page 39: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 39

DependênciaRelacionamento não estrutural (uso) mais fraco que associação

Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro

CartãoLeitoraCartao

lerCartao (cartao) Relacionamentode Dependência

Page 40: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 40

DependênciaPode existir relacionamento de dependência entre vários elementos de UML

Classe

Pacote

PacoteFornecedor

ComponenteFornecedorCliente

PacoteClienteDependência

Fonte: Rational

FornecedorCliente

Page 41: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 41

Exercício - Relacionamentos

Modele os relacionamentos existentes entre as classes abaixo:

Universidade Departamento

Aluno Disciplina Professor

Curso

Turma

Page 42: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 42

Multiplicidade

Multiplicidade define quantos objetos participam do relacionamento O número de instâncias de uma classe

relacionadas a uma instância de outra classe

Especificado em cada uma das pontas da associação

Page 43: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 43

Tipos de MultiplicidadeNão especificadaExatamente umZero ou maisMuitos (mesmo que 0..*)Um ou maisZero ou umIntervalo determinadoValores múltiplos

1

0..*

*

1..*

0..1

2..4

2, 4..6

Page 44: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 44

Exemplo: Multiplicidade

PessoaEmpresa

Multiplicidade

1..*1

Page 45: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 45

Navegação

Especifica a direção da associaçãoAssociações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direçãoAssociações bidirecionais são mais difíceis de implementar

Page 46: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 46

Exemplo: Navegação

PessoaEmpresa

Navegação

1..*1

Page 47: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 47

Exercício - MultiplicidadeAcrescente a multiplicidade nos relacionamentos encontrados no exercício anterior

Page 48: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 48

Generalização

Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classesDefine uma hierarquia de abstraçõesRelacionamento “é um tipo de” (is-a-kind-of) Herança comportamental

Page 49: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 49

Generalização

Uma subclasse pode adicionar atributos, operações e

relacionamentos redefinir operações herdadas

Tipos de herança: simples e múltipla

Page 50: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 50

Herança Simples

Classes herdando de apenas uma outra classe

Círculoraiocentrodesenhar()

Retânguloverticesdesenhar()diagonal()

Figuracorlargura da linhadesenhar()girar(graus)selecionar()

Subclasses

Superclasse(pai)

Relacionamentode Generalização

Quadrado

Page 51: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 51

Herança Múltipla

Classes herdando de mais de uma classe

Mamífero AnimalVoadorHerançamúltipla

Cachorro Gato Morcego Passarinho Gaviao

Page 52: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 52

Herança Múltipla

O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome? O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método?

Page 53: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 53

Realização

Realização

SubsistemaClasse

Caso de uso

Indica que um elemento serve como contrato que o outro deve seguir

Exemplos:

Componente

Realização de Caso de uso

Page 54: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 54

Exercício - ArquiteturaDefina uma arquitetura simplificada da aplicação bancária (QIB)

Page 55: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 55

Mecanismos adicionais de UML

EstereótiposNotasPropriedades (Tagged values)RestriçõesOCL (Object Constraint Language)

Page 56: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 56

Estereótipos

Mecanismo utilizado para estender os elementos de UMLDefine um novo modelo de elemento em termos de outro já existente Como criando um novo ícone utilizando a notação <<novo_elemento>>

Page 57: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 57

Estereótipos - Exemplo

Classes de fronteira:

ClasseFronteira

<<boundary>>ClasseFronteira

Page 58: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 58

NotasAnotação utilizada para adicionar informação a diagramas Pode ser afixionada a qualquer elemento de UML Pode ser ligada a um elemento com uma linha tracejada

Exemplo:

LeitorCartao

Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.

Page 59: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 59

Propriedades (Tagged Values)

Servem para estender elementos UML, adicionando informações sobre elesExemplos já definidos em UML: Persistence Location (ex: no cliente, no servidor)

Você pode criar suas próprias propriedades

Cliente{persistence}

LeitorCartao {location=server}

Page 60: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 60

Restrições

Pessoa Empresa{subset}

funcionários

diretores

1..* 1

3 1

Usadas para criação de novas regras sobre elementos do modeloOu modificação de regras existentes

Page 61: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 61

OCL (Object Constraint Language)

Empresa

É uma linguagem usada para definir restrições sobre elementos do modelo ou modificação de restrições existentes Invariantes de classe Pré e pós-condições de operações

context Empresainv diretoresNecessarios:self.diretor->size() == 3

Page 62: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 62

Diagramas UML

Diagramas usados no curso serão apresentados sob demanda Seqüência Colaboração Classes Pacotes Estados Estrutura

Page 63: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes63

Processos e PadrõesOrientação a objetos e DBC são paradigmas promissores, mas Reuso Extensibilidade Escalabilidade ...

exigem Processos Técnicas Disciplina Experiências anteriores de sucesso (padrões)!

Page 64: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 64

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista deBanco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar Base de Dados

Analista deSistemas

Fluxo de Análise e Projeto

decisões doarquiteto

<<subsystem>>

CheckList bla bla bla blabla

Projetar classes

Page 65: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes65

Padrões de Projeto e Arquiteturais

Projetistas experientes (re)utilizam soluções bem sucedidas no passadoPadrões sistematizam soluções, incluindo

• Nome• Problema• Solução• Conseqüência• Exemplo, ...

Durante as duas última décadas, surgiu uma “comunidade” voltada a padrões

Page 66: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: Padrão Fachada

66

Fachada

Page 67: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes67

Anti-PadrõesSão uma maneira de documentar soluções recorrentes que não tiveram sucesso

• Podem também incluir soluções re-trabalhadas que sejam efetivas

Page 68: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Respostas dos Exercícios

Page 69: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 69

RelacionamentosResposta do exercício

Universidade Departamento

Aluno Disciplina

Professor

Curso

Turma

Page 70: Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 70

MultiplicidadeResposta do exercício

Universidade Departamento

Aluno Disciplina

Professor

Curso

Turma

1..3

**

*1*

*

1

1

*

*1

1

1

*

*