Você está na página 1de 46

Modelagem OO

com UML
Vtor E. Silva Souza
(vitorsouza@inf.ufes.br)
http://www.inf.ufes.br/~ vitorsouza
Departamento de Informtica
Centro Tecnolgico
Universidade Federal do Esprito Santo

Modelos
Maneira de projetar, comunicar, documentar, etc.
solues computacionais;
Diversos nveis, por exemplo:
Ontologias (modelos genricos, de domnio);
Requisitos (foco em um problema);
Projeto / arquitetura (foco em uma soluo).
Essenciais para o desenvolvimento
de soKware;
Assim como o desenvolvimento,
tambm seguem os paradigmas
(estruturado, OO, etc.).
Maio 2013

Modelagem Conceitual com UML

Unied Modeling Language


Padro de facto para especicar, visualizar,
documentar e construir artefatos de um sistema
desenvolvido sob o paradigma Orientado a Objetos;
Nasceu na RaZonal SoKware, desde 1997 um padro
da Object Management Group (OMG);
Reconhecido pela ISO em 2000;
Teve origem em trs outros mtodos:
OMT (Rumbaugh et al., 1994);
Mtodo de Booch (Booch, 1994);
Mtodo OOSE (Jacobson, 1992).
Verso atual: 2.4.1 (2011).
Maio 2013

Modelagem Conceitual com UML

Diagramas da UML

de Casos de Uso;
de Classes;
de Objetos;
de Estrutura Composta;
de Sequncia;
de Comunicao;
de Estados;
de AZvidades;
de Componentes;

Maio 2013

de Implantao;
de Pacotes;
de Interface Geral;
de Tempo.

Modelagem Conceitual com UML

Modelagem Unicada?
A notao unicada: quase todo desenvolvedor de
soKware conhece ao menos parte da UML;
A deciso de qual artefato (diagrama) produzir, porm,
depende do processo denido para o projeto;
Projetos diferentes, necessidades diferentes.
Pode ser uZlizada em diferentes processos de
desenvolvimento orientados a objetos, em todas as
etapas do ciclo de desenvolvimento.
Exemplo: domnio, requisitos, arquitetura, etc.

Maio 2013

Modelagem Conceitual com UML

Exemplo: Diagrama de Casos de Uso


Modela as
funcionalidades do
sistema;
Captura ipicas
interaes usurio
sistema;
Usurios so atores;
Atores e casos de uso so
associados;
Cada caso descrito em
detalhes separadamente.

Maio 2013

Modelagem Conceitual com UML

Exemplo: o Diagrama de Classes


Classe
Abstrata
Classe
Associativa

Herana

Nome
Atributos
Operaes

Associao (e
suas cardinalidades)
Agregao
Classe

Representa as classes relevantes (abstrao!) para


o domnio,
problema ou soluo.
Maio 2013
Modelagem Conceitual com UML

Exemplo: Diagrama de Estados


Representa diferentes
estados em que um
objeto pode estar;
Foco em uma classe de
objetos especca (no
exemplo, Pedido);
Captura a dinmica de
um sistema, com foco
numa classe.

Maio 2013

Modelagem Conceitual com UML

Exemplo: Diagrama de Sequncia


Tambm captura a dinmica de um sistema;
Porm, o foco em uma funo especca.

Maio 2013

Modelagem Conceitual com UML

Modelagem Conceitual com UML

MODELAGEM ESTTICA

Maio 2013

Modelagem Conceitual com UML

10

Modelagem estZca
Centrada no diagrama de classes:
IdenZcao de classes;
Especicao de hierarquias de generalizao /
especializao;
IdenZcao de subsistemas;
IdenZcao de associaes e atributos.

Lembre-se: na orientao a objetos modelamos


classes, portanto este diagrama central!
Maio 2013

Modelagem Conceitual com UML

11

Classes: nveis de abstrao


Ontologias:
Modelagem de conceitos de um domnio,
relacionando-os com conceitos fundamentais;
Anlise (de requisitos) de sistemas:
Modelagem de conceitos especcos do problema
analisado;
Projeto (arquitetural) de sistemas:
Modelos de aplicao (servios), interface grca
com o usurio, persistncia de dados, etc.
Modelos de domnio mais detalhados.

Maio 2013

Modelagem Conceitual com UML

12

Representao de classes
Representao
em UML
Nome da Classe
<Lista de atributos>
<Lista de operaes>

Se estiver em itlico, a classe abstrata.


Sintaxe: <escopo> <nome> : <tipo> =
<valor default>
Escopo:
- privado
+ pblico
# protegido
Sintaxe: <escopo> <nome> (<parmetros>) :
<tipo>
<parmetros> = lista de pares <nome> :
<tipo>, separada por vrgula.

Dependendo do nvel de abstrao, alguns detalhes podem ser


omitidos (ex.: tipo e escopo na fase de anlise).
Maio 2013

Modelagem Conceitual com UML

13

Herana (inheritance)

Maio 2013

Generalizao

Especializao

Devem modelar relaes -um-Zpo-de;


Subclasses devem suportar toda a funcionalidade das
superclasses e possivelmente mais;
Funcionalidade comum a diversas classes deve estar o
mais alto possvel na hierarquia;
Classes abstratas no podem herdar de classes
concretas.

Modelagem Conceitual com UML

14

Separao em subsistemas / mdulos


Projetos grandes podem conter centenas de classes e
estruturas diversas;
Diviso das classes em pacotes:
Coleo de classes que colaboram entre si;
Conjunto coeso de responsabilidades;
Caixa preta.
Vantagens:
Facilita o entendimento para leitores;
Auxilia na organizao de grupos de trabalho;
Organiza a documentao;
Em suma, facilita a manuteno.
Maio 2013

Modelagem Conceitual com UML

15

Pacotes (packages)
Podem ser usados para organizar diversos Zpos de
elementos de modelos, inclusive diagramas inteiros;
Muito uZlizados para organizar classes em mdulos, da
mesma forma que ser feito em Java/C++;
possvel representar relao de dependncia entre
pacotes:

Maio 2013

Modelagem Conceitual com UML

16

Associaes (associaZons)
Relacionamento entre classes representado por
associaes, agregaes e composies;
Associaes podem indicar cardinalidade (cardinality):
Objetos da ClasseA podem se
relacionar com no mnimo zero e no
mximo trs objetos da ClasseB.

Um e somente um.

Maio 2013

Nenhum, um, ou vrios.

Modelagem Conceitual com UML

17

Papis (roles)
Indicam o papel que a classe desempenha na
associao (so usados substanZvos);
opcional, usado quando melhora o entendimento do
modelo;
Sintaxe: <escopo> <nome>.

Maio 2013

Modelagem Conceitual com UML

18

Classes associaZvas (associaZon class)


UZlizadas quando a associao possui atributos;
Comuns em relaes n-para-n.

Maio 2013

Modelagem Conceitual com UML

19

Relacionamentos recursivos
Perfeitamente legais;
Geralmente pedem denio de papis.

Maio 2013

Modelagem Conceitual com UML

20

Associaes n-rias
Associaes entre trs ou mais classes;
Extremamente raras, muitas vezes as ferramentas CASE
nem do suporte;
Podem ser subsZtudas por uma nova classe e N
associaes.

Maio 2013

Modelagem Conceitual com UML

21

Agregao e composio
J estudadas anteriormente...
Adicionam um losango sintaxe, na extremidade da
classe que representa o todo:

Maio 2013

Modelagem Conceitual com UML

22

Atributos (ayributes)
Atributos so informaes de estado (propriedades)
para o qual cada objeto em uma classe tem seu valor;
Muito similares s associaes:
Como atributos tm um Zpo, podemos considerar
que so associaes com um Zpo;
Para Zpos primiZvos denimos atributos, do
contrrio modelamos uma associao;
Em lZma instncia, associaes e atributos so
implementados da mesma forma;
Atributos e associaes denem uma classe.

Maio 2013

Modelagem Conceitual com UML

23

Especicao de atributos
Escolha um nome com signicado;
Siga um padro de nomenclatura;
Inclua-o na modelagem de classes:

Maio 2013

Modelagem Conceitual com UML

24

Atributos e hierarquias de classe


Ateno hierarquias de classes:
Atributos genricos cam mais acima na hierarquia;
Por outro lado, se ele no se aplica a algumas
subclasses, deve ser trazido para baixo, somente
para as classes apropriadas.
Reviso da hierarquia:
Descoberta de atributos nos leva a um melhor
entendimento, o que possivelmente implicar
reviso de hierarquias.

Maio 2013

Modelagem Conceitual com UML

25

Exemplo

Essa classe de associao guarda as relaes de designao entre um funcionrio


e uma rea de um Job. ehAceito indica que o funcionri o aceitou trabalhar naq uela
rea. Se dtFim nulo, o funcionrio ainda est de sign ado quel a rea do Job. Caso
con trrio, regi stra o perodo em que o funcion rio trabal hou naquel a rea de job .

Modelo de domnio
Anlise de requisitos

Designacao
dtEnvio
dtRe cebi mento
dtInicio
dtFim
texto
ehAceito
mo tivoRejeicao

Sistema de gerncia de
jobs em uma agncia
publicitria.

0..n

obterTexto()
aceitar()
rejeitar()
atribuirDtInicio()
atribuirDtRecebi mento()

Funci onario

+Designado
0..n

(f rom ControleInterno)

0 ..n +Gerente
0..n

0..n
+Funo

AreaJob

Area
nome

prazo
status
1

0..n

0..n criar()
atribuirGerente()
obterNovasDesignacoes()
1

Gerencia
dtInicio
dtFim

0..n
InformacaoAreaJob
dtInsercao
descricao

InfoNaoDigital
localizacao

Maio 2013

Modelagem Conceitual com UML

0..n

Arquivo

Essa classe de associao guarda as


relaes de gerncia entre um
funcionrio e uma rea de um Job. Se
dtFim nulo, o funcionrio o gerente
atual daquela rea de Job. S pode
haver um gerente atual por rea de Job.

path
nome

26

Exemplo
Modelo de domnio
Projeto arquitetural
Sistema de gerncia de
jobs em uma agncia
publicitria.

Maio 2013

Modelagem Conceitual com UML

27

Exemplo
Modelos de interface com o
usurio e de controle
Projeto arquitetural do mesmo
sistema anterior.

Maio 2013

JanCadastrar

javax.swing.JOptionPane

(f rom UtilitarioInterf aceGraf ica)

(f rom UtilitarioInterf aceGraf ica)

JanCadastrarFuncionario

Modelagem Conceitual com UML

28

Exemplo
Diagrama de pacotes.
GT_Comunicacao
(from Comunicacao)

Projeto arquitetural do mesmo


sistema anterior.

GT_ControleArea
(from ControleArea)

GT_ControleJob
UtilitarioPessoa
(from Utilitario)

DP_ControleInterno
(from ControleInterno)

DP_ControleJob

IU_ControleJob

UtilitarioInterface
Grafica
(from Utilitario)

DP_ControleArea
(from ControleArea)
GD_ControleJob

Maio 2013

UtilitarioGerencia
Dados
(from Utilitario)

Modelagem Conceitual com UML

29

Modelagem Conceitual com UML

MODELAGEM DINMICA

Maio 2013

Modelagem Conceitual com UML

30

Comportamento dinmico
Os diagramas de classes representam apenas
elementos estZcos, dados;
preciso, ainda, representar o comportamento da
aplicao em funo do tempo e de eventos
especcos;
Modelar o comportamento:
Indica como o sistema ir responder a eventos ou
esimulos externos;
Auxilia o processo de descoberta das operaes das
classes do sistema.

Maio 2013

Modelagem Conceitual com UML

31

Modelos da UML
Diagramas de Estados:
Descrevem os estados possveis pelos quais um
parZcular objeto pode passar e suas transies,
esimulos e aZvidades;
Foco em uma classe especca.
Diagramas de Interao:
Descrevem como grupos de objetos colaboram entre
si em um certo comportamento;
Envolve vrias classes, foco em um comportamento
(funcionalidade) especco.

Maio 2013

Modelagem Conceitual com UML

32

Diagrama de Mquina de Estados


Similar ao Diagrama de Transio de Estados (DTE), do
paradigma Estruturado;
Construdo para uma nica classe;
Mostra o comportamento dos objetos desta classe ao
longo do tempo:
Estados possveis;
Eventos que alteram estado;
CaractersZcas de cada estado;
Etc.

Maio 2013

Modelagem Conceitual com UML

33

Notao
Estado Inicial

Estado Final

Transio

Estado

Maio 2013

Modelagem Conceitual com UML

34

Estados
Nome: deve descrever claramente o estado;
AZvidades:
De entrada: ocorrem ao entrarmos no estado;
De sada: ocorrem ao sairmos do estado;
Convencional: ocorrem enquanto o objeto esZver
naquele estado.

Maio 2013

Modelagem Conceitual com UML

35

Estados inicial e nal


Os estados ligados ao estado inicial so aqueles nos
quais o objeto pode estar logo quando for construdo;
Se houver mais de um, deve-se especicar condies
de entrada em cada estado;
Os estados ligados a um estado nal so aqueles dos
quais o objeto no mais sair;
No obrigatrio ter e pode ter mais de um;
Um estado ligado a um estado nal no pode ter
transies para outros estados.

Maio 2013

Modelagem Conceitual com UML

36

Transies
Indicam a possibilidade de ir de um estado a outro;
Evento: evento externo que moZvou a transio;
Condio de guarda: condio necessria para
efetuar a transio (alm do evento);
Ao: ao realizada durante a transio.

Maio 2013

Modelagem Conceitual com UML

37

Ao x aZvidade
Ao x aZvidade convencional:
Uma ao ocorre durante a transio (ela atmica);
Uma aZvidade ocorre enquanto o objeto permanece
no estado (quando ela acabar, ele muda de estado);
Ao x aZvidades de entrada/sada:
Caso s haja uma transio de entrada/sada, no h
diferena na prZca.

Maio 2013

Modelagem Conceitual com UML

38

Exemplos
Ao ser criado, o objeto da classe em questo
encontra-se no estado E-1.

Se o objeto estiver no estado E-1 e


ocorrer o evento E, se a condio C =
true, ocorre a ao A e o objeto passa
para o estado E-2.

Enquanto estiver no estado E-1, o objeto


realiza a atividade A. Ao terminar a atividade
A, automaticamente ele muda para o estado
E-2.

Maio 2013

Modelagem Conceitual com UML

39

Exemplo

Maio 2013

Modelagem Conceitual com UML

40

Diagramas de interao
Ajudam a compreender e capturar o uxo global de
controle;
Modelam um conjunto de objetos e as mensagens que
trocam;
Foco em uma funcionalidade especca (caso de uso);
Dois Zpos de diagrama (duas vises):
Diagrama de Sequncia (temporal): foco no tempo e
no controle;
Diagrama de Colaborao (estrutural): nfase na
organizao dos objetos.

Maio 2013

Modelagem Conceitual com UML

41

Diagrama de sequncia notao


Objeto

Classe

F
L
U
X
O

Escopo

Retorno

Linha de vida do objeto

Maio 2013

Marcador de iterao

Modelagem Conceitual com UML

42

Exemplo
referncia a um objeto

Maio 2013

Modelagem Conceitual com UML

43

Exemplo

Maio 2013

Modelagem Conceitual com UML

44

Diagrama de colaborao exemplo

Maio 2013

Modelagem Conceitual com UML

45

h1p://nemo.inf.ufes.br/

Maio 2013

Modelagem Conceitual com UML

46

Você também pode gostar