Introdução a TecnologiaOrientadaa Objetos - DEINFOfurquim/material/ModelagemOO.pdf ·...

171
Introdução a Tecnologia Orientada a Objetos João Umberto Furquim de Souza João Umberto Furquim de Souza Universidade Universidade Estadual Estadual de de Ponta Ponta Grossa Grossa [email protected] [email protected] PDF created with pdfFactory trial version www.pdffactory.com

Transcript of Introdução a TecnologiaOrientadaa Objetos - DEINFOfurquim/material/ModelagemOO.pdf ·...

Introdução a Tecnologia Orientada a Objetos

João Umberto Furquim de SouzaJoão Umberto Furquim de SouzaUniversidadeUniversidade EstadualEstadual de de PontaPonta GrossaGrossa

[email protected]@uol.com.br

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 2

Orientação a Objetos - Prof. J. U. Furquim de Souza

Índicel Introdução à Tecnologia Orientada a Objetos

– Bibliografia– Conceitos Fundamentais– Conceitos Gerais

l Métodos Orientados a Objetos– Bibliografia– Histórico – Método “Unified Modeling Language” UML

PDF created with pdfFactory trial version www.pdffactory.com

Introdução à Tecnologia Orientação a Objetos

Bibliografia

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 4

Orientação a Objetos - Prof. J. U. Furquim de Souza

Bibliografia

Yourdon-DeMarco

Rumbagh

aiUML Booch

Bachman

OMT ShlaerShlaer//MellorMellor

SDL/92

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 5

Orientação a Objetos - Prof. J. U. Furquim de Souza

Bibliografia da Técnica Orientada a Objetosl Livrosl The Unified Modelling Language User Guide (Grady Booch)l The Unified Modelling Language Reference Manual (James

Rumbaugh)l The Unified Software Development Process (Ivar Jacobson)l UML Distilled (Martin Fowler)l Utilizando UML e Padrões: Uma introdução à análise e ao

projeto orientados a objetos (Larman, Craig)Internetl http://www.eribeiro.com.br/pablo/umll http::/www.uml.com.brl Periódicos

– C++ Report– JOOP– Software Development

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 6

Orientação a Objetos - Prof. J. U. Furquim de Souza

Cont’

l Internet (Revistas e Artigos)– http://www.djj.com– http://www.cjj.com– http://www.sdmagazin.com

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 7

Orientação a Objetos - Prof. J. U. Furquim de Souza

ConceitosConceitos

PRINCÍPIOS OOPRINCÍPIOS OO

ENFOQUESENFOQUES

METODOLOGIAS OOMETODOLOGIAS OO

UML UML

ROSEROSE

ESTUDOS DE CASOSESTUDOS DE CASOS

Sistemas

PDF created with pdfFactory trial version www.pdffactory.com

Introdução à Tecnologia Orientada a Objetos

Conceitos Fundamentais

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 9

Orientação a Objetos - Prof. J. U. Furquim de Souza

Tecnologia OO e Conceitos Existentes

•Abstração•Encapsulamento•Modularidade•Herança•Tipagem•Concorrência•Persistência

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 10

Orientação a Objetos - Prof. J. U. Furquim de Souza

Abstraçãol Uma abstração define as características

essências de um objeto que o distingue de outros tipos de objetos, e então estabelece um bem definido domínio conceitual, relativo a perspectiva do usuário.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 11

Orientação a Objetos - Prof. J. U. Furquim de Souza

Abstração

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 12

Orientação a Objetos - Prof. J. U. Furquim de Souza

co rap arên cia

C o rrerB r in car

p esotaman h o

C r iarC o mer

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 13

Orientação a Objetos - Prof. J. U. Furquim de Souza

Encapsulamento

l É o processo de ocultar todos os detalhes de um objeto que não contribui para as suas essenciais características.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 14

Orientação a Objetos - Prof. J. U. Furquim de Souza

Encapsulamento

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 15

Orientação a Objetos - Prof. J. U. Furquim de SouzaPDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 16

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modularidade

uO ato de particionar um programa em componentes individuais, podendo reduzir a complexidade de algum grau...

uExemplos:

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 17

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modularidade

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 18

Orientação a Objetos - Prof. J. U. Furquim de Souza

Hierarquia

l É uma classificação ou ordenação de abstrações.

l Exemplos: Hierarquias é-um e parte del Herança única e múltipla em OO.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 19

Orientação a Objetos - Prof. J. U. Furquim de Souza

Herança

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 20

Orientação a Objetos - Prof. J. U. Furquim de Souza

Herança (Generalização x Especialização )

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 21

Orientação a Objetos - Prof. J. U. Furquim de Souza

Tipagem – TAD

l Um tipo é uma precisa caracterização das propriedades estruturais ou comportamen-tais de um objeto, a qual uma coleção de entidades compartilham.

l É a imposição da classe de um objeto, tal que objetos de diferentes tipos podem ser trocados, ou no máximo, eles podem ser trocados somente em modos restritos.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 22

Orientação a Objetos - Prof. J. U. Furquim de Souza

Tipagem

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 23

Orientação a Objetos - Prof. J. U. Furquim de Souza

Concorrência

l É a propriedade de distinguir objetos ativos de um que não é ativo.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 24

Orientação a Objetos - Prof. J. U. Furquim de Souza

Concorrência

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 25

Orientação a Objetos - Prof. J. U. Furquim de Souza

Persistência

l É a propriedade de um objeto através do qual a sua existência transcende o tempo (isto é, o objeto continua a existir após o seu criador deixar de existir) e/ou espaço (isto é, a localização do objeto move do espaço de endereço onde ele foi criado.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 26

Orientação a Objetos - Prof. J. U. Furquim de Souza

Persistência

PDF created with pdfFactory trial version www.pdffactory.com

Introdução à Tecnologia Orientada a Objetos

Conceitos Gerais

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 28

Orientação a Objetos - Prof. J. U. Furquim de Souza

l Objeto– São elementos do mundo real (ou conceitual) que

apresentam às características e comportamento deste mundo (instância).

– Representa um item, unidade ou entidade real ou abstrato com uma bem definida função no domínio do problema.

– Os Objetos possuem:l Estadol Comportamentol Identidade

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 29

Orientação a Objetos - Prof. J. U. Furquim de Souza

c la s s e P e s s o a

o b je to M a r ia o b je to P e d r o

Classe e Objeto

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 30

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: propriedades

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 31

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: Exemplo notaçãoPessoa

Atributos

Interface

Interface

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 32

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: EstadoEstado

O termo Estado de um Objeto abrange todas as propriedades propriedades estáticas mais os valores atuais (dinâmicos) de todas essas propriedadespropriedades.Propriedade- é uma característica, traço ou qualidade que contribui para que um objeto único (análise -atributo).

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 33

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: ExemploExemplo

class Pessoa {

private: char *nome;

char *departamento;

float salario;

int seguro_social;

public: char *get_nome_empregado();

void *set_nome_empregado();};Pessoa João, Maria, representa três objetos(instâncias) da classe Pessoa, tendo as mesma propriedades e estados comuns.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 34

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: ComportamentoComportamento

É como um objeto atua e reage, em termos de mudança de estados e passagem de mensagens, ou seja, o comportamento de um objeto é completamente definido por suas ações.Operação - é alguma ação que um objeto realiza sobre outro para provocar uma reação.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 35

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: OperaçõesTipos de Operação

Modificador - uma operação que altera o estado de um objeto.Seletor - uma operação que acessa o estado de um objeto, mas não altera o seu estadoIterador - permite que partes de um objeto seja acessada em uma ordem bem definida.Construtor - cria o objeto e inicializa seu estadoDestrutor - destrói o objeto.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 36

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: Máquina de EstadosMáquina de Estado Finita (MEF)

Objetos podem ser comparados como uma Máquina de Estados Finita

Estado A Estado A

Estado B Estado B

Máquina de Estado

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 37

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: Exemplo Pilhaclass Pilha {

private : int topo;int valor[10];

public: Pilha(); // construtor

~Pilha(); //destrutor

Empilha(); //modificador

Desempilha(); //modificador

é_vazia(); // seletor};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 38

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: IdentidadeIdentidade

É uma propriedade de um objeto a qual distingue de outros objetos.Objetos são únicospilha1 = pillha2 (alias) “compartilhamento estrutural” sobrecarregar operador (cópia semântica)virtual Pilha& operator = (const Ponto&) const;virtual Pilha& operator == (const Pilha&) const;

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 39

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: Tempo de Vida

Tempo Execução

Obj

etos

O1 new deletedelete

new

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 40

Orientação a Objetos - Prof. J. U. Furquim de Souza

Objeto: RelacionamentosRelacionamento entre Objetos

•Relacionamento de Ligação•Relacionamento de Agregação

LigaçãoO termo ligação é definido como a conexão conceitual ou física entre objetos (colaboração). O termo cliente-servidor pode ser adotado

AgregaçãoPode-se definir que um objeto é parte de outro objeto.Por exemplo, a classe Pessoa é formada pelas partes, Cabeça, Tronco e Membros.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 41

Orientação a Objetos - Prof. J. U. Furquim de Souza

ClasseClasses

Uma classe é um conjunto de objetos que compartilham uma estrutura de dados e um comportamento comum.Objeto é uma entidade concreta, existe no tempo e espaço; classes representam a abstração, a essência de um objeto

Visão Interna e Externa de uma classeA classe surge como uma restrição obrigatória entre abstrações e seus clientes.clientes - um objeto que usa os recursos do outro, operando sobre ele ou por referenciar o seu estado.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 42

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classe: Visão Interna x Visão Externa

Visão Externa - InterfaceA interface de uma classe oculta sua estrutura e seu comportamento.

Tipos de Interfacepública - uma declaração que faz parte da interface e é visível para todos os clientes.protegida - uma declaração que faz parte da interface de uma classe e é visível somente para classes derivadas.privada- uma declaração que faz parte da interface de uma classe mas não é visível para nenhuma outra classe.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 43

Orientação a Objetos - Prof. J. U. Furquim de Souza

Visão InternaA implementação de uma classe abrange os segredos de seu comportamento.Obs: O estado de um objeto pode ter alguma representação que é tipicamente expressa através das declarações de constantes e variáveis colocada num dos escopos de interface: privada, pública ou protegida.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 44

Orientação a Objetos - Prof. J. U. Furquim de Souza

P e s s o aN o m eE n d e r e ç oT e l e fo n eId a d eA l t u r a

R e g i s t r a r ( )M a t r i c u l a r ( )P a g a r ( )E s t u d a r ( )C a d a s t r a r ( )

Classe

ATRIBUTOSMÉTODOS

P e d r o

M a r ia

Objetos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 45

Orientação a Objetos - Prof. J. U. Furquim de Souza

RosaVermelha

PR

Orquídea

Lilas

MG

Flor

Espécie

Cor

Região

FlorFlor do Limão

Branca

SP

Construtor

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 46

Orientação a Objetos - Prof. J. U. Furquim de Souza

BC 4580

97

98

XP 3244

Carro

Placa

Ano

Modelo

Carro

MJ 1256

96

97

97

98

Construtor

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 47

Orientação a Objetos - Prof. J. U. Furquim de Souza

Visão Interna - Externa

Interface

Pessoa

Dados

Implementaçãovoid Pessoa::nome(){var locais;

return(nome);

};

Dados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 48

Orientação a Objetos - Prof. J. U. Furquim de Souza

Interface

l Define o comportamento (interface) que objetos de classes podem definir (Linguagem Java)

public interface Desenho{public void desenhar();

}

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 49

Orientação a Objetos - Prof. J. U. Furquim de Souza

Relacionamento entre Classes

•Tipos de Relacionamentos•Associação•Herança•Uso•Instanciação•Metaclasse

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 50

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classe: RelacionamentosAssociação

representa a conexão semântica entre abstrações.

class Empresa;

class Pessoa{protected: Empresa *emprega;};

class Pessoa{protected: Empresa** empregado;

ouSet<&Pessoa> empregado;

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 51

Orientação a Objetos - Prof. J. U. Furquim de Souza

Biblioteca Associação

BIBLIOTECA

LIVRO

PESSOA

NomeEndereço

IdentidadeNomeEndereço

TítuloISBNSituação

EmprestarLivroReceberLivro Emprestar

Devolver

Mudar Situação

EMPRÉSTIMO 0..N

0..N

0..10..1

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 52

Orientação a Objetos - Prof. J. U. Furquim de Souza

Faz

Clie nte

Pedido

Associação

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 53

Orientação a Objetos - Prof. J. U. Furquim de Souza

Estudante Teste

SalaNota

Faz

Link Atributo

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 54

Orientação a Objetos - Prof. J. U. Furquim de Souza

Quando será que você vai aprender minha linguagem ?

Ligação

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 55

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosAgregação

Existem um direto paralelo entre classes e objetos. Representa o relacionamento parte-de.

class Pétala;

class flor{

private: Pétala pétala;

public: flor();~flor();

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 56

Orientação a Objetos - Prof. J. U. Furquim de Souza

TODO

PARTES

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 57

Orientação a Objetos - Prof. J. U. Furquim de Souza

Item 1 : Re ló gio Item 2 : C om pu ta dor

P ED ID O

T O DO

P A RT ES

Todo - Parte

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 58

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosHerança

Uma hierarquia de classes onde classes mais especializadas herdam de classes mais genéricas a(s) estrutura(s) e o seu(s) comportamento(s).É um relacionamento entre classes onde uma classe compartilha a estrutura de dados e o comportamento definidos em uma classe (herança simples) ou em mais de uma classe (herança múltipla).

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 59

Orientação a Objetos - Prof. J. U. Furquim de Souza

Pessoa

Estudante Professor Funcionário Diretor

Herança

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 60

Orientação a Objetos - Prof. J. U. Furquim de Souza

P e s s o aN o m eE n d e r e ç oT e l e fo n e

E s t u d a n t eM a t r íc u l aC u r s oA n o G r a d u a ç ã o

P r o f e s s o rT í t u l oS a l a r i o

Herança

Generalizaçãox

Especialização

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 61

Orientação a Objetos - Prof. J. U. Furquim de Souza

Exemplo

Coord Z Ponto

Esfera

Circunfe Retâng

x,yz

Raio

Classes: Relacionamentos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 62

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentos•Quanto a Estrutura Hierárquica:

Classe Base - raiz da hierarquia.Classe Abstrata - classes sem instâncias.Cliente (Controle de visibilidade) - uma classe tem dois tipos de clientes:

•instâncias;•subclasses.

privateprotectedpublic

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 63

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosEscopo Hierárquico

public: membros públicos e protegidos da classe base são públicos e protegidos na classe derivada. Membros privados permanecem privados na classe base.protected: Ambos os membros público e protegido da classe base são protegidos na classe derivada. Privados permanecem privados na classe base.private - Ambos os membros públicos e protegidos da classe base são privados na classe derivada. Privados da classe base permanecem privados para a classe base.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 64

Orientação a Objetos - Prof. J. U. Furquim de Souza

Derivação

Esco

po H

ierá

rqui

coPublic

Protected

Private

Derivação

Public Protected Private

Private

Private

Protected Protected

Private Private

Public Protected Private

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 65

Orientação a Objetos - Prof. J. U. Furquim de Souza

Derivação em C++

Notação: < > dados e operações da classe original[ ] dados e operações da classe superclasse

class Base{private:<dados e operações privadas da Base> public: <dados e operações publicas da Base>protected:<dados e operações protegidas da Base>

}

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 66

Orientação a Objetos - Prof. J. U. Furquim de Souza

Derivação em C++

class Derivada1:public Base{private: <dados e operações privados Derivada1>public: <dados e operações públicos de Derivada1>

[ dados e operações públicos da Base]protected:<dados e operações protegidos da

Derivada1> [ dados e operações protegidos da Base]

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 67

Orientação a Objetos - Prof. J. U. Furquim de Souza

Derivação em C++

Class Derivada2:private Base{private: <dados e operações privados Derivada1>

[ dados e operações públicos da Base][ dados e operações protegidos da Base]

public: <dados e operações públicos de Derivada1>protected:<dados e operações protegidos da

Derivada1>

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 68

Orientação a Objetos - Prof. J. U. Furquim de Souza

Derivação em C++

class Derivada3:protected Base{private: <dados e operações privados Derivada1>public: <dados e operações públicos de Derivada1>protected:<dados e operações protegidos da

Derivada1> [ dados e operações públicos da Base][ dados e operações protegidos da Base]

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 69

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosExemplo class Ponto{

private: int x, y;

public:Ponto();

~Ponto();

get_ponto(int&,int&);

set_ponto(int,int);

virtual void desenha();};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 70

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosExemplo:

class Circulo:public Ponto{private: int raio;

public: Circulo();~Circulo();

int get_raio();

set_raio(int);

virtual void desenha(); };

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 71

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosExemplo:

void Circulo::desenha(){ int x1,y1;

Ponto::get_ponto(x1,y1);

Circle(x1,y1,raio);}

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 72

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosPolimorfismo (overloading)

É um conceito onde um mesmo nome pode definir objetos de classes diferentes que relacionadas a uma superclasse.É uma maneira de uma ação, partilhada por toda uma hierarquia de objetos, ser completada de forma mais conveniente para cada objeto nesta hierarquia.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 73

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 74

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentos

l Polimorfismo Ad Hoc - não requer alguma capacidade orientada a objetos: pode ser suportada por uma linguagem não orientada a objetos. Também conhecido como Overloading. Podem ser do tipo Paramétrico e Operator. – Paramétrico - declara procedimentos com mesmo

nome, mas assinaturas distintas.(Exemplo) – Operator - declarar uma operação de uma classe

que permite que operações aritméticas seja realizadas sobre ela ou outro tipo de operação como, por exemplo, comparação. (Exemplo)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 75

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relaciomamentosl Polimorfismo Universal - é específico das

Linguagens Orientadas a Objetos – Inclusão - significa que uma operação pode ser

redefinida na subclasse num relacionamento de herança.

– Paramétrico - parâmetros de uma operação podem ser especificado sem incluir o seu tipo. Isto pode ser obtido em C++ através do recurso de Templates. Os templates permitem que tipos de argumentos seja menos especificado; o compilador decidirá como o parâmetro será manipulado.

l (Exemplo)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 76

Orientação a Objetos - Prof. J. U. Furquim de Souza

1

95 + 5 = 100

+

Polimorfismo

Janela ( )

Janela ( 1 x 2 , 2 )

Janela ( 1 x 2 , 2, Azul )

2 5 74 8 23 1 3

1 5 24 3 24 1 5

=

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 77

Orientação a Objetos - Prof. J. U. Furquim de Souza

Redesenhar (NovoCentro:Ponto);

MoverFigura (NovoCentro:Ponto){ . . . Redesenhar (NovoCentro);

. . . }

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 78

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosHerança Múltipla

Ocorre quando uma classe derivada de duas ou mais classes base.

class Esfera: public Circulo, publicCoordenada_z{

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 79

Orientação a Objetos - Prof. J. U. Furquim de Souza

Nome Endereço Idade Telefone

MatrículaTempoServiçoCargoSalário

Funcionário Vendedor

Código

Comissão

RegiãoTrabalho

Funcionário/Vendedor

8

$

Pessoa

HerançaMúltipla

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 80

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentos•Herança e Tipagem

Teoria dos tipos - representa uma importante características das linguagens OO. Pode-se ver herança como um subconjunto de subtipos.Usa-se para converter valores entre objetos ou instâncias de uma classe mais especializada para uma mais geral.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 81

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentos

Herança Repetida

class A

class B class C

class D

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 82

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosClasse Virtual

class A{ ... };

class B:virtual public B{ ... };

class C:virtual public A{ ... };

class D:public B, public C{ ... };

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 83

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosRelacionamento de Uso

•Uma classe X usa uma classe Y, significa que a classe X é visível para a classe Y e que a interface da classe X ou sua Implementação usa a interface de Y (mas não sua implementação).Uma instância de X e subclasses podem enviar mensagens para instâncias de Y e subclasses.

•Tipos de Uso (Desfray)

Operacional (implementação)

Contextual (interface)

Conceitual (já relacionado)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 84

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosExemplo:

class Biblioteca {

private: conjunto livros;

public: void inicializa();

void check_out(livro& livro);

void check_in(livro& livro);

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 85

Orientação a Objetos - Prof. J. U. Furquim de Souza

GenericidadeGenericidade ououTipos GenTipos Genééricosricos

T,k: Integer

Array

k..k T

Parametrizada(Template)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 86

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: Relacionamentostemplate <class T>

vetor<T>::vetor(int n){

data=new T[n];

tamanho=n;}

main(){

vetor <int> x(6);}

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 87

Orientação a Objetos - Prof. J. U. Furquim de Souza

Classes: RelacionamentosInstanciação

template <class T>//gabarito de classeclass vetor {

private: T *dado;int tamanho;

public:vetor(int);~vetor();

T& operator[] (int i){ return data[i]; }

};

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 88

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modularidade

l Java – Packagel C++ - username

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 89

Orientação a Objetos - Prof. J. U. Furquim de Souza

Mecanismos

PDF created with pdfFactory trial version www.pdffactory.com

Introdução à Tecnologia Orientada a Objetos

Conceitos Gerais

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 91

Orientação a Objetos - Prof. J. U. Furquim de Souza

Conceitos da Técnica Orientada a Objetos -------------------------------------------------------------Conceitos Gerais -------------------------------------------------------------Convensão Geral-

sinônimo - sin <elemento>

antônimo - ant <elemento>

-------------------------------------------------------------Arquitetura - O estilo de uma construção. O estilo de uma aplicação, caracterizado pela sua estrutura (hardware e software).

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 92

Orientação a Objetos - Prof. J. U. Furquim de Souza

Packages (Pacotes)Pacotes são conjuntos de classes relacionadas entre si de forma que ofereçam facilidades uma às outras.Java traz uma grande quantidade de classes agrupadas em pacotes que estão prontas para serem utilizadas pelo programador.PackagesExemplos – Linguagem JavaJava.lang - base da linguagem Java(Boolean, Character, Double, Float, Integer, Long, math, Object, String,..)java.io - pacote que permite manipulação de streams lendo ou gravando em arquivos(DataInputStream, FileInputStream, FileOutputStream, PrintScreen)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 93

Orientação a Objetos - Prof. J. U. Furquim de Souza

java.util - pacote que provê uma miscelânea de classes úteis incluindo estrutura dedados, time, date, geração de números randômicos, etc..java.awt - pacote que provê um conjunto de manipulações de interface para ousuário tais como windows, caixas de diálogo, botões, cores, checkboxes..java.applet - pacote que habilita a criação de appletsatravés da classe Applet e também provê recursos de áudio

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 94

Orientação a Objetos - Prof. J. U. Furquim de Souza

Componentes - Um componente é um pedaço de código encapsulado e acessível apenas a partir de sua interface.

Um componente possui:

• seu comportamento externo (o que ele faz) que é definido na sua especificação

• suas operações internas (como ele faz o que se propõe a fazer) que está escondido do mundo externo e pode ser entendido apenas se examinarmos seu código fonte

• seu executável (runtime binário .exe .dll)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 95

Orientação a Objetos - Prof. J. U. Furquim de Souza

Caso de Uso - É uma descrição da maneira do usuário usar o sistema. Um conjunto de casos de uso estabelece específica capacidade num sistema automatizado. Um Caso de Uso corresponde a um ou mais cenários (seqüência ordem-tempo de interações entre objetos)- ver Cenário.

Cenário - Uma seqüência ordem-tempo de eventos que podem ocorrer. A seqüência ordem-tempo de interações entre objetos.Classe - Uma classe é uma descrição. Esta descrição é aplicada para cada objeto da classe. Objetos podem ser agrupados em coleções de objetos similares. Nas classes, são descritas as estrutura de dados e o comportamento de um ou mais objetos similares que tem seus dados estruturados da mesma forma e são manipulados pelas mesmas operações. Os objetos representados por uma determinada classe diferem entre si pelo seu estado, isto é, pelos valores dos seusdados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 96

Orientação a Objetos - Prof. J. U. Furquim de Souza

Cliente - Alguma coisa que solicita os serviços de outra. É um objeto que usa os recursos de outro objeto (servidor)

Concorrência - Uma propriedade que distingue um objeto ativo de um objeto não ativo.

Domínio do Problema - Domínio. Uma área de interesse, um campo de estudo.

Estratégia - Um cuidadoso plano para atingir alguma coisa.

Encapsulamento - É o processo de ocultar todos os detalhes de um objeto que não contribuem para suas essenciais características. Os objetos encapsulam suas estruturas de dados bem como a implementação das operações.<sinOcultamento da informação>

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 97

Orientação a Objetos - Prof. J. U. Furquim de Souza

Evento - Alguma coisa que acontece.

Esqueleto de Classe (Framework) - Um estrutura de domínio específico que pode ser construído, podendo adicionar classes especializadas. É um conjunto de classes ou hierarquia de classes que compõem o projeto solução de uma família de problemas relacionados e suportam a reutilização numa granularidade maior que os objetos. Distinguem-se esqueletos caixa branca e caixa preta. Os esqueletos caixa branca são criados nas primeiras épocas da história dos sistemas daquela família de problemas. Na sua reutilização se faz forte uso de herança pelo que o projetista necessita conhecer a implementação da classe. Com o tempo, essas hierarquias de classes são reorganizadas, tornado-se mais refinadas, até transformarem-se em esqueletos caixa preta com maior capacidade de reuso por simples instanciação e, portanto, sem necessidade de conhecer a implementação de suas classes.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 98

Orientação a Objetos - Prof. J. U. Furquim de Souza

Ferramenta - É um conjunto de representações de conceitos de um determinado método que possibilita especificar o resultado do modelamento de um sistema. Um exemplo de ferramenta é o diagrama de classes. Os métodos orientados a objetos apresentam uma grande diversidade de ferramentas para capturar diversos aspectos de um sistema.<sin diagrama> Hierarquia -

Herança simples - É o mecanismo que permite definir uma nova classe de uma classe já existente. A classe criada se diz subclasse da classe já existente (superclasse). A subclasse herda a estrutura de dados e as operações da superclasse, podendo adicionar variáveis na estrutura de dados herdada, bem como adicionar novas operações e rescrever operações herdadas.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 99

Orientação a Objetos - Prof. J. U. Furquim de Souza

Quando uma mensagem é enviada a um objeto, a busca pela operação correspondente começa pela classe do objeto. Se a operação não for encontrada , a busca continua na sua superclasse. Uma subclasse pode ser superclasse de outra classe, podendo assim existir uma hierarquia de classes, sendo que a superclasse que não é subclasse denominada de classe base.

Herança Múltipla - É um mecanismo que permite a uma classe herdar as descrições de várias superclasses e, como na herança simples, adicionar operações, variáves à estrutura de dados, assim como reescrever operações.

Herança Repetida - É um mecanismo que permite que uma subclasse herde as descrições de no mínimo duas superclasses que por sua vez são subclasses de uma classe base.

Instância - É a materialização de um dos objetos descritos PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 100

Orientação a Objetos - Prof. J. U. Furquim de Souza

Interface (Protocolo) - É o conjunto de mensagens às quais um objeto pode responder.

Linha de Controle (thread) - Um único processo.

Mensagem - É o mecanismo de comunicação entre objetos, através da qual se desencadeia a execução de uma operação específica. Uma mensagem indica o objeto destinatário, seletor da operação e opcionalmente um conjunto de argumentos. É uma operação que um objeto realiza sobre outro. <sin Comunicação>

Metaclasse - É uma classe especial cujas instâncias são classes. Na linguagem SmallTalk e Java, as metaclassessão utilizadas para armazenar a informação necessária para distinguir entre mensagens enviadas à instância de uma classes, daquelas enviadas a própria classe.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 101

Orientação a Objetos - Prof. J. U. Furquim de Souza

Método (Desenvolvimento de Sistemas) - Uma proposição sistemática para fazer alguma coisa. Um combinação de notação, conceitos, estratégias e padrões para efetivo desenvolvimento de software.

Método (OO) - Um método é a implementação de uma operação para uma classe. <sin implementação> <obs: devido a palavra método apresentar escopos diferentes, foi utilizado a palavra implementação neste contexto>

Modelo - É uma abstração de alguma coisa com o propósito de entendimento antes de construí-la.

Modelamento - É uma atividade que envolve aplicar as técnicas de modelagem de um método para definir um modelo do sistema.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 102

Orientação a Objetos - Prof. J. U. Furquim de Souza

Módulo - É uma estrutura lógica para agrupar classes e seus relacionamentos.

Objeto - Uma conceito, uma abstração ou uma entidade concreta que tem significado no domínio do problema. É uma entidade com capacidade de armazenar informação e manipula-se. É expresso por um conjunto de dados e de seu comportamento (descrito por um conjunto de operações). - sin<instância>.

Operação - É a descrição do comportamento associado a um ou mais objetos, definindo um conjunto de transformações a serem efetuadas sobre os dados, no momento que ela recebe (de outro objeto) uma mensagem explícita. Os componentes de uma operação são sua interface, onde descreve o que a operação faz, e sua implementação (método), onde se descreve como a faz.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 103

Orientação a Objetos - Prof. J. U. Furquim de Souza

Paralelismo -

Polimorfismo - É o uso do mesmo nome para descrever diferentes maneiras de realizar a mesma coisa:

(1) Propriedade que uma operação possui de poder ser aplicada a instâncias de classes diferentes, em geral relacionadas através de herança.

(2) Propriedade de uma variável que pode se referir a instâncias de classes diferentes, em geral relacionadas através de diferentes classes.

Polimorfismo Ad Hoc - não requer alguma capacidade orientada a objetos: pode ser suportada por uma linguagem não orientada a objetos. Também conhecido como Overloading. Podem ser do tipo Paramétrico e Operator.

Tipagem -

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 104

Orientação a Objetos - Prof. J. U. Furquim de Souza

Tipos de Polimorfismo

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 105

Orientação a Objetos - Prof. J. U. Furquim de Souza

•Paramétrico - (Exemplo)Operator - declarar uma operação de uma classe que permite que operações aritméticas seja realizadas sobre ela ou outro tipo de operação como por exemplo comparação. (Exemplo) •Polimorfismo Universal - é específico das Linguagens Orientadas a Objetos

•Inclusão - significa que uma operação pode ser redefinida na subclasse num relacionamento de herança.

•Paramétrico - parâmetros de uma operação podem ser especificado sem incluir o seu tipo. Isto pode ser obtido em C++ através do recurso de Templates. Os templates permitem que tipos de argumentos seja menos especificado; o compilador decidirá como o parâmetro será manipulado. (Exemplo)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 106

Orientação a Objetos - Prof. J. U. Furquim de Souza

Pré-Condição - Alguma coisa que deve existir antes de alguma coisa acontecer. Um predicado que descreve as condições sob as quais uma operação do sistema pode ser ativada.

Propriedade - Uma qualidade ou característica pertencente a uma pessoa, lugar ou coisa.

Protocólo - <ver Interface>

Reuso - Utilização de alguma coisa mais de uma vez.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 107

Orientação a Objetos - Prof. J. U. Furquim de Souza

Representação - O resultado do modelamento de sistemas orientados a objetos expresso através da notação gráfica dos conceitos de um determinado método.

Técnica de Modelamento - É o conjunto de ferramentas estabelecidas por um método de desenvolvimento para capturar um determinado aspecto de um sistema.

Tipo - Um conjunto de objetos ou valores com similar comportamento, usualmente expresso pelas operações definidas no tipo. As linguagens de programação requerem programas fortemente tipados para especificar um tipo.

Sincronização - A semântica concorrente de uma operação.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 108

Orientação a Objetos - Prof. J. U. Furquim de Souza

Sistema - Uma organizada coleção de componentes que se interagem.

Subsistema - Uma coleção de módulos, alguns dos quais são visíveis a outros subsistemas e outros aos quais são ocultos.

Software - Uma peça de código executável.

Pós-Condição - Alguma coisa que deve existir após a ocorrência de uma operação.

Servidor - Alguma coisa que realiza trabalho para outra.

Visão - Um aspecto particular de um sistema capturado por uma técnica de modelamento de um determinado método de desenvolvimento.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 109

Orientação a Objetos - Prof. J. U. Furquim de Souza

INTRODUÇÃOINTRODUÇÃO

PRINCÍPIOS OOPRINCÍPIOS OO

ENFOQUESENFOQUES

METODOLOGIAS OOMETODOLOGIAS OO

UMLUML

ROSEROSE

ESTUDOS DE CASOSESTUDOS DE CASOS

Sistemas

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 110

Orientação a Objetos - Prof. J. U. Furquim de Souza

Enfoques

lDECOMPOSIÇÃO FUNCIONALlFLUXO DE DADOSlMODELAGEM DE

INFORMAÇÕESlMODELAGEM

ORIENTADA A OBJETOS

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 111

Orientação a Objetos - Prof. J. U. Furquim de Souza

Obter Horas

Trabalhadas

Emitir Contra

Cheque

CalcularPagtoBruto

Calcular Descontos

Calcular

Pagto

Líquido

DECOMPOSIÇÃO FUNCIONAL

Pagar Trabalhadores

Horistas

Calcular

Pagamento

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 112

Orientação a Objetos - Prof. J. U. Furquim de Souza

FLUXO DE DADOS

ObterHT

Trabalhador

Serviço

Imposto

CalcularPagto

EmitirContraCheque

Trabalhador

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 113

Orientação a Objetos - Prof. J. U. Furquim de Souza

Trabalhador

Serviço

Recolhe

Emprega

Imposto

N

1

N

M

MODELAGEM DE INFORMAÇÕES

HT

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 114

Orientação a Objetos - Prof. J. U. Furquim de Souza

Análise EssencialModelos: Comportamental e de Informações

Conta-bilidade

RelatarEstoque

Mat

eria

isPe

dido

sReceberNovosMateriais

Forne-cedor

CatalogarMaterial

Forne-cedor

ControlarEstoque

Fornecedores

Funcio-nário

Inventario

Entrega

Ordem-de-Compra Solicitaçãode Material

Material

Catálogo deMateriaisDFD

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 115

Orientação a Objetos - Prof. J. U. Furquim de Souza

Análise EssencialModelos: Comportamental e de Informações

DER

Pedido

Material FornecedorVenda

Tem

Atende

Vendas

Materiais Fornecedores

Pedidos

0,n

0,m

0,1

1,1

0,n

1,1

DED

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 116

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modelagem

SistemasSistemasProblemas Soluções

Enfoque :ModelagemOrientada

Objetos

PDF created with pdfFactory trial version www.pdffactory.com

MÉTODOS ORIENTADOS A OBJETOS

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 118

Orientação a Objetos - Prof. J. U. Furquim de Souza

Índice

l Bibliografial Histórico dos Métodos e Linguagensl Método UML

PDF created with pdfFactory trial version www.pdffactory.com

Métodos Orientados a Objetos

Bibliografia

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 120

Orientação a Objetos - Prof. J. U. Furquim de Souza

Bibliografia de MétodosMétodo de Booch (ADOO)Método de Rumbaugh (OMT)Método de Coad &Yourdon (AOO & DOO)Método de Jacobson (ESOO - Objectory)Método de Embley (OOSA)Método de Martin (OOA&D)Método de De Champeaux (OOSD)Método de Coleman (OOD)Método de Bailin et al.Método UML Booch, Rumbaugh e Jacobson

PDF created with pdfFactory trial version www.pdffactory.com

Métodos Orientados a Objetos

Histórico

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 122

Orientação a Objetos - Prof. J. U. Furquim de Souza

Linguagens

Cobol

Algol

Fortran

Galáxia GUI’s OO Galáxia SDE’s OO Galáxia GAF’s OO Galáxia O/S OO Métodos OO

Pascal

LISP

Object Pascal 84

Smalltalk 72Smalltalk 74Smalltalk 76

Smalltalk 80EIFFEL 83

FLAVORS

CLOS

CLOS 87LOOPS

Objective-C 83

C++ 91C++ 85 Versant 89

ObjectSore 89

O2 91ONTOS 89Vbase 86

SELF 9?

Simula 67

Cobol 92?

UnivesoParalelo

ST/V

PINK 91Chorus/MIX 91

Softbench/C++ 90

EnvyDeveloper 91ObjectWorks 90ObjectCenter 91

Gemstone 84

MASH Orb 92

GaláxiaODBMS

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 123

Orientação a Objetos - Prof. J. U. Furquim de Souza

Método• Modelagem - Processo de criar modelos

• Modelos: Representam a capacidade de modelar a informação que o SW transforma, as funções que possibilitam que as transformações ocorram e o comportamento do sistema quando a transformação está se desenvolvendo.

Método (Desenvolvimento de Sistemas) - Uma proposição sistemática para fazer alguma coisa. Um combinação de notação, conceitos, estratégias e padrões para efetivo desenvolvimento de software. Descrevem como criar modelos utilizando uma determinada técnica (estruturada ou orientada a objetos).

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 124

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modelo - É uma abstração de alguma coisa com o propósito de entendimento antes de construí-la.

Modelamento - É uma atividade que envolve aplicar as técnicas de modelagem de um método para definir um modelo do sistema.Diagrama - Um diagrama é uma visão de um modelo

Apresenta de um aspecto particular do sistemaEstabelece uma representação parcial do sistemaÉ semanticamente consistente com outras visões

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 125

Orientação a Objetos - Prof. J. U. Furquim de Souza

Métodos

OSA 90OBA 92

CRC 88

BOOCH 85BOOCH 90

A Galáxia da Interação

SM 88

HIPO 70

SSADM 82

Idef-O 74SD 72

SABT 76

OSDL 91

RSM 61

SDS 77

JSD 83

OSDL 91

SDL 77

SREM 76

Petri 62

OMT 89

CY 88

SYNTROPY 92

Modelos deEstados

Modelos deFunções

Modelos deDados

1960?Big Bang

A Galáxia Entidade-Relacionamento A Galáxia “EstruturadaA Galáxia Dinâmica

Smith 77

Chen 76

MERISE 77 Hatley-Pirbhai 86

Ward & Mellor 86SA 78

NIAM 75

Tsichritzis 82

LRDMTeorey 76

ESA McMenamim Palmer 83

Fusão 92 - HPFlotilha Francesa

Flotilha NorueguesaFlotilha UK

Flotilha Suéca

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 126

Orientação a Objetos - Prof. J. U. Furquim de Souza

Estado da Arte

S Y N T H E S IS

O O JS D F U S Ã O

S Y N T R O P Y

B O O C H

B O O C H

B O O C HG O O D

H O O D

S M

C Y

S M

O M T

O B A

O O M

S O M A

O R C A

O S D L

O S A

C R CO O R A S S

M O O D

1 9 9 2

1 9 9 1

1 9 9 0

1 9 8 9

1 9 8 8

1 9 8 7

1 9 8 6

C la sse -R ela c ion a m en to

S Y S _ P _ OA L E X -O B J

O bjec tO r yT M

U M L

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 127

Orientação a Objetos - Prof. J. U. Furquim de Souza

Visões

Visão Estática (VE)Visão Dinâmica (VD)Visão Funcional (VF) VE

VD

VFSistema

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 128

Orientação a Objetos - Prof. J. U. Furquim de Souza

A linguagem unificada de modelagem

Visão Geral

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 129

Orientação a Objetos - Prof. J. U. Furquim de Souza

Origens e Criadores

l OMT-2 (James Rumbaugh)l Booch-94 (Grady Booch)l OOSE (Ivar Jacobson)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 130

Orientação a Objetos - Prof. J. U. Furquim de Souza

História e padronização

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 131

Orientação a Objetos - Prof. J. U. Furquim de Souza

Origem da UML

Booch method OMT

Unified Method 0.8OOPSLA ´95

OOSEOther methods

UML 0.9Web - June ´96

publicfeedback

Final submission to OMG, Sep ‘97

First submission to OMG, Jan ´97UML 1.1

OMG Acceptance, Nov 1997UML 1.3

UML 1.0UML partners

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 132

Orientação a Objetos - Prof. J. U. Furquim de Souza

Tradicional e Moderna

Classes

Relacionamentos

Objetos Use Cases

Sistemas degrande porte

Componentes

ActiveX/COM+

ODBMS

CORBA

Java Beans

Interfaces

Sistemasde tempo real

Objetos denegócio

Design Patterns

RDBMS

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 133

Orientação a Objetos - Prof. J. U. Furquim de Souza

Usos de UML

l Visualizaçãol Especificaçãol Documentaçãol Comunicaçãol Construção

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 134

Orientação a Objetos - Prof. J. U. Furquim de Souza

Elementos essenciais

ElementosEstruturais

ElementosComportamentais

Elementos deAgrupamento

Elementos deExtensão e Anotação

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 135

Orientação a Objetos - Prof. J. U. Furquim de Souza

Modelos, Visões e Diagramas

Use CaseDiagramsUse Case

DiagramsDiagramas de Casos de Uso

ScenarioDiagramsScenario

DiagramsDiagramas deColaboração

StateDiagramsState

DiagramsDiagramas de Componentes

ComponentDiagramsComponent

DiagramsDiagramas deDistribuição

StateDiagramsState

DiagramsDiagramas de Objetos

ScenarioDiagramsScenario

DiagramsDiagramasStateChart

Use CaseDiagramsUse Case

DiagramsDiagramas deSequencia

StateDiagramsState

DiagramsDiagramasDe Classe

Diagramas deAtividades

A model é uma completadescrição de um sistemaem uma perspecticaparticular

Modelos

StateDiagramsState

Diagrams

DiagramaComportamental

SistemaRedes de Petri

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 136

Orientação a Objetos - Prof. J. U. Furquim de Souza

Elementos estruturais

alterarNome(nome: String)alterarTelefone(novoTel: String)calcularSalario(): Currency

nome: Stringsobrenome: StringdataNascimento: Date

Cliente umCliente: Cliente

Servidor Web

OBJETOCLASSE NÓ

RELACIONAMENTOSNavegabilidade

Agregação

Dependência

Herança

Realização

Associação

Composição

Cadastro.exe

COMPONENTE

INTERFACE

IPessoa

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 137

Orientação a Objetos - Prof. J. U. Furquim de Souza

Elementos comportamentais

Cadastrar cliente

USE CASE ESTADOS

Conectando

H

MENSAGENS e TRANSIÇÕES

ATOR

Retorno/controle

Mensagem assíncrona

Auto-(mensagem/transição)

Mensagem/transição

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 138

Orientação a Objetos - Prof. J. U. Furquim de Souza

Elementos de Agrupamento

PACOTES

Interfacegráfica

Acesso aoBanco

Regras denegócio

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 139

Orientação a Objetos - Prof. J. U. Furquim de Souza

Elementos de Extensão e Anotação

«importa»ESTEREÓTIPO

{autor=Janjão Lima data=12/105/2004}

TAGGED VALUES

{frozen}RESTRIÇÃO

Esta operação deve serchamada depois daconexão

ANOTAÇÃOPermitem adicionarnovas propriedadesaos elementosde UML.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 140

Orientação a Objetos - Prof. J. U. Furquim de Souza

Conceitos (I)

l UML pode ser usado para– Mostrar os limites de um sistema e suas principais

funções, usando use cases e atores– Ilustrar a realização dos use cases, usando os

diagramas de interação– Representar a estrutura estática de um sistema, usando

diagramas de classe

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 141

Orientação a Objetos - Prof. J. U. Furquim de Souza

Conceitos (II)

l UML pode ser usado, também, para– Modelar o comportamento de objetos, com diagramas

de estados– Apresentar a implementação física e a arquitetura de um

sistema, com diagramas de componentes e diagramas de implantação

– Criar extensões, usando estereótipos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 142

Orientação a Objetos - Prof. J. U. Furquim de Souza

Atores

l Atores são pessoas ou coisas que interagem com o sistema em desenvolvimento

Professora

Sistema de controlede pre-requisitos

Estudante

Secretária

<<Ator>>

Coordenador

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 143

Orientação a Objetos - Prof. J. U. Furquim de Souza

Use cases

l Um use case é a especificação de sequências de ações que um sistema, subsistema, ou classe pode realizar, interagindo com um dos atores

l Use cases podem incluir seqüências alternativas, ou seqüências excepcionais (de erro)

Matricular aluno Solicitarhistórico

Verificarpré-requisitos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 144

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagram de Casos de Uso

l Obtem a funcionalidade do sistema do ponto de vista dos usuários

l Constitui o estágio inicial do desenvolvimentol Propósito

– Especificar o contexto de um sistema– Obter os requisitos de um sistema– Validar a arquitetura de um sistema– Conduz a implementação and gera casos de testes

l Desenvolvido pelo analista e especialista em domínoda aplicação

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 145

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Use cases

Estudante

Secretária

<<estende>> Solicitar histórico docurso atual

Solicitar histórico detodos os cursos

Solicitarhistórico

<<estende>>

Verificardependências

Matricularaluno<<inclue>>

Sistema de controlede pre-requisitos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 146

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Interação

l Um diagrama de interação mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles

l Podem ser de dois tipos (isomórficos):– Diagramas de seqüência dão ênfase à ordenação das

mensagens– Diagramas de colaboração enfatizam o relacionamento

entre os objetos que trocam mensagens

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 147

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Seqüência

l Obter comportamento dinâmico (orientado aotempo)

l Propósito– Modelar o fluxo de controle– Ilustrar cenários típicos

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 148

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de SeqüênciaJanela de entrada

de pedido p: Pedido : ItemPedido :ItemEstoque

preparar()

* [para cada item do pedido]preparar()

emEstoque := verif icar()

[emEstoque]remover() estoqueBaixo :=

verificEstoqueBaixo()

:ItemRenovEstoque

:ItemEntrega

[estoqueBaixo]<<criar>>

[emEstoque]<<criar>>

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 149

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Colaboração

l Obter o comportamento dinâmico (orientado a mensagem)

l Propósito– Modelar o fluxo de controle– Ilustrar a coordenação da estrutura dos objetos e

controle

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 150

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Colaboração

Janela de entradade pedido

p: Pedido

: ItemPedido :ItemEstoque

:ItemRenovEstoque:ItemEntrega

1: preparar()

1.1: *[para cada item do pedido] preparar()

1.1.1 : emEstoque := verif icar()1.1.2 : [emEstoque] remover()

1.1.2.1: estoqueBaixo := verif icEstoqueBaixo()

1.1.2.2 [estoqueBaixo] <<criar>>

1.1.3 : [emEstoque] <<criar>>

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 151

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Atividadesl Os Diagramas de Atividades mostram o fluxo entre

atividades (ações não-atômicas). Ex: fluxos de processos, fluxos de eventos, detalhamento de operações.

l São um caso especial dos Diagramas de Estados, com a maioria das transições resultantes do término das atividades

l São semelhantes aos antigos fluxogramasl São muito usados para modelar atividades

concorrentes

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 152

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Atividades

Procurar bebida

[achou café]

H

PessoaH

[sem café] [sem Coca]

[achou Coca]

Pegar latade Coca

Beber

Adicionar água àmáquina

Colocar caféno filtro

Colocar filtrona máquina

Ligar máquina

Filtrar café

Pegarxícara

Colocar café naxícara

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 153

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Classes

l Obtém o vocabulário de um sistemal Construído e refinado durante o

desenvolvimentol Propósito

– Nomear e modelar conceitos no sistema– Especificar colaboração– Especificar esquemas lógicos de banco de dados

l Devenvolvido pelo analistas, projetistas, e programadores

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 154

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de classes

l Os diagramas de classes são os principais diagramas estruturais da UML

l Diagramas de classe mostram classes, interfaces e os relacionamentos entre esses elementos

l As classes especificam a estrutura e o comportamento dos objetos

l Objetos são instâncias de classes

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 155

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Classe

+confirmar()+cancelar()-calcularTotal():CurrencygerarNovoCodigo: String

-codigo: Integer-dataRecebido-total: Currency

Pedido

#creditoPermitido: Currency#nivelCredibilidade()

-nome: String-endereco: String-dataPrimeiraCompra: Date-dataUltimaCompra: Date-totalComprado: Currency

Cliente

-quantidade: Integer-preco: Currency-emEstoque: Boolean

Item de PedidonomeContato: Stringtelefones[1..10]: StringCGC: StringFAX[1..3]: String

Cliente pessoa-jurídica

colocarListaNegra()

nome: StringCPF: StringnumCartaoCredito

Cliente pessoa-física

EmpregadoProduto

* representantede vendas

*

*

IPessoa

itens

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 156

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Objetos

l Mostra instâncias e ligaçõesl Construído durante a análise e projetol Própósito

– IIustrar estruturas de dados/objetos– Especificar certos domínios particulares de

configuração de objetos– Obter multiplicidade entre classes

l Devenvolvido pelo analistas, projetistas, e programadores

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 157

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de objetos

l Os diagramas de objetos mostram uma “fotografia” de um sistema OO em execução

l São mostrados os objetos, com os valores de seus atributos e as ligações entre eles

l Os diagramas de objetos são úteis para a modelagem de estruturas de dados complexas

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 158

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Objetos

p2: Professormatricula: "205-6712-09"nome: "Jaelson Castro"

p1: Prof essor

codCurso: "IF291"descrição: "MPS"codTurma: I7

: Curso

codCurso: "IF185"descrição: "AER"codTurma: I6

: Curso

matricula: "219846534"nome: "Nelson Mandella"

:aluno

matr icula: "562746134"nome: "John Major"

:aluno

: Aluno

: Aluno

: Aluno

: Aluno

c1: Curso

c2: Curso

c3: Curso

Bill

: Aluno : Aluno

Lew insky

-matrícula: String-nome: String

Professor-codDisciplina: String-descrição: String-codTurma: String

Curso

-matrícula: String-nome: String-período: Integer

Aluno

[0..10]

ministra[1..5]

*[1..3]

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 159

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama Statechart (de Estados)l Obter comportamento dinâmico (orientado a

evento)l Propósito

–– ModelarModelar o o ciclociclo de de vidavida do do objetoobjeto–– ModelarModelar objetosobjetos reativosreativos (interfaces do (interfaces do usuáriousuário, ,

dispositivosdispositivos, etc.), etc.)

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 160

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de estados

l Os diagramas de estados são usados para modelar o comportamento de objetos (com comportamento complexo)

l Nos diagramas de estados são modelados os estados em que um objeto pode estar e os eventos que fazem o objeto passar de um estado para outro

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 161

Orientação a Objetos - Prof. J. U. Furquim de Souza

Ocioso

Manutenção

fazerManutenção

Validando

Selecionando Processando

Imprimindo

[continuar][não continuar]

H

entry / lerCartãoexit / ejetarCartão

cartãoInserido

cancelar

Ativo

Diagramas de estados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 162

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Componentes

l Obter a estrutura física da implementaçãol Contruído como parte da especificação

arquiteturall Própósito

– Organizar código fonte– Construir uma liberação executável– Especificar um banco de dados físico

l Desenvolvidos por arquitetos e programadores

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 163

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Componentes

l Diagramas de componentes são usados para modelar o aspecto físico de um sistema

l São mostrados componentes e os relacionamentos entre eles

l Exemplos de componentes são documentos, executáveis, e tabelas de bancos de dados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 164

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Componentes

FormCadastro.html

Cadastro.exe

Principal.html

FormEntrada.html

Autenticacao.exe

<<link>>

<<link>>Banco

Usuários

Senhas

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 165

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagrama de Implantação

l Obter a topologia do hardware do sistemal Contruído como parte da especificação

arquiteturall Propósito

– Especificar a distribuição de componentes– Identificar gargalos de desempenho

l Develvolvido por arquiteto, engenheiros de redes e engenheiros de sistemas

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 166

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Implantação

l Os diagramas de implantação são usados para modelar o ambiente em que o o sistema será executado

l São compostos por nós e relacionamentos de comunicação

l Um nó pode ser, por exemplo, um computador, uma rede, um disco rígido, um sensor, etc.

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 167

Orientação a Objetos - Prof. J. U. Furquim de Souza

Diagramas de Implantação

servidorWeb

Autenticação.exe

Cadastro.exe

servidorDeArquivos

FormCadastro.html

Principal.html

FormEntrada.html

servidorBancoDeDados

SGBD

O SGBD a serutilizado aindanão foi escolhido.

PC - G309

NestscapeCommunicator

5.0

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 168

Orientação a Objetos - Prof. J. U. Furquim de Souza

UML UML -- Roteiro para ProjetoRoteiro para Projeto

Projeto: < Nome do Sistema >

1 - Introdução1.1 - Descrição do problema1.2 - Objetivos do Sistema1.3 - Soluções alternativas1.4 - Descrição da solução escolhida

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 169

Orientação a Objetos - Prof. J. U. Furquim de Souza

UML UML -- RoteiroRoteiro2 - Visão “Use Case” – nível Análise

2.1 - Definição dos atores(Quem interage?)2.2 - Lista de eventos2.3 - Diagramas de Use Cases(Por assunto e evento)2.4 - Diagramas de Seqüência2.5 - Diagramas de Colaboração2.6 – Diagramas de Atividades

3 – Visão Lógica – nível Análise3.1 – Diagramas de Classes3.2 - Diagramas de Estados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 170

Orientação a Objetos - Prof. J. U. Furquim de Souza

UML UML -- RoteiroRoteiro4 - Gerência do Projeto5 – Visão “Deployment”

5.1 - Plataforma de Hardware e Software(BD, SOp,etc)

5.1 - Diagramas “Deployment”6 – Visão “Use Case”- nível Projeto

6.1 - Interface6.2 - Diagramas de Seqüência6.3 - Diagramas de Colaboração6.4 – Diagramas de Atividades

7- Visão Lógica – nível Projeto 7.1 - Diagramas de Classes7.2 - Diagramas de Estados

PDF created with pdfFactory trial version www.pdffactory.com

Departamento de Informática - UEPG

Página 171

Orientação a Objetos - Prof. J. U. Furquim de Souza

8 - Visão Componentes8.1 - Diagramas de Componentes

9 - Implantação do Sistema9.1 - Segurança e Controle9.2 - Manual de Utilização9.3 - Detalhes Operacionais

10 - Conclusão

Apêndice A - Dicionário de DadosApêndice B - Protótipo do Sistema

UML UML –– Roteiro para ProjetoRoteiro para Projeto

PDF created with pdfFactory trial version www.pdffactory.com