SlideShare una empresa de Scribd logo
1 de 28
Aula 7 Introdução ao UML: ,[object Object]
 Multiplicidade de classes (solitões e classes-pacote)
 Diagramas de sequência,[object Object]
Associação package airtravel; public class Person {     … } public class Flight {     private Set<Person>         passengers;     … } 2009/2010 Programação Orientada por Objectos 3 airtravel Person - passenger(s) * Carries Associação * Flight
Ligação 2009/2010 Programação Orientada por Objectos 4 airtravel john: Person Person - passenger(s) * - passenger Carries Carries tp344: Flight jim: Person Carries Ligações Associação - passenger Carries - passenger * janet: Person Flight
Associação: agregação package vehicles; public class Car {     private Set<Wheel> wheels;     … } public class Wheel {     private Car car;     … } 2009/2010 Programação OrientadaporObjectos 5 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
Associação: composição package business; public class Company {     private Set<Department>         departments;     … } public class Department {     private Company company;     … } 2009/2010 Programação Orientada por Objectos 6 business Company - company 1 IsPartOf Composição - department(s) * Departament
Associação E os lugares? 2009/2010 Programação Orientada por Objectos 7 airtravel Person - passenger(s) * Carries Associação * Flight
Associação qualificada package airtravel; public class Person {     … } public class Flight {     private Map<Seat, Person>          passengers;     … } 2009/2010 Programação Orientada por Objectos 8 airtravel Person - passenger(s) 0..1 Carries Associação qualificada * seat: Seat Flight
Associação E características especiais, como a dieta pretendida? 2009/2010 Programação Orientada por Objectos 9 airtravel Person - passenger(s) * Carries Associação * Flight
Classe associativa package airtravel; public class Person {     … } public class Carries {     private Person passenger;     private Diet diet;     … } public class Flight {     private Set<Carries>          passengers;     … } 2009/2010 Programação Orientada por Objectos 10 airtravel Person - passenger(s) * Carries diet: Diet Classe associativa * Flight
Classe associativa package airtravel; public class Person {     … } public class Carries {     private Person passenger;     private Diet diet;     … } public class Flight {     private Set<Carries>          passengers;     … } 2009/2010 Programação Orientada por Objectos 11 airtravel Person - passenger(s) * Carries Carries diet: Diet Classe associativa * Flight
Classe associativa package airtravel; public class Person {     … } public class Carries {     private Person passenger;     private Diet diet;     … } public class Flight {     private Set<Carries>          passengers;     … } 2009/2010 Programação Orientada por Objectos 12 airtravel Person - passenger(s) * Carries diet: Diet Classe associativa * Flight
Multiplicidade de classes Pode restringir-se número de instâncias simultâneas de classe no sistema Implementação em Java recorre a truques 2009/2010 Programação Orientada por Objectos 13 n..m MyClass
Solitão (singleton) package mypackage; public final class MySingleton { private static final MySingleton INSTANCE =         new MySingleton(); privateMySingleton() { assert INSTANCE == null : …;     } public static MySingletongetInstance() {         return INSTANCE;     }     … } 2009/2010 Programação Orientada por Objectos 14 1 MySingleton
Classe-pacote 2009/2010 Programação Orientada por Objectos 15 package java.lang; public final class Math { private Math() { assert false : …;     }     public static final double PI = 3.14…;     public static double sin(final double angle) {…}     public static double cos(final double angle) {…}     … } 0 Math
Diagramas Modelo Área dinâmica Área física Área estrutural Área de gestão do modelo … … … Vista de interacção … Diagrama de sequência 2009/2010 Programação Orientada por Objectos 16
Diagramas de sequência Mostram interacções entre entidades numa sequência temporal Mostram entidades envolvidas numa interacção sequências de mensagens trocadas entre entidades Entidades podem ser actores e sistema trocando mensagens (análise; domínio do problema) objectos invocando operações (desenho; domínio da solução) 2009/2010 Programação Orientada por Objectos 17
Exemplo 1 2009/2010 Programação Orientada por Objectos 18 A vida dos objectos, neste caso, prolonga-se para além dos limites do diagrama. No topo do diagrama surgem os objectos pré-existentes envolvidos na interacção. sd = sequencediagram Withdrawal é o nome da interacção. sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) Linha de vida. Que falta aqui? Que falta aqui? withdraw(card, amount) withdraw(amount) Invocação. Linha de vida activa. Retorno.
Exemplo 2 2009/2010 Programação Orientada por Objectos 19 sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Invocação recursiva. Reactivação do objecto. withdraw(card, amount) withdraw(amount)
Exemplo 3 2009/2010 Programação Orientada por Objectos 20 sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Invocação dependente de guarda. [valid] withdraw(card, amount) withdraw(amount)
Exemplo 4 2009/2010 Programação Orientada por Objectos 21 sd withdrawal alt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Fragmentos alternativos. withdraw(card, amount) withdraw(amount) [valid] Guarda de fragmento. [¬valid]
Exemplo 5 2009/2010 Programação Orientada por Objectos 22 sd withdrawal alt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) withdraw(card, amount) withdraw(amount) [valid] Nenhuma das guardas anteriores. [else]
Exemplo 6 2009/2010 Programação Orientada por Objectos 23 sd withdrawal opt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Quando há apenas um fragmento. withdraw(card, amount) withdraw(amount) [valid]
Exemplo 7 2009/2010 Programação Orientada por Objectos 24 sd withdrawal opt loop(1, 3) : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) [¬valid] Ciclo com pelo menos uma e no máximo três iterações. Guarda do ciclo. withdraw(card, amount) withdraw(amount) [valid]
A reter Ligações enquanto instâncias de associações Casos típicos de multiplicidade de classes Solitão Classe-pacote Diagramas de sequência Objectos Linhas de vida Invocações Retornos Alternativas, opções e ciclos 2009/2010 Programação Orientada por Objectos 25
Referências UML® ResourcePage (http://www.uml.org/) Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3.ª edição, Addison-Wesley, 2003.ISBN: 0-321-19368-7(1.ª e 2.ª ediçõesnabiblioteca) James Rumbaugh et al., The Unified Modeling Language Reference Manual, 2.ª edição, Addison-Wesley, 2005.ISBN: 0-321-24562-8(1.ª edição do guia do utilizador na biblioteca) 2009/2010 Programação Orientada por Objectos 26
A ler para as próximas aulas ... Capítulos 1 a 10 e 16 do livro: Y. Daniel Liang, Introduction to Java Programming, 7.ª edição, Prentice Hall, 2008.ISBN: 978-0-13-605966-0 2009/2010 Programação Orientada por Objectos 27

Más contenido relacionado

Destacado

4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosManuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 

Destacado (14)

Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitos
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 

Similar a Programação Orientada por Objectos - Aula 7

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4guestd521d1f
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Jeison Barros
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#Felipe Pimentel
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portuguesLaura
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Minicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPRMinicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPRLucas Antonio Ramos Sartori
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 

Similar a Programação Orientada por Objectos - Aula 7 (20)

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Evento CODERS
Evento CODERSEvento CODERS
Evento CODERS
 
Kotlin first
Kotlin firstKotlin first
Kotlin first
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
 
Clean code
Clean codeClean code
Clean code
 
Projeto locadora
Projeto locadoraProjeto locadora
Projeto locadora
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Desenvolvimento iOS
Desenvolvimento iOSDesenvolvimento iOS
Desenvolvimento iOS
 
Minicurso kotlin UTFPR
Minicurso kotlin UTFPR Minicurso kotlin UTFPR
Minicurso kotlin UTFPR
 
Minicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPRMinicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPR
 
Access vba
Access vbaAccess vba
Access vba
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 

Más de Manuel Menezes de Sequeira

Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoManuel Menezes de Sequeira
 

Más de Manuel Menezes de Sequeira (12)

Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 

Último

Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdLeonardoDeOliveiraLu2
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfLidianeLill2
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022LeandroSilva126216
 
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.pptxJssicaCassiano2
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...azulassessoria9
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxgia0123
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPEli Gonçalves
 

Último (20)

Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
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
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 

Programação Orientada por Objectos - Aula 7

  • 1.
  • 2. Multiplicidade de classes (solitões e classes-pacote)
  • 3.
  • 4. Associação package airtravel; public class Person { … } public class Flight { private Set<Person> passengers; … } 2009/2010 Programação Orientada por Objectos 3 airtravel Person - passenger(s) * Carries Associação * Flight
  • 5. Ligação 2009/2010 Programação Orientada por Objectos 4 airtravel john: Person Person - passenger(s) * - passenger Carries Carries tp344: Flight jim: Person Carries Ligações Associação - passenger Carries - passenger * janet: Person Flight
  • 6. Associação: agregação package vehicles; public class Car { private Set<Wheel> wheels; … } public class Wheel { private Car car; … } 2009/2010 Programação OrientadaporObjectos 5 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
  • 7. Associação: composição package business; public class Company { private Set<Department> departments; … } public class Department { private Company company; … } 2009/2010 Programação Orientada por Objectos 6 business Company - company 1 IsPartOf Composição - department(s) * Departament
  • 8. Associação E os lugares? 2009/2010 Programação Orientada por Objectos 7 airtravel Person - passenger(s) * Carries Associação * Flight
  • 9. Associação qualificada package airtravel; public class Person { … } public class Flight { private Map<Seat, Person> passengers; … } 2009/2010 Programação Orientada por Objectos 8 airtravel Person - passenger(s) 0..1 Carries Associação qualificada * seat: Seat Flight
  • 10. Associação E características especiais, como a dieta pretendida? 2009/2010 Programação Orientada por Objectos 9 airtravel Person - passenger(s) * Carries Associação * Flight
  • 11. Classe associativa package airtravel; public class Person { … } public class Carries { private Person passenger; private Diet diet; … } public class Flight { private Set<Carries> passengers; … } 2009/2010 Programação Orientada por Objectos 10 airtravel Person - passenger(s) * Carries diet: Diet Classe associativa * Flight
  • 12. Classe associativa package airtravel; public class Person { … } public class Carries { private Person passenger; private Diet diet; … } public class Flight { private Set<Carries> passengers; … } 2009/2010 Programação Orientada por Objectos 11 airtravel Person - passenger(s) * Carries Carries diet: Diet Classe associativa * Flight
  • 13. Classe associativa package airtravel; public class Person { … } public class Carries { private Person passenger; private Diet diet; … } public class Flight { private Set<Carries> passengers; … } 2009/2010 Programação Orientada por Objectos 12 airtravel Person - passenger(s) * Carries diet: Diet Classe associativa * Flight
  • 14. Multiplicidade de classes Pode restringir-se número de instâncias simultâneas de classe no sistema Implementação em Java recorre a truques 2009/2010 Programação Orientada por Objectos 13 n..m MyClass
  • 15. Solitão (singleton) package mypackage; public final class MySingleton { private static final MySingleton INSTANCE = new MySingleton(); privateMySingleton() { assert INSTANCE == null : …; } public static MySingletongetInstance() { return INSTANCE; } … } 2009/2010 Programação Orientada por Objectos 14 1 MySingleton
  • 16. Classe-pacote 2009/2010 Programação Orientada por Objectos 15 package java.lang; public final class Math { private Math() { assert false : …; } public static final double PI = 3.14…; public static double sin(final double angle) {…} public static double cos(final double angle) {…} … } 0 Math
  • 17. Diagramas Modelo Área dinâmica Área física Área estrutural Área de gestão do modelo … … … Vista de interacção … Diagrama de sequência 2009/2010 Programação Orientada por Objectos 16
  • 18. Diagramas de sequência Mostram interacções entre entidades numa sequência temporal Mostram entidades envolvidas numa interacção sequências de mensagens trocadas entre entidades Entidades podem ser actores e sistema trocando mensagens (análise; domínio do problema) objectos invocando operações (desenho; domínio da solução) 2009/2010 Programação Orientada por Objectos 17
  • 19. Exemplo 1 2009/2010 Programação Orientada por Objectos 18 A vida dos objectos, neste caso, prolonga-se para além dos limites do diagrama. No topo do diagrama surgem os objectos pré-existentes envolvidos na interacção. sd = sequencediagram Withdrawal é o nome da interacção. sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) Linha de vida. Que falta aqui? Que falta aqui? withdraw(card, amount) withdraw(amount) Invocação. Linha de vida activa. Retorno.
  • 20. Exemplo 2 2009/2010 Programação Orientada por Objectos 19 sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Invocação recursiva. Reactivação do objecto. withdraw(card, amount) withdraw(amount)
  • 21. Exemplo 3 2009/2010 Programação Orientada por Objectos 20 sd withdrawal : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Invocação dependente de guarda. [valid] withdraw(card, amount) withdraw(amount)
  • 22. Exemplo 4 2009/2010 Programação Orientada por Objectos 21 sd withdrawal alt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Fragmentos alternativos. withdraw(card, amount) withdraw(amount) [valid] Guarda de fragmento. [¬valid]
  • 23. Exemplo 5 2009/2010 Programação Orientada por Objectos 22 sd withdrawal alt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) withdraw(card, amount) withdraw(amount) [valid] Nenhuma das guardas anteriores. [else]
  • 24. Exemplo 6 2009/2010 Programação Orientada por Objectos 23 sd withdrawal opt : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) Quando há apenas um fragmento. withdraw(card, amount) withdraw(amount) [valid]
  • 25. Exemplo 7 2009/2010 Programação Orientada por Objectos 24 sd withdrawal opt loop(1, 3) : AtmInterface : Bank : Account valid = valid(card, pin) valid(card) [¬valid] Ciclo com pelo menos uma e no máximo três iterações. Guarda do ciclo. withdraw(card, amount) withdraw(amount) [valid]
  • 26. A reter Ligações enquanto instâncias de associações Casos típicos de multiplicidade de classes Solitão Classe-pacote Diagramas de sequência Objectos Linhas de vida Invocações Retornos Alternativas, opções e ciclos 2009/2010 Programação Orientada por Objectos 25
  • 27. Referências UML® ResourcePage (http://www.uml.org/) Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3.ª edição, Addison-Wesley, 2003.ISBN: 0-321-19368-7(1.ª e 2.ª ediçõesnabiblioteca) James Rumbaugh et al., The Unified Modeling Language Reference Manual, 2.ª edição, Addison-Wesley, 2005.ISBN: 0-321-24562-8(1.ª edição do guia do utilizador na biblioteca) 2009/2010 Programação Orientada por Objectos 26
  • 28. A ler para as próximas aulas ... Capítulos 1 a 10 e 16 do livro: Y. Daniel Liang, Introduction to Java Programming, 7.ª edição, Prentice Hall, 2008.ISBN: 978-0-13-605966-0 2009/2010 Programação Orientada por Objectos 27
  • 29. Sumário Introdução ao UML Ligações como instâncias de associações Multiplicidade de classes (solitões e classes-pacote) Diagramas de sequência 2009/2010 Programação Orientada por Objectos 28

Notas del editor

  1. O solitão é um padrão de desenho (design pattern). Corresponde a uma classe que possui apenas uma instância. Falar-se-á sobre padrões de desenho noutras disciplinas.Nota: A palavra solitão (singleton) aplica-se ao padrão de desenho, a uma classe que o aplique e ao objecto (único) que é instância dessa classe.(Nota avançada: Há soluções alternativas a esta, até porque este padrão tem variadíssimos problemas. Em algumas das soluções a multiplicidade passa a ser 0..1, uma vez que elas garantem que o solitão é construído apenas quando a ele se tenta aceder.)