Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL...

Post on 18-Apr-2015

107 views 0 download

Transcript of Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL...

Unified Modeling Language (UML)- Introdução -

Alberto Manuel Rodrigues da Silva

Prof. DEI/IST/UTL

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

Introdução ao UMLIntrodução ao UML

Contexto Histórico

Âmbito

Visão Global

Estrutura de Conceitos

Mecanismos Comuns

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 o UMLContribuições para o UML

Booch

JacobsonRumbaugh

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

O UML é uma linguagem para:– visualização – especificação– construção– documentação

dos artefactos de um sistema

6

ACSI/UML-Intro, Copyright, Alberto Silva

Introdução - ÂmbitoIntrodução - Âmbito

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.

O UML apresenta as particularidades principais:

7

ACSI/UML-Intro, Copyright, Alberto Silva

Introdução - ÂmbitoIntrodução - Âmbito

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)

Novos elementos introduzidos no UML...

8

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 o UML...

9

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.

Qual é, dos 4 Princípios de Modelação do Booch?

10

ACSI/UML-Intro, Copyright, Alberto Silva

A Estrutura de Conceitos do UMLA Estrutura de Conceitos do UML

“Elementos”

Relações (relacionam “elementos”)

Diagramas (agrupam “elementos”)

11

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Elementos: Elementos

Elementos de Estrutura

Elementos de Comportamento

Elementos de Agrupamento

Elementos de Anotação

12

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Elementos: Elementos

Elementos de Estrutura

13

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Elementos: Elementos

14

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Relações : Relações

Tipos de Relações

15

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Diagramas: 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

16

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: 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)

17

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: Exemplos

Diagrama de Classes: especifica a estrutura estática de um sistema segundo a abordagem baseada em objectos

(e.g., classes do WebGTTI)

18

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: Exemplos

Diagrama de Sequências: especifica a dinâmica ou o

comportamento de um sistema

(e.g., registo de membro no WebGTTI)

19

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: Exemplos

Exemplo de um Diagrama de Actividades

(processo de negócio “Fazer Proposta”)

20

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: Exemplos

Diagrama de Distribuição

(e.g., arquitectura hardware de um sistema distribuído)

21

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Exemplos: Exemplos

Diagrama de (Transição de) Estados

(e.g., da classe “Termo” do WebGTTI)

22

ACSI/UML-Intro, Copyright, Alberto Silva

UML – Mecanismos ComunsUML – 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

23

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - NotasMecanismos Comuns - Notas

O AgentManager tem de criar os restantes agentes da aplicação.

Alb 2001/6/12

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.

Ver htto://www.objectspace.com para mais informação sobre o ORB Voyager

24

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - NotasMecanismos 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

25

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - EstereótiposMecanismos 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»

26

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - EstereótiposMecanismos 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)

27

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - EstereótiposMecanismos 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>>, ...

<<communicates>>

<<Control>>

<<Interface>>

<<Entity>>

28

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - Mecanismos Comuns - Marcas com Valor Marcas com Valor

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 UMLCom marcas introduz-se novas propriedades

Tagged value

29

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - Mecanismos Comuns - Marcas com ValorMarcas 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=...}

30

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - Mecanismos Comuns - 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”.

Portfolio

ContaBancária

Empresa

Pessoagénero:{m, f}

0..1homem

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

31

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - Mecanismos Comuns - 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..1homem

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

32

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - Mecanismos Comuns - 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}

33

ACSI/UML-Intro, Copyright, Alberto Silva

Mecanismos Comuns - SugestõesMecanismos 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.

34

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

35

ACSI/UML-Intro, Copyright, Alberto Silva

Tipos de DadosTipos de Dados