Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão LOO - Linguagens Orientadas a Objetos 2 Histórico Histórico (cont.) A UML tem origem na compilação das melhores práticas de engenharia de software Começou em 1994 Grady Booch: Método de Booch Jim Rumbaugh: OMT - Object Modeling Technique Em 1995, Ivar Jacobson se juntou a eles OOSE - Object Oriented Software Enginnering A proposta ganhou parceiros como HP, Oracle, Microsoft, James Martin, Unisys, dentre muitos outros LOO - Linguagens Orientadas a Objetos 3 LOO - Linguagens Orientadas a Objetos 4
Histórico (cont.) Em Janeiro de 1997, foi lançada a UML 1.0 A OMG (Object Management Group), que é uma organização internacional que aprova padrões abertos para aplicações orientadas a objetos, demandava a definição de uma linguagem e notação de modelagem padronizada Em novembro de 1997 a OMG aprovou a UML Versão atual: 2.1.1 (www.uml.org) Definição UML significa Linguagem de Modelagem Unificada UML é uma linguagem para especificar, visualizar, construir e documentar os artefatos de sistemas de software (OMG) Pode ser usada com todos os tipos de processos, em todo o ciclo do desenvolvimento do software A UML é independente de linguagem de programação LOO - Linguagens Orientadas a Objetos 5 LOO - Linguagens Orientadas a Objetos 6 Definição (cont.) Definição (cont.) A UML não é: Um processo Uma metodologia Uma linguagem de programação Um conjunto de regras de negócio Um software A UML pode ser usada para: Mostrar os limites de um sistema e suas funções principais (Diagramas de Casos de Uso) Ilustrar as funções básicas do sistema (Diagramas de Interação) Representar a estrutura estática de sistemas (Diagramas de Classes) Modelar o comportamento de Objetos (Diagramas de Estado) LOO - Linguagens Orientadas a Objetos 7 LOO - Linguagens Orientadas a Objetos 8
Definição (cont.) Metodologia X Linguagem de Modelagem Metodologia descreve como modelar um software Linguagem de modelagem descreve como representar graficamente o projeto de um software Uma metodologia pode utilizar uma linguagem de modelagem Definição (cont.) Os diagramas da UML são divididos em três grupos: Estruturais Ex: Diagrama de Classes, Diagrama de Objetos Comportamentais Ex: Diagrama de Casos de Uso, Diagrama de Atividades Interação Ex: Diagrama de Seqüência, Diagrama de Colaboração LOO - Linguagens Orientadas a Objetos 9 LOO - Linguagens Orientadas a Objetos 10 Benefícios Notação Define um mapeamento da análise à implementação sem descartar o desenho Facilita os testes Define uma notação expressiva e consistente Facilita a comunicação entre as pessoas Classe Nome Atributos Operações Ajuda a apontar inconsistências e omissões Suporta o processo de desenvolvimento para grandes e pequenos sistemas LOO - Linguagens Orientadas a Objetos 11 LOO - Linguagens Orientadas a Objetos 12
Classe Abstrata Caracterizada pelo nome em itálico Não pode ser instanciada É possível também utilizar {abstract} após o nome Visibilidade dos métodos e atributos - private # protected + public LOO - Linguagens Orientadas a Objetos 13 LOO - Linguagens Orientadas a Objetos 14 Objeto Semelhante à classe Nome do objeto sublinhado joao : Aluno : Aluno Métodos omitidos Atributos podem exibir valor Nota Utilizada para documentar elementos Torna o modelo inteligível Ligada ao elemento por linha tracejada LOO - Linguagens Orientadas a Objetos 15 LOO - Linguagens Orientadas a Objetos 16
Estereótipos Estende o vocabulário da UML Palavra ou frase entre << >> Colocado acima ou ao lado de um elemento Relacionamentos Descrevem como as classes se interagem Conexão entre dois ou mais elementos Representando por linhas ou setas entre as classes Pode ser utilizado também em atributos ou operações LOO - Linguagens Orientadas a Objetos 17 LOO - Linguagens Orientadas a Objetos 18 Tipos de Relacionamentos Dependência Tipo de Relacionamentos (cont.) Dependência Associação Agregação Composição Generalização Quando um objeto depende da especificação de outro Se a especificação mudar, o objeto dependente deve ser atualizado Representado por uma seta tracejada LOO - Linguagens Orientadas a Objetos 19 LOO - Linguagens Orientadas a Objetos 20
Associação Associação - Papel Indica que um objeto contém outro Representa a navegação entre os objetos Representado por uma linha contínua Sem seta: bidirecional Com seta: navegação em apenas uma direção Identifica o papel de cada classe na associação LOO - Linguagens Orientadas a Objetos 21 LOO - Linguagens Orientadas a Objetos 22 Associação - Multiplicidade Identifica quantos objetos podem tomar parte na instância de uma associação Notação 1 * 1..* x..y Valor Um Qualquer número Pelo menos um Qualquer quantidade entre x e y Associação - Multiplicidade (exemplo) Uma empresa deve ter pelo menos um funcionário e um funcionário deve pertencer a uma e apenas uma empresa LOO - Linguagens Orientadas a Objetos 23 LOO - Linguagens Orientadas a Objetos 24
Agregação Caso particular de associação Indica que uma das classes do relacionamento é uma parte, ou está contida em outra classe Palavras chaves usadas para identificar uma agregação (todo/parte): consiste em contém é parte de Agregação (exemplo) Um carro contém roda LOO - Linguagens Orientadas a Objetos 25 LOO - Linguagens Orientadas a Objetos 26 Composição Caso particular de associação Indica que uma das classes do relacionamento é uma parte, ou está contida em outra classe A parte é dependente do todo (todo/parte) Se o objeto da classe que contém a parte for destruído, os objetos da composição também serão destruídos Composição (exemplo) Um pedido contém itens de pedido LOO - Linguagens Orientadas a Objetos 27 LOO - Linguagens Orientadas a Objetos 28
Generalização Relacionamento entre um elemento mais geral e um outro mais específico Também é chamada de herança O elemento mais específico possui todas as características do elemento geral e ainda contém características particulares É representada através de uma linha contínua com uma seta fechada e vazada apontando para a classe mais genérica Generalização (exemplo) Uma pessoa pode ser física ou jurídica LOO - Linguagens Orientadas a Objetos 29 LOO - Linguagens Orientadas a Objetos 30 Diagrama de Classes Representa a estrutura estática das classes e seus respectivos relacionamentos Diagrama de Classes (cont.) Exemplo de uma locadora de veículos É o diagrama mais importante da UML Serve como base para construção de outros diagramas Diagrama de Objetos, Diagramas de Interação etc. LOO - Linguagens Orientadas a Objetos 31 LOO - Linguagens Orientadas a Objetos 32
Diagramas de Interação Modelam as interações entre os objetos Modelam aspectos dinâmicos do sistema Dois tipos: Diagrama de Colaboração Diagrama de Seqüência Diagramas de Interação (cont.) Diagrama de Colaboração Representam as mensagens que os objetos enviam uns para os outros de acordo com seus relacionamentos Uma mensagem transporta a chamada de uma operação de um objeto para outro Cada mensagem pode estar associada a um número que indica a ordem com que a mensagem é executada LOO - Linguagens Orientadas a Objetos 33 LOO - Linguagens Orientadas a Objetos 34 Diagramas de Interação (cont.) Diagrama de Colaboração (exemplo) LOO - Linguagens Orientadas a Objetos 35 Diagramas de Interação (cont.) Diagrama de Seqüência Modela a seqüência de eventos em um cenário Mostra uma interação organizada em uma seqüência de tempo entre objetos participantes de uma operação e todas as trocas de mensagens Dimensão Vertical: tempo Dimensão Horizontal: objetos envolvidos LOO - Linguagens Orientadas a Objetos 36
Diagramas de Interação (cont.) Diagrama de Seqüência (exemplo) Conclusões A modelagem é fundamental para o sucesso de um processo de software A UML deve estar incorporada ao cotidiano do desenvolvedor de software O uso de uma ferramenta CASE é um fator crítico para usufruir o que a UML tem a oferecer Modelar usando a UML requer quebra de paradigma LOO - Linguagens Orientadas a Objetos 37 LOO - Linguagens Orientadas a Objetos 38 Revisão 1. O que é UML? 2. Qual a diferença entre uma metodologia e uma linguagem de modelagem? 3. Como definir a visibilidade de atributos na UML? 4. Como representar uma classe ou método abstrato? 5. Explique os relacionamentos de agregação, composição e associação. Revisão (cont.) 6. O que multiplicidade? Exemplifique. 7. Cite e explique quais são os dois diagramas de interação da UML? 8. Cite os benefício de usar a UML. 9. O que representa o diagrama de classe. Entregar os exercícios até 10/03/2007 LOO - Linguagens Orientadas a Objetos 39 LOO - Linguagens Orientadas a Objetos 40
Dúvidas LOO - Linguagens Orientadas a Objetos 41