introdução a tecnologiaorientadaa objetos - deinfofurquim/material/modelagemoo.pdf ·...
Post on 20-Nov-2018
218 Views
Preview:
TRANSCRIPT
Introdução a Tecnologia Orientada a Objetos
João Umberto Furquim de SouzaJoão Umberto Furquim de SouzaUniversidadeUniversidade EstadualEstadual de de PontaPonta GrossaGrossa
jufurquim@uol.com.brjufurquim@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
top related