Escolar Documentos
Profissional Documentos
Cultura Documentos
2010
UML
TodososdireitosreservadosparaAlfamdiaProw.
AVISODERESPONSABILIDADE
AsinformaescontidasnestematerialdetreinamentosodistribudasNOESTADOEMQUE
SE ENCONTRA, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham
sido tomadas na preparao deste material, a Alfamdia Prow no tem qualquer responsabilidade
sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou
alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo
softwaredecomputadoreprodutosdehardwareaquidescritos.
12/2010
AlfamdiaProw
CristovoColombo,1496
PortoAlegre,RS
(51)30732100
http://www.alfamidia.com.br/
2
2010 Alfamidia Prow
UML
Unidade1:Introduo
Unidade2:FasesdoDesenvolvimento
10
Unidade3:Visesdesistema
13
Unidade4:DiagramaUseCase
16
Unidade5:DiagramadeClasses
23
Unidade6:DiagramadeSeqncia
33
Unidade7:DiagramadeAtividade
38
Unidade8:DiagramadeEstado
42
Unidade9:DiagramadeColaborao
44
Unidade10:DiagramadeComponentes
47
Unidade11:DiagramadeImplantao
49
Unidade12:Exerccios
51
Unidade13:UmprocessoparautilizaraUML
53
Unidade14:EstudodecasoemUML
55
UML
Unidade1:
Introduo
QuandoaUnifiedModelingLanguage(UML)foilanada,muitosdesenvolvedoresdareada
orientaoaobjetosficaramentusiasmados,jqueessapadronizaopropostapelaUMLeraotipode
foraqueelessempreesperaram.
A UML muito mais que a padronizao de uma notao. tambm o desenvolvimento de
novos conceitos no normalmente usados. Devido a essa e outras razes, o bom entendimento da
UML no apenas aprender a simbologia e o seu significado, mas tambm significa aprender a
modelarorientadoaobjetosnoestadodaarte.
UMLfoidesenvolvidaporGradyBooch,JamesRumbaugheIvarJacobson,conhecidoscomoos
trsamigos.Elespossuemumextensoconhecimentonareademodelagemorientadoaobjetos,j
que as trs mais conceituadas metodologias de modelagem orientadas a objetos foram eles que
desenvolveram e a UML. a juno do que havia de melhor nestas trs metodologias adicionado
novos conceitos e vises da linguagem. Estudaremos as caractersticas de cada uma destas
metodologiasnodecorrerdoCurso.
EstudaremosaUMLnumaabordagemdecarterestticoedinmicodosistemaaseranalisado
levandoemconsiderao,jnoperododemodelagem,todasasfuturascaractersticasdosistemaem
relaoutilizaodepackagesprpriosdalinguagem,aplicaodobancodedados,bemcomo,as
diversasespecificaesdosistemaaserdesenvolvidodeacordocomasmtricasfinaisdosistema.
No a finalidade, definirmos e explicarmos os significados de classes, objetos,
relacionamentos, fluxos, mensagens e outras entidades comuns da orientao a objetos, e sim,
apresentarmos como essas entidades so criadas, simbolizadas, organizadas e como sero utilizadas
dentrodeumdesenvolvimentoutilizandoaUML.
4
2010 Alfamidia Prow
UML
DesenvolvimentodeSoftwaresorientadoaobjetos
O conceito de orientao a objetos j vem sendo discutido h muito tempo, desde o
lanamentoda1linguagemorientadaaobjetos,aSIMULA.Vriospapasdaengenhariadesoftware
mundial como Peter Coad, Edward Yourdon e Roger Pressman abordaram extensamente a anlise
orientadaaobjetoscomorealmenteumgrandeavanonodesenvolvimentodesistemas.Mas,mesmo
assim,elescitamquenoexiste(ouquenoexistianomomentodesuaspublicaes),umalinguagem
quepossibilitasseodesenvolvimentodequalquersoftwareutilizandoaanliseorientadaaobjetos.
Os conceitos que Coad, Yourdon, Pressman e tantos outros que abordaram, discutiram e
definiramemsuaspublicaes,quesegue:
A orientao a objetos uma tecnologia para a produo de modelos que especifiquem o
domniodoproblemadeumsistema.
Modelosorientadosaobjetossoimplementadosconvenientementeutilizandoumalinguagem
deprogramaoorientadaaobjetos.Aengenhariadesoftwareorientadaaobjetosmuitomaisque
utilizar mecanismos de sua linguagem de programao, saber utilizar, da melhor forma possvel,
todasastcnicasdamodelagemorientadaaobjetos.
UML
UMLAunificaodosmtodosparaacriaodeumnovopadro
A UML uma tentativa de padronizar a modelagem orientada a objetos de uma forma que
qualquer sistema, seja qual for o tipo, possa ser modelado corretamente, com consistncia, de fcil
comunicaocomoutrasaplicaes,simplesdeseratualizadoecompreensvelentendimento.
ExistemvriasmetodologiasdemodelagemorientadaaobjetosqueatosurgimentodaUML
causavam uma guerra entre a comunidade de desenvolvedores orientada a objetos. A UML acabou
com esta guerra trazendo as melhores idias de cada uma destas metodologias, e mostrando como
deveriaseramigraodecadaumaparaaUML.
Falaremossobrealgumasdasprincipaismetodologiasquesetornarampopularesnosanos90:
BoochOmtododeGradyBoochparadesenvolvimentoorientadoaobjetosestdisponvel
emmuitasverses.Boochdefiniuanoodequeumsistemaanalisadoapartirdeumnmerode
vises,ondecadavisodescritaporumnmerodemodelosediagramas.OMtododeBoochtrazia
umasimbologiacomplexadeserdesenhadaamo,continhatambmoprocessopeloqualossistemas
soanalisadospormacroemicrovises.
OOSE/ObjectoryOsmtodosOOSEeoObjectoryforamdesenvolvidosbaseadosnomesmo
ponto de vista formado por Ivar Jacobson. O mtodo OOSE a viso de Jacobson de um mtodo
orientado a objetos, j o Objectory usado para a construo de sistemas to diversos quanto eles
forem.Ambososmtodossobaseadosnautilizaodeusecases,quedefinemosrequisitosiniciais
dosistema,vistosporumatorexterno.OmtodoObjectorytambmfoiadaptadoparaaengenharia
de negcios, onde usado para modelar e melhorar os processos envolvidos no funcionamento de
empresas.
Cadaumdestesmtodospossuisuaprprianotao(seusprpriossmbolospararepresentar
modelosorientadosaobjetos),processos(queatividadessodesenvolvidasemdiferentespartesdo
desenvolvimento), e ferramentas (as ferramentas CASE que suportam cada uma destas notaes e
processos).
6
2010 Alfamidia Prow
UML
Diante desta diversidade de conceitos, os trs amigos, Grady Booch, James Rumbaugh e Ivar
Jacobson decidiram criar uma Linguagem de Modelagem Unificada. Eles disponibilizaram inmeras
verses preliminares da UML para a comunidade de desenvolvedores e a resposta incrementou muitas
novas idias que melhoraram ainda mais a linguagem.
OsobjetivosdaUMLso:
Estabelecer uma unio fazendo com que mtodos conceituais sejam tambm
executveis;
Criarumalinguagemdemodelagemusveltantopelohomemquantopelamquina.
A UML est destinada a ser dominante, a linguagem de modelagem comum a ser usada nas
indstrias. Ela est totalmente baseada em conceitos e padres extensivamentes testados
provenientesdasmetodologiasexistentesanteriormente,etambmmuitobemdocumentadacom
todaaespecificaodasemnticadalinguagemrepresentadaemmetamodelos.
UML
UsodaUML
AUMLusadanodesenvolvimentodosmaisdiversostiposdesistemas.Elaabrangesempre
qualquercaractersticadeumsistemaemumdeseusdiagramasetambmaplicadaemdiferentes
fases do desenvolvimento de um sistema, desde a especificao da anlise de requisitos at a
finalizaocomafasedetestes.
OobjetivodaUMLdescreverqualquertipodesistema,emtermosdediagramasorientadosa
objetos.Naturalmente,ousomaiscomumparacriarmodelosdesistemasdesoftware,masaUML
tambmusadapararepresentarsistemasmecnicossemnenhumsoftware.Aquiestoalgunstipos
diferentesdesistemascomsuascaractersticasmaiscomuns:
SistemasRealtimeIntegrados:Executadosemsimplespeasdehardwareintegradosa
telefones celulares, carros, alarmes etc. Estes sistemas implementam programao de baixo nvel e
requeremsuporterealtime.
UML
importante perceber que a maioria dos sistemas no possui apenas uma destas
caractersticas acima relacionadas, mas vrias delas ao mesmo tempo. Sistemas de informaes de
hoje, por exemplo, podem ter tanto caractersticas distribudas como realtime. E a UML suporta
modelagensdetodosestestiposdesistemas.
UML
Unidade2:
Fases do Desenvolvimento de um Sistema em
UML
Existemcincofasesnodesenvolvimentodesistemasdesoftware:anlisederequisitos,anlise,
design(projeto),programaoetestes.Estascincofasesnodevemserexecutadasnaordemdescrita
acima, masconcomitantemente de forma queproblemasdetectadosnuma certafasemodifiquem e
melhoremasfasesdesenvolvidasanteriormentedeformaqueoresultadoglobalgereumprodutode
altaqualidadeeperformance.Aseguirfalaremossobrecadafasedodesenvolvimentodeumsistema
emUML:
AnlisedeRequisitos
Esta fase captura as intenes e necessidades dos usurios do sistema a ser desenvolvido
atravs do uso de funes chamadas usecases. Atravs do desenvolvimento de usecase, as
entidades externas ao sistema (em UML chamados de atores externos) que interagem e possuem
interessenosistemasomodeladosentreasfunesqueelesrequeremfunesestaschamadasde
usecases. Os atores externos e os usecases so modelados com relacionamentos que possuem
comunicaoassociativaentreelesousodesmembradosemhierarquia.Cadausecasemodelado
descrito atravs de um texto, e este especifica os requerimentos do ator externo que utilizar este
usecase. O diagrama de usecases mostrar o que os atores externos, ou seja, os usurios do
10
2010 Alfamidia Prow
UML
futurosistemadeveroesperardoaplicativo,conhecendotodasuafuncionalidadesemimportarcomo
estaserimplementada.Aanlisederequisitostambmpodeserdesenvolvidabaseadaemprocessos
denegcios,enoapenasparasistemasdesoftware.
Anlise
A fase de anlise est preocupada com as primeiras abstraes (classes e objetos) e mecanismos
que estaro presentes no domnio do problema. As classes so modeladas e ligadas atravs de
relacionamentos com outras classes, e so descritas no Diagrama de Classe. As colaboraes entre
classes tambm so mostradas neste diagrama para desenvolver os use-cases modelados
anteriormente, estas colaboraes so criadas atravs de modelos dinmicos em UML. Na anlise, s
sero modeladas classes que pertenam ao domnio principal do problema do software, ou seja, classes
tcnicas que gerenciem banco de dados, interface, comunicao, concorrncia e outros no estaro
presentes neste diagrama.
Design (Projeto)
Na fase de design, o resultado da anlise expandido em solues tcnicas. Novas classes sero
adicionadas para prover uma infra-estrutura tcnica: a interface do usurio e de perifricos,
gerenciamento de banco de dados, comunicao com outros sistemas, dentre outros. As classes do
domnio do problema modeladas na fase de anlise so mescladas nessa nova infra-estrutura tcnica
tornando possvel alterar tanto o domnio do problema quanto a infra-estrutura. O design resulta no
detalhamento das especificaes para a fase de programao do sistema.
Programao
11
UML
Testes
Umsistemanormalmenterodadoemtestesdeunidade,integrao,eaceitao.Ostestesde
unidadesoparaclassesindividuaisougruposdeclassesesogeralmentetestadospeloprogramador.
Ostestesdeintegraosoaplicadosjusandoasclassesecomponentesintegradosparaseconfirmar
se as classes esto cooperando uma com as outras como especificado nos modelos. Os testes de
aceitaoobservamosistemacomoumacaixapretaeverificamseosistemaestfuncionandocomo
oespecificadonosprimeirosdiagramasdeusecases.
O sistema ser testado pelo usurio final e verificar se os resultados mostrados esto
realmentedeacordocomasintenesdousuriofinal.
12
2010 Alfamidia Prow
UML
Unidade 3:
Vises de sistema
Odesenvolvimentodeumsistemacomplexonoumatarefafcil.Oidealseriaqueosistema
inteiro pudesse ser descrito em um nico grfico e que este representasse por completo as reais
intenes do sistema sem ambiguidades, sendo facilmente interpretvel. Infelizmente, isso
impossvel. Um nico grfico incapaz de capturar todas as informaes necessrias para descrever
umsistema.
13
UML
Viso de Componentes
Viso Lgica
Viso de Use-case
Viso de Organizao
Viso de Concorrncia
DiagramadeVisesdaUML
14
2010 Alfamidia Prow
UML
15
UML
Unidade 4:
Diagrama Use-Case
Quandoumusecaseimplementado,aresponsabilidadedecadapassodaexecuodeveser
associada s classes que participam da colaborao, tipicamente especificando as operaes
necessriasdentrodestasclassesjuntamentecomadefiniodecomoelasirointeragir.Umcenrio
16
2010 Alfamidia Prow
UML
Abrir
Conta corrente
Cadastrar Cliente
Remover ou
Atualizar Cliente
Cadastra
Dependente
Fechar
Conta corrente
Abrir Poupana
Cadastrar Operao
(Histrico)
Administrao do
Banco
Remover ou Atualizar
Operao (Histrico)
Fechar
Poupana
Cadastrar Agncia
Remover ou Atualizar
Agncia
Diagramadeusecase
17
UML
Aluno
Professor
Matrcula
nos Cursos
Selecionar curso
para ensinar
Manter informao de
aluno
Manter informaes
dos cursos
Gerenciar
Gerar catalogo
Manter informao de
professor
DefinioDiagramadeUseCase
umdiagramausadoparaseidentificarcomoosistemasecomportaemvriassituaesque
podemocorrerdurantesuaoperao.Descreveosistema,seuambienteearelaoentreosdois.Os
componentesdestediagramasoosatoreseosUseCase.
AnotaousadapeloDiagramadeUseCase:
Ator
Use Case
18
UML
Ator:
Representa qualquer entidade que interage com o sistema. Pode ser uma pessoa, outro
sistema,etc.Algumasdesuascaractersticassodescritasabaixo:
ator no parte do sistema. Representa os papis que o usurio do sistema pode
desempenhar.
atorpodeinteragirativamentecomosistema.
atorpodeserumreceptorpassivodeinformao.
atorpoderepresentarumserhumano,umamquinaououtrosistema.
UseCase:
Comofoiexemplificadoacima,umaseqnciadeaesqueosistemaexecutaeproduzum
resultadodevalorparaoator.Algumasdesuascaractersticassodescritasabaixo:
UmUseCasemodelaodilogoentreatoreseosistema.
UmUseCaseiniciadoporumatorparainvocarumacertafuncionalidadedosistema.
UmUseCasefluxodeeventoscompletoeconsistente.
OconjuntodetodososUseCaserepresentatodasassituaespossveisdeutilizaodo
sistema.
19
UML
Associaes
UmasetadenavegaoemumaassociaoapontandoparaousecaseindicaqueoAtorinicia
ainteraocomosistema.Afiguraabaixomostraogerentedeprojetoiniciandoumainteraocomo
sistema de gerenciamento de projetos e o gerente de recursos inicia a interao com o sistema de
gerenciamentoderecursos.
UmasetadenavegaoapontandoparaoAtorindicaqueosistemainiciaumainteraocomo
Ator.Afiguraavaixomostraqueosistemadegerenciamentodeprojetosiniciaumainteraocomo
sistemadebackup.
Umalinhasemsetasindicaquetantoousecasequantoosistemapodeminiciarinteraes.
20
2010 Alfamidia Prow
UML
21
UML
Incluso
A associao de incluso custuma ser utilizada quando existe um servio, situao ou rotina
comumamaisdeumusecase.Osrelacionamentosdeinclusoindicamumaobrigatoriedade,ouseja,
quandoquando um determinado usecase possui um relacionamento de incluso com outro, a
execuodoprimeiroobrigaaexecuodosegundo.
Extenso
Aassociaodeextensoutilizadaparadescrevercenriosopcionaisdeumusecase.Osuse
caseextendidosdescreveprocedimentosquesomenteocorreroemumasituaoespecfica,seuma
determinadasituaoforsatisfeita.
22
2010 Alfamidia Prow
UML
Seoalunoforestrangeiro.
23
UML
Especializao/Generalizao
usadaquandodoisoumaisusecasesouatorestemcaractersticassemelhantes.Destaforma
nonecessriocolocaramesmadocumentaoparatodososelementos.
24
2010 Alfamidia Prow
UML
Unidade 5:
Diagrama de Classes
O diagrama de classes demonstra a estrutura esttica das classes de um sistema onde estas
representam as coisas" que so gerenciadas pela aplicao modelada. Classes podem se relacionar
comoutrasatravs dediversasmaneiras:associao (conectadasentresi), dependncia(uma classe
dependeouusaoutraclasse),especializao(umaclasseumaespecializaodeoutraclasse),ouem
pacotes(classesagrupadasporcaractersticassimilares).Todosestesrelacionamentossomostrados
nodiagramadeclassesjuntamentecomassuasestruturasinternas,quesoosatributoseoperaes.
Odiagramadeclassesconsideradoestticojqueaestruturadescritasemprevlidaemqualquer
pontodociclo devidado sistema.Um sistemanormalmentepossuialgunsdiagramasdeclasses,j
que no so todas as classes que esto inseridas em um nico diagrama e uma certa classe pode
participardevriosdiagramasdeclasses.
25
UML
Cliente
1
possui
0..*
refere a
Contrato de Aluguel
Veculo Alugado
0..1
0..*
Tipos de Veculos
possui
1
Compahia de
Aluguel de Veculos
Caminho
Carro Sport
Carro de Passeio
DiagramadeClassesUmasimplesrepresentao
deumaempresadealugueldeveculos.
Uma classe num diagrama pode ser diretamente implementada utilizandose uma linguagem
deprogramaoorientadaaobjetosquetenhasuportediretoparaconstruodeclasses.Paracriar
umdiagramadeclasses,asclassestmqueestaridentificadas,descritaserelacionadasentresi.
Classes
Umaclasseadescriodeumtipodeobjeto.Todososobjetossoinstnciasdeclasses,onde
a classe descreve as propriedades e comportamentos daquele objeto. Objetos s podem ser
instanciadosdeclasses.Usamseclassesparaclassificarosobjetosqueidentificamosnomundoreal.
Tomando como exemplo Charles Darwin, que usou classes para classificar os animais conhecidos, e
combinousuasclassesporheranaparadescreveraTeoriadaEvoluo.Atcnicadeheranaentre
classestambmusadaemorientaoaobjetos.
26
2010 Alfamidia Prow
UML
Uma classe pode ser a descrio de um objeto em qualquer tipo de sistema sistemas de
informao, tcnicos, integrados realtime, distribudos, software etc. Num sistema de software, por
exemplo, existem classes que representam entidades de software num sistema operacional como
arquivos,programasexecutveis,janelas,barrasderolagem,etc.
Identificar as classes de um sistema pode ser complicado, e deve ser feito por experts no
domniodoproblemaaqueosoftwaremodeladosebaseia.Asclassesdevemserretiradasdodomnio
doproblemaeseremnomeadaspeloqueelasrepresentamnosistema.Quandoprocuramosdefiniras
classesdeumsistema,existemalgumasquestesquepodemajudaraidentificlas:
Existemsistemasexternosaomodelado?Seexistir,elesdeveroservistoscomoclasses
pelosistemaparaquepossainteragircomoutrosexternos.
Qualopapeldosatoresdentrodosistema?Talvezopapeldelespossaservistocomo
classes,porexemplo,usurio,operador,clienteedapordiante.
27
UML
outrasdosistema.Asintaxeusadaemcadaumdestescompartimentosindependentedequalquer
linguagemdeprogramao,emborapossamserusadasoutrassintaxescomoadoC++,Java,eetc.
Cliente
Nome : String
Idade : Num
Nome da Classe
Criar()
Destruir()
Operaes
Atributos
RepresentaodeClasse
AssociaesNormais
O tipo mais comum de associao apenas uma conexo entre classes. representada por
uma linha slida entre duas classes. A associao possui um nome (junto linha que representa a
associao),normalmenteumverbo,massubstantivostambmsopermitidos.
Podesetambmcolocarumasetanofinaldaassociaoindicandoqueestaspodeserusada
paraoladoondeasetaaponta.Masassociaestambmpodempossuirdoisnomes,significandoum
nomeparacadasentidodaassociao.
Paraexpressaramultiplicidadeentreosrelacionamentos,umintervaloindicaquantosobjetos
esto relacionados no link. O intervalo pode ser de zero para um (0..1), zero para vrios (0..* ou
apenas*),umparavrios(1..*),dois(2),cincopara11(5..11)eassimpordiante.tambmpossvel
expressarumasriedenmeroscomo(1,4,6..12).Senofordescritanenhumamultiplicidade,ento
consideradoopadrodeumparaum(1..1ouapenas1).
28
2010 Alfamidia Prow
UML
Possui
Cliente
Conta Corrente
possudo
NoexemploacimavemosumrelacionamentoentreasclassesClienteeContaCorrentequese
relacionamporassociao.
AssociaoRecursiva
possvelconectarumaclasseaelamesmaatravsdeumaassociaoequeaindarepresenta
semanticamenteaconexoentredoisobjetos,masosobjetosconectadossodamesmaclasse.Uma
associaodestetipochamadadeassociaorecursiva.
Pessoa
Esposa
Marido
casado com
Exemplodeumaassociaorecursiva
AssociaoQualificada
29
UML
Associaes qualificadas so usadas com associaes de um para vrios (1..*) ou vrios para
vrios(*).Oqualificador(identificadordaassociaoqualificada)especificacomoumdeterminado
objetonofinaldaassociaonidentificado,epodeservistocomoumtipodechaveparaseparar
todos os objetos na associao. O identificador desenhado como uma pequena caixa no final da
associaojuntoclassedeondeanavegaodeveserfeita.
Cliente
Cd_Conta
Corrente
Conta Corrente
Representaodecomponentes
AssociaoExclusiva
Emalgunsmodelosnemtodasascombinaessovlidas,eistopodecausarproblemasque
devem ser tratados. Uma associao exclusiva uma restrio em duas ou mais associaes. Ela
especifica que objetos de uma classe podem participar de no mximo uma das associaes em um
dadomomento.Umaassociaoexclusivarepresentadaporumalinhatracejadaentreasassociaes
quesopartesdaassociaoexclusiva,comaespecificao{ou}sobrealinhatracejada.
Contrato
0..*
0..*
{ou}
1..*
Pessoa
1..*
Empresa
Exemplodeumaassociaoexclusiva
30
2010 Alfamidia Prow
UML
AssociaoOrdenada
Asassociaesentreobjetospodemterumaordemimplcita.Opadroparaumaassociao
desordenado(ousemnenhumaordemespecfica).Masumaordempodeserespecificadaatravsda
associaoordenada.Estetipodeassociaopodesermuitotilemcasoscomoeste:janelasdeum
sistematmqueserordenadasnatela(umaestnotopo,umaestnofundoeassimpordiante).A
associaoordenadapodeserescritaapenascolocando{ordenada}juntoalinhadeassociaoentre
asduasclasses.
AssociaodeClasse
Uma classe pode ser associada a uma outra associao. Este tipo de associao no
conectado a nenhuma das extremidades da associao j existente, mas na prpria linha da
associao.Estaassociaoserveparaseadicionarinformaoextraaassociaojexistente.
Cliente
Processo
Fila
Exemplodeumaassociaodeclasses
31
UML
AassociaodaclasseFilacomaassociaodasclassesClienteeProcessopodeserestendida
comoperaesdeadicionarprocessosnafila,paralere removerdafilaedeleroseutamanho. Se
operaesouatributossoadicionadosaassociao,eladevesermostradacomoumaclasse.
32
2010 Alfamidia Prow
UML
AssociaoTernria
Maisdeduasclassespodemserassociadasentresi,aassociaoternriaassociatrsclasses.
Elamostradacomoumagradelosango(diamante)eaindasuportaumaassociaodeclasseligadaa
ela, traariase, ento, uma linha tracejada a partir do losango para a classe onde seria feita a
associaoternria.
Contrato
0..*
1..*
Cliente
1..*
Regras Contratuais
Exemplodeumaassociaoternria
Agregao
A agregao um caso particular da associao. A agregao indica que uma das classes do
relacionamento uma parte, ou est contida em outra classe. As palavras chaves usadas para
identificarumaagregaoso:consisteem,contm,partede.
Marinha
Navios
contm
Exemplodeumaagregaoentreduasclasses
2010 Alfamidia Prow
33
UML
Existemtiposespeciaisdeagregaoquesoasagregaescompartilhadaseascompostas.
Agregao Compartilhada: dita compartilhada quando uma das classes uma parte, ou
est contida na outra, mas esta parte pode estar contida na outra vrias vezes em um mesmo momento.
Time
Pessoa
Membros
Exemplodeumaagregaocompartilhada
No exemplo acima uma pessoa pode ser membro de um time ou vrios times e em
determinadomomento.
AgregaodeComposio:umaagregaoondeumaclassequeestcontidanaoutra
viveeconstituiaoutra.Seoobjetodaclassequecontmfordestrudo,asclassesdaagregaode
composioserodestrudasjuntamentejqueasmesmasfazempartedaoutra.
Text
*
Janela
ListBox
Boto
*
Menu
Exemplodeumaagregaodecomposio
34
2010 Alfamidia Prow
UML
Generalizaes
Ageneralizaoumrelacionamentoentreumelementogeraleumoutromaisespecfico.O
elemento mais especfico possui todas as caractersticas do elemento geral e contm ainda mais
particularidades. Um objeto mais especfico pode ser usado como uma instncia do elemento mais
geral.Ageneralizao,tambmchamadadeherana,permiteacriaodeelementosespecializados
emoutros.
Existemalgunstiposdegeneralizaesquevariamemsuautilizaoapartirdasituao.So
elas: generalizao normal e restrita. As generalizaes restritas se dividem em generalizao de
sobreposio,disjuntiva,completaeincompleta.
GeneralizaoNormal
Nageneralizaonormalaclassemaisespecfica,chamadadesubclasse,herdatudodaclasse
maisgeral,chamadadesuperclasse.Osatributos,operaesetodasasassociaessoherdados.
Conta Corrente
Poupana
Exemplodeumageneralizaonormal
Uma classe pode ser tanto uma subclasse quanto uma superclasse, se ela estiver numa
hierarquiadeclassesqueumgrficoondeasclassesestoligadasatravsdegeneralizaes.
35
UML
A generalizao normal representada por uma linha entre as duas classes que fazem o
relacionamento, sendo que se coloca uma seta no lado da linha onde se encontra a superclasse
indicandoageneralizao.
GeneralizaoRestrita
Umarestrioaplicadaaumageneralizaoespecificainformaesmaisprecisassobrecomoa
generalizaodeveserusadaeestendidanofuturo.Asrestriesaseguirdefinemasgeneralizaes
restritascommaisdeumasubclasse:
Veculo
{sobreposio}
Barco
Carro
Anfbio
Exemplodeumageneralizaodesobreposio
36
2010 Alfamidia Prow
UML
GeneralizaesCompletaseIncompletas:Umarestriosimbolizandoqueumageneralizao
completasignifica quetodasas subclasses jforamespecificadas,enoexistemaispossibilidadede
outrageneralizaoapartirdaqueleponto.Ageneralizaoincompletaexatamenteocontrrioda
completaeassumidacomopadrodalinguagem.
Pessoa
{completa}
Homem
Mulher
Exemplodeumageneralizaocompleta
37
UML
Unidade 6:
Diagrama de Seqncia
Diagramas de seqncia possuem dois eixos: o eixo vertical, que mostra o tempo e o eixo
horizontal, que mostra os objetos envolvidos na seqncia de uma certa atividade. Eles tambm
mostramasinteraesparaumcenrioespecficodeumacertaatividadedosistema.
Noeixohorizontalestoosobjetosenvolvidosnaseqncia.Cadaumrepresentadoporum
retngulodeobjeto(similaraodiagramadeobjetos)eumalinhaverticalpontilhadachamadadelinha
de vida do objeto, indicando a execuo do objeto durante a seqncia, como exemplo citamos:
mensagens recebidas ou enviadas e ativao de objetos. A comunicao entre os objetos
representadacomolinhacomsetashorizontaissimbolizandoasmensagensentreaslinhasdevidados
objetos. A seta especifica se a mensagem sncrona, assncrona ou simples. As mensagens podem
38
2010 Alfamidia Prow
UML
possuirtambmnmerosseqenciais,elessoutilizadosparatornarmaisexplcitoasseqnciasno
diagrama.
Emalgunssistemas,objetosrodamconcorrentemente,cadaumcomsualinhadeexecuo.Se
osistemausalinhasconcorrentesdecontrole,istomostradocomoativao,mensagensassncronas,
ouobjetosassncronos.
: Computador
: Servidor de
Impresso
Imprimir (arquivo)
: Impressora
: Fila
[Impressora Livre]
Imprimir (arquivo)
[Impressora Ocupada]
Imprimir (arquivo)
DiagramadeSequenciaServidordeImpresso.
Osdiagramasdeseqnciapodemmostrarobjetosquesocriadosoudestrudoscomoparte
docenriodocumentadopelodiagrama.Umobjetopodecriaroutrosobjetosatravsdemensagens.A
mensagemquecriaoudestriumobjetogeralmentesncrona,representadaporumasetaslida.
39
UML
Atores
Objetos
OjjetosrepresentaminstnciasdasclassesenvolvidasnoprocessoilustradopeloDiagramade
Sequncia.
40
2010 Alfamidia Prow
UML
Focodecontroleouativao
Indicaosperodosemqueumdeterminadoobjetoestparticipandoativamentedoprocesso,
ouseja,identificaosmomentosemqueumobjetoestexecutandoumoumaismtodosutilizadosem
umprocessoespecfico.
Mensagensouestmulos
41
UML
Autochamadas
Autochamadassomensagensqueumobjetoenviaparasimesmo.
Condies
42
2010 Alfamidia Prow
UML
Indicamqueumamensagemspodeserenviadaaumobjetoseumadeterminadacondio
forverdadeira.
43
UML
Unidade 7:
Diagrama de Atividade
Diagramasdeatividadecapturamaeseseusresultados.Elesfocamotrabalhoexecutadona
implementao de uma operao (mtodo), e suas atividades numa instncia de um objeto. O
diagrama de atividade uma variao do diagrama de estado e possui um propsito um pouco
diferente do diagrama de estado, que o de capturar aes (trabalho e atividades que sero
executados)eseusresultadosemtermosdasmudanasdeestadosdosobjetos.
44
2010 Alfamidia Prow
UML
Umdiagramadeatividadepodeserusadocomdiferentespropsitosinclusive:
Para capturar os trabalhos que sero executados quando uma operao disparada
(aes).Esteousomaiscomumparaodiagramadeatividade.
Paracapturarotrabalhointernoemumobjeto.
Para mostrar como umgrupo de aes relacionadas pode ser executado, e como elas
voafetarosobjetosemtornodelas.
Paramostrarcomoumainstnciapodeserexecutadaemtermosdeaeseobjetos.
Paramostrarcomoumnegciofuncionaemtermosdetrabalhadores(atores),fluxosde
trabalho,organizao,eobjetos(fatoresfsicoseintelectuaisusadosnonegcio).
45
UML
[Disco Cheio]
Mostrar Caixa de
Mensagem
Disco Cheio
ImprimirArquivo()
[Espao em disco]
Remover Caixa
de Mensagem
^Impressora.Imprimir(arq)
Mostrar Caixa de
Mensagem
Imprimindo
Criar arquivo
PostScript
DiagramadeAtividadeServidordeImpresso.
EstadodeAo
46
2010 Alfamidia Prow
UML
Pontodedeciso
Um ponto de deciso representa um ponto no fluxo de controle onde deve ser realizado um
teste, uma tomada de deciso. De acordo com essa deciso, o fluxo optar por executar um
determinadoconjuntodeaesemdetrimentodeoutroconjuntodeaes.
47
UML
Raiasdenatao
Asraiasdenataosoumaextensododiagramadeatividades,ondeprocuraseidentificaros
diversossetores,departamentosoumesmoatoresqueinteragemcomumprocesso.
48
2010 Alfamidia Prow
UML
49
UML
Unidade 8:
Diagrama de Estado
Diagramas de estado capturam o ciclo de vida dos objetos, subsistemas e sistemas. Eles
mostram os estados que um objeto pode possuir e como os eventos (mensagens recebidas, timer,
erros,econdiessendosatisfeitas)afetamestesestadosaopassardotempo.
50
2010 Alfamidia Prow
UML
No Trreo
subir (andar)
Chegar no trreo
Subindo
Chegar no andar
Indo para o
trreo
Descendo
Chegar no andar
subir (andar)
Parado
descer (andar)
tempo de espera
DiagramadeEstadosDiagramadeestadosdeumelevador.
Diagramasdeestadopossuemumpontodeincioevriospontosdefinalizao.Umpontode
incio(estadoinicial)mostradocomoumcrculotodopreenchido,eumpontodefinalizao(estado
final) mostrado como um crculo em volta de um outro crculo menor preenchido. Um estado
mostrado como um retngulo com cantos arredondados. Entre os estados esto as transies,
mostradascomoumalinhacomumasetanofinaldeumdosestados.Atransiopodesernomeada
com o seu evento causador. Quando o evento acontece, a transio de um estado para outro
executadaoudisparada.
Umatransiodeestadonormalmentepossuiumeventoligadoaela.Seumeventoanexado
a uma transio, esta ser executada quando o evento ocorrer. Se uma transio no possuir um
eventoligadoaela,amesmaocorrerquandoaaointernadocdigodoestadoforexecutada(se
existir aes internas como entrar, sair, fazer ou outras aes definidas pelo desenvolvedor). Ento
quandotodasasaesforemexecutadaspeloestado,atransioserdisparadaeseroiniciadasas
atividadesdoprximoestadonodiagramadeestados.
51
UML
Unidade 9:
Diagrama de Colaborao
Nodiagramadecolaborao,almdemostraratrocademensagensentreosobjetos,percebe
setambmosobjetoscomosseusrelacionamentos.Ainteraodemensagensmostradaemambos
os diagramas. Se a nfase do diagrama for o decorrer do tempo, melhor escolher o diagrama de
seqncia, mas se a nfase for o contexto do sistema, melhor dar prioridade ao diagrama de
colaborao.
52
2010 Alfamidia Prow
UML
: Computador
[Impressora Ocupada]
1.2: Armazenar (arq)
: Fila
1: Imprimir (arq)
: Servidor de
Impresso
[Impressora Livre]
1.1: Imprimir (arq)
: Impressora
Objetos
Osobjetosdodiagramadecolaboraorepresentamomesmoquenodesequncia,ouseja,
instnciasdasclassesqueparticipamdeumprocesso.
Vnculos
53
UML
54
2010 Alfamidia Prow
UML
Mensagens
Asmensagensidentificadasnodiagramadecolaboraosoasmesmasdefinidasnodiagrama
desequncia,egeralmenterepresentamchamadasdemtodos.
55
UML
Unidade 10:
Diagrama de Componentes
Odiagramadecomponentedescreveoscomponentesdesoftwareesuasdependnciasentre
si,representandoaestruturadocdigogerado.Oscomponentessoaimplementaonaarquitetura
fsica dos conceitos e da funcionalidade definidos na arquitetura lgica (classes, objetos e seus
relacionamentos).Elessotipicamenteosarquivosimplementadosnoambientededesenvolvimento.
Um componente mostrado em UML como um retngulo com uma elipse e dois retngulos
menoresdoseuladoesquerdo.Onomedocomponenteescritoabaixooudentrodeseusmbolo.
56
2010 Alfamidia Prow
UML
A dependncia entre componentes pode ser mostrada como uma linha tracejada com uma
seta,simbolizandoqueumcomponenteprecisadooutroparapossuirumadefiniocompleta.Como
diagramadecomponentesfacilmentevisveldetectarquearquivos.dllsonecessriosparaexecutar
aaplicao.
Gerenciador de
Comunicao
Grficos
Comm.dll
Graficos.dll
Gerenciador de
Banco de
Dados
Db.dll
Aplicao
App.exel
Diagrama de Componentes.
Componentespodemdefinirinterfacesquesovisveisparaoutroscomponentes.Asinterfaces
podem ser tanto definidas ao nvel de codificao (como em Java) quanto em interfaces binrias
usadas em runtime (como em OLE). Uma interface mostrada como uma linha partindo do
componenteecomumcrculonaoutraextremidade.Onomecolocadojuntodocrculonofinalda
linha. Dependncias entre componentes podem ento apontar para a interface do componente que
estsendousada.
57
UML
Unidade 11:
Diagrama de Implantao
Odiagramadeimplantaomostraaarquiteturafsicadohardwareedosoftwarenosistema.
Pode mostrar os atuais computadores e perifricos, juntamente com as conexes que eles
estabelecem entre si e pode mostrar tambm os tipos de conexes entre esses computadores e
perifricos. Especificamse tambm os componentes executveis e objetos que so alocados para
mostrarquaisunidadesdesoftwaresoexecutadoseemquedestescomputadoressoexecutados.
Odiagramadeimplantaodemonstraaarquiteturaruntimedeprocessadores,componentes
fsicos(devices),edesoftwarequerodamnoambienteondeosistemadesenvolvidoserutilizado.a
ltimadescriofsicadatopologiadosistema,descrevendoaestruturadehardwareesoftwareque
executamemcadaunidade.
Odiagramadeimplantaocompostoporcomponentes,quepossuemamesmasimbologia
doscomponentesdodiagramadecomponentes,nodes,quesignificamobjetosfsicosquefazemparte
do sistema, podendo ser uma mquina cliente numa LAN, uma mquina servidora, uma impressora,
um roteador, etc., e conexes entre estes nodes e componentes que juntos compem toda a
arquiteturafsicadosistema.
58
2010 Alfamidia Prow
UML
ClienteA :
Pentium 200
MMX
<<TCP/IP>>
Servidor de
Aplicao :
HP/UX
ClienteB :
Pentium 200
MMX
SQL <<TCP/IP>>
Servidor de
Banco de
Dados :
ORACLE
<<TCP/IP>>
Diagrama de Implantao
59
UML
60
2010 Alfamidia Prow
UML
Unidade 12:
Exerccios
Locao de Filmes
Aorealizarumalocao,osciodeveinformarseucdigoparaqueoatendentepossaverificar
seesteseencontracadastrado.Seoscionoestivercadastrado,entoalocaodeverserrecusada
eosciodeversercadastrado.Casoestejacadastradooatendentedeveverificarsetodasaslocaes
feitasanteriormentejforamdevolvidas,senootiverfeitoalocaoserrecusada.
O scio informa os cdigos das fitas que deseja locar. Em seguida o atendente registrar a
locaoefornecerasfitasemquestoparaoscio.
responsabilidade de o atendente cadastrar e manter atualizada as fichas dos filmes
disponveisnalocadora.
ControledeCursos
Oalunosolicitainformaesaoatendentesobrequaiscursosaempresaoferece.Seaalunose
interessarporalgumcurso,pedirinfomaesarespeitodequaisturmasdocursoestoemabertoe
qualohorriodasaulas,dataprevistaparaoincioequalomnimodealunosnecessrios.
2010 Alfamidia Prow
61
UML
O atendente realiza a matrcula do aluno. Caso o aluno no esteja cadastrado, este ser
realizadoantesdamatrcula.
62
2010 Alfamidia Prow
UML
Clnica veterinria
Aclnicadevepossuirumcadastrodeclienteseseusanimaisdeestimao.
Osanimaisdevemsercadastradosdeacordocomasuaespcie.
Aclnicadevemanterumcadastrodostratamentosrealiazadosnosanimais.
Umtratamento podeconterumaoumais consultas,eesta realizadapor um veterinrio.O
sistemadevearmazenarinformaescomoadata,oveterinrio,oanimaleoresumodaconsulta.Ao
realizarumaconsula,oveterinriopodepediralgunsexames.
Escritrio de Advocacia
63
UML
Unidade 13:
Um processo para utilizar a UML
AUMLcontmnotaeseregrasquetornampossvelexpressarmodelosorientadosaobjetos.
Maselanoprescrevecomootrabalhotemqueserfeito,ouseja,nopossuiumprocessodecomoo
trabalhotemqueserdesenvolvido.JqueaUMLfoidesenvolvidaparaserusadaemdiversosmtodos
dedesenvolvimento.
ParausaraUMLcomsucessonecessrioadotaralgumtipodemtododedesenvolvimento,
especialmenteemsistemadegrandeporteondeaorganizaodetarefasessencial.Autilizaode
um processo de desenvolvimento torna mais eficiente calcular o progresso do projeto, controlar e
melhorarotrabalho.
Em seu uso normal, a palavra processo significa uma relao de atividades que devem ser
executadasemumacertaordemsemimportaroobjetivo,regrasoumaterialaserusado.Noprocesso
dedesenvolvimentodaengenhariadesoftware,necessriosaberoobjetivofinaldoprocesso,definir
regrasaseremseguidaseadotarummtodofixodedesenvolvimento.
64
2010 Alfamidia Prow
UML
ExisteumprocessodesenvolvidopelaRationalInc.,mesmaempresaquedesenvolveuaUML,
quemontaduasvisesdodesenvolvimentodeumsistema:visogerencialetcnica.Avisotcnica
utilizaastradicionaisatividadesdeanlise,designeimplementao,enquantoavisogerencialutiliza
asseguintesfasesnodesenvolvimentodecadageraodosistema.
Incio:Defineoescopoeobjetivodoprojeto;
Elaborao:Desenvolveoprodutoemdetalhesatravsdeumasriedeinteraes.Isto
envolvemaisanlise,designeprogramao;
Cadafasenocicloexecutadaemsriesdeinteraesquepodemsobreporoutrasfases.Cada
interao consiste tipicamente em atividades tradicionais como anlise e design, mas em diferentes
proporesdependendodafaseemqueestejaageraodosistemaemdesenvolvimento.
65
UML
conhecimentodasfasesemumprocesso,ajudaonline,eaconselhamentosdoquefazeremcadafase
dodesenvolvimentosuporteadesenvolvimentointerativoefcilintegraocomoutrasferramentas.
66
2010 Alfamidia Prow
UML
Unidade 14:
Estudo de caso em UML
Oestudodecasodarmaisnfasenasfasesdeanlisederequisitos,anliseedesign,jqueas
principaisabstraesdosmodelosdosistemaseencontramnestasfasesdodesenvolvimento.
Osistemasuportarumcadastrodeclientes,ondecadaclientecadastradopoderter
vriascontascorrentes,tervriosdependentesligadosaele,evriascontasdepoupana.
Cadadependentepoderpossuirvriascontasdepoupana,masnopoderoteruma
contacorrenteprpria.
67
UML
Entendemospoupanacomoumacontaquepossuiumvalor,umprazodeaplicaoa
umataxadejuros(definidanovencimentodapoupana).
EntendemosAplicaesPrfixadascomoumaaplicaodeumvalor,emumprazopr
determinadoaumataxadejurospreviamentedefinida.
Uma conta corrente poder ter vrias aplicaes prfixadas ligadas a ela.
AnlisedeRequisitos
De acordo com nossa proposta o sistema implementar funes bsicas que sero
desempenhadaspelaAdministraodobancoepelosseusclientes.Asprincipaisfunesdosistema
so:
Cadastrarnovocliente
Excluiroueditarcliente
Cadastrardependente
Excluiroueditardependente
Abrircontacorrente
Fecharcontacorrente
Abrirpoupana
68
2010 Alfamidia Prow
UML
Fecharpoupana
Movimentarcontacorrente
Aplicaremprfixados
Consultarhistricodecontacorrenteoupoupana
CadastrarAgncia
ExcluirouEditarAgncia
69
UML
Abrir
Conta corrente
Cadastrar Cliente
Remover ou
Atualizar Cliente
Cadastra
Dependente
Fechar
Conta corrente
Cadastrar Operao
(Histrico)
Administrao do
Banco
Abrir Poupana
Remover ou Atualizar
Operao (Histrico)
Fechar
Poupana
Cadastrar Agncia
Remover ou Atualizar
Agncia
<<uses>>
Movimentar
Conta corrente
Gerar Histrico
Consulta Historico
de Conta Corrente
Cliente
(from Logical View)
Aplicar em
Pre Fixados
70
2010 Alfamidia Prow
UML
Anlise
Na fase de anlise, tendo em mos o diagrama de usecase, podemos definir o diagrama de
classesdosistema.Esteprimeirodiagramadafasedeanlisedeversertotalmentedespreocupadode
qualquer tipo de tcnica relacionada a implementao do sistema, ou seja, mtodos e atributos de
acesso a banco de dados, estrutura de mensagens entre objetos, etc. no devero aparecer nesse
primeirodiagrama,apenasostiposdeobjetosbsicosdosistema.
Analisamosepercebemosqueexistiro8classesnosistemaequeserelacionarosegundoo
diagramadeclassesaseguir.
71
UML
Historico
Data : Date
Operao : Operao
Valor : Num
Agncia
Cod_Agencia : String
Nome_Agncia : String
Criar()
Destruir()
Criar()
Destruir()
1
Possui
Possui
*
Possui
1
*
1
Conta Corrente
Cod : String
Saldo : Num
Vetor_Aplic_PreFix : Aplic_Pre_Fixadas
Vetor Historico : Historico
Agncia : Agncia
Operao
Cod_Operacao : String
Desc_Operao : String
Criar()
Destruir()
Depositar()
Debitar()
Transferir()
Obter_Saldo()
Aplicar_Prefix()
Criar()
Destruir()
Tirar_Extrato()
Rerirar_Aplic_Prefix()
Valor : Num
Data_Venc : date
Possui
Taxa : Num
Criar()
Destruir()
*
Possui
Poupana
Data_Venc : Date
Criar()
Destruir()
Cliente
Nome : String
CPF : String
Rua : String
Fone : String
Bairro : String
Cidade : String
CEP : String
Estado : String
Vetor Dependentes : Dependentes
1
Vetor Conta_Correntes : Conta_Corrente
Vetor Poupanas : Poupana
Possui
*
*
Possui
Dependente
Nome : String
CPF : Num
Parentesco : String
Vetor Poupanas : Poupana
Criar()
Destruir()
Localizar()
2010 Alfamidia Prow
Abrir_Poupana()
Fechar_Poupana()
Aplicaes Pr Fixadas
Possui
1
*
Criar()
Destruir()
Localizar()
Abrir_Conta_Corrente()
Remover_Conta_Corrente()
Adic_Dependente()
Excluir_Dependente()
Abrir_Poupana()
Fechar_Poupana()
72
UML
Paramodelarmoscomoosobjetosdosistemairointeragirentresi,utilizamosodiagramade
seqnciaouodecolaborao.Emodelaremosumdiagramaparacadafuno(usecase)definidano
diagrama de usecases. Escolhemos o diagrama de seqncia para dar mais nfase a ordem
cronolgicadasinteraesentreosobjetos.Jsefaznecessrioutilizaridiasbsicasdamodelagem
dainterfacedosistemacomoasjanelas.Masessesobjetosdeinterfaceserototalmentedetalhados
nafasededesign.
Administrao do
banco
1: Dados do Cliente()
: Cliente
2: $localizar (String)
:Conta Corrente
: Histrico
3: Create (Cliente)
4: Create(Data)
73
UML
Nestafasemodelasetambmodiagramadeestadodasclasses.Masesteseenquadra
em situaes onde o comportamento dos objetos importante para aplicao. Em casos de
modelagensdesistemasparaequipamentosmecnicos.
74
2010 Alfamidia Prow
UML
Design
Nestafasecomearemosaimplementaremnossosmodelososmelhoramentosetcnicasde
comorealmentecadafunodosistemaserconcebida.Seromodelosmaisdetalhadoscomnfase
nas solues para armazenamento dos dados, funes primordiais do sistema e interface com o
usurio.
Afasededesignpodeserdivididaemoutrasduasfases:
Designdaarquitetura:Esteodesigndealtonvelondeospacotes(subsistemas)so
definidos, incluindo as dependncias e mecanismos de comunicao entre eles. Naturalmente, o
objetivocriarumaarquiteturasimpleseclara,ondeasdependnciassejampoucasequepossamser
bidirecionaissemprequepossvel.
Designdetalhado:Estapartedetalhaocontedodospacotes,entotodasclassessero
totalmentedescritasparamostrarespecificaesclarasparaoprogramadorqueirgerarocdigoda
classe. Modelos dinmicos do UML so usados para demonstrar como os objetos se comportam em
diferentessituaes.
Designdaarquitetura
Umaarquiteturabemprojetadaabaseparafuturasexpansesemodificaesnosistema.Os
pacotes podem ser responsveis por funes lgicas ou tcnicas do sistema. de vital importncia
separaralgicadaaplicaodalgicatcnica.Issofacilitarmuitofuturasmudanasnosistema.
75
UML
Emnossocasodeestudo,identificamos4pacotes(subsistemas):
Interface do
Usurio
Objetos do
Sistema
Utilidades
Banco de Dados
PacotedaInterfacedoUsurio:Estarocontidasasclassesparaacriaodainterface
dousurio,parapossibilitarqueestesacessemeentremcomnovosdadosnosistema.Estasclasses
sobaseadasnopacoteJavaAWT,queopadroJavaparacriaodeinterfaces.Estepacotecoopera
comopacotedeobjetosdosistema,quecontmasclassesondeosdadosestoguardados.Opacote
deinterfacechamaoperaesnopacotedeobjetosdosistemaparaacessareinserirnovosdados.
Pacote de Objetos do Sistema: Este pacote inclui classes bsicas, ou seja, classes que
foram desenvolvidas exatamente para tornar o sistema em desenvolvimento funcional. Estas classes
so detalhadas no design, ento so includos operaes e mtodos em sua estrutura e o suporte
Persistnciaadicionado.Opacotedeobjetosdeveinteragircomodebancodedadosetodasassuas
classesdevemherdardaclassePersistentedopacotedebancodedados
76
2010 Alfamidia Prow
UML
PacotedeBancodeDados:Estepacotedisponibilizaserviosparaasclassesdopacote
deobjetosfazendocomqueosdadosarmazenadosnosistemasejamgravadosemdisco.
PacotedeUtilidades:Estecontmserviosquesousadosportodososoutrospacotes
do sistema. Atualmente a classe ObjId a nica no pacote, e usada para referenciar os objetos
persistentesemtodoosistema.
Design detalhado
Opropsitododesigndetalhadodescreverasnovasclassestcnicasdosistema,comoclasses
de criao da interface, de banco de dados e para expandir e detalhar a descrio das classes de
objetos,quejforamdefinidasnafasedeanlise.
Tudoistofeitocomacriaodenovosdiagramasdeclasses,deestado,edinmicos.Seroos
mesmosdiagramascriadosnafasedeanlise,masumnveldedetalhamentotcnicomaiselevado.
Chegamosaumdiagramadeclassesmaisevoludocomainclusodepersistncia.
77
UML
Agncia
Operao
Historico
Data : Date
Operao : ObjId [ ]
*
Valor : Num
Cod_Agencia : String
Nome_Agncia : String
Agencia()
Atualizar_Dados()
Gravar()
Ler()
Cod_Operacao : String
Desc_Operao : String
Operacao()
Atualizar_Dados()
Gravar()
Ler()
Criar()
Destruir()
*
1
*
Dependente
Conta Corrente
Cod : String
Saldo : Num
Aplic_PreFix : ObjId[ ] 1
Historico : ObjId[ ]
Agncia : ObjId
Depositar()
Debitar()
Transferir()
Obter_Saldo()
Aplicar_Prefix()
Conta_Corrente()
Tirar_Extrato()
Rerirar_Aplic_Prefix()
Localizar()
Gravar()
Ler()
0
objid : int
$ iter : RandomAccessFile
Persistent()
GetObjId()
GetObject()
Armazenar()
Apagar()
abstract Atualizar_Dados()
abstract Gravar()
abstract Ler()
Nome : String
CPF : Num
Parentesco : String
Poupanas : ObjId [ ]
Dependentes()
Localizar()
Abrir_Poupana()
Fechar_Poupana()
1 Atualizar_Dados()
Gravar()
Ler()
*
1
*
Aplicaes Pr Fixadas
Valor : Num
Data_Venc : date
Taxa : Num
Aplicaes_Pre_Fixadas()
Gravar()
Ler()
Persistente
*
Poupana
Data_Venc : Date
Popanca()
*
Cliente
Nome : String
CPF : String
Rua : String
Fone : String
Bairro : String
Cidade : String
CEP : String
1 Estado : String
Dependentes : ObjId [ ]
Conta_Correntes : ObjId [ ]
1 Poupanas : ObjId [ ]
Cliente()
Gravar()
Ler()
Localizar()
Abrir_Conta_Corrente()
Remover_Conta_Corrente()
Adic_Dependente()
Excluir_Dependente()
Abrir_Poupana()
Fechar_Poupana()
Atualizar_Dados()
78
UML
Olayoutdasjanelasdevesercriadocomalgumaferramentavisualdeacordocomapreferncia
do desenvolvedor. Ferramentas visuais j geram o cdigo necessrio para a criao de janelas.
Algumasferramentasjsuportamaadiodecontroladoresdeeventosparaeventosdisparadospor
usurioscomocliquesembotes.Oambientegeraummtodookbutton_Clickedqueserchamado
quandoobotoOKforpressionado.
Aaplicaoresultantedainterfacedeusurioumajanelaprincipalcomummenudeopes.
Cadaopoescolhidadomenumostrarumajanelanovaquejuntasseroresponsveisporreceber
asinformaesdousurioeexecutarafunoaqualsepropemafazer.
79
UML
Implementao
Pelo fato de em Java cada arquivo poder conter uma e somente uma classe, podemos
facilmente escrever um diagrama de componentes contendo um mapeamento das classes
provenientesdavisolgica.
Agoracodificamoscadaclassedopacotedeobjetosdosistema,ainterface,obancodedadose
opacotedeutilidades.Acodificaodeveserbaseadanosmodelosdesenvolvidosnasfasesdeanlise
derequisitos,anliseedesign,maisprecisamentenasespecificaesdeclasses,diagramasdeclasses,
deestado,dinmicos,deusecaseseespecificao.
80
2010 Alfamidia Prow
UML
Testes
Aaplicaodeversertestada.Deveseverificarseoprogramasuportatodaafuncionalidade
quelhefoiespecificadanafasedeanlisederequisitoscomodiagramadeusecases.Aaplicaodeve
sertambmtestadadaformamaisinformalcolocandoseosistemanasmosdosusurios.
81