Vous êtes sur la page 1sur 8

PR

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

ESTUDO DE CASO: CONVERSOR


CELSIUS-FAHRENHEIT

Cesar Augusto Tacla


Departamento Acadmico de Informtica
h t t p : / / w w w . d ai nf . c ef et p r . br / ~ t ac l a

O uso e reproduo desta apostila


requerem autorizao expressa do
autor.

SUMRIO
1 MODELO DE CASOS DE USO.......................................................................... 2
2 ANLISE ................................................................................................. 4
2.1
2.2
2.3

ESTUDO DA INTERAO/colaborao ENTRE OBJETOS ........................................ 4


DIAGRAMA DE SEQUNCIA.......................................................................... 4
RELAES ENTRE CLASSES DE ANLISE........................................................... 5

3 PROJETO ................................................................................................ 6
3.1

REFINAMENTO DO ESTUDO DA INTERAO/COLABORAO ENTRE OBJETOS ............... 6

1 MODELO DE CASOS DE USO


Um meteorologista necessita de um programa simples que faa converses de temperaturas
em graus Celsius para Fahrenheit. Ele deseja armazenar as 10 ltimas converses realizadas,
denominadas no seu todo histrico, e visualiz-las constantemente numa janela
independente daquela destinada a fazer a converso. Se por acaso o usurio fechar a janela do
histrico, ele deve ter algum modo de reabri-la. Uma converso formada pela data, hora,
valor em Celsius e em Fahrenheit.

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.

Nome do caso de uso


Descrio
Ator Envolvido
Pr-condies
Ps-condies
Fluxo Bsico
Ator
Solicitar converso de uma
temperatura em graus Celsius

Converter Celsius Fahrenheit


Permite ao meteorologista realizar vrias converses de
Celsius para Fahrenheit e as armazena em um histrico.
Meteorologista
Sesso iniciada
Converso realizada
Sistema

{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

Se temperatura no for numrica voltar ao ponto


{Obter valor}
Armazena uma converso de Celsius para Fahrenheit
incluindo o valor em Celsius, o equivalente em Fahrenheit,
data e hora da converso.

TABELA 2: DESCRIO DO CASO DE USO CONSULTAR HISTRICO

Nome do caso de uso


Descrio
Ator Envolvido
Pr-condies
Ps-condies
Fluxo bsico
Ator
Solicitar visualizao

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}

Se no houver converses no histrico mostrar


mensagem nenhuma converso realizada at o
momento e ir para o ponto {fim}

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.

class Classes de anlise (lev antamento)

IUConversao

IUHistorico

CtrlConversao

CtrlHistorico

Historico

ConversaoCF

Figura 2: Levantamento das classes de anlise.

2 ANLISE
2.1

ESTUDO DA INTERAO/COLABORAO ENTRE OBJETOS

O projeto de um sistema pode ser visto como sucessivos refinamentos de diviso de


responsabilidades. Nos casos de uso, so identificadas as funcionalidades do sistema separando-as do
que externo ao mesmo. Em seguida, so levantadas as classes de anlise, o que representa uma
primeira tentativa de identificar quem dentro do sistema far o qu para que os casos de uso se
concretizem. Os diagramas de interao constituem um passo importante nesta diviso, pois detalham
como os objetos das classes de anlise e, por consequncia, quais operaes cada um deve realizar. Se
um caso de uso possui vrios fluxos, pode ser til criar um diagrama de interao para cada cenrio.
Os diagramas de interao mais utilizados so o de sequncia e o de comunicao (ex-colaborao).
Diagramas de interao so usados tanto na anlise quanto no projeto. Na anlise as comunicaes
entre objetos so mais abstratas, no importando muito os argumentos e valores retornados. No
projeto, o detalhamento maior

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

solicitar valor Celsius

valor Celsius?

converter valor c

guardar conversao

mostrar valor convertido

valor Fahrenheit

valor Fahrenheit

Figura 3: diagrama de seqncia para o caso ConverterCelsiusFahrenheit.

2.3

RELAES ENTRE CLASSES DE ANLISE

O diagrama de classes fornece uma representao esttica da colaborao por meio de


relacionamentos. Os relacionamentos so utilizados no diagrama de classes que refinado
incrementalmente (modelo do domnio, anlise e, posteriormente, no projeto).
So apresentadas as seguintes relaes:
associao (mais comum),
agregao (um tipo de associao),
generalizao/especializao
O diagrama de classes de anlise pode ser enriquecido com estas relaes e com outras provenientes
do diagrama de seqncia do caso de uso Visualizar histrico produzindo o diagrama de classes de
anlise da Error! Reference source not found..

class Classes de anlise (associaes)

1
IUConversao

CtrlConversao

ConversaoCF
0..10

1
:IUHistorico

1
CtrlHistorico

1
Historico

Figura 4: substituio da associao entre ConversoCF e Histrico por uma agregao.

3 PROJETO
3.1

REFINAMENTO DO ESTUDO DA INTERAO/COLABORAO ENTRE OBJETOS

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.

sd conv erter c-f

: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

Figura 5: Diagrama de seqncia detalhado para o caso de uso ConverterCelsiusFahrenheit.

Das colaboraes expressas na Figura 5, pode-se derivar o seguinte diagrama de classes de projeto.

class classes conv erter

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

Figura 6: Diagrama de classes fase de projeto.

Observar que as associaes entre CtrlConversao e as demais classes foram transformadas em


dependncias. Deixou-se claro que Histrico implementa (realiza) uma classe de interface serializvel.
Histrico uma coleo ordenada de objetos ConversaoCF. Os atributos e operaes tambm
possuem tipos de dados compatveis com Java (a suposta linguagem de implementao) e
visibilidades. importante notar que as mensagens que chegam num objeto so transformadas em
operaes (ex. solicitarCelsius() transformada numa operao em IUConversao).
Neste exemplo didtico, as classes de anlise no sofreram grandes modificaes. Tambm no houve
necessidade de dividir o sistema em subsistemas ou pacotes.
H outros diagramas no mostrados neste exemplo por no serem necessrios:

Diagrama de estados: no h uma classe com comportamento complexo;

Diagrama de atividades: no h um mtodo complexo que exija especificao detalhada;

Diagrama de implantao/componentes: a arquitetura do sistema extremamente simples, um


programa que roda em uma nica mquina.

Vous aimerez peut-être aussi