Top Banner
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
69

Fluxo de Análise e Projeto Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. Engenharia de Software Alexandre Vasconcelos, André Santos,

Apr 16, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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