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

35
Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas Análise e Concepção de Sistemas de Informação de Informação

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

Page 1: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL 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

Análise e Concepção de Sistemas de Análise e Concepção de Sistemas de InformaçãoInformação

Page 2: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informaçã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

Page 3: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

3

ACSI/UML-Intro, Copyright, Alberto Silva

Introdução - Contexto HistóricoIntrodução - Contexto Histórico

Page 4: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 5: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 6: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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:

Page 7: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 8: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 9: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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?

Page 10: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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”)

Page 11: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 12: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

12

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Elementos: Elementos

Elementos de Estrutura

Page 13: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

13

ACSI/UML-Intro, Copyright, Alberto Silva

A EC do UMLA EC do UML : Elementos: Elementos

Page 14: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

14

ACSI/UML-Intro, Copyright, Alberto Silva

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

Tipos de Relações

Page 15: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 16: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informaçã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)

Page 17: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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)

Page 18: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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)

Page 19: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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”)

Page 20: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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)

Page 21: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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)

Page 22: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 23: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 24: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 25: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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»

Page 26: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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)

Page 27: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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>>

Page 28: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 29: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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=...}

Page 30: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 31: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 32: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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}

Page 33: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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.

Page 34: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

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

Page 35: Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Análise e Concepção de Sistemas de Informação.

35

ACSI/UML-Intro, Copyright, Alberto Silva

Tipos de DadosTipos de Dados