fluxo de análise e projeto copyright cesar-qualiti, maio 2000. todos os direitos reservados....
TRANSCRIPT
![Page 1: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/1.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Engenharia de Software
Alexandre Vasconcelos, André Santos, Augusto
Sampaio, Hermano Moura, Paulo Borba
![Page 2: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/2.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Tópicos
1 - Visão Geral de Orientação a Objetos e UML
2 - Visão Geral do Fluxo de Análise e Projeto
3 - Atividade Analisar de Caso de Uso
4 - Atividade Projetar Arquitetura
5 - Atividade Projetar Caso de Uso
6 - Atividade Projetar Subsistema
7 - Atividade Projetar Classe
Aspectos de Concorrência, Distribuição e Projeto de Base de Dados não serão abordados
![Page 3: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/3.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Referências
• Descrição do fluxo de análise e projeto – Link para o RUP a partir da página do curso
• Capítulos 8 e 9 do livro The Unified Software Development Process– Uma observação importante é que o CD do RUP
apresenta um único fluxo para análise e projeto, enquanto no livro são dois fluxos independentes
• The Unified Modeling Language User Guide– Introdução e consultas eventuais à notação de UML
![Page 4: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/4.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
1 - Visão Geral de Orientação a Objetos e UML
![Page 5: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/5.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Objetivos
• Apresentar os princípios do paradigma de orientação a objetos
• Apresentar os conceitos de orientação a objetos com a notação UML correspondente
![Page 6: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/6.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Princípios básicos de OO
• Abstração
• Encapsulamento
• Modularidade
• Herança
![Page 7: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/7.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Abstração
• Construção de um modelo para representação de uma realidade
• Concentração nas características essenciais, gerenciando complexidade
![Page 8: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/8.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Abstração - Objetos do mundo real
cliente
gado
automóvel
![Page 9: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/9.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Abstração - construção de um modelo para a realidade
Automovelmodelopreco...atualizaPreco()...
![Page 10: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/10.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Encapsulamento
• Elimina dependência de implementação, escondendo-a do cliente
• Uso de interfaces
• Mudanças internas não têm impacto sobre os clientes
![Page 11: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/11.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Encapsulamento - Objeto televisão
![Page 12: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/12.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Número Saldo
21.342-7 875,32
Crédito
Débito
Encapsulamento: Objeto conta bancária
![Page 13: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/13.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Modularidade
• Decomposição de um problema em pequenos pedaços, para gerenciar complexidade
• Cada conceito independente deve ser representado por um módulo
• Construção de módulos desacoplados
• Dividir para conquistar ...
![Page 14: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/14.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Modularidade
![Page 15: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/15.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Herança
• Criação de hierarquias de abstração
• Permite ordenar hierarquias relacionadas
• Base conceitual para permitir extensibilidade do software
• Reuso de código e comportamento (subtipo)
![Page 16: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/16.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Herança
Figura
RetânguloTriângulo
Polígono
ContaEspecialPoupança
Conta
![Page 17: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/17.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Herança: Objeto poupança
Número Saldo
21.342-7 875,32
Crédito
Débito
R. Juros
![Page 18: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/18.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Conceitos básicos de OO
• Objeto• Classe• Interface• Componente• Pacote• Subsistema• Relacionamentos
![Page 19: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/19.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classe
• Descrições de objetos com propriedades e comportamento comuns
• Abstração que – enfatiza o que é relevante
– suprime o que não interessa • Classes são fábricas de
objetos• Objetos são agrupados
em classes
![Page 20: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/20.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classes de Objetos
• Quantas classes temos aqui?
Fonte: Rational
![Page 21: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/21.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classe de Contas Bancárias
![Page 22: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/22.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classe em UML
Conta
Nome da Classe Conta
Atributos
Operações
numerosaldo
credito()debito()getSaldo()getNumero()
estrutura
comportamento
![Page 23: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/23.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Objeto
• Modelo de um objeto real– entidade física, conceitual ou
de software
• Possui comportamento, estado e identidade
• Exemplo: objetos conta e poupança apresentados
![Page 24: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/24.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Objeto em UML
: Conta
ContaSaque :Conta
ContaSaqueApenas o nome daclasse
Apenas o nome doobjeto
Nome da classe e doobjeto
![Page 25: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/25.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Objeto em UML
: ContaDeposito
numero = 23.025-1saldo = 500,00
: ContaSaque
numero = 21.342-7saldo = 875,32
Conta
numerosaldo
Valor do Atributo
Objeto
![Page 26: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/26.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Polimorfismo
• Escondendo diferentes implementações através de uma única interface
Manufacturer BManufacturer CManufacturer A
Fonte: Rational
interface bem definida
![Page 27: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/27.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Interface
• Interfaces formalizam polimorfismo
• Interfaces permitem o uso de arquitetura baseada em componentes
Relacionamento de realização
Círculo
Pirâmide
Cubo
DesenharMoverModificarTamanhoRotacionar
<<interface>>
Forma
Fonte: Rational
![Page 28: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/28.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exemplo: Repositório de Contas
ListaContas
RepositorioBDR
RepositorioBDOO
IncluirRemovercreditodebito
<<interface>>
Repositorio
Fonte: Rational
![Page 29: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/29.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Interface
• Interfaces definem um tipo especificando apenas a assinatura de seus métodos
• Interfaces não possuem atributos e seus métodos não têm corpo
• Classes implementam interfaces– provêem implementação para os métodos especificados em
uma interface
![Page 30: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/30.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Interface em UMLCírculo
Pirâmide
Cubo
DesenharMoverModificarTamanhoRotacionar
RepresentaçãoCanônica
Representaçãocom ícone
Forma
<<interface>> Forma
Círculo
Pirâmide
Cubo
Fonte: Rational
![Page 31: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/31.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classe abstrata
• Classe abstrata é aquela que não possui instância
• Em geral, possui pelo menos um método abstrato
• Métodos abstratos não têm corpo– devem ser implementados em subclasses não
abstratas
![Page 32: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/32.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Classes abstratas x Interfaces
• Herança de tipos x herança de código• Classes descrevem propriedades
fundamentais de um objeto• Interfaces descrevem papéis
desempenhados por um objeto em determinadas situações
• Interfaces são úteis para implementar herança múltipla
![Page 33: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/33.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Componente
• Parte não trivial, quase 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 34: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/34.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Componente em UML
Source FileName
<<EXE>>Executable
Name
<<DLL>>Component
Name
Component Interface
![Page 35: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/35.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Pacote
• Mecanismo para organizar elementos em grupos
• Facilita entendimento do sistema• Favorece modularidade e reuso
em larga escala
• Essencial para estruturar sistemas complexos
Package Name
![Page 36: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/36.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Coesão e Acoplamento
• Acoplamento é a medida de quão conectadas duas classes são– cuidado com herança
• Coesão é a medida de quão auto-contida uma classe é
• Sistemas devem ter baixo acoplamento e alta coesão – bom para manutenção
![Page 37: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/37.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Subsistema
• União de– pacote (agrupa outros elementos)– classe (comportamento)
• Realiza uma ou mais interfaces, que definem o seu comportamento
![Page 38: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/38.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Subsistema em UML
Subsistema
Interface
Realização
<<subsystem>>
Subsystem Name
![Page 39: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/39.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Subsistemas e Componentes
• Ambos encapsulam um comportamento modelado por interfaces
• Subsistemas representam componentes no modelo de projeto
• Componentes são a realização física dos subsistemas
Projeto
Implementação
Nome do componente
<<subsystem>>Nome do subsistema
![Page 40: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/40.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Relacionamentos
• Associação– simples– agregação– composição
• Dependência
• Generalização
• Realização
![Page 41: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/41.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Associação
• Relação estrutural entre classes
Pessoa
Pessoa Empresa
Empresa
trabalha
Associação
Nome da associação
Classe
Empregado Empregador
Papéis
![Page 42: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/42.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Agregação
• Tipo especial de associação• Relacionamento todo-parte• O todo possui um nível de abstração maior que a parte
DepartamentoEmpresa
Todo Parte
Agregação
![Page 43: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/43.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Composição
• Tipo especial de agregação
• Relação de posse mais forte
• O todo é responsável pela criação da parte
• A parte não vive sem o todo
DepartamentoEmpresa
Todo Parte
Composição
![Page 44: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/44.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Dependência
• Relacionamento 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 45: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/45.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Dependência
• Pode existir relacionamento de dependência entre vários elementos de UML
Classe
Pacote
PacoteFornecedor
Componente
Cliente Fornecedor
FornecedorCliente
PacoteClienteDependência
Fonte: Rational
![Page 46: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/46.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exercício - Relacionamentos
• Modele os relacionamentos existentes entre as classes abaixo:
Universidade Departamento
Estudante Disciplina Instrutor
![Page 47: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/47.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Multiplicidade
• Multiplicidade define quantos objetos participam do relacionamento
– O número de instâncias de uma classe relacionada a uma instância de outra classe
– Especificado em cada uma das pontas da associação
![Page 48: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/48.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Tipos de Multiplicidade
• Não especificada
• Exatamente um
• Zero ou mais
• Muitos (mesmo que 0..*)
• Um ou mais
• Zero ou um
• Intervalo determinado
• Valores múltiplos
1
0..*
*
1..*
0..1
2..4
2, 4..6
![Page 49: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/49.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exemplo: Multiplicidade
PessoaEmpresa
Multiplicidade
1..*1
![Page 50: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/50.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Navegação
• Especifica a direção da associação• Associações e agregações são bidirecionais
por default, mas é desejável que a navegação seja restringida a apenas uma direção
• Associações bidirecionais são mais difíceis de implementar
![Page 51: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/51.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exemplo: Navegação
PessoaEmpresa
Navegação
1..*1
![Page 52: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/52.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exercício - Multiplicidade
• Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.
![Page 53: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/53.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Generalização
• Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes
• Define uma hierarquia de abstrações
• Relacionamento “é um tipo de” (is-a-kind-of)
![Page 54: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/54.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Generalização
• Uma subclasse pode – adicionar atributos, operações e
relacionamentos– redefinir operações herdadas
• Tipos de herança: simples e múltipla
![Page 55: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/55.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Herança Simples
• Classes herdando de apenas uma outra classe
Círculoraiocentro
desenhar()
Retânguloverticesdesenhar()diagonal()
Figuracorlargura da linhadesenhar()girar(graus)selecionar()
Subclasses
Superclasse(pai)
Relacionamentode Generalização
Quadrado
![Page 56: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/56.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Herança Múltipla
• Classes herdando de mais de uma classe
ObjetoVoador Animal
Herançamúltipla
Avião Helicóptero Pássaro Lobo Cavalo
Fonte: Rational
![Page 57: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/57.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
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 58: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/58.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Realização
Realização
SubsistemaComponenteClasse
Caso de uso Realização de Caso de uso
• Indica que um elemento serve como contrato que o outro deve seguir
Exemplos:
![Page 59: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/59.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Exercício - Generalização
• Modele a hierarquia de classes de uma aplicação bancária com contas correntes (contas comuns, sem cheque especial), poupanças e contas especiais (contas com certo crédito).
![Page 60: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/60.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Mecanismos adicionais de UML
• Estereótipos
• Notas
• Propriedades (Tagged values)
• Restrições
![Page 61: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/61.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Estereótipos
• Mecanismo utilizado para estender os elementos de UML
• Define um novo modelo de elemento em termos de outro já existente
• Como– criando um novo ícone– utilizando a notação <<novo_elemento>>
![Page 62: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/62.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Estereótipos - Exemplo
• Classes de fronteira:
ClasseFronteira
<<boundary>>ClasseFronteira
![Page 63: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/63.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Notas
• Anotação utilizada para adicionar informação a diagramas– Pode ser associada a qualquer elemento de UML – Pode ser ligada a um elemento com uma linha
tracejada
Exemplo:
LeitoraCartao
Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.
![Page 64: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/64.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Propriedades (Tagged Values)
• Servem para estender elementos UML, adicionando informações sobre eles• Exemplos já definidos em UML:
– Persistence– Location (ex: no cliente, no servidor)
• Você pode criar suas próprias propriedades Cliente
{persistence}LeitoraCartao
{location=server}
![Page 65: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/65.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Paradigma de Orientação a Objetos
• Benefícios– Favorece modularidade, extensibilidade,
compatibilidade e reuso, suportando a evolução do sistema
– Aproxima-se do mundo real– Uso do mesmo conceito em todas as fases
do desenvolvimento
![Page 66: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/66.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
Respostas dos Exercícios
![Page 67: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/67.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
RelacionamentosResposta do exercício
Universidade Departamento
Estudante Disciplina Instrutor
vinculado
inscrito ministra
alocado no
coordena
![Page 68: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/68.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
MultiplicidadeResposta do exercício
Universidade Departamento
Estudante Disciplina Instrutor
vinculado
inscrito ministra
alocado no
coordena
* * * 1..*
0..11..*
0..1
1..*1..*
1..*1
1..*
* 1..*
![Page 69: Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,](https://reader036.vdocuments.mx/reader036/viewer/2022062418/552fc0f8497959413d8b47c3/html5/thumbnails/69.jpg)
Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados.
Fluxo de Análise e Projeto
GeneralizaçãoResposta do exercício
Conta-corrente
Conta
Poupança
Conta especial