Académique Documents
Professionnel Documents
Culture Documents
SUMRIO
1 MODELO DE CASOS DE USO.......................................................................... 2
2 ANLISE ................................................................................................. 4
2.1
2.2
2.3
3 PROJETO ................................................................................................ 6
3.1
A partir do enunciado, elaborou-se o diagrama de casos de uso da Error! Reference source not found..
Notar que no preocupao com a ordem de execuo dos casos de uso e com o fluxo de dados (o fato
de consultar histrico utilizar os mesmos dados manipulados por atualizar histrico).
Figura 1: Diagrama de casos de uso para conversor de graus Celsius para Fahrenheit.
TABELA 1: DESCRIO DO CASO DE USO CONVERTERCELSIUSFAHRENHEIT.
{Obter valor}
Solicita o valor a ser convertido
Fornece valor a ser convertido
Obtm o valor
{Validade valor entrada}
Realizar a converso
Executar subfluxo Atualizar Histrico
Mostrar temperatura em Fahrenheit
Se o usurio deseja continuar, voltar ao ponto {Obter
valor}; se no, o caso de uso termina.
Fluxos alternativos e subfluxos
A1: em {Validade valor entrada}
S1: Atualizar Histrico
Consultar Histrico
Permite ao usurio visualizar as dez ltimas converses
realizadas.
Meteorologista
Sesso iniciada
Histrico mostrado ao meteorologista.
Sistema
{nenhuma converso realizada}
Sistema busca as ltimas dez converses realizadas
ou as existentes
Mostra o histrico de converso
{fim}
O caso de uso termina.
Fluxos alternativos
A1: em {nenhuma converso
realizada}
Aps a elaborao do diagrama de casos de uso, fez-se uma primeira tentativa de identificar classes de
anlise seguindo as linhas mestras. Na figura 2, as linhas mestras foram seguidas risca.
IUConversao
IUHistorico
CtrlConversao
CtrlHistorico
Historico
ConversaoCF
2 ANLISE
2.1
2.2
DIAGRAMA DE SEQUNCIA
Relembra-se que cada caso de uso representa uma funcionalidade do sistema vista da perspectiva de
um ator. Um caso de uso pode apresentar diversas possibilidades de execuo visto que h fluxos
primrios (fluxo normal de eventos) e alternativos (o que fazer se). Estes fluxos so documentados
textualmente ou na forma de uma tabela ator x sistema.
Cenrios so utilizados para identificar como uma sociedade de objetos interage para realizar um caso
de uso. Cenrios documentam as responsabilidades, ou seja, como as responsabilidades especificadas
nos casos de uso so divididas entre os objetos do sistema. Portanto, um cenrio uma instncia de
um caso de uso: um caminho entre os muitos possveis. Cenrios podem ser representados por
diagramas de seqncia e pelos diagramas de colaborao.
Um diagrama de seqncia representa os atores e objetos envolvidos num cenrio
e a seqncia de troca de mensagens ao longo do tempo para realizar o cenrio.
O cenrio fluxo bsico + subfluxo atualizar histrico para o caso de uso ConverterCelsiusFahrenheit
mostrado na figura 3. Observar que o diagrama bastante informal, sem preocupao com
argumentos de mtodos, criao e destruio de objetos, armazenamento em banco de dados ou
sistema de arquivos e se h lugar ou no no histrico para guardar uma nova converso.
sd anlise casos de uso
:meteorologista
:IUConv ersao
:CtrlConv ersao
:Historico
:Conv ersaoCF
valor Celsius?
converter valor c
guardar conversao
valor Fahrenheit
valor Fahrenheit
2.3
1
IUConversao
CtrlConversao
ConversaoCF
0..10
1
:IUHistorico
1
CtrlHistorico
1
Historico
3 PROJETO
3.1
Esta seo exemplifica o estudo da interao entre objetos para realizar o caso de uso converso de
Celsius para Fahrenheit em uma aplicao desktop com interface textual. O intuito mostrar como
refinar um diagrama de classes a partir do detalhamento do diagrama de seqncia.
O diagrama de seqncia seguinte representa o cenrio onde o meteorologista realiza vrias
converses de Celsius para Fahrenheit que so guardadas numa coleo denominada histrico. Ao
decidir encerrar a sesso, o histrico persistido em disco por meio de um objeto serializvel.
:meteorologista
:CtrlConv ersao
:IUConv ersao
:Historico
loop
[!FIM]
solicitarCelsius() :float
Celsius?
ConversaoCF(c)
conv
:Conv ersaoCF
adicionar(this)
mostrar(conv.getFahr())
conv.Fahr
salvar()
writeObject
Das colaboraes expressas na Figura 5, pode-se derivar o seguinte diagrama de classes de projeto.
boundary
IUConv ersao
~
~
mostrar(float) : void
solicitarCelsius() : float
control
CtrlConv ersao
1 instantiate 1
interface
Serializable
1
instantiate
instantiate
1
entity
Conv ersaoCF
-
celsius: float
Horario: Date
getFahr() : float
entity
Historico
0..10 {ordered}
+
-
adicionar(ConversaoCF) : void
writeObject() : void