Análise e Concepção de Sistemas
de Informação
Unified Modeling Language (UML)
- Introdução -
Alberto Manuel Rodrigues da Silva
Prof. DEI/IST/UTL
Introdução ao UML

Contexto Histórico

Âmbito

Visão Global

Estrutura de Conceitos

Mecanismos Comuns

Tipos de Dados
ACSI/UML-Intro, Copyright, Alberto Silva
2
Introdução - Contexto Histórico
ACSI/UML-Intro, Copyright, Alberto Silva
3
Introdução - Contribuições para o UML
Booch
Rumbaugh
Meyer
Pré e Pós Condições
Harel
Diagramas de Estado
Gamma, et al.
Frameworks, patterns,
nodes
Shlaer-Mellor
Ciclos de vida dos
objectos
ACSI/UML-Intro, Copyright, Alberto Silva
Jacobson
Fusion
Descrição operações
Numeração mensagens
Wirfs-Brock
Responsabilidades
Odell
Classificação
4
Introdução - Âmbito
UML não é:
–
–
–
–
Uma metodologia
Um processo de desenvolvimento de software
Dependente de ferramentas CASE
Dependente do domínio de aplicação
O UML é uma linguagem para:
– visualização
– especificação
– construção
– documentação
dos artefactos de um sistema
ACSI/UML-Intro, Copyright, Alberto Silva
5
Introdução - Âmbito
O UML apresenta as particularidades principais:




Semântica e notação para tratar um grande número
de tópicos actuais de modelação.
Semântica para tratar tópicos de modelação futura,
relacionados em particular com a tecnologia de
componentes, computação distribuída, frameworks e
Internet.
Mecanismos de extensão de modo que futuras
aproximações e notações de modelação possam
continuar a ser desenvolvidas sobre o UML.
Semântica e sintaxe para facilitar a troca de modelos
entre distintas ferramentas.
ACSI/UML-Intro, Copyright, Alberto Silva
6
Introdução - Âmbito
Novos elementos introduzidos no UML...









Mecanismos de extensão
Elementos para modelar processos e threads
Elementos para modelar distribuição e concorrência
Padrões de desenho e colaborações
Diagramas de actividade (para modelação de
processos de negócio)
Refinamento (para tratar relações entre diferentes
níveis de abstracção)
Interfaces e componentes
Linguagem de restrições (Object Contraint Language)
Semântica de acções (Action Semantics) associada à
visão do UML executável (xUML)
ACSI/UML-Intro, Copyright, Alberto Silva
7
Introdução - Âmbito
Benefícios que se obtêm com o UML...

Terminam as diferenças, geralmente
inconsequentes, entre as linguagens de
modelação dos anteriores métodos

Unifica as distintas perspectivas entre
diferentes tipos de sistemas (e.g., negócio vs.
software), fases de um processo e conceitos
internos.
ACSI/UML-Intro, Copyright, Alberto Silva
8
Introdução - Visão Global
Um sistema é melhor representado segundo diferentes
modelos, visões, facetas ou projecções, complementares.
visão
B
visão
A
UoD
visão
C
Qual é, dos 4 Princípios de Modelação do Booch?
ACSI/UML-Intro, Copyright, Alberto Silva
9
A Estrutura de Conceitos do UML
“Elementos”
Relações (relacionam “elementos”)
Diagramas (agrupam “elementos”)
ACSI/UML-Intro, Copyright, Alberto Silva
10
A EC do UML : Elementos

Elementos de Estrutura

Elementos de Comportamento

Elementos de Agrupamento

Elementos de Anotação
ACSI/UML-Intro, Copyright, Alberto Silva
11
A EC do UML : Elementos
Elementos de Estrutura
ACSI/UML-Intro, Copyright, Alberto Silva
12
A EC do UML : Elementos
ACSI/UML-Intro, Copyright, Alberto Silva
13
A EC do UML : Relações
Tipos de Relações
ACSI/UML-Intro, Copyright, Alberto Silva
14
A EC do UML : Diagramas
Visão Funcional

Diagrama de casos de
utilização

Diagrama de actividade
Visão Dinâmica

Diagrama de máquina de
estados (state machine
diagram)

Diagrama de interacção
– Diagrama de sequência
– Diagrama de comunicação
– Diagrama de visão geral da
interacção (interaction
overview diagram)
– Diagrama temporal (timing
diagram)
ACSI/UML-Intro, Copyright, Alberto Silva
Visão Estática ou Estrutural

Diagrama de pacotes

Diagrama de classes

Diagrama de objectos

Diagrama de estrutura
composta (composite
structure diagram)


Diagrama de componentes
Diagrama de instalação
15
A EC do UML : Exemplos
Diagrama de Casos de Utilização: representa a visão do sistema
na perspectiva dos seus utilizadores
(e.g., UAnónimo no contexto do WebGTTI)
ACSI/UML-Intro, Copyright, Alberto Silva
16
A EC do UML : Exemplos
Diagrama de Classes: especifica a estrutura estática de um
sistema segundo a abordagem baseada em objectos
(e.g., classes do WebGTTI)
ACSI/UML-Intro, Copyright, Alberto Silva
17
A EC do UML : Exemplos
Diagrama de Sequências:
especifica a dinâmica ou o
comportamento de um
sistema
(e.g., registo de membro
no WebGTTI)
ACSI/UML-Intro, Copyright, Alberto Silva
18
A EC do UML : Exemplos
Exemplo de um
Diagrama de
Actividades
(processo de negócio
“Fazer Proposta”)
ACSI/UML-Intro, Copyright, Alberto Silva
19
A EC do UML : Exemplos
Diagrama de Distribuição
(e.g., arquitectura hardware de um sistema distribuído)
ACSI/UML-Intro, Copyright, Alberto Silva
20
A EC do UML : Exemplos
Diagrama de (Transição de) Estados
(e.g., da classe “Termo” do WebGTTI)
ACSI/UML-Intro, Copyright, Alberto Silva
21
UML – Mecanismos Comuns

Notas ou Anotações

Mecanismos de extensão
O UML contém um conjunto de mecanismos
comuns que são aplicados de modo consistente ao
longo dos seus diferentes diagramas
ACSI/UML-Intro, Copyright, Alberto Silva
22
Mecanismos Comuns - Notas
Uma “nota” ilustra um comentário e não tem qualquer impacto
semântico, no sentido que o seu conteúdo não altera o
significado do modelo no qual ela se encontra.
Por isso é normal usarem-se “notas” para se especificar:
requisitos, restrições, observações, revisões, explicações.
O AgentManager tem de
criar os restantes
agentes da aplicação.
Ver htto://www.objectspace.com para
mais informação sobre o ORB Voyager
Alb 2001/6/12
ACSI/UML-Intro, Copyright, Alberto Silva
23
Mecanismos Comuns - Notas

Observações:

Localização: Notas são colocadas graficamente perto
dos elementos que descrevem

Visibilidade: Podem-se esconder ou tornar visíveis

Extensão: Usar referências (e.g., nomes de docs, ou
URL) caso se pretenda um comentário mais extenso.

Evolução: Há medida que o modelo evoluí as notas
antigas (que deixem de ter sentido) devem ser
eliminadas
ACSI/UML-Intro, Copyright, Alberto Silva
24
Mecanismos Comuns - Estereótipos

Um estereótipo é um metatipo



permite definir novos tipos de “coisas” sem se alterar o
metamodelo do UML
i.e., permite estender o UML
Exemplos

Na modelação de processos de negócio:
– «trabalhador», «documento», «política»

Na modelação de aplicações específicas:
– «interface», «controlo», e «entidade»
ACSI/UML-Intro, Copyright, Alberto Silva
25
Mecanismos Comuns - Estereótipos

Um estereótipo define um novo elemento através de:



propriedades (pode providenciar o seu próprio conjunto de marcas)
semântica (pode providenciar a sua próprias restrições)
notação (pode providenciar o seu próprio icon)
ACSI/UML-Intro, Copyright, Alberto Silva
26
Mecanismos Comuns - Estereótipos



Cada elemento do modelo pode ter no máximo um estereótipo.
Podem ser utilizados para:
– alterar o comportamento da geração de código
– facilitar a compreensão de um modelo
Estereótipos pré-definidos:
– <<actor>>, <<entity>>, <<boundary>>, <<extends>>, ...
<<Interface>>
<<Control>>
<<communicates>>
<<Entity>>
ACSI/UML-Intro, Copyright, Alberto Silva
27
Mecanismos Comuns - Marcas com Valor
Tagged value
Cada “elemento” em UML tem um conjunto de propriedades. Ex.:


classes têm: i) nome, ii) atributos, e iii) operações
associações têm: i) nome, e ii) 2 ou mais participantes
Com estereotipos introduz-se novas “coisas” ao UML
Com marcas introduz-se novas propriedades
ACSI/UML-Intro, Copyright, Alberto Silva
28
Mecanismos Comuns - Marcas com Valor

Uma marca com valor não é um atributo de classe!


Deve ser entendido como metadata, pois o seu valor aplica-se ao próprio
elemento e não às suas instâncias.
Aplicações Usuais:



geração de código: Ex: {language=Java}, {linker=Blinker}
produção automática de documentação
gestão de configurações: Ex: {autor=AMRS}, {data=...}
ACSI/UML-Intro, Copyright, Alberto Silva
29
Mecanismos Comuns - Restrições (Constraints)
Qualquer “coisa” em UML tem uma semântica…


As Restrições permitem adicionar ou alterar a
semântica
Uma restrição específica condições que têm de ser
validadas para que o modelo seja “bem definido”.
Portfolio
restrição entre
vários elementos
Empresa
{secure-access}
0..1
ContaBancária
restrição simples
ACSI/UML-Intro, Copyright, Alberto Silva
{or}
restrição formal
usando OCL
homem
Pessoa
género:{m, f}
0..1
mulher
{self.mulher.genero=“f” and
self.marido.genero=“m”}
30
Mecanismos Comuns - Restrições (Constraints)
Como especificar que uma pessoa pode estar casada apenas
com outra pessoa do sexo oposto?
0..1
homem
Pessoa
género:{m, f}
{self.mulher.genero=“f” and
self.marido.genero=“m”}
0..1
mulher
restrição formal
usando OCL
OCL (Object Constraint Language) é uma linguagem para
especificação formal de restrições; é uma parte definida no
UML
ACSI/UML-Intro, Copyright, Alberto Silva
31
Mecanismos Comuns - Restrições (Constraints)
Como especificar que uma pessoa, para ser gestor de
um departamento tem também de ser, necessariamente,
membro desse departamento?
Departamento
*
*
{subset}
membro
1..*
1
gestor
Pessoa
ACSI/UML-Intro, Copyright, Alberto Silva
32
Mecanismos Comuns - Sugestões
Ao estender um modelo com estereótipos, valores
com marcas, ou restrições, deve ter em conta as
seguintes sugestões:

Definir um número reduzido desses elementos.

Escolher nomes curtos e com significado evidente para
estereótipos e marcas.

Sempre que a precisão puder ser relaxada usar texto
livre para especificação das restrições. Caso contrário,
usar OCL.
ACSI/UML-Intro, Copyright, Alberto Silva
33
Tipos de Dados

Um tipo de dado é uma abstracção utilizada de forma implícita
no UML.

Os tipos de dados não são elementos do modelo e por
conseguinte não lhe são associados estereótipos, marcas com
valor ou restrições.

Um tipo primitivo é um tipo de dados que não tem uma
subestrutura.

Exemplos de tipos de dados:
– Primitivos: Integer, String, Time
– Enumerados: Boolean, AggregationKind, VisibilityKind
– Outros: Expression, Mapping, Name, Multiplicity
ACSI/UML-Intro, Copyright, Alberto Silva
34
Tipos de Dados
ACSI/UML-Intro, Copyright, Alberto Silva
35
Download

UML