36
© 2001 Jaelson Castro Modelando Comportamento1 Modelando Comportamento

© 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

Embed Size (px)

Citation preview

Page 1: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2001 Jaelson Castro Modelando Comportamento1

Modelando Comportamento

Page 2: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 2

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.

Page 3: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 3

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: evolução, resposta aos estímulos externos, variação temporal.

Page 4: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 4

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)

Page 5: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 5

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.

Page 6: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 6

Diagrama de Estado para Ordem de Pagamento

/get order CheckingDo/check items

DispatchingDo/package items

[some item notIn stock]

Waiting

Item received[some item not

In stock]

Item received[all items in stock]

[all items in stock]

Delivered

/deliver package

start

Page 7: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 7

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.

Page 8: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 8

Tempo de Vida do Curso

Initialization

Open Closed

Canceled

offerNewCourse/set count=0^create(CourseRoster)

[count=10] addStudent[count<10]

cancelcancel

/delete(CourseRoster)

quarterStarted

[Lochovsky98]

Page 9: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 9

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

Ex. O endereço de uma pessoa A existência de uma ligação com outro objeto

Page 10: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 10

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.

Page 11: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 11

Diagramas Statechart - NotaçãoNotação generalizada

StartState 1

End

event(parameters)[condition]/action

State 2

Page 12: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 12

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

Page 13: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 13

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

Page 14: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 14

Atividades

State 1

entry: actiondo: activityexit: action

Page 15: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 15

addStudentt count=0^CourseRoster.Create()

[count=10]

addStudent [count<10]

cancel

cancel

^CourseRoster.Delete()quarterStarted

Closeddo / FinalizeCourse

Cancelled

entry / RegisterStudentexit / ^CourseRoster.AddStudent(student)

Open

Initializationdo / Initialize

A Evolução de um Curso

Page 16: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 16

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.

Estados aninhados (Super Estados)

Page 17: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 17

Estados aninhados (Super Estados)

Neutral

Forward

Reverse

Transmission

select R

select N

select Fselect N

Page 18: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 18

Neutral Reverse

Transmission

select R

select N

select Fselect N

SecondFirst Third

Forwardupshift upshift

downshiftdownshift

stop

Estados aninhados (Super Estados)

Page 19: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 19

Diagrama de Classe: Processamento de um pedido

Order

dateReceivedisPrepaidnumber:Stringprice:Moneycheck itemclose()dispatch()initiate deliveryitem

Customer

addressnamecreditRating():Sring

CorporateCustomer

contactNamecreditLimitcreditRatingbillForMonth(Integer)remind()

PersonalCustomer

creditCard#

{creditRating() =="poor"}

OrderLine

isSatisfied:Booleanprice:Moneyquantity:Integer

Product

Employee

1*

1* 0..1

*

1

*line items

Page 20: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 20

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.

Page 21: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 21

Adicione um novo estado e separe as transições para mostrar que um pedido pode ser cancelado antes da sua entrega.

Order

Checking

do: check item

Start

get next item[Not all items checked]

Dispatching

do: initiate delivery

[All items checked && all items available]

Waiting

Item Received[some items not in stock]

[All items checked && some items not in stock]

Delivered

/get first item

Item Received[all items available]

Delivered

Diagrama de Statechart do pedido

Page 22: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 22

Diagrama de Statechart do pedido: Super Estado & Super Transição

Order

Checking

do: check item

Start

get next item[Not all items checked]

Dispatching

do: initiate delivery

[All items checked && all items available]

Waiting

Item Received[some items not in stock]

[All items checked && some items not in stock]

/get first item

Item Received[all items available]

Active

Cancelled Delivered

Superstate name

cancellation

Page 23: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 23

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”

Page 24: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 24

Cancelled

Delivered

Rejected

Checking

Waiting

Dispatching

Authorizing Authorized

Estados Concorrentes: Pedido

autorização

verificação

Page 25: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 25

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

Page 26: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 26

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.

Page 27: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 27

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.

Page 28: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 28

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.

Page 29: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 29

Diagramas de Atividade Pode ser usado

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).

Page 30: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 30

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.

Page 31: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 31

Diagrama de Atividade do Processamento de um Pedido

ReceiveOrder

ReorderItem

DispatchOrder

CheckLineItem

Assign toOrder

AuthorizePayment

CancelOrder

for each lineitem on order*

[in stock]

[need toreorder]

[stock assigned toall line items andpayment authorized]

[succeeded]

[failed]

Page 32: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 32

Diagramas de Atividade Pontos de decisão:

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.

Chargecustomer’s

accountCalculatetotal cost

Getauthorization

[cost < $50]

[cost ≥ $50]

Page 33: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 33

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.

Page 34: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 34

Checking

Waiting

Dispatching

Authorizing Authorized

Synchronization barGet Order

[cancelled]

swimlanePurchase

Order Dept.

FinanceDept.

[rejected]

[accepted]

Raias

Page 35: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 35

Mais Swimlanes

ReceiveOrder

ReorderItem

DispatchOrder

CheckLineItem

Assign toOrder

for each lineitem on order*

[in stock]

[need toreorder]

[stock assigned toall line items andpayment authorized]

AuthorizePayment

CancelOrder

[succeeded]

[failed]

ReceiveSupply

ChooseOutstandingOrder Items

AssignGoods to

Order

for each chosenorder item *

[all outstandingorder items filled]

AddRemainder

to Stock

OrderProcessing

Finance StockManager

Page 36: © 2001 Jaelson CastroModelando Comportamento1 Modelando Comportamento

© 2003 Jaelson Castro Modelando Comportamento 36

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.