Primeiros Contatos (não inclui método) Linguagem de Modelagem  Unificada
Cenário Até pouco tempo Muitas ferramentas de modelagem Muitos modelos Atualmente Muitas ferramentas de modelagem “ Uma linguagem de modelagem”
UML é uma linguagem para ... Artefatos do desenvolvimento de software
Contexto Adotada pela OMG desde 1997 (1.1) Versão mais recente UML 1.4 (09/2001) UML 2.0 (em andamento) Independente de processo UML Modelagem OO Método Linguagem
UML é formal? UML 1.4, página 63, setembro/2001 It is important to note that  the current description is not a completely formal specification  of the language because to do so would have added significant complexity without clear benetif. The structure of the language is nevertheless given a precise specification , which is required for tool interoperability. The dynamic semantics are described using  natural language , although in precise way so they can be easily understood.
Imprecisões da UML Guidelines: Include-Relationship  (Rational) The base use case has control of the relationship to the inclusion and can depend on the result of performing the inclusion, but  neither the base nor the inclusion may access each other´s attributes . The UML Reference Manual  (Amigos) The inclusion use case may access attributes  or operations of the base use case. “ A primary requirement for the future UML2 specification is the elimination of ambiguities by providing a precise definition of the semantics of each UML concept.” Evolution, not Revolution Bran Selic, Guus Ramackers, and Cris Kobryn CACM, november, 2002, pp. 70-72
Evolução
O que é OMG? Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard   IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft ObjecTime Oracle Ptech   OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys …
UML em exemplos
Classe
Classe Pessoa Atividade natural ao longo de um desenvolvimento.
Pessoa (UML e Java) Transformações podem ser necessárias. public class Pessoa { private String nome;  private int dia, mes, ano;  private char sexo;  private String cpf, id; public int obtemIdade() {   // Atualizar em 2004 return (2003 – ano); } }
Melhor que a anterior ... Código não depende de constante. import java.util.Calendar; public class Pessoa { private String nome;  private int dia, mes, ano;  private char sexo;  private String cpf, id; public int obtemIdade() {   Calendar c = Calendar.getInstance();   return (c.get(Calenadr.YEAR) - ano); } }
Diagrama de objetos
Diagrama de objetos
Diagrama de objetos
Diagrama de objetos
Diagrama de classes Modelo que contempla diagramas de objetos.
Diagrama de objetos Instância de cargo faz uso de uma instância de PessoaFisica e outra de PessoaJuridica como parâmetros em alguma operação. Em algum instante de tempo ...
Casos de Uso Funcionalidade da perspectiva de interação entre sistema e usuários Vendedores deslocam-se até os clientes (já  cadastrados) para recolher eventuais  pedidos. Negócio Requisitos de software
Casos de Uso (refinamento I) Vendedores deslocam-se até os clientes (já  cadastrados) para recolher eventuais  pedidos  de produtos também cadastrados . Negócio Requisitos de software
Casos de Uso (refinamento II) Vendedores deslocam-se até os clientes (já  cadastrados) para recolher eventuais  pedidos  de produtos também cadastrados . Deverá ser fornecida uma previsão de entrega. Negócio Requisitos de software
Modelagem do Negócio Efetuar pedido (negócio) Requisitos de software
Diagrama de seqüência
Diagrama de seqüência Cliente JDBC típico
Quiosque (ingressos) Ingressos podem ser obtidos através de um quiosque. Como a compra ocorre? Diagrama para descrever UC
Diagrama de colaboração Diagramas de seqüência e colaboração são equivalentes
Diagrama de colaboração if(f.isFile() && f.getCanonicalPath().endsWith(ext))  { owtd.doWork(f); System.out.println(f.toString()); }
O que é estado de objeto? Coleção de associações de um objeto
Objetos e Estados Ciclo de vida Estado civil
Diagrama de estados
Diagrama de estados
Diagrama de estados public class Porta { private boolean aberta;  public void fechar() {  aberta = false; } public void abrir() { aberta = true; } }
java.lang.Thread (estados)
Diagrama de atividades romântico
Diagramas de atividades Workflow
Associação Conexão semântica entre objetos de uma classe é representada por .... Casa Pessoa Morador
Associação Um jogo de tênis é jogado por 2 ou 4 pessoas Uma empresa emprega 1 ou mais pessoas
Relacionamento semântico Mulher Homem 1 1 1 1 Casamento
Relacionamento semântico
Casamento Casamento em data e local determinados Diagrama de objetos
Mais um exemplo
Relacionamento todo/parte
Relacionamento todo/parte
Relacionamento todo/parte
Agregação
Elemento é grupo ou pessoa Um grupo consiste em outros grupos e pessoas Agregação
Agregação
Associações
“ Não existe pessoa que não faça parte de um grupo” Como representar? Regras de negócio Toda pessoa faz parte de um grupo Grupo Pessoa Elemento Parte OCL (Object Constraint Language) Língua Portuguesa
Mais associações ... Uma ou mais enfermidades acometem um paciente que sofre uma ou mais enfermidades. Corridas de cavalo  (exigem 2 ou mais cavalos montados)
Dependências Tipo de relacionamento entre classes, pacotes, ...
Objeto composto
Restrições e comentários Restrição = condição que deve ser satisfeita Nota = comentário
Estereótipos Novo elemento definido com base em um elemento existente Não estende a estrutura Estereótipo = estende a semântica da UML
Estereótipos Estereótipos para aplicações Web
Componente Componente = parte física e substituível de um sistema
Componentes Teste.class  depende de Teste.java Componente = parte física e substituível de um sistema
Gerência de modelos I
Gerência de modelos II
Ferramentas ArgoUML http://argouml.tigris.org   ProxyDesigner www. proxysource .com FUJABA www. fujaba .de Delphia Object Modeler http: //www.si.fr.atosorigin.com/dom/english/   Unimodeler http://www.unimodeler.com DIA http://www.lysator.liu.se/~alla/dia/ UMLet http://qse.ifs.tuwien.ac. at/~auer/umlet / Análise
Considerações finais “ Nem todos precisam aprender e aplicar toda a UML, espera-se que usuários se especializem nas áreas que precisam para  realizar suas tarefas.” Architecting Systems with UML 2.0 Björkander & Kobryn, IEEE Software, august, 2003

Uml

  • 1.
    Primeiros Contatos (nãoinclui método) Linguagem de Modelagem Unificada
  • 2.
    Cenário Até poucotempo Muitas ferramentas de modelagem Muitos modelos Atualmente Muitas ferramentas de modelagem “ Uma linguagem de modelagem”
  • 3.
    UML é umalinguagem para ... Artefatos do desenvolvimento de software
  • 4.
    Contexto Adotada pelaOMG desde 1997 (1.1) Versão mais recente UML 1.4 (09/2001) UML 2.0 (em andamento) Independente de processo UML Modelagem OO Método Linguagem
  • 5.
    UML é formal?UML 1.4, página 63, setembro/2001 It is important to note that the current description is not a completely formal specification of the language because to do so would have added significant complexity without clear benetif. The structure of the language is nevertheless given a precise specification , which is required for tool interoperability. The dynamic semantics are described using natural language , although in precise way so they can be easily understood.
  • 6.
    Imprecisões da UMLGuidelines: Include-Relationship (Rational) The base use case has control of the relationship to the inclusion and can depend on the result of performing the inclusion, but neither the base nor the inclusion may access each other´s attributes . The UML Reference Manual (Amigos) The inclusion use case may access attributes or operations of the base use case. “ A primary requirement for the future UML2 specification is the elimination of ambiguities by providing a precise definition of the semantics of each UML concept.” Evolution, not Revolution Bran Selic, Guus Ramackers, and Cris Kobryn CACM, november, 2002, pp. 70-72
  • 7.
  • 8.
    O que éOMG? Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys …
  • 9.
  • 10.
  • 11.
    Classe Pessoa Atividadenatural ao longo de um desenvolvimento.
  • 12.
    Pessoa (UML eJava) Transformações podem ser necessárias. public class Pessoa { private String nome; private int dia, mes, ano; private char sexo; private String cpf, id; public int obtemIdade() { // Atualizar em 2004 return (2003 – ano); } }
  • 13.
    Melhor que aanterior ... Código não depende de constante. import java.util.Calendar; public class Pessoa { private String nome; private int dia, mes, ano; private char sexo; private String cpf, id; public int obtemIdade() { Calendar c = Calendar.getInstance(); return (c.get(Calenadr.YEAR) - ano); } }
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    Diagrama de classesModelo que contempla diagramas de objetos.
  • 19.
    Diagrama de objetosInstância de cargo faz uso de uma instância de PessoaFisica e outra de PessoaJuridica como parâmetros em alguma operação. Em algum instante de tempo ...
  • 20.
    Casos de UsoFuncionalidade da perspectiva de interação entre sistema e usuários Vendedores deslocam-se até os clientes (já cadastrados) para recolher eventuais pedidos. Negócio Requisitos de software
  • 21.
    Casos de Uso(refinamento I) Vendedores deslocam-se até os clientes (já cadastrados) para recolher eventuais pedidos de produtos também cadastrados . Negócio Requisitos de software
  • 22.
    Casos de Uso(refinamento II) Vendedores deslocam-se até os clientes (já cadastrados) para recolher eventuais pedidos de produtos também cadastrados . Deverá ser fornecida uma previsão de entrega. Negócio Requisitos de software
  • 23.
    Modelagem do NegócioEfetuar pedido (negócio) Requisitos de software
  • 24.
  • 25.
    Diagrama de seqüênciaCliente JDBC típico
  • 26.
    Quiosque (ingressos) Ingressospodem ser obtidos através de um quiosque. Como a compra ocorre? Diagrama para descrever UC
  • 27.
    Diagrama de colaboraçãoDiagramas de seqüência e colaboração são equivalentes
  • 28.
    Diagrama de colaboraçãoif(f.isFile() && f.getCanonicalPath().endsWith(ext)) { owtd.doWork(f); System.out.println(f.toString()); }
  • 29.
    O que éestado de objeto? Coleção de associações de um objeto
  • 30.
    Objetos e EstadosCiclo de vida Estado civil
  • 31.
  • 32.
  • 33.
    Diagrama de estadospublic class Porta { private boolean aberta; public void fechar() { aberta = false; } public void abrir() { aberta = true; } }
  • 34.
  • 35.
  • 36.
  • 37.
    Associação Conexão semânticaentre objetos de uma classe é representada por .... Casa Pessoa Morador
  • 38.
    Associação Um jogode tênis é jogado por 2 ou 4 pessoas Uma empresa emprega 1 ou mais pessoas
  • 39.
    Relacionamento semântico MulherHomem 1 1 1 1 Casamento
  • 40.
  • 41.
    Casamento Casamento emdata e local determinados Diagrama de objetos
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
    Elemento é grupoou pessoa Um grupo consiste em outros grupos e pessoas Agregação
  • 48.
  • 49.
  • 50.
    “ Não existepessoa que não faça parte de um grupo” Como representar? Regras de negócio Toda pessoa faz parte de um grupo Grupo Pessoa Elemento Parte OCL (Object Constraint Language) Língua Portuguesa
  • 51.
    Mais associações ...Uma ou mais enfermidades acometem um paciente que sofre uma ou mais enfermidades. Corridas de cavalo (exigem 2 ou mais cavalos montados)
  • 52.
    Dependências Tipo derelacionamento entre classes, pacotes, ...
  • 53.
  • 54.
    Restrições e comentáriosRestrição = condição que deve ser satisfeita Nota = comentário
  • 55.
    Estereótipos Novo elementodefinido com base em um elemento existente Não estende a estrutura Estereótipo = estende a semântica da UML
  • 56.
  • 57.
    Componente Componente =parte física e substituível de um sistema
  • 58.
    Componentes Teste.class depende de Teste.java Componente = parte física e substituível de um sistema
  • 59.
  • 60.
  • 61.
    Ferramentas ArgoUML http://argouml.tigris.org ProxyDesigner www. proxysource .com FUJABA www. fujaba .de Delphia Object Modeler http: //www.si.fr.atosorigin.com/dom/english/ Unimodeler http://www.unimodeler.com DIA http://www.lysator.liu.se/~alla/dia/ UMLet http://qse.ifs.tuwien.ac. at/~auer/umlet / Análise
  • 62.
    Considerações finais “Nem todos precisam aprender e aplicar toda a UML, espera-se que usuários se especializem nas áreas que precisam para realizar suas tarefas.” Architecting Systems with UML 2.0 Björkander & Kobryn, IEEE Software, august, 2003

Notas do Editor

  • #45 Se existe um curso de especialização, então existe pelo menos uma disciplina. Se existe uma disciplina, então existe um curso de especialização do qual faz parte. Não existe disciplina sem estar associada a curso de especialização.
  • #48 Um pesquisador existe independente de existir uma unidade acadêmica do qual faz parte.
  • #50 Na UML, os diagramas de seqüência e colaboração são utilizados para ilustrar a troca de mensagens entre objetos.
  • #51 Um pesquisador existe independente de existir uma unidade acadêmica do qual faz parte.