SlideShare une entreprise Scribd logo
1  sur  44
Aula 6 Introdução ao UML:  ,[object Object]
 Áreas, vistas e tipos de diagrama
 Níveis de pormenor
 Notações para classes, objectos e relações,[object Object]
UML (Unified Modeling Language) Linguagem visual de modelação Diagramas representam modelo do sistema Ferramenta importante de comunicação Autores originais Grady Booch Ivar Jacobson James Rumbaugh Normalização OMG (Object Management Group) http://www.uml.org/ Versão 2.2 2009/2010 Programação Orientada por Objectos 3
Diagramas Estruturais Estáticos (de classes, de objectos) De desenho (estrutura interna, colaboração, componentes) Casos de uso Dinâmicos Máquinas de estados De actividades De interacção (de sequência, de comunicação) Físicos (de implantação) Gestão de modelos (de pacotes) 2009/2010 Programação Orientada por Objectos 4
Diagramas 2009/2010 Programação Orientada por Objectos 5 Modelo Área dinâmica Área física Área de gestão do modelo Área estrutural … … … Vista de casos de uso Vista estática Vista de desenho … … Diagrama de classes Diagrama de objectos
Diagrama de classes Representa Classes Relações entre classes Diagrama estrutural e estático Domínio do problema Conceitos  Modelo de análise Domínio da solução Classes Modelo de desenho 2009/2010 Programação Orientada por Objectos 6 Classes e suas relações não mudam durante execução do programa. Modela a estrutura lógica do sistema. A perspectiva é não dinâmica: a evolução temporal do sistema em execução não é explícita. Compreensão do problema, análise, recolha de requisitos, elaboração de glossário do domínio. Desenho, síntese, implementação. Possível geração automática de código.
Diagrama de objectos Representa Objectos Ligações entre objectos Diagrama estrutural e estático 2009/2010 Programação Orientada por Objectos 7 Fotografia estática do estado do sistema em execução num dado instante de tempo. Ajuda a compreender a estrutura dos dados do sistema. A perspectiva continua a não ser dinâmica: o sistema está parado no tempo.
Classes package mypackage; … public abstract  class MyAbstractClass {     private Set<Type> set;     private List<Type> list;     private TreeSet<Type>  sortedSet;     public static final Type constant = value;     public MyAbstractClass() {…}     private Type privateFunction(final Type parameter) {…}     void packagePrivateProcedure() {…}     protected abstract Type abstractProtectedFunction();     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 8 Classe representada por caixa com compartimentos. mypackage::MyAbstractClass Nome - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} Atributos Operações «constructor»+ MyAbstractClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # abstractProtectedFunction(): Type + classPublicProcedure()
Classes package mypackage; … public class MyClass {     private Set<Type> set;     private List<Type> list;     private TreeSet<Type>  sortedSet;     public static final Type constant = value;     public MyClass() {…}     private Type privateFunction(final Type parameter) {…}     void packagePrivateProcedure() {…}     protected Type protectedFunction() {…}     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 9 mypackage::MyClass - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # protectedFunction(): Type + classPublicProcedure()
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass();         …     } } 2009/2010 Programação Orientada por Objectos 10 localVariable : mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass();         …     } } 2009/2010 Programação Orientada por Objectos 11 : mypackage::MyClass localVariable : «ref»mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Classes: especialização package mypackage; … public class MyDerivedClassextends MyClass {     … } 2009/2010 Programação Orientada por Objectos 12 mypackage::MyClass mypackage::MyDerivedClass Generalização Generalização
Objectos: especialização import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyDerivedClass();         …     } } 2009/2010 Programação Orientada por Objectos 13 : mypackage::MyDerivedClass localVariable : «ref» mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Classes genéricas package mypackage; … public class MyClass<T> {     private Set<T> set;     private List<T> list;     private TreeSet<T>  sortedSet;     public static final T constant = value;     public MyClass() {…}     private TprivateFunction(final T parameter) {…}     void packagePrivateProcedure() {…}     protected TprotectedFunction() {…}     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 14 T mypackage::MyClass - set: T [*] - list: T [*] {ordered, nonunique} - sortedSet: T [*] {sorted} + constant: T = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: T): T ~ packagePrivateProcedure() # protectedFunction(): T + classPublicProcedure()
Classes genéricas: ligação (binding) import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClass<String>localVariable = …;         …     } } 2009/2010 Programação Orientada por Objectos 15 T mypackage::MyClass mypackage::MyClass<T -> String> - set: String [*] - list: String [*] {ordered, nonunique} - sortedSet: String [*] {sorted} + constant: String = value {frozen} «bind» <T -> String> «constructor»+ MyClass() - privateFunction(in parameter: String): String ~ packagePrivateProcedure() # protectedFunction(): String + classPublicProcedure() Ligação (binding)
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClass<String> localVariable = new MyClass<String>();         …     } } 2009/2010 Programação Orientada por Objectos 16 : mypackage::MyClass<T -> String> set = (“string3”, “string1”, “string2”) list = (“string1”, “string2”, “string1”) sortedSet = (“string1”, “string2”, “string3”) constant = “string”
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 17 mypackage::MyClass
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 18 mypackage MyClass
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 19 mypackage MyClass Conteúdo
Interfaces package mypackage; … public interface MyInterface {     Type operation();     … } 2009/2010 Programação Orientada por Objectos 20 mypackage «interface» MyInterface operation(): Type …
Realização Interfaces package mypackage; … public interface MyInterface {     Type operation();     … } public  class MyClassimplements MyInterface { @Override     public Type operation() { … }     … } 2009/2010 Programação Orientada por Objectos 21 mypackage «interface» MyInterface operation(): Type … MyClass + operation(): Type …
Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClassimplements MyInterface {     … } 2009/2010 Programação Orientada por Objectos 22 mypackage MyInterface MyClass
Utilização Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClass implements MyInterface {     … } public class MyOtherClass {     …     public      void method(final MyInterface object) {         final Type variable = object.operation();         …     }     … } 2009/2010 Programação Orientada por Objectos 23 mypackage MyOtherClass MyInterface MyInterface MyClass
Utilização Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClass implements MyInterface {     … } public class MyOtherClass {     …     public      void method(final MyInterface object) {         final Type variable = object.operation();         …     }     … } 2009/2010 Programação Orientada por Objectos 24 mypackage MyOtherClass «interface» MyInterface MyClass
Restrições 2009/2010 Programação Orientada por Objectos 25 Rational Rational {mdc(numerator, denominator} = 1  Ʌ 0 < denominator} - numerator: int - denominator: int - numerator: int - denominator: int … … {mdc(numerator, denominator} = 1  Ʌ 0 < denominator}
Principais relações entre classes Generalização  Associação Agregação Composição Abstracção Realização Ligação (binding) Utilização Invocação Criação 2009/2010 Programação Orientada por Objectos 26 «bind» <…> «call» «create»
Utilização: criação package vehicles; public class Car {     … } package vehicles; public class Factory {     …     public Car newCar(…) {         …         return new Car(…);     }     … } 2009/2010 Programação Orientada por Objectos 27 vehicles Factory «create» Criação (utilização) Car
Associação 2009/2010 Programação Orientada por Objectos 28 business Company Associação Person
Associação: nome 2009/2010 Programação Orientada por Objectos 29 business Company WorksFor Associação Person
Associação: papeis 2009/2010 Programação Orientada por Objectos 30 business Company employer WorksFor Associação employee Person
Associação: multiplicidade 2009/2010 Programação Orientada por Objectos 31 business Company employer 0..1 WorksFor Associação employee(s) * Person
Multiplicidade 2009/2010 Programação Orientada por Objectos 32
Associação: representação package business; public class Company {     private     Set<Person> employees;     … } public class Person {     private Company employer;     … } 2009/2010 Programação Orientada por Objectos 33 business Company employer 0..1 WorksFor Associação employee(s) * Person
Representação e multiplicidade 2009/2010 Programação Orientada por Objectos 34
Associação: visibilidade package business; public class Company { private     Set<Person> employees;     … } public class Person { private Company employer;     … } 2009/2010 Programação Orientada por Objectos 35 business Company - employer 0..1 WorksFor Associação - employee(s) * Person
Associação: navegabilidade package business; public class Company {     private     Set<Person> employees;     … } public class Person {     private Company employer;     … } 2009/2010 Programação OrientadaporObjectos 36 business Company employer 0..1 WorksFor Associação - employee(s) * Person
Associação package vehicles; public class Car {     private Set<Wheel> wheels;     … } public class Wheel {     private Car car;     … } 2009/2010 Programação Orientada por Objectos 37 vehicles Car - car 0..1 IsPartOf - wheel(s) 3..6 Wheel
Associação: agregação package vehicles; public class Car {     @Parts     private Set<Wheel> wheels;     … } public class Wheel {     @Whole     private Car car;     … } 2009/2010 Programação Orientada por Objectos 38 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
Associação package business; public class Company {     private Set<Department>         departments;     … } public class Department {     private Company company;     … } 2009/2010 Programação Orientada por Objectos 39 business Company - company 1 IsPartOf - department(s) * Departament
Associação: composição package business; public class Company {     @Components     private Set<Department>         departments;     … } public class Department {     @Composite     private Company company;     … } 2009/2010 Programação Orientada por Objectos 40 business Company - company 1 IsPartOf Composição - department(s) * Departament
A reter Tipos de diagrama UML Notações para classes, objectos e relações UML como forma de comunicação entre pessoas que precisam de se entender em relação A um problema (análise) A uma solução (desenho) UML como modelo formal e possível fonte para geração automática de código (e.g., Java) 2009/2010 Programação Orientada por Objectos 41
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 42

Contenu connexe

Tendances

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
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
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
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
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 

Tendances (20)

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Java6
Java6Java6
Java6
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Java7
Java7Java7
Java7
 
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
 
Java8
Java8Java8
Java8
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Javascript
JavascriptJavascript
Javascript
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
NHibernate
NHibernateNHibernate
NHibernate
 
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
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 

En vedette

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectosManuel Menezes de Sequeira
 
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
 

En vedette (20)

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
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 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
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...
 

Similaire à Introdução ao UML

Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Jeison Barros
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#Felipe Pimentel
 
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
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinNelson Glauber Leal
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 

Similaire à Introdução ao UML (20)

Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Palestra2009
Palestra2009Palestra2009
Palestra2009
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Jquery a technical overview
Jquery a technical overviewJquery a technical overview
Jquery a technical overview
 
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
 
Git, GitHub e OO
Git, GitHub e OOGit, GitHub e OO
Git, GitHub e OO
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Aula5
Aula5Aula5
Aula5
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Evento CODERS
Evento CODERSEvento CODERS
Evento CODERS
 
Java annotation
Java annotationJava annotation
Java annotation
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
v
vv
v
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Kotlin first
Kotlin firstKotlin first
Kotlin first
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 

Plus de Manuel Menezes de Sequeira

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

Plus de Manuel Menezes de Sequeira (12)

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

Dernier

Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 

Dernier (20)

Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 

Introdução ao UML

  • 1.
  • 2. Áreas, vistas e tipos de diagrama
  • 3. Níveis de pormenor
  • 4.
  • 5. UML (Unified Modeling Language) Linguagem visual de modelação Diagramas representam modelo do sistema Ferramenta importante de comunicação Autores originais Grady Booch Ivar Jacobson James Rumbaugh Normalização OMG (Object Management Group) http://www.uml.org/ Versão 2.2 2009/2010 Programação Orientada por Objectos 3
  • 6. Diagramas Estruturais Estáticos (de classes, de objectos) De desenho (estrutura interna, colaboração, componentes) Casos de uso Dinâmicos Máquinas de estados De actividades De interacção (de sequência, de comunicação) Físicos (de implantação) Gestão de modelos (de pacotes) 2009/2010 Programação Orientada por Objectos 4
  • 7. Diagramas 2009/2010 Programação Orientada por Objectos 5 Modelo Área dinâmica Área física Área de gestão do modelo Área estrutural … … … Vista de casos de uso Vista estática Vista de desenho … … Diagrama de classes Diagrama de objectos
  • 8. Diagrama de classes Representa Classes Relações entre classes Diagrama estrutural e estático Domínio do problema Conceitos Modelo de análise Domínio da solução Classes Modelo de desenho 2009/2010 Programação Orientada por Objectos 6 Classes e suas relações não mudam durante execução do programa. Modela a estrutura lógica do sistema. A perspectiva é não dinâmica: a evolução temporal do sistema em execução não é explícita. Compreensão do problema, análise, recolha de requisitos, elaboração de glossário do domínio. Desenho, síntese, implementação. Possível geração automática de código.
  • 9. Diagrama de objectos Representa Objectos Ligações entre objectos Diagrama estrutural e estático 2009/2010 Programação Orientada por Objectos 7 Fotografia estática do estado do sistema em execução num dado instante de tempo. Ajuda a compreender a estrutura dos dados do sistema. A perspectiva continua a não ser dinâmica: o sistema está parado no tempo.
  • 10. Classes package mypackage; … public abstract class MyAbstractClass { private Set<Type> set; private List<Type> list; private TreeSet<Type> sortedSet; public static final Type constant = value; public MyAbstractClass() {…} private Type privateFunction(final Type parameter) {…} void packagePrivateProcedure() {…} protected abstract Type abstractProtectedFunction(); public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 8 Classe representada por caixa com compartimentos. mypackage::MyAbstractClass Nome - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} Atributos Operações «constructor»+ MyAbstractClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # abstractProtectedFunction(): Type + classPublicProcedure()
  • 11. Classes package mypackage; … public class MyClass { private Set<Type> set; private List<Type> list; private TreeSet<Type> sortedSet; public static final Type constant = value; public MyClass() {…} private Type privateFunction(final Type parameter) {…} void packagePrivateProcedure() {…} protected Type protectedFunction() {…} public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 9 mypackage::MyClass - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # protectedFunction(): Type + classPublicProcedure()
  • 12. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass(); … } } 2009/2010 Programação Orientada por Objectos 10 localVariable : mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 13. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass(); … } } 2009/2010 Programação Orientada por Objectos 11 : mypackage::MyClass localVariable : «ref»mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 14. Classes: especialização package mypackage; … public class MyDerivedClassextends MyClass { … } 2009/2010 Programação Orientada por Objectos 12 mypackage::MyClass mypackage::MyDerivedClass Generalização Generalização
  • 15. Objectos: especialização import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyDerivedClass(); … } } 2009/2010 Programação Orientada por Objectos 13 : mypackage::MyDerivedClass localVariable : «ref» mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 16. Classes genéricas package mypackage; … public class MyClass<T> { private Set<T> set; private List<T> list; private TreeSet<T> sortedSet; public static final T constant = value; public MyClass() {…} private TprivateFunction(final T parameter) {…} void packagePrivateProcedure() {…} protected TprotectedFunction() {…} public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 14 T mypackage::MyClass - set: T [*] - list: T [*] {ordered, nonunique} - sortedSet: T [*] {sorted} + constant: T = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: T): T ~ packagePrivateProcedure() # protectedFunction(): T + classPublicProcedure()
  • 17. Classes genéricas: ligação (binding) import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClass<String>localVariable = …; … } } 2009/2010 Programação Orientada por Objectos 15 T mypackage::MyClass mypackage::MyClass<T -> String> - set: String [*] - list: String [*] {ordered, nonunique} - sortedSet: String [*] {sorted} + constant: String = value {frozen} «bind» <T -> String> «constructor»+ MyClass() - privateFunction(in parameter: String): String ~ packagePrivateProcedure() # protectedFunction(): String + classPublicProcedure() Ligação (binding)
  • 18. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClass<String> localVariable = new MyClass<String>(); … } } 2009/2010 Programação Orientada por Objectos 16 : mypackage::MyClass<T -> String> set = (“string3”, “string1”, “string2”) list = (“string1”, “string2”, “string1”) sortedSet = (“string1”, “string2”, “string3”) constant = “string”
  • 19. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 17 mypackage::MyClass
  • 20. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 18 mypackage MyClass
  • 21. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 19 mypackage MyClass Conteúdo
  • 22. Interfaces package mypackage; … public interface MyInterface { Type operation(); … } 2009/2010 Programação Orientada por Objectos 20 mypackage «interface» MyInterface operation(): Type …
  • 23. Realização Interfaces package mypackage; … public interface MyInterface { Type operation(); … } public class MyClassimplements MyInterface { @Override public Type operation() { … } … } 2009/2010 Programação Orientada por Objectos 21 mypackage «interface» MyInterface operation(): Type … MyClass + operation(): Type …
  • 24. Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClassimplements MyInterface { … } 2009/2010 Programação Orientada por Objectos 22 mypackage MyInterface MyClass
  • 25. Utilização Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClass implements MyInterface { … } public class MyOtherClass { … public void method(final MyInterface object) { final Type variable = object.operation(); … } … } 2009/2010 Programação Orientada por Objectos 23 mypackage MyOtherClass MyInterface MyInterface MyClass
  • 26. Utilização Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClass implements MyInterface { … } public class MyOtherClass { … public void method(final MyInterface object) { final Type variable = object.operation(); … } … } 2009/2010 Programação Orientada por Objectos 24 mypackage MyOtherClass «interface» MyInterface MyClass
  • 27. Restrições 2009/2010 Programação Orientada por Objectos 25 Rational Rational {mdc(numerator, denominator} = 1 Ʌ 0 < denominator} - numerator: int - denominator: int - numerator: int - denominator: int … … {mdc(numerator, denominator} = 1 Ʌ 0 < denominator}
  • 28. Principais relações entre classes Generalização Associação Agregação Composição Abstracção Realização Ligação (binding) Utilização Invocação Criação 2009/2010 Programação Orientada por Objectos 26 «bind» <…> «call» «create»
  • 29. Utilização: criação package vehicles; public class Car { … } package vehicles; public class Factory { … public Car newCar(…) { … return new Car(…); } … } 2009/2010 Programação Orientada por Objectos 27 vehicles Factory «create» Criação (utilização) Car
  • 30. Associação 2009/2010 Programação Orientada por Objectos 28 business Company Associação Person
  • 31. Associação: nome 2009/2010 Programação Orientada por Objectos 29 business Company WorksFor Associação Person
  • 32. Associação: papeis 2009/2010 Programação Orientada por Objectos 30 business Company employer WorksFor Associação employee Person
  • 33. Associação: multiplicidade 2009/2010 Programação Orientada por Objectos 31 business Company employer 0..1 WorksFor Associação employee(s) * Person
  • 34. Multiplicidade 2009/2010 Programação Orientada por Objectos 32
  • 35. Associação: representação package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação Orientada por Objectos 33 business Company employer 0..1 WorksFor Associação employee(s) * Person
  • 36. Representação e multiplicidade 2009/2010 Programação Orientada por Objectos 34
  • 37. Associação: visibilidade package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação Orientada por Objectos 35 business Company - employer 0..1 WorksFor Associação - employee(s) * Person
  • 38. Associação: navegabilidade package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação OrientadaporObjectos 36 business Company employer 0..1 WorksFor Associação - employee(s) * Person
  • 39. Associação package vehicles; public class Car { private Set<Wheel> wheels; … } public class Wheel { private Car car; … } 2009/2010 Programação Orientada por Objectos 37 vehicles Car - car 0..1 IsPartOf - wheel(s) 3..6 Wheel
  • 40. Associação: agregação package vehicles; public class Car { @Parts private Set<Wheel> wheels; … } public class Wheel { @Whole private Car car; … } 2009/2010 Programação Orientada por Objectos 38 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
  • 41. Associação package business; public class Company { private Set<Department> departments; … } public class Department { private Company company; … } 2009/2010 Programação Orientada por Objectos 39 business Company - company 1 IsPartOf - department(s) * Departament
  • 42. Associação: composição package business; public class Company { @Components private Set<Department> departments; … } public class Department { @Composite private Company company; … } 2009/2010 Programação Orientada por Objectos 40 business Company - company 1 IsPartOf Composição - department(s) * Departament
  • 43. A reter Tipos de diagrama UML Notações para classes, objectos e relações UML como forma de comunicação entre pessoas que precisam de se entender em relação A um problema (análise) A uma solução (desenho) UML como modelo formal e possível fonte para geração automática de código (e.g., Java) 2009/2010 Programação Orientada por Objectos 41
  • 44. 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 42
  • 45. 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 43
  • 46. Sumário Introdução ao UML Noções Áreas, vistas e tipos de diagrama Níveis de pormenor Notações para classes, objectos e relações Notações para as relações mais importantes, incluindo a generalização, a associação, a agregação e a composição 2009/2010 Programação Orientada por Objectos 44

Notes de l'éditeur

  1. Cada tipo de diagrama dá-nos uma visão ou perspectiva do sistema. É crucialque os diferentes diagramas sejam coerentes entre si. Cada diagrama pode ser construído ou visto com diferentes níveis de granularidade (pormenor). O mesmo tipo de diagramas pode ser usado para expressar aspectos diferentes do sistema: Diagrama de classes para análise/desenho Diagrama de actividades para actores/operações/instruções individuaisCom ferramentas de modelação adequadas, os modelos representados pelos diagramas podem ser usados para gerar código automaticamente. As mesmas ferramentas podem também simplificar a tarefa de obter o modelo correspondente a código já existente.
  2. Nível de pormenor é variável. O nome, atributos, operações ficam em compartimentos separados.Usa-se o sublinhado nos métodos ou atributos de classe (em Java, static). O sublinhado no nome da classe tem um significado muito diferente, que se verá à frente. O itálico no nome da classe significa que a classe é abstracta. O mesmo acontece na linha de uma operação: se estiver em itálico, a operação é abstracta. Entre aspas «» escrevem-se os chamados estereótipos. O estereótipo «constructor» assinala uma operação que na realidade é um construtor. Entre parênteses rectos assinala-se a multiplicidade dos atributos. * significa “qualquer número”. Entre chavetas escrevem-se propriedades dos atributos. Ordered indica, num atributo com multiplicidade não unitária, que os elementos têm uma ordem extrínseca relevante. Nonunique indica que os elementos podem repetir-se. Sorted indica que os elementos têm uma ordem intrínseca (que é a sua ordem natural). In indica que o parâmetro é apenas de entrada. Não se espera, por isso, que seja modificado (ou melhor, no caso de ser uma referência, espera-se que o objecto referenciado não mude de valor, pelo menos através do parâmetro). Frozen indica que o atributo, depois de inicializado, não mudará de valor.Note-se a tradução para Java da notação. Chama-se a atenção para os atributos com multiplicidade não unitária, que são traduzidos em colecções de tipos apropriados.Categorias de acesso: privado+ público# protegido~ pacote
  3. Vamos alterar a classe para não ser abstracta, i.e., para ser concreta.
  4. Os objectos representam-se em caixas, como as classes, mas agora o nome é o do objecto, seguido de : e finalmente do nome da classe. Todo o título é sublinhado. É usual representarem-se os valores das propriedades (atributos) no compartimento apropriado.O nome de um objecto na realidade não é o nome do objecto. Tipicamente é o nome de uma referência através da qual acedemos ao objecto. Assim, pode haver múltiplos “nomes” para um objecto, quer em simultâneo, quer em sequência.
  5. Atenção! Isto não é UML, em rigor. Mas ajuda-nos a perceber a diferença entre referências e objectos referenciados.
  6. O UML permite-nos omitir os pormenores. Devemos fazê-lo sempre que isso tornar mais claro o diagrama, i.e., sempre que isso facilitar a apreensão do aspecto do desenho que o diagrama pretende representar.A relação de generalização é uma das mais importantes no UML. Repare-se na notação usada para as anotações, que funcionam como comentários
  7. Qual a relação entre classe genérica MyClasse&lt;T&gt; e a classe MyClasse&lt;T -&gt; String&gt;? É uma relação de “ligação” (binding)
  8. Pode, por isso, falar-se numa relação de conteúdo. Quando a relação é entre classes, chama-se-lhe embutimento (nesting).
  9. Note-se que as operações nas interfaces são sempre públicas e abstractas. Normalmente assume-se que assim é também no UML, pelo que se omitem as respectivas notações.
  10. Atenção! Assume-se que os vários tipos estão definidos em ficheiros diferentes, como é evidente! Só para poupar espaço é que se colocam as definições como se estivessem dentro do mesmo ficheiro. Daí que, neste e nos restantes diapositivos, haja apenas uma declaração de pacote mesmo quando há vários tipos.
  11. Existe dependência (uma classe usa outra), mas nenhuma é um atributo de outra.