Este documento apresenta os principais conceitos da Linguagem de Modelagem Unificada (UML). Resume os principais métodos de engenharia de software orientados a objetos que levaram ao desenvolvimento da UML e descreve os tipos de modelos e diagramas que compõem a UML, incluindo classes, sequências, casos de uso e máquinas de estados.
1. Engenharia de Software
Unidade IV – A Linguagem UML
Objetivo: Visualizar a simbologia e os elementos da
Linguagem de Modelagem Unificada (UML) bem como
os principais diagramas
Prof. Nécio de Lima Veras
3. Introdução – Métodos Orientado a
Objetos
• Booch (Grady Booch):
1. Um objeto = um modelo do mundo real com
dados e habilidades;
2. Desenho estruturado e OO;
Estruturado: Separa o sistema em módulos;
OO: Problema com os objetos que existem em um
domínio de problema;
4. Introdução – Métodos Orientado a
Objetos
• OMT (Rumbaugh): Técnica de Modelagem de
Objetos
1. Desenvolvido pela GE Corporation;
2. Baseado na modelagem semântica de dados;
3. Suporta:
• Atributos e relacionamentos (modelagem de dados);
• composição/agregação (objetos); e
• Herança.
4. Ponto forte: Notação utilizada (OMT reformula E-R);
5. Ponto fraco: Sem notação específica para representar
troca de mensagens entre os objetos;
5. Introdução – Métodos Orientado a
Objetos
• OOSE (Jacobson): Object-Oriented Software
Engineering;
1. A diferença em relação aos outros métodos é
o seu foco:
– Casos de uso (domínio do problema e interfaces);
– Categorização de pessoas e equipamentos,
dependendo do seu papel no sistema;
2. Ponto fraco: Notação simplista para objetos
de domínios (objetos = círculos);
3. Ponto forte: Foi adaptado a engenharia de
negócios (idéias usadas para modelar e
melhorar processos);
6. Introdução – Métodos Orientado a
Objetos
• Shlaer/Mellor (Sally Shlaer e Stephen
Mellor):
1. Pode utilizar ferramentas tradicionais (DFD);
2. Pode ser usado quando a organização decide
manter suas antigas ferramentas de trabalho,
enquanto avalia outra (OO);
3. Utilizava diagrama de ER e transição de estados;
4. Recebeu muitas críticas por:
– Não fornecer esquema de tratamento de mensagens e
encapsulamento;
– pobreza no suporte a conceitos e herança;
7. Introdução – Métodos Orientado a
Objetos
• Coad/Yourdon (Peter Coad e Ed
Yourdon):
1. Enfoque simples e eficaz;
2. Divide a análise em classes e objetos;
3. Objetos = Abstrações do mundo real;
4. Classes = Coleção de um ou mais
objetos com atributos e serviços;
8. Introdução – Métodos Orientado a
Objetos
Outros métodos:
Embley/Kurtz;
Martin/Odell;
Wirfs-Brock;
UML
Leitura recomendada:
UML Essencial: Um breve guia para a
linguagem-padrão de modelagem de
objetos. Martin Fowler, Bookman, 3a Edição,
2004.
9. UML
O que é UML?
Linguagem de modelagem unificada;
Projetada para descrever modelos de
sistemas (do mundo real e de softwares);
Baseada em Objetos;
Padrão
É hoje um padrão consolidado (adotada pela
indústria de hardware e software);
Tem evoluído bastante durante os últimos
anos;
10. Como surgiu UML?
Inicio-se com um esforço de Grady Booch
e Jim Raumbaugh em 1994 para
combinar seus métodos populares (Booch
e OMT);
Posteriormente, juntou-se a eles Ivar
Jacobson (OOSE);
Assim originou-se o termo “UNIFICADA”;
Em 1997, foi submetida pela OMG como
candidata a se tornar uma linguagem e
uma notação padrão de modelagem;
11. Como surgiu UML?(cont.)
A OMG aceitou e assim a UML tem recebido a
aprovação geral (indústrias de hardware e software);
Muitas empreses de desenvolvimento de software e
vendedores de ferramentas CASE adotaram a UML;
Assim, a UML está acessível a todos, sendo uma
linguagem padrão que é elegante, expressiva e
flexível;
Leitura complementar sobre as especificações da
notação UML:
www.uml.org
12. Utilidade da UML
É independente do processo de
desenvolvimento de software;
Finalidade principal: Ser uma linguagem
para modelagem e não um guia de
desenvolvimento de software, como por
exemplo:
Como fazer análise e projeto OO;
Qual o processo (etapas, workflows) a seguir;
Não define um ciclo padrão de
desenvolvimento;
13. Desenvolvimento da UML
Os esforço iniciais dos autores foram:
Identificar e definir a semântica dos conceitos
fundamentais;
Criar uma representação gráfica, cuja sintaxe
pudesse ser bem simples, intuitiva e
expressiva;
Foi dividida em subconjuntos da UML,definida
como meta-modelagem;
Vantagem: Permitir a classificação dos
conceitos por nível de abstração,
complexidade e pelo domínio da aplicação;
14. Desenvolvimento da UML(cont.)
Um meta-modelo descreve formalmente os
elementos do modelo;
O modelo é uma descrição abstrata de um sistema
ou processo;
A forma do modelo depende do meta-modelo;
Cada meta-modelo define elementos do modelo e
suas regras para composição;
O conteúdo do modelo depende do problema;
É a unidade básica do desenvolvimento e é
construído por elementos com suas diferentes
representações;
15. Tipo de Modelos em UML
A UML (v2) define diferentes tipos de modelos
para representar sistemas. Exemplos:
Classes: Captura a estrutura estática;
Estados: Expressa o comportamento dinâmico dos
objetos;
Casos de Uso: Descreve os requerimentos dos
usuários;
Interações: Representa os cenários do fluxo de
mensagens;
Implementação: Mostra as unidades trabalhando;
Implantação: Fornece os detalhes pertencentes ao
processo de alocação de recursos;
16. Tipos de Diagramas em UML
• Um modelo pode ser constituído por um ou mais
diagramas correspondentes;
• A UML 2 define 13 diferentes tipos de diagramas
divididos em grupos:
17. Tipos de Diagramas em UML
1. Diagrama de classes;
Descreve os tipos de objetos em um
sistema e os vários tipos de relações
estáticas entre eles;
Demonstra os atributos e métodos de
uma classe e a com que os objetos
estão conectados;
18. Tipos de Diagramas em UML
2. Diagrama de seqüências:
Mostra as interações entre objetos organizados em uma
seqüência de tempo, ilustrando as mensagens trocadas;
3. Diagrama de Comunicações:
Mostra as interações organizadas em torno dos “roles” –
objetos ou links;
4. Diagrama de Objetos:
Mostra objetos e suas relações em um certo ponto no
tempo;
É considerado um caso especial do diagrama de classes
em que instâncias e classes podem ser mostradas;
19. Tipos de Diagramas em UML
5. Diagrama de Máquina de Estados:
Mostra uma máquina de estados, incluindo estados
simples, transições e compostos;
Descreve todos os possíveis estados que este objeto
pode assumir;
6. Diagrama de Atividades:
Descreve uma seqüência de atividades, com suporte
de comportamento condicional e paralelo;
7. Diagrama de Casos de Uso:
Mostra seqüências de ações entre atores e “uses
cases”;
20. Tipos de Diagramas em UML
8. Diagrama de Componentes:
Mostra dependências entre componentes de software –
incluindo componentes de código-fonte, código objeto e
executáveis;
9. Diagrama de Implantação:
Mostra as relações físicas entre componentes de hardware e
software;
10. Diagrama de Estrutura Composta:
Descreve a estrutura interna de uma classe ou componente,
além de permitir a descrição de colaboradores;
11. Diagrama de Pacotes:
Representa um subsistema englobado por um sistema de forma
a determinar as partes que o compõem.
21. Tipos de Diagramas em UML
12. Diagrama de Interação Geral:
Uma variação do diagrama de atividades que fornece
uma visão geral do fluxo de informações;
13. Diagrama de Tempo:
Descreve uma mudança de estado ou condição de
instância, ou ainda, seu papel durante o tempo,
tipicamente, em resposta a eventos externos;
Assim, a UML fornece uma notação compreensível para
todo o ciclo de desenvolvimento OO;