Você está na página 1de 33

Modelagem Din amica

Revis ao: Modelagem Est atica


alise representa a estrutura Diagrama de classes de an est atica do sistema. Foco nas informa c oes relevantes para a constru c ao do sistema. Esse diagrama cont em os conceitos (classes) importantes para o dom nio do problema e as liga co es entre eles. Cada classe e especicada em termos das informa co es que armazena (atributos) e dos servi cos que prov e (opera co es).

Modelagem Din amica


Identica e modela os aspectos do sistema de software que podem mudar durante a sua execu c ao, devido ` a ocorr encia de eventos. Foco no comportamento que o sistema deve apresentar. Usa os diagramas din amicos da UML (seq u encia, colabora c ao, estados). Especica uma vers ao inicial das interfaces p ublicas das classes de an alise. Sub-etapa de An alise OO - Foco no dom nio do problema!

Eventos
Ocorr encias dignas de nota relativas ao sistema e envolvendo algum tipo de troca de informa c ao. O evento n ao e a informa c ao trocada e sim o fato de alguma informa c ao ter sido trocada. O tipo de evento mais comum encontrado durante a an alise e a intera c ao entre um ator e o sistema. Outros tipos tamb em s ao poss veis. Modelamos o comportamento do sistema atrav es de eventos e das a co es executadas em resposta a eles.

Extra c ao de Informa co es a partir do Enunciado do Problema


Substantivos
Enunciado do Problema OU Especificao dos Casos de Uso

Objetos/Classes Atributos Associaes Operaes

Verbos

Atividades da Modelagem Din amica


Estado Inicial

Identificar eventos do sistema Atualizar interfaces pblicas das classes de anlise Construir diagramas de seqncia para os cenrios primrios dos casos de uso

Construir diagramas de estados

Construir um nico diagrama de colaborao para o sistema, combinando os diagramas de seqncia obtidos na atividade 2 [desejase iterar para refinar]

[seno] Estado Final

Atividade 1: Identicar Eventos do Sistema


Deve ser realizada uma nova an alise textual nas especica co es dos casos de uso, prestando-se aten c ao aos pontos nos quais trocas de informa c ao ocorrem. Normalmente, esses pontos est ao associados a verbos. Informa co es relevantes: verbos e os contextos nos quais aparecem.

Caso de Uso Emprestar Exemplar (I)


Fluxo B asico : 1. O cliente solicita empr estimo de um exemplar de alguma publica c ao (livro, peri odico, tese ou manual), fornecendo o seu n umero de registro e o n umero de tombo da publica c ao desejada. 2. A atendente solicita o empr estimo ao sistema, fornecendo o c odigo do cliente e o tombo da publica c ao 3. O sistema valida o cliente e verica o seu status no sistema de cadastro (Normal ou Suspenso) atrav es de seu n umero de registro. (<< include >> Validar Usu ario)

Caso de Uso Emprestar Exemplar (II)


Fluxo B asico : 4. O sistema verica se existe algum exemplar dispon vel da publica c ao desejada. 5. Se o status do cliente for Normal e algum exemplar da publica c ao estiver dispon vel 5.1. O sistema registra um novo empr estimo; 5.2. O sistema verica o per odo do empr estimo, que depende do tipo de usu ario - 7 dias para alunos e 15 para professores 5.3. O sistema atualiza seu banco de dados com a informa c ao de que o exemplar n ao ir a se encontrar na biblioteca at e completar o per odo. 5.4. O sistema comunica o sucesso do empr estimo.

Caso de Uso Emprestar Exemplar (III)


Fluxo Alternativo 1 : No passo 5, se o usu ario estiver suspenso, o sistema informa a atendente de sua proibi c ao de retirar exemplares e o empr estimo n ao e realizado. Fluxo Alternativo 2 : No passo 5, se todas as c opias da publica c ao estiverem emprestadas ou reservadas, o sistema informa a atendente que n ao ser a poss vel realizar o empr estimo.

Recomenda co es
a ligado ` a ocorr encia de um Nem todo verbo est evento. Alguns eventos s ao escritos de maneira impl cita e precisam ser reescritos. Por exemplo, O empr estimo e realizado poderia ser reescrito como O sistema informa ` a atendente que o empr estimo foi realizado. importante entender direito quais s E ao os atores. No caso de uso Emprestar Exemplar, o u nico ator e a atendente. O cliente e apenas uma informa c ao que o sistema manipula.

Eventos Identicados (I)


O cliente solicita empr estimo de um exemplar de alguma publica c ao; O cliente fornece o seu n umero de registro e o n umero de tombo da publica c ao; A atendente solicita o empr estimo ao sistema; A atendente fornece o n umero de registro do cliente e o n umero de tombo da publica c ao; O sistema valida o cliente e verica o seu status;

Eventos Identicados (II)


vel da pu O sistema verica se existe algum exemplar dispon blica c ao desejada; O sistema registra um novo empr estimo; O sistema verica o per odo do empr estimo; O sistema atualiza seu banco de dados; O sistema comunica o sucesso do empr estimo; (Alternativo) O sistema informa a atendente de sua proibi c ao de
retirar exemplares; (Alternativo) O sistema informa a atendente que n ao ser a poss vel realizar o empr estimo.

Atividade 2: Construir Diagrama de Seq u encia


oi-se o diagrama de seq u encia de sis Primeiro constr tema relativo a cada caso de uso, usando-se os eventos identicados na Atividade 1. Em seguida rena-se esse diagrama, substituindo-se o objeto Sistema pelas classes de an alise de fronteira, controle e entidade que o materializam.

Diagrama de Seq u encia de Sistema para Emprestar Exemplar


Diagrama de Seqncia de Sistema

a:Atendente a / 1) .solicitarEmprestimo() .Registro do Usuario .Nmero do Tombo

s:Sistema

Operao Cancelada

.verificarStatusUsuario

.emprestarExemplarDisponivel

a / 2)

.registrarEmprestimo

Relembrando: Tipos de Classes de An alise


Para cada tipo de classe de an alise, o RUP dene um estere otipo.

Classes de Fronteira <<boundary>>

Classes de Controle <<control>>

Classes de Entidade <<entity>>

Intera co es devem ser organizadas da seguinte maneira: Fronteira Controle Entidade

Diagrama de Seq u encia Renado para Emprestar Exemplar


Diagrama de Seqncia Refinado a:Atendente t:Terminal c:Controlador u:Usuario ex :Exemplar e:Emprestimo

1) .solicitarEmprestimo [regUsuario, nTombo]

2) .solicitarEmprestimo [regUsuario, nTombo] .u = pesquisarUsuario [regUsuario] 3) .obterStatus

4) .ex = obterExemplar Disponivel[nTombo] .emprestar 5) .e = new Emprestimo[ex,u]

6) 7) 8)

Atividade 3: Construir um Diagrama de Colabora c ao para o Sistema


Diagrama de Colaborao

:Atendente

e:Emprestimo

ex:Exemplar

solicitarEmprestimo(regUsuario, nTombo)

: emprestar() :

e = new Emprestimo(p,u)

:Terminal

solicitarEmprestimo(regUsuario, nTombo)

:.

:Controlador : :

obterStatus() :

u:Usuario

u = pesquisarUsuario(regUsuario) ex = obterExemplarDisponivel(nTombo)

Atividade 4: Atualizar Interfaces P ublicas das Classes de An alise


Neste passo, devemos identicar, nos diagramas de seq u encia, todos os eventos do sistema. Estes eventos devem ser ent ao associados ` as classes de an alise. Para cada evento associado a uma classe de an alise, e necess ario vericar se as inst ancias dessa classe produzem o evento ou o recebem.

Associa c ao entre Eventos e Classes de An alise (I)


Classe Terminal Usuario Exemplar Emprestimo Eventos Recebidos solicitarEmprestimo (regUsuario, nTombo) obterStatus() ocupar() new Emprestimo(ex, u) Eventos Produzidos solicitarEmprestimo (regUsuario, nTombo)

Opera co es da Classe Terminal e Usuario


Operaes da Classe Terminal

<< boundary >> Terminal

+ solicitarEmprestimo (regUsuario :String ,nTombo :String ):void

Operaes da Classe Usuario

<< entity >> Usuario status :String numeroRegistro :String + obterStatus ():String

Opera co es da Classe Exemplar e Emprestimo


Operaes da Classe Exemplar

Exemplar status :String codFisico :String + ocupar ():void

Operaes da Classe Emprestimo

<< entity >> Emprestimo dataEmprestimo :Date dataDevolucao :Date << create >> + Emprestimo (ex :Exemplar ,u:Usuario ):Emprestimo

Associa c ao entre Eventos e Classes de An alise (II)


Classe Controlador Eventos Recebidos solicitarEmprestimo (regUsuario, nTombo) u = pesquisarUsuario(regUsuario) obterStatus() ex = obterExemplarDisponivel (nTombo) ex = obterExemplarDisponivel (nTombo) e = new Emprestimo(ex,u) ocupar() Eventos Produzidos u = pesquisarUsuario(regUsuario)

Opera co es da Classe Controlador


Operaes da Classe Controlador

<< control >> Controlador

+ solicitarEmprestimo (regUsuario :String ,nTombo :String ):void pesquisarUsuario (regUsuario :String ):Usuario obterExemplarDisponivel (nTombo :String ):Exemplar

Atualizar o Diagr. de Classes de An alise (I)


as classes de an alise, e Depois de associar eventos ` necess ario atualizar o diagrama de classes, para que passe a incluir essa informa c ao. Os eventos recebidos por uma classe se transformam em opera co es de sua interface p ublica. Eventos produzidos por um objeto podem indicar tanto uma resposta para um evento recebido quanto o fato de que uma classe usa algum servi co oferecido por outra.

Atualizar o Diagr. de Classes de An alise (II)

Diagrama de Classes de Anlise

sistema << boundary >> Terminal

+ solicitarEmprestimo (regUsuario :String ,nTombo :String ):void

<< control >> Controlador

+ solicitarEmprestimo (regUsuario :String ,nTombo :String ):void pesquisarUsuario (regUsuario :String ):Usuario obterExemplarDisponivel (nTombo :String ):Exemplar

<< entity >> Emprestimo dataEmprestimo :Date dataDevolucao :Date + << create >> + Emprestimo 1 << entity >> Publicacao titulo :String numeroTombo :String + obterExemplarDisponivel ():Exemplar 1 (ex :Exemplar ,u:Usuario ):Emprestimo * 1 << entity >> Usuario status :String numeroRegistro :String + obterStatus ():String

1 Exemplar status :String * codFisico :String + emprestar ():void

Atividade 5: Construir Diagramas de Estados


M aquinas de estados podem ser usadas para especicar o comportamento de sistemas e classes O diagrama de estados e a representa c ao gr aca de m aquinas de estados adotado pela UML. Diagramas de estados ilustram os eventos de interesse e os estados de um objeto, al em da maneira como esse objeto reage a eventos.

Um Exemplo de Diagrama de Estados


Estado inicial

Estado 1 Evento [Guarda] / Ao Estado 2

Estado final

Usos de Diagramas de Estados


ao usados para Diagramas de estados normalmente s modelar: (i) a seq u encia legal de eventos externos que s ao reconhecidos e tratados por um sistema, no contexto de um caso de uso; (ii) o conjunto de todos os estados e transi co es do sistema, ao longo da execu c ao de todos os seus casos de uso; (iii) o comportamento de classes complexas que dependem de algum tipo de estado.

Estados da Classe Usu ario


1. sem livros e n ao suspenso; 2. com livros e n ao suspenso; 3. suspenso.

Algumas Transi co es entre Estados da Classe Usu ario


1. um usu ario sem livros e n ao suspenso pode emprestar um ou mais livros; 2. um usu ario com livros e n ao suspenso pode emprestar ou devolver um ou mais livros; um livro devolvido pode ou n ao estar atrasado; em caso armativo, o usu ario e suspenso; 3. um usu ario suspenso pode apenas devolver livros; 4. o per odo de suspens ao de um usu ario suspenso pode terminar.

Diagrama de Estados da Classe Usu ario

Sem Livros
fim do perodo de suspenso registra devoluo [hoje < dataDevoluo] registra emprstimo

registra devoluo

Suspenso p/ Novos Emprstimos

registra Com devoluo [hoje < dataDevoluo]

Livros

registra emprstimo

registra devoluo [hoje > dataDevoluo]