Sunteți pe pagina 1din 91

1

UML
Roger Schardong
Instituto de Informtica - UNISINOS
2
O que UML
Unified Modeling Language (Linguagem de
Modelagem Unificada).
Surgiu por volta da dcada de 80 e 90.
Une o melhor de Booch, Jacobson e
Rumbaugh.
OMG (Object Management Group) - 1997.
3
O que UML
Aspectos importantes:
A UML baseada em um conjunto de
diagramas.
Cada diagrama enfoca um aspecto distinto do
problema.
Todos os diagramas esto ligados de alguma
forma.
4
Objetivos da UML
Prover aos usurios uma linguagem de
modelagem visual expressiva e pronta para
uso, de forma que eles possam desenvolver e
intercambiar modelos significativos.
Ser independente de linguagens de
programao e processos de desenvolvimento
particulares.
Prover uma base formal para entendimento da
linguagem de modelagem.
5
UML versus Metodologia de
Desenvolvimento
Metodologia:
Processo (O que?)
Processos tcnicos.
Processos gerenciais.
Modelos.
A UML simplesmente uma linguagem de
modelagem.
6
Processo de Software
7
Diagramas da UML
Proposta bsica:
1. Diagrama de Caso de Uso
2. Diagrama de Classes
3. Diagramas de Interao
(Seqncia/Colaborao)
4. Diagramas de Estado e de Atividade
5. Diagramas de Componentes e de
Implantao
8
Caso de Uso
O que ?
Porque modelar Casos de Uso?
Identificao de quem ou o que interage com o
sistema proposto.
Identificao das regras de negcio.
Este diagrama deve ser simples, porm no
incompleto.
9
Caso de Uso ou Processo?
Processo:
Representam fluxos de dados
Necessitam de entradas e sadas
Caso de Uso:
Representa uma funcionalidade de negcio
manipulada por uma entidade do sistema.
uma seqncia de aes que caracterizam um
comportamento que o sistema deveria ter.
No deve se preocupar com o como das
aes.
10
Atores
Porque Ator?
Porque esto relacionados a um papel!
11
Identificando Casos de Uso
1. Identifique os Atores.
2. Escolha um desses Atores.
3. Defina os interesses desse Ator com
relao ao sistema.
1. Esses sero os Casos de Uso
4. Identifique o curso (sentido) da relao
Ator-Caso de Uso.
5. Identifique se o Caso de Uso possui algo
em comum com outros Casos de Uso.
12
Desenhando um Diagrama de Caso de
Uso
At or
Cas o de Us o
13
Desenhando um Diagrama de Caso de
Uso
Atender paci ente
Enfermei ra
Marcar consul ta
Diagnosticar paciente
Mdico
Receitar medicamento
14
Exerccio
Contexto da biblioteca, onde os emprstimos
e devolues so feitos pelos usurios...
Emprstimos e devolues de livros
Compra e descarte de livros
15
Desenhando um Diagrama de Caso de
Uso
Enfermei ra
Mdico
Receitar medicamento
Atender paciente
Marcar consulta
Diagnosticar paciente
Verificar dados do paciente
<<include>>
<<include>>
<<include>>
16
Diagrama de Casos de Uso
Caso de Uso Contem Regras de Negcio
Ajuda a delimitar o escopo do sistema
No devem se preocupar com o como
Devem ser simples, mas no incompleto
17
Diagrama de Casos de Uso
Realizar emprstimo
Usurio
Reservar ttulo
Professor
Requisitar compra de ttulo
18
Diagrama de Casos de Uso
Matricular aluno
Matricular aluno de extenso Matricular aluno de graduao
19
Caso de Uso
Fase de Anlise:
Capturar os requisitos do sistema e entender o
que ele faz.
Fase de Projeto:
Especificar o comportamento do sistema que
ser implementado.
20
Caso de Uso O quanto detalhar?
Depende.
Da poltica de trabalho da empresa.
Da viso de sistema que se deseja.
Da complexidade do problema.
Riscos:
Prolongar demasiada a fase de anlise e/ou
projeto.
Perder o foco do projeto.
21
Descrevendo um Caso de Uso
Identificao
Descrio sucinta/Objetivo
Atores
Pr-condies
Curso normal
Fluxos alternativos
Ps-condies
Excees
Outros:
Consideraes Gerais
Observaes
Detalhamento Tcnico
Informaes
Prottipo de Interface
...
22
Modelo de Especificao de
Caso de Uso
23
Exerccio
Casos de Uso do sistema de
Estacionamento
o Controlar entrada e sada de carros, pela placa.
o Controlar tempo do carro no estacionamento. Um
carro que est fora no pode sair e vice e versa.
o Controlar faturamento do estacionamento
conforme um valor X a ser cobrado pela primeira
hora e um valor Y pelas horas adicionais. Se o
nmero de horas ultrapassar 12 horas, cobrar
apenas um valor K. O pagamento efetuado na
sada.
24
Exerccio OO
Modelar um diagrama de caso de uso que
controle a autenticao, carrinho de compras
e o pagamento de um cliente em uma loja
virtual.
Detalhes do escopo: O carrinho pode conter
vrios produtos, a forma de pagamento
com carto de crdito em uma vez apenas, e
para colocar os produtos no carrinho e/ou
pagar, o cliente deve estar logado no
sistema.
25
Diagrama de Classes
Representa o comportamento do sistema de
forma esttica.
Principal artefato da anlise.
Criado a partir das descries dos casos de
uso.
26
Diagrama de Classes
27
Diagrama de Classes - Atributos
Visibilidade:
+ Pblico (Public)
- Privado (Private)
# Protegido (Protected)
Exemplo:
- nome : String = Joo
28
Diagrama de Classes - Mtodos
Visibilidade:
+ Pblico (Public)
- Privado (Private)
# Protegido (Protected)
Exemplo:
+ registrar(argumento : String = Joo) :
Long
29
Diagrama de Classes
Relacionamentos
Associao
Agregao
Composio
Dependncia
Herana
30
Diagrama de Classes - Associao
Cli ente Pedido
31
Diagrama de Classes - Agregao
Disciplina
Aluno
Professor
Horrio
Turma
Local
32
Diagrama de Classes - Composio
Motor
Roda
Carro
Chassi
33
Diagrama de Classes - Dependncia
34
Diagrama de Classes - Herana
Pessoa
Pessoa Fsica
Pessoa
Jurdica
35
Diagrama de Classes - Herana
Pessoa
Pessoa Fsica
Pessoa
Jurdica
36
Diagrama de Classes
Multiplicidade:
Define a quantidade de instncias (objetos) que
uma classe pode/deve ter.
Papel (role):
Descreve o estado de uma classe.
Caracteriza os relacionamentos com outras
classes.
37
Diagrama de Classes - Multiplicidade
Valor Descrio
* Nmero ilimitado de instncias.
1 Uma nica instncia.
0..* Zero ou mais instancias.
1..* Uma ou mais instancias.
0..1 Zero ou uma instancia.
<literal> Nmero definido de instancias.
<literal>..* Nmero mnimo definido de
instancias ou mais.
<literal>..<literal> Nmero mnimo e Maximo definidos
de instancias.
38
Diagrama de Classes
39
Diagrama de Classes
40
Diagrama de Classes
Como identificar classes?
Anlise Semntica:
Substantivos
41
Diagrama de Classes
Exerccios
Modelar as classes relativas aos casos de uso descrito no
ltimo exerccio (Estacionamento)
Classes de negcio
Relacionamentos
Atributos
Classes de projeto
Mtodos
42
Diagrama de Classes
Exerccios
Modelar as classes relativas aos casos de uso
descrito no ltimo exerccio (Loja Virtual)
Classes de negcio
Relacionamentos
Atributos
43
Diagrama de Classes
Exerccios
A empresa ABC precisa de um sistema de clculo
de folha de pagamento. Essa empresa possui em
seu quadro empregados terceiros horistas,
funcionrios com carteira assinada e vendedores
que so remunerados por comisso.
Modele as classes necessrias para implementar o
clculo da folha de pagamento utilizando a idia de
polimorfismo. A empresa pensa no futuro em
remunerar seus diretores de maneira diferenciada.
44
Diagramas de Interao
Representam o comportamento dinmico
do sistema.
Baseiam-se nos requisitos do software e em
seu comportamento esttico.
Modela o como de um sistema OO
Define as operaes e onde elas so
localizadas (atribuio de responsabilidade de
classe)
45
Diagramas de Interao
Diagrama de Seqncia
nfase na ordenao temporal das mensagens.
Diagrama de Colaborao
nfase nos relacionamentos estruturais entre os
objetos.
So 100% equivalentes.
46
Diagrama de Seqncia
: Classe1 : Classe2
: Classe3
mtodo1(String)
mtodo2(String)
new
mtodo3(Integer)
Linha de vida
Retorno
Objeto
Mensagem
Criao
Destruio
Tempo de vida
[condio]
*[repetio]
47
Diagrama de Seqncia - Mensagens
Sncrona
Simples
Assncrona
Retorno
48
49
Como criar Diagramas de Seqncia
Descrevem somente um cenrio por vez.
Um Caso de Uso descreve um ou mais
cenrios.
Os Diagramas de Seqncia descrevem
mais facilmente os cenrios dos Casos de
Uso.
50
Quais so os passos?
Caso de Uso descrito.
Identificar classes de projeto (arquitetura).
Identificar as colaboraes entre as classes.
Identificar as responsabilidades das classes.
Identificar os cenrios.
Organizar as classes de forma hierrquica.
Identificar interaes entre os objetos.
Montar o Diagrama.
51
Exerccio
Montar um diagrama de sequncia para o
Caso de Uso Entrada de Veculo
Montar um diagrama de sequncia para o
Caso de Uso Sada de Veculo
H tempo de aula? Se sim, modelar o
diagrama de sequncia dos outros objetos do
sistema de estacionamento.
52
Exerccio
Montar o diagrama de seqncia do login do
usurio
53
Diagrama de Colaborao
:Classe 1
:Classe 2
:Classe 3
6: mtodo4( )
1: <<create>>
2: mt odo1( )
3: <<destroy>>
4: mtodo2( )
5: mtodo3(Long, String)
Objeto
Vnculo
Mensagem
Mtodos
Seqncia
[condio]
*[repetio]
54
: Sistema
: Aluno
: Vinculo
: Curri culoAluno : Curso
: DisciplinaMatriculada
: Disciplina
2: validarSenha()
7: get Curr iculoAl uno( )
1: consulta(Long, String)
3: veri ficaVi nculo( )
6: getCurso( )
12: getDisc ipli nasMatriculadas( )
18: getDisciplinasMatriculaveis( )
4: c onsulta( )
5: Valido( )
8: consulta( )
9: getCurso( )
19: getDisciplinasMatriculaveis( )
13: consulta( )
17: getSituacao( )
10: consulta( )
11: getCodigo( )
20: consulta( )
21: getCodigo( )
22: getNome( )
14: consult a( )
15: getCodigo( )
16: getNome( )
55
Quais so os passos?
Caso de Uso descrito.
Identificar classes e colaboraes.
Identificar os cenrios.
Identificar os objetos.
Identificar os vnculos.
Identificar interaes entre os objetos.
Montar o Diagrama.
56
Exerccio
Construir os diagramas de colaborao dos
mesmos objetos construdos nos diagramas
de sequncia.
57
Exerccio
Montar o diagrama de colaborao do login
do usurio
58
Diagrama de Estados
Caracteriza uma mquina de estados.
Apresenta a seqncia de estados que um
objeto pode assumir durante sua vida.
Apresenta os estmulos que causam a
mudana de estados.
59
Diagrama de Estados
Estado 1
entry/ ao 1
exit/ ao 2
Est ado 2
event o 1 evento 2( arg 1, arg 2 )[ condio ]
Estado
Estado inicial
Estado final
Transio
Evento
Aes
60
Diagrama de Estados
em
internao
em
consulta
em
observao
em
medicao
61
Diagrama de Estados
Pronto
Escolhendo
transao
Efetuando
transao
Finalizando
t ransao
Manuteno
Checando
[ senha invlida ]
[ t rmi no requisi tado ]
[ menu de opes requisitado ]
[ fal ha detectada ]
62
Diagrama de Estados
Checando
entry/ identificarCarto( )
exit/ liberarCarto( )
do/ verificarLimiteSaque( )
63
Diagrama de Estados
Modela o ciclo de vida de objetos de uma
classe.
Pode influenciar nos requisitos do sistema.
Muitos dos eventos resultaro em mtodos
na classe.
Ajuda a esclarecer situaes complexas /
problemticas.
64
Diagrama de Estados
Exerccio
Modelar estados de um carro no estacionamento
65
Diagrama de Estados
Exerccio
Modelar o estado do carrinho de compras da
loja virtual modelada anteriormente.
66
Diagrama de Atividades
um diagrama equivalente ao antigo
Fluxograma.
Descreve sequncias de aes, eventuais
decises e responsveis por cada passo.
67
Atividade 2
Atividade 3
[ condio 1 ]
Atividade 4
Atividade 5
[ condio 2 ]
Atividade 1
evento 1( x )
Evento
Condio
Atividade
Deciso
Incio
Fim
Bifurcao
Unio
68
Atividade 1
Atividade 5
Atividade 7
Atividade 2
Atividade 6
Atividade 8
At ividade 3
At ividade 4
Ra ia 3 Raia 2 Raia 1
69
Diagrama de Atividades
Quando Usar?
Modelagem de processos de negcio
(passo mais inicial dentro do processo de
anlise de negcio)
Analisar um Caso de Uso complexo
Entender um workflow
Descrever um algoritmo / clculo complexo
70
Diagrama de Atividades
Quando No Usar?
Colaborao entre os objetos
Comportamento de objetos durante seu ciclo
de vida
71
Diagrama de Atividades
Exerccio
Modelar um diagrama de atividades para o
Calculo valor a ser pago por um veculo na sada.
Escolha mais um caso de uso do sistema de
estacionamento para ser modelado com o
diagrama de atividades.
72
Diagrama de Atividades
Exerccio
Modelar o diagrama de atividades para o
processo de compra a pagamento de produtos na
loja virtual.
73
Decompondo o Sistema
Conjunto de objetos que interagem entre si.
Conjunto de sub-sistemas.
Questes:
Como decompor um sistema?
Como suas classes sero dispostas?
Como os sub-sistemas sero dispostos
fisicamente?
74
Decompondo o Sistema
Arquitetura de Software!
UML (OMG, 2001):
a estrutura organizacional do software.
Uma arquitetura pode ser recursivamente
decomposta em partes que interagem atravs de
interfaces. Relacionamentos conectam as
restries que se aplicam ao agrupamento das
partes.
75
Pacotes
Mecanismo de uso geral para organizao
da modelagem.
Podem representar a arquitetura (camadas)
do sistema.
76
Pacotes
Pacote
77
Pacotes
Viso de
Implementao
Viso de
Projeto
Viso de Caso
de Uso
Viso de
Processo
Viso de
Implantao
78
Pacotes
Apre s enta o Negcio
79
Pacotes
Pacote 3
Pacote 1
Pacote 2
80
Diagrama de Componentes
a relao de todos os itens de software
que compem o produto final.
Mostra a forma com que o software est
organizado.
Mas, o que so componentes?
81
Diagrama de Componentes
So um agrupamento de classes.
Podem representar diversos itens de
software:
Executvel
Arquivo
Documento
Biblioteca
Tabela
Banco de dados
82
Diagrama de Componentes
Componente
83
Diagrama de Componentes
Int erface
Componente
84
Diagrama de Componentes
Interface
Componente
Componente 2
85
Diagrama de Componentes
86
Diagrama de Implantao
(Deployment)
Modela o ambiente em que o sistema ser
executado.
So compostos por ns e relacionamentos de
comunicao.
Um n pode ser, por exemplo, um
computador cliente, um servidor, um recurso
de armazenamento, etc.
Um n um elemento fsico onde sero
implantados componentes
87
Diagrama de Implantao
n
88
Diagrama de Implantao
servidorWeb
Autenticao.exe
Cadastro.exe
servidorDeArquivos
FormCadastro.html
Principal.html
FormEntrada.html
servidorBancoDeDados
SGBD
O SGBD a ser
utilizado ainda
no foi escolhido.
PC - G309
Nestscape
Communicator
5.0
89
Exerccios
Modelar um diagrama de pacotes e um
diagrama de componentes (equivalentes)
para representar a arquitetura do sistema
do Estacionamento
Modelar um diagrama de implantao,
mostrando como os componentes sero
distribudos fisicamente nessa aplicao
90
Exerccios
Modelar um diagrama de pacotes e um
diagrama de componentes (equivalentes)
para representar a arquitetura do sistema
da Loja Virtual
Modelar um diagrama de implantao,
mostrando como os componentes sero
distribudos fisicamente nessa aplicao
91
Muito obrigado a todos!
Roger Schardong
rogerpuc@gmail.com
roger.cs@gmail.com
Instituto de Informtica - UNISINOS

S-ar putea să vă placă și