Modelando Comportamento
© 2001 Jaelson Castro
Modelando Comportamento1
Objetivos




Explicar por que nós modelamos
comportamento?
Introduzir Diagramas de Estado
Statechart.
Introduzir Diagramas de Atividades.
Explicar o relacionamento do Diagrama
de Classes, Diagrama de Seqüência,
Diagrama de Colaboração.
© 2003 Jaelson Castro
Modelando Comportamento 2
Por que Modelar Comportamento?


Um Diagrama de Classes é uma visão
estática das classes de objetos e suas
associações.
Um modelo de comportamento é usado
para entender os aspectos do sistema
como:



© 2003 Jaelson Castro
evolução,
resposta aos estímulos externos,
variação temporal.
Modelando Comportamento 3
Por que Modelar Comportamento?


Comportamento é o aspecto do sistema
que descreve as seqüências de
operações que ocorrem em resposta
aos estímulos externos.
Importante para descrever a seqüência
de processamento (ex. Sistemas
interativos, tempo real, etc)
© 2003 Jaelson Castro
Modelando Comportamento 4
Statecharts



Estes são diagramas de transição de estados
(com algumas adições) que descrevem o
comportamento de alguns objetos (uma
pessoa, um estudante,…)
Transições representam ações que ocorrem
rapidamente e não são interropidas.
Estados representam atividades com uma
duração mais longa. O que estabelece
“rapidamente” e “mais longa” depende da
aplicação.
© 2003 Jaelson Castro
Modelando Comportamento 5
Diagrama de Estado para
Ordem de Pagamento
/get order
Checking
[all items in stock]
Dispatching
Do/package items
Do/check items
start
[some item not
In stock]
Item received
[all items in stock]
Item received
[some item not
In stock]
Waiting
© 2003 Jaelson Castro
/deliver
package
Delivered
Modelando Comportamento 6
Statecharts : Eventos & Estados



Um evento acontece no mundo e o
sistema precisa saber disso.
Em resposta ao evento, objetos no
sistema podem receber uma mensagem
para realizar uma ação (cada ação é
uma operação).
Após o envio da mensagem, o objeto
normalmente continua no mesmo
estado até a outra mensagem chegar.
© 2003 Jaelson Castro
Modelando Comportamento 7
Tempo de Vida do Curso
Initialization
offerNewCourse/set count=0
^create(CourseRoster)
addStudent[count<10]
Open
[count=10]
cancel
Closed
quarterStarted
cancel
[Lochovsky98]
Canceled
© 2003 Jaelson Castro
/delete(CourseRoster)
Modelando Comportamento 8
Estados



Um estado representa um período de tempo
durante a vida do objeto quando ele satisfaz
condições, realiza ações ou espera por algum
evento.
Em geral um estado pode ser caracterizado por
um predicado lógico, ex.: “operacional”.
Um predicado pode ser definido em termos de:

O(s) valor(es) de um ou mais atributos da classe

A existência de uma ligação com outro objeto
Ex. O endereço de uma pessoa
© 2003 Jaelson Castro
Modelando Comportamento 9
Diagramas Statechart


Um diagrama para cada classe com
comportamento não trivial.
Diagrama Statechart mostra:



Todos os eventos que afetam a classe;
Todos os seus possíveis estados.
Usado para:


Verificar consistência com os Diagramas de
Seqüência;
Identificar gatilhos/parâmetros/restrições de
operações.
© 2003 Jaelson Castro
Modelando Comportamento 10
Diagramas Statechart - Notação
Notação generalizada
event(parameters)[condition]/action
Start
State 1
State 2
End
© 2003 Jaelson Castro
Modelando Comportamento 11
Diagramas Statechart - Transições



Ações são processos que ocorrem rapidamente e
não são interrompidos
Condições (Guarda) retornam um valor lógico
“True/False” - a transição ocorre quando “True”
Quando não existe Evento no rótulo a transição
ocorre assim que as atividades do estado corrente
são concluídas
© 2003 Jaelson Castro
Modelando Comportamento 12
Atividades



do/stateDiagramName(parameterList)
-“chama” outro diagrama de estado
entry/action -- executa a ação quando entra no
estado
exit/action -- executa a ação quando sai do estado
© 2003 Jaelson Castro
Modelando Comportamento 13
Atividades
State 1
entry: action
do: activity
exit: action
© 2003 Jaelson Castro
Modelando Comportamento 14
A Evolução de um Curso
Initialization
do / Initialize
addStudentt count=0
^CourseRoster.Create()
addStudent [count<10]
Open
entry / RegisterStudent
exit / ^CourseRoster.AddStudent(student)
[count=10]
cancel
Cancelled
cancel
Closed
do / FinalizeCourse
^CourseRoster.Delete()
quarterStarted
© 2003 Jaelson Castro
Modelando Comportamento 15
Estados aninhados (Super
Estados)


Diagramas de transição de estados
podem ser de difícil leitura (quando
contém mais de uma dúzia de estados).
Diagramas
Statecharts em UML,
estados
podem
conter
estados
aninhados. Tais composições servem
para refinamento de estados.
© 2003 Jaelson Castro
Modelando Comportamento 16
Estados aninhados (Super
Estados)
Transmission
select R
Neutral
Reverse
select N
select N
select F
Forward
© 2003 Jaelson Castro
Modelando Comportamento 17
Estados aninhados (Super
Estados)
Transmission
select R
Neutral
Reverse
select N
select N
select F
Forward
stop
upshift
First
Second
downshift
© 2003 Jaelson Castro
upshift
Third
downshift
Modelando Comportamento 18
Diagrama de Classe:
Processamento de um pedido
O
r
d
e
m
o
t
s
u
C
r
e
R
e
t
a
d
v
i
c
d
a
p
e
r
P
s
i
s
e
r
d
a
m
u
n
g
n
i
t
S
:
r
e
b
m
a
n
e
*
1
M
:
e
c
i
r
p
o
y
e
n
r
S
:
)
(
g
n
a
R
t
i
d
e
c
m
t
i
k
e
h
c
)
(
e
s
o
l
c
)
(
h
c
t
a
p
s
i
d
y
r
v
l
d
e
a
t
n
i
m
e
t
i
1
C
p
a
e
u
o
t
r
s
m
r
e
P
m
t
u
C
l
a
n
o
s
r
e
r
e
t
a
N
n
c
m
o
e
c
#
a
C
t
i
d
e
r
L
t
d
m
i
e
r
c
t
i
a
R
i
d
t
g
n
e e
r
c
)
(
g
n
a
R
t
i
d
r
c
{
m
t
e
n
i
l
sM
F
l
i
r
b
o
h
n
I
e
)
o
(
t
r
g
=
"
p
o
r
}
*
m
e
r
)
(
d
n
i
*
O
r
n
i
L
e
d
1
0
n
l
o
B
:
d
e
f
i
t
a
S
s
o
t
r.
P
c
u
d
*
1
M
:
e
c
i
r
p
y
e
n
o
m
E
e
y
o
l
p
r
g
e
I
:
y
i
t
n
a
u
q
© 2003 Jaelson Castro
Modelando Comportamento 19
Super Transição

Transições podem ocorrer a partir de vários
estados para um único estado


ex. uma ordem de pagamento pode ser cancelada
em algum ponto antes de ser liberada.
Isto pode ser desenhado com várias
transições ou através da criação de um
super estado.
© 2003 Jaelson Castro
Modelando Comportamento 20
Diagrama de Statechart do
pedido
Order
Start
/get first item
get next item
[Not all items checked]
Checking
[All items checked &&
all items available]
do: check item
Dispatching
do: initiate delivery
[All items checked &&
some items not in stock]
Item Received
[all items available]
Delivered
Waiting
Delivered
Item Received
[some items not in stock]
Adicione um novo estado e separe as transições para mostrar que
um pedido pode ser cancelado antes da sua entrega.
© 2003 Jaelson Castro
Modelando Comportamento 21
Diagrama de Statechart do pedido:
Super Estado & Super Transição
Order
Superstate name
Start
Active
/get first item
get next item
[Not all items checked]
Checking
[All items checked &&
all items available]
do: check item
Dispatching
do: initiate delivery
[All items checked &&
some items not in stock]
Item Received
[all items available]
Waiting
Item Received
[some items not in stock]
cancellation
Cancelled
© 2003 Jaelson Castro
Delivered
Modelando Comportamento 22
Estados Concorrentes

Usado quando um dado objeto tem um
conjunto de comportamentos independentes

ex. Uma ordem de pagamento pode estar
num estado “sendo verificada” ou “sendo
autorizada”
© 2003 Jaelson Castro
Modelando Comportamento 23
Estados Concorrentes: Pedido
autorização
Cancelled
Waiting
Checking
Dispatching
Delivered
Authorizing
Authorized
Rejected
© 2003 Jaelson Castro
verificação
Modelando Comportamento 24
Transições Complexas



Transição para a fronteira do super estado 
transição para o estado inicial do super
estado.
Também podem existir transições diretas para
um estado específico (como programa
“gotos”).
Transição a partir da fronteira de um super
estado  transição a partir do estado final de
um super estado
© 2003 Jaelson Castro
Modelando Comportamento 25
Statecharts & Relacionamento
para outros Diagramas



Eventos no diagrama de statechart devem
aparecer como um mensagem de entrada
para o objeto apropriado num diagrama de
seqüência e colaboração.
Um diagrama de statechart é preparado para
todas as classes de objeto do Diagrama de
Classes com comportamento complexo.
Todo evento deve corresponder a uma
operação na classe apropriada.
© 2003 Jaelson Castro
Modelando Comportamento 26
Statecharts & Relacionamento
para outros Diagramas



Toda ação deve corresponder à execução de
uma operação na classe apropriada.
Entry/Action, Exit/Action e
Do/Activity
num Estado, normalmente será equivalente a
operações no Diagrama de Classes.
Toda mensagem de saída enviada a partir de
um statechart deve corresponder a uma
operação em outra classe.
© 2003 Jaelson Castro
Modelando Comportamento 27
Diagramas de Atividade


Diagramas de atividade descreve as
atividades que envolvem concorrência e
sincronização.
Variação de Statecharts que focaliza
num fluxo de atividades que são
orientadas pelo processamento interno
de um objeto.
© 2003 Jaelson Castro
Modelando Comportamento 28
Diagramas de Atividade

Pode ser usado



© 2003 Jaelson Castro
Para modelar uma tarefa humana (parte da
modelagem do negócio).
Para descrever uma função do sistema
(representada por um Caso de Uso).
Na especificação de operações, (descreve a
lógica de uma operação).
Modelando Comportamento 29
Outro Exemplo:
Processamento de um Pedido

O Caso de Uso do processamento do pedido:
Quando recebemos um pedido, checamos cada item
para vermos se temos no estoque. Se temos, nós
atribuímos os itens ao pedido. Se com essa ordem os
níveis de estoque do produto atingem um valor
mínimo então será necessário fazer um pedido de
compra de produtos para o estoque.Enquanto
fazemos isso, nós checamos se o pedido foi pago. Se
o pagamento foi feito e se tivermos os itens no
estoque, o pedido é despachado. Se o pagamento foi
feito e nós não tivermos os itens no estoque,
deixamos o pedido em espera. Se o pagamento não
foi feito, o pedido é cancelado.
© 2003 Jaelson Castro
Modelando Comportamento 30
Diagrama de Atividade do
Processamento de um Pedido
Receive
Order
for each line
* item on order
Check
[failed] Authorize
Line
Payment
Item
[succeeded] [in stock]
Cancel
Order
Assign to
Order
© 2003 Jaelson Castro
[stock assigned to
all line items and
payment authorized]
Dispatch
Order
[need to
reorder]
Reorder
Item
Modelando Comportamento 31
Diagramas de Atividade

Pontos de decisão:
Calculate
total cost
[cost < $50]
[cost ≥ $50]

Charge
customer’s
account
Get
authorization
Fim: podem existir transições num diagrama de atividade com
nenhum estado destino; isto pode significar que:
 Nem todo processamento deve ter sido especificado,
 Ou, que outro diagrama de atividade assumirá o controle.
© 2003 Jaelson Castro
Modelando Comportamento 32
Raias


Um diagrama de atividade pode ser
dividido em raias.
Cada raia:


Representa um foco de responsabilidae
na atividade
Pode manipular distintas operações de
um ou mais objetos.
© 2003 Jaelson Castro
Modelando Comportamento 33
Raias
swimlane
Get Order
Purchase
Order Dept.
Synchronization bar
Waiting
Checking
Dispatching
[cancelled]
Authorizing
Finance
Dept.
© 2003 Jaelson Castro
[accepted]
Authorized
[rejected]
Modelando Comportamento 34
Mais Swimlanes
Finance
Stock
Manager
Order
Receive Processing
Order
[failed]
Authorize
Payment
[succeeded]
Cancel
Order
[stock assigned to
all line items and
payment authorized]
Dispatch
Order
© 2003 Jaelson Castro
for each line
* item on order
Choose
Check
Outstanding
Line
Order Items
Item
for
each
chosen
[in stock]
order item *
Assign
Assign to
Goods to
Order
Order
[need to
reorder]
Reorder
Item
Receive
Supply
[all outstanding
order items filled]
Add
Remainder
to Stock
Modelando Comportamento 35
Leituras Adicionais


[Booch99] Booch, G. et all. The Unified Modeling
Language User Guide. Chapters 19, 20, 21, 24.
Addison-Wesley.
[Fowler00] Fowler, M. et all. UML Distilled: A Brief
Guide to the Standard Object Modelling Language.
Chapters 8, 9. Addison-Wesley.
© 2003 Jaelson Castro
Modelando Comportamento 36
Download

Modelando Comportamento