Vous êtes sur la page 1sur 81

UML

2010

2010 Alfamidia Prow

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

2010 Alfamidia Prow

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.

Quando construdos corretamente, sistemas orientados a objetos so flexveis a mudanas,


possuemestruturas bemconhecidaseprovmaoportunidade decriareimplementarcomponentes
totalmentereutilizveis.

Modelosorientadosaobjetossoimplementadosconvenientementeutilizandoumalinguagem
deprogramaoorientadaaobjetos.Aengenhariadesoftwareorientadaaobjetosmuitomaisque
utilizar mecanismos de sua linguagem de programao, saber utilizar, da melhor forma possvel,
todasastcnicasdamodelagemorientadaaobjetos.

A orientao a objetos no s teoria, mas uma tecnologia de eficincia e qualidade


comprovadas,usadaseminmerosprojetoseparaconstruodediferentestiposdesistemas.

A orientao a objetos requer um mtodo que integre o processo de desenvolvimento e a


linguagemdemodelagemcomaconstruodetcnicaseferramentasadequadas.

2010 Alfamidia Prow

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.

OMT Tcnica de Modelagem de Objetos (Object Modelling Technique) um mtodo


desenvolvidopelaGE(GeneralElectric)ondeJamesRumbaughtrabalhava.Omtodoespecialmente
voltadoparaotestedosmodelos,baseadonasespecificaesdaanlisederequisitosdosistema.O
modelototaldo sistema baseadonomtodoOMT composto pelajuno dosmodelosdeobjetos,
funcionaleusecases.

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:

Utilizar a modelagem de sistemas (no apenas de software) usando os conceitos da


orientaoaobjetos;

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.

2010 Alfamidia Prow

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:

Sistemas de Informao: Armazenar, pesquisar, editar e mostrar informaes para os


usurios.Mantergrandesquantidadesdedadoscomrelacionamentoscomplexos,quesoguardados
embancosdedadosrelacionaisouorientadosaobjetos.

Sistemas Tcnicos: Manter e controlar equipamentos tcnicos como de


telecomunicaes, equipamentos militares ou processos industriais. Eles devem possuir interfaces
especiais do equipamento e menos programao de software de que os sistemas de informao.
SistemasTcnicossogeralmentesistemasrealtime.

SistemasRealtimeIntegrados:Executadosemsimplespeasdehardwareintegradosa
telefones celulares, carros, alarmes etc. Estes sistemas implementam programao de baixo nvel e
requeremsuporterealtime.

Sistemas Distribudos: Distribudos em mquinas onde os dados so transferidos


facilmente de uma mquina para outra. Eles requerem mecanismos de comunicao sincronizados
paragarantiraintegridadedosdadosegeralmentesoconstrudosemmecanismosdeobjetoscomo
CORBA,COM/DCOMouJavaBeans/RMI.
8
2010 Alfamidia Prow

UML

Sistemas de Software: Definem uma infraestrutura tcnica que outros softwares


utilizam.SistemasOperacionais,bancosdedados,eaesdeusuriosqueexecutamaesdebaixo
nvel no hardware, ao mesmo tempo em que disponibilizam interfaces genricas de uso de outros
softwares.

Sistemas de Negcios: descreve os objetivos, especificaes (pessoas, computadores


etc.),asregras(leis,estratgiasdenegciosetc.),eoatualtrabalhodesempenhadonosprocessosdo
negcio.

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.

2010 Alfamidia Prow

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

2010 Alfamidia Prow

11

UML

Na fase de programao, as classes provenientes do design so convertidas para o cdigo da


linguagem orientada a objetos escolhida (a utilizao de linguagens procedurais extremamente no
recomendada). Dependendo da capacidade da linguagem usada, essa converso pode ser uma tarefa fcil
ou muito complicada. No momento da criao de modelos de anlise e design em UML, melhor evitar
traduzi-los mentalmente em cdigo. Nas fases anteriores, os modelos criados so o significado do
entendimento e da estrutura do sistema, ento, no momento da gerao do cdigo onde o analista
conclua antecipadamente sobre modificaes em seu contedo, seus modelos no estaro mais
demonstrando o real perfil do sistema. A programao uma fase separada e distinta, onde os modelos
criados so convertidos em cdigo.

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.

Umsistema compostopordiversosaspectos:funcional(quesuaestruturaesttica esuas


interaes dinmicas), no funcional (requisitos de tempo, confiabilidade, desenvolvimento, etc.) e
aspectosorganizacionais(organizaodotrabalho,mapeamentodosmdulosdecdigo,etc.).Entoo
sistema descrito em certo nmero de vises, cada uma representando uma projeo da descrio
completaemostrandoaspectosparticularesdosistema.

Cadavisodescrita porumnmero dediagramasquecontminformaes quedonfase


aos aspectos particulares do sistema. Existe em alguns casos, uma certa sobreposio entre os
diagramas o que significa que um deste pode fazer parte de mais de uma viso. Os diagramas que
compemasvisescontmosmodelosdeelementosdosistema.Asvisesquecompemumsistema
so:

2010 Alfamidia Prow

13

UML

Viso de Componentes

Viso Lgica

Viso de Use-case

Viso de Organizao

Viso de Concorrncia

DiagramadeVisesdaUML

Viso usecase: Descreve a funcionalidade do sistema desempenhada pelos atores


externos do sistema (usurios). A viso usecase central, j que seu contedo base do
desenvolvimentodasoutrasvisesdosistema.Essavisomontadasobreosdiagramasdeusecasee
eventualmentediagramasdeatividade.

Viso Lgica: Descreve como a funcionalidade do sistema ser implementada. feita


principalmente pelos analistas e desenvolvedores. Em contraste com a viso usecase, a viso lgica
observa e estuda o sistema internamente. Ela descreve e especifica a estrutura esttica do sistema
(classes, objetos, e relacionamentos) e as colaboraes dinmicas quando os objetos enviarem
mensagensunsparaosoutrospararealizaremasfunesdosistema.Propriedadescomopersistncia
econcorrnciasodefinidasnestafase,bemcomoasinterfaceseasestruturasdeclasses.Aestrutura
esttica descrita pelos diagramas de classes e objetos. A modelagem dinmica descrita pelos
diagramasdeestado,seqncia,colaboraoeatividade.

Viso de Componentes: uma descrio da implementao dos mdulos e suas


dependncias. principalmente executado por desenvolvedores, e consiste nos componentes dos
diagramas.

14
2010 Alfamidia Prow

UML

Viso de concorrncia: Trata a diviso do sistema em processos e processadores. Este


aspecto,queumapropriedadenofuncionaldosistema,permiteumamelhorutilizaodoambiente
ondeosistemaseencontrar,seomesmopossuiexecuesparalelas,eseexistedentrodosistema
um gerenciamento de eventos assncronos. Uma vez dividido o sistema em linhas de execuo de
processos concorrentes (threads), esta viso de concorrncia dever mostrar como se d a
comunicao e a concorrncia destas threads. A viso de concorrncia suportada pelos diagramas
dinmicos, que so os diagramas de estado, seqncia, colaborao e atividade, e pelos diagramas de
implementao, que so os diagramas de componente e execuo.

Viso de Organizao: Finalmente, a viso de organizao mostra a organizao fsica do


sistema, os computadores, os perifricos e como eles se conectam entre si. Esta viso ser executada
pelos desenvolvedores, integradores e testadores, e ser representada pelo diagrama de execuo.

2010 Alfamidia Prow

15

UML

Unidade 4:
Diagrama Use-Case

A modelagem de um diagrama usecase uma tcnica usada para descrever e definir os


requisitos funcionais de um sistema. Eles so escritos em termos de atores externos, usecases e o
sistema modelado. Os atores representam o papel de uma entidade externa ao sistema como um
usurio,umhardware,ououtrosistemaqueinteragecomosistemamodelado.Osatoresiniciama
comunicao com o sistema atravs dos usecases, onde o usecase representa uma seqncia de
aesexecutadaspelosistemaerecebedoatorquelheutilizadadostangveisdeumtipoouformato
jconhecido,eovalorderespostadaexecuodeumusecase(contedo)tambmjdeumtipo
conhecido,tudoissodefinidojuntamentecomousecaseatravsdetextodedocumentao.

Atores e usecases so classes. Um ator conectado a um ou mais usecases atravs de


associaes, e tanto atores quanto usecases podem possuir relacionamentos de generalizao que
definemumcomportamentocomumdeheranaemsuperclassesespecializadasemsubclasses.

O uso de usecases em colaboraes muito importante, onde estas so a descrio de um


contexto, mostrando classes/objetos, seus relacionamentos e sua interao exemplificando como as
classes/objetos interagem para executar uma atividade especfica no sistema. Uma colaborao
descritapordiagramasdeatividadeseumdiagramadecolaborao.

Quandoumusecaseimplementado,aresponsabilidadedecadapassodaexecuodeveser
associada s classes que participam da colaborao, tipicamente especificando as operaes
necessriasdentrodestasclassesjuntamentecomadefiniodecomoelasirointeragir.Umcenrio
16
2010 Alfamidia Prow

UML

uma instncia de um usecase, ou de uma colaborao, mostrando o caminho especfico de cada


ao.Porisso,ocenrioumimportanteexemplodeumusecaseoudeumacolaborao.Quando
visto em nvel de um usecase, apenas a interao entre o ator externo e o usecase vista, mas j
observandoemnveldeumacolaborao,todaasinteraesepassosdaexecuoqueimplementam
osistemaserodescritoseespecificados.

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

O diagrama de usecases acima demonstra as funes de um ator externo de um sistema de


controlebancriodeumbancofictcioquefoimodeladonoestudodecasonofinaldestedocumento.
Odiagramaespecificaquefunesoadministradordobancopoderdesempenhar.Podeseperceber
quenoexistenenhumapreocupaocomaimplementaodecadaumadestasfunes,jqueeste
diagramaapenasseresumeadeterminarquefunesdeverosersuportadaspelosistemamodelado
2010 Alfamidia Prow

17

UML

Pedir lista dos


matriculados
Sistema de
cobrana

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

2010 Alfamidia Prow

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.

2010 Alfamidia Prow

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

2010 Alfamidia Prow

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.

2010 Alfamidia Prow

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.

2010 Alfamidia Prow

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:

Existem informaes que devem ser armazenadas ou analisadas? Se existir alguma


informao que tenha que ser guardada, transformada ou analisada de alguma forma, ento uma
possvelcandidataparaserumaclasse.

Existemsistemasexternosaomodelado?Seexistir,elesdeveroservistoscomoclasses
pelosistemaparaquepossainteragircomoutrosexternos.

Existem classes de bibliotecas, componentes ou modelos externos a serem utilizados


pelosistemamodelado?Sesim,normalmenteessasclasses,componentesemodelosconteroclasses
candidatasaonossosistema.

Qualopapeldosatoresdentrodosistema?Talvezopapeldelespossaservistocomo
classes,porexemplo,usurio,operador,clienteedapordiante.

Em UML as classes so representadas por um retngulo dividido em trs compartimentos: o


compartimento de nome, que conter apenas o nome da classe modelada, o de atributos, que
possuir a relao de atributos que a classe possui em sua estrutura interna, e o compartimento de
operaes, que sero os mtodos de manipulao de dados e de comunicao de uma classe com

2010 Alfamidia Prow

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

Duas classes se relacionando por associao normal

NoexemploacimavemosumrelacionamentoentreasclassesClienteeContaCorrentequese
relacionamporassociao.

AssociaoRecursiva

possvelconectarumaclasseaelamesmaatravsdeumaassociaoequeaindarepresenta
semanticamenteaconexoentredoisobjetos,masosobjetosconectadossodamesmaclasse.Uma
associaodestetipochamadadeassociaorecursiva.

Pessoa
Esposa

Marido
casado com

Exemplodeumaassociaorecursiva

AssociaoQualificada

2010 Alfamidia Prow

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

2010 Alfamidia Prow

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.

2010 Alfamidia Prow

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:

Generalizaes de Sobreposio e Disjuntiva: Generalizao de sobreposio significa que


quando subclasses herdam de uma superclasse por sobreposio, novas subclasses destas podem
herdardemaisdeumasubclasse.Ageneralizaodisjuntivaexatamenteocontrriodasobreposio
eageneralizaoutilizadacomopadro.

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

2010 Alfamidia Prow

37

UML

Unidade 6:
Diagrama de Seqncia

Um diagrama de seqncia mostra a colaborao dinmica entre os vrios objetos de um


sistema. O mais importante aspecto deste diagrama que a partir dele percebese a seqncia de
mensagens enviadas entre os objetos. Ele mostra a interao entre os objetos, alguma coisa que
aconteceremumpontoespecficodaexecuodosistema.Odiagramadeseqnciaconsisteemum
nmerodeobjetosmostradosemlinhasverticais.Odecorrerdotempovisualizadoobservandoseo
diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto so
simbolizadasporsetasentreosobjetosqueserelacionam.

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.

2010 Alfamidia Prow

39

UML

Atores

Os atores so exatamente os mesmos descritos no diagrama usecase, ou seja, entidades


externasqueinteragemcomosistema.

Objetos

OjjetosrepresentaminstnciasdasclassesenvolvidasnoprocessoilustradopeloDiagramade
Sequncia.

40
2010 Alfamidia Prow

UML

Focodecontroleouativao

Indicaosperodosemqueumdeterminadoobjetoestparticipandoativamentedoprocesso,
ouseja,identificaosmomentosemqueumobjetoestexecutandoumoumaismtodosutilizadosem
umprocessoespecfico.

Mensagensouestmulos

As mensagens so representadas por retas entre os dois componentes envolvidos, contendo


umasetaparaindicarqualobjetoouatordisparouamensagemnooutroobjeto.

2010 Alfamidia Prow

41

UML

Autochamadas

Autochamadassomensagensqueumobjetoenviaparasimesmo.

Condies

42
2010 Alfamidia Prow

UML

Indicamqueumamensagemspodeserenviadaaumobjetoseumadeterminadacondio
forverdadeira.

2010 Alfamidia Prow

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.

Os estados no diagrama de atividade mudam para um prximo estgio quando uma ao


executada (sem ser necessrio especificar nenhum evento como no diagrama de estado). Outra
diferenaentreodiagramadeatividadeeodeestadoquepodemsercolocadascomoswimlanes.
Umaswimlaneagrupaatividades,comrespeitoaquemresponsveleondeestasatividadesresidem
naorganizao,erepresentadaporretngulosqueenglobamtodososobjetosqueestoligadosa
ela(swimlane).

Um diagrama de atividade uma maneira alternativa de se mostrar interaes, com a


possibilidadedeexpressarcomoasaessoexecutadas,oqueelasfazem(mudanasdosestadosdos
objetos),quandoelassoexecutadas(seqnciadasaes),eondeelasacontecem(swimlanes).

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).

O diagrama de atividade mostra o fluxo seqencial das atividades, normalmente utilizado


para demonstrar as atividades executadas por uma operao especfica do sistema. Consistem em
estadosdeao,quecontmaespecificaodeumaatividadeaserdesempenhadaporumaoperao
dosistema.Decisesecondies,comoexecuoparalela,tambmpodemsermostradasnadiagrama
de atividade. O diagrama tambm pode conter especificaes de mensagens enviadas e recebidas
comopartesdeaesexecutadas.

2010 Alfamidia Prow

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

Um estado de ao representa a realizao de uma ao dentro de um fluxo de controle;


atmico,ouseja,nopodeserdecompostoemsubestados.

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.

2010 Alfamidia Prow

47

UML

Raiasdenatao
Asraiasdenataosoumaextensododiagramadeatividades,ondeprocuraseidentificaros
diversossetores,departamentosoumesmoatoresqueinteragemcomumprocesso.

48
2010 Alfamidia Prow

UML

2010 Alfamidia Prow

49

UML

Unidade 8:
Diagrama de Estado

O diagrama de estado tipicamente um complemento para a descrio das classes. Este


diagrama mostra todos os estados possveis que objetos de uma certa classe podem se encontrar e
mostra tambm quais so os eventos do sistemas que provocam tais mudanas. Os diagramas de
estadonosoescritosparatodasasclassesdeumsistema,masapenasparaaquelasquepossuem
um nmero definido de estados conhecidos e onde o comportamento das classes afetado e
modificadopelosdiferentesestados.

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.

2010 Alfamidia Prow

51

UML

Unidade 9:
Diagrama de Colaborao

Um diagrama de colaborao mostra de maneira semelhante ao diagrama de seqncia, a


colaborao dinmica entre os objetos. Normalmente podese escolher entre utilizar o diagrama de
colaboraoouodiagramadeseqncia.

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.

O diagrama de colaborao desenhado como um diagrama de objeto, onde os diversos


objetossomostradosjuntamentecomseusrelacionamentos.Assetasdemensagenssodesenhadas
entre os objetos para mostrar o fluxo de mensagens entre eles. As mensagens so nomeadas, que
entre outras coisas mostram a ordem em que as mensagens so enviadas. Tambm podem mostrar
condies, interaes, valores de resposta, e etc. O diagrama de colaborao tambm pode conter
objetosativos,queexecutamparalelamentecomoutros.

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

Diagrama de Claborao Servidor de Impresso.

Objetos

Osobjetosdodiagramadecolaboraorepresentamomesmoquenodesequncia,ouseja,
instnciasdasclassesqueparticipamdeumprocesso.

Vnculos

Um dos principais objetivos do Diagrama de colaborao identificar os vnculos, ou seja, as


ligaesentreosobjetosenvolvidosemumprocesso.

2010 Alfamidia Prow

53

UML

54
2010 Alfamidia Prow

UML

Mensagens

Asmensagensidentificadasnodiagramadecolaboraosoasmesmasdefinidasnodiagrama
desequncia,egeralmenterepresentamchamadasdemtodos.

2010 Alfamidia Prow

55

UML

Unidade 10:
Diagrama de Componentes

O diagrama de componente e o de execuo so diagramas que mostram o sistema por um


ladofuncional,expondoasrelaesentreseuscomponenteseaorganizaodeseusmdulosdurante
suaexecuo.

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.

Componentes so tipos, mas apenas componentes executveis podem ter instncias. Um


diagrama de componente mostra apenas componentes como tipos. Para mostrar instncias de
componentes,deveserusadoumdiagramadeexecuo,ondeasinstnciasexecutveissoalocadas
emnodes.

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.

2010 Alfamidia Prow

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

2010 Alfamidia Prow

59

UML

Exemplo de Diagrama de Implantao modelado juntamente com Diagrama de


Componentes

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

O escritrio possui um cadastro de pessoas que participam de processos como clientes ou


como partes contrrias. Uma pessoa pode ser tanto fsica como jurdica e pode ter sido cliente do
escritrioemumadeterminadapocaepartecontrriaemoutra.
Existe uma grande quantidade de processos cadastrados, concludos e em andamento. Cada
processo deve armazenar informaes como o nmero do processo, tribunal e vara que tramita, o
cliente,partecontrriaedatadeabertura.
Oadvogadopodeacharnecessrioemitirrelatriosdetodososprocessosemandamentoem
umdeterminadotribunaleemumadeterminadavara.
Cadaprocessopossuinomnimoumaaudincia,parafinsdehistrico,cadaaudinciadeveser
armazenada.
Umprocessogeracustas.Cadacustadevesercobradaoudoclienteoudapartecontrria.O
registrodeumacustadeveconteradata,descrioevalorgasto.

2010 Alfamidia Prow

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.

Um processo de desenvolvimento descreve o que fazer, como fazer, quando fazer, e


porquedeveserfeito.Estetambmdescreveumnmerodeatividadesquedevemserexecutadas
emumacertaordem.Quandosodefinidaserelacionadasasatividadesdeumprocesso,umobjetivo
especficoalcanado.

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

Um mtodo (processo) tradicional de desenvolvimento orientado a objetos dividido em


anlisederequisitos,anlise,design(projeto),implementao,etestes.Aanlisederequisitoscaptura
as necessidadesbsicasfuncionaisenofuncionaisdosistemaquedeveserdesenvolvido.Aanlise
modelaoproblemaprincipal(classes,objetos)ecriaummodeloidealdosistemasemlevaremconta
requisitostcnicosdosistema.Odesignexpandeeadaptaosmodelosdaanliseparaumambiente
tcnico, onde as solues tcnicas so trabalhadas em detalhes. A implementao consiste em
codificar em linguagem de programao e banco de dados os modelos criados. E as atividades de
testes devem testar o sistema em diferentes nveis, verificando se o mesmo corresponde as
expectativasdousurio.

ExisteumprocessodesenvolvidopelaRationalInc.,mesmaempresaquedesenvolveuaUML,
quemontaduasvisesdodesenvolvimentodeumsistema:visogerencialetcnica.Avisotcnica
utilizaastradicionaisatividadesdeanlise,designeimplementao,enquantoavisogerencialutiliza
asseguintesfasesnodesenvolvimentodecadageraodosistema.

Incio:Defineoescopoeobjetivodoprojeto;

Elaborao:Desenvolveoprodutoemdetalhesatravsdeumasriedeinteraes.Isto
envolvemaisanlise,designeprogramao;

Transio: Gera o sistema para o usurio final, incluindo as atividades de marketing,


suporte,documentaoetreinamento.

Cadafasenocicloexecutadaemsriesdeinteraesquepodemsobreporoutrasfases.Cada
interao consiste tipicamente em atividades tradicionais como anlise e design, mas em diferentes
proporesdependendodafaseemqueestejaageraodosistemaemdesenvolvimento.

Ferramentas modernas devem dar suporte no apenas para linguagens de modelagem e


programao,masdevemsuportarummtodode desenvolvimentodesistemas tambm. Issoinclui
2010 Alfamidia Prow

65

UML

conhecimentodasfasesemumprocesso,ajudaonline,eaconselhamentosdoquefazeremcadafase
dodesenvolvimentosuporteadesenvolvimentointerativoefcilintegraocomoutrasferramentas.

66
2010 Alfamidia Prow

UML

Unidade 14:
Estudo de caso em UML

Diante do apresentado no decorrer do documento, aplicaremos aqui grande parte dos


conceitosabordadosdiantedeumaaplicaodaUMLnumproblemafictcioquepoderserdegrande
ajudanomelhorentendimentodaspotencialidadesdalinguagemdemodelagemunificada.

Oestudodecasodarmaisnfasenasfasesdeanlisederequisitos,anliseedesign,jqueas
principaisabstraesdosmodelosdosistemaseencontramnestasfasesdodesenvolvimento.

Desenvolveremos uma modelagem em UML para criarmos um sistema de manuteno e


controledecontascorrenteseaplicaesfinanceirasdeumbancofictcio.

Osistemasuportarumcadastrodeclientes,ondecadaclientecadastradopoderter
vriascontascorrentes,tervriosdependentesligadosaele,evriascontasdepoupana.

Cadadependentepoderpossuirvriascontasdepoupana,masnopoderoteruma
contacorrenteprpria.

2010 Alfamidia Prow

67

UML

Entendemospoupanacomoumacontaquepossuiumvalor,umprazodeaplicaoa
umataxadejuros(definidanovencimentodapoupana).

EntendemosAplicaesPrfixadascomoumaaplicaodeumvalor,emumprazopr
determinadoaumataxadejurospreviamentedefinida.

Tanto a conta corrente quanto a poupana dever manter um histrico de todas as


movimentaesdecrdito,dbito,transfernciaseaplicaesdeprfixados(prfixadosapenaspara
contacorrente).

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

Tendo em mos esta relao de atividades, j podemos modelar o diagrama de usecase do


sistema.

2010 Alfamidia Prow

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

Diagrama de use-case Fase de Anlise de Requisitos.

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.

2010 Alfamidia Prow

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

Diagrama de Classes Fase de Anlise.


Jtemosemmosasfunesprimordiaisdosistema(diagramadeusecases)eodiagramade
classes da anlise do domnio do problema, partiremos agora para traar como estas classes iro
interagirpararealizarasfunesdosistema.Lembramosque,aindanestafasenenhumtipodetcnica
deimplementaodeveserconsiderada.

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

: Janela Abrir Conta


Corrente

1: Dados do Cliente()

: Cliente

2: $localizar (String)

:Conta Corrente

: Histrico

3: Create (Cliente)
4: Create(Data)

Diagrama de Sequncia Fase de Anlise.

2010 Alfamidia Prow

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.

2010 Alfamidia Prow

75

UML

Emnossocasodeestudo,identificamos4pacotes(subsistemas):

Interface do
Usurio

Objetos do
Sistema

Utilidades

Banco de Dados

Fase de Design Definio dos Pacotes.

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.

As descries de usecases provenientes dafase de anlise so usadas para verificar se estes


esto sendo suportados pelos diagramas gerados na fase de design, e diagramas de seqncia so
usadosparailustrarcomocadausecasetecnicamenteimplementadanosistema.

Chegamosaumdiagramadeclassesmaisevoludocomainclusodepersistncia.

2010 Alfamidia Prow

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()

2010 Alfamidia Prow

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

Diagrama de Classes Fase de Design


Criamos os diagramas de seqncia para funes do sistema, descritas no diagrama de use
cases,jpossuindoosparmetrosparacadamensagementreosobjetos.

Olayoutdasjanelasdevesercriadocomalgumaferramentavisualdeacordocomapreferncia
do desenvolvedor. Ferramentas visuais j geram o cdigo necessrio para a criao de janelas.
Algumasferramentasjsuportamaadiodecontroladoresdeeventosparaeventosdisparadospor
usurioscomocliquesembotes.Oambientegeraummtodookbutton_Clickedqueserchamado
quandoobotoOKforpressionado.

Aaplicaoresultantedainterfacedeusurioumajanelaprincipalcomummenudeopes.
Cadaopoescolhidadomenumostrarumajanelanovaquejuntasseroresponsveisporreceber
asinformaesdousurioeexecutarafunoaqualsepropemafazer.

2010 Alfamidia Prow

79

UML

Implementao

A fase de construo ou implementao quando as classes so codificadas. Os requisitos


especificam que o sistema deve ser capaz de rodar em diversos tipos de processadores e sistemas
operacionais,entoalinguagemescolhidafoiJava.

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.

Existiro algumas deficincias durante a fase de codificao. As necessidades da criao de


novas operaes e modificaes em operaes j existentes sero identificadas, significando que o
desenvolvedorter quemudarseusmodelosdafase dedesign. Isto ocorreemtodos osprojetos.O
que mais importante que sejam sincronizadas a modelagem de design com a codificao, desta
formaosmodelospoderoserusadoscomodocumentaofinaldosistema.

80
2010 Alfamidia Prow

UML

Testes

Aaplicaodeversertestada.Deveseverificarseoprogramasuportatodaafuncionalidade
quelhefoiespecificadanafasedeanlisederequisitoscomodiagramadeusecases.Aaplicaodeve
sertambmtestadadaformamaisinformalcolocandoseosistemanasmosdosusurios.

2010 Alfamidia Prow

81

Vous aimerez peut-être aussi