SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Orientação a objeto 
Crash-course 
MSc. Eng. Christopher S. Cerqueira
Roteiro 
Diagrama de Classes. 
Exemplo 
Diagramas 
UML 
Associação 
Agregação 
Composição 
Herança 
Dependência 
Relacionamentos 
Definições / UML / Objeto 
Encapsulamento 
Modelo Objeto 
O.O. 
CSE-310
Orientação a Objeto 
CSE-310
Definições 
•60’-70’ – COBOL/FORTRAN/C (Estruturado) 
•80’-inicio 90’ – SmallTalk/ADA/C++ (Inicio da OO) 
•90’ – Java/UML (proliferação da OO) 
•Mais do que um Modo de Programar!!!!! 
•Pensamento abstrato sobre o domínio do problema 
oConceitos do mundo real 
•Cria modelos do mundo real 
•Estes modelos simulam o mundo real. 
CSE-310
UML 
•Unified Modeling Language 
•Vocabulário para descrição de modelos. 
•Apelo para “Model Driven Architecture” http://www.omg.org/mda/ 
CSE-310 
http://www.uml.org/
Objeto?!! 
•Interface para uma estrutura de dados + seus serviços 
•Representação abstrata 
CSE-310 
Dados / Atributos 
(PRIVADOS) 
Operações / Métodos / Serviços / Interfaces 
(PÚBLICOS)
Encapsulamento 
•Abstração do sistema 
•Quem usa não precisa saber como funciona. 
•Precisa saber como utilizar. 
•Uso pelas interfaces 
CSE-310 
“Contras” 
•Pensamento não-linear 
•Desconhecimento do todo 
Prós 
•Segurança 
•Independência
Modelo Objeto (UML) 
•Descreve Relacionamentos/Atributos/Operações 
•Forma (MODELO) para o objeto 
•(Diagramado no Enterprise Architect) 
CSE-310 
http://www.sparxsystems.com.au/ 
Identificação 
Atributos 
Métodos 
Visibilidade: + public: (todos veem) -  private: (só ele vê) #  protected: (só ele e os filhos) 
Itálico – método abstrato 
 Torna a classe abstrata
Instância 
•Realização de uma classe ( da forma) 
C++ 
•Mago *hPotter = new Mago(); 
•Mago hPotter; 
Java 
•Mago hPotter = new Mago(); 
CSE-310 
hPotter 
program 
program 
memory 
memory 
hPotter
Atributos 
•Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do objeto. 
•Ex.: 
oUma pessoa (classe) tem os atributos nome, peso. 
oJoão (objeto) é uma pessoa com nome “João” e peso “80kg” 
•Uma classe não deve ter dois atributos com o mesmo nome. 
•Obs.: 
oAtributos estáticos – tem um único valor para todas as instâncias. No UML o atributo estático é sublinhado 
oPode-se usar um valor inicial, caso tenha sido omitido. 
CSE-310
Métodos 
•Comportamento dos objetos é modelado nas operações. 
oÉ algo que se pode pedir para ser feito a um objeto. Objetos da mesma classe têm as mesmas operações 
•Operações são definidas ao nível da classe, e a invocação é operada ao nível do objeto. 
•Padrão: Acesso e alteração dos valores do atributos através de operações. (ex.: GETS/SETS) 
CSE-310
Pacotes 
•Organiza as classes em grupos 
•Hierarquiza(fisicamente) o projeto 
•Feels de um endereço web. 
CSE-310
Outras infos 
•Classes Abstratas – são classes que não podem ser instanciadas 
•Classes Concretas – são classes que podem ser instanciadas 
•<<Interfaces>> – Classes sem atributos e métodos sem implementação. A implementação vem de uma outra classe. 
•Sobrecarga – Métodos com o mesmo nome, mas com assinaturas diferentes (parâmetros de entrada). 
CSE-310 
http://javafree.uol.com.br/artigo/871497/Tutorial-Java-3-Orientacao-a-Objetos.html
Relações 
CSE-310
Ligações / Relações 
•Os objetos se relacionam. 
•Relacionamentos precisam ser modelados. 
•Exs.: 
oUm mago pode ser aluno ou professor 
oUm mago joga um feitiço num monstro 
oUm mago possui um pet. 
oUma escola possui magos. 
oUm mago possui uma varinha, e a varinha conhece seu mago. 
oAlunos dependem dos professores para aprender 
CSE-310
CSE-310 
1 
1 
1 
1 
0..1 
0..N 
Generalização/Herança 
Composição 
Agregação 
Dependência 
Agregação 
N 
N 
Associação
Herança 
• Relação semântica de “é 
um(a)” 
• Sub-classes herdam 
propriedades 
• Super-classes – propriedades 
comuns 
• Operação abstrata é 
realizada na classe concreta. 
• Herança simples – apenas 
uma super classe 
• Herança múltipla – mais de 
uma super classe 
CSE-310 
class Hogward 
«abstract» 
Mago 
- nome :string 
- tipo :string 
+ fei tico() :void 
«property get» 
+ getnome() :string 
+ gettipo() :string 
«property set» 
+ setnome(string) :void 
+ settipo(string) :void 
Aluno 
+ fei tico() :void 
Professor 
+ fei tico() :void 
Um mago pode ser aluno ou professor
Associação 
• É a relação entre objetos das classes. 
• Implementação através de uma referencia. 
• Pode haver mais de uma associação entre as 
mesmas classes. 
• Papéis indicam a semântica, multiplicidade e 
visibilidade da associação. 
CSE-310 
N N 
monstro mago 
ataca 
defende 
class Hogward 
«abstract» 
Mago 
- nome :string 
- tipo :string 
+ feitico() :void 
«property get» 
+ getnome() :string 
+ gettipo() :string 
«property set» 
+ setnome(string) :void 
+ settipo(string) :void 
Monstro 
- nome :string 
- tipo :string 
+ defesa() :void 
«property get» 
+ getnome() :string 
+ gettipo() :string 
«property set» 
+ setnome(string) :void 
+ settipo(string) :void 
+monstro 
* 
+mago 
* 
Um mago joga um feitiço num 
monstro
Associação - Multiplicidade 
•Muitos para Muitos * * 
•Muitos para um * 1 
•Um para um 1 1 
•1 - exatamente um 
•0..1 - zero ou 1 
•* - zero ou mais 
•0..* - zero ou mais 
•1..* - um ou mais 
•1, 3..5 – um ou três a 5 
CSE-310
Associação - Multiplicidade 
•Quando um objeto recebe múltiplas instancias de outro é necessário controlar por estruturas de dados. 
CSE-310
Associação - direção 
•Associações são classificadas quanto a navegabilidade: 
•Bidirecional – ambos objetos possuem referência 
•Unidirecional – classe que recebe a seta recebe a referência 
CSE-310
Agregação 
•Associação com significado de contém / faz parte de. 
•Relação de inclusão 
CSE-310 
1 
1 
0..1 
0..N 
Um mago possui um pet. 
Uma escola possui magos. 
class Hogward «abstract» Mago- nome :string- tipo :string+ feitico() :void «property get» + getnome() :string+ gettipo() :string «property set» + setnome(string) :void+ settipo(string) :voidEscola- nome :string+ ensina() :void «property get» + Getnome() :string «property set» + Setnome(string) :voidPet- nome :string- habilidade :string+ realizaHabilidade() :void «property get» + Getnome() :string+ Gethabilidade() :string «property set» + Setnome(string) :void+ Sethabilidade(string) :void+magos0..* +escola1+pet0..1+mago1
Composição 
•Forma mais forte de agregação. 
•Forte grau de dependência, cada parte só pode fazer parte de um todo, o todo e as partes tem o mesmo tempo de vida. 
CSE-310 
1 
1 
class Hogward «abstract» Mago- nome :string- tipo :string+ feitico() :void «property get» + getnome() :string+ gettipo() :string «property set» + setnome(string) :void+ settipo(string) :voidVarinha- nome :string+ feitico() :void «property get» + getnome() :string «property set» + setnome(string) :void+varinha1+mago1
Dependência 
• Relação de uso, em que uma mudança na 
especificação do elemento usado pode afetar o 
elemento utilizador. 
• Objeto usa outro como parâmetro de um método. 
CSE-310 
class Hogward 
Aluno 
+ feitico() :void 
Professor 
+ feitico() :void 
Alunos dependem dos professores 
para aprender
UML 
Diagramas 
Looks 
CSE-310
Hierarquia 
CSE-310 
http://pt.wikipedia.org/wiki/UML
Diagramas estruturais 
•Diagrama de Classes 
•Diagrama de Objetos 
•Diagrama de Componentes 
•Diagrama de Instalação 
•Diagrama de Pacotes 
•Diagrama de Estrutura Composta 
•Diagrama de Perfil 
CSE-310
Diagramas comportamentais 
•Diagrama de caso de uso 
•Diagrama de estados 
•Diagrama de atividades 
•Diagramas de interação 
oDiagrama de sequência 
oDiagrama de interação 
oDiagrama de colaboração 
oDiagrama de tempo 
CSE-310
DE - Classes 
CSE-310
DE - Objetos 
CSE-310
DE - Componentes 
CSE-310
DE - Instalação 
CSE-310
DE - Pacotes 
CSE-310
DE – Estrutura Composta 
CSE-310
DE - Perfil 
CSE-310
DC – Casos de uso 
CSE-310
DC - Estados 
CSE-310
DC - Atividades 
CSE-310
DC – I – Sequência 
CSE-310
DC – I – Interação 
CSE-310
DC – I – Colaboração 
CSE-310
DC – I – Tempo 
CSE-310
Exemplo Diagrama de classes 
•As escolas de magia formam vários bruxos em um determinado ano. Uma escola contém um nome único, uma data de fundação, e o nome de um fundador. A escola é formada por várias casas que são caracterizadas pelo nome único e mascote. Um aluno bruxo ao entrar na escola é selecionado para morar em uma casa pelo chapéu seletor. Os alunos bruxos são caracterizados pelo nome, data de nascimento, CodEscola único e varinha que também é única. Os alunos compram materiais escolares nas lojas do beco diagonal. As lojas são caracterizadas pelo nome único e dono. Os materiais escolares são caracterizados por um preço e podem ser espécies de animais, ingredientes de poções e objetos mágicos. Os animais são identificados pela espécie, os ingredientes de poções pelo nome único, e o objeto mágico pelo nome e fabricante. Um aluno pode apenas ter um único espécie de estimação, mas a mesma espécie pode ser de vários alunos. Um aluno pode fazer um feitiço usando um ou mais objetos mágicos e um ou mais ingredientes de poções. Os alunos recebem um valor de pontos em uma determinada data. Existe uma tabela de pontuações podem ser positivas quando executam um triunfo, mas podem ser negativas quando realizam um mau-feito. Todas as pontuações possuem um valor mínimo e um valor máximo. Na escola existem vários professores bruxos que são caracterizados pelo número da varinha único, nome, data nascimento. Para cada casa existe um único professor responsável e um único monitor aluno bruxo. Uma casa disputam torneios de quadribol contra outra casa, sendo que nessa disputa existem uma quantidade pontos para cada casa. Os professores ministram uma ou mais disciplinas em um determinado ano. Os alunos frequentam as disciplinas ministradas pelos professores e no final do ano recebem o conceito de aprovados ou reprovados. As disciplinas possuem nome único, uma ementa. Uma escola pode enfrentar duas outras escolas em um torneio tribruxo, sendo que para cada escola existe um único representante nessa disputa. 
•Construa o diagrama de classes e implemente em uma linguagem de programação orientada à objetos. 
CSE-310

Más contenido relacionado

La actualidad más candente (6)

POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetos
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe Vector
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 

Destacado

Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
Leandro Santos
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herança
Ivan Ricarte
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
Suissa
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 

Destacado (19)

Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
Aula 04
Aula 04Aula 04
Aula 04
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UML
 
Aula 02
Aula 02Aula 02
Aula 02
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herança
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Similar a [CRASHCOURSE] Orientação a Objeto e UML

Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdf
Jean440975
 
Uml
UmlUml
Uml
lcbj
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
Marco Coelho
 

Similar a [CRASHCOURSE] Orientação a Objeto e UML (20)

Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdf
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdf
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 
AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
AULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.pptAULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.ppt
 
.200.2023-01.Categorias em Bancos de Dados.PT.pdf
.200.2023-01.Categorias em Bancos de Dados.PT.pdf.200.2023-01.Categorias em Bancos de Dados.PT.pdf
.200.2023-01.Categorias em Bancos de Dados.PT.pdf
 
Uml
UmlUml
Uml
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
PHP Road Show - Aplicando Orientação a Objetos no SAEO
PHP Road Show - Aplicando Orientação a Objetos no SAEOPHP Road Show - Aplicando Orientação a Objetos no SAEO
PHP Road Show - Aplicando Orientação a Objetos no SAEO
 
8 02
8 028 02
8 02
 
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de ClassesModelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Orientação à objetos conceituação
Orientação à objetos   conceituaçãoOrientação à objetos   conceituação
Orientação à objetos conceituação
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 

Más de Christopher Cerqueira

[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
Christopher Cerqueira
 

Más de Christopher Cerqueira (20)

MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
 
Jornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servemJornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servem
 
CI2018_Simuladores
CI2018_Simuladores CI2018_Simuladores
CI2018_Simuladores
 
CI2018_MBSE4.0
CI2018_MBSE4.0CI2018_MBSE4.0
CI2018_MBSE4.0
 
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
 
XV Jornada do Espaço
XV Jornada do EspaçoXV Jornada do Espaço
XV Jornada do Espaço
 
Using Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to RealizationUsing Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to Realization
 
So 01 - processos
So   01 - processosSo   01 - processos
So 01 - processos
 
Redes 05 - aplicação
Redes   05 - aplicaçãoRedes   05 - aplicação
Redes 05 - aplicação
 
Redes 04 - transporte
Redes   04 - transporteRedes   04 - transporte
Redes 04 - transporte
 
Redes 03 - rede
Redes   03 - redeRedes   03 - rede
Redes 03 - rede
 
Redes 02 - enlace
Redes   02 - enlaceRedes   02 - enlace
Redes 02 - enlace
 
Redes 01 - topologia
Redes   01 - topologiaRedes   01 - topologia
Redes 01 - topologia
 
Intro heuristica
Intro heuristicaIntro heuristica
Intro heuristica
 
[Ci2017] Simuladores de Satélites
[Ci2017] Simuladores de Satélites[Ci2017] Simuladores de Satélites
[Ci2017] Simuladores de Satélites
 
MBSE e Espaço 4.0
MBSE e Espaço 4.0MBSE e Espaço 4.0
MBSE e Espaço 4.0
 
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardA Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
 
Introdução à Engenharia Espacial
Introdução à Engenharia EspacialIntrodução à Engenharia Espacial
Introdução à Engenharia Espacial
 
CubeSats e Software Embarcado
CubeSats e Software EmbarcadoCubeSats e Software Embarcado
CubeSats e Software Embarcado
 
Modelos e metodologias de projeto de sistemas
 Modelos e metodologias de projeto de sistemas Modelos e metodologias de projeto de sistemas
Modelos e metodologias de projeto de sistemas
 

Último

SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 

Último (20)

Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 

[CRASHCOURSE] Orientação a Objeto e UML

  • 1. Orientação a objeto Crash-course MSc. Eng. Christopher S. Cerqueira
  • 2. Roteiro Diagrama de Classes. Exemplo Diagramas UML Associação Agregação Composição Herança Dependência Relacionamentos Definições / UML / Objeto Encapsulamento Modelo Objeto O.O. CSE-310
  • 4. Definições •60’-70’ – COBOL/FORTRAN/C (Estruturado) •80’-inicio 90’ – SmallTalk/ADA/C++ (Inicio da OO) •90’ – Java/UML (proliferação da OO) •Mais do que um Modo de Programar!!!!! •Pensamento abstrato sobre o domínio do problema oConceitos do mundo real •Cria modelos do mundo real •Estes modelos simulam o mundo real. CSE-310
  • 5. UML •Unified Modeling Language •Vocabulário para descrição de modelos. •Apelo para “Model Driven Architecture” http://www.omg.org/mda/ CSE-310 http://www.uml.org/
  • 6. Objeto?!! •Interface para uma estrutura de dados + seus serviços •Representação abstrata CSE-310 Dados / Atributos (PRIVADOS) Operações / Métodos / Serviços / Interfaces (PÚBLICOS)
  • 7. Encapsulamento •Abstração do sistema •Quem usa não precisa saber como funciona. •Precisa saber como utilizar. •Uso pelas interfaces CSE-310 “Contras” •Pensamento não-linear •Desconhecimento do todo Prós •Segurança •Independência
  • 8. Modelo Objeto (UML) •Descreve Relacionamentos/Atributos/Operações •Forma (MODELO) para o objeto •(Diagramado no Enterprise Architect) CSE-310 http://www.sparxsystems.com.au/ Identificação Atributos Métodos Visibilidade: + public: (todos veem) -  private: (só ele vê) #  protected: (só ele e os filhos) Itálico – método abstrato  Torna a classe abstrata
  • 9. Instância •Realização de uma classe ( da forma) C++ •Mago *hPotter = new Mago(); •Mago hPotter; Java •Mago hPotter = new Mago(); CSE-310 hPotter program program memory memory hPotter
  • 10. Atributos •Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do objeto. •Ex.: oUma pessoa (classe) tem os atributos nome, peso. oJoão (objeto) é uma pessoa com nome “João” e peso “80kg” •Uma classe não deve ter dois atributos com o mesmo nome. •Obs.: oAtributos estáticos – tem um único valor para todas as instâncias. No UML o atributo estático é sublinhado oPode-se usar um valor inicial, caso tenha sido omitido. CSE-310
  • 11. Métodos •Comportamento dos objetos é modelado nas operações. oÉ algo que se pode pedir para ser feito a um objeto. Objetos da mesma classe têm as mesmas operações •Operações são definidas ao nível da classe, e a invocação é operada ao nível do objeto. •Padrão: Acesso e alteração dos valores do atributos através de operações. (ex.: GETS/SETS) CSE-310
  • 12. Pacotes •Organiza as classes em grupos •Hierarquiza(fisicamente) o projeto •Feels de um endereço web. CSE-310
  • 13. Outras infos •Classes Abstratas – são classes que não podem ser instanciadas •Classes Concretas – são classes que podem ser instanciadas •<<Interfaces>> – Classes sem atributos e métodos sem implementação. A implementação vem de uma outra classe. •Sobrecarga – Métodos com o mesmo nome, mas com assinaturas diferentes (parâmetros de entrada). CSE-310 http://javafree.uol.com.br/artigo/871497/Tutorial-Java-3-Orientacao-a-Objetos.html
  • 15. Ligações / Relações •Os objetos se relacionam. •Relacionamentos precisam ser modelados. •Exs.: oUm mago pode ser aluno ou professor oUm mago joga um feitiço num monstro oUm mago possui um pet. oUma escola possui magos. oUm mago possui uma varinha, e a varinha conhece seu mago. oAlunos dependem dos professores para aprender CSE-310
  • 16. CSE-310 1 1 1 1 0..1 0..N Generalização/Herança Composição Agregação Dependência Agregação N N Associação
  • 17. Herança • Relação semântica de “é um(a)” • Sub-classes herdam propriedades • Super-classes – propriedades comuns • Operação abstrata é realizada na classe concreta. • Herança simples – apenas uma super classe • Herança múltipla – mais de uma super classe CSE-310 class Hogward «abstract» Mago - nome :string - tipo :string + fei tico() :void «property get» + getnome() :string + gettipo() :string «property set» + setnome(string) :void + settipo(string) :void Aluno + fei tico() :void Professor + fei tico() :void Um mago pode ser aluno ou professor
  • 18. Associação • É a relação entre objetos das classes. • Implementação através de uma referencia. • Pode haver mais de uma associação entre as mesmas classes. • Papéis indicam a semântica, multiplicidade e visibilidade da associação. CSE-310 N N monstro mago ataca defende class Hogward «abstract» Mago - nome :string - tipo :string + feitico() :void «property get» + getnome() :string + gettipo() :string «property set» + setnome(string) :void + settipo(string) :void Monstro - nome :string - tipo :string + defesa() :void «property get» + getnome() :string + gettipo() :string «property set» + setnome(string) :void + settipo(string) :void +monstro * +mago * Um mago joga um feitiço num monstro
  • 19. Associação - Multiplicidade •Muitos para Muitos * * •Muitos para um * 1 •Um para um 1 1 •1 - exatamente um •0..1 - zero ou 1 •* - zero ou mais •0..* - zero ou mais •1..* - um ou mais •1, 3..5 – um ou três a 5 CSE-310
  • 20. Associação - Multiplicidade •Quando um objeto recebe múltiplas instancias de outro é necessário controlar por estruturas de dados. CSE-310
  • 21. Associação - direção •Associações são classificadas quanto a navegabilidade: •Bidirecional – ambos objetos possuem referência •Unidirecional – classe que recebe a seta recebe a referência CSE-310
  • 22. Agregação •Associação com significado de contém / faz parte de. •Relação de inclusão CSE-310 1 1 0..1 0..N Um mago possui um pet. Uma escola possui magos. class Hogward «abstract» Mago- nome :string- tipo :string+ feitico() :void «property get» + getnome() :string+ gettipo() :string «property set» + setnome(string) :void+ settipo(string) :voidEscola- nome :string+ ensina() :void «property get» + Getnome() :string «property set» + Setnome(string) :voidPet- nome :string- habilidade :string+ realizaHabilidade() :void «property get» + Getnome() :string+ Gethabilidade() :string «property set» + Setnome(string) :void+ Sethabilidade(string) :void+magos0..* +escola1+pet0..1+mago1
  • 23. Composição •Forma mais forte de agregação. •Forte grau de dependência, cada parte só pode fazer parte de um todo, o todo e as partes tem o mesmo tempo de vida. CSE-310 1 1 class Hogward «abstract» Mago- nome :string- tipo :string+ feitico() :void «property get» + getnome() :string+ gettipo() :string «property set» + setnome(string) :void+ settipo(string) :voidVarinha- nome :string+ feitico() :void «property get» + getnome() :string «property set» + setnome(string) :void+varinha1+mago1
  • 24. Dependência • Relação de uso, em que uma mudança na especificação do elemento usado pode afetar o elemento utilizador. • Objeto usa outro como parâmetro de um método. CSE-310 class Hogward Aluno + feitico() :void Professor + feitico() :void Alunos dependem dos professores para aprender
  • 27. Diagramas estruturais •Diagrama de Classes •Diagrama de Objetos •Diagrama de Componentes •Diagrama de Instalação •Diagrama de Pacotes •Diagrama de Estrutura Composta •Diagrama de Perfil CSE-310
  • 28. Diagramas comportamentais •Diagrama de caso de uso •Diagrama de estados •Diagrama de atividades •Diagramas de interação oDiagrama de sequência oDiagrama de interação oDiagrama de colaboração oDiagrama de tempo CSE-310
  • 29. DE - Classes CSE-310
  • 30. DE - Objetos CSE-310
  • 31. DE - Componentes CSE-310
  • 32. DE - Instalação CSE-310
  • 33. DE - Pacotes CSE-310
  • 34. DE – Estrutura Composta CSE-310
  • 35. DE - Perfil CSE-310
  • 36. DC – Casos de uso CSE-310
  • 37. DC - Estados CSE-310
  • 38. DC - Atividades CSE-310
  • 39. DC – I – Sequência CSE-310
  • 40. DC – I – Interação CSE-310
  • 41. DC – I – Colaboração CSE-310
  • 42. DC – I – Tempo CSE-310
  • 43. Exemplo Diagrama de classes •As escolas de magia formam vários bruxos em um determinado ano. Uma escola contém um nome único, uma data de fundação, e o nome de um fundador. A escola é formada por várias casas que são caracterizadas pelo nome único e mascote. Um aluno bruxo ao entrar na escola é selecionado para morar em uma casa pelo chapéu seletor. Os alunos bruxos são caracterizados pelo nome, data de nascimento, CodEscola único e varinha que também é única. Os alunos compram materiais escolares nas lojas do beco diagonal. As lojas são caracterizadas pelo nome único e dono. Os materiais escolares são caracterizados por um preço e podem ser espécies de animais, ingredientes de poções e objetos mágicos. Os animais são identificados pela espécie, os ingredientes de poções pelo nome único, e o objeto mágico pelo nome e fabricante. Um aluno pode apenas ter um único espécie de estimação, mas a mesma espécie pode ser de vários alunos. Um aluno pode fazer um feitiço usando um ou mais objetos mágicos e um ou mais ingredientes de poções. Os alunos recebem um valor de pontos em uma determinada data. Existe uma tabela de pontuações podem ser positivas quando executam um triunfo, mas podem ser negativas quando realizam um mau-feito. Todas as pontuações possuem um valor mínimo e um valor máximo. Na escola existem vários professores bruxos que são caracterizados pelo número da varinha único, nome, data nascimento. Para cada casa existe um único professor responsável e um único monitor aluno bruxo. Uma casa disputam torneios de quadribol contra outra casa, sendo que nessa disputa existem uma quantidade pontos para cada casa. Os professores ministram uma ou mais disciplinas em um determinado ano. Os alunos frequentam as disciplinas ministradas pelos professores e no final do ano recebem o conceito de aprovados ou reprovados. As disciplinas possuem nome único, uma ementa. Uma escola pode enfrentar duas outras escolas em um torneio tribruxo, sendo que para cada escola existe um único representante nessa disputa. •Construa o diagrama de classes e implemente em uma linguagem de programação orientada à objetos. CSE-310