Análise e projeto de sistemas orientados a objetos

91
Professor : José Luiz Rodrigues Junior E-mail: [email protected] 1

description

Análise e projeto de sistemas orientados a objetos. Professor : José Luiz Rodrigues Junior E-mail : [email protected]. UML-Unified Modeling Language. Desenvolvimento Rational software Microsoft Hewlett-Packard Oracle Sterling Unisys IBM MCI. UML-Unified Modeling Language. - PowerPoint PPT Presentation

Transcript of Análise e projeto de sistemas orientados a objetos

Page 1: Análise e projeto de sistemas orientados a objetos

Professor : José Luiz Rodrigues JuniorE-mail: [email protected]

1

Page 2: Análise e projeto de sistemas orientados a objetos

UML-Unified Modeling Language

DesenvolvimentoRational softwareMicrosoftHewlett-PackardOracleSterlingUnisys IBMMCI

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-2

Page 3: Análise e projeto de sistemas orientados a objetos

UML-Unified Modeling LanguageInfluenciada por vários métodos de análise e projeto orientados a

objetosDeriva particularmente de 3 notações:

OOD (Projeto orientado a objetos) – Grady BoochOMT (Técnica de modelagem de objetos) - James RumbaughOOSE(Engenharia de software orientada a objetos) - Ivar Jacobson

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-3

Page 4: Análise e projeto de sistemas orientados a objetos

Orientação a objetosSignifica organizar o mundo real como uma coleção de

objetos

AlavancasEvolução TecnológicaDistribuição de ProcessamentoTecnologia Cliente-Servidor Internet JavaAplicações WEB

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-4

Page 5: Análise e projeto de sistemas orientados a objetos

Objetos - DefiniçãoObjeto é uma entidade concreta, apesar da concepção ser

abstrataAgrupamento de características e ações de uma entidadeCaracterísticas são representadas por atributosAções são representadas por métodosUm conjunto de atributos e métodos, forma um objeto

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-5

Page 6: Análise e projeto de sistemas orientados a objetos

Objetos - Definição

Do ponto de vista da abstração, um objeto tenta não separar o que até então vinha sendo separado: Dados e funções.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-6

Page 7: Análise e projeto de sistemas orientados a objetos

Objetos - Definição “um objeto é uma abstração de um conjunto de coisas do mundo

real, sendo que: todas as coisas do mundo real em um conjunto - as instâncias - têm as mesmas características. Todas as instâncias são sujeitas e em conformidade às mesmas regras”

“...um objeto representa uma entidade, item ou unidade individual, identificável, sendo real ou abstrato, com regras bem definidas no domínio do problema."

Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-7

Page 8: Análise e projeto de sistemas orientados a objetos

Objetos - ExemplosCoisas tangíveis O Livro “Modelagem de Objetos”,

uma cadeira, uma pessoa, etc.

Incidente A copa do mundo de futebol (evento/ocorrência)

Interação O débito de R$ 100,00 na conta x(transação/contrato) no dia 20/01/2000

Em um Sistema Universitário, João da Silva é um estudante-objeto; ele assiste a diversos seminários-objeto e está cursando uma graduação-objeto.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-8

Page 9: Análise e projeto de sistemas orientados a objetos

Objetos - CaracterísticasUm objeto possui três características básicas:

Estado

Comportamento

Identidade

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-9

Page 10: Análise e projeto de sistemas orientados a objetos

Finalidade da OO

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-10

Page 11: Análise e projeto de sistemas orientados a objetos

Objetos - estadoEntende-se como o seguinte conjunto: Os valores dos atributos

e o status das operações que o objeto executouObviamente, um método executado ou a mudança de valor de

algum atributo automaticamente muda seu estado anterior

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-11

Page 12: Análise e projeto de sistemas orientados a objetos

Objetos - estado

Objetos têm consciência do seu passadoRetém informações dentro de si mesmo por tempo indefinido,

não “morrendo” quando termina a execução, ou seja, memoriza suas propriedades e valores associados. Essa característica chama-se “retenção de estado”

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-12

Page 13: Análise e projeto de sistemas orientados a objetos

Objetos - estadoExemplo:

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-13

CONTA

João da Silva12345-6R$1500,00

Depositou R$ 800,00

CONTA

Maria AParecida98765-4R$2800,00

Sacou R$ 70,00

CONTA

Ana Maria Santos91872-7R$6000,00

Sacou R$ 365,60

CONTA

Page 14: Análise e projeto de sistemas orientados a objetos

Objetos - comportamentoNenhum objeto existe isoladoEle interage com outros objetos, atuando sobre estes, ou sofrendo

ação dos mesmos.O comportamento de um objeto é completamente definido pelas

suas ações “Comportamento é como um objeto age e reage, nos termos das

suas mudanças de estado e passagem de mensagens “Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-14

Page 15: Análise e projeto de sistemas orientados a objetos

Objetos – estado e comportamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-15

operações/métodos/interface

(público)

dados/propriedades/atributos

(privado)

A estrutura de dados armazena o estado de um objeto (valores dos atributos).

As operações definem o comportamento do objeto, que é a forma como um objeto age e reage em termos de mudanças de estado e respostas às operações que sabe executar

Page 16: Análise e projeto de sistemas orientados a objetos

Objetos - comportamentoMensagem

O comportamento de um objeto é função de seu estado, bem como das operações realizadas sobre ele, com certas operações tendo o efeito de alterar o estado do objeto

Trata-se de uma operação que um objeto executa sobre outro para obter uma reação

É o meio de comunicação entre objetos, isto é, é o estímulo para um determinado comportamento.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-16

Page 17: Análise e projeto de sistemas orientados a objetos

Objetos - MensagemPara que um objeto (chamado de emissor) envie uma

mensagem para outro objeto (chamado alvo), deve-se conhecer três coisas:

1.  O identificador do objeto alvo2. O nome do método do objeto alvo que deseja executar3. Quaisquer informações suplementares (argumentos) que o

objeto alvo necessitará na execução de seu método

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-17

Page 18: Análise e projeto de sistemas orientados a objetos

Objetos - operaçõesUma operação denota um serviço que uma classe oferece a seus

clientes Pode-se executar quatro tipos de operações sobre um objeto :

ModificadoraSeletoraConstrutoraDestruidora

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-18

Page 19: Análise e projeto de sistemas orientados a objetos

Objetos - Identidade

“Identidade é aquela propriedade de um objeto que o distingue de todos os outros objetos”

Khoshafiam e Copeland

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-19

Page 20: Análise e projeto de sistemas orientados a objetos

Objetos - IdentidadeUm identificador é anexado ao objeto no momento da criação

do objetoO mesmo identificador permanece com o objeto por toda sua

existência Dois objetos não podem ter o mesmo identificador

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-20

Page 21: Análise e projeto de sistemas orientados a objetos

Modelo de objetosDiferentes metodologias, diferentes maneiras de resolver o

problemaEm orientação a objetos existe o conceito de “Modelo de objetos”Compõe-se de 4 elementos principais:

AbstraçãoEncapsulamentoModularidadeHierarquia

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-21

Page 22: Análise e projeto de sistemas orientados a objetos

AbstraçãoElemento fundamental pelo qual se reconhece um objeto, seja

ele um processo ou situação no mundo real “Uma Abstração denota as características essenciais de um

objeto que o distinguem de todos os outros tipos de objetos e portanto definem nitidamente os limites conceituais relativos à perspectiva do observador.”

Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-22

Page 23: Análise e projeto de sistemas orientados a objetos

Abstração

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-23

Page 24: Análise e projeto de sistemas orientados a objetos

AbstraçãoDescreve as características visíveis do objetoTem seu foco no comportamento observável do objetoNão descreve, entretanto:

A sua implementaçãoO seu funcionamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-24

Page 25: Análise e projeto de sistemas orientados a objetos

EncapsulamentoÉ o processo de esconder todos os detalhes de um objeto que não

contribuem para suas características essenciais

“Encapsulamento é o processo de identificação dos elementos de uma abstração que constituem sua estrutura e comportamento.”

Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-25

Page 26: Análise e projeto de sistemas orientados a objetos

Encapsulamento Técnica de proteger informações É a arte de esconder o que não é essencial

Deve-se saber : O que o objeto produz O que o objeto necessita para produzir

Ex.: Para dirigir é preciso saber que o carro produzmovimento e precisa de gasolina para funcionar.Não é necessário saber como ele funciona

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-26

Page 27: Análise e projeto de sistemas orientados a objetos

Encapsulamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-27

Page 28: Análise e projeto de sistemas orientados a objetos

Encapsulamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-28

#

Todo o acesso aos dados do objeto é feito através da chamada a uma operação da sua interface.

A interface de um objeto declara todas as operações permitidas

Page 29: Análise e projeto de sistemas orientados a objetos

EncapsulamentoBenefícios

Segurança Protege os atributos dos objetos de terem seus valores

corrompidos por outros objetos.Independência

“Escondendo” seus atributos, um objeto protege outros objetos de complicações de dependência de sua estrutura interna

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-29

Page 30: Análise e projeto de sistemas orientados a objetos

ModularidadeDivisão do sistema em componentes individuaisPermite maior clareza e compreensãoIdentifica os limites do sistemaO agrupamento de classes e objetos em módulos permite a

montagem de uma estrutura lógica que produz a arquitetura do sistema

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-30

Page 31: Análise e projeto de sistemas orientados a objetos

Modularidade“Modularidade é a propriedade de um sistema

de ser decomposto em um conjunto de módulos coesivos e relacionalmente desprendidos.” Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-31

Page 32: Análise e projeto de sistemas orientados a objetos

Modularidade

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-32

Page 33: Análise e projeto de sistemas orientados a objetos

HierarquiaUm grupo de abstrações frequentemente forma uma hierarquia e

com a identificação dessas hierarquias no projeto, pode-se simplificar o entendimento do problema.

“Hierarquia é uma graduação ou ordenamento de abstrações “ Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-33

Page 34: Análise e projeto de sistemas orientados a objetos

Hierarquia

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-34

Abstrações formam uma hierarquia

Page 35: Análise e projeto de sistemas orientados a objetos

Hierarquia-exemploUm computador é feito de CPU, gabinete, teclado e outros

dispositivos. A CPU, por sua vez (e aqui o que fazemos é diminuir o nível de abstração), é formada de portas lógicas; as portas lógicas, por sua vez, são formadas de transístores; estes, por sua vez, são formados de cristais, metais e substâncias químicas; estas por sua vez, formadas por moléculas, que são formadas por átomos, e assim em diante

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-35

Page 36: Análise e projeto de sistemas orientados a objetos

Benefícios do modelo de objetos É adequado para sistemas que pretendem evoluir com o tempo,

pois sua estrutura permite que se mude a implementação interna de um objeto sem ter que mudar todo o código que se situa acima deste

É um modelo maleável, o que permite a inserção de novas características

Princípios como “esconder informações” e “modularidade” permitem facilidade em sistemas que possuem manutenção constante

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-36

Page 37: Análise e projeto de sistemas orientados a objetos

ClassesEstrutura geral de onde os objetos podem derivarCada objeto é uma linha de vida à parte e cada um possui um

estado específicoUm objeto é diferente do outro (Em seu conteúdo e estado) mesmo

que a sua interface seja a mesma.

“Uma classe é um grupo de objetos que compartilham uma estrutura comum e um comportamento comum”

Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-37

Page 38: Análise e projeto de sistemas orientados a objetos

Classes Existem vários tipos de objetos, portanto existem vários

tipos de classes

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-38

Page 39: Análise e projeto de sistemas orientados a objetos

Classes

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-39

A classe representa um grupo de objetos com estrutura e comportamentos comuns

Page 40: Análise e projeto de sistemas orientados a objetos

ClassesTodos os objetos são instâncias de uma classe.Possibilita a reutilização de códigoUma classe é representada conforme abaixo:

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-40

CONTA

TitularNúmeroSaldo

CONTA

Titular Número Saldo

Depósito( )Saque( )Transferância( )

Classe

Atributos

Métodos

Page 41: Análise e projeto de sistemas orientados a objetos

Classes e Objetos

Classe é o que se projeta e programa

Objeto é o que se cria durante o processamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-41

Page 42: Análise e projeto de sistemas orientados a objetos

Classes - VisõesA interface de uma classe provê a visão externa, e portanto,

enfatiza a abstração enquanto esconde sua estrutura e segredos de seu comportamento

A implementação de uma classe é sua visão interna, que engloba os segredos de seu comportamento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-42

Page 43: Análise e projeto de sistemas orientados a objetos

Classes - VisõesA interface de uma classe divide-se em:

Pública (Representada pelo símbolo “+”)Uma declaração que forma parte da interface de uma classe e é visível para todos os clientes que são habilitados para isto;

Protegida (Representada pelo símbolo “#”Uma declaração que forma parte da interface de uma classe, mas não é visível para quaisquer outras classes, exceto suas subclasses;

Privada (Representada pelo símbolo “-”)Uma declaração que forma parte da interface de uma classe, mas não é visível para quaisquer outras classes.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-43

Page 44: Análise e projeto de sistemas orientados a objetos

Classes – Classificação e instanciaçãoClassificação

É a operação que divide em uma ou mais categorias (classes) indivíduos dentro de um domínio;

InstanciaçãoÉ a operação que evidencia um indivíduo (Objeto) que pertence

a uma categoria.São operações opostas. Quando se une vários indivíduos em uma categoria, é uma classificação, mas quando se pega um único indivíduo da categoria, é uma instanciação.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-44

Page 45: Análise e projeto de sistemas orientados a objetos

Classes – Classificação e instanciação

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-45

Page 46: Análise e projeto de sistemas orientados a objetos

Classes – Generalização / Especialização

GeneralizaçãoAto de definir-se uma Classe (supertipo) que irá conter as características e o comportamento que outras Classes possuem em comum

EspecializaçãoAto de definir-se uma Classe que além de herdar as características e o comportamento do Supertipo ainda possui outras características que são sua especialidade (somente ela tem) e, portanto, os demais subtipos não possuem

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-46

Page 47: Análise e projeto de sistemas orientados a objetos

Classes – Generalização / Especialização

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-47

Genera

lizaç

ão

Es p

ec ia

li zaçã

o

Page 48: Análise e projeto de sistemas orientados a objetos

Classes – Generalização / especialização Observa características comuns para determinar uma classe mais

abrangente

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-48

gatogatogatogato

leãoleãoleãoleão

tigretigretigretigreFelinosFelinosFelinosFelinos

atletaatletaatletaatleta

professoprofessorr

professoprofessorr

médicomédicomédicomédicoPessoasPessoasPessoasPessoas

MamíferosMamíferosMamíferosMamíferos

Page 49: Análise e projeto de sistemas orientados a objetos

Classes – Generalização / especialização

Uma Classe derivada herda a estrutura de dados e métodos de sua classe “base”, mas pode seletivamente:adicionar novos métodosestender a estrutura de dados redefinir a implementação de métodos já existentes

Uma Classe “base” propicia a funcionalidade que é comum a todas as suas classes derivadas, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento.

A Generalização é uma noção conceitual. Herança é a implementação de uma generalização.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-49

Page 50: Análise e projeto de sistemas orientados a objetos

Classes - HerançaHerança é o compartilhamento de atributos e operações entre

classes com base em um relacionamento hierárquico Cada subclasse herda todas as propriedades da superclasse e

acrescenta suas próprias e exclusivas característicasPermite a reutilização de especificações comuns

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-50

Page 51: Análise e projeto de sistemas orientados a objetos

Classes - HerançaVamos supor que a engenharia genética conseguiu produzir o

cruzamento de animais (classes) diferentes, como por exemplo, leões, girafas e cobras. Cada um deles possui sua características próprias (o leão possui juba, a girafa pintas, a cobra escamas, etc…) e algumas em comum (Leões e Girafas são mamíferos com quatro patas, etc…). Quais as características deste novo ser (ou classe) ?

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-51

Page 52: Análise e projeto de sistemas orientados a objetos

Classes - Herança

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-52

Pode-se criar uma nova classe com características das originais

Page 53: Análise e projeto de sistemas orientados a objetos

Classes - Herança

A Classe “Automóvel” herda os atributos: passageiros e eixos; define um novo atributo: bagagem e redefine o método: partida().

A Classe “Caminhão” herda os atributos: passageiros e eixos e define um novo: carga.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-53

Veículo terrestrepassageiros

eixos

partida()

parada()

Automóvel

partida()

Caminhãocargabagagem

Page 54: Análise e projeto de sistemas orientados a objetos

Classes – Herança

“Um objeto tem parte de suas caracteristicas herdadas de classes superiores (como variáveis globais) ou outras classes (como uma passagem de parâmetro).”

Grady Booch

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-54

Page 55: Análise e projeto de sistemas orientados a objetos

Agregação – Estrutura todo-parte Propriedade de uma Classe formar suas instâncias a partir da reunião das

características e do comportamento de outras instâncias da mesma Classe ou de Classes diferentes, sendo que os componentes têm existência independente em relação ao composto, ou seja, a eliminação do composto não afeta a existência dos elementos que o criaram.

É uma associação entre um objeto e outros objetos que fizerem parte dele. Se A agrega B então B é parte de A; mas seus tempos de vida são independentes.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-55

Pedido

Produto Cliente

Page 56: Análise e projeto de sistemas orientados a objetos

Composição – Estrutura todo-parte Propriedade de uma Classe formar suas instâncias a partir da reunião das

características e do comportamento de outras instâncias da mesma Classe ou de Classes diferentes, sendo que os componentes não têm existência indepedente em relação ao composto, ou seja, a eliminação do composto afeta a existência dos elementos que o criaram.

Se A é composto de B então A controla o tempo de vida de B.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-56

Lâmpada

Base FilamentoBulbo

Page 57: Análise e projeto de sistemas orientados a objetos

Classes abstratas São Classes utilizadas apenas para organizar a estrutura, já que ela não será

instanciada. Ela define um conjunto mínimo de atributos e métodos virtuais, que deverão ser

implementados pelas SubClasses. Uma Classe abstrata sugere uma técnica de “design” e muitas vezes aumenta a clareza

da modelagem

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-57

Aluno

Graduação Pós-Graduação

Classe Abstrata

Classes Concretas

Page 58: Análise e projeto de sistemas orientados a objetos

Classes abstratasUma Classe Abstrata é uma classe que:

provê organizaçãonão possui instânciaspossui uma ou mais operações abstrataspossui subclasses que implementam estas operações

Uma operação abstrata só determina a existência de um comportamento não definindo uma implementação

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-58

Page 59: Análise e projeto de sistemas orientados a objetos

Classes - RelacionamentosUm relacionamento modela uma conexão física ou conceitual entre objetosRelacionamentos são bidirecionaisRestringe o número de objetos que podem ser associados com outros objetos

numa relaçãoÉ denotada por um verbo

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-59

Cliente Pedidofaz1 *

Objetos da classe Cliente estão associados a Objetos da classe Pedido

Page 60: Análise e projeto de sistemas orientados a objetos

Classes - Relacionamentos

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-60

Gerente Projetoparticip

a1 1

Exatamente 1

Empregado Projetoparticip

a1 0..1

Opcional 0 ou 1

Departam. Empregadoaloca1 1..*

Opcional 1 ou muitos

Cliente Pedidofaz1 *

Maior ou igual a 0

Aluno Livroempresta1 0..5

Numericamente especificado

Page 61: Análise e projeto de sistemas orientados a objetos

PolimorfismoNo contexto OO, Polimorfismo significa que diferentes tipos de Objetos

podem responder a uma mesma mensagem de maneiras diferentes

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-61

Aplicação Financeira

calcularSaldo()

Renda Fixa

calcularSaldo()

Poupança

calcularSaldo()

redefinição da operação de calcularSaldo (overriding)

mesmo nome (calcularSaldo) para 3 funções (overloading)

Page 62: Análise e projeto de sistemas orientados a objetos

Polimorfismo

Pode-se declarar funções e procedimentos com os mesmos nomes, enquanto suas chamadas possam a ser distintas pelos seus parâmetros de retorno, consistindo do número dos seus argumentos e dos seus tipos de valores de retorno

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-62

Page 63: Análise e projeto de sistemas orientados a objetos

Representa um tipo de reação a qual um Objeto está preparado para ter ao ser estimulado (comportamento). Existem alguns tipos de reações que uma Operação pode causar em um Objeto:Construtoras – geração de um novo Objeto da Classe

(instanciação)Seletoras – recuperação do conteúdo dos atributos de um

Objeto, sem alterá-losModificadoras – alteração do valor dos atributos ou estado de

um ObjetoDestrutoras – eliminação de um objeto existente

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-63

Operações

Page 64: Análise e projeto de sistemas orientados a objetos

Métodos

Conjunto de instruções associado com a operação de uma classe, propiciando comportamento aos objetos da Classe

Procedimento ou função associada com uma Classe Invocado somente por meio de passagem de mensagens por:

Objetos de outras Classes Interface de usuárioLógica do programa

Permite manipular os valores de atributos do objetoMétodos têm nome, representados por um verbo, que denotam o resultado

esperado; podem ter parâmetros; cada parâmetro tem nome e tipoEx.: alterarNome (cpf,nome) //normalmente primeira letra minúscula

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-64

Page 65: Análise e projeto de sistemas orientados a objetos

Diagramas UML1. Diagramas de casos de uso (casos + atores + relações)2. Diagramas de seqüência (detalhamento - fase projeto)3. Diagramas de colaboração (troca de mensagens entre objetos)4. Diagramas de classes (classes + responsabilidades -- atributos, relacionamentos,

métodos, cenários)5. Diagramas de estados (ciclos de vida, comportamentos)6. Diagrama de atividades (ordenamento dos casos de uso)7. Diagrama de componentes (grupo de objetos divididos em nodos físicos)

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-65

Page 66: Análise e projeto de sistemas orientados a objetos

Visão de casos de uso

Descreve a funcionalidade que o sistema deve oferecer, do ponto de vista do mundo externo.

O mundo externo é representado por um conjunto de atores ou atores externos que interagem com o sistema.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-66

Page 67: Análise e projeto de sistemas orientados a objetos

Visão de casos de uso

Os casos de uso são levantados a partir da idéia de necessidade do sistema, antes mesmo de se pensar numa arquitetura para o mesmo.

Eles são a base do processo uma vez que dirigem o desenvolvimento das demais visões.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-67

Page 68: Análise e projeto de sistemas orientados a objetos

Visão de casos de uso

O objetivo final do sistema é oferecer a funcionalidade descrita pelos casos de uso.

Sendo assim, a visão dos casos de uso é importante também na validação do sistema.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-68

Page 69: Análise e projeto de sistemas orientados a objetos

Casos de uso - simbologia

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-69

nome

rótulo

rótulo

<<include>>

<<extend>>

Caso de uso Ator

Comunicação

Interação bidirecional

Unidirecional

Relações

Uses – Passos comuns

Extends – Passos adicionaisGeneralização/Especialização

Page 70: Análise e projeto de sistemas orientados a objetos

Casos de uso - simbologia

Símbolo de atorNome do atorPropriedades

Iniciador Tipo

Usuário Sistema

Descrição

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-70

nome

Um ator pode representar1. Um papel que indica o que inicia o caso de uso, ou que recebe a informação2. Outro sistema que fornece a informação requisitada, ou que recebe mensagens

Page 71: Análise e projeto de sistemas orientados a objetos

Interações em casos de usoComunicação: um Ator comunica-se com o Caso de Uso.Extensão: demonstra como o comportamento definido para o

primeiro caso pode ser inserido no comportamento definido para o segundo. Sugere a existência de casos adicionais e alternativos

Generalização: um caso de uso é uma especialização de outro, e herda características

Uso ou inclusão: ocorre quando surge a divisão de um caso de uso mais complexo, que inclui outros mais simples, e a identificação de passos comuns, que podem ser reutilizados por outros casos de uso.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-71

Page 72: Análise e projeto de sistemas orientados a objetos

Interações em casos de uso

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-72

RequisitarCatálogo

Venda

Pedir Produto

Cliente

<<extende>>

<<inclui>>

Venda c/ cartão

Generalização

Page 73: Análise e projeto de sistemas orientados a objetos

Casos de uso <<include>> (<<uses>>)

O tipo de generalização <<include>> ou <<uses>> é usado para descrever o comportamento comum entre dois ou mais use cases

Utilizados para identificar comportamentos reutilizáveis pelas regras de negócio

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-73

Page 74: Análise e projeto de sistemas orientados a objetos

Casos de uso –<<include>>

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-74

A generalização <<uses>> indica que uma instância de RealizarPedido utiliza todos os comportamentos descritos por ValidarCliente. O comportamento descrito por ValidarCliente é obrigatório para o use case RealizarPedido.

Page 75: Análise e projeto de sistemas orientados a objetos

Casos de uso - <<Extend>>

O tipo de generalização <<extend>> é usado para expressar comportamento opcional por um use case

Utilizados para identificar comportamentos que podem ser reutilizados pelas regras de negócio

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-75

Page 76: Análise e projeto de sistemas orientados a objetos

Casos de uso - <<Extend>>

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-76

A generalização <<extends>> indica que o use case RealizarPedido pode utilizar o use case CadastrarCliente. O comportamento descrito por CadastrarCliente é opcional para o use case RealizarPedido.

Page 77: Análise e projeto de sistemas orientados a objetos

Diagrama de sequência (Interação)

Um diagrama de sequência mostra a colaboração dinâmica entre os vários objetos de um sistema

O mais importante aspecto deste diagrama é que a partir dele percebe-se a sequência de mensagens enviadas entre os objetos

Mostra a interação entre os objetos, alguma coisa que acontecerá em um ponto específico da execução do sistema

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-77

Page 78: Análise e projeto de sistemas orientados a objetos

Diagrama de sequência-Exemplo

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-78

umfuncionário

umtelefone

um cliente

retira fone do gancho

tom de discagem

disca o número

chamada sendo roteada

chamandochamando

atende chamadavoz do cliente

{ b – a < 1 segundo }

a

{ c – b < 10 segundos }

{ d – d’ < 5 segundos }

b

c

d

d’

Page 79: Análise e projeto de sistemas orientados a objetos

Diagrama de colaboração (Interação)

Mostra de maneira semelhante ao diagrama de sequência, a colaboração dinâmica entre os objetos

Pode-se escolher entre utilizar o diagrama de colaboração ou o diagrama de sequência

Se a ênfase do diagrama for o decorrer do tempo, é melhor escolher o diagrama de sequência

Se a ênfase for o contexto do sistema, é melhor dar prioridade ao diagrama de colaboração

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-79

Page 80: Análise e projeto de sistemas orientados a objetos

Diagrama de colaboração(Interação)

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-80

janela de entradade pedido

um pedidoum item do

pedido

um item doestoque

um item deentrega

vendedor: pessoa 2: preparar()

3: preparar()

4: remover [verificação == verdadeiro] ()

5: atualizarPedido()

1: evento

Page 81: Análise e projeto de sistemas orientados a objetos

Diagrama de classesDemonstra a estrutura estática das classes de um sistema onde

estas representam as "coisas" que são gerenciadas pela aplicação modelada

Classes podem se relacionar com outras através de diversas maneiras:Associação (conectadas entre si) Dependência (uma classe depende ou usa outra classe)Especialização (uma classe é uma especialização de outra

classe) Pacotes (classes agrupadas por características similares).

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-81

Page 82: Análise e projeto de sistemas orientados a objetos

Diagrama de classes - Exemplo

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-82

Prédio Apartamento

possui1 *

Classes

Relacionamento

Cardinalidade

Page 83: Análise e projeto de sistemas orientados a objetos

Diagrama de classes - Cardinalidade

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-83

N0...1N...M

*1...*

Exatamente N0 ou 1Entre N e M (Incluindo os extremos)

Zero ou Muitos1 ou muitos

Page 84: Análise e projeto de sistemas orientados a objetos

Diagrama de estados

Um diagrama de estado representa o ciclo de vida de um objeto. Para isso ele mostra os estados que um objeto pode ter e como os eventos afetam estes estados.

Podem ser considerados eventos o recebimento de uma mensagem, uma condição que se tornou verdadeira ou a passagem de um período de tempo designado após um determinado evento.

O objeto emite uma resposta a um estímulo(evento) recebido. Podem haver ações associadas às respostas.

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-84

Page 85: Análise e projeto de sistemas orientados a objetos

Diagrama de estados - Evento

Um evento é uma ocorrência que pode disparar uma transição do estado

Cada nome de evento pode aparecer no máximo uma vez em um único estado

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-85

Page 86: Análise e projeto de sistemas orientados a objetos

Diagrama de estados - Exemplo

Registrando Pedido Alterando Pedido

Cancelando Pedido

Analisando Pedido

Aprovando Pedido

Colocando pedido em pendência Atendendo pedidopedido atendido

pedido cancelado

pedido requisitado para análise

pedido requisitado para análise

pedido enviado alteração de pedido solicitada

cancelamento de pedido solicitado

pedido será atendido

pedido já pode ser atendido

pedido para aprovação

pedido será cancelado

pedido não pode ser atendido no momento

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-86

Page 87: Análise e projeto de sistemas orientados a objetos

Diagrama de atividade

Captura ações e seus resultados Focaliza o trabalho executado na implementação de uma operação

(método), e suas atividades numa instância de um objeto

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-87

Page 88: Análise e projeto de sistemas orientados a objetos

Diagrama de atividade – Exemplo

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-88

Selecionar local

contratar arquiteto

desenvolver plano

orçar plano

fazer trabalho no local fazer trabalho em outros setores

Construir edificação

[rejeitado ]

[senão]

Page 89: Análise e projeto de sistemas orientados a objetos

Diagrama de componentes

Descreve os componentes de software e suas dependências entre si, representando a estrutura do código gerado

Componentes são a implementação na arquitetura física dos conceitos e da funcionalidade definidos na arquitetura lógica (classes, objetos e seus relacionamentos)

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-89

Page 90: Análise e projeto de sistemas orientados a objetos

Diagrama de componentes - Exemplo

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-90

Page 91: Análise e projeto de sistemas orientados a objetos

Bibliografia MODELAGEM DE OBJETOS ATRAVÉS DA UML

Furlan, José DaviMakron Books

UML ESSENCIAL Um Breve Guia para a linguagem-padrão de modelagem de objetosFowler, Martin e Scott, KendallBookman

APPLYING UML AND PATTERNSAn Introduction to Object-Oriented Analysis and DesignLarman, Craig

UML TOOLKITEriksson, Hans-Erik and Penker, Magnus

FUNDAMENTOS DO DESENHO ORIENTADO A OBJETOS COM UMLPage-Jones, MeilirMakron books

José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-91