Você está na página 1de 64

UML Unified Modeling Language

Tpicos abordados
Diagramas e elementos UML relacionados a fase de Anlise & Projeto

Diagrama Diagrama Diagrama Diagrama

de de de de

Classes Estados Interaes Componentes

Modelagem dos conceitos OO em UML


2

Objetivos
Mapear os conceitos de OO em UML
Ser capaz de modelar um sistema usando UML

O que a Unified Modeling Language (UML)?


A UML combina o melhor de

Modelagem Modelagem Modelagem Modelagem

de de de de

Dados Negcios Objetos Componentes

A UML a linguagem padro para visualizar, especificar, construir e documentar artefatos de um sistema de software
4

Histria da UML
Nov 97 UML aprovada pelo OMG

UML: A Linguagem de

Modelagem

Modelagem Visual
Modelagem Visual permite que voc construa da forma correta na primeira vez:

Entender os requisitos do usurio Validar que o design atende as necessidades Visualizar interface, lgica de negcio e dados separadamente Separar domnios de negcio conforme apropriado Vizualizar todas as dependncias Validar performance antes do cdigo comear
7

Quem deve modelar?


Requisitos e Modelos de Negcio

Analista de Negcios

HTML CGI XML JavaScript

Desenvolved or de Contedo Web

Modelos de SW
Engenheiro de Software

Java, C++, etc.

Modelos de Dados

Projetista de Banco de Dados


8

Conceitos da UML
A UML pode ser usada para modelar visualmente:

A interao de sua aplicao com o mundo externo O comportamento de sua aplicao A estrutura de seu sistema Os componentes de seu sistema A arquitetura de sua empresa
9

Diagramas UML
Digrama de classes Diagrama de casos de uso Diagrama de componentes Diagrama de distribuio Diagrama de estados Diagrama de atividades Diagrama de interao

Diagrama de seqncia Diagrama de colaborao


10

Diagrama de classes
Um diagrama de classes mostra a estrutura de seu software
JanelaMatricula AlgoritmoCalendario

0..*

1 GerenciadorMatricula
adAluno(Curso, AlunoInfo)

1
UsuarioMatricula
nome

Curso

0..* numCreditos
Aluno
dataGraduacao aberto() adAluno(AlunoInfo)

nome

1 3..10
Professor
classificacao

4 1

1..*
CursoOferecido
localizacao

0..4 aberto()
adAluno(AlunoInfo)

11

Classe em UML
Classe representada usando-se um retngulo

Professor

12

Atributo em UML
Classe

Objeto

Valor do Atributo

: Professor
titulo = Mestre Nome = Gibeon

Professor
titulo nome

: Professor
titulo = PhD nome = Ivan

Nome do Atributo

13

Operao em UML
Professor

Especificao das operaes

criar() atribuirDisc() getTitulo() getNome()

14

Resumo de classes
Uma classe composta por trs sees
Nome da Classe
Atributos Operaes DVD
Hora Status
Voltar() Pausar() Adiantar() Parar() Tocar()

estrutura comportamento

15

Interface em UML (Cannica)


<<interface>> Forma

Cubo

Desenhar Mover Rotacionar

Tubo

Piramide

Relacionamentos de realizao
16

Interface em UML (Icnica)


Tubo

Piramide Forma Cubo

Relacionamentos de realizao

17

Pacote em UML
Favorece a modularidade Pode ser aplicado para modularizar outros elementos de UML

nome do pacote

18

Relacionamentos
Associao

agregao composio

Dependncia Generalizao Realizao

19

Associao
Modela a conexo semntica entre classes Nome da associao
Professor
Trabalha para

Universidade

Associao Papis Classe

Professor
Empregado Empregador

Universidade

20

Agregao
Uma forma especial de associao que modela um relacionamento todo-parte entre um agregado (todo) e suas partes
Todo Agregao Parte

Estudante

Disciplina

21

Composio
Uma forma de agregao com uma relao de posse forte

As partes no vivem sem o todo


Todo Composio Parte

Estudante

Disciplina

22

Associao x Agregao x Composio


Como voc modelaria:

Dependente e Funcionrio? Pedido e Item do pedido? Funcionrio e Carto de ponto? Carro, Roda, Direo e Carburador?
Na dvida, use agregao!

Na dvida, use associao!


23

Exercicios
Identificar os relacionamentos do sistema de reserva

24

Multiplicidade
Multiplicidade define quantos objetos participam do relacionamento

O nmero de instncias de uma classe relacionada a uma instncia de outra classe Especificado em cada uma das pontas da associao

25

Tipos de Multiplicidade
No especificada

Exatamente um
Zero ou mais Muitos (mesmo que 0..*)

1 0..*
*

Um ou mais
Zero ou um Intervalo determinado Valores mltiplos

1..*
0..1 2..4 2, 4..6

26

Exemplo: Multiplicidade
Multiplicidade

Estudante

1..*

Disciplina

27

Navegao
Especifica a direo da associao
Associaes e agregaes so bidirecionais por default

28

Exemplo: Navegao

Estudante

1..*

Disciplina

Navegao

29

Exercicios
Identificar navegao e multiplicidade

30

Dependncia
Uma dependncia entre dois elementos indica que mudana em um elemento pode causar mudanas no outro Relacionamento no estrutural (uso)

mais fraco que associao


Cliente
Relacionamento de Dependncia
31

Fornecedor

Dependncia na prtica (OO)


Parmetros de entrada de mtodos Tipos de retorno de mtodos Utilizao dentro do cdigo de mtodos Excees lanadas

32

Dependncia em Java
class Log { ... void gravar(){ Arquivo a =...; a.escrever(...); } }

33

Dependncia
Pode existir relacionamento de dependncia entre vrios elementos de UML
Classe
Cliente Fornecedor

Componente

Pacote

Cliente

Fornecedor

PacoteCliente

PacoteFornecedor

Dependncia
34

Generalizao
Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operaes) de outras classes Relacionamento um tipo de

35

Herana Simples
Uma classe herda de uma outra
Figura
Superclasse (pai)
cor largura da linha desenhar() selecionar()

Relacionamento de Generalizao
Crculo raio centro desenhar() Retngulo vertices desenhar() diagonal()

Subclasses

36

Herana Mltipla
Classes herdando de mais de uma classe
Mamfero
AnimalVoador

Herana mltipla

Cachorro

Gato

Morcego

Passarinho

Gaviao

37

Herana Mltipla
O que acontece quando as superclasses possuem o mesmo mtodo (mtodos com o mesmo nome? O que acontece quando se tenta executar um mtodo que no est definido na subclasse? Em que hierarquia de superclasses deve-se procurar o mtodo?

38

Realizao
Indica que um elemento serve como contrato que o outro deve seguir
Classe

Subsistema

Componente

Realizao

Caso de uso

Realizao de Caso de uso


39

Objeto em UML
: Professor Apenas o nome da classe

gibeon
Apenas o nome do objeto

gibeon : Professor Nome da classe e do objeto

40

Diagrama de estados
Um diagrama de estados mostra o ciclo de vida de um objeto
Adiciona Aluno[ contador < 10 ] Inicializado
do: Incializa Curso

Adiciona Aluno / contador = 0

Aberto

Cancel Cancela Cancelado


do: Notifica Alunos

[ contador = 10 ]

Cancela

Fechado
do: Finaliza curso

41

Exerccio

42

Diagrama de componentes
Diagramas de Componentes ilustram a organizao e dependncias entre componentes de software

43

O que so componentes
Parte no trivial, quase independente, substituvel de um sistema, que prov a realizao de (uma/um conjunto de) interface(s) Exemplos

um cdigo fonte um componente de tempo de execuo um componente executvel


44

Componente em UML

Arquivo fonte

<<EXE>> Arquivo executvel


Interface do Componente

<<DLL>> Componente

45

Exemplo de Diagrama de componentes

Cobranca.exe Sistema Cobranca

Matricula.exe

Pessoa.dll Curso.dll
Curso

Usuario

46

Subsistemas
Uma combinao de pacotes (pode conter outro elementos) e classe (tem comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento Facilita o encapsulamento e a modularidade
47

Subsistema em UML
Realizao Subsistema <<subsystem>> Interface Nome do subsistema

48

Subsistemas e Componentes
Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes so a realizao fsica dos subsistemas
Projeto
<<subsystem>> Nome do subsistema

Implementao
Nome do componente

49

Diagramas de Interao
Modelam interaes do sistema com seus atores A interao iniciada por um ator e envolve instncias (objetos) das classes Diagramas de interao capturam a semntica do fluxo de eventos do caso de uso

Auxiliam a identificar classes, responsabilidades e relacionamentos


50

Diagramas de iterao
Existem dois tipos

Diagrama de Seqncia Diagrama de Colaborao

So semanticamente equivalentes
Um pode ser gerado automaticamente a partir do outro
51

Forma Geral dos Diagramas de Seqncia


Objeto cliente Objeto fornecedor :Cliente :Fornecedor

Mensagem reflexiva

1: Realize responsabilidade
1.1: Realize outra responsabilidade

Mensagem

Numerao hierrquica para as mensagens


Foco de controle

52

Exemplo de Diagrama de Seqncia


janela de matrcula

: Aluno

controle de matrcula

mat 101

mat 101 section 1

1: preenche info 2: submete 3: ad curso(Jose, mat 101) 4: ad(Jose) 5: curso aberto? 6: ad(Jose)

53

Forma Geral de Diagramas de Colaborao


Objeto cliente Mensagem reflexiva Link

:Cliente

1.1: Realize outra responsabilidade

:Fornecedor 1: Realize responsabilidade

Mensagem

Objeto fornecedor

54

Exemplo de Diagrama de Colaborao

1: informao do curso 2: processa

janela de curso : JanelaCurso

: Secretaria

3: adiciona curso

curso : Curso 4: novo curso

gerenciador : GerenciadorCurriculo

55

Colaborao X Sequncia
Colaborao

Melhores para visualizar os relacionamentos e responsabilidades de um dado objeto Mais fceis de desenhar - teis em sesses de brainstorm

Seqncia

Melhores para visualizar a seqncia do fluxo no tempo Melhores para visualizar o fluxo completo Mais adequados para cenrios complexos
56

Exerccio

57

Mecanismos adicionais de UML


Esteretipos Notas Propriedades (Tagged values) Restries

58

Esteretipos
Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro j existente Pode ser aplicado a todos os elementos Representado como

um novo cone A notao <<novo_elemento>>


59

Esteretipos - Exemplo
Classes de fronteira:
<<boundary>> ClasseFronteira ClasseFronteira

60

Notas
Anotao utilizada para adicionar informao a diagramas

Pode ser afixionada a qualquer elemento de UML Pode ser ligada a um elemento com uma linha tracejada
LeitoraCartao
Esta classe uma abstrao do dispositivo de hardware que ser usado para ler efetivamente as informaes do carto magntico.
61

Propriedades (Tagged Values)


Servem para estender elementos UML, adicionando informaes a eles Exemplos j definidos em UML:

Persistence Location (ex: no cliente, no servidor)

Novas propriedade podem ser criadas


Cliente {persistence} LeitoraCartao {location=server}
62

Restries
Usadas para criao de novas regras sobre elementos do modelo ou modificao de regras existentes

Funcionrio

Professor

1..*

Departamento

Coordenador
3

{subset}
1

63

FIM!!!

64

Você também pode gostar