Este documento apresenta uma introdução aos principais métodos de desenvolvimento orientado a objetos e à Linguagem de Modelagem Unificada (UML). Discute os conceitos fundamentais da UML, sua história, utilidade e desenvolvimento. Também descreve os diferentes tipos de modelos e diagramas definidos pela UML para modelagem de sistemas.
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
A Linguagem UML
1. Análise de Sistemas
Unidade IV – A Linguagem UML
Objetivo: Conhecer a Linguagem de Modelagem Unificada (UML) e seus
diagramas Prof. Nécio de Lima Veras
3. Introdução – Métodos
Orientado a Objetos
Booch (Grady Booch):
Um objeto = um modelo do mundo real com
dados e habilidades;
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
Desenvolvido pela GE Corporation;
Baseado na modelagem semântica de dados;
Suporta:
Atributos e relacionamentos (modelagem de dados);
composição/agregação (objetos); e
Herança.
Ponto forte: Notação utilizada (OMT reformula E-R);
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;
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;
Ponto fraco: Notação simplista para
objetos de domínios (objetos =
círculos);
6. Introdução – Métodos
Orientado a Objetos
Shlaer/Mellor (Sally Shlaer e
Stephen Mellor):
Pode utilizar ferramentas tradicionais
(DFD);
Pode ser usado quando a organização
decide manter suas antigas ferramentas
de trabalho, enquanto avalia outra (OO);
Utilizava diagrama de ER e transição de
estados;
Recebeu muitas críticas por:
Não fornecer esquema de tratamento de
mensagens e encapsulamento;
7. Introdução – Métodos
Orientado a Objetos
Coad/Yourdon (Peter Coad e Ed
Yourdon):
Enfoque simples e eficaz;
Divide a análise em classes e objetos;
Objetos = Abstrações do mundo real;
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
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
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 é
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;
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:
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
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