O documento discute a linguagem de modelagem unificada (UML), incluindo sua evolução, ferramentas de modelagem e exemplos de diagramas UML como classe, sequência e atividades.
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
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 …
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); } }
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
“ 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)
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.