Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila UML
Apostila UML
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Introduo
Desenvolvimento de Softwares orientado a objetos
UML A unificao dos mtodos para a criao de um novo padro
Uso da UML
Fases do Desenvolvimento de um Sistema em UML
1. Anlise de Requisitos
2. Anlise
3. Design (Projeto)
4. Programao
5. Testes
A Notao da Linguagem de Modelagem Unificada UML
Vises
Modelos de Elementos
1. Classes
2. Objetos
3. Estados
4. Pacotes
5. Componentes
6. Relacionamentos
7. Mecanismos Gerais
Diagramas
1. Diagrama Use-Case
2. Diagrama de Classes
3. Diagrama de Objetos
4. Diagrama de Estado
5. Diagrama de Sequncia
6. Diagrama de Colaborao
7. Diagrama de Atividade
8. Diagrama de Componente
9. Diagrama de Execuo
Um processo para utilizar a UML
O Futuro da UML
Um estudo de caso em UML - Sistema de Controle de Contas Correntes, Poupana e
Aplicaes Pr-fixadas
1. Anlise de Requisitos
2. Anlise
3. Design
4. Implementao
5. Testes
Concluso
1. Introduo
O grande problema do desenvolvimento de novos sistemas utilizando a orientao a objetos nas
fases de anlise de requisitos, anlise de sistemas e design que no existe uma notao
padronizada e realmente eficaz que abranja qualquer tipo de aplicao que se deseje. Cada
simbologia existente possui seus prprios conceitos, grficos e terminologias, resultando numa
grande confuso, especialmente para aqueles que querem utilizar a orientao a objetos no s
sabendo para que lado aponta a seta de um relacionamento, mas sabendo criar modelos de
qualidade para ajud-los a construir e manter sistemas cada vez mais eficazes.
Quando a "Unified Modeling Language" (UML) foi lanada, muitos desenvolvedores da rea da
orientao a objetos ficaram entusiasmados j que essa padronizao proposta pela UML era o
tipo de fora que eles sempre esperaram.
A UML muito mais que a padronizao de uma notao. tambm o desenvolvimento de novos
conceitos no normalmente usados. Por isso e muitas outras razes, o bom entendimento da UML
no apenas aprender a simbologia e o seu significado, mas tambm significa aprender a modelar
orientado a objetos no estado da arte.
UML foi desenvolvida por Grady Booch, James Rumbaugh, e Ivar Jacobson que so conhecidos
como "os trs amigos". Eles possuem uma extenso conhecimento na rea de modelagem
orientado a objetos j que as trs mais conceituadas metodologias de modelagem orientado 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. Veremos caractersticas de cada
uma destas metodologias no desenvolver deste trabalho.
Veremos como a UML aborda o carter esttico e dinmico do sistema a ser analisado levando em
considerao, j no perodo de modelagem, todas as futuras caractersticas do sistema em relao
a utilizao de "packages" prprios da linguagem a ser utilizada, utilizao do banco de dados bem
como as diversas especificaes do sistema a ser desenvolvido de acordo com as mtricas finais
do sistema.
No intuito deste trabalho definir e explicar 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 dentro de um
desenvolvimento utilizando a UML.
Cada um destes mtodos possui sua prpria notao (seus prprios smbolos para representar
modelos orientado a objetos), processos (que atividades so desenvolvidas em diferentes partes
do desenvolvimento), e ferramentas (as ferramentas CASE que suportam cada uma destas
notaes e processos).
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.
Os objetivos da UML so:
Estabelecer uma unio fazendo com que mtodos conceituais sejam tambm executveis;
Criar uma linguagem de modelagem usvel tanto pelo homem quanto pela mquina.
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 extensivamente testados
provenientes das metodologias existentes anteriormente, e tambm muito bem documentada
com toda a especificao da semntica da linguagem representada em meta-modelos
4. Uso da UML
A UML usada no desenvolvimento dos mais diversos tipos de sistemas. Ela abrange sempre
qualquer caracterstica de um sistema em um de seus diagramas e tambm aplicada em
diferentes fases do desenvolvimento de um sistema, desde a especificao da anlise de
requisitos at a finalizao com a fase de testes.
O objetivo da UML descrever qualquer tipo de sistema, em termos de diagramas orientado a
objetos. Naturalmente, o uso mais comum para criar modelos de sistemas de software, mas a
UML tambm usada para representar sistemas mecnicos sem nenhum software. Aqui esto
alguns tipos diferentes de sistemas com suas caractersticas mais comuns:
Sistemas de Software: Definem uma infra-estrutura tcnica que outros softwares utilizam.
Sistemas Operacionais, bancos de dados, e aes de usurios que executam aes de
baixo nvel no hardware, ao mesmo tempo que disponibilizam interfaces genricas de uso
de outros softwares.
importante perceber que a maioria dos sistemas no possuem 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 real-time. E a UML suporta
modelagens de todos estes tipos de sistemas.
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.
5.5. Testes
Um sistema normalmente rodado em testes de unidade, integrao, e aceitao. Os testes de
unidade so para classes individuais ou grupos de classes e so geralmente testados pelo
programador. Os testes de integrao so aplicados j usando as classes e componentes
integrados para se confirmar se as classes esto cooperando uma com as outras como
especificado nos modelos. Os testes de aceitao observam o sistema como uma " caixa preta" e
verificam se o sistema est funcionando como o especificado nos primeiros diagramas de "usecases".
O sistema ser testado pelo usurio final e verificar se os resultados mostrados esto realmente
de acordo com as intenes do usurio final.
Vises: As Vises mostram diferentes aspectos do sistema que est sendo modelado. A
viso no um grfico, mas uma abstrao consistindo em uma srie de diagramas.
Definindo um nmero de vises, cada uma mostrar aspectos particulares do sistema,
dando enfoque a ngulos e nveis de abstraes diferentes e uma figura completa do
sistema poder ser construda. As vises tambm podem servir de ligao entre a
linguagem de modelagem e o mtodo/processo de desenvolvimento escolhido.
10
7. Vises
O desenvolvimento de um sistema complexo no uma tarefa fcil. O ideal seria que o sistema
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 um sistema.
Um sistema composto por diversos aspectos: funcional (que sua estrutura esttica e suas
interaes dinmicas), no funcional (requisitos de tempo, confiabilidade, desenvolvimento, etc.) e
aspectos organizacionais (organizao do trabalho, mapeamento dos mdulos de cdigo, etc.).
Ento o sistema descrito em um certo nmero de vises, cada uma representando uma projeo
da descrio completa e mostrando aspectos particulares do sistema.
Cada viso descrita por um nmero de diagramas que contm informaes que do nfase 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
compem as vises contm os modelos de elementos do sistema. As vises que compem um
sistema so:
11
12
8. Modelos de Elementos
Os conceitos usados nos diagramas so chamados de modelos de elementos. Um modelo de
elemento definido com a semntica, a definio formal do elemento com o exato significado do
que ele representa sem definies duvidosas ou ambguas e tambm define sua representao
grfica que mostrada nos diagramas da UML. Um elemento pode existir em diversos tipos de
diagramas, mas existem regras que definem que elementos podem ser mostrados em que tipos de
diagramas. Alguns exemplos de modelos de elementos so as classes, objetos, estados, pacotes e
componentes. Os relacionamentos tambm so modelos de elementos, e so usados para
conectar outros modelos de elementos entre si. Todos os modelos de elementos sero definidos e
exemplificados a seguir.
8.1. Classes
Uma classe a descrio de um tipo de objeto. Todos os objetos so instncias de classes, onde a
classe descreve as propriedades e comportamentos daquele objeto. Objetos s podem ser
instanciados de classes. Usam-se classes para classificar os objetos que identificamos no mundo
real. Tomando como exemplo Charles Darwin, que usou classes para classificar os animais
conhecidos, e combinou suas classes por herana para descrever a "Teoria da Evoluo". A
tcnica de herana entre classes tambm usada em orientao a objetos.
Uma classe pode ser a descrio de um objeto em qualquer tipo de sistema sistemas de
informao, tcnicos, integrados real-time, distribudos, software etc. Num sistema de software, por
exemplo, existem classes que representam entidades de software num sistema operacional como
arquivos, programas executveis, janelas, barras de rolagem, etc.
Identificar as classes de um sistema pode ser complicado, e deve ser feito por experts no domnio
do problema a que o software modelado se baseia. As classes devem ser retiradas do domnio do
problema e serem nomeadas pelo que elas representam no sistema. Quando procuramos definir
as classes de um sistema, existem algumas questes que podem ajudar a identific-las:
Existem sistemas externos ao modelado? Se existir, eles devero ser vistos como classes
pelo sistema para que possa interagir com outros externos.
Qual o papel dos atores dentro do sistema? Talvez o papel deles possa ser visto como
classes, por exemplo, usurio, operador, cliente e da por diante.
13
possuir a relao de atributos que a classe possui em sua estrutura interna, e o compartimento de
operaes, que sero o mtodos de manipulao de dados e de comunicao de uma classe com
outras do sistema. A sintaxe usada em cada um destes compartimentos independente de
qualquer linguagem de programao, embora pode ser usadas outras sintaxes como a do C++,
Java, e etc.
8.2. Objetos
Um objeto um elemento que podemos manipular, acompanhar seu comportamento, criar, destruir
etc. Um objeto existe no mundo real. Pode ser uma parte de qualquer tipo de sistema, por
exemplo, uma mquina, uma organizao, ou negcio. Existem objetos que no encontramos no
mundo real, mas que podem ser vistos de derivaes de estudos da estrutura e comportamento de
outros objetos do mundo real.
Em UML um objeto mostrado como uma classe s que seu nome (do objeto) sublinhado, e o
nome do objeto pode ser mostrado opcionalmente precedido do nome da classe.
8.3. Estados
Todos os objetos possuem um estado que significa o resultado de atividades executadas pelo
objeto, e normalmente determinada pelos valores de seus atributos e ligaes com outros
objetos.
Um objeto muda de estado quando acontece algo, o fato de acontecer alguma coisa com o objeto
chamado de evento. Atravs da anlise da mudana de estados dos tipos de objetos de um
sistema, podemos prever todos os possveis comportamentos de um objetos de acordo com os
eventos que o mesmo possa sofrer.
14
Um estado, em sua notao, pode conter trs compartimentos. O primeiro mostra o nome do
estado. O segundo opcional e mostra a varivel do estado, onde os atributos do objeto em
questo podem ser listados e atualizados. Os atributos so aqueles mostrados na representao
da classe, e em algumas vezes, podem ser mostradas tambm as variveis temporrias, que so
muito teis em diagramas de estado, j que atravs da observncia de seus valores podemos
perceber a sua influncia na mudana de estados de um objeto. O terceiro compartimento
opcional e chamado de compartimento de atividade, onde eventos e aes podem ser listadas.
Trs eventos padres podem ser mostrados no compartimento de atividades de um estado: entrar,
sair e fazer. O evento entrar pode ser usado para definir atividades no momento em que o objeto
entra naquele estado. O evento sair, define atividades que o objeto executa antes de passar para o
prximo estado e o evento fazer define as atividades do objeto enquanto se encontra naquele
estado.
8.4. Pacotes
Pacote um mecanismo de agrupamento, onde todos os modelos de elementos podem ser
agrupados. Em UML, um pacote definido como: "Um mecanismo de propsito geral para
organizar elementos semanticamente relacionados em grupos." Todos os modelos de elementos
que so ligados ou referenciados por um pacote so chamados de "Contedo do pacote". Um
pacote possui vrios modelos de elementos, e isto significa que estes no podem ser includos em
outros pacotes.
15
casos, os pacotes possuem relacionamentos com outros pacotes. Embora estes no possuam
semnticas definidas para suas instncias. Os relacionamentos permitidos entre pacotes so de
dependncia, refinamento e generalizao (herana).
O pacote tem uma grande similaridade com a agregao (relacionamento que ser tratado em
seguida). O fato de um pacote ser composto de modelos de elementos cria uma agregao de
composio. Se este for destrudo, todo o seu contedo tambm ser.
8.5. Componentes
Um componente pode ser tanto um cdigo em linguagem de programao como um cdigo
executvel j compilado. Por exemplo, em um sistema desenvolvido em Java, cada arquivo .java
ou .class um componente do sistema, e ser mostrado no diagrama de componentes que os
utiliza.
8.6. Relacionamentos
Os relacionamentos ligam as classes/objetos entre si criando relaes lgicas entre estas
entidades. Os relacionamentos podem ser dos seguintes tipos:
Associao: uma conexo entre classes, e tambm significa que uma conexo entre
objetos daquelas classes. Em UML, uma associao definida com um relacionamento
que descreve uma srie de ligaes, onde a ligao definida como a semntica entre as
duplas de objetos ligados.
16
8.6.1 Associaes
Uma associao representa que duas classes possuem uma ligao (link) entre elas, significando
por exemplo que elas "conhecem uma a outra", "esto conectadas com", "para cada X existe um Y"
e assim por diante. Classes e associaes so muito poderosas quando modeladas em sistemas
complexos.
Associaes Normais
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), normalmente um verbo, mas substantivos tambm so permitidos.
Pode-se tambm colocar uma seta no final da associao indicando que esta s pode ser usada
para o lado onde a seta aponta. Mas associaes tambm podem possuir dois nomes, significando
um nome para cada sentido da associao.
Para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos
esto relacionados no link. O intervalo pode ser de zero para um (0..1), zero para vrios (0..* ou
apenas *), um para vrios (1..*), dois (2), cinco para 11 (5..11) e assim por diante. tambm
possvel expressar uma srie de nmeros como (1, 4, 6..12). Se no for descrito nenhuma
multiplicidade, ento considerado o padro de um para um (1..1 ou apenas 1).
Associao Qualificada
Associaes qualificadas so usadas com associaes de um para vrios (1..*) ou vrios para
vrios (*). O "qualificador" (identificador da associao qualificada) especifica como um
determinado objeto no final da associao "n" identificado, e pode ser visto como um tipo de
17
chave para separar todos os objetos na associao. O identificador desenhado como uma
pequena caixa no final da associao junto classe de onde a navegao deve ser feita.
Associao Exclusiva
Em alguns modelos nem todas as combinaes so vlidas, e isto pode causar problemas que
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
dado momento. Uma associao exclusiva representada por uma linha tracejada entre as
associaes que so parte da associao exclusiva, com a especificao "{ou}" sobre a linha
tracejada.
No diagrama acima um contrato no pode se referir a uma pessoa e a uma empresa ao mesmo
tempo, significando que o relacionamento exclusivo a somente uma das duas classes.
Associao Ordenada
As associaes entre objetos podem ter uma ordem implcita. O padro para uma associao
desordenada (ou sem nenhuma ordem especfica). Mas uma ordem pode ser especificada atravs
da associao ordenada. Este tipo de associao pode ser muito til em casos como este: janelas
de um sistema tm que ser ordenadas na tela (uma est no topo, uma est no fundo e assim por
diante). A associao ordenada pode ser escrita apenas colocando "{ordenada}" junto a linha de
associao entre as duas classes.
Associao de Classe
Uma classe pode ser associada a uma outra associao. Este tipo de associao no conectada
a nenhuma das extremidades da associao j existente, mas na prpria linha da associao. Esta
associao serve para se adicionar informaes extra a associao j existente.
18
A associao da classe Fila com a associao das classes Cliente e Processo pode ser estendida
com operaes de adicionar processos na fila, para ler e remover da fila e de ler o seu tamanho.
Se operaes ou atributos so adicionados a associao, ela deve ser mostrada como uma classe.
Associao Ternria
Mais de duas classes podem ser associadas entre si, a associao ternria associa trs classes.
Ela mostrada como um grade losango (diamante) e ainda suporta uma associao de classe
ligada a ela, traaria-se, ento, uma linha tracejada a partir do losango para a classe onde seria
feita a associao ternria.
No exemplo acima a associao ternria especifica que um cliente poder possuir 1 ou mais
contratos e cada contrato ser composto de 1 ou vrias regras contratuais.
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
identificar uma agregao so: "consiste em", "contm", " parte de".
Agregao Compartilhada: dita compartilhada quando uma das classes uma parte, ou
est contida na outra, mas esta parte pode fazer estar contida na outra vrias vezes em
um mesmo momento.
19
No exemplo acima uma pessoa pode ser membro de um time ou vrios times e em
determinado momento.
Agregao de Composio: uma agregao onde uma classe que est contida na outra
"vive" e constitui a outra. Se o objeto da classe que contm for destrudo, as classes da
agregao de composio sero destrudas juntamente j que as mesmas fazem parte da
outra.
8.6.2. Generalizaes
A generalizao um relacionamento entre um elemento geral e um outro mais especfico. 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. A generalizao, tambm chamada de herana, permite a criao de elementos
especializados em outros.
Existem alguns tipos de generalizaes que variam em sua utilizao a partir da situao. So
elas: generalizao normal e restrita. As generalizaes restritas se dividem em generalizao de
sobreposio, disjuntiva, completa e incompleta.
Generalizao Normal
Na generalizao normal a classe mais especfica, chamada de subclasse, herda tudo da classe
mais geral, chamada de superclasse. Os atributos, operaes e todas as associaes so
herdadas.
Uma classe pode ser tanto uma subclasse quanto uma superclasse, se ela estiver numa hierarquia
de classes que um grfico onde as classes esto ligadas atravs de generalizaes.
A generalizao normal representada por uma linha entre as duas classes que fazem o
relacionamento, sendo que coloca-se um seta no lado da linha onde encontra-se a superclasse
indicando a generalizao.
20
Generalizao Restrita
Uma restrio aplicada a uma generalizao especifica informaes mais precisas sobre como a
generalizao deve ser usada e estendida no futuro. As restries a seguir definem as
generalizaes restritas com mais de uma subclasse:
21
Os refinamentos so um tipo de relacionamento entre duas descries de uma mesma coisa, mas
em nveis de abstrao diferentes e podem ser usados para modelar diferentes implementaes de
uma mesma coisa (uma implementao simples e outra mais complexa, mas tambm mais
eficiente).
Os refinamentos so simbolizados por uma linha tracejada com um tringulo no final de um dos
lados do relacionamento e so usados em modelos de coordenao. Em grandes projetos, todos
os modelos que so feitos devem ser coordenados. Coordenao de modelos pode ser usada para
mostrar modelos em diferentes nveis de abstrao que se relacionam e mostram tambm como
modelos em diferentes fases de desenvolvimento se relacionam.
Notas: Nem tudo pode ser definido em uma linguagem de modelagem, sem importar o
quanto extensa ela seja. Para permitir adicionar informaes a um modelo no poderia ser
representado de outra forma, UML prov a capacidade de adicionar Notas. Uma Nota pode
ser colocada em qualquer lugar em um diagrama, e pode conter qualquer tipo de
informao.
22
9. Diagramas
Os diagramas utilizados pela UML so compostos de nove tipos: diagrama de use case, de
classes, de objeto, de estado, de sequncia, de colaborao, de atividade, de componente e o de
execuo.
Todos os sistemas possuem uma estrutura esttica e um comportamento dinmico. A UML suporta
modelos estticos (estrutura esttica), dinmicos (comportamento dinmico) e funcional. A
Modelagem esttica suportada pelo diagrama de classes e de objetos, que consiste nas classes
e seus relacionamentos. Os relacionamentos podem ser de associaes, herana (generalizao),
dependncia ou refinamentos. Os modelamentos dinmicos so suportados pelos diagramas de
estado, sequncia, colaborao e atividade. E o modelamento funcional suportado pelos
diagramas de componente e execuo. Abordaremos agora cada um destes tipos de diagrama:
9.1. Diagrama Use-Case
A modelagem de um diagrama use-case uma tcnica usada para descrever e definir os requisitos
funcionais de um sistema. Eles so escritos em termos de atores externos, use-cases e o sistema
modelado. Os atores representam o papel de uma entidade externa ao sistema como um usurio,
um hardware, ou outro sistema que interage com o sistema modelado. Os atores iniciam a
comunicao com o sistema atravs dos use-cases, onde o use-case representa uma sequncia
de aes executadas pelo sistema e recebe do ator que lhe utiliza dados tangveis de um tipo ou
formato j conhecido, e o valor de resposta da execuo de um use-case (contedo) tambm j
de um tipo conhecido, tudo isso definido juntamente com o use-case atravs de texto de
documentao.
Atores e use-cases so classes. Um ator conectado a um ou mais use-cases atravs de
associaes, e tanto atores quanto use-cases podem possuir relacionamentos de generalizao
que definem um comportamento comum de herana em superclasses especializadas em
subclasses.
O uso de use-cases 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
descrita por diagramas de atividades e um diagrama de colaborao.
Quando um use-case implementado, a responsabilidade de cada passo da execuo deve ser
associada s classes que participam da colaborao, tipicamente especificando as operaes
necessrias dentro destas classes juntamente com a definio de como elas iro interagir. Um
23
24
Uma classe num diagrama pode ser diretamente implementada utilizando-se uma linguagem de
programao orientada a objetos que tenha suporte direto para construo de classes. Para criar
um diagrama de classes, as classes tm que estar identificadas, descritas e relacionadas entre si.
9.3. Diagrama de Objetos
O diagrama de objetos uma variao do diagrama de classes e utiliza quase a mesma notao. A
diferena que o diagrama de objetos mostra os objetos que foram instanciados das classes. O
diagrama de objetos como se fosse o perfil do sistema em um certo momento de sua execuo.
A mesma notao do diagrama de classes utilizada com 2 excees: os objetos so escritos com
seus nomes sublinhados e todas as instncias num relacionamento so mostradas. Os diagramas
de objetos no so to importantes como os diagramas de classes, mas eles so muito teis para
exemplificar diagramas complexos de classes ajudando muito em sua compreenso. Diagramas de
objetos tambm so usados como parte dos diagramas de colaborao, onde a colaborao
dinmica entre os objetos do sistema so mostrados.
25
de estado no so escritos para todas as classes de um sistema, mas apenas para aquelas que
possuem um nmero definido de estados conhecidos e onde o comportamento das classes
afetado e modificado pelos diferentes estados.
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, e
condies sendo satisfeitas) afetam estes estados ao passar do tempo.
26
Os diagramas de sequncia podem mostrar objetos que so criados ou destrudos como parte do
cenrio documentado pelo diagrama. Um objeto pode criar outros objetos atravs de mensagens. A
mensagem que cria ou destroi um objeto geralmente sncrona, representada por uma seta slida.
9.6. Diagrama de Colaborao
Um diagrama de colaborao mostra de maneira semelhante ao diagrama de sequencia, a
colaborao dinmica entre os objetos. Normalmente pode-se escolher entre utilizar o diagrama de
colaborao ou o diagrama de sequncia.
No diagrama de colaborao, alm de mostrar a troca de mensagens entre os objetos, percebe-se
tambm os objetos com os seus relacionamentos. A interao de mensagens mostrada em
ambos os diagramas. Se a nfase do diagrama for o decorrer do tempo, melhor escolher o
diagrama de sequncia, 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 objetos
so mostrados juntamente com seus relacionamentos. As setas de mensagens so desenhadas
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 objetos ativos, que executam paralelamente com outros.
27
Para capturar os trabalhos que sero executados quando uma operao disparada
(aes). Este o uso mais comum para o diagrama de atividade.
Para mostrar como um grupo de aes relacionadas podem ser executadas, e como elas
vo afetar os objetos em torno delas.
Para mostrar como uma instncia pode ser executada em termos de aes e objetos.
O diagrama de atividade mostra o fluxo sequencial das atividades, normalmente utilizado para
demonstrar as atividades executadas por uma operao especfica do sistema. Consistem em
estados de ao, que contm a especificao de uma atividade a ser desempenhada por uma
operao do sistema. Decises e condies, como execuo paralela, tambm podem ser
mostrados na diagrama de atividade. O diagrama tambm pode conter especificaes de
mensagens enviadas e recebidas como partes de aes executadas.
28
29
Componentes podem definir interfaces que so visveis para outros componentes. As interfaces
podem ser tanto definidas ao nvel de codificao (como em Java) quanto em interfaces binrias
usadas em run-time (como em OLE). Uma interface mostrada como uma linha partindo do
componente e com um crculo na outra extremidade. O nome colocado junto do crculo no final
da linha. Dependncias entre componentes podem ento apontar para a interface do componente
que est sendo usada.
9.9. Diagrama de Execuo
O diagrama de execuo mostra a arquitetura fsica do hardware e do software no sistema. 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.
Especifica-se tambm os componentes executveis e objetos que so alocados para mostrar quais
unidades de software so executados e em que destes computadores so executados.
O diagrama de execuo demonstra a arquitetura run-time de processadores, componentes fsicos
(devices), e de software que rodam no ambiente onde o sistema desenvolvido ser utilizado. a
ltima descrio fsica da topologia do sistema, descrevendo a estrutura de hardware e software
que executam em cada unidade.
O diagrama de execuo composto por componentes, que possuem a mesma simbologia dos
componentes do diagrama de componentes, nodes, que significam objetos fsicos que fazem parte
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 arquitetura fsica do sistema.
30
31
Cada fase no ciclo executada em sries de interaes que podem sobrepor outras fases. Cada
interao consiste tipicamente em atividades tradicionais como anlise e design, mas em
diferentes propores dependendo da fase em que esteja a gerao do sistema em
desenvolvimento.
Ferramentas modernas devem dar suporte no apenas para linguagens de modelagem e
programao, mas devem suportar um mtodo de desenvolvimento de sistemas tambm. Isso
inclui conhecimento das fases em um processo, ajuda online, e aconselhamentos do que fazer em
32
cada fase do desenvolvimento, suporte a desenvolvimento interativo e fcil integrao com outras
ferramentas.
33
34
O sistema suportar um cadastro de clientes, onde cada cliente cadastrado poder ter
vrias contas correntes, vrios dependentes ligados a ele, e vrias contas de poupana.
Cada dependente poder possuir vrias contas de poupana, mas no podero ter uma
conta corrente prpria.
Entendemos poupana como uma conta que possui um valor, um prazo de aplicao a
uma taxa de juros (definida no vencimento da poupana).
Entendemos Aplicaes Pr-fixadas como uma aplicao de um valor, em um prazo prdeterminado a uma taxa de juros previamente definida.
Uma conta corrente poder ter vrias aplicaes pr-fixadas ligadas a ela.
Cadastrar dependente
35
Abrir poupana
Fechar poupana
Aplicar em pr-fixados
Cadastrar Agncia
36
12.2. Anlise
Na fase de anlise, tendo em mos o diagrama de use-case, podemos definir o diagrama de
classes do sistema. Este primeiro diagrama da fase de anlise dever ser totalmente
despreocupado de 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 primeiro diagrama, apenas os tipos de objetos bsicos do sistema.
Analisamos e percebemos que existiro 8 classes no sistema e que se relacionaro segundo o
diagrama de classes a seguir.
37
38
interagir para realizar as funes do sistema. Lembramos que ainda nesta fase nenhum tipo de
tcnica de implementao deve ser considerada.
Para modelarmos como os objetos do sistema iro interagir entre si, utilizamos o diagrama de
sequncia ou o de colaborao. E modelaremos um diagrama para cada funo (use-case)
definida no diagrama de use-cases. Escolhemos o diagrama de sequncia para dar mais nfase a
ordem cronolgica das interaes entre os objetos. J se faz necessrio utilizar idias bsicas da
modelagem da interface do sistema como as janelas. Mas esses objetos de interface sero
totalmente detalhados na fase de design.
Nesta fase modela-se tambm o diagrama de estado das classes. Mas este se enquadra em
situaes onde o comportamento dos objetos importante para aplicao. Em casos de
modelagens de sistemas para equipamentos mecnicos.
12.3. Design
Nesta fase comearemos a implementar em nossos modelos os melhoramentos e tcnicas de
como realmente cada funco do sistema ser concebida. Sero modelos mais detalhados com
nfase nas solues para armazenamento dos dados, funes primordiais do sistema e interface
com o usurio.
A fase de design pode ser dividida em outras duas fases:
Design detalhado: Esta parte detalha o contedo dos pacotes, ento todas classes sero
totalmente descritas para mostrar especificaes claras para o programador que ir gerar o
cdigo da classe. Modelos dinmicos do UML so usados para demonstrar como os
objetos se comportam em diferentes situaes.
Design da arquitetura
39
Uma arquitetura bem projetada a base para futuras expanses e modificaes no sistema. Os
pacotes podem ser responsveis por funes lgicas ou tcnicas do sistema. de vital importncia
separar a lgica da aplicao da lgica tcnica. Isso facilitar muito futuras mudanas no sistema.
Em nosso caso de estudo, identificamos 4 pacotes (subsistemas):
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 Persistncia adicionado. O pacote de objetos deve interagir com o
de banco de dados e todas as suas classes devem herdar da classe Persistente do pacote
de banco de dados
Pacote de Banco de Dados: Este pacote disponibiliza servios para as classes do pacote
de objetos fazendo com que os dados armazenados no sistema sejam gravados em disco.
Pacote de Utilidades: Este contm servios que so usados por todos os outros pacotes do
sistema. Atualmente a classe ObjId a nica no pacote, e usada para referenciar os
objetos persistentes em todo o sistema.
Design detalhado
O propsito do design detalhado descrever as novas classes tcnicas do sistema, como classes
de criao da interface, de banco de dados e para expandir e detalhar a descrio das classes de
objetos, que j foram definidas na fase de anlise.
40
Tudo isto feito com a criao de novos diagramas de classes, de estado, e dinmicos. Sero os
mesmos diagramas criados na fase de anlise, mas um nvel de detalhamento tcnico mais
elevado.
As descries de use-cases provenientes da fase de anlise so usados para verificar se estes
esto sendo suportados pelos diagramas gerados na fase de design, e diagramas de sequencia
so usados para ilustrar como cada use-case tecnicamente implementada no sistema.
Chegamos a um diagrama de classes mais evoludo com a incluso de persistncia.
41
42
Criamos os diagramas de sequencia para funes do sistema, descritas no diagrama de usecases, j possuindo os parmetros para cada mensagem entre os objetos.
O layout das janelas deve ser criado com alguma ferramenta visual de acordo com a preferncia
do desenvolvedor. Ferramentas visuais j geram o cdigo necessrio para a criao de janelas.
Algumas ferramentas j suportam a adio de controladores de eventos para eventos disparados
por usurios como cliques em botes. O ambiente gera um mtodo okbutton_Clicked que ser
chamado quando o boto "OK" for pressionado.
A aplicao resultante da interface de usurio uma janela principal com um menu de opes.
Cada opo escolhida do menu mostrar uma janela nova que juntas sero responsveis por
receber as informaes do usurio e executar a funo a qual se propem a fazer.
12.4. 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 tipo de processadores e sistemas
operacionais, ento a linguagem escolhida foi Java.
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 provenientes da
viso lgica.
Agora codificamos cada classe do pacote de objetos do sistema, a interface, o banco de dados e o
pacote de utilidades. A codificao deve ser baseada nos modelos desenvolvidos nas fases de
anlise de requisitos, anlise e design, mais precisamente nas especificaes de classes,
diagramas de classes, de estado, dinmicos, de use-cases e especificao.
Existiro algumas deficincias durante a fase de codificao. A necessidade da criao de novas
operaes e modificaes em operaes j existentes sero identificadas, significando que o
desenvolvedor ter que mudar seus modelos da fase de design. Isto ocorre em todos os projetos.
O que mais importante que sejam sincronizados a modelagem de design com a codificao,
desta forma os modelos podero ser usados como documentao final do sistema.
12.5. Testes
A aplicao dever ser testada. Deve-se verificar se o programa suporta toda a funcionalidade que
lhe foi especificada na fase de anlise de requisitos com o diagrama de use-cases. A aplicao
deve ser tambm testada da forma mais informal colocando-se o sistema nas mos dos usurios.
43
13. Concluso
O criao de uma linguagem para a comunidade de desenvolvedores em orientao a objetos era
uma necessidade antiga. A UML realmente incorporou muitos recursos com do a linguagem uma
extensibilidade muito grande.
Os organizao da modelagem em vises e a diviso dos diagramas especificando caractersticas
estticas e dinmicas do sistema tornou a UML fcil de ser utilizada e fez com que qualquer tipo de
comportamento possa ser visualizado em diagramas.
A modelagem visual orientada a objetos agora possui um padro, e esse padro extremamente
simples de ser escrito a mo, sendo robusto para especificar e descrever a grande maioria das
funes, relacionamentos e tcnicas de desenvolvimento orientado a objetos que hoje so
utilizados. Novas tcnicas iro surgir e a UML tambm estar preparada j que tudo estar
baseado nas idias elementares da orientao a objetos.
Sem dvida alguma a UML facilitar s grandes empresas de desenvolvimento de software uma
maior comunicao e aproveitamento dos modelos desenvolvidos pelos seus vrios analistas
envolvidos no processo de produo de software j que a linguagem que ser utilizada por todos
ser a mesma, acabando assim com qualquer problema de interpretao e mal-entendimento de
modelos criados por outros desenvolvedores. Os modelos criados hoje podero ser facilmente
analisados por futuras geraes de desenvolvedores acabando com a diversidade de tipos de
nomenclaturas de modelos, o grande empecilho do desenvolvimento de softwares orientados a
objetos.
Os fabricantes de ferramentas CASE agora suportaro a UML em seus softwares e a fase de
codificao ser cada vez mais substituda pela gerao de cdigo automtico desempenhada
pelas ferramentas CASE.
44