unified modeling language (uml) - introdução - alberto manuel rodrigues da silva / josé borbinha...
TRANSCRIPT
Unified Modeling Language (UML)- Introdução -
Alberto Manuel Rodrigues da Silva / José Borbinha
Análise e Concepção de Sistemas de Análise e Concepção de Sistemas de InformaçãoInformação
2
ACSI/UML-Intro, Copyright, Alberto Silva
UML – UML – Unified Modeling LanguageUnified Modeling Language: Introdução: Introdução
Contexto Histórico
Âmbito
Visão Global
Estrutura de Conceitos
Mecanismos de Extensão
Tipos de Dados
3
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - Contexto HistóricoIntrodução - Contexto Histórico
4
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - Introdução - Contribuições para a UMLContribuições para a UML
BoochJacobsonRumbaugh
MeyerPré e Pós Condições
HarelDiagramas de Estado
Gamma, et al.Frameworks, patterns,
nodesShlaer-Mellor
Ciclos de vida dosobjectos
OdellClassificação
Wirfs-BrockResponsabilidades
FusionDescrição operações
Numeração mensagens
5
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - ÂmbitoIntroduçã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.
6
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - ÂmbitoIntroduçã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.
7
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - ÂmbitoIntrodução - Âmbito
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.
Benefícios que se obtêm com a UML:
8
ACSI/UML-Intro, Copyright, Alberto Silva
Introdução - Visão GlobalIntrodução - Visão Global
UoD
visãoA
visãoB
visãoC
Um sistema é melhor representado segundo diferentes modelos, visões, facetas ou projecções, complementares.
9
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UMLA Estrutura de Conceitos da UML “Elementos”
– Estrutura– Comportamento– Agrupamento– Anotação
Relações (relacionam “elementos”)– 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
10
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ElementosA Estrutura de Conceitos da UML: Elementos
Estrutura
11
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: Relações A Estrutura de Conceitos da UML: Relações Estruturais ou de Associação
– Relações de ligação entre classes/objectos (Curso tem 20 Alunos; Carro tem 1 Dono, Aluno frequenta 5 Cursos, ...)
Especialização / Generalização– Relações de herança entre classes (Cliente é uma generalização de
Cliente VIP; Aluno Finalista é uma especialização de Aluno; ...)
Realização ou de Interface– Relação em que se define uma interface assegurada por uma entidade
(método de uma classe, serviço de um componente ou subsistema, ...)
Dependência– 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...
12
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: DiagramasA 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
13
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA Estrutura de Conceitos da UML: Exemplos
Diagrama de Casos de Utilização: representa a visão funcional do sistema na perspectiva dos seus utilizadores
14
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA 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
15
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA 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)
16
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA 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”)
17
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA 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)
18
ACSI/UML-Intro, Copyright, Alberto Silva
A Estrutura de Conceitos da UML: ExemplosA Estrutura de Conceitos da UML: Exemplos
Diagrama de (Transição de) Estados: Descreve os estados e transições entre estados de um objecto
19
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UMLMecanismos de extensão da UML
Estereótipos (Stereotypes) Marcas com Valor (Tagged Values) Constrangimentos (Constraints)
20
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: EstereótiposMecanismos de extensão da UML: Estereótiposhttp://www.sparxsystems.com/EAUserGuide/index.html?stereotypedlg.htmThe 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»
21
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: EstereótiposMecanismos 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)
22
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: EstereótiposMecanismos 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>>, ...
<<communicates>>
<<Control>>
<<Interface>>
<<Entity>>
23
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: Marcas com Mecanismos de extensão da UML: Marcas com Valor (Tagged value)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 UMLCom marcas introduzem-se novas propriedades
24
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: Marcas com Mecanismos de extensão da UML: Marcas com ValorValor
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=...}
25
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UMLMecanismos de extensão da UML: Restrições: Restrições (Constraints)(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
ContaBancária
Empresa
Pessoagénero:{m, f}
0..1marido
0..1mulher
{or}
{secure-access}
{self.mulher.genero=“f” and self.marido.genero=“m”}
restrição simples
restrição entre vários elementos
restrição formal usando OCL
26
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UMLMecanismos de extensão da UML: Restrições: Restrições (Constraints)(Constraints)
Como especificar que uma pessoa pode estar casada apenas com outra pessoa do sexo oposto?
Pessoagénero:{m, f}
0..1marido
0..1mulher
{self.mulher.genero=“f” and self.marido.genero=“m”}
restrição formal usando OCL
OCL (Object Constraint Language) é uma linguagem para especificação formal de restrições; é uma parte definida no UML
27
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UMLMecanismos de extensão da UML: Restrições: Restrições (Constraints)(Constraints)
Como especificar que uma pessoa, para ser gestor de um departamento tem também de ser, necessariamente, membro desse departamento?
Departamento
Pessoa
1..* 1
**
gestormembro
{subset}
28
ACSI/UML-Intro, Copyright, Alberto Silva
Mecanismos de extensão da UML: Mecanismos de extensão da UML: SugestõesSugestõ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.
29
ACSI/UML-Intro, Copyright, Alberto Silva
Tipos de DadosTipos 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