Vous êtes sur la page 1sur 29

1

Professor:

Aula 8

Mrcio Barros

Projeto de Software - Modelagem Dinmica


Contedo:
Diagramas de Seqncia
Modelagem Dinmica de Classes

Diagramas Dinmicos
Existe uma forte nfase na criao de diagramas estticos
Em muitos casos, estes so os nicos diagramas criados durante
um projeto de desenvolvimento de sistemas
Esta nfase est associada ao uso de diagramas somente na etapa
de anlise de sistemas, onde a dinmica relacionada com diversas
classes pode no ficar clara (especialmente em sistemas de
informao)
Esta nfase no apropriada, devendo-se lembrar que a orientao
a objetos oferece mecanismos para o encapsulamento do
comportamento das classes
Assim, a parte dinmica muito importante, especialmente na
definio da arquitetura dos sistemas

Diagramas de Seqncia
Protocolos de Interao

Cenrios
Um cenrio um caminho entre os fluxos de um use case

Um use case uma coleo de cenrios


Um cenrio uma instncia de um use case
Use cases so compostos de um fluxo principal e subfluxos
Subfluxos tambm podem se ramificar em subfluxos
As ramificaes de fluxos e subfluxos formam uma rvore
Um cenrio um caminho da raiz at um n folha da rvore de
fluxos e subfluxos de um use case
O conjunto de cenrios de um sistema composto por todos os
caminhos de todos os use cases

Descobrindo Atributos
Fluxo principal do use case

Subfluxos do fluxo principal

Ramificaes de um subfluxo
do use case

Subfluxos demonstram operaes que podem ser selecionadas pelo usurio ou


casos especiais de algumas operaes.

Cenrio
Um cenrio um caminho da raiz at uma folha da rvore de
ramificaes de um use case

Objetivo
Cenrios tratam da linguagem do usurio
So utilizados na identificao dos elementos envolvidos nas
operaes do sistema no mundo real
Auxiliam na identificao das classes de objetos que devem
interagir para concluir uma funcionalidade do sistema
Cobertura
Cenrios primrios cobrem o fluxo principal dos use cases
Cenrios secundrios cobrem fluxos alternativos
Cenrios de exceo cobrem fluxos de exceo e de erro

Cenrios
Desenvolvimento incremental
No desenvolvimento de um sistema, o analista deve comear sua
investigao pelos cenrios primrios
Cenrios secundrios so progressivamente agregados
Cenrios secundrios relevantes devem ser estudados para evitar
futuras alteraes significativas nas principais classes

Diagramas de Seqncia
Objetivo
Determinam os objetos responsveis pela realizao de um cenrio
e as mensagens que so trocadas entre eles
O diagrama apresenta a ordem com que as mensagens so
trocadas no tempo

Composio
Objetos
Sequncias

10

Objeto
Representao
Objetos so representados por retngulos
Objetos devem ter um nome (sublinhado):
Nome de um objeto especfico
Nome de objeto + nome da classe
Nome da classe (objeto annimo)
A linha de vida define a seqncia de mensagens
recebidas ou emitidas pelo objeto no tempo
Objetos podem aparecer sem a linha de vida em outros
diagramas

11

Objetos
Um diagrama de seqncias contm diversos objetos
Os objetos so alinhados no topo do diagrama
Suas linhas de vida descem em direo base do diagrama

12

Mensagens
Representao
Mensagens so representadas como setas entre dois objetos
As setas devem conter nomes de mtodos do objeto destino

13

Foco de Controle
Retngulos na linha de vida de um objeto
Representam o tempo em que um objeto est ativo na troca de
mensagens
Representam o tempo em que o objeto responsvel pelo fluxo de
controle do cenrio
Focos de controle so opcionais nos diagramas de sequncia

14

Complementos
Uma mensagem pode ter dois tipos de complementos
Condio:
A mensagem somente ser emitida se a condio for verdadeira
A condio expressa entre colchetes antes do nome do mtodo
Repetio
A mensagem ser emitida mltiplas vezes
Um asterisco apresentado antes do nome do mtodo

15

Auto-Mensagem
Ocorre quando um objeto chama um mtodo seu para realizar parte
do cenrio
Auto-mensagens so representadas por setas saindo e retornando
para o prprio objeto

16

Exemplo

17

Descobrindo Diagramas de Seqncia


Durante a anlise ?
Devemos procurar por diagramas de seqncia que envolvam
operaes algoritmicamente complexas
Operaes que criam, editam ou apenas consultam objetos devem
ser postergadas para a fase de projeto

Durante o projeto ?
Diagramas de seqncia devem demonstrar as relaes entre as
janelas da aplicao, os relatrios, o banco de dados e as
operaes realizadas pelos use cases

18

Diagramas de Colaborao
Alternativa ao diagrama de seqncia

No apresenta a linha de tempo dos objetos


Objetos representados por retngulos
Mensagens representadas como setas entre os retngulos
Mensagens so numeradas (seqncia de tempo)

19

Exemplo (Encerramento de Estadia)

20

ESTADOS
Modelagem Dinmica de Classes

21

Diagramas de Estado
Modelam comportamento dinmica das classes
Diagramas de seqncia modelam o comportamento de um use
case no tempo
Diagramas de estado modelam o comportamento de uma classe
no tempo

So utilizados apenas em classes com estados relevantes


Classes que monitoram eventos ao longo de sua vida
Servios de monitorao algoritmicamente complexos
Estudar operaes realizadas sobre as classes ou pelas classes

22

Diagramas de Estado
So utilizados por diversos mtodos de anlise
Anlise estruturada moderna
Anlise essencial
Outros mtodos de anlise orientada a objetos

Componentes
Estado
Transio
Estado Inicial
Estado Final

23

Estados
Um estado representa uma condio em que o objeto pode se
encontrar durante sua existncia no sistema
O estado de um objeto muda ao longo do tempo
O estado definido pelos valores dos atributos do objeto
Determina eventos, aes e condies possveis no objeto

Uma transio representa uma mudana de estado


Transies podem ser automticas ou geradas por eventos
Transies no podem ser interrompidas e custam tempo zero.

24

Estados
Representao UML
Estado: representado por um retngulo de bordas arredondadas
Transio: representada por uma seta entre os estados
O nome do estado apresentado no interior do retngulo
Nas transies geradas por eventos, a seta indica o nome do
evento que provocou a mudana de estado

25

Estados Especiais
Um diagrama de estados tem no mnimo 2 estados:
Estado Inicial: um objeto recm criado no sistema se encontra neste
estado.
Estado Final: estado final na cadeia de troca de estados do objeto.
O objeto no poder trocar de estado aps atingir seu estado final.
Em um diagrama de estados podem existir diversos estados finais.

26

Transies
Uma transio pode estar associada a:
Uma ao, que indica um mtodo do objeto que ser executado
quando a transio de estado se realizar
Uma condio, tambm conhecida como guarda, que indica quando
a transio de estado deve ocorrer
Ambos so apresentados junto ao nome do evento na transio,
como na figura abaixo
Ambos so opcionais

27

Detalhes de Estados
Estados podem estar associado a aes
Uma ao de entrada (entry) indica uma operao realizada sempre
que ocorre uma transio para dentro do estado
Uma ao de sada (exit) indica uma operao realizada sempre que
ocorre uma transio para fora do estado
Aes so apresentadas no interior do estado, abaixo de seu nome

28

Descobrindo Estados
Uma classe possui estados quando:
Possui diversas operaes que so dependentes entre si
Uma venda somente pode ser entregue depois de registrada
Uma venda somente pode ser paga depois de entregue
Uma venda somente pode ser cancelada depois de registrada
Registrada, entregue, paga e cancelada so estados da venda
As caractersticas de um objeto influenciam o seu comportamento
ou o comportamento de outra classe
Uma venda somente pode ser entregue depois de registrada
Vendas nunca so realizadas para clientes sem crdito
Um cliente devedor ou sem crdito no pode ser removido do
sistema
"No devedor", "devedor" ou "sem crdito" so estados do cliente

29

Descobrindo Estados
Anlise das operaes do sistema
Classes que tm mais que as quatro operaes bsicas
Determine que operaes precedem outras operaes
Crie um estado para representar o objeto aps cada operao
Determine as transies de estado
Verifique as restries das operaes
Em cada classe, verifique se suas operaes dependem de
condies dos atributos de seus objetos ou de objetos de outras
classes
Crie estados nos respectivos objetos dependentes, representando
as condies em que as operaes da outra classe so aplicveis