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 
Relaciona...
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 ...
UML 
•Unified Modeling Language 
•Vocabulário para descrição de modelos. 
•Apelo para “Model Driven Architecture” http://w...
Objeto?!! 
•Interface para uma estrutura de dados + seus serviços 
•Representação abstrata 
CSE-310 
Dados / Atributos 
(P...
Encapsulamento 
•Abstração do sistema 
•Quem usa não precisa saber como funciona. 
•Precisa saber como utilizar. 
•Uso pel...
Modelo Objeto (UML) 
•Descreve Relacionamentos/Atributos/Operações 
•Forma (MODELO) para o objeto 
•(Diagramado no Enterpr...
Instância 
•Realização de uma classe ( da forma) 
C++ 
•Mago *hPotter = new Mago(); 
•Mago hPotter; 
Java 
•Mago hPotter =...
Atributos 
•Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do ob...
Métodos 
•Comportamento dos objetos é modelado nas operações. 
oÉ algo que se pode pedir para ser feito a um objeto. Objet...
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 ...
Relações 
CSE-310
Ligações / Relações 
•Os objetos se relacionam. 
•Relacionamentos precisam ser modelados. 
•Exs.: 
oUm mago pode ser aluno...
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 
• ...
Associação 
• É a relação entre objetos das classes. 
• Implementação através de uma referencia. 
• Pode haver mais de uma...
Associação - Multiplicidade 
•Muitos para Muitos * * 
•Muitos para um * 1 
•Um para um 1 1 
•1 - exatamente um 
•0..1 - ze...
Associação - Multiplicidade 
•Quando um objeto recebe múltiplas instancias de outro é necessário controlar por estruturas ...
Associação - direção 
•Associações são classificadas quanto a navegabilidade: 
•Bidirecional – ambos objetos possuem refer...
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...
Composição 
•Forma mais forte de agregação. 
•Forte grau de dependência, cada parte só pode fazer parte de um todo, o todo...
Dependência 
• Relação de uso, em que uma mudança na 
especificação do elemento usado pode afetar o 
elemento utilizador. ...
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 
•Dia...
Diagramas comportamentais 
•Diagrama de caso de uso 
•Diagrama de estados 
•Diagrama de atividades 
•Diagramas de interaçã...
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 ún...
Próximos SlideShares
Carregando em…5
×

[CRASHCOURSE] Orientação a Objeto e UML

504 visualizações

Publicada em

Resumão orientação a objeto e UML

Publicada em: Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
504
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

[CRASHCOURSE] Orientação a Objeto e UML

  1. 1. Orientação a objeto Crash-course MSc. Eng. Christopher S. Cerqueira
  2. 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
  3. 3. Orientação a Objeto CSE-310
  4. 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. 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. 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. 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. 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. 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. 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. 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. 12. Pacotes •Organiza as classes em grupos •Hierarquiza(fisicamente) o projeto •Feels de um endereço web. CSE-310
  13. 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
  14. 14. Relações CSE-310
  15. 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. 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. 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. 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. 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. 20. Associação - Multiplicidade •Quando um objeto recebe múltiplas instancias de outro é necessário controlar por estruturas de dados. CSE-310
  21. 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. 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. 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. 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
  25. 25. UML Diagramas Looks CSE-310
  26. 26. Hierarquia CSE-310 http://pt.wikipedia.org/wiki/UML
  27. 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. 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. 29. DE - Classes CSE-310
  30. 30. DE - Objetos CSE-310
  31. 31. DE - Componentes CSE-310
  32. 32. DE - Instalação CSE-310
  33. 33. DE - Pacotes CSE-310
  34. 34. DE – Estrutura Composta CSE-310
  35. 35. DE - Perfil CSE-310
  36. 36. DC – Casos de uso CSE-310
  37. 37. DC - Estados CSE-310
  38. 38. DC - Atividades CSE-310
  39. 39. DC – I – Sequência CSE-310
  40. 40. DC – I – Interação CSE-310
  41. 41. DC – I – Colaboração CSE-310
  42. 42. DC – I – Tempo CSE-310
  43. 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

×