Buscar

Apostila - Análise e Modelagem de Objetos com UML

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Análise e Modelagem de Objetos com UML
1
P
ó
s-
G
ra
d
u
aç
ão
 a
 D
is
tâ
n
ci
a
Análise e Modelagem 
de Objetos com UML
João Caldas Júnior
Elisamara de Oliveira
Análise e Modelagem de Objetos com UML
2
CONTEÚDO
APRESENTAÇÃO ........................................................................................................4
FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS .......................................................4
1.1. Processo de Software e Modelos de Ciclo de Vida ...........................................4
1.2. Introdução à Orientação a Objetos ....................................................................6
1.2.1. Abstração .....................................................................................................7
1.2.2. Objetos e Classes ........................................................................................7
1.2.3. Atributos .......................................................................................................8
1.2.4. Operações e Métodos ..................................................................................9
1.2.5. Encapsulamento ..........................................................................................9
1.2.6. Herança .........................................................................................................9
1.2.7. Polimorfismo ..............................................................................................10
1.3. RUP - Rational Unified Process .......................................................................10
UML – UNIFIED MODELING LANGUAGE ............................................................... 11
2.1. Breve Histórico da UML .................................................................................. 11
2.2. Organização dos Diagramas da UML ..............................................................13
2.3. Diagramas da UML ..........................................................................................14
2.3.1. Diagrama de Casos de Uso ........................................................................14
2.3.2 Diagrama de Classes ...................................................................................14
2.3.3. Diagrama de Objetos ..................................................................................14
2.3.4. Diagrama de Pacotes ..................................................................................14
2.3.5. Diagrama de Sequência ..............................................................................14
2.3.6. Diagrama de Comunicação .........................................................................14
2.3.7. Diagrama de Atividades ..............................................................................15
2.3.8. Diagrama de Estrutura Composta ...............................................................15
2.3.9. Diagrama de Componentes .......................................................................15
2.3.10. Diagrama de Implantação ........................................................................15
2.3.11. Diagrama de Tempo .................................................................................15
2.3.12. Diagrama de Máquina de Estados ...........................................................15
2.3.13. Diagrama de Interação Geral ...................................................................16
2.4. O Futuro da UML ..............................................................................................16
DIAGRAMA DE CASOS DE USO ..............................................................................17
3.1. Análise de Requisitos e Diagramas de Casos de Uso ....................................17
3.2. Componentes de um Diagrama de Casos de Uso ...........................................17
3.2.1. Atores e Casos de uso ...............................................................................17
3.2.2. Relacionamentos ........................................................................................18
3.2.2. Documentação de um Caso de Uso ...............................................................
19
DIAGRAMA DE CLASSES .........................................................................................21
4.1. O Modelo Entidade-Relacionamento e o Diagrama de Classes ......................21
4.2. Componentes de um Diagrama de Classes ....................................................22
4.2.1. Classes ......................................................................................................22
4.2.2. Relacionamentos ........................................................................................22
4.2.3. Estereótipo ..................................................................................................23
4.2.4. Interface .....................................................................................................23
4.2.5. Classes de Associação ..............................................................................24
4.2.6. Enumeração ...............................................................................................24
4.2.7. Associação Reflexiva .................................................................................24
4.2.8. Escopo de Classe (visibilidade) .................................................................24
4.2.9. Classe Abstrata ...........................................................................................25
Análise e Modelagem de Objetos com UML
3
4.3. Construindo um Diagrama de Classes ............................................................25
4.4. Estereótipos da Classe ....................................................................................26
4.4.1. Classes de Fronteira .................................................................................26
4.4.2. Classes de Controle ...................................................................................28
4.4.3. Classes de Entidade ..................................................................................29
DIAGRAMAS DE INTERAÇÃO ..................................................................................30
5.1. Os Diagramas de Interação .............................................................................30
5.2. Diagrama de Sequência ..................................................................................30
5.3. Componentes de um Diagrama de Sequência ................................................31
5.3.1. Objetos ........................................................................................................31
5.3.2. Atores ........................................................................................................31
5.3.3. Mensagens ................................................................................................32
5.4. Distribuição de Fluxo de Controle em Diagramas de Sequência ...................32
5.5. Diagramas de Comunicação ............................................................................33
DIAGRAMA DE MÁQUINA DE ESTADOS E DIAGRAMA DE ATIVIDADES ..............36
6.1. Máquina de Estados e Atividades ....................................................................36
6.2. Diagrama de Máquina de Estados ...................................................................36
6.3.1. Estados .....................................................................................................37
6.3.2. Transições ..................................................................................................38
6.3.3. Condições de Guarda ................................................................................39
6.3.4. Ações .........................................................................................................39
6.4. Construindo um Diagramade Máquina de Estado .........................................39
6.5. Diagrama de Atividades .................................................................................39
6.6. Componentes de um Diagrama de Atividades .................................................39
6.7. Construindo um Diagrama de Atividades ..............................................................
41
6.8. Diagramas de Atividades Aninhados ..............................................................42
CONSIDERAÇÕES FINAIS .......................................................................................43
RESPOSTAS COMENTADAS DOS EXERCÍCIOS ....................................................44
Capítulo 1 ................................................................................................................44
Capítulo 2 ................................................................................................................44
Capítulo 3 ................................................................................................................44
Capítulo 4 ................................................................................................................45
Capítulo 5 ...............................................................................................................46
Capítulo 6 ................................................................................................................47
BIBLIOGRAFIA ...........................................................................................................49
Análise e Modelagem de Objetos com UML
4
APRESENTAÇÃO
Com o advento da modelagem de software, que é a 
atividade de construir modelos que expliquem as caracte-
rísticas ou o comportamento de um software ou sistema, 
surgiu a necessidade de transcrever elementos do mundo 
real para o mundo conceitual, de modo a se construir mo-
delos de software capazes de serem compreendidos por 
profissionais dos mais diversos segmentos. Para melhor 
se construir um projeto, podem ser utilizados diversos pa-
radigmas de modelagem, ou seja, diferentes “formas de 
abordar um problema”. 
Nesta disciplina vamos estudar o paradigma orientado 
a objetos, que é um paradigma de análise, projeto e de-
senvolvimento de sistemas de software baseado na com-
posição e interação entre diversas unidades de software 
chamadas de “objetos”.
O paradigma de orientação a objetos visualiza um sis-
tema de software como uma coleção de agentes interco-
nectados denominados objetos. Cada objeto é responsá-
vel por realizar tarefas específicas. É através da interação 
entre objetos que uma tarefa computacional é realizada. A 
principal vantagem da técnica orientada a objetos para a 
modelagem de sistemas é a diminuição da diferença se-
mântica entre a realidade sendo modelada e os modelos 
construídos.
Para apresentar o modelo de objetos é necessário o 
uso de uma ferramenta de modelagem. Utilizaremos nes-
ta disciplina o modelo proposto pela UML. A UML - Unified 
Modeling Language é uma linguagem de modelagem que 
permite que os desenvolvedores visualizem o produto de 
seu trabalho através de diagramas padronizados. Jun-
to com a notação gráfica, a UML também especifica os 
significados, isto é, a semântica dos modelos. Assim, a 
UML não é uma metodologia de desenvolvimento, o que 
significa que ela não diz o que se deve fazer primeiro e 
em seguida como projetar seu sistema, mas ela auxilia 
a visualizar o desenho e a comunicação entre objetos do 
sistema sendo modelado. 
Nós lhe convidamos a conhecer o mundo da mode-
lagem de software por meio das técnicas da modelagem 
unificada baseada na UML, caro aluno. Os aspectos teó-
ricos e os conceitos da UML serão mesclados com a no-
tação, modelagem e relacionamento entre os diagramas. 
Você terá, além dos fundamentos teóricos, a possibilidade 
de ver exemplos práticos nos quais os diagramas foram 
aplicados na modelagem. Então, prepare-se, e venha jun-
to conosco conhecer este tema interessante nas próximas 
páginas deste material!
João Caldas Júnior 
Elisamara de Oliveira 
FUNDAMENTOS DA ORIENTAÇÃO A 
OBJETOS
Caro aluno, neste capítulo falaremos sobre a 
importância do processo de desenvolvimento de 
software no ambiente da Engenharia de Softwa-
re, relembraremos os conceitos sobre os ciclos 
de vida e abordaremos os conceitos básicos da 
Orientação a Objetos, bem como a relevância 
desses conceitos no cenário atual de desenvol-
vimento de software. Exemplificaremos alguns 
dos principais problemas no que se refere ao 
desenvolvimento de sistemas OO. 
1.1. Processo de Software e Modelos 
de Ciclo de Vida
Caro aluno, para entendermos melhor os conceitos 
fundamentais que envolvem a modelagem de um softwa-
re, faremos uma pequena introdução sobre a importância 
do processo de desenvolvimento de software, seu contex-
to e os modelos de ciclo de vida. 
Como vimos na disciplina Engenharia de Software e de 
Requisitos, um processo de desenvolvimento de software, 
ou simplesmente processo de software, pode ser defini-
do como um conjunto de disciplinas, atividades e tarefas 
necessárias para a geração de um produto de software, 
abordando desde sua concepção até o seu estado opera-
cional entregue ao usuário. 
Análise e Modelagem de Objetos com UML
5
Fonte: http://imasters.com.br/artigo/3834/software/inovacao-do-
processo-de-software
Um processo de software deve contemplar todo o 
acompanhamento e controle da produção do software, 
abordando os aspectos gerenciais que se fazem neces-
sários no transcorrer do desenvolvimento. As atividades 
de gerenciamento de um projeto de software prezam pelo 
correto andamento das atividades e tarefas executadas, 
bem como pela administração de falhas, imprevistos e 
mudanças que possam ocorrer em qualquer uma das dis-
ciplinas do processo. 
Pressman (2006) define processo como sendo “uma 
série de etapas que envolvem atividades, restrições e re-
cursos para alcançar a saída desejada”. Sua abordagem 
sobre o significado de processo é ampla e cita algumas 
características que, segundo ele, estão presentes em to-
dos os processos: 
 ● O processo prescreve todas as suas principais 
atividades;
 ● O processo utiliza recursos, está sujeito a um 
conjunto de restrições (como um cronograma) e 
gera produtos intermediários e finais;
 ● O processo pode ser composto de sub proces-
sos de algum modo relacionados. Ele pode ser 
definido como uma hierarquia de processos, or-
ganizados de tal maneira que cada sub proces-
so tenha seu próprio modelo de processo;
 ● Cada atividade do processo tem critérios de en-
trada e saída, de modo que seja possível saber 
quando o processo começa e quando termina;
 ● As atividades são organizadas em uma sequ-
ência, para que a ordem de execução de uma 
atividade em relação às outras seja clara;
 ● Todo processo tem um conjunto de diretrizes 
que explicam os objetivos de cada atividade. 
A forma como se encadeiam as etapas em um pro-
cesso de desenvolvimento é conhecida como modelo de 
processo ou modelo de ciclo de vida. Existe, porém, o 
ciclo de vida do projeto de software e o ciclo de vida do 
produto de software. Este último estende-se além do pro-
jeto e acompanha o produto de software da sua operação 
inicial, passando por possíveis manutenções até quando 
o software entra em desuso. O ciclo de vida do processo, 
por sua vez, é temporário e acaba ao final do projeto de 
desenvolvimento, porém deve ser maduro e capaz de ser 
repetido com o mesmo padrão de qualidade a cada novo 
produto que seja desenvolvido.
Há diversos modelos de ciclo de vida, no entanto, é 
consenso que não existe um modelo único que atenda 
a todos os projetos. O ciclo de vida deve ser escolhido 
de acordo com a natureza e características do projeto.Os 
modelos de ciclo de vida diferemum do outro na forma 
em que as diversas etapas de processo de software se 
relacionam entre si. 
Caro aluno, você já viu diversos processos de softwa-
re na disciplina Engenharia de Software e de Requisitos. 
Sugiro que você volte àquele material e revise o Modelo 
Cascata e o Modelo Iterativo Incremental, que são 2 dos 
modelos mais conhecidos e utilizados nas empresas de 
desenvolvimento de software. 
Leia o artigo “Conquistando Qualidade para o Pro-
jeto” de Marcelo Jacintho
Disponível em: http://www.internativa.com.br/artigo_
gestao.html
“...O ciclo de vida a ser adotado será uma das tônicas 
agora, pois dependendo das características do projeto, do 
cliente e da própria equipe, alguns modelos de ciclo de 
vida não são recomendáveis. Ainda, o famigerado e tão 
perseguido ciclo de vida Cascata, se estiver com grandes 
chances de ser escolhido, precisará sempre passar por 
uma crítica muito severa, haja vista que as estatísticas de 
desempenho da indústria mundial de TI, largamente divul-
gadas pelo Standish Group, apontam para um sucesso 
menor que 30% no resultado dos projetos, e, pesquisas 
Análise e Modelagem de Objetos com UML
6
1.2. Introdução à Orientação a 
Objetos
O termo OO- Orientação a Objetos pressupõe uma or-
ganização de software em termos de coleção de objetos 
discretos incorporando estrutura e comportamento pró-
prios. Esta abordagem de organização é essencialmen-
te diferente do desenvolvimento tradicional de software, 
onde estruturas de dados e rotinas são desenvolvidas de 
forma apenas fracamente acopladas. 
O paradigma OO tem como sua entidade essencial o 
objeto que recebe e envia mensagens, executa proces-
samentos e pode mudar de estado. Problemas são resol-
vidos através de objetos enviando mensagens a objetos.
A tabela 1 mostra, de forma simplificada, um paralelo 
entre a programação OO e a programação tradicional.
Tabela 1 – Programação OO x Pro-
gramação Tradicional
Programação OO Programação 
Tradicional
Métodos Procedimentos 
ou funções
Atributos Variáveis e dados
Mensagens Chamadas a 
procedimentos 
ou funções
Classes Tipos abstratos 
de dados
Hereditariedade -
Chamadas sob o 
controle do sistema
Chamadas sob o 
controle do programador
Na OO as funções e os dados são fundidos para formar 
a entidade objeto. Os objetos, diferentemente dos dados 
passivos das linguagens tradicionais, podem atuar. Suas 
ações são ativadas pelas mensagens enviadas e depois 
processadas por funções chamadas métodos.
Uma coleção de objetos similares é chamada classe. 
Uma instância de uma classe é um objeto. A maior abstra-
ção é conseguida pelo uso da hierarquia de classes. Para 
reutilizar métodos, as hierarquias de classe recorrem ao 
mecanismo exclusivo da OO que é a herança ou heredi-
tariedade.
Quando um programa OO é executado ocorrem 3 
eventos:
 ● Os objetos são criados de acordo com a neces-
sidade.
 ● As mensagens movimentam-se de um objeto 
para outro.
 ● Quando os objetos não são mais necessários, 
eles são apagados e a área na memória recu-
perada.
Fonte: http://ccsourcecode.blogspot.com.br/2011/05/o-que-e-
orientacao-objetos.html
correlatas apontam que a utilização de um ciclo de vida 
que não permite uma antecipação de riscos, nem testes 
de parciais do sistema em desenvolvimento, e que ignora 
a natureza mutável dos requisitos, está ligada a este ciclo 
e a este resultado. É claro que não podemos esquecer 
que é possível ser bem sucedido utilizando o Cascata, po-
rém o mercado vem sinalizando muito forte para a utiliza-
ção de modelos diferentes. ...”
Análise e Modelagem de Objetos com UML
7
O paradigma de orientação a objetos favorece a apli-
cação de diversos conceitos considerados fundamentais 
para o desenvolvimento de bons programas, tais como 
abstração, encapsulamento, herança e polimorfismo. 
Alguns conceitos não são exclusivos desta abordagem, 
mas são suportados de forma melhor no desenvolvimento 
orientado a objetos do que em outras metodologias.
Técnicas de orientação a objetos promovem o com-
partilhamento de recursos em diversos níveis distintos. 
Herança de estruturas de dados e comportamento per-
mite que estruturas comuns sejam compartilhadas entre 
diversas classes derivadas similares sem redundância. O 
compartilhamento de código usando herança é uma das 
grandes vantagens da orientação a objetos. Ainda mais 
importante que a economia de código é a clareza concei-
tual de reconhecer que operações sobre objetos diferen-
tes podem ser a mesma coisa, o que reduz o número de 
casos distintos que devem ser entendidos e analisados. 
O desenvolvimento orientado a objetos não apenas 
permite que a informação dentro de um projeto seja com-
partilhada como também oferece a possibilidade de rea-
proveitar projetos e código em projetos futuros. As ferra-
mentas para alcançar este compartilhamento, tais como 
abstração, encapsulamento, polimorfismo e herança, es-
tão presentes na metodologia; uma estratégia de reuso 
entre projetos é a definição de bibliotecas de elementos 
reusáveis. Entretanto, orientação a objetos não é uma fór-
mula mágica para se alcançar reusabilidade; para tanto, 
é preciso planejamento e disciplina para se pensar em 
termos genéricos, não voltados simplesmente para a apli-
cação corrente. 
No que se segue vamos estudar um pouco mais sobre 
os principais conceitos ligados à OO.
1.2.1. Abstração 
Abstração consiste em focalizar nos aspectos essen-
ciais inerentes a uma entidade e ignorar propriedades 
“acidentais”. Em termos de desenvolvimento de sistemas, 
isto significa concentrar-se no que um objeto é e faz antes 
de se decidir como ele será implementado. O uso de abs-
tração dá ao programador a liberdade de tomar decisões 
de desenvolvimento ou de implementação apenas quando 
há um melhor entendimento do problema a ser resolvido. 
Muitas linguagens de programação modernas supor-
tam o conceito de abstração de dados, porém, o uso de 
abstração juntamente com polimorfismo e herança, como 
suportado em orientação a objetos, é um mecanismo mui-
to mais poderoso. 
O uso apropriado de abstração permite que um mes-
mo modelo conceitual (orientação a objetos) seja utilizado 
para todas as fases de desenvolvimento de um sistema, 
desde sua análise até sua documentação. 
Na modelagem orientada a objetos uma das questões 
mais importantes consiste na identificação de abstrações 
que melhor descrevem o domínio do problema. É a capa-
cidade de identificação de aspectos semelhantes quanto 
à forma e ao comportamento que permitem a organização 
das classes.
1.2.2. Objetos e Classes 
Um objeto é definido como uma entidade concreta 
com limites e significados bem definidos para a aplicação 
sendo desenvolvida. Um objeto possui: 
 ● Identidade: característica que o distingue dos 
demais objetos
 ● Estado: conjunto de valores de seus atributos 
em um determinado instante
 ● Comportamento: reação apresentada às soli-
citações feitas por outros objetos com os quais 
se relaciona 
Os objetos têm dois propósitos: promover o entendi-
mento do mundo real e suportar uma base prática para 
uma implementação computacional. Não existe uma ma-
neira “correta” de decompor um problema em objetos; 
esta decomposição depende do julgamento do projetista e 
da natureza do problema. Todos os objetos têm identidade 
própria e são distinguíveis. 
Uma classe descreve um grupo de objetos com pro-
priedades (atributos) similares, comportamento (opera-
ções) similares, relacionamentos comuns com outros ob-
Análise e Modelagem de Objetos com UML
8
jetos e uma semântica comum. Por exemplo, considere 
que PessoaFisica e PessoaJuridica sejam classes de 
objetos. Entretanto, devido à distinção semântica, elas 
provavelmente estariam agrupadas em outra classe como 
Entidade.A figura 1 mostra outro exemplo de classe e objeto. 
Na figura 1 existe a classe Pessoa e uma enfermeira, um 
musico e um jogador seriam objetos desta classe.
Figura 1 – Exemplo de Classe e Objeto
Como se pode observar, o agrupamento em classes 
não leva em conta apenas o compartilhamento de proprie-
dades. O agrupamento de objetos em classes é um pode-
roso mecanismo de abstração. Desta forma, é possível 
generalizar definições comuns para uma classe de obje-
tos, ao invés de repeti-las para cada objeto em particular. 
Esta é uma das formas de reutilização e economia que a 
abordagem de orientação a objetos suporta. 
Nas classes são encontrados atributos e métodos que 
resumem as características comuns de vários objetos.
1.2.3. Atributos 
Um atributo é um valor de dado assumido pelos objetos 
de uma classe. É um dado ou informação de estado, para 
o qual cada objeto em uma classe tem seu próprio valor. 
Por exemplo, um objeto da classe PessoaFisica tem um 
nome e uma idade; cada objeto da classe PessoaJuridica 
também tem um nome e uma idade a partir da sua data de 
fundação; estes seriam atributos comuns das duas classes. 
Se considerarmos uma outra classe Transportes, por 
exemplo, cor, fabricante e modelo seriam possíveis atri-
butos de objetos Carro, que seriam instâncias da classe 
Transporte. 
Cada atributo tem um valor para cada instância de ob-
jeto. Diferentes instâncias de objetos podem ter o mesmo 
valor para um dado atributo. A figura 2 mostra um exemplo 
de atributos de objetos da classe Pessoa mostrada na figu-
ra 1. Estes atributos: nome, rg e idade são comuns a todos 
os objetos, mas seus valores são diferentes, neste caso.
Figura 2 – Exemplo de Atributos dos Objetos da Classe Pessoa
Diferença fundamental entre classes e objetos: 
• um objeto constitui uma entidade concreta com 
tempo e espaço de existência 
• a classe é somente uma abstração (tipo de dado 
definido pelo usuário)
Análise e Modelagem de Objetos com UML
9
1.2.4. Operações e Métodos 
Uma operação é uma função ou transformação que 
pode ser aplicada a objetos em uma classe. Por exemplo, 
abrir, salvar e imprimir são operações que podem ser apli-
cadas a objetos da classe Arquivo. Todos os objetos em 
uma classe compartilham as mesmas operações. 
Toda operação tem um objeto-alvo como um argumen-
to implícito. O comportamento de uma operação depende 
da classe de seu alvo. Como um objeto “sabe” qual é sua 
classe, é possível escolher a implementação correta da 
operação. Além disto, outros argumentos (parâmetros) 
podem ser necessários para uma operação. 
Uma mesma operação pode se aplicar a diversas 
classes diferentes. Quando isso acontece, uma operação 
como esta é chamada de polimórfica, ou seja, ela pode 
assumir distintas formas em classes diferentes. 
Um método é a implementação de uma operação para 
uma classe. Por exemplo, a operação imprimir pode ser 
implementada de forma distinta, dependendo se o arquivo 
a ser impresso contém apenas texto não formatado, é um 
arquivo de um processador de texto ou um arquivo biná-
rio. Todos estes métodos executam a mesma operação 
-- imprimir o arquivo; porém, cada método será implemen-
tado por um diferente código. 
Voltando ao exemplo da classe Pessoa, a figura 3 
mostra alguns métodos que poderiam ser aplicados aos 
seus objetos, como cadastrar, alterar, excluir.
Figura 3 – Exemplo de Métodos da Classe Pessoa
A assinatura de um método é dada pelo número e tipos 
de argumentos do método, assim como por seu valor de 
retorno. Uma estratégia de desenvolvimento recomendá-
vel é manter assinaturas coerentes para métodos imple-
mentando uma dada operação, assim como um compor-
tamento consistente entre as implementações. 
1.2.5. Encapsulamento 
Encapsular, ou “esconder informação”, consiste em 
separar os aspectos externos de um objeto, que são 
acessíveis a outros objetos, dos detalhes internos de sua 
implementação, que permanecem escondidos. O uso de 
encapsulamento evita que um programa torne-se interde-
pendente de tal maneira que uma pequena mudança pos-
sa provocar grandes efeitos colaterais. 
O uso de encapsulamento permite que a implementa-
ção de um objeto possa ser modificada sem afetar as apli-
cações que utilizam este objeto. Motivos para modificar 
a implementação de um objeto podem ser, por exemplo, 
melhoria de desempenho, correção de erros, mudança de 
plataforma de execução, dentre outros. 
Assim como a abstração, o conceito de encapsula-
mento não é exclusivo da abordagem de orientação a ob-
jetos. Entretanto, a habilidade de se combinar estrutura 
de dados e comportamento em uma única entidade, torna 
o encapsulamento mais elegante e mais poderoso do que 
em paradigmas convencionais que separam estruturas de 
dados e comportamento. 
1.2.6. Herança
Herança e generalização são abstrações poderosas 
para compartilhar similaridades entre classes e ao mes-
mo tempo preservar suas diferenças. Generalização é o 
relacionamento entre uma classe e uma ou mais versões 
refinadas (especializadas) desta classe. A classe sendo 
refinada é chamada de superclasse ou classe base, en-
quanto que a versão refinada da classe é chamada uma 
subclasse ou classe derivada. Atributos e operações co-
muns a um grupo de classes derivadas são colocadas 
como atributos e operações da classe base, sendo com-
partilhados por cada classe derivada. Diz-se que cada 
classe derivada herda as características de sua classe 
Análise e Modelagem de Objetos com UML
10
base. Algumas vezes, generalização é chamada de re-
lacionamento is-a (é-um), porque cada instância de uma 
classe derivada é também uma instância da classe base. 
Herança e generalização são transitivas, isto é, podem 
ser recursivamente aplicadas a um número arbitrário de 
níveis. Cada classe derivada não apenas herda todas as 
características de todos seus ancestrais como também 
pode acrescentar seus atributos e operações específicos. 
A herança é uma característica exclusiva da OO e per-
mite ao programador criar novas classes programando 
apenas as diferenças entre elas e a classe-pai, já que her-
dam dados e métodos desta. É o fruto de um mecanismo 
de hierarquia entre as classes, onde uma classe mais es-
pecializada (classe-filha) herda as propriedades da clas-
se mais geral (classe-pai) a que ela está imediatamente 
subordinada. Como falamos antes, a classe mais geral é 
denominada superclasse (ou classe base) e a classe mais 
especializada é chamada de subclasse (ou classe deriva-
da). Através da herança pode-se compartilhar automatica-
mente métodos e atributos entre diferentes classes.
A figura 4 mostra um exemplo de herança na classe 
Pessoa mostrada nas figuras 1, 2 e 3. No exemplo, nome, 
rg e idade são atributos da classe base Pessoa, que serão 
herdados pelas classes derivadas Aluno e Professor.
Figura 4 – Exemplo de Herança 
1.2.7. Polimorfismo 
Objetos agem em resposta às mensagens que rece-
bem. A mesma mensagem pode resultar em ações di-
ferentes quando recebidas por objetos diferentes. Esse 
fenômeno é conhecido como polimorfismo, que permite 
que um usuário possa enviar uma mensagem genérica e 
deixar os detalhes de implementação para o objeto recep-
tor. Uma mensagem de impressão, por exemplo, quando 
enviada a uma figura pode acessar métodos diferentes 
daqueles acessados quando é enviada para um texto. 
Polimorfismo significa “várias formas”. Para se aplicar 
polimorfismo é necessário que haja uma relação de he-
rança entre classes. Consiste em utilizar o mesmo método 
em situações diferentes, de acordo com a classe em que 
foi definido. O polimorfismo em uma mesma classe é cha-
mado de sobrecarga de método (overloading).
Como exemplo, consideremos a figura 6, em que o 
exemplo da classe Pessoa apresentado na figura 5 é re-
tomado.
Nafigura 5 podemos observar que os métodos cadas-
trar, alterar e excluir são os mesmos herdados da classe 
Pessoa, mas certamente estas operações relacionadas 
com Aluno e Professor têm implementações bastante dis-
tintas, em função dos dados associados a cada um deles.
Figura 5 – Exemplo de Polimorfismo
1.3. RUP - Rational Unified Process
Caro aluno, você também já estudou sobre o Processo 
Unificado na disciplina Engenharia de Software e de Re-
quisitos. Vamos retomar um pouco este tema aqui. Apro-
veite e volte ao material para relembrar...
Análise e Modelagem de Objetos com UML
11
O IBM Rational Unified Process®, ou RUP®, é uma 
plataforma de processo de desenvolvimento de software 
configurável que oferece melhores práticas comprovadas 
e uma arquitetura configurável. O RUP é baseado na me-
todologia orientada a objetos que define claramente quem 
é responsável pelo quê, como e quando as atividades de-
vem ser feitas e descreve todas as metas de desenvolvi-
mento para que sejam alcançadas. 
O RUP suporta a customização e autoria de processos 
e uma grande variedade de processos, ou de configura-
ção de processos, podem ser montadas em sua platafor-
ma. Essas configurações do RUP podem ser criadas para 
suportar tanto equipes grandes quanto pequenas, que 
trabalhem com técnicas de desenvolvimento bem discipli-
nadas ou menos formais. O produto RUP contém várias 
configurações e visões de processos prontas que guiam 
analistas, desenvolvedores, testadores, gerentes de pro-
jeto, gerentes de configuração, analistas de dados, e ou-
tros membros da equipe de desenvolvimento, em como 
desenvolver o software. Ele tem sido utilizado por muitas 
empresas em diferentes setores da indústria.
Para apresentarmos exemplos compreensíveis utili-
zando a UML ou Linguagem Unificada de Modelagem te-
remos de utilizar alguma noção de processo, visto que a 
UML não define a relação entre os diagramas. Portanto, 
em nossos exemplos, para especificar, modelar e docu-
mentar a relação entre os diagramas apresentados, utili-
zaremos conceitos relacionados ao processo RUP.
UML – UNIFIED MODELING 
LANGUAGE 
Caro aluno, neste capítulo falaremos sobre a 
UML, uma ferramenta essencial na modelagem 
de sistemas orientados a objetos. Abordaremos 
os conceitos básicos da modelagem unificada, 
como e quando ela surgiu, sua estrutura e seu 
futuro.
2.1. Breve Histórico da UML 
A sigla UML é o acrônimo de Unified Modeling Langua-
ge ou Linguagem de Modelagem Unificada de projetos 
 Leia mais sobre RUP – Rational Unified Process 
online e utilize-o!
UP significa Unified Process ou Processo Unificado e 
é um processo que define quem (papel funcional) faz o 
quê (artefato), como (atividades) e quando (disciplina) em 
um projeto de software. O RUP – Rational Unified Process 
é uma instância detalhada do UP. Possui uma grande 
quantidade de materiais para ajudar a melhorar a produ-
tividade da equipe. O RUP é um produto proprietário da 
Rational (IBM), mas no site colaborativo abaixo pode-se 
usá-lo e usufruir muitas das características do processo.
http://www.wthreex.com/rup/portugues/index.htm (em 
português)
http://www.wthreex.com/rup/smallprojects/index.htm 
(em inglês)
Exercícios do Capítulo 1 
1) O que é um Modelo de Ciclo de Vida de um 
software?
2) Quais as restrições à utilização do Modelo 
Cascata?
3) Categorize os relacionamentos listados a 
seguir. Atenção, podem existir associações 
binárias ou agregações na lista, portanto não 
presuma que todo relacionamento seja uma 
generalização. 
a. Um país possui uma capital 
b. Um filósofo à mesa de jantar está usando 
uma faca 
c. Uma conta corrente pode ser Normal ou 
Especial
d. Uma pessoa utiliza uma linguagem de pro-
gramação em um projeto 
Análise e Modelagem de Objetos com UML
12
orientados a objetos. Como o próprio nome diz, UML é 
uma linguagem de modelagem e não um método, meto-
dologia, processo ou linguagem de programação! 
A UML é uma lingua-
gem padrão de notação de 
projetos OO. Notação se 
refere aos instrumentos 
para especificar, visualizar 
e documentar os elemen-
tos de um sistema OO. A UML é importante, pois:
 ● serve como linguagem para expressar decisões 
de projeto que não são óbvias ou que não po-
dem ser deduzidas do código;
 ● provê uma semântica que permite capturar as 
decisões estratégicas e táticas do projeto;
 ● provê uma forma concreta o suficiente para a 
compreensão das pessoas e para ser manipula-
da pelas máquinas;
 ● é independente das linguagens de programação 
e dos métodos de desenvolvimento 
Além de fornecer a tecnologia necessária para apoiar 
a prática de Engenharia de Software orientada a objetos, 
a UML pode ser, também, a linguagem de modelagem pa-
drão para modelar sistemas concorrentes e distribuídos.
Nos anos 1990, conhecida como a época da “guerra 
dos métodos”, vários métodos coexistiam com notações 
muitas vezes conflitantes entre si. Dentre estes, os mais 
conhecidos eram:
 ● OMT- Object Modeling Technique, de Rumbaugh
 ● Método de Booch
 ● OOSE - Object Oriented Software Engineering, 
de Jacobson
Inicialmente, Rumbaugh e Booch fundiram seus mé-
todos (e notações) resultando no Método Unificado. em 
1995. quando trabalhavam juntos na Rational Software 
(atualmente uma divisão da IBM). Jacobson juntou-se a 
eles mais tarde e seu método OOSE foi incorporado ao 
novo processo denominado RUP - Rational Unified Pro-
cess. Além do método, eles unificaram a notação de pro-
jeto e a chamaram de UML – Unified Modeling Langua-
ge. Assim, UML representa a unificação das notações de 
Booch, Rumbaugh e Jacobson. 
Fonte:http://anaclaudiarocha.eti.br/imagens/Charge%20historico%20
da%20UML.JPG
A UML também agrega as ideias de vários outros auto-
res, tais como Harel e seu diagramas de estados, Shlaer-
-Mellor e o ciclo de vida dos objetos. Em resumo, a UML 
é o resultado da busca pela padronização dos artefatos 
de análise e projeto, quais sejam: modelos semânticos, 
sintaxe de notação e diagramas. 
Na década de 1990, surge uma organização importan-
te no mundo do paradigma orientado a objetos, a OMG 
- Object Management Group, uma entidade sem fins lu-
crativos da qual participam empresas e academias para 
definirem padrões de tecnologias OO.
No que se segue, apresentamos os principais marcos 
do desenvolvimento da UML:
 ● Em outubro de 1995 é lançada a primeira versão 
rascunho, versão 0.8 draft.
 ● Em Julho de 1996 é feita uma revisão devido ao 
ingresso de Jacobson, versão 0.9 draft.
 ● Parceiros da UML - HP, IBM, Microsoft, Oracle e 
Rational Software- desenvolveram a versão 1.1 
e a propuseram para a OMG
Análise e Modelagem de Objetos com UML
13
 ● Em novembro de 1997 a OMG aceita a proposta 
e assume a responsabilidade de realizar a ma-
nutenção e a revisão da UML
 ● Em março de 2003 a OMG lança a versão 1.5
 ● Em outubro de 2004 a OMG lança a versão 2.0
2.2. Organização dos Diagramas da 
UML
A UML utiliza-se de um conjunto de técnicas de nota-
ção gráfica para criar modelos visuais de software, com-
binando técnicas de modelagem de dados, negócios, ob-
jetos e componentes. É uma linguagem de modelagem 
unificada, comum e amplamente utilizável.
Embora possibilite representar o software através de 
modelos orientados a objetos, a UML não mostra que tipo 
de implementação deve ser feita, ou seja, não possui um 
processo que define detalhes de como o trabalho tem que 
ser desenvolvido. O seu objetivo é descrever “o que fa-
zer”, “como fazer”, “quando fazer” e “porque deve ser fei-
to”. É necessária a elaboração completa de um dicionário 
de dados para descrever todas as entidades envolvidas. 
Este processo permite que se realize o refinamento dos 
requisitos funcionais do software.
A Linguagem Unificadade Modelagem possui modelos 
ou diagramas (representações gráficas do modelo parcial 
de um sistema) que são usados, de forma combinada, 
com a finalidade de obter todas as visões e aspectos do 
sistema. Os diagramas da UML (veja figura 6) estão di-
vididos em Estruturais e Comportamentais e são os se-
guintes:
 ● Diagramas Estruturais
 - Diagrama de Classe
 - Diagrama de Objeto 
 - Diagrama de Componentes
 - Diagrama de Implantação
 - Diagrama de Pacotes 
 - Diagrama de Estrutura Composta
 ● Diagramas Comportamentais
 - Diagrama de Caso de Uso 
 - Diagrama de Máquina de Estados
 - Diagrama de Atividades
 - Diagramas de Interação, que dividem-se em:
 » Diagrama de Sequência
 » Diagrama de Interação Geral
 » Diagrama de Comunicação
 » Diagrama de Tempo
Figura 6 – Diagramas da UML
Fonte: http://www.infoescola.com/wp-content/uploads/2010/03/DiagramasdaUML.jpg
Análise e Modelagem de Objetos com UML
14
2.3. Diagramas da UML
Um diagrama é uma representação gráfica de um con-
junto de elementos, como classes, interfaces, colabora-
ções, componentes, nós, etc. Os diagramas são usados 
para visualizar o sistema sob diferentes perspectivas. A 
UML define um grande número de diagramas que permite 
dirigir o foco para aspectos diferentes do sistema de manei-
ra independente. Se bem usados, os diagramas facilitam 
a compreensão do sistema que está sendo desenvolvido. 
Nas próximas seções serão apresentados, de forma 
resumida, os diagramas que compõem a linguagem UML 
em sua versão 2.0. Nos próximos capítulos deste mate-
rial, os principais diagramas serão abordados separada-
mente e com maior detalhamento.
2.3.1. Diagrama de Casos de Uso
O diagrama de casos de uso especifica um conjunto de 
funcionalidades, através do elemento sintático “casos de 
uso”, e os elementos externos que interagem com o sis-
tema, através do elemento sintático “ator”. [SILVA, 2007] 
Além de casos de uso e atores, este diagrama contém 
relacionamentos de dependência, generalização e asso-
ciação.
Estes diagramas são basicamente usados para fazer a 
modelagem de visão estática dos casos de uso do siste-
ma. Essa visão proporciona suporte principalmente para 
o comportamento de um sistema, ou seja, os serviços ex-
ternamente visíveis que o sistema fornece no contexto de 
seu ambiente. Os diagramas de caso de uso são usados 
para fazer a modelagem do contexto de um sistema e fa-
zer a modelagem dos requisitos de um sistema.
2.3.2 Diagrama de Classes
Um diagrama de classes é um modelo fundamental de 
uma especificação orientada a objetos. Produz a descri-
ção mais próxima da estrutura do código de um programa, 
ou seja, mostra o conjunto de classes com seus atributos 
e métodos e os relacionamentos entre classes. Classes e 
relacionamentos constituem os elementos sintáticos bási-
cos do diagrama de classes. [SILVA, 2007]
2.3.3. Diagrama de Objetos
O diagrama de objetos consiste em uma variação do 
diagrama de classes em que são representadas instân-
cias e ligações entre instâncias de classes, que consti-
tuem os objetos. A finalidade é descrever um conjunto de 
objetos e seus relacionamentos em um ponto no tempo. 
Contém objetos e vínculos e são usados para fazer a mo-
delagem da visão de projeto estática de um sistema a par-
tir da perspectiva de instâncias reais.
2.3.4. Diagrama de Pacotes
Um pacote, em orientação a objetos, funciona como 
um “agrupador” que une e organiza um conjunto de clas-
ses, diagramas, arquivos ou mesmo outros pacotes de um 
sistema. Um diagrama de pacotes tem por finalidade tratar 
a modelagem estrutural do sistema particionando o mode-
lo em divisões lógicas, descrevendo as interações entre 
os pacotes e mostrando as dependências entre eles, uma 
vez que pacotes podem depender de outros pacotes. 
Este diagrama é muito utilizado para representar a 
arquitetura de um sistema mostrando o agrupamento de 
suas classes, já que um pacote pode representar um gru-
po de classes que se relacionam com outros pacotes atra-
vés de uma relação de dependência. 
2.3.5. Diagrama de Sequência
O diagrama de sequência mostra a troca de mensagens 
entre diversos objetos, em uma situação específica e deli-
mitada no tempo. Dá ênfase à ordenação temporal em que 
as mensagens são trocadas entre os objetos de um siste-
ma. Mensagens são os serviços solicitados de um objeto 
a outro e as respostas desenvolvidas para as solicitações.
O diagrama de sequência descreve a maneira como os 
grupos de objetos colaboram em algum comportamento 
ao longo do tempo. Geralmente registra o comportamento 
de um único caso de uso e exibe os objetos e as mensa-
gens passadas entre eles no caso de uso.
2.3.6. Diagrama de Comunicação
O diagrama de comunicação normalmente é utilizado 
como complemento do diagrama de sequência, embo-
ra possua um enfoque diferente já que concentra-se em 
como os objetos estão vinculados através de mensagens. 
Assim, pode ser gerado a partir do diagrama de sequência 
por representar os mesmos dados.
Análise e Modelagem de Objetos com UML
15
Este diagrama descreve objetos interagindo e seus 
principais elementos sintáticos são “objeto” e “mensagem”. 
Apresenta um formato alternativo para descrever a intera-
ção entre objetos. Ao contrário do diagrama de sequência, 
o tempo não é modelado explicitamente, uma vez que a 
ordem das mensagens é definida através de enumeração. 
Vale ressaltar que tanto o diagrama de comunicação como 
o diagrama de sequência são diagramas de interação.
2.3.7. Diagrama de Atividades
O diagrama de atividades representa a execução das 
ações e as transições que são acionadas pela conclusão 
de outras ações ou atividades. Diagramas de atividade 
são similares aos diagramas de fluxo de dados, com a 
diferença que as atividades são relacionadas aos objetos. 
Estes diagramas estão sempre associados a uma Classe, 
uma Operação ou um Caso de Uso.
Os diagramas de atividade suportam atividades sequen-
ciais e paralelas. Para as atividades executadas em parale-
lo não é importante a ordem na qual elas são executadas, já 
que podem ser executadas ao mesmo tempo ou uma após 
a outra. As atividades sequenciais são registradas através 
de ações e transições que seguem um ordenamento.
2.3.8. Diagrama de Estrutura Composta
O diagrama de estrutura composta detalha elementos 
de modelagem estrutural, como classes, pacotes e com-
ponentes, descrevendo sua estrutura interna. 
Este diagrama é utilizado essencialmente para mode-
lar colaborações. Uma colaboração descreve uma visão 
de um conjunto de entidades representadas por instâncias 
que cooperam entre si para executar uma função específi-
ca. Reflete a colaboração interna das classes para descre-
ver uma funcionalidade. O termo estrutura desse diagrama 
refere-se a uma composição de elementos interconecta-
dos, representando instâncias que colaboram, na linha do 
tempo de execução, por meio de vínculos de comunicação, 
para atingir algum objetivo comum. [GUEDES, 2007]
2.3.9. Diagrama de Componentes
O Diagrama de Componentes tem por finalidade indi-
car os componentes do software e seus relacionamentos. 
Um componente define seu comportamento em termos 
de interfaces fornecidas e requeridas. O diagrama pode 
ilustrar como as classes devem se encontrar organizadas 
através da noção de componentes de trabalho, podendo-
-se explicitar, para cada componente, qual das classes 
que ele representa. Este diagrama mostra os componen-
tes, como arquivos de código fonte, bibliotecas de progra-
mação ou tabelas de bancos de dados. As interfaces é 
que possibilitam as associações entre os componentes. 
 2.3.10. Diagrama de Implantação
O diagrama de implantação, também denominado 
diagrama de instalação, consiste na organização do con-
junto de elementos de um sistema para a sua execução. 
Descreve os componentesde hardware e software e sua 
interação com outros elementos de suporte ao processa-
mento. O principal elemento deste diagrama é o nó, que 
representa um recurso computacional. Podem ser repre-
sentados tanto os nós como as instâncias de nós. O dia-
grama de implantação é útil em projetos onde há muita 
interdependência entre partes de hardware e software.
2.3.11. Diagrama de Tempo
O diagrama de tempo consiste na modelagem de restri-
ções temporais do sistema. Apresenta o comportamento dos 
objetos e sua interação em uma escala de tempo, enfatizan-
do as condições que mudam no decorrer desse período.
Este diagrama descreve a mudança no estado ou con-
dição de uma instância de uma classe durante um período 
de tempo. É tipicamente utilizado para mostrar a mudança 
no estado de um objeto no tempo em resposta a eventos 
externos. 
2.3.12. Diagrama de Máquina de Estados
O diagrama de máquina de estados tem como elemen-
tos principais o estado, que modela uma situação na qual 
o elemento modelado pode estar ao longo de sua existên-
cia, e a transição, que leva o elemento modelado de um 
estado para o outro. O diagrama procura acompanhar 
as mudanças sofridas por um objeto dentro de um deter-
minado processo. Como o diagrama de sequência, este 
diagrama muitas vezes baseia-se em um Caso de Uso 
descrito em um diagrama de caso de uso e apoia-se no 
diagrama de classes. 
Análise e Modelagem de Objetos com UML
16
O diagrama de máquina de estados é utilizado geralmente para acompanhar os estados pelos quais uma instância 
de uma classe (objeto) passa. No entanto, pode ser utilizado para representar os estados de um caso de uso, os esta-
dos gerais de um subsistema ou mesmo de um sistema completo.
2.3.13. Diagrama de Interação Geral
O diagrama de interação geral é uma variação do diagrama de atividades e seus elementos sintáticos são os mes-
mos do diagrama de atividades. Fornece uma visão geral dentro de um sistema ou processo de negócio. As interações 
que fazem parte deste diagrama podem ser referências a diagramas de interação existentes na especificação do sis-
tema sendo modelado.
2.4. O Futuro da UML
Um sistema de software é inerentemente muito abstrato e, portanto, difícil de ser vi-
sualizado. Uma linguagem de modelagem, como a UML, contribui para se quebrar este 
alto nível de abstração, permitindo que o software possa ser visualizado em diferentes 
dimensões, de forma que o sistema possa ser compreendido antes de ser implementado. 
Além disso, a UML pode ser usada para produzir vários modelos do sistema com níveis 
crescentes de detalhamento.
 Um aspecto muito interessante, também, é que não somente sistemas novos podem ser modelados. A UML pode 
ser utilizada para modelar um sistema já existente, fornecendo uma visão mais adequada do mesmo para facilitar sua 
manutenção ou atualização. Além disso, a UML documenta um sistema. Um software bem documentado apresenta 
grande vantagem, já que o torna visível e transparente, facilitando sua compreensão e manutenção. 
Exercícios do Capítulo 2
1) Assinale “F” para falso ou “V” para verdadei-
ro:
( ) A UML pode ser utilizada somente para 
modelagem de sistemas ligados à área de 
Informática. 
( ) UML é uma linguagem para especificação, 
documentação, visualização e desenvolvi-
mento de sistemas orientados a objetos. 
( ) Ao se modelar um sistema utilizando a 
UML, segundo normas do grupo gestor da 
UML (Object Management Group - OMG), 
tem-se que utilizar pelo menos quatro de 
seus diagramas. 
( ) A UML é um método de desenvolvimen-
to, o que significa que ela diz o que fazer 
primeiro e em seguida como desenhar seu 
sistema.
A UML é uma linguagem unificada e universal e pode 
ser aplicada em muitas áreas de desenvolvimento de sof-
tware, já que foi concebida para fornecer mecanismos de 
especialização e extensão que permitem a modelagem de 
requisitos específicos de diferentes sistemas. Adicional-
mente, a UML é independente das linguagens de progra-
mação usadas e dos processos de desenvolvimento.
Com todas estas vantagens, a UML vem se tornando 
um padrão mundialmente utilizado para a modelagem de 
sistemas. Embora seu uso e sua aceitação sejam cres-
centes, o seu desenvolvimento não está estagnado e seus 
mecanismos estão sujeitos a aperfeiçoamentos. Além dis-
so, novas técnicas de modelagem podem ser definidas 
usando a própria UML como base.
Cada vez mais ferramentas de integração e padrões 
de implementação estão sendo criados baseados na 
UML. Isso vem facilitando o trabalho dos desenvolvedo-
res e disseminando, cada vez mais, o desenvolvimento 
de sistemas orientados a objetos.
Análise e Modelagem de Objetos com UML
17
DIAGRAMA DE CASOS DE USO
Caro aluno, neste capítulo descreveremos os 
diagramas de casos de uso da UML. Casos de 
uso são elementos classificadores que repre-
sentam uma unidade funcional coerente provida 
pelo sistema, subsistema, ou classe manifesta-
da por sequências de mensagens intercambiá-
veis entre os sistemas e um ou mais usuários. 
Os casos de uso podem possuir narrativas em 
texto, descrevendo a unidade funcional, e são 
amplamente utilizados para descobrir e registrar 
requisitos de sistemas.
3.1. Análise de Requisitos e Diagramas 
de Casos de Uso 
A criação dos diagramas de Casos de Uso acontece 
comumente na fase de Análise de Requisitos. Conforme 
estudamos na disciplina Engenharia de Software e de Re-
quisitos, é a fase responsável por manter a concordância 
entre os clientes e stakeholders sobre o que o sistema de-
verá fazer, além de possibilitar que a equipe de desenvol-
vimento compreenda os requisitos elencados e delimite o 
sistema e suas fronteiras. O profissional responsável por 
identificar os requisitos junto ao cliente, modelar casos de 
uso,e delimitar o sistema, expondo suas funcionalidades, 
é o Analista de Requisitos.
A Análise de Requisitos consiste em determinar os 
serviços que o usuário espera do sistema e as condições 
(restrições) sob as quais o sistema que será desenvolvido 
deva operar. As necessidades do usuário podem ser mui-
to variadas e o analista deve ser capaz de extrair os re-
quisitos funcionais e não-funcionais destas necessidades:
 ● Os requisitos funcionais expressam o com-
portamento de um software. As informações de 
entrada, o processamento e a saída emitida por 
uma funcionalidade são informações necessá-
rias para especificar seus requisitos.
 ● Os requisitos não funcionais mapeiam os as-
pectos qualitativos de um software, por exemplo: 
performance (tempo de resposta); segurança 
(restrições de acesso, privilégios); perspectiva 
do usuário (padrão das cores, disposição dos 
objetivos na tela); comunicabilidade (e-mail, 
VoIP, browser); usabilidade e portabilidade (a 
aplicação deve rodar em vários tipos de aplicati-
vos: móveis, desktop, note). 
Os Casos de Uso representam funcionalidades com-
pletas para o usuário e não funcionalidades internas do 
sistema. O diagrama de casos de uso é um artefato de 
comunicação entre cliente, usuários e desenvolvedores. 
Por ser extremamente simples e, consequentemente, de 
fácil compreensão, incentiva a participação do cliente e 
usuários no processo de desenvolvimento. Também serve 
como um contrato entre a equipe/empresa desenvolvedo-
ra e o cliente.
3.2. Componentes de um Diagrama de 
Casos de Uso
O Diagrama de Casos de Uso tem o objetivo de auxiliar 
a comunicação entre os analistas e o cliente. Um diagra-
ma de Caso de Uso descreve um cenário que mostra as 
funcionalidades do sistema do ponto de vista do usuário. 
Assim, o cliente deve ver no diagrama de Casos de Uso 
as principais funcionalidades de seu sistema. 
2) Faça a relação entre os conceitos e os dia-
gramas:
Análise e Modelagem de Objetos com UML
18
3.2.1. Atores e Casos de uso 
O diagrama de Casode Uso é representado por:
 ● atores
 ● casos de uso
 ● relacionamentos entre estes elementos 
Os casos de uso podem, opcionalmente, estar envol-
vidos por um retângulo que representa os limites do siste-
ma. No que se segue, estes elementos são apresentados 
em detalhes.
Atores
Um ator é representado por um boneco e 
um rótulo com o nome do ator. Um ator é um 
usuário do sistema, que pode ser um usuário 
humano ou um outro sistema computacional.
Caso de uso
Um caso de uso é repre-
sentado por uma elipse e um 
rótulo com o nome do caso 
de uso. Um caso de uso de-
fine uma grande função do sistema. A implicação é que 
uma função pode ser estruturada em outras funções e, 
portanto, um caso de uso pode ser estruturado.
3.2.2. Relacionamentos
Os relacionamentos nos diagramas de caso de uso po-
dem ser:
 ● associações entre atores e casos de uso
 ● generalizações entre os atores
 ● generalizações, extends e includes entre os ca-
sos de uso. 
Associação (entre um ator e um caso de uso)
 Define uma funcionalidade do sistema do ponto de vis-
ta do usuário.
Generalização (entre atores)
 Os casos de uso do Ator A são também casos de uso 
do Ator B.
O ator B tem seus próprios casos de uso.
Include (entre casos de uso)
Um relacionamento include de um caso de uso A para 
um caso de uso B indica que B é essencial para o compor-
tamento de A. Pode ser dito também que B é_parte_de A.
Extend (entre casos de uso)
Um relacionamento extend de um caso de uso B para 
um caso de uso A indica que o caso de uso B pode ser 
Análise e Modelagem de Objetos com UML
19
acrescentado para descrever o comportamento de A (não 
é essencial). A extensão é inserida em um ponto de exten-
são do caso de uso A.
Ponto de extensão em um caso de uso é uma indica-
ção de que outros casos de uso poderão ser adicionados 
a ele. Quando o caso de uso for invocado, ele verificará se 
suas extensões devem ou não serem invocadas.
Você entendeu?! Provavelmente, não. O extend é con-
siderado um conceito obscuro. Vamos a novas explica-
ções. Quando se especifica B extends A, a semântica é:
 ● Dois casos de uso são definidos: A e A extended 
by B;
 ● B é uma variação de A: contém eventos adicio-
nais, para certas condições;
 ● Tem que ser especificado onde B é inserido em A.
Generalização ou Especialização (é_um) 
Um caso de uso B é um tipo específico do caso de uso 
A (A é uma generalização de B, ou B é uma especializa-
ção de A).
Representa um relacionamento entre um caso de uso 
genérico para um mais específico, que herda todas as ca-
racterísticas de seu pai.
A figura 7 mostra um exemplo de um Caso de Uso. Este diagrama se refere ao projeto Casa Segura.
 Figura 7 - Diagrama de Caso de Uso para o Sistema Casa Segura
Análise e Modelagem de Objetos com UML
20
3.2.2. Documentação de um Caso de Uso 
O diagrama de casos de uso é apenas um panorama visual das funcionalidades 
do sistema; é necessária uma descrição textual para detalhar os casos de uso. 
Vejamos, como exemplo, o caso de uso “Autorizar Proprietário” apresentado no 
diagrama da figura 7. Para que este caso de uso fique mais bem esclarecido e do-
cumentado, criamos a tabela 2. A tabela 2 ilustra a documentação para este caso 
de uso contido no diagrama do sistema Casa Segura. A figura 8 ilustra uma possível 
interface para este sistema.
Tabela 2 – Documentação do Caso de Uso “Autorizar Proprietário” do sistema Casa Segura
Caso de Uso Autorizar Proprietário
Caso de Uso Geral Realizar a autorização de um proprietário
Ator Principal Proprietário
Pré-condição Sistema estar Ligado
Fluxo Principal 1) O proprietário digita seu username 
2) O proprietário digita sua senha
3) O proprietário pressiona o botão “Autorizar”
4) O sistema verifica as informações de login
5) O sistema apresenta a tela inicial da aplicação
Fluxos Alternativos 6) Numa situação de Exceção - A partir do passo 4
7) O sistema apresenta a tela de login
8) O proprietário digita seu username 
9) O proprietário digita sua senha
10) O sistema verifica que a senha e/ou username estão incorretos
11) O sistema mostra mensagem de erro
12) O proprietário re-digita o username e a senha
Pós-condição Proprietário Autorizado
Com base no que estudamos, podemos concluir que a saída da fase de análise de requisitos deve ser composta por:
 ● Lista de requisitos funcionais e não-funcionais;
 ● Diagrama de casos de uso e documentações textuais dos casos.
Figura 8 – Exemplo de uma interface para o sistema Casa Segura
Fonte: http://www.sraengenharia.blogspot.com.br/
Análise e Modelagem de Objetos com UML
21
DIAGRAMA DE CLASSES
Caro aluno, neste capítulo descreveremos o Diagrama de Classes que é um dos mais importantes diagramas 
da UML. Este diagrama está no centro da arquitetura de um sistema OO e é a partir dele que outros dia-
gramas são elaborados. O diagrama de classes é uma importante ferramenta para a documentação de um 
sistema ou produto de software OO. 
4.1. O Modelo Entidade-Relacionamento e o Diagrama de Classes
Um Diagrama de Classes é uma representação da estrutura e das relações das classes que servem de modelo para 
objetos de um sistema OO. O diagrama de classes é similar ao Modelo de Entidade-Relacionamento (MER) utilizado 
em banco de dados relacional, porém, ele se encontra em um nível de abstração de mais alto nível. Além disso, possui 
uma importante diferença em relação ao MER, pois representa o comportamento da classe através de suas operações 
ou métodos. A persistência é uma importante característica no conceito desse diagrama, uma vez que algumas classes 
podem representar, no projeto do sistema, entidades físicas que serão futuramente implementadas no banco de dados. 
Guedes (2008, p. 75) fornece um interessante relato comparando o MER com o diagrama de classes: “em muitos 
casos pode ser necessário preservar de maneira permanente os objetos de uma Classe, ou seja, esta deve ser per-
sistente. Uma classe persistente apresenta muitas semelhanças com uma entidade como aquelas definidas no antigo 
Modelo Entidade-Relacionamento utilizado para definir as estruturas de tabelas em bancos de dados relacionais. [...] 
Na verdade, o diagrama de classes foi intencionalmente projetado para ser uma evolução do Modelo Entidade-Relacio-
namento e pode ser utilizado para modelar a estrutura lógica das tabelas que irão compor um banco de dados.”
A figura 9 apresenta, a título de curiosidade, um exemplo de um MER.
No que se segue apresentaremos os principais componentes do diagrama de classes, juntamente com um exemplo 
ilustrativo.
Exercícios do Capítulo 3Descreva a posição do diagramas de casos de uso no processo de desenvolvimento incremental 
e iterativo. 
1) Faça uma tabela que mostre que tipos de relacionamentos são possíveis entre um ator e um caso de uso. 
Que tipo de relacionamento pode haver entre casos de uso? Que tipo de relacionamento pode haver entre 
atores?
2) Construa um modelo de casos de uso para a seguinte situação fictícia: “Estamos criando um serviço 
de entregas. Nossos clientes podem nos requisitar via portal do sistema a entrega de volumes. Alguns 
volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes 
segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor
Análise e Modelagem de Objetos com UML
22
4.2. Componentes de um Diagrama de 
Classes
Segundo Fowler (2000, p. 57) “um diagrama de classes 
descreve os tipos de objetos no sistema e os vários tipos 
de relacionamentos estáticos que existem entre eles”. As 
classes representam as propriedades e o comportamento 
de um conjunto de objetos em um sistema. Como essas 
classes não existem sozinhas, é importante também re-
presentar os seus relacionamentos.4.2.1. Classes
As classes, no diagrama de classes, são representadas 
por um retângulo com, normalmente, três divisões, a saber: 
o nome da classe, os atributos e as operações; esses dois 
últimos, com os seus tipos e respectivos escopos. 
É importante que o nome da classe seja uma pala-
vra única, preferencialmente, sem caracteres especiais e 
acentuados, isso evitará problemas na geração do código 
fonte do diagrama.
Em uma classe, os atributos representam as proprie-
dades da classe e as operações, representam os métodos 
desta classe.
4.2.2. Relacionamentos
Associação
As associações representam as relações entre as 
ocorrências das classes. É um tipo de relacionamento es-
trutural e estático entre as classes. As associações, em 
um diagrama de classe, definem os tipos de ligações em 
que os objetos participam. Booch (2005) usa o termo “as-
sociação binária” para se referir a uma associação entre 
duas classes.
Figura 9 – Exemplo de um MER- Modelo Entidade-Relacionamento
Fonte: http://itsolutionsproject.wordpress.com/banco-de-dados-i/
Análise e Modelagem de Objetos com UML
23
Agregação
Descreve uma relação de dependência entre duas 
classes, é a descrição de um relacionamento todo-parte 
ou “parte de”, também conhecido como um relacionamen-
to do tipo “tem-um”. É um caso particular de associação. 
Esse tipo de relacionamento traz os conceitos de respon-
sabilidades entre classes. 
 A agregação é um tipo de relacionamento que não for-
ça a destruição do conjunto, ou seja, uma vez destruído 
o “objeto todo”, não há obrigatoriedade da destruição do 
“objeto parte”, assim, na figura, mesmo se uma equipe “X” 
acabar, o jogador poderá fazer parte de outra equipe.
Composição
A composição também é a descrição de um relaciona-
mento todo-parte ou “parte de”, é conhecido como “tem-
-um”, mas neste caso o “objeto parte” pertence somente 
a um “objeto todo”, ou seja, esse é um tipo de relaciona-
mento mais forte entre duas classes ou entidades. Esse 
tipo de relacionamento traz, assim como a Agregação, os 
conceitos de responsabilidades entre as classes, porém 
de forma mais acentuada.
 Segundo Sommerville (2007, p. 123), “nas agrega-
ções/composições, as partes são normalmente criadas e 
destruídas pelo todo. Na classe do objeto todo, são defi-
nidas as operações para adicionar e remover as partes”.
Multiplicidade
Multiplicidade é a indicação de quantos objetos podem 
participar de um relacionamento.
Nome do Papel
É uma descrição (rótulo explicativo) inserida na ponta 
de uma associação.
Generalização
A generalização é um relacionamento em que temos 
uma classe ancestral (supertipo) e outras classes herda-
das (subtipos). O subtipo deve incluir todos os elementos 
(atributos e operações) do supertipo. Na implementação 
física corresponde a um processo de herança. 
Esse tipo de generalização pode ser restringido de vá-
rias maneiras. Segundo Sommerville (2007), as restrições 
podem ser: 
 ● sobrepostas, para representar herança múltipla; 
Análise e Modelagem de Objetos com UML
24
 ● disjuntas, para subclasses que só poderão her-
dar de uma única classe; 
 ● completas, quando todas as classes herdadas 
possíveis foram definidas; 
 ● incompletas, quando nem todas as subclasses 
foram definidas.
4.2.3. Estereótipo
Segundo Booch (2005, p. 455) estereótipo trata-se de 
“uma extensão do vocabulário da UML, que permite a cria-
ção de novos tipos de blocos de construção derivados dos 
já existentes, mas que são específicos ao seu problema”. 
Os estereótipos são representados por aspas francesas 
<<nome do estereótipo>>. São normalmente predefinidos 
na própria linguagem UML mas, por outro lado, a equipe 
de desenvolvimento pode definir os seus próprios estere-
ótipos, assim esclarece Sommerville (2007). A UML tam-
bém permite que o usuário defina os estereótipos a serem 
utilizados em determinada situação de modelagem. Des-
sa forma, podemos ter estereótipos de dois tipos: predefi-
nidos ou definidos pela equipe de desenvolvimento.
4.2.4. Interface
A interface define apenas a assinatura dos métodos da 
classe sem apresentar sua implementação. Normalmen-
te, nas linguagens de programação orientadas a objetos, 
as interfaces não apresentam atributos. 
A interface implementa a programação por contrato. A fi-
gura ao lado apresenta duas representações de interface e 
o seu relacionamento com uma classe. No segundo exem-
plo note o uso do estereótipo para evidenciar a interface.
4.2.5. Classes de Associação 
O conceito de Classe de Associação permite acrescen-
tar atributos, operações e outras características às asso-
ciações. Esse tipo de associação traz a ideia de associa-
ção enésima. Nesse sentido, Booch (2005) lembra que a 
“associação enésima” se refere a uma associação entre 
três ou mais classes. 
Na figura abaixo, observe que, se um fornecedor pode 
oferecer mais de um produto e um produto pode ser ofere-
cido por mais de um fornecedor, temos um relacionamen-
to N para N. Caso o cliente deseje verificar a data e o valor 
total de um fornecimento, isso poderá ser resolvido facil-
mente por uma classe associativa de nome Fornecimento.
4.2.6. Enumeração
Enumeração é um recurso usado em várias linguagens 
de programação. São listas (literais) que podem ser arma-
zenadas como valores ou passadas como parâmetros. 
Para representá-las usa-se o estereótipo <<enumera-
ted>> ou <<enumeration>>. 
4.2.7. Associação Reflexiva
A Associação Reflexiva é também conhecida como 
auto-associação. Sua função é associar objetos de uma 
mesma classe. As associações reflexivas trazem o con-
ceito de “papéis assumidos por”. No exemplo ilustrativo a 
seguir vemos uma associação reflexiva na classe Funcio-
nário. Isso não significa dizer que o funcionário gerencia 
a si mesmo, mas que, em um determinado momento, um 
determinado objeto dessa classe assume o papel de Ge-
Análise e Modelagem de Objetos com UML
25
renciador (gerente) e em outro momento, outro objeto desta mesma classe, assume o papel de gerenciado (o vende-
dor, por exemplo).
Guedes (2008) denomina as associações reflexivas 
como associações unárias. Segundo esse autor, ocorre 
uma associação unária ou reflexiva quando “existe um re-
lacionamento de uma classe para consigo mesma”. 
A descrição do nome da associação reflexiva no dia-
grama de classe é importante, pois esclarece dúvidas so-
bre aquele tipo de associação, uma vez que apenas uma 
classe é envolvida. Melo (2002, p. 102) afirma que “....o 
nome da associação é mais usado quando pode haver 
dúvidas sobre o tipo de associação ou nas associações que envolvem uma única classe”. 
Nessa mesma linha de raciocínio, Sommerville (2007) relata que, para melhor esclarecer o significado das associa-
ções no diagrama de classes, a UML fornece, além do nome da associação, o direcionamento de leitura e o papel.
4.2.8. Escopo de Classe (visibilidade)
As propriedades, o comportamento das classes e a própria classe são definidos por identificadores específicos para 
cada situação. São eles:
 ● “+” ou público: especifica acesso dentro da classe, por elementos externos, e em classes descendentes; 
 ● “#” ou protegido: especifica acesso dentro da classe e por classes descendentes; 
 ● “-“ ou privado: especifica acesso somente dentro da classe que foi criada; 
 ● “~” ou pacote: especifica acesso dentro do pacote.
4.2.9. Classe Abstrata
É uma classe que não possui uma instância imediata. A classe abstrata fornece os elementos para que classes 
descendentes possam instanciar seus próprios objetos, cada um com suas particularidades. No Diagrama de Classes 
a classe abstrata é definida pelo estereótipo <<abstract>>.
4.3. Construindo um Diagrama de Classes
Agora vamos construir um Diagrama de Classe completo, usando as informaçõesque aprendemos nas seções an-
teriores. No sistema Casa Segura, quando o proprietário deseja selecionar uma câmera ele deve selecioná-la a partir da 
parede, segmento de parede, porta ou janela em que a mesma está instalada. Para esta seleção, o proprietário deve usar 
a planta baixa da casa, logo esta PlantaBaixa poderá ser modelada como uma classe que é composta por outra classe 
chamada Parede, que, por conseguinte possui associações binárias com as classes SegmentoDeParede, Porta e Janela. 
As câmeras também serão modeladas por classes que deverão estar associadas à classe PlantaBaixa. A figura 10 mostra 
uma proposta de solução de Diagrama de Classes para o sistema Casa Segura.
Análise e Modelagem de Objetos com UML
26
4.4. Estereótipos da Classe
Para dar prosseguimento à documentação de um sis-
tema, iniciada com os casos de uso, muitas vezes, em um 
projeto, existe a necessidade de representar elementos 
em um diagrama de classe que descrevam os mais va-
riados tipos de participações. Uma classe e seus objetos 
normalmente participam de formas diferentes no trans-
correr de um caso de uso. Ao representar uma classe, é 
importante definir que tipo de estereótipo se pode usar 
para qualificar esta participação. De acordo com o tutorial 
RUP (2001), os estereótipos de classe podem ser defini-
dos como: 
 ● Classes de Fronteira
 ● Classes de Controle
 ● Classes de Entidade
As classes de fronteira modelam as partes do sistema 
que dependem do ambiente. As classes de controle e de 
entidade modelam as partes que são independentes de 
fatores externos ao sistema. 
Além de fornecer orientações mais específicas do 
processo para se identificar classes, a criação de este-
reótipos é um modelo de objetos muito importante, pois 
permite que mudanças no modelo afetem somente uma 
área específica. Com esta modelagem, as mudanças na 
interface do usuário, por exemplo, irão afetar somente as 
classes de fronteira. As mudanças no fluxo de controle 
irão afetar somente as classes de controle. As mudanças 
em informações de longo prazo irão afetar somente as 
classes de entidade. 
Esses estereótipos são especialmente úteis para iden-
tificar classes em análise no projeto inicial. É muito prová-
vel que, em fases posteriores do projeto, seja necessário 
utilizar um conjunto de estereótipos ligeiramente diferente 
para fazer uma correlação melhor com o ambiente de im-
plementação, com o tipo de aplicativo, e assim por diante. 
No que se segue, estas três categorias de classes serão 
melhor explicadas e dicas serão fornecidas para que você 
consiga identificá-las e modelar o seu sistema, caro aluno.
Figura 10 - Diagrama de Classes para o Sistema Casa Segura
Análise e Modelagem de Objetos com UML
27
4.4.1. Classes de Fronteira 
A classe de fronteira é uma classe 
usada para modelar a interação entre o 
ambiente do sistema e seus trabalhos in-
ternos. Essa interação envolve transformar e converter 
eventos, bem como observar mudanças na apresentação 
do sistema (como a interface).
Portanto, alterar a GUI – Graphic User Interface (In-
terface Gráfica com o Usuário) ou o protocolo de comuni-
cação significa alterar somente as classes de fronteira, e 
não as classes de entidade e de controle.
As classes de fronteira também facilitam a compreen-
são do sistema, pois definem suas fronteiras. Elas aju-
dam no projeto, fornecendo um bom ponto de partida para 
identificar serviços relacionados. Por exemplo, se você 
identificar uma interface de impressora logo no início do 
projeto, perceberá de imediato que também deve modelar 
a formatação das impressões.
Algumas classes de fronteira comuns são janelas, pro-
tocolos de comunicação, interfaces de impressora, sen-
sores e terminais. Se você estiver usando um construtor 
GUI, não será necessário modelar partes da interface de 
rotinas (botões, por exemplo) como classes de frontei-
ra separadas. Geralmente, a janela inteira é o objeto de 
fronteira mais refinado. As classes de fronteira também 
são úteis para capturar interfaces para APIs – Application 
Program Interface (Interface de Programas de Aplicação) 
possivelmente não orientadas a objetos (como um código 
mais antigo, por exemplo).
Você deve modelar as classes de fronteira de acordo 
com o tipo de fronteira que elas representam. A comunica-
ção com outro sistema e a comunicação com um ator hu-
mano (através de uma interface do usuário) têm objetivos 
diferentes. Durante a modelagem da interface do usuário, 
a principal preocupação deve ser a forma como a inter-
face será apresentada a ele. Durante a modelagem da 
comunicação do sistema, a principal preocupação deve 
ser o protocolo de comunicação.
Um objeto de fronteira (uma instância de uma classe 
de fronteira) poderá durar mais que uma instância de caso 
de uso se, por exemplo, precisar ser exibido em uma tela 
entre o desempenho de dois casos de uso. Os objetos 
de fronteira, porém, costumam ter a mesma duração da 
instância de caso de uso.
Identificação de Classes de Fronteira 
Uma classe de fronteira faz a intermediação entre a 
interface e algo fora do sistema. Os objetos de fronteira 
isolam o sistema de mudanças externas (mudanças nas 
interfaces com outros sistemas, nos requisitos do usuário, 
etc.), impedindo que elas afetem o restante do sistema.
Um sistema pode ter vários tipos de classes de fronteira: 
 ● Classes de interface do usuário - classes que 
intermediam a comunicação com usuários hu-
manos do sistema, como um painel de controle 
que recebe a interação do usuário.
 ● Classes de interface do sistema - classes que 
intermediam a comunicação com outro sistema, 
como uma biblioteca que permite a troca de in-
formações com a internet.
 ● Classes de interface de dispositivo - classes 
que fornecem a interface para dispositivos (como 
sensores) que detectam eventos externos.
Identificação de Classes de Interface do Usuário
Podem existir classes de fronteira que representem a 
interface do usuário a partir de atividades de modelagem 
dessa interface. Quando apropriado, reutilize essas clas-
ses nessa atividade. Caso a modelagem de interface de 
Saiba Mais sobre Engenharia Reversa lendo o artigo 
“O que é Engenharia Reversa” de Oliver Hautsch publi-
cado em 28/09/2009
Disponível em:
http://www.tecmundo.com.br/pirataria/2808-o-que-e-
-engenharia-reversa-.htm
Análise e Modelagem de Objetos com UML
28
usuário não tenha sido feita, a discussão a seguir ajudará 
a localizar (ou identificar) essas classes.
Existe pelo menos um objeto de fronteira para cada 
par de atores de caso de uso. Esse objeto pode ser visto 
como tendo a responsabilidade de coordenar a interação 
com o ator. 
Ele também pode ter objetos secundários, aos quais 
delega algumas de suas responsabilidades. Isso é verda-
deiro para aplicativos GUI baseados em janela, nos quais 
geralmente existe um objeto de fronteira para cada janela 
ou para cada formulário. 
Identificação de Classes de Interface do Sistema
Uma classe de fronteira que se comunica com um sis-
tema externo e é responsável pelo gerenciamento do diá-
logo com esse sistema é chamada de classe de interface 
do sistema. Ela fornece a interface entre o sistema exter-
no e o sistema que está sendo criado.
A interface com um sistema existente pode já estar 
bem definida. Se estiver, as responsabilidades serão de-
rivadas diretamente da definição da interface. Se existir 
uma definição formal de interface, ela pode ser obtida por 
meio de engenharia reversa e isso precisa estar formal-
mente definido aqui. Simplesmente anote o fato de que a 
interface existente será reutilizada durante o projeto.
Identificação de Classes de Interface de Dispositivo
O sistema pode conter elementos que agem como se 
fossem externos, ou seja, podem ter seus valores altera-

Continue navegando