Você está na página 1de 156

Viso Geral da UML

Fernando Martins Muradas


Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Diagrama de Casos de Uso
Diagrama de Classes
Diagrama de Objetos
Viso Geral da UML
Diagramas da UML (continuao)
Diagrama de Transio de Estados
Diagramas de Interao (Sequncia/Colaborao)
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantao
Concluses
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Evoluo dos Paradigmas
Controle Reusa-
Legi- Modifi- Reusa-
do bilidade
bilidade cabilidade bilidade
Usurio de fato

Desvio Estru-
Compo-
incondi- turas de Subpro- Eventos Objetos
nentes
cional Controle gramas
Orientao a Objetos
Programao tradicional se baseia na
compreenso do sistema como um conjunto
de programas que executam processos sobre
dados
O enfoque em OO, v o mundo como uma
coletnea de objetos que interagem entre si
e apresentam caractersticas prprias
representadas pelos seus atributos e
operaes
O mundo real, que queremos
modelar, constitudo por objetos
carro
caneta Estrutura
aluno
Comportamento
concerto
congresso
conta a pagar
relatrio
.....................
Qual a estrutura do objeto ?
Quais so as operaes sobre o objeto ?

cdigo
fabricante ligar
tipo acelerar
cor mudar a marcha
licena frear
ano de fabricao virar esquerda
no motor virar direita
.......... ..........
Classe-Carro
cdigo (inteiro)
fabricante (cadeia de caracteres)
tipo (inteiro)
cor (cadeia de caracteres)
licena (cadeia de caracteres)
ano de fabricao (inteiro)
no motor (inteiro)
Com OO ..........

procedimento ligar
procedimento acelerar
procedimento mudar a marcha
procedimento frear
procedimento virar esquerda
procedimento virar direita
..........

fim-classe
Qual a estrutura do objeto ?
Quais so as operaes sobre o objeto ?

matrcula
nome incluir dados pessoais
endereo matricular
data_nascimento alterar endereo
curso incluir nota
data_incio emitir histrico
notas ..........
..........
Classe-Aluno
matrcula (inteiro)
nome (cadeia de caracteres)
endereo (cadeia de caracteres)
data_nascimento (inteiro longo)
curso (cadeia de caracteres)
data_incio (inteiro longo)
Com OO notas
..........

procedimento incluir dados pessoais


procedimento matricular
procedimento alterar endereo
procedimento incluir nota
procedimento emitir histrico
..........

fim-classe
Classe

Estrutura
Operaes
sobre
Comportame
nto

fim-classe
Orientao a Objetos
Benefcios
Os sistemas orientados a objetos podem representar melhor o mundo real ;
Espelha a estrutura e o comportamento dos objetos do negcio;
Permite uma modelagem mais perfeita e natural;
Oferece maior transparncia da modelagem para construo;
A mesma notao usada desde a anlise at o projeto e a implementao;
Ocorre uma reduo na quantidade de erros;
Melhora a comunicao entre desenvolvedores e usurios;
Reduo no tempo de manuteno;
Favorece a reutilizao;
Facilidade de extenso;
Impe maior qualidade, produtividade.
Orientao a Objetos
Um sistema orientado a objetos um
conjunto de objetos que se comunicam
Classes de interao

Classes
de negcio
Classes
de sistema
Classes
persistentes
Orientao a Objetos
Tradicional Orientao a Objetos
Classe

Variveis Atributos

Mtodos
Funes
// programa pessoa estruturada // programa pessoa OO
#include <stdio.h> #include <stdio.h>
void alterarPessoa(tpessoa * p, int i, float t) class pessoa
{ {
p idade = i; private:
p temperatura = t; int idade;
} float temperatura;
public:
void imprimirPessoa(tpessoa p) void alterarPessoa(int i, float t)
{ { idade =i; temperatura = t;}
printf(%d %f, p.idade, p. temperatura);
} void imprimirPessoa(void)
{printf(%d %f, idade, temperatura);}
typedef struct
{ };
int idade;
float temperatura; void main(void)
}tpessoa; {
pessoa joao;
void main(void) joao.alterarPessoa(18, 36.5);
{ joo.imprimirPessoa( );
tpessoa joao; }
alterarPessoa ( &joao, 18, 36.5);
imprimirPessoa( joao );
}
Orientao a Objetos
Classe / Objeto
Objetos
Classe instanciao
(instncias)

Joo

Pessoa

Maria
Classe Objeto

Atributos Estrutura

Especifica

Servios Comportamento

tipo varivel
Orientao a Objetos
Princpios bsicos
Abstrao
Encapsulamento
Herana
Polimorfismo
Orientao a Objetos
Abstrao
O processo de abstrao consiste em
concentrar a ateno em alguns aspectos da
realidade modelada, abandonando os
demais aspectos
Um objeto uma entidade de software que
representa uma abstrao de alguma coisa
no domnio do problema que precisamos
modelar
Orientao a Objetos
Abstrao
Pessoa
Sistema para Sistema para
Nome modelos banco
Altura
Peso Nome Nome
cor dos olhos Altura identidade
cor do cabelo Peso cpf
identidade cor dos olhos idade
cpf cor do cabelo filiao
idade idade naturalidade
filiao
naturalidade
Orientao a Objetos
Encapsulamento
Em um nico pacote esto dados (estrutura)
e operaes (comportamento)
Dados de um objeto so privados do objeto
Dados do objeto s so manipulados pelos
mtodos do prprio objeto
Mtodos de um objeto so pblicos
Os mtodos so a interface do objeto
Orientao a Objetos
Encapsulamento

Atualizar Imprimir
Salrio Dados
Maria
Engenheira
30
31 anos
anos
R$ 1000,00
Aniversrio Alterar Alterar
Idade Cargo
Orientao a Objetos / Herana
Classes Genricas podem ser especializadas
em subclasses
Subclasses herdam atributos e mtodos de
suas superclasses
Orientao a Objetos / Herana
Pessoa
idade
CPF
Alterar Dados
Funcionrio Cliente
idade idade
CPF CPF
Funcionrio
salrio Cliente
crdito
salrio
Alterar Dados crdito
Alterar Dados
Imprimir Salrio Calcular Crdito
Orientao a Objetos
Herana Mltipla
Veculo

Veculo Terrestre Veculo Aqutico

Carro Veculo Anfbio Barco


Classes Concretas e Classes Abstratas

Classes Concretas - So classes instanciveis, ou seja,


possuem instncias diretas

Classes Abstratas - So classes no instanciveis, ou


seja, no possuem instncias diretas (mas suas
subclasses possuem).
Classes Concretas e Classes Abstratas

nome
atualizar endereo
dados pessoais Pessoa idade
.......
status
salrio credito
atualizar salrio Empregado Cliente
.......
consultar status
consultar credito
comisso habilidade .......
atualizar Vendedor Projetista consultar
salrio
....... habilidade
.......
Orientao a Objetos
Polimorfismo
Polimorfismo a capacidade de assumir
diferentes formas
A subclasse pode redefinir um mtodo
herdado de uma superclasse
Orientao a Objetos
Polimorfismo
Funcionrio
Matrcula
Salrio Salrio =
Calcular Salrio (no. de dias
* Valor base)

Vendedor Gerente
Salrio =
comisso (no. de dias
nvel
Calcular Salrio * Valor base)
+ comisso
Estado

Conjunto
Conjunto dos
dos valores
valores dos
dos atributos
atributos de
de um
um
objeto
objeto em
em um
um determinado
determinado momento
momento
Estado

Atualizar
Salario Imprimir
Salario

Imprimir
Maria
Dados Engenheira Alterar
Pessoais R$ 1000,00 Cargo

Alterar
Dados Imprimir
Pessoais Cargo
Orientao a Objetos
outros conceitos

Evento - algo que acontece que gera uma


mudana de estado em um objeto
Mensagem - a chamada a um mtodo
Tipos de Objetos

Objetos de Negcio (ou do domnio do problema)

Entidade de software que representa uma abstrao de alguma coisa


no domnio do problema que precisamos modelar

Objetos de Implementao (necessrios construo do software)


Objetos de interface; e
Objetos de acesso a dados;

Entidades de software necessrias para a construo de sistemas


Orientados a Objetos, conectando, por exemplo, os objetos de negcio
ao mundo exterior (interface) e ao mecanismo de banco de dados
Orientao a Objetos
Classe de Negcio Classe de Interface

Aluno Janela
matrcula dimenso
nome cor
notas estilo
alterar dados pessoais redimensionar
matricular abrir
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Modelando Sistemas OO
Sistema conjunto de elementos
interrelacionados, que possuem
caractersticas comuns e que podem ser
entendidos como um todo.
Modelagem

Modelo uma representao de um sistema (ou objeto


qualquer). uma abstrao da realidade.
O conhecimento humano composto de modelos do
mundo real ou de modelos criados a partir de outros
existentes em nossa mente.
Consiste em criar um modelo de uma parcela do mundo
real ou a partir de outro modelo.
Em um modelo optamos por representar as caractersticas
do mundo real que so do nosso interesse, ou seja, que
so relevantes para o propsito da modelagem
Modelar por qu?

Possibilitar o estudo do comportamento do


sistema;
Possibilitar a discusso de correes,
modificaes e validao com o usurio, a baixo
custo;
Facilitar a comunicao entre os membros da
equipe; e
Documentar o sistema, registrando todas as
decises tomadas durante o Projeto.
Modelo Dimenses

As dimenses do modelo so as caractersticas da


realidade que so enfatizadas no modelo

O processo de abstrao determina quais destas


caractersticas sero representadas e quais sero
excludas do modelo
Nveis de Abstrao

Domnio
Conceitual

Especificao

Implementao Linguagem
Principais Erros de Especificao de
Sistemas
No revisar todos os requisitos;
No garantir que o texto dos Casos de uso estejam de acordo
com o comportamento esperado para o sistema ;
No utilizar prottipo para ajudar a validar o comportamento
do sistema;
Manter seus Casos de Uso em um nvel de abstrao alto
demais, que no ajude os clientes no tcnicos a entender o
que aquele Caso de Uso implementa;
O modelo de domnio no refletir os objetos conceituais do
mundo real;

(Doug Rosenberg & Kendall Scott - 2001)


Principais Erros de Especificao de
Sistemas
O texto do Caso de Uso no referenciar os objeto do domnio;
No questionar Casos de Uso que no tenham fluxos
alternativos;
No questionar se todos os fluxos alternativos foram
considerados em todos os Casos de Uso;
No se preocupar que o texto do Caso de Uso esteja na voz
passiva; e
No se preocupar que o texto do seu Caso de Uso tenha 4
pginas.

(Doug Rosenberg & Kendall Scott - 2001)


Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Histrico da UML
Incio dos anos 70 - Programao Estruturada
Meados dos anos 70 - Anlise Estruturada
Meados dos anos 80 - Anlise Essencial
Incio dos anos 90 - Anlise Orientada por
Objetos
Fim dos anos 90 - Maturidade em OO e
UML
Histrico da UML
Anlise Estruturada
Centrada em processos
Focada para os fluxos de dados
Voltada para grandes sistemas batch
Viso Top Down
Histrico da UML
Anlise Essencial
Modelo Essencial do Sistema
Particionamento por eventos
Sincroniza modelagem de dados com
modelagem de processos
Viso Middle out
Histrico da UML
Anlise Orientada a Objetos
O sistema uma coletnea de objetos que
interagem entre si
Programao mais prxima do mundo real
A mesma notao usada da anlise at o
projeto e a implementao
Melhor comunicao entre desenvolvedores
e usurios
Facilidade para reutilizao
Histrico da UML
Booch (Grady Booch)
OMT (James Rumbaugh) - Object
Modeling Technique;
OOSE (Ivar Jacobson) - Object Oriented
Software Engineering
Coad/Yourdon (Peter Coad/Ed Yourdon)
outros
Histrico da UML
1995 - Booch e Rumbaugh na Rational
lanam UML verso 0.8
1995 - Jacobson na Rational
1996 - OMG - Object Management Group
decide criar um padro em OO
jan 1997 - Rational lana UML verso 1.0
set 1997 - Rational lana UML verso 1.1
Histrico da UML
1997 - OMG adota UML 1.1 como padro
1998 - UML verso 1.2
1999 - UML verso 1.3
atualmente - UML verso 2.0
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
O que a UML
Linguagem de Modelagem Unificada
a padronizao da linguagem para
desenvolvimento de sistemas orientados a
objetos para visualizao, especificao,
construo e documentao de sistemas
Pode ser utilizada em todo o ciclo de
desenvolvimento de software
O que a UML
Mostra os limites de um sistema e suas
funes principais (Casos de Uso)
Representa a estrutura esttica do sistema
(Diagrama de Classes)
Mostra funes bsicas do sistema
(Diagramas de interao)
Modela o comportamento dos objetos
(Diagrama de Transio de Estados)
O que a UML
Descreve a implementao dos mdulos e
suas dependncias (Diagrama de
Componentes)
Mostra a organizao fsica do sistema,
computadores e perifricos e como eles se
conectam entre si (Diagrama de
Implantao)
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Diagrama de Casos de Uso
Caso de Uso em conjunto de seqncias
de aes que um sistema desempenha para
produzir um resultado observvel de valor a
um ator especfico
Um Caso de Uso descreve uma
funcionalidade a ser oferecida pelo sistema,
ou seja, um servio prestado ao usurio
Caso de Uso Sistema de Negcio

Simboliza parte de um negcio, onde so


definidas as responsabilidades do sistema e
as do ambiente.
Ambiente Fronteira Sistema de Negcio
Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.
Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.

Fluxo especfico de eventos para o sistema;


Ocorrem em uma mesma ocasio;
Diversas alternativas so melhor agrupadas em um
caso de uso.
Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.

provocado por estmulo proveniente de um ator evento


externo;
Ou por um instante no tempo, alcanado pelo sistema
evento temporal;
Consiste em um conjunto de aes, decises e transmisso
de estmulos de/para atores.
Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.

Raciocinar com atores individuais;


O ator representa um papel ou outro sistema;
O ator qualquer coisa externa ao sistema que interage em
algum momento com o sistema
Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.

O sistema suporta integralmente o Caso de Uso


Caso de Uso O que
Um caso de uso uma sequncia de aes
que um ator executa em um sistema com
um propsito especfico.

O resultado tem que ser mensurvel;


Importante para identificar casos de uso no nvel
adequado;
O sistema ajuda o ator a executar uma tarefa de valor
identificvel para um ator.
Caso de Uso
Na modelagem de um caso de uso observamos dois
aspectos:
O ambiente onde se encontra o Ator
O sistema onde se desenvolve o Caso de Uso
Queremos modelar a interao, sob o enfoque do
ator, ou seja, sem apresentar detalhes internos do
funcionamento do Sistema
Ator
Externo ao sistema;
Papel de algum, ou de
alguma coisa;
Abstrao de alguma pessoa
ou coisa que utiliza o sistema,
inclusive outros sistemas;
Tudo aquilo que interage com
o sistema e que interessa ser
modelado
Identificao de Atores
Atores so descobertos observando-se:
Quem utiliza o sistema;
Quem o responsvel por manter o sistema;
Hardware externo usado pelo sistema;
Outros sistemas que precisam interagir com o sistema.
Identificao de Casos de Uso
A partir dos atores:
1. Identificar os atores relacionados ao sistema ou
organizao;
2. Para cada ator, identificar os processos que ele
iniciam ou em que participa.
A partir dos eventos:
1. Identificar os eventos externos aos quais o sistema
deve responder;
2. Relacionar os eventos a atores e a casos de uso
Casos de Uso - Nomes
Expressa o que acontece quando uma instncia
do caso executada. O nome deve ser ativo
verbo no infinitivo + substantivo.

Servir Almoo
cliente

Adquirir material
gerente catlogo
Casos de Uso - Descrio
Quando um cliente entra no restaurante, ele saudado na
porta e convidado a retirar seu casaco. A seguir, o cliente
ocupa uma mesa e recebe o menu. Aps o cliente ficar
algum tempo escolhendo, ele solicitado a fazer o seu
pedido, ou o cliente pode chamar o garom, e o pedido
passado cozinha, onde preparado. Quando o pedido
est pronto, ele servido ao cliente. Aps a refeio,
espera-se que o cliente chame o garom para efetuar o
pagamento. Depois de pagar, o cliente pode solicitar seu
casaco e deixar o restaurante
Casos de Uso - Passos
Cliente entra no restaurante
Recepcionista convida-o a retirar o casaco
Cliente ocupa a mesa
Garom entrega o menu
Cliente escolhe o prato
Cliente faz seu pedido
Garom passa o pedido a cozinha
A cozinha prepara o pedido
O pedido servido ao cliente
Cliente solicita a conta
Cliente efetua o pagamento
Cliente solicita seu casaco
Cliente deixa o restaurante
Casos de Uso - Extenso
Alternativa onde os casos bsicos so mostrados
no modelo e outros cursos de eventos so
adicionados. Utiliza o outro caso de uso em
algumas situaes.

Servir Almoo
cliente
<<estende>>

Servir sobremesa
Casos de Uso - Incluso
Alternativa onde os partes comuns de dois ou
mais casos de uso so descritas em uma rea
comum. Ou quando um caso de uso utiliza
sempre outro integralmente.

Servir Almoo
<<inclui>>

cliente Pagar conta

<<inclui>>
Servir Jantar
Casos de Uso - Formato

A UML no especifica um formato rgido para


descrio de casos de uso, somente para sua
diagramao. Ela pode ser alterada para atender a
necessidades especficas, aumentar a clareza da
documentao ou melhorar a comunicao.
Normalmente as descries so construdas como
um texto explicativo ou passos de um
procedimento, em portugus.
Casos de Uso Conceitos Avanados

Generalizao
Casos de Uso
Ator

Representao de Requisitos No-


Funcionais
Casos de Uso Generalizao

Vender Carro

vendedor Vender Veculo

Vender Utilitrio
Atores Generalizao

Vender Equipamento

vendedor

Autorizar Crdito

Gerente
Representao de Requisitos
No-Funcionais
Tempo mximo
de resposta = 1 s

Autorizar Crdito

Gerente
Diagrama de Casos de Uso
Elementos:
-Ator Qualquer elemento externo ao sistema que interage com o
mesmo. Pode ser um usurio, um outro sistema, etc.

-Caso de Uso Uma funcionalidade do sistema que retorna


algo de valor para um ator, e ocorre em um
nico momento.

-Comunicao Indica que existe um fluxo de comunicaes


entre o Ator e o Caso de Uso. Pode ainda
indicar quem iniciou a comunicao

-Fronteira Mostra o escopo do sistema, dentro os casos de uso e


fora os atores.
Diagrama de Casos de Uso
Sistema de vendas

Emitir relatrio de vendas

gerente

Cadastrar cliente

cliente Sistema
Administradora
de CC
Diagrama de Casos de Uso
(Descrio de Caso de Uso)
Caso de Uso: 1 Cadastrar Cliente
Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela
internet
Atores : Cliente, Adm de carto
Incio : Esse caso de uso tem seu inco quando o cliente acessa o
portal da locadora na internet.
Fluxo Tpico
o
N Ao
1 Cliente informa o nmero do seu CPF
2 Sistema solicita os dados do cliente
3 Cliente informa seus dados
4 Sistema valida CC junto a adm de CC
5 Adm de CC informa CC OK
6 Sistema informa senha do cliente e encerra Caso de Uso

Fluxos Alternativos
Alternativa 1: Adm CC informa CC no OK.

No Ao
5 Adm informa CC no OK
6 Sistema emite mensagem para cliente e encerra Caso de Uso
Diagrama de Classes
Grfico bi-dimensional de elementos de
modelagem
Este diagrama evolui ao longo do ciclo de
vida do desenvolvimento
Mostra as classes e o relacionamento entre
elas
Diagrama de Classes
Descreve relaes estticas, basicamente:
Classes e sub-classes
Associaes
Atemporal
Objeto = qualquer coisa que faz sentido no
contexto da aplicao
Classe = conjunto de objetos com atributos,
comportamentos e semntica comuns.
Perspectivas

Domnio
Conceitual

Especificao

Implementao Linguagem
Modelo Conceitual

No modelo conceitual representamos conceitos


relativos ao domnio de um problema. Devemos
nos concentrar no negcio e no em detalhes de
implementao. No entanto, devemos tambm
lembrar que o objetivo da modelagem a
construo de um sistema
Domnio do Problema

O Domnio do Problema abrange as coisas e os


conceitos do mundo real relacionados ao
problema que se deseja resolver.
Podemos considerar que estamos querendo
trabalhar com somente a essncia do problema.
Modelo Conceitual O qu?

Representamos no modelo conceitual:


Conceitos
Atributos relacionados aos conceitos
Associao entre conceitos
Modelo Conceitual Para qu?
No existe um modelo conceitual totalmente correto ou
incorreto. Existem modelos teis e inteis
Se modelamos um conceito de uma determinada maneira,
devemos nos questionar quanto a sua utilidade e se a forma
que modelamos a que mais nos facilitar.
Queremos:
Representar abstraes
Independncia de implementaes
Facilidade de comunicao
Modelo Conceitual Como?
Conceito uma idia ou um algo tangvel uma
coisa
Construmos o modelo:
Usando nomes comuns ao negcio
Omitindo coisas ou detalhes irrelevantes
Sem acrescentar coisas que no estejam no negcio
Notao (elementos)
Classes
Atributos
Operaes
Associaes
Diagrama de Classes
Notao da Classe Exemplo

Aluno
Nome da Classe matrcula
nome
atributos notas
alterar dados pessoais
mtodos matricular
Diagrama de Classes
Classes

Aluno Aluno Aluno


matrcula - matrcula: int
nome - nome: char
notas # notas: float
alterar dados + alterar dados
matricular + matricular
Atributos
Visibilidade nome: expresso-tipo[multipicidade] = valor-
inicial
Visibilidade
Privado
Pblico +
Protegido #
Expresso-tipo
Tipo de atributo. Depende da linguagem
Multiplicidade
Seno indicada [1..1]
Mtodos
Visibilidade nome(lista de parmetros): expresso-tipo-retorno
Visibilidade
Privado
Pblico +
Protegido #
Lista de parmetros
Gnero nome:expresso-tipo = valor default
Gnero in, out ou inout
Expresso tipo depende da linguagem
Valor-default opcional
Expresso tipo retorno
Se no indicada no retornado nenhum valor
Diagrama de Classes
Relacionamentos

- Associao
- Agregao
- Generalizao
- Dependncia
Diagrama de Classes
Associao
A associao um conjunto de vnculos entre elementos do modelo.

Tipos de associao
Unria uma relao de uma classe consigo mesma (auto-
relacionamento)

Funcionrio

Chefia
Diagrama de Classes
Binria uma relao de uma classe com outra.

Aluno Cursa Disciplina

N-ria uma relao entre trs ou mais classes, mas uma nica pode
aparecer mais de uma vez.

Equipe Jogador

Temporada
Diagrama de Classes
Nome da associao - mostrado prximo linha do relacionamento para ajudar o
entendimento deste relacionamento, no sendo obrigatrio. Pode-se ainda colocar um
tringulo indicando o sentido de leitura do nome.

Aluno Cursa Disciplina


Diagrama de Classes
Multiplicidade

Colocada nas extremidades do caminho da associao, identifica o nmero de


instncias de uma classe que pode se relacionar com outra. A multiplicidade
especificada em uma extremidade determina que essa a quantidade de instncias
da classe oposta que se relacionar na associao. Apesar de ser opcional s deve ser
omitida nas primeiras verses do diagrama.

Muitos - ____________*
Exatamente 1 - ____________1
Zero ou Muitos - __________0..*
Um ou Muitos - __________1..*
Zero ou um - __________0..1
Mn ou mx - __________n..m
1,2 ou 4 - _________1..2,4
Diagrama de Classes

Papel

Colocada nas extremidades do caminho da associao, indica o papel representado


pela classe na associao. Normalmente o nome da classe j identifica o papel desta
na associao, tornando assim a representao do o papel desnecessria.

Funcionrio Gerente Setor


Departamento
Diagrama de Classes

Navegabilidade
Uma seta pode ser colocada na extremidade de uma associao indicando que a
navegao determinada na direo para onde partiu a seta. Se no existe seta a
navegao bi-direcional. Se a seta vai da classe eleitor para a classe candidato, isto
significa que a partir de um eleitor podemos determinar qual o seu candidato, mas a
partir de candidato no saberemos os seus eleitores.

Eleitor Candidato
Diagrama de Classes

Qualificador

um atributo ou uma lista de atributos, presentes em uma associao, cujos


valores servem para particionar o conjunto de instncias associadas com a outra
instncia do lado qualificado. Determina qual atributo identifica a instncia da
outra classe.

Edifcio No. Apto Apartamento


Diagrama de Classes

Classe de Associao

Representa uma associao que possui propriedades de classes com atributos,


operaes e outras associaes, ou seja numa associao se percebermos que a
mesma possui elementos prprios, estamos diante de uma classe de associao.

1..* *
Funcionrio Diviso

Alocao

Data
Diagrama de Classes
Classe de Associao X Classe

1 * Contrato
Pessoa
Data
*

1
Empresa
1..*
Pessoa * Empresa

Contrato
Data
Diagrama de Classes
Agregao
A hierarquia de agregao permite representar no Modelo de Objetos, estruturas
todo-parte
Um objeto (o agregado) contm, como atributos, outros objetos, de sua ou de
outras classes
O objeto parte tem existncia prpria independente da existncia do objeto todo
indicado por parte de

*
Turma Aluno
Diagrama de Classes
Composio
uma forma de agregao (por valor), com uma forte propriedade de vida
coincidente da parte com o todo.
O objeto todo declara uma instncia real do objeto parte dentro de seu prprio
corpo tornando o objeto parte fisicamente nele contido (atributo)
O objeto parte no tem existncia prpria sem a existncia do objeto todo

1..*
Pedido Item Pedido
Diagrama de Classes
Dependncia
Indica a ocorrncia de um relacionamento semntico entre dois ou mais
elementos, onde uma classe cliente dependente de alguns servios da classe
fornecedora, mas no tem dependncia estrutural interna.

Indica uma situao na qual uma mudana em um elemento (independente)


pode afetar outro elemento (dependente).

Classe A Classe B
Diagrama de Classes
X-OR
Somente ma das associaes indicadas pode existir para um determinada
instncia da classe comum.

Pessoa Fsica

Veculo {X-or}

Pessoa Jurdica
Diagrama de Classes
Pacote
Elemento que agrupa recursos (na UML elementos de
modelagem)
Apresenta tambm a dependncia entre partes de umprojeto
Contitui uma unidade que pode ser trabalhada de forma
independente
A dependncia entre pacotes normalmente uma importao.
Pode ser tambm um acesso.
Diagrama de Classes
Pacote - Notao

Pacote

Pacote
Diagrama de Classes
Pacote
Um pacote define um escopo, ou seja, quando
trabalhando dentro de um pacote, s se conhece o que
est dentro do mesmo ou o de outro que ele importe.
Um diagrama de pacotes serve para apresentar as
interdependncias, ou seja, uma arquitetura.
Diagrama de Classes
Pacote - Notao
Autorizao para Planejamento
uso. A
visibilidade de X&D Carrega o importado.
acesso deve Acesso direto.
ser ajustada Visibilidade resolvida

<<importa>>
<<acessa>>

Oramento Oramento
Diagrama de Classes
Generalizao / Especializao
um relacionamento entre um elemento mais geral e um elemento mais
especfico que completamente consistente com o primeiro elemento somando-
o informao adicional especializada.
Tambm conhecido como herana
Subclasses especializam uma classe
Superclasses generalizam uma classe
Identificado por um
Subclasses herdam atributos, operaes e associaes da superclasse

Pessoa

Aluno Professor
Diagrama de Classes
Generalizao / Especializao (Restries)
Restries pr-definidas podem ser usadas para indicar semnticas entre classes
filhas. Essas restries so colocadas entre chaves, separadas por vrgula junto a
seta do relacionamento.

Existem quatro tipos de restrio:


sobreposio;
disjuno;
completo; e
incompleto.
Diagrama de Classes
Generalizao / Especializao (Restries)

Sobreposio subclasses podem ocorrer simultaneamente com


relao a mesma superclasse. Um aluno pode tambm ser
simultaneamente um professor.

Pessoa
{sobreposio}

Aluno Professor
Diagrama de Classes
Generalizao / Especializao (Restries)

Disjuno subclasses ocorrem de maneira mutuamente exclusiva


com relao a mesma superclasse. Uma pessoa no pode ser
simultaneamente homem e mulher.

Pessoa
{disjuno}

Homem Mulher
Diagrama de Classes
Generalizao / Especializao (Restries)

Completo todas as subclasses da superclasse j foram especificadas


(dentro do contexto do sistema). No permitida nenhuma
especializao adicional.

Pessoa
{completo}

Fsica Jurdica
Diagrama de Classes
Generalizao / Especializao (Restries)

Incompleto nem todas as subclasses da superclasse foram


especificadas (dentro do contexto do sistema). permitida
especializao adicional.

Animal
{incompleto}

Mamfero Ave
Diagrama de Classes

Professor 1..*
Curso

Pessoa
1
Aluno
* 1..*
1..40
1 Disciplina
1..6
1..*
Turma
Diagrama de Objetos

Joo Matemtica
: Professor : Disciplina
Engenharia
: Curso
Pedro Fsica
: Professor : Disciplina
Descobrindo Classes

Faa uma inspeo gramatical nos Casos de Uso,


observando o seguinte:
Substantivos so fortes candidatos a classes e objetos
Verbos so normalmente operaes ou associao
Demonstrao de posse indica que um objeto deve ser um
atributo ou uma agregao.
Baseado na inspeo acima elabore uma lista de
candidatos a classe.
Modelo de Anlise

Tente identificar generalizaes ou especializaes


entre classes candidatas
Se achar que facilita o prosseguimento da modelagem,
desenhe as classes e as hierarquias encontradas usando a
notao simplificada
Ainda com base na inspeo gramatical, procure
identificar associaes entre as classes candidatas
Verifique se as associaes encontradas possuem
propriedades que sejam independentes das classes
associadas. Se for o caso, use classes de associao.
Modelo de Anlise

Verifique as associaes e adicione as multiplicidades.


Nomeie as associaes. Isto aumenta a legibilidade do
modelo e ajuda na sua verificao.
Use composio ao invs de agregao somente se a
regra de negcio sendo representada assim determinar.
Caso contrrio, a composio aparecer no modelo de
implementao (projeto).
O mtodo de refinamentos sucessivos uma excelente
tcnica para a construo de um bom modelo.
Diagrama de Classes - Recomendao

Estabelea um tempo para a modelagem e respeite-o. A


modelagem conceitual pode acabar levando mais tempo
do que deveria. No entanto, lembre-se que a qualidade
do modelo determinar, em grande parte, o atendimento
s necessidades do cliente, a flexibilidade e a
escalabilidade do sistema.
Diagrama de Transio de
Estados
Todos os objetos possuem um estado que significa
o resultado de atividades executadas pelo objeto, e
normalmente determinada pelos valores de seus
atributos e ligaes com outros objetos
Um objeto muda de estado quando um evento
acontece
Um DTE ajuda a prever o comportamento dos
objetos ao longo do tempo
No necessrio desenvolver um DTE para todos
os objetos, somente para os que tenham mudanas
significativas ao longo de suas vidas.
Diagrama de Transio de
Estados
Estado
o resultado cumulativo da vida do objeto at um determinado
momento
Um estado uma condio ou situao existente na vida de um objeto
durante a qual o estado satisfaz alguma condio, executa alguma
atividade ou espera por algum evento.
O estado de um objeto representado por seus atributos e associaes.

Aguardando
Pagamento
Diagrama de Transio de
Estados
Um estado pode ser opcionalmente subdividido em compartimentos
separados cada qual por uma linha horizontal. So eles:
Compartimento de nome
Armazena o nome do estado
Compartimentos de transies internas
Armazena uma lista de aes ou atividades internas que so executadas
enquanto o objeto se apresenta no referido estado. Uma transio interna
no modifica o estado do objeto.
Diagrama de Transio de
Estados
Compartimentos de transies internas
Existem algumas palavras reservadas que representam as transies
internas:
Entry --> identifica uma ao que executada na entrada do estado
Exit --> identifica uma ao que executada na sada do estado
Do --> identifica uma atividade em andamento, ou seja, que executada
continuamente durante o tempo em que o objeto permanece neste estado
Include --> usado para identificar a invocao de uma submquina.
Diagrama de Transio de
Estados
Compartimentos de transies internas
O formato geral
Tipo do evento/expresso-ao (lista de parmetros separadas
por vrgula)[condio de guarda ]

Digitando senha

Entry/echoInvisvel(True)
Exit/echoInvisvel(False)
Do/ValidarCaracter( )
Diagrama de Transio de
Estados
Estado Inicial --> um tipo de estado que indica o local de incio na
mquina de estados ou em um subestado

Aguardando Leitura
de Carto

e Estado Final--> um tipo de estado que indica que a mquina de


estados ou estado composto concluiu sua execuo

Atualizando lanamentos
Diagrama de Transio de
Estados
Transies --> uma transio um relacionamento entre dois estados
indicando que houve um mudana de estado e determinadas aes sero
executadas, quando um evento especfico ocorrer, garantindo que
condies foram satisfeitas. Esta transio um evento que gera uma
mudana de estados.
Formato: nome-do evento [condio de guarda]

Nota lanada
Aguardando Nota Atualizando Mdia
[nota>=0]
Diagrama de Transio de
Estados
Estado composto
Um estado composto um estado que possui uma decomposio grfica em
dois ou mais subestados.

Editando Texto

Caracter validado e processado

Aguardando ao
Caracter Digitado Tratando entrada
do usurio
Diagrama de Transio de
Estados
Estados compostos - concorrentes

Pit Stop

Trocando
pneus
Entrando Entrando
no Box no Box

Abastecndo
Diagrama de Transio de
Estados
Cliente solicita Reserva em aberto
reserva
entrada/verificar disponibilidade

Atendente Cancela
Reserva [No h Reserva
Disponibilidade] concluda
Cliente confirma
reserva
Cliente faz check out

Cliente cancela
reserva

Reserva Cliente faz check in Reserva


fechada iniciada
Diagrama de Atividades
Variao do DTE onde os estados
representam execuo de operaes
O evento dado pelo trmino da atividade
anterior
Este diagrama mostra o fluxo sequencial
das atividades e normalmente utilizado
para demonstrar atividades executadas por
uma operao especfica do sistema
Diagrama de Atividades
-Atividade Uma tarefa desempenhada para atender o sistema.

-Transio Uma transio um relacionamento entre duas


atividades que indica o trmino da primeira e o
consequente incio da posterior.

-Deciso Indica que neste ponto o fluxo pode seguir um dentre


vrios caminhos. O caminho a ser seguido depender
das condies de guarda

-Bifurcao Mostra que neste momento vrias atividades esto


sendo disparadas em paralelo

Mostra que neste momento as vrias atividades que estavam


-Unio
sendo executadas em paralelo voltaro a seguir um nico fluxo.
Diagrama de Atividades

-Raia Mostra o responsvel por desempenhar aquela


atividade.

- Incio Indica o incio do diagrama.

- Fim Indica o final do diagrama. Um ponto de sada.


Diagrama de Atividades
hotel setor reserva

Obter pedido
de reserva

Informar capacidade Obter quantidade


do hotel de pessoas

[Qtde insuficiente] [Qtde suficiente]

Recusar Confirmar
reserva reserva
Diagramas de Interao
So diagramas que mostram a interao
entre os objetos do sistema
Inclui uma sequncia de trocas de
mensagens entre objetos dentro de um
contexto para realizar um propsito
especfico do sistema
Os dois tipos existentes so : Diagrama de
Sequncia e Diagrama de Colaborao
Diagrama de Sequncia
Mostra a interao entre os objetos
Considera a sequncia no tempo
O tempo mostrado de maneira Top-Down
Mostra as interaes de objetos organizadas
em uma sequncia de tempo e de
mensagens trocadas
Diagrama de Sequncia - Concepo
Cada Caso de Uso prov vrios cenrios
Um cenrio uma instncia de um caso de uso
O diagrama de classes mostra os objetos do
domnio da aplicao
Fazemos um Diagrama de Sequncia mostrando a
interao dos objetos em um determinado cenrio,
ou seja, para cada cenrio de um Caso de uso
teremos um diagrama
Completam o trip da anlise:
Casos de Uso comportamento externo (funcional)
Diagramas de Classes viso esttica
internos
Diagramas de Sequncia viso dinmica
Diagrama de Sequncia - Concepo
Diag. Classes Caso de Uso
Caso de Uso: 1 Cadastrar Cliente
Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela
internet
Atores : Cliente, Adm de carto
Incio : Esse caso de uso tem seu inco quando o cliente acessa o
portal da locadora na internet.
1..* Fluxo Tpico
Professor Curso N
o
Ao
1 Cliente informa o nmero do seu CPF
Pessoa 1 2
3
Sistema solicita os dados do cliente
Cliente informa seus dados
4 Sistema valida CC junto a adm de CC

Operaes
Aluno 5 Adm de CC informa CC OK
* 1..* 6 Sistema informa senha do cliente e encerra Caso de Uso
1..40
1..6 1 Fluxos Alternativos

1..* Disciplina Alternativa 1: Adm CC informa CC no OK.

No Ao
Turma 5 Adm informa CC no OK
6 Sistema emite mensagem para cliente e encerra Caso de Uso

Diag. Sequncia

Objetos :
interface Cenrio
cli
en
teCliente solicita
cadastro ( )
Sistema solicita
dados ( )
cli
Cliente informa
Criar (dados):cliente
dados (dados)
Diagrama de Sequncia
-Ator Qualquer elemento externo ao sistema que interage com o
mesmo. Pode ser um usurio, um outro sistema, etc.

Cliente solicita -Mensagem Solicitao de um servio para uma classe. a


cadastro ( )
chamada a um mtodo do objeto

Objeto -Objeto uma instncia de uma classe.

-Linha de Vida Mostra o tempo de existncia do objeto

-Excluso de Objeto Posicionada sobre a linha de vida, mostra


que o objeto foi excludo da base de dados
loop -loop Indica que o grupo de mensagens que estiverem dentro do
loop se`ao repetidas vrias vezes
Diagrama de Sequncia
Visa Interface
interface
:adm cartao Adm CC
:cliente :adm CC
Cliente solicita
cadastro ( )
Sistema solicita
dados ( )
Cliente informa
dados (dados) Criar (dados) cli
:cliente
Verificar (no. CC)
Verificar (no. CC)
Verificar (no. CC)

Gerar no. Carto OK( )


Matricula( )
confirmar(no. mat )
Confirmar
Cadastro(no.mat)
Diagrama de Colaborao
Mostra uma interao organizada em torno
dos objetos e seus vnculos formando uma
base de padres
Mostra os relacionamentos entre objetos,
mas no trata o tempo como uma dimenso
separada
Prioriza a colaborao entre objetos e no a
sequncia em que isto ocorre
Diagrama de Colaborao
-Ator Qualquer elemento externo ao sistema que interage com o
mesmo. Pode ser um usurio, um outro sistema, etc.

Cliente solicita -Mensagem Solicitao de um servio para uma classe. a


cadastro ( )
chamada a um mtodo do objeto

Objeto -Objeto uma instncia de uma classe.

-Linha de Comunicao Mostra que existem mensagens


trocadas entre estes objetos
Diagrama de Colaborao
1.Cliente solicita
cadastro ( )
9.Gerar no.
2.Sistema solicita Matricula( )
dados ( ) 4.Criar (dados)
3.Cliente informa
dados (dados) 10.confirmar(no. mat ) cli
:interface
11.Confirmar :cliente
:cliente Cadastro(no.mat)

5.Verificar (no. CC)

7.Verificar (no. CC)

8.Carto OK( ) 6.Verificar (no. CC)


: interface Visa
Adm CC :adm cartao
:adm CC
Diagrama de Componentes
Este diagrama est relacionado diretamente
a implementao do sistema
Mostra as organizaes e dependncias
entre componentes de software,
representado a estrutura do cdigo gerado
Diagrama de Componentes

Cadastro.exe -Componente Apresenta os componentes do cdigo do sistema

- Chamada Indica a chamada para utilizao de outro componente.


Diagrama de Componentes

Cadastro.exe

Hotel.exe

Acesso ao
BD.dll
Diagrama de Implantao
Mostra como os elementos de Hardware so
interligados
Apresenta uma estrutura de ns, onde um
n um elemento de hardware
Pode mostrar quais componentes estaro
sendo executados em cada n
Diagrama de Implantao

-N Indica um elemento de hardware do sistema. Podem


Alarme de
incndio ser processadores ou perifricos.

- Conexo Indica uma conexo fsica entre os elementos de hardware.


Diagrama de Implantao

SUN
Alarme de Provedor
incndio ETHERNET TCP/IP

TCP/IP
PC Coleta

ETHERNET
PC
Alarme de Monitorao
umidade Ckliente
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Concluses
A UML uma linguagem de modelagem
no uma metodologia
A UML fornece ferramentas para
modelagem , mas no diz como fazer
Com base na UML os 3 amigos
elaboraram um Processo Unificado que
levou a criao do RUP (Rational Unified
Process), que porm no um padro
Concluses
O Banco de dados OO ainda no utilizado
largamente no mercado, o que dificulta a
utilizao da UML em toda a modelagem

A UML um padro mundial,vamos us-la!