SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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...
 

Ähnlich wie 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
 

Ähnlich wie 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)
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
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
 
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
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
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
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
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
 
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
 
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
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
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
 
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
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubeladrianaguedesbatista
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosGentil Eronides
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 

Kürzlich hochgeladen (20)

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
 
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
 
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
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
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
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
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
 
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
 
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
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
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...
 
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çã...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 

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

Hinweis der Redaktion

  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.)