Beruflich Dokumente
Kultur Dokumente
Diagrama de Classe
Representa as classes e os relacionamentos entre elas. Cada classe representa um conjunto de
informao e/ou funcionalidades de um objeto (um item do sistema). Em outras palavras, representam
o contedo de dados e funcionalidades que so utilizados e manipulados dentro do sistema.
Diagrama de Objetos
Representa uma condio especfica ou um exemplo. So normalmente utilizados para representar
uma configurao especfica do sistema, o que muito usado na realizao de testes ou chamadas
operacionais.
Diagrama de Sequncia
Representa os objetos e uma sequncia lgica de evoluo das informaes e funcionalidades em um
determinado contexto. Foca na troca de mensagens entre um grupo de objetos e a sequncia das
mensagens.
Diagrama de Atividade
Representa os acontecimentos (atividades e mudanas) de acordo com os eventos ocorridos em
alguma parte do sistema. Utilizado para representam o fluxo de dados e o fluxo de controle. Captura o
fluxo entre objetos interligados.
Diagrama de Componente
Representa os componentes de programao de alto nvel. Mostram a organizao e o relacionamento
entre os entregveis (pacotes) do sistema.
Diagrama de Implantao
Representa a arquitetura de execuo do sistema, composta por todos os componentes do sistema e
seus relacionamentos. Contempla, por exemplo, a plataforma de hardware, os artefatos de software, o
ambiente de software (como mquinas virtuais ou sistemas operacionais).
Diagrama de Pacotes
Representam os componentes do sistema que esto associados em partes maiores para futura
distribuio.
Diagrama de Comunicao
Representa as mensagens entre um grupo de objetos e o relacionamento entre eles.
Diagrama de Tempo
Representa as mudanas e o relacionamento delas com o tempo sob a tica do funcionamento real da
aplicao. Este diagrama raramente utilizado.
Diagrama de Perfil
Representa as diferentes verses das funcionalidades disponibilizadas pela aplicao de acordo com
perfis distintos de usurios. Este diagrama raramente utilizado.
02
1.1. Pr-requisito para a disciplina
Para realizarmos os exerccios desta disciplina, iremos precisar de um software de modelagem. H vrias
opes gratuitas, como o softwarelivre Visual Paradigm.
Outro software similar o Violet UML Editor, tambm gratuito.
Observaes:
1: caso voc j tenha feito a disciplina de Java, provavelmente voc j deve ter o software Eclipse.
Nesse caso, no ser necessrio instalar o Visual Paradigm, visto que o Eclipse tambm permite criar os
diagramas da UML.
03
Para que voc possa aproveitar ao mximo essa disciplina, necessrio o conhecimento prvio dos
seguintes assuntos:
Orientao a objeto: conceitos como classe, mtodo, evento, objeto, chamada, herana e
outros so fundamentais para a diagramao UML.
Metodologia de Desenvolvimento de Sistemas baseado em Mtodo Unificado (como o RUP ou
o Open UP): conceitos como iniciao, elaborao, construo e transio, que representam o
ciclo de criao de um projeto de software. Tratamos na UML principalmente das fases de
Iniciao e Elaborao, a documentao elaborada nestas fases servir de embasamento para a
programao de software realizada na fase de construo.
Esses contedos fazem parte do seu curso, ento aproveite para compreend-los bem!
04
1.2. Tipos de diagramas
Na UML h basicamente trs tipos de diagramas:
Diagramas estruturais;
Diagramas de comportamento;
Diagramas de interao.
Diagramas estticos
Representam as
funcionalidades do
sistema que no
mudam com o tempo.
Esta categoria similar
aos diagramas
estruturais.
Diagramas dinmicos
Diagramas funcionais
Representam como o
sistema evolui (se
comporta) com o
tempo. Essa categoria
envolve os diagramas
de estado e de tempo.
Representam os detalhes
dos comportamentos e
os algoritmos, ou seja,
como o sistema realiza o
comportamento
esperado. Essa categoria
inclui os diagramas de
caso de uso, de interao
e de atividades.
Diagramas estruturais
So aqueles que representam a estrutura do software, independente das funcionalidades do sistema.
Por essa razo, eles normalmente no mudam com a evoluo do sistema (manuteno evolutiva).
Esto intimamente ligados tecnologia empregada no projeto.
Diagramas de comportamento
So aqueles que representam como o sistema reponde a uma chamada ou como ele se comporta ao
longo do tempo.
Diagramas de interao
Esses diagramas so um tipo especial de diagramas de comportamento. Esses diagramas representam a
colaborao (troca de mensagens) entre os componentes do projeto, ou mesmo com o projeto e outros
sistemas adjacentes (integrados e/ou relacionados).
05
Voc tambm pode utilizar os diagramas para responder informaes distintas em momentos
especficos do projeto de software. Um exemplo seria:
Os atores (usurios do sistema) nos respectivos casos de uso (representando o propsito do sistema).
Representado nos diagramas de classe que apresenta a estrutura lgica e o diagrama de componentes
que define a estrutura fsica.
Os diagramas de estado e de interao apresentam quais causas (eventos) fazem com que o sistema
reaja e que tarefas so ento executadas.
06
Entretanto, j iniciar o projeto de informao por meio do prottipo no uma boa ideia, pois quando
criamos um prottipo, necessrio e prudente possuir uma viso completa do que o sistema faz e como
ele funciona. Para isso, utilizaremos outras tcnicas de diagramao que nos permitiro entender o que
o nosso cliente quer com o sistema e como ele deve interagir internamente para funcionar conforme o
esperado.
A UML surgiu como uma ideia de promover a comunicao e a produtividade entre os desenvolvedores
de sistemas orientados a objeto, mas o verdadeiro poder da UML a facilidade com que novos
desenvolvedores compreendem o que o sistema deve fazer. Por isso, no s no desenvolvimento de
novos sistemas, mas tambm durante a manuteno dos sistemas j existentes a diagramao UML
tem muito a contribuir.
07
Os principais objetivos da UML realizar as seguintes tarefas:
Especificao
Visualizao
Desenho da arquitetura do sistema
2015 - AIEC - Associao Internacional de Educao Continuada
7
Construo
Simulao e teste
Documentao
Especificao
Entender o que o sistema deve fazer sob a viso do usurio.
Visualizao
Permitir uma viso do todo e como as partes do sistema se integram e interagem entre si.
Construo
Definir um projeto de construo segundo uma ordem lgica que permita, futuramente, a integrao
das diversas partes de software que compe o sistema por completo.
Simulao e teste
Definir regras para as quais o sistema ser testado antes de ser entregue aos usurios finais (colocado
em produo), assim, podero ser identificados problemas de performance, segurana ou mesmo erros
de cdigo.
Documentao
De modo amplo, documentar o sistema de forma a que qualquer desenvolvedor tenha a capacidade de
desenvolv-lo de forma padronizada e, futuramente, alter-lo, consert-lo ou criar novas
funcionalidades para o sistema.
08
2.1. Processo de modelagem de software
A forma pela qual o sistema ser modelado e documentado (que o que a UML pretende) depende do
modelo de desenvolvimento de software proposto no projeto.
Atualmente h, basicamente, dois modelos largamente difundidos, cada um tem suas vantagens e
desvantagens:
Modelo de
Desenvolvimento
Vantagens
Modelo Unificado
(Unified Process)
Modelo gil
Desvantagens
mais complexo;
Demora mais;
O projeto tende a custar mais
caro.
Os conceitos que aprenderemos nesta disciplina permitem a aplicao de qualquer um dos modelos
citados.
09
Ainda em se tratando do modelo unificado, importante relembrar que a modelagem evolui em dois
sentidos com o tempo. Na medida em que o tempo do projeto passa:
Passamos de uma viso mais geral e macro do projeto, para uma viso mais detalhada do que o
sistema deve fazer;
Aps a definio da viso geral, o projeto do sistema dividido em pedaos chamados de iteraes e,
em cada iterao, os detalhes pertencentes quele conjunto so detalhados mais e mais at o nvel de
entendimento e documentao desejado.
10
Fazendo uma analogia com a construo civil, ao modelarmos um sistema como realizar as seguintes
atividades da construo civil para a criao de um prdio:
Fazer um desenho arquitetnico para ter uma viso geral externa do prdio. Da mesma forma,
criaremos uma viso geral do sistema sob o ponto de vista do usurio.
Fazer a planta de diviso dos ambientes internos. Tambm identificaremos as funcionalidades
do sistema.
Produzir as plantas eltricas e hidrulicas de forma a estruturar e promover funcionalidades e
recursos para cada rea e diviso do prdio. Da mesma forma, iremos criar diversos
documentos, com objetivos diferentes, que sero integrados entre si, juntando-os dentro de um
projeto nico (foco e objetivo nico).
11
2015 - AIEC - Associao Internacional de Educao Continuada
10
2.2. Abstrao
Abstrao refere-se capacidade humana de traduzir o que est escrito e diagramado e imaginar como
aquilo ser no futuro.
Ao ler a planta de uma casa conseguimos entender a disposio e tamanho dos cmodos. Ao ver um
mapa de uma estrada, conseguir interpretar quais sero as cidades pelas quais passaremos ao longo do
nosso trajeto. Sob essa mesma ideia, ao criarmos a documentao UML, precisaremos ter a capacidade
de interpretar os diagramas e textos criados naquilo que futuramente chamaremos de sistema!
Quando modelamos um sistema, o material que produzimos no completa exatamente TODAS as
caractersticas do sistema, mas sim aquelasessenciais para formar a estrutura do sistema.
As demais caractersticas do sistema so informadas equipe de projeto por meio de documentos
auxiliares como prottipos, desenhos de tela, exemplos de grficos e relatrios, escolha de fontes,
tamanhos e cores, e outros.
12
2.3. Da generalizao para a especializao
Uma das formas mais tradicionais de se especificar e modelar um sistema de informao partir de um
conceito mais genrico, central, geral, amplo, grosso modo (generalizao) para um conceito mais
detalhado, especfico, determinado, definido, claro, restrito (especializao).
Utilizaremos essa tcnica no fluxo de trabalho de modelagem de um projeto de sistema de informao:
partiremos de diagramas que representam conceitos genricos, passando por diagramas que
representam conceitos intermedirios, at chegarmos a diagramas que representam conceitos
especficos e detalhados.
medida que o projeto de sistema de informao vai evoluindo, novas ideias so clarificadas, definidas
e detalhadas. Muitas vezes necessrio voltar aos documentos j elaborados para refin-los, corrigi-los
ou adequ-los aos projetos.
13
3 - Automao por meio da arquitetura dirigida ao modelo
A arquitetura dirigida ao modelo (do ingls Model-Driven Architecture MDA) uma metodologia de
desenvolvimento de software que permite a estreita relao entre os diagramas UML e o cdigo fonte.
Ferramentas de desenvolvimento de software que suportam essa tecnologia fazem com que qualquer
mudana feita nos diagramas UML automaticamente reflita no cdigo fonte do programa. O contrrio
tambm verdadeiro, qualquer mudana no cdigo fonte atualiza a documentao UML. Desta forma,
conseguem-se os seguintes benefcios:
A documentao do projeto nunca fica desatualizada em relao ao cdigo fonte.
2015 - AIEC - Associao Internacional de Educao Continuada
11
Facilita o desenvolvimento.
Modelos de alto nvel independente de plataformas (tecnologias).
A documentao do projeto nunca fica desatualizada em relao ao cdigo fonte.
Sempre que o desenvolvedor altera, corrige, cria ou retira parte do sistema, a documentao
automaticamente reflete essas mudanas.
Facilita o desenvolvimento.
Por criar toda a estrutura do projeto, fica mais fcil programas o sistema. Tambm diminui erros de
programao por falta ou excesso de cdigo em divergncia com o que foi estipulado.
14
15
5 - Conceitos Gerais
Para trabalharmos com UML essencial que alguns conceitos de orientao a objetos estejam bem
claros para voc:
Descrio
Exemplo
Objeto
Classe
Um conjunto de objetos
similares quanto
estrutura e
comportamento.
Abstrao
Descreve a essncia de
um objeto para um
propsito.
Mantm as coisas
simples suprimindo
detalhes.
Informa tudo o
desejvel sobre o
objeto.
Encapsulamento
Informao
oculta
Agregao
Generalizao
Especializao
Informa o que
diferente em um objeto
em particular. o
oposto da generalizao.
Herana
Objetos especficos
herdam caractersticas
comuns de objetos
genricos.
Polimorfismo
16
No dia a dia, ns reproduzimos e utilizamos vrios dos conceitos da orientao ao objeto sem perceber.
Entender esses conceitos importante, pois facilita o estudo da matria.
Quando olhamos um mapa de uma estrada que liga duas cidades quaisquer, por exemplo, ns no
vemos a estrada real, mas sim uma representao daquilo que encontraremos ao dirigir pelo caminho.
Ao ler o mapa, interpretamos as linhas e curvas que vemos como a estrada que iremos percorrer. Essa
interpretao do desenho na estrada de fato o que chamamos de abstrao. Quando modelamos
um softwareno vemos nos diagramas que criamos o software em si, mas sim uma representao
daquilo que queremos construir.
O mapa tambm no contm as rvores, as placas e sinalizaes, pontes e viadutos que encontramos
pelo caminho. Apenas as informaes relevantes esto l presentes, as demais so omitidas. Assim na
modelagem, apenas o que realmente importante deve estar presente, os demais detalhes surgiro em
outro momento com documentos de apoio, prottipos, exemplos etc. A modelagem deve focar naquilo
que essencial para o sistema funcionar de maneira completa.
17
J o termo encapsular refere-se a esconder os detalhes internos daquela funcionalidade de quem a
acessa, o que importante no s para dar mais segurana aplicao, mas tambm para no poluir o
prprio ambiente de desenvolvimento. Por exemplo, voc sabe que ao ligar o aparelho de arcondicionado ele funcionar, voc no precisa saber como os fios, motor, tubulaes e demais peas
esto conectadas internamente. Pois bem, essas peas todas esto encapsuladas em um objeto
chamado ar-condicionado.
Dica: quando voc precisar esconder as partes internas de um objeto, use a notao da UML de
agregao. Dessa forma, voc estar escondendo a complexidade de todo um objeto do mundo
exterior que o acessa (os demais objetos que interagem com ele).
A composio um tipo especial de agregao, para entender a composio mais fcil quando
comparamos as duas:
Composio
Agregao
Observe que a diferena bsica a fora com a qual os objetos esto ligados entre si. Na composio, a
fora extrema e vital, j na agregao uma espcie de parceria suave.
18
5.1. Algumas outras palavras tcnicas no mundo orientado ao objeto
Diferentemente do mundo estruturado antigo, onde tnhamos apenas os conceitos de variveis,
constantes, frmulas, funes e procedimentos, o mundo orientado ao objeto trouxe consigo uma srie
de novos elementos. Vejamos os principais:
Elemento
Componente
Desenvolvimento
baseado em
componentes
Interface
Padro (Pattern)
Significado
Exemplo
Framework (sem
uma boa traduo
para o portugus)
Ferramenta de
modelagem UML
Ciclo de vida
Metodologia (de
desenvolvimento de
software)
19
6 - Criando aplicaes com programao orientada a componentes
Antigamente, quando falvamos de programao estruturada, os programadores normalmente criavam
os programas baseando-se numa sequncia lgica: primeiro se criava a tela principal do sistema, com o
login de acesso e o menu de funcionalidades, depois criava-se os cadastros bsicos, depois os cadastros
mais complexos, depois as operaes do sistema e por fim, os relatrios. Quase todas as equipes
utilizavam essa ideia de processo de criao de software.
Entretanto, para o mundo orientado a objetos essa tcnica mostrou-se ineficiente.
Construir software orientado a objetos tem outra lgica, outra ideia: agora, os programadores criam os
diversos pedaos (componentes) de software, cada um especializado em um tipo de tarefa. Exemplo:
cria-se um componente de interface de usurio, outro de gerenciamento de login e segurana, outro
para cadastros, outro para relatrios, tudo de forma bem genrica. Depois, hora de montar o sistema,
juntando os diversos componentes em outros componentes mais especficos, que realizam as tarefas
2015 - AIEC - Associao Internacional de Educao Continuada
18
pontuais. Para isso, reutilizam-se os componentes genricos integrando-os por meio de componentes
mais especializados.
A maioria das linguagens de programao moderna, como Java, Ms .Net, PHP e outras, j possuem
prontos todos os componentes genricos utilizveis por qualquer tipo de software. Desta forma, o
trabalho do programador fica simplificado na arte de juntar esses componentes naquilo que o
propsito do projeto de software.
20
Ainda, por meio desses componentes (que j foram testados exaustivamente), o risco de incorrer em
erros de software cada vez menor. Assim como a segurana, a qualidade e a performance devem ser
cada vez maiores.
Dessa forma, a criao de programas orientados ao objeto deve seguir as regras:
1. Criar componentes;
2. Separar o que o componente pode fazer do como o componente faz;
3. Promover um mtodo padro para comunicao entre os componentes;
existam em um
ambiente padro.
Criar componentes
Escrever (ou utilizar) unidades de software como grupo de objetos que cooperam entre si, os quais voc
pode reutiliz-los em vrias partes da sua aplicao ou mesmo em vrias aplicaes. Nesta etapa muito
comum utilizar bibliotecas de software feitas por outras pessoas. Exemplos: bibliotecas para editar texto,
bibliotecas para tratar de assinatura digital, bibliotecas para tratar de arquivos multimdia, bibliotecas para
tratar criptografia, etc.
quais interfaces outros componentes disponibilizam; c) registrar a si prprios, de modo que outros
componentes possam encontra-los e invoc-los. O Enterprise Java Beans (EJB) um bom exemplo de
ambiente de componentes. O EJB prov meios padro para criar, registrar, encontrar, executar e
deletar componentes.
21
6.1. Usando ferramentas de UML
Diagramas UML so fceis de desenhar, entretanto, requerem certa dose de dom artstico para
ficarem legveis e bem organizados. Voc poderia desenhar diagramas UML usando um papel e uma
caneta, mas certamente seria impossvel manter as atualizaes no diagrama bem como ler e
interpretar dezenas e dezenas de diagramas.
O que precisamos de uma ferramenta de modelagem UML, formalmente conhecida
como ferramentas CASE (Computer-Aided SoftwareEngineering Engenharia de Software Assistida por
Computao). Uma ferramenta de modelagem faz muito mais do que desenhar diagramas.
Com essa ferramenta possvel:
22
Existem mais de 200 ferramentas de UML atualmente, a escolha daquela mais adequada ao seu projeto
deve levar em conta:
a tecnologia utilizada,
o framework de desenvolvimento,
o tamanho do projeto, e
a expertise da equipe.
Sistemas WEB
Aqui voc provavelmente precisar de ferramentas que sejam capazes de criar scripts de cdigo e
servios WEB. Estruturas de dados em formato XML, cdigo em cliente (cliente-side code), e operaes
nos servios (server-side code) so alguns dos exemplos de tecnologia que sua ferramenta dever
suprir.
23
Resumo
Neste mdulo, aprendemos que:
a. UML uma linguagem ou notao de diagramas para especificar, visualizar e documentar
modelos de software orientados por objetos.
2015 - AIEC - Associao Internacional de Educao Continuada
22
g. H vrios profissionais de TI que utilizam os diagramas UML para suas tarefas do dia a dia. Cada
profissional tem um uso particular para os diagramas.
h. Os conceitos de UML esto estritamente ligados aos conceitos de programao orientada a
componentes.
i.
H centenas de opes de escolha de ferramentas de diagramao UML, cada uma pode ser
mais bem adequada a uma ou outra equipe. H de se fazer uma boa anlise antes de adquirir ou
utilizar uma ferramenta de modelagem UML em um projeto.
1 - CASOS DE USO
Neste mdulo voc aprender os conceitos mais comuns e utilizados no dia a dia no desenvolvimento
de aplicaes orientadas a objetos. Tanto atuando como um modelador de sistemas quanto como um
programador, ns iremos familiariz-los com os conceitos de casos de uso. Voc ver detalhes
importantes sobre a notao de modelagem de objetos por meio da UML e ver dicas importantes e
boas prticas. Tambm voc aprender a identificar os problemas mais comuns que voc deve evitar.
O incio de um projeto de software tambm o momento mais importante do projeto. Saber utilizar
bem o tempo gasto nessa fase primordial para obter uma boa concepo do projeto. Nesse momento
voc dever ser capaz de identificar os principais objetivos do projeto e quais so as pessoas e
mecanismos que interagem com o sistema.
02
O diagrama de casos de uso o diagrama que apresenta o teor menos tcnico de todos os diagramas.
Isso se deve ao fato de este diagrama demonstrar como as pessoas esperam que o sistema funcione.
Portanto, por ter a viso das pessoas comuns (usurios) de se esperar que os termos que apaream
nele sejam relativamente fceis das pessoas comuns entenderem.
Identificao dos usurios relevantes para o sistema (lembrando que um usurio pode ser
tambm uma mquina ou outro sistema).
Os servios que os usurios executaro no sistema (algo como as funcionalidades que eles
esperam que o sistema produza).
Os servios que os usurios precisam prover para o sistema (informaes e procedimentos que
devem ser inseridos e executados no sistema).
03
O diagrama de caso de uso pode representar uma atividade manual do dia a dia de uma organizao a
qual se quer ser transformada em uma atividade gerenciada por um sistema de informao. Muitas
vezes, os insumos para se criar casos de uso so as teorias da administrao, de gesto de pessoas, do
direito civil, do direito comercial, pois so essas teorias (e tambm leis, regulamentos, regras etc.) que
definem a forma de se trabalhar. Dessa maneira, evita-se um erro muito comum na criao de sistemas:
ao invs de se criar sistemas que devem fazer a atividade do jeito certo, criam-se sistemas que
executam as atividades informadas de maneira errada ou incompleta pelas pessoas que as realizam no
dia a dia nas empresas.
por isso que o trabalho do profissional de informtica que faz a modelagem de sistemas no deve ser
apenas o de documentar a rotina de trabalho atual, mas tambm procurar certificar-se que as
instrues que lhe so passadas pelos usurios a forma correta (e completa) de se trabalhar.
Dessa maneira, podemos concluir que as atividades de elaborao de casos de uso podem incluir:
Geralmente, ao modelar um sistema de informao temos dois cenrios: o atual, onde h um problema
para ser resolvido, e um futuro, que representa a situao que se quer alcanar.
Modelar sistemas saber traar o melhor caminho entre a situao atual e o
cenrio futuro. Essa reta que liga esses dois pontos o escopo do projeto, e o
profissional que sabe construir essa reta da maneira mais inteligente, simples e
eficaz, certamente criar o melhor projeto de software possvel.
04
Para se definir os requisitos de um projeto de sistema de informao necessrio considerar duas
dimenses:
Por exemplo, no basta apenas dizer que um sistema qualquer deve permitir que o usurio faa o
pagamento de um boleto bancrio por meio do sistema, mas deve incluir todos os detalhes tcnicos,
tais como: que o boleto ter seu cdigo de barras digitado no sistema (e no escaneado por um scanner
de cdigo de barras), que o sistema dever funcionar 24h por dia (e no somente no horrio de
expediente bancrio), que o sistema dever guardar em registro interno quem foi a pessoa que realizou
o pagamento, entre outras informaes.
O escopo do projeto deve definir claramente quais so as fronteiras da aplicao. O que ela deve fazer
e o que ela no faz, mas que necessrio para o projeto funcionar. Muitas vezes, como podemos estar
tratando de sistemas que conversam com outros sistemas, ento importante deixar bem claro qual
a fronteira que limita essas duas aplicaes e como elas trocaro informaes entre si.
05
Um diagrama de caso de usos pode representar tanto a viso geral e total de todo um sistema, como
pode ser detalhado em diagramas mais especficos at o ponto de representar apenas uma pequena
funcionalidade do sistema. comum termos relacionamentos do tipo um diagrama pai, mais genrico,
que aponta para vrios diagramas filhos (ou at mesmo netos, bisnetos etc.), mais detalhados e
especficos.
Para permitir a documentao de todo o sistema, em seus diversos nveis, a UML prov o conceito de
pacotes. A ideia dos pacotes similar de diretrios que podem conter subdiretrios e/ou arquivos.
Cada subdiretrio representa subconjuntos do sistema e cada arquivo um subdiagrama. Para o analista
que ir modelar o sistema, o ideal que se parta de uma viso mais macro e com o tempo ele vai
detalhando at o ponto em que julgar aquele nvel de detalhe ideal para a compreenso do projeto
de software.
06
Como um sistema de informao criado para desempenhar um conjunto de funcionalidades, de se
esperar que o levantamento de informaes para a modelagem desse sistema comece pela identificao
das funcionalidades que fazem parte do escopo do projeto.
2015 - AIEC - Associao Internacional de Educao Continuada
26
Definir como as funcionalidades interagem entre si, por onde comeam e onde terminam, quais
so aquelas que podem funcionar de maneira isolada e quais dependem de outras.
Definir os comportamentos especficos que o sistema deve realizar, o que sucesso (e est ok),
e o que pode ser considerado errado (e deve ser desfeito ou cancelado).
07
Sob essa ideia, nossos futuros sistemas podem no ser uma representao sistematizada do que
ocorre no presente, mas sim uma reinveno da forma de se trabalhar, buscando alternativas mais
vantajosas e eficientes. Em outras palavras, o sistema no deve focar em como as pessoas trabalham
atualmente, mas procurar meios de alcanar os resultados do trabalho de modo mais simples, prtico,
barato, seguro, eficiente e rpido. E tudo isso responsabilidade do modelador de sistemas! Exemplo
prtico.
Exemplo prtico
Pense em um cinema que sempre vendeu ingressos na sua bilheteria de forma manual e agora
solicitado a voc um sistema para modernizar a venda de bilhetes. Neste cenrio voc analisa a
situao e percebe que empresa (cinema) possui os seguintes objetivos com o futuro sistema:
a) facilitar a venda de ingressos,
b) gastar menos tempo com a venda de ingressos,
c) reduzir custos de mo-de-obra na venda de ingressos,
d) aumentar as vendas de ingresso.
Dessa forma, ao invs de propor que se crie apenas um sistema para gerenciar a venda de bilhetes,
voc possa sugerir a criao de uma soluo completa de tecnologia que permita a venda de bilhetes
pela internet, por smartphones e em mquinas automticas nas proximidades do sistema. Isso tudo
facilitaria a vida do cliente e certamente potencializaria as vendas de ingressos. Percebe como a
soluo pode ser muito melhor do que o problema original?
2015 - AIEC - Associao Internacional de Educao Continuada
27
08
Dessa forma, pensando na teoria do encapsulamento, os diagramas de caso de uso representao o que
o sistema faz e suas interfaces, e no como o sistema age internamente para realizar suas tarefas.
Geralmente os propsitos e interfaces dos sistemas se mantm com o tempo, o que muda a forma
como internamente as coisas acontecem. Assim, os componentes do sistema podem evoluir e serem
substitudos sem afetar a interao deles para com os usurios.
09
A prioridade na modelagem de sistemas definir o seu propsito e suas interfaces.
O propsito representa a
justificativa pela qual o sistema
deve existir.
O diagrama de casos de uso composto por seis tipos de elementos grficos que representam os atores,
os casos de uso e os diferentes tipos de relacionamento entre eles, alm da nomenclatura utilizada. O
objetivo dos diagramas de caso de uso prover uma viso externa entre o relacionamento do sistema e
do mundo exterior.
Exemplo prtico, um sistema hipottico de compra de ingressos de cinema (seja ela pela
internet, smartphone ou equipamentos localizados na sala de cinemas) deveria oferecer aos usurios as
seguintes possibilidades:
Mostrar quais sees esto disponveis para compra (e talvez quais j estejam esgotadas);
10
Suposies - Exemplo
O usurio deve estar logado no sistema para que ele possa executar o caso de uso em questo.
Pr-condies - Exemplo
O sistema deve apresentar a tela de cadastro para o usurio.
Dilogo exemplo
O usurio deve preencher os campos de nome e endereo, selecionar na lista a UF referente cidade
2015 - AIEC - Associao Internacional de Educao Continuada
29
Ps-condies exemplo
O sistema confere se o CPF do usurio vlido e, em caso positivo, armazena os dados no banco de
dados, apresentando uma janela de dilogo que confirma a operao.
Excees exemplos
Algumas excees podem ser:
a) caso o CPF do usurio no seja vlido, o sistema deve cancelar a operao, apresentando janela
de dilogo na tela informando que o CPF no vlido;
b) caso o sistema no consiga salvar os dados no banco de dados, o sistema deve informar em
janela de dilogo que no foi possvel salvar as informaes, solicitando do usurio uma das
opes a seguir:
1) se o usurio deseja tentar salvar novamente ou
2) se o usurio deseja cancelar a operao).
11
Vejamos a seguir um exemplo hipottico de um caso de uso de abertura de conta bancria.
Nome: Abertura de conta bancria.
Suposies
O cliente est de posse de toda a documentao necessria, o gerente do banco possui acesso s
funcionalidades de cadastro de novo cliente e abertura de conta bancria no sistema do banco.
Pr-condies
O gerente deve logar no sistema com sua conta pessoal e acessar a tela de funcionalidades do sistema.
Dilogo
1.
2.
3.
4.
5.
6.
crdito.
7. O gerente confirma a operao, imprime os documentos e solicita assinatura do cliente
em todos.
8. O gerente digitaliza os documentos enviando-os para o sistema e arquivando os
documentos fsicos na agncia.
9. Fim.
Ps-condies
O sistema informa que a conta foi aberta e apresenta instrues para gerao de senha pessoal de
acesso.
Excees
1. O sistema impede o cadastro de dados de CPF invlido.
2. O sistema impede a concluso da abertura enquanto os documentos digitalizados no
forem enviados para o sistema.
Melhorias futuras
1. O sistema poderia permitir associar mais de um endereo para o cliente.
2. A gerao da senha poderia ser feita no mesmo ato de criao da conta corrente.
Questes abertas
1. Qual ser o padro para digitalizao? PDF?
2. O sistema poderia permitir cadastro prvio de informaes at que o cliente traga os
documentos pessoais?
3. O sistema deve sugerir como padro a abertura de todas as opes de conta e crdito?
12
Uma das maiores foras do diagrama de casos de uso que ele define o que o sistema (ou o
componente) deve fazer. Para assegurar o sucesso do desenvolvimento, necessrio um plano de teste.
Examinando as narrativas de caso de uso podemos identificar os cenrios de caso de uso. Os cenrios
so as formas que o sistema pode operar. Normalmente, em cada caso de uso possvel definir os
seguintes cenrios:
O cenrio que representa a sequncia de atividades mais comum e curto do sistema (muitos
autores chamam esse cenrio de caminho feliz). Exemplo 1
Cenrios de exceo, onde o sistema dever bloquear a operao, desfazer aes j feitas e/ou
apresentar erros na tela. Exemplos
Os cenrios de caso de uso podem tanto ser representados por um diagrama, utilizando um diagrama
de atividades (veremos mais frente), tcnicas de fluxograma ou BPMN, ou utilizando narrao
descritiva.
Juntos, o diagrama de casos de uso, a descrio/narrativa do caso de uso, e os cenrios compem o
conjunto de artefatos de caso de uso necessrios para modelar um sistema.
Exemplo 1
O usurio seleciona o filme, o horrio, a quantidade de bilhetes, define as poltronas onde quer sentar e
efetiva a compra, realizando o pagamento.
Exemplo 2
O usurio pode pagar por meio de carto de crdito ou por meio de transferncia bancria.
Exemplos
A sesso escolhida est esgotada; o usurio no est satisfeito com as poltronas disponveis e quer
cancelar a operao (ou mudar de horrio da sesso); o pagamento no pode ser validado e a operao
deve ser cancelada.
13
atores,
casos de uso,
associaes,
generalizaes.
14
Ator
Representa um papel desempenhado por uma pessoa, um sistema, um equipamento, uma organizao
etc., que tem um interesse no sucesso da operao do sistema.
Exemplos: usurio, cliente, vendedor, operador do caixa, sistema bancrio, empresa de correios,
transportadora, departamento financeiro, setor de usinagem etc.
Um ator nunca ser uma pessoa nomeada, mas sim um papel. Uma mesma pessoa pode executar, na
prtica, diversos papeis diferentes. Exemplo hipottico: o Joo, que o gerente do banco XPTO,
tambm um cliente do banco, portanto, ora ele pode ser considerado no papel gerente, ora no
papel de cliente. O ator normalmente representado pelo desenho de um boneco, mas tambm pode
ser substitudo por uma imagem, logotipo ou outro desenho.
15
Caso de uso
Identifica um comportamento chave do sistema (e no uma simples atividade). Sem esse
comportamento, o sistema no resolveria a necessidade do ator. Lembre-se: um caso de uso deve ser
sempre focado em um objeto.
Bons exemplos: sacar dinheiro, efetivar compra do bilhete, reservar diria em hotel, cadastrar
pessoa.
Maus exemplos: logar no sistema, selecionar o item no menu do sistema, preencher a tela com
informaes cadastrais, salvar dados.
Muitas equipes de desenvolvimento preferem de usar verbos no infinitivo para os casos de uso, mas h
tambm a possibilidade de utilizar verbos no presente (exemplo: saca dinheiro, reserva hotel).
Mantenha sempre o padro da sua equipe, evite misturar padres. O caso de uso representado por
uma elipse com o nome do caso de uso escrito internamente.
16
Associao
Identifica uma interao entre os atores e os casos de uso. Cada associao inicia com um dilogo que
deve ser explicado em um documento de narrativa do caso de uso. Cada narrativa em questo prov um
conjunto de cenrios que podem ajudar no desenvolvimento dos planos de testes para futura validao
da anlise, desenho e implementao do sistema.
Exemplo: se um ator do tipo cliente executa uma operao de sacar dinheiro em um caixa eletrnico
de banco, ento, h uma associao entre o ator cliente e o caso de uso sacar dinheiro.
A associao diagramada por meio de uma linha comum (sem ser pontilhada).
17
Relacionamento do tipo <<include>>
Identifica um caso de uso reutilizvel (e compartilhado com outros casos de uso) que
obrigatoriamente incorporado na execuo de outro caso de uso.
Exemplo: para que o caso de uso sacar dinheiro funcione, obrigatoriamente ele deve executar o caso
de uso efetuar dbito da conta corrente. O relacionamento do tipo <<include>> representado por
meio de uma seta pontilhada (com o texto <<include>>) que aponta para o item que incorporado ao
caso de uso principal.
18
Relacionamento do tipo <<extend>>
Identifica um caso de uso reutilizvel que pode ser opcionalmente incorporado na execuo de outro
caso de uso. E, para ser incorporado, deve obedecer uma certa condio.
Exemplo: para que o caso de uso efetuar dbito da conta corrente funcione, pode ser necessrio
executar ou caso de uso usar o limite do cheque especial, que somente ser executado caso o valor do
saque seja maior que o valor disponvel na conta corrente do cliente.
O relacionamento do tipo <<include>> representado por meio de uma seta pontilhada (com o texto
<<extend>>) que aponta para o item que invoca o caso de uso opcional (direo oposta do include). No
exemplo abaixo vemos tambm a representao de uma nota explicativa (por meio de um cone que
representa uma nota).
19
2015 - AIEC - Associao Internacional de Educao Continuada
35
Generalizao/Herana
Identifica o relacionamento de herana entre atores ou entre casos de uso.
Exemplo: o ator pessoa pode ser a generalizao dos atores cliente e vendedor, pois ambos
compartilham (e herdam) propriedades similares ao ator pessoa. J o caso de uso abrir conta
corrente representa uma especializao do caso de uso abrir conta bancria, o mesmo vale para o
caso de uso abrir conta de poupana que herda os comportamentos comuns de abrir conta
bancria.
A generalizao representada por uma seta fechada lisa que sai do item mais especfico e aponta para
o item mais genrico.
Exemplo de simbologia de generalizao relacionando trs atores ( esquerda) e trs casos de uso (
direita)
20
5.1. Passo a passo para construo de diagramas de caso de uso
Para construir diagramas de caso de uso, voc precisa:
Definir o contexto do
sistema (ou da
anlise, caso seja de
parte do sistema)
Avaliar os atores e
casos de uso a fim de
identificar
oportunidades de
refinamento, por
meio da separao
ou da juno de
definies.
Avaliar os casos de
uso para encontrar
relacionamentos do
tipo <<extend>>".
Diagramar o caso de
uso.
Avaliar os atores e
casos de uso para
identificar
oportunidades de
generalizao (para
compartilhamento de
propriedades).
Contexto do sistema
Na definio do contexto do sistema, deve-se:
1. Identificar os atores e suas responsabilidades;
2. Identificar os casos de uso e os comportamentos do sistema em termos de objetivos
e/ou resultados que devem ser produzidos;
Documentar essas informaes um documento a parte ou junto narrativa de caso de uso.
21
6 - EXERCCIO PRTICO
A melhor forma de aprender a diagramar UML executar exerccios prticos. Para esses exerccios que
faremos agora, voc no precisa nem de um software de UML, basta lpis e papel.
6.1. Mquina automtica de venda de ingresso de cinema
Suponha que numa entrevista com um funcionrio do cinema, ele tenha de explicado como funcionar a
mquina de venda de ingressos: As pessoas vo maquininha e apertam na tela. L ele vai ver que
filme est passando, a ele escolhe o filme e o horrio. Depois ele escolhe quantos ingressos quer
comprar, depois ele escolhe onde vai sentar. Depois ele confirma, bota o carto de crdito na mquina e
compra o ingresso.
Veja que a forma com a qual a pessoa narrou o fato precisa de uma srie de ajustes de vocabulrio para
que a diagramao e documentao fiquem mais formal:
Ver que filme est passando escreveremos como pesquisar filmes disponveis;
Bota o carto de crdito e compra ser ajustado para realiza o pagamento com carto de
crdito.
Sempre ser necessrio ajustar o dilogo entre o usurio/cliente e o texto que ser documentado.
Feito isso, j conseguimos identificar os atores deste cenrio; no caso, o nico ator o cliente.
22
Pensando em objetivos, percebemos que h dois objetivos no cenrio:
1 - pesquisar e ver os filmes em cartaz e
2 - comprar bilhetes.
Para que esses dois objetivos sejam concretizados, outros menores devem existir para auxili-los,
como por exemplo: selecionar assentos e efetivar pagamento. Uma informao nova acrescentada ao
contexto: a multiplicidade. Um cliente pode pesquisar um ou mais filmes, pode comprar um ou vrios
bilhetes, selecionar um ou vrios assentos e, finalmente, realizar um nico pagamento.
Para indicar a multiplicidade so usados os mesmos smbolos da orientao a objetos (1, 1..*, 0..*, etc.,
se voc no se lembra desses smbolos, no se preocupe, eles sero revistos mais adiante). Com essas
informaes, j podemos desenhar nosso diagrama. Veja uma sugesto abaixo:
23
Com o diagrama em mos, podemos realizar nova entrevista com o demandante do sistema a fim de se
obter novas regras de negcio e assim poder descrever a narrativa de caso de uso. Uma sugesto
hipottica do resultado dessa reunio de levantamento de informaes poderia ser descrita nesta
narrativa de caso de uso:
Suposies
Pr-condies
Dilogo
Ps-condies
Excees
Melhorias futuras
Questes abertas.
Suposies
1. At 30 minutos aps o incio da sesso de cinema j iniciada, mas ainda com
pelo menos um assento livre, a sesso deve ser considerada disponvel para
compra de bilhetes.
2. Aps 30 minutos de incio, a sesso de cinema deve ser considerada encerrada.
3. Aps o esgotamento de assentos disponveis, a sesso deve ser considerada
esgotada.
4. No deve ser possvel a compra de bilhetes para sesses encerradas ou
esgotadas.
2015 - AIEC - Associao Internacional de Educao Continuada
39
Pr-condies
1. Deve haver ao menos um filme em cartaz;
2. Deve haver conectividade com sistema bancrio (para pagamento com carto de
crdito);
Deve haver conectividade com o sistema central de gerenciamento do cinema (para pesquisa de
informao sobre filmes disponveis, sesses e assentos disponveis).
Dilogo
1.
Ao chegar mquina de vendas, o usurio pode consultar algumas das informaes j
presentes da tela de inicial do sistema. Essa tela deve mostrar um resumo com todos
os filmes em cartaz, apresentando uma imagem do filme, o nome do filme, o horrio
da prxima sesso de cada um e a quantidade de assentos disponveis para compra da
sesso. Caso esta sesso j esteja esgotada, o sistema dever apresentar as
informaes para a sesso seguinte. Caso no exista sesso seguinte, o sistema deve
apresentar a informao que a venda de ingressos est esgotada para aquele filme.
2.
O usurio clica em qualquer parte da tela para iniciar o uso do sistema.
3.
Ao clicar na tela, o sistema deve apresentar uma listagem de todos os filmes em
cartaz. Ao lado do nome de cada filme, o sistema deve apresentar todos os horrios
de incio das sesses disponveis para o dia. Para ser considerada disponvel,
necessrio ter ao menos um assento livre.
4.
O usurio clica em uma sesso de cinema.
5.
A tela apresenta uma imagem grande do filme, informando o horrio de incio e
trmino da sesso e a quantidade de assentos disponveis. A tela tambm apresenta
opes para selecionar cada uma das outras sesses disponveis e outro comando
para cancelar a operao.
6.
Se o cliente selecionar outra sesso disponvel, a tela atualizada com as informaes
respectivas da sesso selecionada.
7.
Se o cliente clicar em cancelar, o sistema volta para a tela de incio.
8.
O cliente clica em selecionar poltronas.
9.
O sistema apresenta uma tela com imagem representando todas as poltronas do
cinema, marcando de vermelho escuro as poltronas indisponveis e de azul claro as
poltronas disponveis. O sistema dever incluir comandos para cancelar a operao
(voltando para a tela de incio), selecionar outra sesso (voltando para a tela
anterior) e finalizar compra. A opo de finalizar compra s deve aparecer se ao
menos uma poltrona (correspondente a um bilhete) estiver sido selecionada.
2015 - AIEC - Associao Internacional de Educao Continuada
40
10.
11.
12.
13.
14.
15.
16.
17.
O cliente clica nas poltronas que deseja comprar. Ao clicar em uma poltrona, esta
deve ser destacada em amarelo na tela do sistema. Para desmarcar uma poltrona
selecionada, basta que o cliente clique novamente na mesma poltrona, assim, ela ser
desmarcada, retornando cor azul. As poltronas que estiverem selecionadas, nesse
momento devero ficar em estado de reserva por 3 minutos. Dessa maneira, outros
clientes utilizando outras mquinas de compra ou mesmo a bilheteria ficam
impossibilitados de comprar a mesma poltrona. O sistema deve ser capaz ainda de
atualizar as poltronas disponveis em tempo real, a cada segundo, sincronizando
informaes de compra dos diversos pontos de venda, evitando assim a compra
duplicada da mesma poltrona.
Aps a seleo das poltronas desejadas, o cliente clica em finalizar a compra.
O sistema apresenta uma tela resumo com a quantidade de bilhetes, o valor total da
compra, o filme e sesso selecionados, e as poltronas selecionadas. A categoria do
bilhete a ser computada neste momento a de bilhete comum.
O sistema de permitir a troca individual da categoria dos bilhetes, possibilitando ao
cliente substituir pelas categorias estudante e terceira idade (que fornecem 50% de
desconto no valor da compra).
Ao mudar de categoria de bilhete, o sistema deve recalcular o valor total da compra.
O sistema deve solicitar ao cliente inserir o carto de crdito na mquina para efetivar
a compra.
O sistema deve solicitar a senha do carto de crdito e a confirmao do pagamento.
O sistema deve processar o pagamento e concluindo-o, imprimir os bilhetes do
cinema, a nota fiscal e o comprovante de pagamento do carto de crdito.
Ps-condies
Aps a confirmao do pagamento a venda concluda, emitindo os bilhetes e transformando os
assentos daquela sesso em assentos permanentemente indisponveis.
Excees
1. Caso o cliente clique em cancelar, a qualquer momento, o sistema deve voltar tela de
incio.
2. Caso ocorra problema no pagamento, o sistema deve permitir a substituio ou outro
carto ou a possibilidade de se cancelar a compra de bilhetes.
Caso o sistema fique mais de 3 minutos sem uma ao do cliente, a operao deve ser cancelada e o
sistema deve voltar tela inicial.
Melhorias futuras
1. Na tela de listagem de todos os filmes e sesses, ao lado de cada sesso poderia ser
informada a quantidade de assentos disponveis.
2. O sistema de pagamento poderia possibilitar tambm a operao de dbito em conta
(carto de dbito) ou at mesmo de transferncia bancria.
3. Criar uma aplicao para smartphones que tambm permita a venda de bilhetes.
Questes abertas
1. Ao cancelar a operao, a operao deve ser imediatamente cancelada ou o sistema
deve apresentar uma janela de dilogo solicitando confirmao ao cliente se ele deseja
realmente cancelar a operao?
2. Ao abandonar a operao, as poltronas pr-selecionadas devem realmente ficar at 3
minutos em estado de reserva?
24
Quanta informao no mesmo?! Parece complicado a princpio, mas com a prtica do dia a dia, esse
trabalho no ser to difcil quanto parece, apenas um pouco grande ou um pouco demorado, mas
no ser complexo nem difcil demais para voc.
Note ainda que para esse exemplo todos os fluxos opcionais j esto descritos no texto. No seria
realmente necessrio criar um diagrama de cenrio de caso de uso. Entretanto, se mesmo assim voc
desejar inserir um no seu projeto, abaixo voc v uma sugesto.
25
7 - Casos de uso do tipo manter alguma coisa
A maioria dos sistemas de informao possui cadastros bsicos, como os cadastros de cliente, de
funcionrios, de produtos, de cidade, de UF, de fornecedores, de usurios etc. Todos os cadastros
bsicos possuem quatro funcionalidades em comum em relao aos seus cadastros em bancos de
dados.
Essas funcionalidades so chamadas pelos engenheiros de software de CRUD:
C create (criar)
R report
(reportar)
U update
(atualizar)
D Delete
(excluir)
cadastradas.
Refere-se capacidade de poder atualizar uma informao previamente cadastrada
com um dado mais atualizado.
Funcionalidade de apagar informaes do banco de dados.
Para realizar todas essas quatro operaes (e uma quinta que a de pesquisar/localizar), os engenheiros
de software, por prtica de mercado, definiram que todo sistema de informao precisa possuir ao
menos um caso de uso para cada cadastro (tabela) no banco de dados denominado de caso de uso
manter. Dessa forma, os primeiros casos de uso que voc pode comear a identificar no seu sistema
so os casos de uso do tipo manter.
Exemplos comuns desse tipo de caso de uso: manter cliente, manter funcionrio, manter vendedor,
manter produto, manter fornecedor, manter contas a pagar, manter contas a receber, manter cidades,
manter UF etc.
26
Resumo
Neste mdulo, aprendemos que:
a. Os projetos de software devem comear por meio da definio dos objetivos do software. Esta
anlise tambm nos ajudar a identificar os atores do sistema, que so pessoas e mecanismos
que interagem com o sistema.
b. H diversas fontes de informao para a elaborao de casos de uso. Documentos da empresa,
regras de mercado, leis e entrevistas com os usurios so as opes mais comuns.
c. O desdobramento dos casos de uso trar as funcionalidades (e futuramente as classes) do
sistema, e como elas interagem entre si e com outros sistemas.
d. Os casos de uso devem representar uma forma mais moderna e racional do trabalho atual, e
no apenas a fiel repetio das atividades atuais.
e. Ao modelar sistemas, voc pode trazer qualquer sugesto que oferea algum tipo de melhoria
ou benefcio ao sistema e aos seus usurios.
f.
A descrio de um caso de uso uma narrativa complementar que fornece uma srie de
requisitos e informaes sobre o funcionamento do caso de uso.
g. O diagrama de cenrios de caso de uso representa o fluxo principal do caso de uso e outros
fluxos opcionais e de exceo.
2015 - AIEC - Associao Internacional de Educao Continuada
43
h. Relacionamentos do tipo include so obrigatrios e apontam para o caso de uso que chama
o outro caso de uso.
i.
j.
A generalizao expressa por uma seta contnua que parte do item mais especfico a aponta
para o item mais genrico.
O diagrama de atividades frequentemente visto como parte da viso funcional de um sistema, pois
descreve os processos lgicos ou funes. Cada processo descreve uma sequncia de tarefas e as
decises que regem quando e como eles so realizados.
02
Alguns autores juntam os aspectos funcionais e dinmicos da modelagem. Isso se deve ao fato de que
ambos expressam o comportamento do sistema. No entanto, para fins de aprendizado, importante
voc saber distinguir a lgica da interao:
Interaes
Modelos funcionais
ou lgicos
Abordam os
resultados conjuntos
dos processos, ou
seja, entradas e
sadas.
Abordam os
mecanismos de
transformao de
entrada em sadas.
Alm disso, a modelagem funcional adquiriu uma m reputao com o incio da modelagem orientada a
objetos (OO). Afinal, a orientao a objetos aborda as deficincias do modelo anterior, como a
modelagem funcional e de dados. Mas tanto a modelagem funcional quanto a modelagem de dados
ainda fornecem informaes valiosas sobre o desenvolvimento de software. Mtodos de
desenvolvimento OO no eliminam a necessidade dessas perspectivas valiosas; eles simplesmente
trazem os dois conceitos juntos para fornecer um modelo mais abrangente e preciso de como as coisas
funcionam. Modelagem funcional ainda uma parte muito bsica de qualquer design do aplicativo.
Assim, a UML preservou modelagem funcional sob a forma de diagramas de atividade, que concebida
para apoiar a descrio de comportamentos que dependem dos resultados dos processos internos, ao
contrrio de eventos externos, como nos diagramas de interao. O fluxo em um diagrama de atividades
impulsionado pela realizao de uma ao. Em uma mquina de estado, o fluxo conduzido por
eventos ou condies externas associadas. Consequentemente, diagramas de atividades so teis para
operaes que definem casos de uso e fluxos de trabalho que unem uma srie de casos de uso.
03
A criao de um fluxograma uma tcnica simples e prtica, com muitas aplicaes. A UML oferece uma
verso melhorada dos fluxogramas, sob a forma do diagrama de atividades, tambm chamado
de grfico de atividades.
H pelo menos trs lugares em um modelo onde um diagrama de atividades fornece informaes
valiosas:
especificando operaes.
04
2.1 - Modelando fluxos de trabalho e casos de uso
J aprendemos que um caso de uso modela um objetivo que o sistema deve atingir, a fim de ser bem
sucedido. O diagrama de atividades mapeia o comportamento do usurio atravs de um procedimento,
observando as decises tomadas e as tarefas executadas. O procedimento pode explicar um nico caso
de uso, ou apenas parte de um caso de uso, ou mesmo muitos casos de uso unidos para criar um fluxo
de trabalho. Modelar um caso de uso parte do processo de descoberta e validao para a modelagem
de um sistema. Cada diagrama d uma nova perspectiva sobre os recursos do sistema.
Um diagrama de atividades relacionado a um caso de uso explica como o ator interage com o sistema
para cumprir a meta do caso de uso, incluindo as regras, informaes trocadas, as decises tomadas e
produtos de trabalho criados.
Um diagrama de fluxo de trabalho (workflow) detalhado ao nvel de atividades representa a ordem e as
condies em que os casos de uso so executados em uma srie (sequncia).
Modelar o trabalho do usurio desta maneira no define essa verso particular do processo como a
nica forma correta do sistema trabalhar. Cada objetivo (caso de uso) pode ser satisfeito por qualquer
nmero de processos vlidos. Mas a criao de um modelo deste tipo provavelmente ir revelar os
elementos essenciais do processo de uma forma que seja familiar para os utilizadores.
Elementos essenciais incluem:
05
O diagrama de atividades pode facilitar a entrevista para esclarecer as tarefas e as decises a fim de
encontrar as razes por trs delas. Ou seja, esta a sua oportunidade de identificar como alcanar o
objetivo do processo, e definir cada tarefa necessria para tornar o processo bem sucedido (passo a
passo).
Uma vez que as regras essenciais para o processo foram identificadas, ento mais fcil de avaliar
processos alternativos para satisfazer essas regras. Num sistema hipottico de compra de bilhetes de
cinema, por exemplo, os clientes querem descobrir quais so os filmes, as sesses e os lugares
disponveis.
O objetivo bsico simples: mostrar a eles o que est disponvel e capacit-los para selecionar o que
eles gostariam de comprar. As regras essenciais incluem:
A identificao das
informaes
necessrias
Exibir a informaes de
forma que os clientes
possam facilmente
compreender
Cliente efetua
pagamento
06
No exemplo do sistema de bilhetagem de ingressos, tanto o objetivo quanto as regras associadas podem
ser apoiados por muitos processos. Por exemplo, eles podem ser satisfeitos:
2015 - AIEC - Associao Internacional de Educao Continuada
47
por um ponto de venda (bilheteria) falando com um cliente ou por meio de uma mquina
automtica;
por meio da impresso dos bilhetes em papel ou apenas a imagem deles em um smartphone,
com o acesso ao sistema em uma pgina Web ou em aplicaes para smartphones Apple e
Android, por exemplo.
07
2.2 - Definindo mtodos
O diagrama Atividade tambm pode ser usado para modelar a implementao de mtodos complexos.
Ao definir a implementao de uma operao, voc precisa modelar a sequncia de manipulao de
dados e transformaes, lgica de programao e decises. A modelagem dessas funes complexas
pode evitar problemas futuros, quando voc escrever o cdigo, revelando todos os requisitos
explicitamente no diagrama. A modelagem apresenta e permite o teste mental de todas as
possibilidades possveis, tornando-as mais fceis de rever e corrigir.
08
Uma atividade uma etapa de um processo em que algum trabalho que est sendo feito. Poderia ser
um clculo matemtico, encontrar alguns dados, manipulao de informaes, ou a verificao dos
dados.
A atividade representada por um retngulo com os cantos arredondados e dentro dele um texto para
descrever a ao. Por boa prtica, as atividades sempre so escritas no idioma portugus utilizando
verbos no infinitivo e um substantivo que d a noo exata da ao que est sendo feita. Exemplos:
calcular salrio, pesquisar cliente, gravar dados do cliente, atualizar conta corrente, importar dados de
venda, imprimir relatrio fiscal etc.
Um diagrama de atividades contm sempre mais de uma atividade, ligadas por transies,
representadas por setas que ligam cada atividade. Normalmente a transio ocorre porque a atividade
concluda. Por exemplo, voc est atualmente na atividade de "ler a pgina." Quando voc terminar a
atividade, voc alterna para a atividade "virar a pgina". Quando voc terminar de virar a pgina, voc
volta para a atividade ler a pgina. Veja como representar graficamente essas duas atividades:
09
3.1.1. Condio de guarda
Em um determinado cenrio, uma transio de uma atividade para outra s pode ocorrer quando uma
certa condio tornar-se verdadeira. Isso especialmente til quanto queremos representar um
processamento contnuo at que todas as entradas tenham sido processadas.
Exemplos prticos para isso seriam:
Incluir produto na nota fiscal, enquanto houver itens no pedido de compra a serem
processados;
A representao de uma condio de guarda feita por meio de um texto entre os sinais de [ e ].
Exemplo: [Enquanto houver arquivos a serem copiados].
Para o exemplo do diagrama anterior, a pgina s pode ser virada quando todo o contedo da pgina
atual tiver sido lido. Dessa forma, a representao do diagrama anterior poderia ser evoluda para:
10
3.2. Incio e fim de um diagrama de atividade
Para diagramar o incio (que sempre nico) e o(s) encerramento(s) (que podem ser um ou vrios) de
um diagrama de atividades, utilizamos o smbolo de uma bola preta para simbolizar o incio e uma bola
preta com um aro externo para simbolizar o encerramento. O diagrama anterior poderia incluir a
indicao de incio e encerramento sendo assustado para:
11
3.3. Deciso
Uma deciso refere-se possibilidade de o fluxo seguir um ou outro caminho dependendo de uma
determinada condio.
Tanto na tcnica de fluxograma quando na UML, a deciso representada por um losango. A diferena
que no fluxograma geralmente h uma pergunta dentro do losango (exemplo: Qual foi a cor
escolhida). J na UML, no h a pergunta dentro do losango, mas, em cada linha de sada da deciso, h
a representao da deciso escolhida entre os sinais de [ e ] (exemplos: [amarelo], [azul], [branco ou
verde] perceba que uma condio pode comportar mais de uma hiptese). Um exemplo de um
diagrama com uma deciso est expresso a seguir:
[estoque >0]
[sexo = masculino]
12
3.4. Juno
Junes representam a unio de dois caminhos distintos.
A representao da juno tambm feita por um losango que recebe todos os caminhos unidos. A
condio para que o processo continue a sensibilizao de todos os caminhos juntados. No exemplo
abaixo, perceba que a atividade concluir a venda s acontecer quando as atividades escolher itens
e confirmar estoque disponvel forem concludas. Enquanto qualquer uma delas no tenha sido
concluda, a atividade concluir a venda no ser executada.
A juno representa a necessidade de unio de dois ou mais fluxos a fim de sensibilizar a entrada de
outra atividade. possvel que uma atividade tenha mais de um fluxo de sada, portanto, a juno une
fluxos e no atividades.
13
3.5. Atividades e aes
Dependendo da complexidade de uma atividade, ela pode ser detalhada em outro diagrama que
represente atividades menores, mais facilmente compreensveis. Entretanto, devemos ter cuidado ao
detalhar demais, pois podemos ter um desenho altamente complexo e desnecessrio. Voc deve
sempre utilizar o bom senso em saber at onde deve detalhar a atividade.
Todo item de alto nvel chamado de atividade pela UML, j o ltimo nvel de detalhamento, aquele
que no pode ser mais detalhado em subpartes menores, chamado de ao pela UML. Desta forma,
dizemos que um processo um conjunto de atividades, e uma atividade pode ser decomposta em
aes.
Um exemplo prtico o ajudar a entender melhor a ideia. No diagrama anterior, a atividade confirmar
estoque disponvel pode ser detalhada da seguinte maneira:
14
3.6. Raias e Piscinas
a) Raias
Raias representam a separao de papis.
Esse termo vem das raias das piscinas de natao, pois uma pessoa numa raia no invade outra raia.
Aqui a ideia a mesma: aquilo que acontece em uma raia restringe-se quele escopo /sistema
/dimenso /papel do usurio.
Dessa forma, as raias separam as atividades respectivas de cada papel de usurio em uma operao.
Veja por exemplo um sistema de venda de um produto.
Poderamos pensar, de forma bem simples, em dois papis de pessoas que participam desse processo:
o cliente e o vendedor. As atividades de cada papel ficariam em uma raia isolada. Resumidamente,
teramos um diagrama assim:
15
b) Piscinas
Para representar ambientes distintos (como sistemas distintos, ou operaes no sistema e operaes
manuais), normalmente criamos piscinas separadas, ou seja, raias que no se tocam.
Enquanto raias separam papis, piscinas separam ambientes. Graficamente, a diferena que raias so
desenhadas tocando-se lateralmente (retngulos lado-a-lado), enquanto piscinas so isoladas por um
pequeno espao em branco (retngulos que no se tocam).
Um diagrama de atividades pode conter quantas piscinas e raias forem necessrias. Inclusive um mesmo
diagrama pode conter representaes de raias e piscinas ao mesmo tempo.
Por exemplo, dentro de um sistema qualquer poderamos usar raias para representar:
a. o que acontece dentro do universo do banco de dados;
b. outra raia para representar o que acontece no servidor da aplicao; e
c. uma ltima para o que acontece no computador do usurio (cdigo em Java Script, por
exemplo).
2015 - AIEC - Associao Internacional de Educao Continuada
53
16
Exemplo do uso de piscinas
Suponha que voc tenha uma atividade no seu sistema que se chama efetuar pagamento do boleto
bancrio no site homebanking do banco e que voc queira detalhar todas as aes pertinentes a esta
atividade. Em primeiro lugar, vamos determinar quantas piscinas existiro:
a. uma para a aplicao da empresa,
b. outra para o sistema bancrio e
c. outra para as atividades manuais do operador do sistema.
Como essas informaes tratam de ambientes distintos (dois sistemas distintos e um conjunto de
operaes manuais), o correto utilizar piscinas (e no raias).
Feito isso, precisamos detalhar todas as operaes necessrias (as aes):
Clicar na funcionalidade;
Preencher os dados de pagamento: data de vencimento, cdigo de barras, valor, desconto (se
houver);
Confirmar a operao;
Veja como seria a representao do cenrio acima com trs piscinas (uma, para o sistema da empresa,
outra, para o homebanking e outro, para as operaes manuais).
17
3.7. Concorrncia
Concorrncia (ou paralelismo) refere-se possibilidade de realizar vrias aes ao mesmo tempo.
Essa questo especialmente til quando um determinado processo precisa realizar vrias aes
logicamente independentes entre si, em outras palavras, elas podem ser executadas to logo exista
disponibilidade para o sistema execut-las, elas no precisam ocorrer em sequncia.
Suponha, por exemplo, que um sistema que voc crie ir efetuar pesquisas por passagens areas em
diversas companhias areas. Voc no precisa pesquisar a companhia A primeiro para depois pesquisar
a companhia B, depois a C, depois a D e assim sucessivamente. Voc pode disparar quatro consultas ao
mesmo tempo aos sistemas das quatro companhias, e, medida que os resultados vo sendo
processados e comunicados ao seu sistema, voc poder apresent-los ao seu usurio.
A representao de uma concorrncia a de um garfo. Para posterior juno, utiliza-se a funo de
sincronizao. Veja para o cenrio descrito no exemplo acima, poderamos ter uma representao
simplificada assim:
18
4 - EXERCCIO PRTICO
A melhor forma de aprender a diagramar UML executar exerccios prticos. Para esses exerccios que
faremos agora, voc no precisa nem de um software de UML, basta lpis e papel.
4.1. Mquina automtica de venda de ingresso de cinema
No mdulo passado j apresentamos um diagrama de venda de ingressos de cinema. Voc se lembra
daquele diagrama que utilizamos para exemplificar os cenrios do caso de uso? Para relembr-lo,
representamos novamente o diagrama simplificado abaixo:
19
Entretanto, pensando em uma representao completa do diagrama, pode ser necessrio que
especifiquemos todos os smbolos UML. Dessa forma, veja como ficaria uma reviso das primeiras trs
atividades apenas:
2015 - AIEC - Associao Internacional de Educao Continuada
56
20
RESUMO
Neste mdulo, aprendemos que:
a. O diagrama de atividades da UML 1.4 muito semelhante a um fluxograma clssico. Ele pode
ser aplicado a qualquer processo, grande ou pequeno. Trs aplicaes comuns de diagramas de
atividades so para explicar o fluxo de trabalho (uma srie de casos de uso), para explicar um
nico caso de uso, e para explicar um mtodo (a sequncia de aes realizadas pelo mtodo).
b. O diagrama de atividades representa uma tarefa como um retngulo com os cantos
arredondados, contendo uma descrio de texto de forma livre da tarefa. A transio de uma
atividade para a prxima mostrada como uma seta. A notao prev pontos de incio e fim,
usando um pequeno crculo pintado e um crculo pintado com um anel externo,
respectivamente.
c. As decises so representadas como um pequeno losango. Cada transio de sada deve ser
marcada com uma condio de guarda (com texto entre colchetes), e as condies devem ser
mutuamente exclusivas. O losango tambm pode ser usado para representar um ponto de
fuso, unindo dois ou mais percursos alternativos na sequncia.
d. As condies de guarda tambm podem ser usadas em transies deixando uma atividade, em
que o resultado da atividade fornece todas as informaes necessrias para cumprir uma das
condies.
e. A concorrncia refere-se s mltiplas atividades ocorrendo simultaneamente. Uma barra do tipo
garfo representa uma transio de entrada para iniciar vrias transies. A barra de
sincronizao mostra vrias transies chegando ao fim e uma nova transio combinando-as.
f.
Muitas vezes, uma explicao textual pode ser um pouco ambgua para a definio de um
processo complexo. O diagrama de atividades normalmente utilizado como uma ferramenta
para facilitar a comunicao das explicaes textuais.
g. Para traduzir a descrio do usurio em um diagrama de atividades, isole cada tarefa como uma
atividade. Indique a sequncia das tarefas desenhando uma seta de transio de uma atividade
para a prxima atividade na sequncia.
h. Para modelar as decises no processo, voc tem duas opes. Uma deciso que resulta da
concluso de uma atividade desenhada com condies de guarda (cada transio para fora da
atividade marcada com uma nica e mutuamente exclusiva expresso condicional entre
colchetes). Para representar uma deciso que no o resultado de uma atividade especfica,
utilize o cone de losango. Cada transio para fora do ponto de deciso do losango tambm
marcada com uma expresso condicional nica entre colchetes (exemplo: [sim] e [no]).
2015 - AIEC - Associao Internacional de Educao Continuada
58
i.
Quando o fluxo lgico do processo precisa retornar a um ponto anterior no fluxo, use o cone de
losango para representar um ponto de fuso. Pode haver duas ou mais setas que entram no
ponto de fuso, mas apenas uma pode sair.
02
O diagrama de classes sem dvida o diagrama mais utilizado na UML. A ideia aqui no qualificar o
diagrama de classes como o diagrama mais importante da UML, todos os diagramas so importantes,
mas o diagrama de classes aquele que, em modelagens mais simples, o escolhido como o mais
desejvel pelas equipes. Portanto, d uma ateno especial para este diagrama (ele contempla boa
parte do nosso estudo), pois certamente ser o que voc mais ir modelar e analisar no seu dia a dia.
As classes formam a base do diagrama de classes. Para modelar esse tipo de diagrama, voc precisa
estar bem seguro sobre a diferena entre classes e objetos. Uma classe uma definio de um recurso.
A classe descreve as caractersticas de uma entidade e como ela pode ser usada. Em contraste,
um objeto uma entidade identificvel de forma especfica, que est de acordo com as regras definidas
pela classe.
Em termos de software, o cdigo escrito como um conjunto de classes e referncias a
comportamentos definidos pelas classes. A informao criada e manipulada pelos usurios pertence a
objetos que estejam em conformidade com as descries de classe. Os objetos so representados por
linhas em um banco de dados, registros em arquivos, ou reas de memria em um computador.
Um exemplo prtico de um software que faa o gerenciamento de vendas de uma padaria:
Nas classes voc informar quais atributos um produto pode ter, como nome, valor, descrio,
marca, modelo, quantidade em estoque. Sobre a classe venda, voc dir que ela possui
produtos associados, que possui data, valor total, cliente etc.
Nos objetos estar o contedo de uma venda real. Um objeto de venda pode incluir os
produtos po, leite e queijo, no valor total de R$ 12,00. O objeto leite conter a informao de
quantos litros de leite o cliente est comprando e o valor unitrio de cada litro.
03
1.1. Classe
Uma classe representa as caractersticas, estruturas e comportamentos de uma espcie comum.
Quando pensamos em um ser humano como uma pessoa, identificamos que pessoa uma classe
que possui vrios atributos como nome, idade, sexo, altura, peso, nacionalidade, estado civil, e outros. A
classe pessoa tambm possui comportamentos comuns, toda pessoa pode andar, dormir, comer,
sentar-se. Essas caractersticas e comportamentos comuns o que tipifica uma pessoa. Em se tratando
de sistemas de informao, essencial que sejam identificados todos os tipos de item que o sistema
ir tratar. Pense por exemplo em uma livraria, tipos de itens comuns para um sistema de gerenciamento
de uma livraria seriam: livros, autores, editoras, clientes, fornecedores, vendas, compras, e outros.
1.2. Objeto
Um objeto uma classe materializada, uma classe que existe e que tem identidade prpria.
2015 - AIEC - Associao Internacional de Educao Continuada
60
Quando pensamos em pessoa, no pensamos em algum especfico, mas quando falamos em Pedro
lvares Cabral, a sim sabemos exatamente quem ele . No conceito de um sistema para
gerenciamento de uma livraria, seriam exemplos de objetos: o livro de culinria cozinhe feliz, o autor
Joo Cruz Neto, a editora Brasil e-books, o cliente Joo Feliciano, o fornecedor grfica
bandeirante, e outros.
Objetos so criados a partir de classes predefinidas. Quando pensamos em um sistema de informao,
precisamos identificar qual a realidade daquela empresa que utilizar o sistema, e assim conseguir
identificar as classes que o sistema dever possuir. Tudo aquilo que existir como objeto no mundo real
da empresa, poder existir como um objeto no software que voc ir construir.
04
Uma das formas mais comuns de voc identificar os objetos e classes de um futuro sistema de
informao escrever todos os procedimentos que o sistema deve fazer. Feito isso, identifique todos os
substantivos descritos e avalie se:
a. Ele representa uma coisa em particular (um objeto) ou um conjunto de coisas semelhantes (uma
classe);
b. Ele parte do problema a ser resolvido ( escopo do projeto);
c. Ele no parte de um detalhe de implementao (uma caracterstica de um objeto);
d. Ele no um evento ou uma ocorrncia;
e. Ele no uma propriedade (uma caracterstica) de uma coisa.
Aps essa anlise, bem provvel que voc consiga identificar as classes e objetos do sistema. Veja, no
pequeno exemplo da realidade de uma livraria, como poderamos hipoteticamente identificar alguns
objetos e classes:
O cliente vem loja e procurar por um ou mais livros de seu interesse. Ele pesquisa o preo dos livros
por meio da etiqueta afixada em cada livro. Se houver interesse, ele pode comprar um ou mais livros,
pagando em dinheiro, carto ou cheque.
Neste pequeno exemplo conseguimos identificar os seguintes objetos e classes:
Cliente
Classe que define (generaliza) as caractersticas das pessoas que vo livraria comprar livros.
Livros
2015 - AIEC - Associao Internacional de Educao Continuada
61
Classe que define (generaliza) as caractersticas dos produtos que a livraria vende.
Etiqueta
Classe que possui algumas das informaes dos livros (como cdigo de barras e preo). Possui uma
associao com a classe livro.
Dinheiro, carto e cheque
Podem ser entendidos como classes isoladas ou generalizados como uma classe de nome forma de
pagamento.
05
Outras informaes que tambm conseguimos identificar:
Venda classe subentendida que existe na operao de comprar, possui associao com as
classes cliente e livros.
Pesquisar livros, comprar livros, efetuar pagamento, pagar com dinheiro, pagar com carto,
pagar com cheque casos de uso do cenrio.
Exemplo
Parece ser...
Um conjunto de coisas
Livro, Cliente
Uma Classe
Um nome prprio
Um objeto
Um atributo
Um valor ou um dado
O valor de um atributo
Em falta, Em estoque
Um estado
Uma operao
Parte da implementao
Um papel
Cliente
Comprar
Uma atividade
Um caso de uso
06
Veja que ao analisar um cenrio, identificamos ao mesmo tempo informaes de classes, casos de
uso e atividades. Nossos modelos sero criados e evoludos na medida em que as informaes vo
ficando cada vez mais detalhadas e precisas.
Crie uma lista dos nomes que fazem sentido para o contexto. Seja generoso, se algo parece ser
duvidoso, adicione lista da mesma forma (depois voc eliminar redundncias e itens que no sero
escopo, em outros casos, essas informaes podero vir a tornarem-se atributos, eventos e outros).
Aps identificar os objetos, procure inferir quais classes criam e definem esses objetos.
A chave para identificar essas informaes analisar
completamente a descrio do negcio a ser resolvido pelo
sistema (ou que j existe na organizao). Se o processo de
trabalho ainda no existe, crie um (ou pea para algum especialista
no assunto criar um).
Na maioria das vezes, a
descrio do comportamento do sistema a melhor forma de organizar o conjunto de entidades
(chamada de atores), validando seus objetivos individuais (chamados casos de uso) que sero invocados
pelo sistema.
2015 - AIEC - Associao Internacional de Educao Continuada
63
07
Seguindo essas regras, podemos imaginar alguns exemplos hipotticos de classes para um sistema de
biblioteca: PedidoCompra, Venda, Livro, Cliente, Vendedor.
Levando em considerao que o objetivo de um bom nome prover uma informao rpida e precisa,
evite qualquer coisa que possa confundir ou deixar a interpretao lenta. Uma boa poltica evitar
qualquer tipo de abreviao e palavras com duplo sentido (homnimos).
08
2.1 Encapsulamento (ou encapsulao)
O encapsulamento uma forma de organizar os vrios tipos de informao e comportamento descrito
anteriormente para que os objetos possam ser utilizados da forma mais eficiente e eficaz possvel. A
encapsulao afirma que ao projetar um objeto que deve separar o que sabemos sobre o objeto de
acordo com dois conceitos:
Estes dois conceitos nos orientam a olhar para o objeto a partir de duas perspectivas: uma viso
externa: "O que eu posso fazer com este objeto?" e uma viso interna: "Como que esta coisa
funciona?"
Encapsular est ligado ideia de proteger e esconder dentro da classe aquilo que quem a chama no
precisa saber (por exemplo, como ela funciona) e divulgar, mostrar, deixar expostas as informaes
2015 - AIEC - Associao Internacional de Educao Continuada
64
09
Encapsular possui os seguintes objetivos:
Veja por exemplo essa situao hipottica: suponha que voc esteja construindo um carro e voc
compra um motor pronto de um fabricante. Voc no precisa saber como funciona os cilindros, como o
cabeote est fixado, como os pistes rodaro o virabrequim, pois todos esses itens esto
encapsulados dentro do motor. O que voc precisa saber para usar o motor : por onde colocar o
combustvel, como controlar a potncia do motor, por onde ser fixado ao carro, por onde ser
conectado ao sistema de cmbio e embreagem. Esses sos os mtodos e propriedades do motor que
ficam expostos a voc.
Na prtica, voc poderia ter hipoteticamente o seguinte cenrio: suponha que voc esteja criando uma
aplicao que toque msicas MP3. Voc pode criar uma classe que exponha um local para ser informado
o local do arquivo MP3 e funes para tocar, parar, adiantar, voltar e pausar. Quem chama essa classe
no precisa saber qual o cdigo fonte que voc utilizou para fazer a msica tocar, essa parte est
protegida (encapsulada); quem chama essa classe, s precisa saber como enviar o arquivo MP3
(atributo) e como realizar as operaes citadas (mtodos), essa a parte pblica da classe.
10
2.2 Diagramando uma classe
Falamos anteriormente que a UML uma tcnica de diagramao. Neste sentido, cada componente
deve ser representado como um desenho geomtrico. Em se tratando de classes e objetos, o desenho
geomtrico que representa esses componentes o retngulo, onde, dentro dele, colocamos o nome da
classe ou do objeto. O layout padro :
Para diferenciar objetos de classes, a regra estabelece que objetos devam ser escritos com o nome do
objeto, seguindo por dois pontos, e depois o nome da classe. Nesta ideia, para representar o objeto
cliente da classe Pessoa, teramos algo como:
Se o texto do retngulo fosse apenas cliente, no saberamos dizer, a princpio, a qual classe ele
pertence.
11
2.3 Utilizando setas para indicar a classe do objeto
A UML permite mais de uma maneira de representar a mesma informao. Isso significa que voc deve
utilizar aquela mais adequada para sua necessidade. A redundncia muitas vezes aprimora a qualidade
da comunicao, entretanto, traz consigo um diagrama mais complexo.
A UML possui uma outra forma de representar a relao de classe-objeto, ela pode ser vista pela
representao de dois retngulos interligados por uma seta pontilhada que liga o objeto classe. Para o
exemplo anterior, a relao cliente-Pessoa poderia ser representada assim:
Tenha em mente que ao utilizar essa notao, o seu diagrama conter o dobro de retngulos (e as setas)
do que a forma anterior.
12
Uma associao a definio de um tipo de link (ligao) da mesma forma que uma classe a definio
de um tipo de objeto. Assim como um objeto uma instncia de uma classe, um link um exemplo de
uma associao.
Associaes (e links) podem assumir trs formas diferentes: associao, agregao e composio. A
forma mais simples, a associao, uma relao ponto a ponto. Um objeto simplesmente sabe sobre
outro objeto da mesma forma que uma pessoa pode saber sobre outra pessoa. Esse conhecimento
normalmente armazenado no objeto como uma referncia, como uma pessoa que mantm um nmero
de telefone ou endereo de outra pessoa que ele quer entrar em contato.
13
Uma associao geralmente modelada como uma linha de chamada entre duas classes, conforme
mostrado abaixo.
Essas associaes representam que, no contexto apresentado, h uma relao entre elas para que a
funcionalidade do sistema seja vlida.
14
A associao usada para juntar dois objetos distintos em um contexto: quando voc junta pessoa
venda apenas naquele contexto que existe essa associao.
A associao corresponde a relaes temporrias e rpidas para um
objetivo em comum de objetos distintos.
Uma associao pode ser nomeada para deixar o relacionamento ainda mais claro. importante levar
em considerao que devemos sempre usar a voz ativa (evitando a voz passiva). Dessa forma, como
exemplo, as classes Venda e Produtos podem ser relacionadas pelo texto inclui (uma venda inclui
produtos). O nome so includos (produtos so includos em uma venda) no uma boa escolha.
15
3.1 Tipos de Associao
As associaes podem ser refinadas em um modelo mais restritivo de relacionamento, chamado
agregao. Uma agregao pode ainda ser refinada em um relacionamento ainda mais restritivo,
denominado composio.
Associao
Agregao
Os objetos sabem da
existncia do
relacionamento que h
entre si, dessa forma eles
podem trabalhar juntos.
A integridade da
configurao protegida.
Funcionam como um nico
objeto.
Um objeto controla todos
os outros.
Toda agregao um tipo
de associao.
Toda agregao possui as
caractersticas de uma
associao e outras novas
especficas da agregao.
Composio
16
3.2 Definindo agregaes
A agregao um tipo especial de associao usada para indicar que os objetos participantes no so
apenas objetos independentes que sabem sobre o outro. Em vez disso, eles so montados ou
2015 - AIEC - Associao Internacional de Educao Continuada
68
Por exemplo, um automvel composto por vrias partes: motor, carroceria, rodas etc. A associao
que essas peas tm com o automvel do tipo agregao: um automvel agrega vrias partes juntas,
como uma carroceria, um motor, quatro rodas etc..
Para modelar a agregao em um diagrama de classes:
Desenhe uma associao (linha) entre a classe que representa o membro ou parte do conjunto e
da classe que representa a agregao, ou seja, o conjunto (o todo).
Voltando ao nosso exemplo anterior, da venda de ingressos de cinema, podemos perceber que h uma
relao intensa entre a sesso de cinema e o filme. No faz sentido o objeto sesso sem ele estar
associado a um filme, da mesma forma, um filme precisa possuir sesses (disponveis) para permitir uma
venda de ingressos. A sesso inclui um filme como parte do seu conjunto. Da mesma forma, tambm h
uma relao entre as poltronas e a sesso de cinema. No faz sentido o objeto poltrona sem que esteja
associado a uma sesso, assim, uma sesso precisa possuir poltronas (disponveis) para permitir uma
venda. Observe que a sesso o centro da questo, ela possui caractersticas prprias (como os
horrios) e incorpora outras informaes (outros objetos), no caso, poltronas e filme. Sob essa tica,
poderamos refinar a associao existente entre sesso, poltronas e filme, criando agregaes e
evoluindo o diagrama para a representao abaixo:
17
Observe novamente o diagrama:
Se voc quer saber quais poltronas esto disponveis, pergunte classe sesso e ela responder.
Se voc quer ver uma imagem ou informaes sobre o filme, pergunte classe sesso e ela
responder.
Quer comprar ingresso e marcar a poltrona como reservada? Solicite classe sesso e ela o far.
18
3.3 Definindo a composio
A composio utilizada para agregaes em que o perodo de vida da parte depende do tempo de
vida do objeto agregador. O objeto agregador tem controle sobre a criao e destruio dos objetos
agregados. Em suma, o objeto membro no pode existir para alm da montagem.
Desenhe esta forma mais forte de agregao simplesmente fazendo o losango da agregao se tornar
slido (preto).
No nosso exemplo anterior, percebemos que o objeto ingresso no faz sentido se ele no estiver
associado a uma venda. No existe um ticket em branco. No existe um ingresso que no tenha uma
sesso, poltrona, filme e venda associado. Dessa forma, o relacionamento do ingresso com a venda
mais forte que uma simples agregao, uma associao.
E quanto aos relacionamentos anteriores? Ser que eles poderiam ser uma composio tambm?
2015 - AIEC - Associao Internacional de Educao Continuada
70
Um filme pode existir por si s, sem uma sesso associada? Sim, o filme pode ser um prlanamento, uma previso, uma propaganda, ento ele pode existir sim sem estar associado a
uma sesso. Ento, a relao entre sesso e filme no chega a ser uma composio.
E poltronas, podem existir poltronas disponveis e reservadas sem estarem associadas a uma
sesso? De forma alguma, o conceito e uso da disponibilidade de poltronas s faz sentido
quando associadas a uma sesso de filme. Se a sesso de filme fosse cancelada, todas as
reservas e disponibilidades de poltronas deixariam de existir. Dessa forma, o relacionamento
to intenso que deve ser evoludo para uma composio.
19
Usamos o processo de generalizao para organizar grandes quantidades de informao. Caminhe por
um supermercado e voc encontra alimentos localizados em reas de armazenamento de acordo com
suas propriedades - produtos enlatados esto localizados em uma rea, frutas e legumes em outro,
gros em outros. Todos esses itens so alimentos, mas so tipos diferentes de alimentos. Frases como
"uma espcie de" ou "tipo de" so muitas vezes utilizados para descrever um relacionamento de
generalizao entre classes (por exemplo, uma ma um tipo de fruta que por sua vez um tipo de
alimento e assim por diante).
Voc tambm pode ouvir esse tipo de relacionamento referido como herana. Muitas vezes os termos
de generalizao e herana so usados como sinnimos. Isso porque se uma ma, por exemplo, um
tipo de fruta, em seguida, ela herda todas as propriedades de fruta. Da mesma forma, uma ma uma
especializao da fruta porque ela herda todas as propriedades generalizadas de frutas e adiciona
2015 - AIEC - Associao Internacional de Educao Continuada
71
algumas propriedades nicas que fazem mas especiais ou exclusivas dentro do maior grupo de frutas.
No sentido inverso, eu poderia dizer que o conceito de "fruta" uma generalizao dos fatos que so
verdadeiros para as melancias, mas, pssegos, e todos os tipos de objetos do grupo.
20
A diferena entre os termos generalizao e herana apenas na leitura da relao. Veja o exemplo:
uma banana herda as propriedades das frutas, uma fruta a representao genrica de uma banana.
A generalizao no uma associao. Associaes definem as
regras de como os objetos podem se relacionar entre si. A
generalizao diz que certas classes contm um subconjunto das
propriedades de uma classe superior. Nesse sentido, uma
generalizao no possui atributos e regras comuns das
associaes, como multiplicidade, papel, restries.
21
Temos ento trs informaes bsicas e precisamos poder represent-las em um diagrama de classes: o
nome, os atributos e os mtodos.
Lembrando que uma classe representada por um retngulo, vamos dividir esse retngulo com duas
linhas horizontais. Em cada compartimento criado, iremos escrever, respectivamente, o nome da classe,
os atributos e as operaes:
RESUMO
Neste mdulo, aprendemos que:
a. Classes e objetos: Uma classe uma definio de um tipo de entidade, da mesma forma que um
livro define como deve ser um livro de informtica. Um objeto uma abstrao para uma
nica entidade, como o meu livro de UML. A classe define regras. Um objeto define fatos. Um
objeto instanciado (criado) de acordo com as regras definidas pela sua classe.
b. Abstrao: Uma abstrao uma representao de algo real, como o seu rosto em uma foto:
aquilo que vemos na foto uma representao de voc, e no voc (a pessoa real). Mesmo que
haja uma quantidade quase infinita de informaes sobre qualquer entidade real, uma
abstrao de software til contm apenas a informao suficiente para apoiar a finalidade da
aplicao de software.
c. Encapsulao: Descreve um modo para organizar a informao de uma abstrao de modo que
ele pode ser usado eficientemente em uma aplicao de software. A encapsulao as
2015 - AIEC - Associao Internacional de Educao Continuada
73
Composio: Composio um tipo de agregao, que afirma que um objeto membro pode
existir se dentro do contexto da agregao. O tempo de vida do membro dependente do
tempo de vida do objeto que o compe.