Uml

2.469 visualizações

Publicada em

Publicada em: Negócios
  • Seja o primeiro a comentar

Uml

  1. 1. Primeiros Contatos (não inclui método) Linguagem de Modelagem Unificada
  2. 2. Cenário <ul><li>Até pouco tempo </li></ul><ul><ul><li>Muitas ferramentas de modelagem </li></ul></ul><ul><ul><li>Muitos modelos </li></ul></ul><ul><li>Atualmente </li></ul><ul><ul><li>Muitas ferramentas de modelagem </li></ul></ul><ul><ul><li>“ Uma linguagem de modelagem” </li></ul></ul>
  3. 3. UML é uma linguagem para ... Artefatos do desenvolvimento de software
  4. 4. Contexto <ul><li>Adotada pela OMG desde 1997 (1.1) </li></ul><ul><li>Versão mais recente UML 1.4 (09/2001) </li></ul><ul><li>UML 2.0 (em andamento) </li></ul><ul><li>Independente de processo </li></ul>UML Modelagem OO Método Linguagem
  5. 5. UML é formal? <ul><li>UML 1.4, página 63, setembro/2001 </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  6. 6. Imprecisões da UML <ul><li>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 . </li></ul><ul><li>The UML Reference Manual (Amigos) The inclusion use case may access attributes or operations of the base use case. </li></ul>“ 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. 7. Evolução
  8. 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. 9. UML em exemplos
  10. 10. Classe
  11. 11. Classe Pessoa Atividade natural ao longo de um desenvolvimento.
  12. 12. 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); } }
  13. 13. 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); } }
  14. 14. Diagrama de objetos
  15. 15. Diagrama de objetos
  16. 16. Diagrama de objetos
  17. 17. Diagrama de objetos
  18. 18. Diagrama de classes Modelo que contempla diagramas de objetos.
  19. 19. 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 ...
  20. 20. Casos de Uso <ul><li>Funcionalidade da perspectiva de interação entre sistema e usuários </li></ul>Vendedores deslocam-se até os clientes (já cadastrados) para recolher eventuais pedidos. Negócio Requisitos de software
  21. 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. 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. 23. Modelagem do Negócio Efetuar pedido (negócio) Requisitos de software
  24. 24. Diagrama de seqüência
  25. 25. Diagrama de seqüência <ul><li>Cliente JDBC típico </li></ul>
  26. 26. Quiosque (ingressos) Ingressos podem ser obtidos através de um quiosque. Como a compra ocorre? Diagrama para descrever UC
  27. 27. Diagrama de colaboração Diagramas de seqüência e colaboração são equivalentes
  28. 28. Diagrama de colaboração if(f.isFile() && f.getCanonicalPath().endsWith(ext)) { owtd.doWork(f); System.out.println(f.toString()); }
  29. 29. O que é estado de objeto? <ul><li>Coleção de associações de um objeto </li></ul>
  30. 30. Objetos e Estados Ciclo de vida Estado civil
  31. 31. Diagrama de estados
  32. 32. Diagrama de estados
  33. 33. Diagrama de estados public class Porta { private boolean aberta; public void fechar() { aberta = false; } public void abrir() { aberta = true; } }
  34. 34. java.lang.Thread (estados)
  35. 35. Diagrama de atividades romântico
  36. 36. Diagramas de atividades Workflow
  37. 37. Associação Conexão semântica entre objetos de uma classe é representada por .... Casa Pessoa Morador
  38. 38. Associação <ul><li>Um jogo de tênis é jogado por 2 ou 4 pessoas </li></ul><ul><li>Uma empresa emprega 1 ou mais pessoas </li></ul>
  39. 39. Relacionamento semântico Mulher Homem 1 1 1 1 Casamento
  40. 40. Relacionamento semântico
  41. 41. <ul><li>Casamento </li></ul><ul><li>Casamento em data e local determinados </li></ul>Diagrama de objetos
  42. 42. Mais um exemplo
  43. 43. Relacionamento todo/parte
  44. 44. Relacionamento todo/parte
  45. 45. Relacionamento todo/parte
  46. 46. Agregação
  47. 47. <ul><li>Elemento é grupo ou pessoa </li></ul><ul><li>Um grupo consiste em outros grupos e pessoas </li></ul>Agregação
  48. 48. Agregação
  49. 49. Associações
  50. 50. <ul><li>“ Não existe pessoa que não </li></ul><ul><li>faça parte de um grupo” </li></ul><ul><li>Como representar? </li></ul>Regras de negócio Toda pessoa faz parte de um grupo Grupo Pessoa Elemento Parte OCL (Object Constraint Language) Língua Portuguesa
  51. 51. Mais associações ... <ul><li>Uma ou mais enfermidades acometem um paciente que sofre uma ou mais enfermidades. </li></ul><ul><li>Corridas de cavalo (exigem 2 ou mais cavalos montados) </li></ul>
  52. 52. Dependências Tipo de relacionamento entre classes, pacotes, ...
  53. 53. Objeto composto
  54. 54. Restrições e comentários Restrição = condição que deve ser satisfeita Nota = comentário
  55. 55. Estereótipos <ul><li>Novo elemento definido com base em um elemento existente </li></ul><ul><li>Não estende a estrutura </li></ul>Estereótipo = estende a semântica da UML
  56. 56. Estereótipos Estereótipos para aplicações Web
  57. 57. Componente Componente = parte física e substituível de um sistema
  58. 58. Componentes Teste.class depende de Teste.java Componente = parte física e substituível de um sistema
  59. 59. Gerência de modelos I
  60. 60. Gerência de modelos II
  61. 61. Ferramentas <ul><li>ArgoUML http://argouml.tigris.org </li></ul><ul><li>ProxyDesigner www. proxysource .com </li></ul><ul><li>FUJABA www. fujaba .de </li></ul><ul><li>Delphia Object Modeler http: //www.si.fr.atosorigin.com/dom/english/ </li></ul><ul><li>Unimodeler http://www.unimodeler.com </li></ul><ul><li>DIA http://www.lysator.liu.se/~alla/dia/ </li></ul><ul><li>UMLet http://qse.ifs.tuwien.ac. at/~auer/umlet / </li></ul>Análise
  62. 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

×