Análise e Concepção de Sistemas
de Informação
Unified Modeling Language (UML)
- Introdução -
Alberto Manuel Rodrigues da Silva / José Borbinha
UML – Unified Modeling Language: Introdução

Contexto Histórico

Âmbito

Visão Global

Estrutura de Conceitos

Mecanismos de Extensão

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 a 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
UML é uma linguagem (Unified Modeling Language)
para:
– visualização
– especificação
– construção
– documentação
... dos artefactos de um sistema computacional.
ACSI/UML-Intro, Copyright, Alberto Silva
5
Introdução - Âmbito

A UML apresenta como particularidades
principais:
– Semântica e notação para tratar um grande
número de tópicos actuais de modelação.
– 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
Benefícios que se obtêm com a 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
7
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
ACSI/UML-Intro, Copyright, Alberto Silva
visão
C
8
A Estrutura de Conceitos da UML

“Elementos”
–
–
–
–

Relações (relacionam “elementos”)
–
–
–
–

Estrutura
Comportamento
Agrupamento
Anotação
Estruturais ou de Associação
Especialização / Generalização
Realização
Dependência
Diagramas (agrupam “elementos”)
– Visão Funcional
– Visão Dinâmica
– Visão Estática / Estrutural
ACSI/UML-Intro, Copyright, Alberto Silva
9
A Estrutura de Conceitos da UML: Elementos
Estrutura
ACSI/UML-Intro, Copyright, Alberto Silva
10
A Estrutura de Conceitos da UML: Relações

Estruturais ou de Associação

Especialização / Generalização

Realização ou de Interface

Dependência
– Relações de ligação entre classes/objectos (Curso tem 20 Alunos;
Carro tem 1 Dono, Aluno frequenta 5 Cursos, ...)
– Relações de herança entre classes (Cliente é uma generalização de
Cliente VIP; Aluno Finalista é uma especialização de Aluno; ...)
– Relação em que se define uma interface assegurada por uma
entidade (método de uma classe, serviço de um componente ou
subsistema, ...)
– Relações gerais, entre quaisquer elementos do modelo, destinadas
apenas a registar o facto de a modelação ou concretização de um
elemento depende do outro...
ACSI/UML-Intro, Copyright, Alberto Silva
11
A Estrutura de Conceitos da 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)
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
Referência extra recomendada:
http://www.agilemodeling.com/essays/umlDiagrams.htm
ACSI/UML-Intro, Copyright, Alberto Silva
12
A Estrutura de Conceitos da UML: Exemplos
Diagrama de Casos de Utilização: representa a visão funcional do
sistema na perspectiva dos seus utilizadores
ACSI/UML-Intro, Copyright, Alberto Silva
13
A Estrutura de Conceitos da UML: Exemplos
Diagrama de Classes: especifica a estrutura estática (domínio)
de um sistema segundo a abordagem baseada em objectos
ACSI/UML-Intro, Copyright, Alberto Silva
14
A Estrutura de Conceitos da UML: Exemplos
Diagrama de
Sequências:
especifica a
dinâmica ou o
comportamento
de um sistema
(interacção entre
os objectos)
ACSI/UML-Intro, Copyright, Alberto Silva
15
A Estrutura de Conceitos da UML: Exemplos
Diagrama de
Actividades:
Especifica os
processos de
negócio ou as
actividades de
um sistema
(exemplo de um
processo “Fazer
Proposta”)
ACSI/UML-Intro, Copyright, Alberto Silva
16
A Estrutura de Conceitos da UML: Exemplos
Diagrama de Componentes: Mostra os componentes de um
sistema, com as suas relações, interacções e interfaces públicas
(exemplo: arquitectura hardware de um sistema distribuído)
ACSI/UML-Intro, Copyright, Alberto Silva
17
A Estrutura de Conceitos da UML: Exemplos
Diagrama de (Transição de) Estados: Descreve os estados e
transições entre estados de um objecto
ACSI/UML-Intro, Copyright, Alberto Silva
18
Mecanismos de extensão da UML



Estereótipos (Stereotypes)
Marcas com Valor (Tagged Values)
Constrangimentos (Constraints)
ACSI/UML-Intro, Copyright, Alberto Silva
19
Mecanismos de extensão da UML: Estereótipos
http://www.sparxsystems.com/EAUserGuide/index.html?stereotypedlg.htm
The OMG UML specification states: "A stereotype is, in effect, a new class
of metamodel element that is introduced at modeling time. It represents a
subclass of an existing metamodel element with the same form (attributes
and relationships) but with a different intent. Generally a stereotype
represents a usage distinction. A stereotyped element may have additional
constraints on it from the base metamodel class. It may also have required
tagged values that add information needed by elements with the
stereotype. It is expected that code generators and other tools will treat
stereotyped elements specially. Stereotypes represent one of the built-in
extensibility mechanisms of UML.“
Um estereótipo é um metatipo
– permite definir novos tipos de “coisas” sem se alterar o metamodelo do UML
– i.e., permite estender o UML de uma forma consistente.
Exemplos
– Na modelação de processos de negócio: «trabalhador», «documento»,
«política»
– Na modelação de aplicações específicas: classes de «interface», «controlo»,
e «entidade»
ACSI/UML-Intro, Copyright, Alberto Silva
20
Mecanismos de extensão da UML: 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
21
Mecanismos de extensão da UML: Estereótipos


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
22
Mecanismos de extensão da UML: Marcas com
Valor (Tagged value)
Declaração explícita de uma propriedade, num par “nome-valor”.
Cada “elemento” em UML tem um conjunto de propriedades. Por exemplo,
classes têm nome, atributos e operações; associações têm nome e 2 ou mais
participantes, etc. “Tagged Values” podem atribuir valoes a essas
propriedades, ou definir outras...
Com estereótipos introduzem-se novas “coisas” ao UML
Com marcas introduzem-se novas propriedades
ACSI/UML-Intro, Copyright, Alberto Silva
23
Mecanismos de extensão da UML: 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
24
Mecanismos de extensão da UML: 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”.
OCL: Object Constraint Language (linguagem para definição de
restrições)
Portfolio
restrição entre
vários elementos
Empresa
{secure-access}
ContaBancária
restrição simples
ACSI/UML-Intro, Copyright, Alberto Silva
{or}
0..1
marido
Pessoa
género:{m, f}
restrição formal
usando OCL
0..1
mulher
{self.mulher.genero=“f” and
self.marido.genero=“m”}
25
Mecanismos de extensão da UML: Restrições
(Constraints)
Como especificar que uma pessoa pode estar casada apenas
com outra pessoa do sexo oposto?
0..1
marido
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
26
Mecanismos de extensão da UML: 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
27
Mecanismos de extensão da UML:
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 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
28
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
29
Download

Introdução