Buscar

Modelagem de Sistemas com UML e Orientacao a Objetos

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 150 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 150 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 150 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

Brasília-DF. 
ModelageM de SiSteMaS coM UMl 
e orientação a objetoS
Elaboração
Camila de Luna Maciel Gadelha
Produção
Equipe Técnica de Avaliação, Revisão Linguística e Editoração
Sumário
APRESENTAÇÃO ................................................................................................................................. 4
ORGANIZAÇÃO DO CADERNO DE ESTUDOS E PESQUISA .................................................................... 5
INTRODUÇÃO.................................................................................................................................... 7
UNIDADE I
INTRODUÇÃO ....................................................................................................................................... 9
CAPÍTULO 1
MODELAGEM DE SISTEMAS DE SOFTWARE .............................................................................. 9
CAPÍTULO 2
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS .............................................................................. 16
UNIDADE II
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS .......................................................................... 20
CAPÍTULO 1
OBJETOS E CLASSES ............................................................................................................... 20
CAPÍTULO 2
ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO ............................................... 24
CAPÍTULO 3
AGREGAÇÃO/COMPOSIÇÃO E GENERALIZAÇÃO/ESPECIALIZAÇÃO ....................................... 31
UNIDADE III
MODELAGEM DE SISTEMAS COM UML ................................................................................................. 35
CAPÍTULO 1
INTRODUÇÃO À UML: HISTÓRICO E CONCEITOS ..................................................................... 35
CAPÍTULO 2
INTRODUÇÃO AOS DIAGRAMAS DA UML ................................................................................ 41
CAPÍTULO 3
VISÃO GERAL DA UML 2.0 ...................................................................................................... 54
CAPÍTULO 4
USO DE FERRAMENTAS CASE ................................................................................................. 58
UNIDADE IV
PRINCIPAIS DIAGRAMAS ESTRUTURAIS DA UML ...................................................................................... 65
CAPÍTULO 1
DIAGRAMAS DE CLASSES ....................................................................................................... 65
CAPÍTULO 2
DIAGRAMA DE COMPONENTES .............................................................................................. 79
CAPÍTULO 3
DIAGRAMA DE PACOTES ........................................................................................................ 83
UNIDADE V
PRINCIPAIS DIAGRAMAS DE COMPORTAMENTO DA UML ...................................................................... 88
CAPÍTULO 1
DIAGRAMA DE CASOS DE USO .............................................................................................. 88
CAPÍTULO 2
DIAGRAMA DE SEQUÊNCIA .................................................................................................... 99
CAPÍTULO 3
DIAGRAMA DE ATIVIDADE ..................................................................................................... 112
UNIDADE VI
ESTUDO DE CASO ............................................................................................................................. 121
CAPÍTULO 1
DESCRIÇÃO ......................................................................................................................... 121
CAPÍTULO 2
DIAGRAMAS DE CASOS DE USO ........................................................................................... 124
CAPÍTULO 3
DIAGRAMAS ESTRUTURAIS: CLASSES, PACOTES E COMPONENTES .......................................... 133
CAPÍTULO 4
DIAGRAMAS DE COMPORTAMENTO: SEQUÊNCIA E ATIVIDADES ............................................ 140
PARA (NÃO) FINALIZAR ................................................................................................................... 148
REFERÊNCIAS ................................................................................................................................ 149
5
Apresentação
Caro aluno
A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se 
entendem necessários para o desenvolvimento do estudo com segurança e qualidade. 
Caracteriza-se pela atualidade, dinâmica e pertinência de seu conteúdo, bem como pela 
interatividade e modernidade de sua estrutura formal, adequadas à metodologia da 
Educação a Distância – EaD.
Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade 
dos conhecimentos a serem oferecidos, possibilitando-lhe ampliar conceitos 
específicos da área e atuar de forma competente e conscienciosa, como convém 
ao profissional que busca a formação continuada para vencer os desafios que a 
evolução científico-tecnológica impõe ao mundo contemporâneo.
Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo 
a facilitar sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na 
profissional. Utilize-a como instrumento para seu sucesso na carreira.
Conselho Editorial
6
Organização do Caderno 
de Estudos e Pesquisa
Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em 
capítulos, de forma didática, objetiva e coerente. Eles serão abordados por meio de textos 
básicos, com questões para reflexão, entre outros recursos editoriais que visam a tornar 
sua leitura mais agradável. Ao final, serão indicadas, também, fontes de consulta, para 
aprofundar os estudos com leituras e pesquisas complementares.
A seguir, uma breve descrição dos ícones utilizados na organização dos Cadernos de 
Estudos e Pesquisa.
Provocação
Textos que buscam instigar o aluno a refletir sobre determinado assunto antes 
mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor 
conteudista.
Para refletir
Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita 
sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante 
que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As 
reflexões são o ponto de partida para a construção de suas conclusões.
Sugestão de estudo complementar
Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo, 
discussões em fóruns ou encontros presenciais quando for o caso.
Praticando
Sugestão de atividades, no decorrer das leituras, com o objetivo didático de fortalecer 
o processo de aprendizagem do aluno.
7
Atenção
Chamadas para alertar detalhes/tópicos importantes que contribuam para a 
síntese/conclusão do assunto abordado.
Saiba mais
Informações complementares para elucidar a construção das sínteses/conclusões 
sobre o assunto abordado.
Sintetizando
Trecho que busca resumir informações relevantes do conteúdo, facilitando o 
entendimento pelo aluno sobre trechos mais complexos.
Para (não) finalizar
Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem 
ou estimula ponderações complementares sobre o módulo estudado.
8
Introdução
A UML (Unified Modeling Language – Linguagem de Modelagem Unificada) tornou-se, 
nos últimos anos, a linguagem padrão de modelagem adotada internacionalmente 
pela indústria de Engenharia de Software. Ela é uma linguagem visual utilizada para 
modelar softwares baseados no paradigma de orientação a objetos. 
Este material procura ensinar os conceitos básicos de modelagem de sistemas segundo 
o paradigma da orientação a objetos, usando como base a linguagem UML. Para isso, a 
linguagem UML é apresentada mediante a ilustração de seus diversos diagramas, onde 
alguns de seus componentes são detalhados e como eles interagem.
Objetivos
 » Apresentar o conceito de modelagem de sistemas segundoo paradigma 
de orientação a objetos.
 » Apresentar os princípios básicos da orientação a objetos e os principais 
conceitos.
 » Introduzir a linguagem UML, apresentando seu histórico, principais 
conceitos e uma visão geral da versão 2.0 da linguagem.
 » Descrever e ilustrar os principais diagramas da UML e apresentar um 
estudo de caso exemplo.
 » Apresentar as principais ferramentas de modelagem UML existentes no 
mercado.
9
UNIDADE IINTRODUÇÃO
CAPÍTULO 1
Modelagem de sistemas de software
Uma característica intrínseca de sistemas de software é a complexidade de seu 
desenvolvimento, que aumenta à medida que o sistema cresce. Para ter uma 
ideia da complexidade envolvida na construção de alguns sistemas, pense 
no tempo e nos recursos materiais necessários para se construir uma casa de 
cachorro. Para essa tarefa, provavelmente tudo que se precisa e de algumas 
ripas de madeira, alguns pregos, uma caixa de ferramentas e certa dose de 
amor por seu cachorro. Depois de alguns dias a casa estaria pronta. O que dizer 
da construção de uma casa para sua família? Certamente tal empreitada não 
seria realizada tão facilmente. O tempo e os recursos necessários seriam uma 
ou duas ordens de grandeza maiores do que o necessário para a construção da 
casa de cachorro. O que dizer, então, da construção de um edifício? Certamente, 
para se construir habitações mais complexas, algum planejamento adicional é 
necessário. Neste planejamento, engenheiros e arquitetos constroem plantas 
dos diversos elementos de habitação antes do início da construção propriamente 
dita (BEZERRA, 2015).
Na construção de sistemas de software, assim como na de sistemas habitacionais, 
também há uma gradação de complexidade. Para a construção de sistemas de software 
mais complexos, é igualmente necessário um planejamento inicial. O equivalente ao 
projeto de plantas da engenharia civil também deve ser realizado. 
Essa necessidade leva ao conceito de modelo, tão importante no desenvolvimento de 
sistemas. 
De uma maneira mais ampla, um modelo pode ser visto como uma representação 
idealizada de um sistema a ser construído. São várias as razões para se utilizar modelos 
na construção de sistemas, dentre elas (BEZERRA, 2015):
10
UNIDADE I INTRODUÇÃO
1. Gerenciamento da complexidade: pode haver diversos modelos de 
um mesmo sistema, cada qual descrevendo uma perspectiva do sistema 
a ser construído. Assim, detalhes irrelevantes que podem dificultar 
o entendimento do sistema podem ser ignorados por um momento 
estudando-se separadamente cada um dos modelos;
2. Comunicação entre as pessoas envolvidas: os modelos de um 
sistema servem também para promover a difusão de informações relativas 
ao sistema entre os indivíduos envolvidos em sua construção;
3. Redução nos custos do desenvolvimento: a correção de erros 
no desenvolvimento de sistemas é menos custosa quando detectada e 
realizada ainda no(s) modelo(s) do sistema (por exemplo, é muito mais 
fácil corrigir uma maquete do que pôr abaixo parte de um edifício);
4. Previsão do comportamento futuro do sistema: o comportamento 
do sistema pode ser discutido mediante uma análise dos seus modelos, 
pois eles servem como um “laboratório” em que diferentes soluções 
para um problema relacionado à construção do sistema podem ser 
experimentadas.
A modelagem não se restringe a grandes sistemas. Até sistemas de software 
equivalentes a casas de cachorro poderão receber os benefícios da modelagem. 
Porém, é absolutamente verdadeiro que, quanto maior e mais complexo for o 
sistema, maior será a importância da modelagem.
Princípios da modelagem
O uso da modelagem tem uma rica história em todas as disciplinas de engenharia. Essa 
experiência sugere quatro princípios básicos de modelagem, descritos a seguir (BOCH 
et al, 2006):
A escolha dos modelos a serem criados têm profunda influência sobre a maneira como 
um determinado problema é atacado e como uma solução é definida.
Em outras palavras, os modelos devem ser bem escolhidos. Os modelos corretos 
iluminarão de forma brilhante os problemas de desenvolvimento mais complicados, 
proporcionando conclusões que simplesmente não seriam possíveis de outra maneira. 
Modelos inadequados causarão confusões, desviando a atenção para questões 
irrelevantes. É importante destacar que a escolha dos modelos poderá ser modificada, 
11
INTRODUÇÃO I UNIDADE I
de maneira significativa, de acordo com a visão de mundo da pessoa envolvida. Apesar 
desse fato, o ponto mais importante é que cada visão de mundo conduz a um tipo 
diferente de sistema, com custos e benefícios diversos.
Cada modelo poderá ser expresso em diferentes níveis de precisão.
Ao desenvolver um sistema complexo, às vezes poderá ser necessária uma visão 
panorâmica, e em outros momentos, poderá ser preciso retornar ao nível dos alicerces. 
Por exemplo, em sistemas de software, às vezes um modelo de interface para o usuário, 
de execução rápida e simples, será exatamente o que será preciso, em outros casos, será 
necessário retornar a níveis mais baixos, como ao especificar as interfaces para várias 
plataformas. Em qualquer situação, os melhores tipos de modelos serão aqueles que 
permitem a escolha do grau de detalhamento, dependendo de quem esteja fazendo a 
visualização e por que deseja fazê-la. 
Os melhores modelos estão relacionados à realidade.
Será melhor utilizar modelos que tenham uma clara conexão com a realidade e, nos 
casos em que essa conexão seja fraca, saber de maneira exata, como esses modelos 
diferem do mundo real. O segredo será ter certeza de que sua simplificação não ocultará 
detalhes importantes. No caso de softwares o problema maior está no fato de não haver 
uma conexão básica entre o modelo de análise e o modelo de projeto do sistema. Falhas 
nessa conexão podem resultar, ao longo do tempo, em uma divergência entre o sistema 
concebido e o sistema construído.
Nenhum modelo único é suficiente. Qualquer sistema não trivial será melhor 
investigado por meio de um pequeno conjunto de modelos quase independentes.
Não existe um modelo que por si só esboce todos os detalhes de um software. Para 
compreender sua arquitetura existem diversas visões que contém aspectos estruturais 
e comportamentais que em conjunto representam a base de um projeto de software.
Por que modelar software?
Qual a real necessidade de se modelar um software? Muitos “profissionais” 
podem afirmar que conseguem determinar todas as necessidades de um 
sistema de informação de cabeça, e que sempre trabalharam assim. Qual a real 
necessidade de se projetar uma casa? Um pedreiro experiente não é capaz de 
construí-la sem um projeto? Isso pode ser verdade, mas a questão é muito mais 
ampla, envolvendo fatores extremamente complexos, como levantamento e 
12
UNIDADE I INTRODUÇÃO
análise de requisitos, prototipação, tamanho do projeto, complexidade, prazos, 
custos, documentação, manutenção e reusabilidade, entre outros. Existe uma 
diferença gritante entre construir uma pequena casa e construir um prédio 
de vários andares. Obviamente, para se construir um edifício é necessário, em 
primeiro lugar, desenvolver um projeto muito bem-elaborado, cujos cálculos 
têm de estar extremamente corretos e precisos. Além disso, é preciso fornecer 
uma estimativa de custos, determinar em quanto tempo a construção estará 
concluída, avaliar a quantidade de profissionais necessária à execução da obra, 
especificar a quantidade de material a ser adquirida para a construção, escolher o 
local que o prédio será erguido etc. Grandes projetos não podem ser modelados 
de cabeça, nem mesmo a maioria dos pequenos projetos pode sê-lo, exceto, 
talvez, aqueles extremamente simples (GUEDES, 2011).
Na realidade, por mais simples que seja, todo e qualquer sistema deve ser modelado 
antes de se iniciar sua implementação, entre outras coisas, porque os sistemas de 
informação frequentemente costumam ter a propriedade de “crescer”, isto é, aumentar 
em tamanho, complexidadee abrangência. Muitos profissionais costumam afirmar que 
sistemas de software são “vivos”, porque nunca estão completamente finalizados. 
Na verdade, o termo correto seria “dinâmicos”, pois normalmente os sistemas de 
software estão em constante mudança. Tais mudanças são devidas a diversos fatores, 
como, por exemplo (GUEDES, 2011):
 » os clientes desejam constantemente modificações ou melhorias no 
sistema;
 » o mercado está sempre mudando, o que força a adoção de novas estratégias 
por parte das empresas e, consequentemente, de seus sistemas;
 » o governo seguidamente promulga novas leis e cria novos impostos e 
alíquotas ou, ainda, modifica as leis, os impostos e alíquotas já existentes, 
o que acarreta a manutenção no software.
Assim, um sistema de software precisa ter uma documentação extremamente 
detalhada, precisa e atualizada para que possa ser mantido com facilidade, rapidez e 
correção, sem produzir novos erros ao corrigir os antigos. Modelar um sistema é uma 
forma bastante eficiente de documentá-lo, mas a modelagem não serve apenas para 
isso: a documentação é apenas uma das vantagens fornecidas pela modelagem.
13
INTRODUÇÃO I UNIDADE I
Escrevendo modelos de software
A modelagem de um software implica em criar modelos de software, mas o que é 
realmente um modelo de software? Um modelo de software captura uma visão de um 
sistema físico, é uma abstração do sistema com certo propósito, como descrever aspectos 
estruturais ou comportamentais do software. Esse propósito determina o que deve 
ser incluído no modelo e o que é considerado irrelevante. Assim, um modelo descreve 
completamente aqueles aspectos do sistema físico que são relevantes ao propósito do 
modelo, no nível apropriado de detalhe.
A modelagem de sistemas de software, em geral, envolve a utilização de notações 
gráficas para a construção dos modelos. A partir de desenhos gráficos (diagramas) 
os desenvolvedores têm uma representação concisa do sistema. No entanto, embora 
diagramas consigam expressar diversas informações, em muitos momentos há a 
necessidade de adicionar informações na forma de texto, com o objetivo de explicar ou 
definir certas partes desse diagrama. Assim, dado um modelo de uma das perspectivas 
de um sistema, diz-se que o seu diagrama e a informação textual associada a ele formam 
a documentação desse modelo (BEZERRA, 2015).
A modelagem de sistemas de software consiste na utilização de notações 
gráficas e textuais com o objetivo de construir modelos que representam as 
partes essenciais de um sistema, considerando-se várias perspectivas diferentes 
e complementares.
Nos próximos capítulos, serão apresentados diversos modelos cujos componentes são 
desenhos gráficos, que seguem algum padrão lógico para a modelagem de sistemas de 
software.
Evolução histórica da modelagem de sistemas
A Lei de Moore é bastante conhecida na área de computação. Embora, seja, 
conhecida como lei, foi apenas uma declaração, feita em 1965 pelo engenheiro 
Gordon Moore, cofundador da Intel. A Lei de Moore estabelece que a “densidade 
de um transistor dobra em um período entre 18 e 24 meses”. Isso significa que 
se um processador pode ser construído hoje com capacidade de processamento 
P, em 24 meses pode-se construir um processador com capacidade 2P. Em 48 
meses, pode-se construir um com capacidade 4P, e assim por diante. Ou seja, a 
Lei de Moore implica uma taxa de crescimento exponencial na capacidade de 
processamento dos computadores. (BEZERRA, 2015).
O que a Lei de Moore tem a ver com a modelagem de sistemas de software?
14
UNIDADE I INTRODUÇÃO
O rápido crescimento da capacidade computacional das máquinas resultou na 
demanda por sistemas de software cada vez mais complexos, que tirassem proveito de 
tal capacidade. O surgimento desses sistemas complexos resultou na necessidade de 
reavaliação da forma de se desenvolver sistemas. Em função disso, desde o aparecimento 
do primeiro computador até os dias de hoje, as técnicas utilizadas para a construção 
de sistemas computacionais têm evoluído de forma impressionante principalmente no 
que diz respeito à modelagem de sistemas (BEZERRA, 2015).
A seguir, é apresentado um breve resumo histórico da evolução das técnicas de 
desenvolvimento de acordo com BEZERRA (2015):
 » Décadas de 1950/1960: os sistemas de software eram bastante 
simples. O desenvolvimento desses sistemas era feito de forma “ad-hoc”. 
Os sistemas eram significativamente mais simples e, consequentemente, 
as técnicas de modelagem também eram mais simples: era a época dos 
fluxogramas e dos diagramas de módulos;
O termo ad-hoc significa neste contexto “direto ao assunto” ou “direto ao que 
interessa”. Talvez o uso desse termo denote a abordagem dessa primeira fase 
do desenvolvimento de sistemas, na qual não havia um planejamento inicial. 
O código-fonte do programa a ser construído era ele próprio o modelo.
 » Década de 1970: nesta época, computadores mais avançados e 
acessíveis começaram a surgir. Houve uma grande expansão do mercado 
computacional. Sistemas mais complexos começavam a surgir. Por 
conseguinte, modelos mais robustos foram propostos. Neste período, 
surgem a programação estruturada e o projeto estruturado;
 » Década de 1980: nesta fase, os computadores se tornaram ainda mais 
avançados e baratos. Surge à necessidade por interfaces mais sofisticadas, 
o que originou a produção de sistemas de softwares mais complexos. 
O paradigma de modelagem estruturada surgiu no início desse período;
 » Início da década de 1990: este é o período em que surge um novo 
paradigma de modelagem, o paradigma da orientação a objetos (conceito 
que será abordado nos próximos capítulos);
 » Fim da década de 1990: o paradigma da orientação a objetos atinge 
sua maturidade. Os conceitos de padrões de projeto, frameworks, 
componentes e qualidade começam a ganhar espaço. Surge a Linguagem 
15
INTRODUÇÃO I UNIDADE I
de Modelagem Unificada (UML) (conceito que será abordado nos 
próximos capítulos).
1. Dê o conceito de modelo no processo de desenvolvimento de software.
2. Quais são as razões para a utilização de modelos para a construção de 
sistemas de software?
3. Cite os quatro princípios básicos da modelagem.
4. Explique com suas palavras o histórico da evolução das técnicas de 
desenvolvimento de sistemas.
5. Pesquise e responda: Após a década de 1990 surgiram novas técnicas 
de desenvolvimento de software? Quais? Explique.
16
CAPÍTULO 2
Introdução à orientação a objetos
A construção de um sistema de software consiste, normalmente, no mapeamento do 
problema a ser resolvido no mundo real (o espaço do problema) em um modelo de 
solução no espaço de soluções, ou seja, o meio computacional. A modelagem envolve, 
então, a identificação de objetos e operações relevantes no mundo real e o mapeamento 
desses em representações abstratas no mundo computacional. 
A distância existente entre o problema no mundo real e o modelo abstrato construído, 
convencionou-se chamar gap semântico e, obviamente, quanto menor ele for, mais 
direto será o mapeamento e, portanto, mais rapidamente serão construídas soluções 
para o problema. Sob essa ótica, diversas técnicas e métodos têm sido propostos para as 
diferentes fases do processo de desenvolvimento de software, buscando minimizar esse 
problema. Um exemplo indispensável e o paradigma da orientação a objetos.
Há alguns anos, Alan Key, um dos pais da orientação a objetos, pensou em como 
construir um sistema de software a partir de agentes autônomos que interagem entre 
si. Com isso, ele estabeleceu os seguintes princípios da orientação a objetos (BEZERRA, 
2015):
1. qualquer coisa é um objeto;
2. objetos realizam tarefas por meio da requisição de serviços a outros 
objetos;
3. cada objeto pertence a uma determinada classe. Uma classe agrupa 
objetos similares;
4. a classe é um repositório para comportamento associado ao objeto;
5. classes são organizadas em hierarquias.
O paradigma de orientação a objetos visualizaum sistema de software como uma coleção 
de agentes interconectados chamados objetos. Cada objeto é responsável por realizar 
tarefas específicas. Para cumprir com algumas das tarefas sob sua reponsabilidade, um 
objeto pode ter que interagir com outros objetos. É pela interação entre objetos que 
uma tarefa computacional é realizada (BEZERRA, 2015).
17
INTRODUÇÃO I UNIDADE I
É o paradigma de orientação a objetos que os seres humanos utilizam no 
cotidiano para a resolução de problemas, uma pessoa atende a mensagens 
(requisições) para realizar um serviço; essa mesma pessoa envia mensagens a 
outras para que elas realizem serviços. Por que não aplicar essa mesma forma de 
pensar à modelagem de sistemas?
A orientação a objetos oferece um número de conceitos bastante apropriados para a 
modelagem de sistemas. Os modelos baseados em objetos são úteis para a compreensão 
de problemas, para a comunicação com os especialistas e usuários das aplicações, e 
para a realização das tarefas ao longo do ciclo de desenvolvimento de software.
A orientação a objetos, como técnica para modelagem de sistemas, diminui a 
diferença semântica entre a realidade modelada e os modelos construídos.
Vantagens/benefícios da orientação a objetos
A utilização do paradigma da orientação a objetos apresenta uma série de vantagens, 
cada vez mais necessárias no atual desenvolvimento de sistemas computacionais. Entre 
tais vantagens, podem ser destacadas as seguintes (CORREIA; TAFNER, 2006):
 » Gap semântico reduzido: o mundo real é composto por objetos, 
e o mesmo ocorre com o mundo computacional, facilitando assim a 
compreensão; 
 » Centralização de dados e funções: os dados e as funções são 
centralizados em uma única unidade, o objeto; 
 » Reutilização: o conceito de herança em orientação a objetos (conceito 
que será visto mais adiante), permitindo um ganho significativo de tempo 
e custo; 
 » Modularização: não só no que se refere aos pacotes, mas principalmente 
ao tratamento de classes; 
 » Compatibilidade: os modelos desenvolvidos (análise, projeto e 
programação) são claramente relacionados e complementares;
 » Manutenibilidade: as classes centralizam os dados e funções daquilo 
que tratam, ficando mais fácil localizar os pontos necessários em uma 
manutenção, evitando parcialmente o verdadeiro efeito “bola de neve” 
que uma manutenção mal planejada pode causar;
18
UNIDADE I INTRODUÇÃO
 » Ocultamento de Informação: uma classe enxerga apenas a interface 
de outra classe, o que evita vários erros acidentais.
Além dessas vantagens, um grande benefício da orientação a objetos consiste em reunir 
em uma mesma estrutura dos dados e processos que são executados sobre esses dados, 
permitindo assim um maior grau de organização e simplicidade do sistema de software.
Princípios básicos da orientação a objetos
Conforme dito, a orientação a objetos é um paradigma de análise, projeto e programação 
de sistemas de software baseado na composição e interação entre diversas unidades 
de software chamadas objetos. Esses objetos do sistema representam instâncias das 
entidades existentes no mundo real (do domínio do sistema), descritas por meio de 
classes que englobam atributos, operações e relacionamentos.
Os principais objetivos da orientação a objetos são:
 » diminuir a distância conceitual entre o mundo real (domínio do problema) 
e o modelo abstrato de solução (domínio da solução); 
 » trabalhar com noções intuitivas (objetos e ações) durante todo o ciclo de 
vida, atrasando, ao máximo, a introdução de conceitos de implementação.
Segundo os autores Coad e Yourdon (1993), a abordagem da orientação a objetos segue 
cinco princípios básicos de administração da complexidade e modelagem de domínio 
e projeto:
 » Abstração: é relativo à diminuição da atenção em aspectos menos 
importantes e ao aumento da percepção do que é realmente relevante em 
um determinado aspecto do mundo real. Abstração é também definido 
como um conceito que englobe atributos e serviços referentes a um 
determinado propósito;
 » Encapsulamento: a ideia do encapsulamento está ligada à ocultação 
dos detalhes de implementação de um determinado objeto do sistema. 
O encapsulamento ajuda a minimizar o trabalho de desenvolvimento de 
um novo sistema, pois se torna mais fácil utilizar partes do programa 
de forma isolada. Estas partes refletem a modelagem de requisitos 
específicos do projeto, com interfaces para serviços de interesse de outras 
partes do projeto;
19
INTRODUÇÃO I UNIDADE I
 » Herança: o conceito de herança está centrado na ideia de organizar uma 
taxonomia entre as classes do domínio, evidenciando as semelhanças 
entre classes em relação a atributos e serviços;
 » Associação: as associações presentes nessa abordagem têm como 
princípio explicitar a relação entre abstrações do mundo real. Pode-se 
dizer, inclusive, que a hierarquia é um tipo de associação, comumente 
chamada de generalização ou especialização;
 » Comunicação com mensagens: é a maneira pela qual os objetos 
do sistema se comunicam, já que de acordo com os princípios gerais 
da abordagem orientada a objetos, os objetos podem realizar ou obter 
serviços de outros objetos que encapsulam aspectos complexos do 
sistema.
Um bom resumo do que pode ser considerado um sistema orientado a objeto: 
“Um sistema construído usando um método orientado a objetos é aquele cujos 
componentes são partes encapsuladas de dados e funções, que podem herdar 
atributos e comportamento de outros componentes da mesma natureza, e 
cujos componentes comunicam-se entre si por meio de mensagens” (COAD; 
YOURDAN, 1993).
1. O que é o paradigma de orientação a objetos? Quais os seus princípios.
2. Cite 4 vantagens da utilização do paradigma de orientação a objetos 
para a modelagem de sistemas de software.
3. Quais são os principais objetivos da orientação a objetos?
4. Cite os cinco princípios básicos da orientação a objetos para a 
administração da complexidade na modelagem de sistemas.
5. Considere o mapa de uma cidade que mostra rodovias e prédios em 
que esconde prédios. Um mapa pode ser considerado um modelo? Por 
quê? Discuta as características desse mapa com relação ao princípio 
de Abstração.
20
UNIDADE II
PRINCIPAIS CONCEITOS 
DA ORIENTAÇÃO A 
OBJETOS
CAPÍTULO 1
Objetos e classes
O mundo real é formado de coisas. Como exemplos dessas coisas, pode-se citar um 
cliente, uma loja, uma venda, um pedido de compra, um fornecedor etc. Na terminologia 
de orientação a objetos, essas coisas do mundo real são denominadas “objetos” 
(BEZERRA, 2015). Do ponto de vista da modelagem de sistemas, um objeto é uma 
entidade que incorpora uma abstração relevante non contexto de uma aplicação. 
Um objeto possui um “estado” (informação), exibe um “comportamento” bem definido, 
expresso por um número de operações para examinar ou alterar o estado, e tem 
“identidade” única. Em outras palavras, um objeto é algo que precisa ser representado 
computacionalmente e que tem propriedades próprias, um comportamento e uma 
identidade única.
Figura 1. Um objeto possui estado, exibe algum comportamento bem definido e possui identidade própria 
(BOOCH, 1994).
21
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
O estado de um objeto compreende o conjunto de suas propriedades, associadas 
a seus valores correntes. Propriedades de objetos, são geralmente referenciadas 
como atributos e, portanto, o estado de um objeto diz respeito aos seus atributos 
e aos valores a eles associados. (BOOCH, 1994).
A comunicação entre objetos dá-se por meio de troca de “mensagens”. Para acessar a 
informação de estado de um objeto, é necessário enviar uma mensagem para ele. Uma 
mensagem consiste do nome de uma operação e os argumentos requeridos. Assim, o 
comportamento de um objeto representa como este objeto reage às mensagens a ele 
enviadas.
O conjunto de mensagens o que um objeto pode responder representa 
seu comportamento. Um objeto é, pois, uma entidade que tem seu estadorepresentado por um conjunto de atributos (uma estrutura de informação) e seu 
comportamento representado por um conjunto de operações. (BOOCH, 1994).
Figura 2. Objetos interagem por meio do envio de mensagens.
 
Objet
Objet
Objet
Objet
Objet Objet
Cada objeto tem uma identidade própria, que lhe é inerente. Todos os objetos 
têm existência própria, ou seja, dois objetos são distintos mesmo se seu estado e 
comportamento forem iguais. No mundo real, um objeto limita-se a existir, mas, no 
que se refere ao mundo computacional, cada objeto dispõe de um identificador único 
pelo qual pode ser referenciado inequivocamente.
Seres humanos costumam agrupar objetos. Provavelmente, realizam esse processo 
mental de agrupamento para tentar gerenciar a complexidade de entender as coisas 
do mundo real. De fato, é bem mais fácil entender a ideia martelo do que entender 
todos os martelos que existem. Na terminologia da orientação a objetos, cada ideia é 
denominada “classe de objetos”, ou simplesmente “classe”. Uma classe é a descrição 
dos atributos e serviços comuns a um grupo de objetos. Sendo assim, pode-se entender 
uma classe como sendo um molde a partir do qual objetos são construídos. 
22
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
Ainda sobre terminologia, diz-se que um objeto é uma “instância” de uma classe 
(BEZERRA, 2015).
A ênfase da orientação a objetos é dada na criação das classes, e não dos objetos, 
como se poderia pensar pelo nome.
É importante notar que, classe é uma abstração das características de um grupo de coisas 
do mundo real. Na maioria das vezes, as coisas do mundo real são muito complexas 
para que todas as suas características sejam representadas em uma classe. Além disso, 
para fins de modelagem de um sistema, somente um subconjunto de características 
pode ser relevante. Portanto, uma classe representa uma abstração das características 
relevantes do mundo real (BEZERRA, 2015).
Pressman (2006) classifica e mostra exemplos de objetos relacionados com 
sistemas de software. São eles:
 » entidades externas: (outros sistemas, dispositivos, pessoas etc.) que 
produzem ou consomem informação para ser usada por meio de um 
sistema de software; 
 » coisas: (relatórios, displays, sinais, letras etc.) que são partes do domínio 
da informação para o problema; 
 » ocorrências ou eventos: (uma transferência de propriedade, o aspecto 
dos movimentos de robôs etc.) que ocorrem dentro do contexto da 
operação do sistema; 
 » papéis: (gerente, engenheiro, vendedor etc.) executados por pessoas 
que interagem com o sistema; 
 » unidades organizacionais: (divisões, grupos, times etc.) que são 
relevantes para o sistema; 
 » locais: (chão de fábrica, locais de carga etc.) que estabelecem o 
contexto do problema e as funções gerais do sistema; 
 » Estruturas: (sensores, computadores, veículos etc.) que definem uma 
classe de objetos ou, no extremo, classes relacionadas de objetos.
23
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
Mensagens e métodos
A abstração incorporada por um objeto é caracterizada por um conjunto de operações que 
podem ser requisitadas por outros objetos, ditos clientes. Métodos são implementações 
reais de operações. Para que um objeto realize alguma tarefa, é necessário enviar a ele 
uma mensagem, solicitando a execução de um método específico. Um cliente só pode 
acessar um objeto por meio da emissão de mensagens, isto é, ele não pode acessar ou 
manipular diretamente os dados associados ao objeto. Os objetos podem ser complexos 
e o cliente não precisa tomar conhecimento de sua complexidade interna. O cliente 
precisa saber apenas como se comunicar com o objeto e como ele reage.
Embora existam diferentes tipos de operações, elas podem ser divididas em três 
categorias (PRESSMAN, 2002):
 » operações que manipulam dados;
 » operações que executam cálculos computacionais;
 » operações que monitoram um objeto para ocorrência de um evento de 
controle.
Conforme dito anteriormente, as mensagens são o meio de comunicação entre objetos 
e são responsáveis pela ativação de todo e qualquer processamento. Dessa forma, é 
possível garantir que clientes não serão afetados por alterações nas implementações de 
um objeto que não alterem o comportamento esperado de seus serviços. Vale lembrar 
que uma mensagem estimula a ocorrência de algum comportamento no objeto receptor 
da mesma e o comportamento é estabelecido quando uma operação é executada.
Diferencie objeto, classe e instância.
1. Para atender às necessidades de informação de uma biblioteca 
universitária. Identifique os possíveis objetos/classes para esse sistema 
e como eles trocam mensagens entre si
24
CAPÍTULO 2
Abstração, encapsulamento, herança e 
polimorfismo
O mundo real é extremamente complexo. Tal complexidade pode ser percebida ao 
analisar os detalhes de tal mundo, mesmo que concentrando em algum objeto em 
particular. Essa característica é transferida para o mundo computacional, quando da 
criação de uma solução computadorizada para um problema do mundo real. Alguns 
dos elementos fundamentais na geração desta complexidade são:
 » a complexidade do próprio domínio do problema; 
 » a dificuldade no gerenciamento do processo de desenvolvimento do 
sistema necessário;
 » o leque de variadas soluções que podem ser encontradas no projeto do 
sistema. 
A orientação a objetos procura administrar essa complexidade por meio de uma série 
de conceitos, conforme introduzido em capítulos anteriores, tais como abstração, 
encapsulamento, polimorfismo e herança, os quais são descritos a seguir.
Abstração
Uma das principais formas do ser humano lidar com a complexidade e por meio do 
uso de abstrações. As pessoas geralmente tentam compreender o mundo construindo 
modelos mentais de partes dele. Tais modelos são uma visão simplificada de algo, dos 
quais apenas elementos relevantes são considerados. Modelos mentais, portanto, são 
mais simples do que os complexos sistemas que eles modelam. 
Considerando, por exemplo, um mapa como um modelo do território que ele representa. 
Um mapa é útil porque abstrai apenas aquelas características do território que se deseja 
modelar. Se um mapa incluísse todos os detalhes do território, provavelmente teria o 
mesmo tamanho do território e, portanto, não serviria a seu propósito. 
Da mesma forma que um mapa precisa ser significativamente menor que o território 
que mapeia, incluindo apenas informações cuidadosamente selecionadas, um 
modelo mental abstrai apenas as características relevantes de um sistema para seu 
entendimento. Assim, pode-se definir abstração como sendo o princípio de ignorar 
25
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
aspectos não relevantes de um assunto, segundo a perspectiva de um observador, 
tornando possível uma concentração maior nos aspectos principais do mesmo. 
De fato, a abstração consiste na seleção que um observador faz de alguns aspectos de um 
assunto, em detrimento de outros que não demonstram ser relevantes para o propósito 
em questão, ou seja, a abstração é aplicada de acordo com o interesse do observador, e 
por isso de um mesmo objeto pode-se ter diferentes visões, como demonstra a Figura 3. 
Figura 3. A abstração enfoca as características essenciais de um objeto.
Fonte: (BOOCH,1994)
Uma abstração é qualquer modelo que inclui os aspectos mais importantes 
(essenciais) de alguma coisa, ao mesmo tempo em que ignora os detalhes menos 
importantes. Abstrações permitem gerenciar a complexidade e concentrar a 
atenção nas características essenciais de um objeto. Note que uma abstração é 
dependente da perspectiva: o que é importante em um contexto pode não ser 
importante em outro (BEZERRA, 2015).
Encapsulamento
No mundo real, um objeto pode interagir com outro sem conhecer seu funcionamento 
interno. Uma pessoa, por exemplo, geralmente utiliza uma televisão sem saber 
efetivamente qual a sua estrutura interna ou como seus mecanismos internossão 
ativados. Para utilizá-la, basta saber realizar algumas operações básicas, tais como ligar/
desligar a televisão, mudar de um canal para outro, regular volume, cor etc. Como estas 
operações produzem seus resultados, mostrando um programa na tela, não interessa 
ao telespectador.
26
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
O mecanismo de “encapsulamento” é uma forma de restringir o acesso ao comportamento 
interno de um objeto. Um objeto que precise da colaboração de outro objeto para 
realizar alguma tarefa simplesmente envia uma mensagem a este último. 
O método que o objeto requisitado usa para realizar a tarefa não é conhecido dos objetos 
requisitantes (BEZERRA, 2002). 
Certamente, o objeto requisitante precisa conhecer quais as tarefas que outro objeto 
sabe fazer ou que informação ele conhece. Para tanto, a classe de um objeto descreve 
o seu comportamento. Na terminologia da orientação a objetos, diz-se que um objeto 
possui uma “interface” (Figura 4). 
Em termos bastantes simples, a interface de um objeto é O QUE ele conhece e o 
que ele sabe fazer, sem descrever COMO o objeto o faz. A interface de um objeto 
define os serviços que ele pode realizar e consequentemente as mensagens que 
ele recebe. Uma interface pode ter várias formas de implementação. Mas, pelo 
Princípio do Encapsulamento, a implementação de um objeto requisitado não 
importa para um objeto requisitante (BEZERRA, 2015).
Figura 4. Princípio do encapsulamento: visto externamente, o objeto é a sua interface.
Fonte: (BEZERRA, 2015).
Mediante o encapsulamento, a única coisa que um objeto precisa saber para pedir 
a colaboração de outro objeto é conhecer a sua interface. Isso contribui para a 
autonomia dos objetos. Cada objeto envia mensagens a outros objetos para realizar 
certas tarefas, sem se preocupar em como as tarefas são realizadas. A aplicação da 
abstração, neste caso, está em esconder os detalhes de funcionamento interno de um 
objeto (BEZERRA, 2015).
27
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
Figura 5. O encapsulamento oculta os detalhes de implementação de um objeto.
Fonte: (BOOCH,1994).
Abstração X encapsulamento
Abstração e encapsulamento são conceitos complementares: enquanto 
a abstração enfoca o comportamento observável de um objeto (o que se 
deve mapear), o encapsulamento enfoca a implementação que origina esse 
comportamento (como realizar a abstração). Encapsulamento é frequentemente 
conseguido por meio do ocultamento de informação, ou seja, escondendo 
detalhes que não contribuem para suas características essenciais. Geralmente, 
em um sistema orientado a objetos, a estrutura de um objeto, e a implementação 
de seus métodos, são encapsuladas (BOOCH, 1994).
A principal motivação para o encapsulamento é facilitar a reutilização de objetos e 
garantir estabilidade aos sistemas. Um encapsulamento bem feito pode servir de base 
para a localização de decisões de projeto que necessitam ser alteradas. Uma operação 
pode ter sido implementada de maneira ineficiente e, portanto, pode ser necessário 
escolher um novo algoritmo. Se a operação está encapsulada, apenas o objeto que a 
define precisa ser modificado, garantindo estabilidade ao sistema.
Herança
A herança é outra forma de abstração utilizada na orientação a objetos. As características 
e o comportamento comuns a um conjunto de objetos podem ser abstraídos em uma 
classe. A herança pode ser vista comum nível de abstração acima da encontrada entre 
classes e objetos (BEZERRA, 2002).
O conceito de herança na orientação a objetos lembra o conceito de herança 
genética, na qual um elemento descendente herda as características de um 
elemento ancestral.
28
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
Na herança, classes semelhantes são agrupadas em hierarquias (ver Figura 6). Cada 
nível de uma hierarquia pode ser visto como um nível de abstração. Cada classe em um 
nível da hierarquia herda as características das classes nos níveis acima. Esse mecanismo 
facilita o compartilhamento de comportamento comum entre um conjunto de classes 
semelhantes. Além disso, as diferenças ou variações de uma classe em particular podem 
ser organizadas de forma mais clara (BEZERRA, 2002).
Figura 6. Princípio da herança: classes podem ser organizadas em hierarquias. 
 
FIGURA 
FIGURA LINHA 
é um tipo é um tipo 
QUADRADO CÍRCULO
é um tipo é um tipo 
Maior 
abstração 
Menor 
abstração 
Fonte: Adaptada de (BEZERRA, 2015).
De acordo com o exemplo da Figura 6, pode-se dizer que a classe “Figura Geométrica” 
é subclasse (descendente ou filha) da classe “Figura” e superclasse (ancestral) da classe 
“Quadrado”.
Um conjunto de abstrações frequentemente forma uma hierarquia e, pela 
identificação dessas hierarquias, é possível simplificar significativamente o 
entendimento sobre um problema (BOOCH, 1994). Em suma, hierarquia é uma 
forma de arrumar as abstrações.
Formas de herança
Há dois tipos de herança na orientação a objetos: simples e múltipla. A herança é 
denominada “simples” quando uma classe herda características de apenas uma 
superclasse. Por exemplo, pode-se ter como superclasse uma classe chamada Pessoa, e 
dela derivar uma subclasse chamada Funcionário. Esta nova classe, Funcionário, herda 
todas as características da sua superclasse Pessoa, e de mais nenhuma outra. Nada 
impede, entretanto, que uma mesma superclasse gere mais de uma subclasse. 
Por exemplo, uma superclasse Pessoa pode gerar uma subclasse Cliente da mesma 
forma que pode gerar uma subclasse Funcionário, conforme mostrado na Figura 7.
29
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
Figura 7. Herança simples com dois descendentes.
 
PESSOA 
FUNCIONÁRIO CLIENTE 
é um tipo é um tipo 
A herança é denominada múltipla quando uma classe herda características de duas ou 
mais superclasses. Usando o exemplo do Funcionário e do Cliente, deve-se estar atento 
para o fato de que um funcionário pode vir a ser um cliente também. Para tanto, o que 
pode ser feito é criar uma nova subclasse clamada Funcionário-Cliente, que tem como 
superclasses as classes Funcionário e Cliente, conforme mostrado na Figura 8. Esta 
nova classe, Funcionário-Cliente, herda todas as características de Pessoa, Funcionário 
e Cliente.
Figura 8. Herança múltipla.
 
PESSOA 
FUNCIONÁRIO CLIENTE 
é um tipo de é um tipo de 
FUNCIONÁRIO-CLIENTE 
é um tipo de é um tipo de 
Polimorfismo
Polimorfismo é a propriedade de uma ou mais classes responderem a mesma mensagem, 
cada uma de uma forma diferente. Uma mesma mensagem pode apresentar formas de 
execução diferentes, próprias de cada objeto. Um exemplo de polimorfismo é mostrado 
na Figura 9. Cavalo e gato são tipos de mamífero e emitir som é uma ação que todos eles 
fazem, só que cada um de uma forma diferente.
O polimorfismo é uma característica da orientação a objetos que está diretamente 
ligada à herança. Pode-se dizer que uma operação (método) que já foi definida 
no ancestral redefinido no descendente com um comportamento diferente.
30
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
Figura 9. Exemplo de polimorfismo.
 
MAMÍFERO 
CAVALO GATO 
é um tipo de é um tipo de 
emitir som 
1. Diferencie herança e polimorfismo e mostre exemplos para cada um 
deles.
31
CAPÍTULO 3
Agregação/composição e 
generalização/especialização
Em qualquer sistema os objetos se comunicam, trocando mensagens. Em sistemas 
não triviais, geralmente, existe uma quantidade razoável de objetos e classes e há 
necessidade de gerenciar tais elementos. Assim, é preciso estruturar as classes. 
Vários mecanismos têm sido propostos nesse sentido, alguns deles são apresentados 
a seguir.
Generalização/especialização
Muitas vezes, um conceito geral pode ser especializado, adicionando-se novas 
características. Da maneira inversa, pode ser extraído de um conjunto de conceitos, 
características comuns que, quando generalizadas, formam um conceito geral. 
As abstraçõesde especialização e generalização estão estritamente relacionadas com 
o princípio de Herança apresentado anteriormente. Com elas, é possível construir 
hierarquias de classes, subclasses, subsultasses, e assim por diante.
Nesse sentido, a generalização permite generalização permite abstrair, a partir de um 
conjunto de classes, uma classe mais geral contendo todas as características comuns. 
A especialização é a operação inversa e, portanto, permite especializar uma classe em 
um número de subclasses, explicitando as diferenças entre as novas subclasses. Deste 
modo é possível compor a hierarquia de classes. Esses tipos de relacionamento são 
conhecidos também como relacionamentos “é um tipo de”, onde um objeto da subclasse 
também “é um tipo de” objeto da superclasse. Neste caso uma instância da subclasse é 
dita uma instância indireta da superclasse.
Para mostrar um exemplo da aplicação da estrutura generalização/especialização será 
usado o mesmo exemplo apresentado nas formas de herança, aquele que trata das 
classes Pessoa, Funcionário e Cliente. Nesse caso, tem-se a classe Pessoa como a mais 
alta classe generalizada, sendo então a superclasse da estrutura. 
Abaixo dela encontram-se as suas subclasses, Funcionário e Cliente, que nada mais 
são que especializações da classe Pessoa. A Figura 10 identifica a classe genérica e as 
abstrações.
32
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
Figura 10. Exemplo de uma estrutura generalização/especialização.
 
PESSOA 
Nome 
RG 
CPF 
FUNCIONÁRIO 
Matrícula 
Salário 
CLIENTE 
Limite Crédito 
Preferências 
Fonte: Autor.
Resumindo os conceitos complementares de hierarquia, herança, generalização e 
especialização:
 » hierarquia: mecanismo para organização de classes que se relacionam de 
maneira estruturada e ordenada, em níveis;
 » herança: mecanismo que permite que uma subclasse herde características 
de sua superclasse;
 » generalização: mecanismo que permite extrair conceitos comuns de 
várias classes, posicionando-os em um local comum e compartilhado, a 
superclasse;
 » especialização: mecanismo que permite especializar um conceito comum, 
refinando características, por meio de adição e/ou modificação de itens, 
criando diferentes subclasses.
Agregação/composição
Uma forma especial de relacionamento entre objetos é a composição ou agregação. 
Parte do poder dos softwares orientados a objetos advém de sua habilidade de 
manipular objetos complexos, como sendo compostos de vários outros objetos mais 
simples. Um carro, por exemplo, é composto por motor, rodas, carroceria etc. 
Um motor, por sua vez, é composto de bloco, válvulas, pistões, e assim por diante.
33
PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS │ UNIDADE II
Nesse sentido, composição é o relacionamento todo-parte/uma-parte-de onde os 
objetos representando os componentes de alguma coisa são associados a um objeto 
representando o todo. Em outras palavras, a composição é um tipo forte de associação, 
do qual um objeto agregado é composto de vários objetos componentes.
A principal diferença entre composição e agregação é que a composição é 
ainda um tipo mais forte de agregação. Na agregação, um objeto-parte pode 
continuar existindo mesmo com a exclusão do objeto-todo. Por exemplo, carro 
e motor. Ao se excluir o objeto-todo, basta excluir os relacionamentos dele com 
os objetos-parte. Na composição um objeto-parte não continua existindo se o 
objeto-todo for excluído. Por exemplo, nota fiscal e item de nota fiscal. Ao se 
excluir o objeto-todo, devem excluir os objetos-parte a ele associados.
Um bom exemplo para ilustrar a composição/agregação pode ser a relação entre um 
carro e seus componentes, conforme mostrado na Figura 11. O carro tratado como um 
objeto pode ser decomposto em diversos outros objetos, como o motor, as rodas, o 
painel, o banco, as portas etc. Pode-se seguir com a decomposição e avançar sobre o 
motor, que pode ser dividido em distribuidor, carburador etc. Portanto, percebe-se que 
um objeto mais complexo, muitas vezes, nada mais é que um agregado de diversos 
outros objetos mais simples.
Figura 11. Exemplo de uma estrutura agregação/composição.
 
CARRO 
 
MOTOR 
 
RODA 
Fonte: Autor.
34
UNIDADE II │ PRINCIPAIS CONCEITOS DA ORIENTAÇÃO A OBJETOS
Agregação/composição também possui outro componente, a cardinalidade, 
que significa quantos elementos fazem parte da estrutura. Por exemplo, o carro 
possui quatro rodas (cinco para o caso do estepe), que sob o ponto de vista da 
análise, são todas iguais, ou seja, cada roda é igual à outra. Assim, uma roda como 
objeto se repete de quatro a cinco vezes dentro do objeto carro. Estendendo a 
cardinalidade também ao motor do carro exemplo, tem-se uma relação de 0-1 
do motor com o carro, e de 1-1 do carro para com o motor. Em outras palavras, 
o motor pode estar em nenhum ou um carro, e o carro deve ter no mínimo um 
motor e no máximo um também. Não se tem visto até o momento carro com 
dois motores, mas certamente existem vários motores sem carro (em oficinas 
mecânicas, por exemplo).
1. Mostre exemplos de agregação/composição e especialização/
generalização.
35
UNIDADE IIIMODELAGEM DE 
SISTEMAS COM UML
CAPÍTULO 1
Introdução à UML: histórico e conceitos
Breve histórico da UML
Considerando a evolução histórica da modelagem de sistemas apresentado no Capítulo 
2 da Unidade I, um detalhamento da primeira metade da década de 1990, mostra 
que surgiram várias propostas de técnicas para modelagem de sistemas segundo o 
paradigma orientado a objetos. O quadro 1 lista algumas das técnicas existentes durante 
esse período, do qual nota-se uma grande proliferação de propostas para a modelagem 
de orientada a objetos. Era comum duas técnicas possuírem diferentes notações gráficas 
para modelar uma mesma perspectiva de um sistema. 
Ao mesmo tempo, cada técnica tinha seus pontos fortes e fracos em relação à notação 
utilizada (BEZERRA, 2015).
A essa altura percebeu-se a necessidade da existência de uma linguagem que viesse a se 
tornar um padrão para a modelagem de sistemas, que fosse aceita e utilizada amplamente 
pela indústria e pelos ambientes acadêmicos. Surgiram, então, alguns esforços nesse 
sentido de padronização, o que resultou na definição da UML (Unified Modeling 
Language) em 1996, como a melhor candidata para ser a linguagem “unificadora” 
de notações, diagramas e formas de representação existentes em diferentes técnicas 
(BEZERRA, 2015).
Embora a concepção da UML tenha sido influenciada por vários métodos de análise 
e projeto orientados a objeto, há particularmente três notações das quais a UML é 
derivada: BoochMethod, OMT e OOSE (conforme mostrado no quadro 1). Estes eram, 
até meados da década de 1990, os métodos de modelagem orientada a objetos mais 
populares entre os profissionais da área de desenvolvimento de software. A notação 
definida para UML é, então, uma união de diversas notações preexistentes, com alguns 
36
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
elementos removidos e outros elementos adicionados com o objetivo de torná-la 
expressiva.
Quadro 1. Principais propostas de técnicas de modelagem orientada a objetos durante a década de 1990.
ANO AUTOR (TÉCNICA)
1990 Shaler & Mellor.
1991 Coad & Yourdon (OOAD – Object-Oriented Analysis and Design).
1993 GradyBooch (BoochMethod).
1993 Ivar Jacobson (OOSE – Object-Oriented Software Engineering).
1995 James Rumbaugh et al (OMT – Object Modeling Technique).
1996 Wirfs-Broock (Responsability Driven Design)
1996 (Fusion).
Fonte: Adaptada de Bezerra (2015).
Em 1997, a OMG (Object Management Group) tornou a UML uma linguagem 
de modelagem padrão para aplicações orientadas a objeto. A importância dessa 
padronização está no fato de que a OMG possui mais de 800 filiados, incluindo empresas 
como IBM, HP, Borland etc. Ou seja, os principais softwares utilizados são modelados 
e idealizados por meio da UML (MATOS, 2002).
A versão 2.0 da UML foi oficialmente lançada emjulho de 2005 e a definição completa 
da UML está contida na Especificação da Linguagem de Modelagem Unificada da 
OMG. Essa especificação pode ser obtida gratuitamente no site da OMG, disponível 
em: <www.omg.org>.
Conceitos da UML
A UML é uma linguagem visual para modelar sistemas orientados a objeto. Isso 
quer dizer que a UML é uma linguagem constituída de elementos gráficos (visuais) 
utilizados na modelagem que permitem representar os conceitos do paradigma da 
orientação a objetos. Por meio dos elementos gráficos definidos nesta linguagem podem 
ser construidos diagramas que representam diversas perspectivas de um sistema 
(BEZERRA, 2015).
Cada elemento gráfico possui uma sintaxe (ou seja, uma forma predeterminada 
de desenhar o elemento) e uma semântica que definem o que significa o elemento e 
para quê ele deve ser utilizado. Além disso, conforme descrito mais adiante, tanto à 
sintaxe quanto a semântica da UML são extensíveis. Essa extensibilidade permite que 
a UML seja adaptada às características específicas de casa projeto de desenvolvimento 
(BEZERRA, 2015).
37
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Por que a UML é uma linguagem? Realmente soa estranho dizer que a UML é uma 
linguagem, sabendo que sua função é bem parecida com a de outras ferramentas 
de modelagem, tais como o Diagrama de Fluxo de Dados (DFD), o Diagrama 
de Entidades e Relacionamentos (DER) etc. Obviamente que se questiona: “... 
quer dizer que esses outros diagramas também são uma linguagem? ” Uma 
linguagem (mesmo as do mundo da informática) deve seguir uma gramática (em 
que todos os elementos básicos de representação sejam indicados) e também a 
um conjunto de regras sintáticas, tal qual o idioma português. Talvez faltasse aos 
outros diagramas essa rigidez sintática em que outro diagrama (mesmo que no 
seu nível de abstração), devesse obedecer à sua sintática mantendo a semântica 
trazida de outro diagrama, ou seja, um diagrama, efetivamente, não se encaixava 
no outro, a não ser que se fizesse um grande esforço para enxergar, por exemplo, 
o que um DFD tem a ver com o seu respectivo DER. O esforço da UML é permitir 
que desde a representação das funções básicas do sistema (e seus respectivos 
responsáveis) até o planejamento da arquitetura de implementação, todo o 
processo aconteça de maneira coerente e com uma estreita ligação com o plano 
anterior (MATOS, 2002)
A UML é independente tanto de linguagens de programação quanto de processos de 
desenvolvimento. Isso quer dizer que, a UML pode ser utilizada para a modelagem de 
sistemas, não importa qual a linguagem de programação será utilizada na implementação 
do sistema, ou qual a forma (processo) de desenvolvimento adotada. 
Esse é um fator importante para a utilização da UML, pois diferentes sistemas de 
software requerem diferentes abordagens de desenvolvimento (BEZERRA, 2015). 
Mais detalhadamente, referem-se algumas das suas características:
 » é apenas uma sintaxe – a UML é apenas uma linguagem. Diz quais 
os elementos de modelagem, os diagramas disponíveis e as regras a eles 
associados. Não diz quais os diagramas a criar nem quando. Isso diz 
respeito à metodologia usada: Rational Unified Process (RUP), Feature 
Driven Development (FDD) etc.;
 » é abrangente – a UML pode ser usada para modelar uma grande 
variedade de sistemas e está concebida para poder ser atualizada de 
modo a satisfazer qualquer requisito de modelagem;
 » é independente da linguagem usada – a UML é independente da 
linguagem de alto nível a usar no código (Java, C++ etc.);
38
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
 » é independente do processo de criação dos modelos – o 
processo pelo qual os modelos são criados é independente da definição 
da linguagem. É necessário um processo desses além do uso da UML por 
si só;
 » linguagem bem documentada – o guia de notação da UML está 
disponível como referência para todas as sintaxes disponíveis na 
linguagem;
 » a sua aplicação não é rígida – o guia da notação UML não é suficiente 
para que se saiba usá-la, já que se trata de uma linguagem de modelagem 
genérica que por isso necessita de ser adaptada a cada situação em 
particular.
A UML é uma composição das boas características de outras notações de 
ferramentas direcionadas à orientação a objetos. Ou seja, a UML é aferra menta 
ideal para criar, compreender, testar, validar, arquitetar (lógica fisicamente) e 
ainda identificar todos os possíveis comportamentos do sistema, especialmente 
os sistemas orientados e objeto. Convém salientar que a orientação a objetos 
é o cerne da maioria dos sistemas construídos atualmente: desde os sistemas 
comerciais (baseados em componentes, eventos e hierarquias de formulários) 
até os complexos sistemas para Web. Em suma, o porquê de conhecer a UML 
está simplesmente relacionado à realidade do processo de desenvolvimento de 
software (MATOS, 2002).
Visões de um sistema com UML
O desenvolvimento de um sistema de software complexo de manda que seus 
desenvolvedores tenham a possibilidade de examinar e estudar esse sistema a partir de 
diversas perspectivas. Os autores da UML sugerem que um sistema pode ser descrito 
por cinco visões interdependentes desse sistema (BEZERRA, 2015). Cada visão enfatiza 
aspectos diferentes do sistema, são elas:
 » visão de casos de uso: descreve o sistema do ponto de vista externo 
comum como um conjunto de interações entre o sistema e os agentes 
externos ao sistema. Esta visão é criada inicialmente e direciona o 
desenvolvimento de outras visões do sistema;
39
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
 » visão de projeto: enfatiza as características do sistema que dão 
suporte, tanto estrutural quanto comportamental, às funcionalidades 
externamente visíveis do sistema;
 » visão de implementação: abrange o gerenciamento de versões do 
sistema, construídas por meio do agrupamento de módulos (componentes) 
e subsistemas;
 » visão de implantação: corresponde à distribuição física do sistema em 
seus subsistemas e à conexão entre essas partes;
 » visão de processo: esta visão enfatiza as características de concorrência 
(paralelismo), sincronização e desempenho do sistema.
Dependendo das características e da complexidade do sistema, nem todas as 
visões precisam ser construídas.
Vantagens da UML
Dentre as vantagens em se adotar a UML como ferramenta para a modelagem e 
documentação de sistemas, convém destacar (DEVMEDIA, 2015):
 » a UML foca na representação visual de diferentes elementos e aspectos 
de um software. Devido às suas características bastante intuitivas, 
esta linguagem permite uma compreensão mais rápida, assim como 
abrangente, de componentes e funcionalidades que fazem parte de uma 
aplicação;
 » sistemas extensos costumam apresentar relacionamentos complexos 
entre as diferentes partes que os compõem. Muitas vezes, a simples 
descrição textual de dependências entre os diversos recursos de uma 
aplicação pode ser confusa, não atingindo o resultado esperado e 
que é, basicamente, possibilitar uma clara compreensão sobre como 
tais elementos interagem. O uso de UML pode simplificar tal tarefa, 
permitindo a elaboração de diagramas à primeira vista simples, mas que 
resumem o difícil trabalho de descrever como classes e processos estão 
relacionados entre si;
 » desenvolvedores de diferentes plataformas podem compreender com 
mais facilidade as características de um sistema (independentemente da 
40
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
tecnologia na qual este foi concebido). Isto se deve ao fato da UML ser 
uma linguagem independente de plataforma, além de corresponder a um 
padrão de ampla aceitação dentro da área de software;
 » ainda considerando o item anterior, os modelos UML representam uma 
excelente ferramenta para a demonstração de conceitos de Orientação a 
Objetos, sobretudo no que se refere a explicações a respeito de padrões 
de projeto e outras soluções genéricas passíveis de reaproveitamento emnovos projetos;
 » a forte ênfase dada por esta linguagem à padronização também contribui, 
sem sombra de dúvidas, para um melhor desempenho das funções dentro 
dos times de implementação de projetos. Os diferentes profissionais 
envolvidos na codificação de uma aplicação têm na UML um meio que 
facilita a comunicação e a transmissão de ideias, partindo-se para isto da 
premissa de que todos contam com um conhecimento adequado desta 
linguagem.
Algumas questões devem ser ponderadas ao se adotar a UML para a geração de 
documentação em um projeto de software (DEVMEDIA, 2015):
 » em muitas situações será necessário sincronizar a documentação do 
projeto, atualizando diagramas elaborados em um estágio inicial para 
que contemplem as últimas mudanças efetuadas numa aplicação. Este 
tipo de atividade costuma consumir uma parcela significativa de tempo, 
devendo ser bem planejado a fim de evitar atrasos ou, até mesmo, ser 
deixado de lado por representar um processo relativamente trabalhoso;
 » é essencial que a construção de modelos UML priorize partes mais 
complexas ou críticas de um sistema. A documentação de funcionalidades 
e estruturas relativamente simples pode não agregar muito ao projeto, 
sendo desaconselhável investir tempo neste tipo de tarefa (quando o 
foco poderia justamente estar direcionado a elementos de uma maior 
importância dentro do contexto geral da aplicação);
 » a construção de modelos muito extensos pode dificultar a compreensão de 
determinados pontos de um sistema. A montagem de representações com 
um escopo mais reduzido pode ser a melhor opção em alguns momentos, 
visto que permite um melhor entendimento de alguns detalhes que 
passariam despercebidos em um diagrama abrangendo um contexto bem 
maior. 
41
CAPÍTULO 2
Introdução aos diagramas da UML
No geral, a UML abrange três tipos de blocos de construção: os itens (things), 
relacionamentos (relationships) e diagramas (diagrams).
Os itens são considerados como cidadãos de primeira classe, pois são a base para 
explicitação das entidades do mundo real. Os itens se dividem em:
 » itens estruturais: consistem em elementos conceituais ou físicos 
do modelo, ou seja, a representação estática das partes formadoras do 
domínio e do projeto. Os itens estruturais são compostos por classes (nós, 
componentes, classes ativas), interfaces, casos de uso e colaboração;
 » itens comportamentais: descrevem a parte dinâmica dos elementos 
do domínio e do projeto. Os itens comportamentais são compostos de 
interações (mensagens) e de máquinas de estado;
 » itens de agrupamento: descrevem a parte organizacional do modelo 
de domínio e de projeto. São notações que auxiliam a granularidade das 
relações e a sua decomposição. Os itens de agrupamento são compostos por 
apenas um item chamado pacote (package). Os pacotes possuem a tarefa 
de agrupar tantos os itens estruturais quanto os itens comportamentais;
 » itens anotacionais: são, basicamente, os comentários do modelo. 
Esses comentários são postos em retângulos chamados de notas. As notas 
podem ser aplicadas tanto a um item quanto a um agrupamento de itens. 
Os relacionamentos são as notações existentes para descrição de conexão conceitual, 
lógica ou física entre os itens.
Os diagramas consistem em uma representação gráfica de um conjunto de itens 
conectados por seus relacionamentos. Os diagramas servem para representar diferentes 
contextos e perspectivas.
A linguagem UML é composta por treze diagramas, classificados em diagramas 
estruturais e de comportamento. A Figura 12, apresenta a estrutura das categorias de 
diagramas utilizando a própria notação da UML (que será vista mais adiante).
42
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
Figura 12. Organização geral dos diagramas da UML.
 
<<abstract>> 
Diagrama Estrutural 
<<abstract>> 
Diagrama 
<<abstract>> 
Diagrama de Comportamento 
Os diagramas estruturais, ilustrados na Figura 13, tratam o aspecto estrutural tanto 
do ponto de vista do sistema quanto das classes. Existem para visualizar, especificar, 
construir e documentar os aspectos estáticos de um sistema, ou seja, a representação 
do seu esqueleto e estruturas “relativamente estáveis”. Os aspectos estáticos de um 
sistema de software abrangem a existência de itens como classes, objetos, pacotes e 
componentes.
Figura 13. Diagramas estruturais da UML. 
 
Diagrama de 
Classes 
<<abstract>> 
Diagrama Estrutural 
Diagrama de 
Pacotes 
Diagrama de 
Componentes 
Diagrama de Objetos Diagrama de Estrutura Composta 
Diagrama de 
Implantação 
Os diagramas de comportamento, ilustrados na Figura 14, são voltados a descrever o 
sistema modelado quando em execução, ou seja, a modelagem dinâmica do sistema. São 
usados para visualizar, especificar, construir e documentar os aspectos dinâmicos do 
sistema, ou seja, a representação das partes que “sofrem alterações”, como por exemplo, 
o fluxo de mensagens ao longo do tempo e a movimentação física de componentes em 
uma rede.
43
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Figura 14. Diagramas de comportamento da UML.
 
<<abstract>> 
Diagrama Estrutural 
<<abstract>> 
Diagrama de Interação 
Diagrama de Casos de 
Uso
Diagrama de Máquina de 
Estados
Diagrama de 
Atividades
Diagrama de 
Sequência
Diagrama de 
Comunicação
Diagrama de 
Tempo
Diagrama de Visão Geral de 
Interação
Por que a UML é composta por tantos diagramas? O objetivo disto é fornecer 
múltiplas visões do sistema a ser modelado, analisando-o e modelando-o sob 
diversos aspectos, procurando-se, assim, atingir a completitude da modelagem, 
permitindo que cada diagrama complemente os outros.
Cada diagrama da UML analisa o sistema, ou parte dele, sob uma determinada óptica. 
É como se o sistema fosse modelado em camadas, sendo que alguns diagramas enfocam 
o sistema de forma mais geral, apresentando uma visão externa do sistema, como é o 
objetivo do Diagrama de Casos de Uso, enquanto outros oferecem uma visão de uma 
camada mais profunda do software, apresentando um enfoque mais técnico ou ainda 
visualizando apenas uma característica específica do sistema ou um determinado 
processo. A utilização de diversos diagramas permite que falhas sejam descobertas, 
diminuindo a possibilidade da ocorrência de erros futuros.
A seguir, são descritos e exemplificados cada um dos diagramas oferecidos pela UML, 
destacando suas principais características. Nas próximas Unidades serão destacados os 
diagramas da UML mais utilizados.
Diagrama de classes
O diagrama de classes é provavelmente o mais utilizado e é um dos mais importantes 
da UML. Serve de apoio para a maioria dos demais diagramas. Como o próprio nome 
diz, define a estrutura das classes utilizadas pelo sistema, determinando os atributos 
e métodos que cada classe tem, além de estabelecer como as classes se relacionam e 
trocam informações entre si (GUEDES, 2011). A Figura 15, apresenta um exemplo 
desse diagrama.
44
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
Figura 15. Exemplo de diagrama de classes. 
Fonte: (GUEDES, 2011).
Diagrama de casos de uso
O diagrama de casos de uso é o diagrama mais geral e informal da UML, utilizado 
normalmente nas fases de levantamento e análise de requisitos do sistema, embora 
venha a ser consultado durante todo o processo de modelagem e possa servir de base 
para outros diagramas. Apresenta uma linguagem simples e de fácil compreensão 
para que os usuários possam ter uma ideia geral de como o sistema irá se comportar. 
Procura identificar os atores (usuários, outros sistemas ou até mesmo algum hardware 
especial) que utilizarão de alguma forma o software, bem como os serviços, ou seja, as 
funcionalidades que o sistema disponibilizará aos atores, conhecidas nesse diagrama 
como casos de uso (GUEDES, 2011). A Figura 16, apresenta um exemplo desse diagrama.
45
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Figura 16. Exemplo de diagrama de casos de uso.
Fonte: GUEDES, 2011.
Diagrama de objetosO diagrama de objetos está amplamente associado ao diagrama de classes. Na verdade, 
o diagrama de objetos é praticamente um complemento do diagrama de classes e 
bastante dependente deste. O diagrama fornece uma visão dos valores armazenados 
pelos objetos de um diagrama de classes em um determinado momento da execução de 
um processo do software (GUEDES, 2011). A Figura 17, apresenta um exemplo desse 
diagrama.
46
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
Figura 17. Exemplo de diagrama de objetos. 
Fonte: (GUEDES, 2011).
Diagrama de pacotes
O diagrama de pacotes é um diagrama estrutural que tem por objetivo representar 
os subsistemas ou submódulos englobados por um sistema de forma a determinar as 
partes que o compõem. Pode ser utilizado de maneira independente ou associado com 
outros diagramas. Esse diagrama pode ser utilizado também para auxiliar a demonstrar 
a arquitetura de uma linguagem, como ocorre com a própria UML ou ainda para definir 
as camadas de um software ou de um processo de desenvolvimento (GUEDES, 2011). 
A Figura 18, apresenta um exemplo desse diagrama.
Figura 18. Exemplo de diagrama de pacotes.
Fonte: (GUEDES, 2011).
47
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Diagrama de sequência
O diagrama de sequência é um diagrama comportamental que se preocupa com a 
ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um 
determinado processo. Em geral, baseia-se em um caso de uso definido pelo diagrama 
de mesmo nome e apoia-se no diagrama de classes para determinar os objetos das 
classes envolvidas em um processo. Um diagrama de sequência costuma identificar o 
evento gerador do processo modelado, bem como o ator responsável por esse evento, e 
determina como o processo deve se desenrolar e ser concluído por meio da chamada de 
métodos disparados por mensagens enviadas entre os objetos (GUEDES, 2011). 
A Figura 19, apresenta um exemplo desse diagrama.
Figura 19. Exemplo de diagrama de sequência. 
Fonte: (GUEDES, 2011).
Diagrama de comunicação
O diagrama de comunicação era conhecido como de colaboração até a versão 1.5 
da UML, tendo seu nome modificado para diagrama de comunicação a partir da 
versão 2.0. Está amplamente associado ao diagrama de sequência: na verdade, um 
complementa o outro. As informações mostradas no diagrama de comunicação com 
frequência são praticamente as mesmas apresentadas nos de sequência, porém com 
um enfoque distinto, visto que esse diagrama não se preocupa com a temporalidade 
48
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
do processo, concentrando-se em como os elementos do diagrama estão vinculados 
e quais mensagens trocam entre si durante o processo (GUEDES, 2011). A Figura 20, 
apresenta um exemplo desse diagrama.
Figura 20. Exemplo de diagrama de comunicação. 
Fonte: (GUEDES, 2011).
Diagrama de máquina de estados
O diagrama de máquina de estados demonstra o comportamento de um elemento 
por meio de um conjunto finito de transições de estado, ou seja, uma máquina de 
estados. Além de poder ser utilizado para expressar o comportamento de uma parte 
do sistema, quando é chamado de máquina de estado comportamental, também pode 
ser usado para expressar o protocolo de uso de parte de um sistema, quando identifica 
uma máquina de estado de protocolo. Como o diagrama de sequência, o de máquina 
de estados pode basear-se em um caso de uso, mas também pode ser utilizado para 
acompanhar os estados de outros elementos, como, por exemplo, uma instância de 
uma classe (GUEDES, 2011). A Figura 21, apresenta um exemplo desse diagrama.
49
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Figura 21. Exemplo de diagrama de máquina de estados. 
Fonte: GUEDES, 2011.
Diagrama de atividade
O diagrama de atividade era considerado um caso especial do antigo diagrama de gráfico 
de estados, hoje conhecido como diagrama de máquina de estados, conforme descrito 
na seção anterior. A partir da UML 2.0, foi considerado independente do diagrama 
de máquina de estados. O diagrama de atividade preocupa-se em descrever os passos 
a serem percorridos para a conclusão de uma atividade específica, podendo esta ser 
representada por um método com certo grau de complexidade, um algoritmo, ou mesmo 
por um processo completo. O diagrama de atividade concentra-se na representação 
do fluxo de controle de uma atividade (GUEDES, 2011). A Figura 22, apresenta um 
exemplo desse diagrama. 
50
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
Figura 22. Exemplo de diagrama de atividades.
Fonte: GUEDES, 2011.
Diagrama de visão geral de interação
O diagrama de visão geral de interação é uma variação do diagrama de atividade que 
fornece uma visão geral dentro de um sistema ou processo de negócio. Esse diagrama 
passou a existir apenas a partir da UML 2(GUEDES, 2011). A Figura 23 apresenta um 
exemplo desse diagrama.
51
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Figura 23. Exemplo de diagrama de visão geral de integração.
Fonte: GUEDES, 2011.
Diagrama de componentes
O diagrama de componentes está amplamente associado à linguagem de programação 
que será utilizada para desenvolver o sistema modelado. Esse diagrama representa os 
componentes do sistema quando o mesmo for ser implementado termos de módulos 
de código-fonte, bibliotecas, formulários, arquivos de ajuda, módulos executáveis etc. 
e determina como tais componentes estarão estruturados e irão interagir para que o 
sistema funcione de maneira adequada (GUEDES, 2011). A Figura 24 apresenta um 
exemplo desse diagrama.
52
UNIDADE III │ MODELAGEM DE SISTEMAS COM UML
Figura 24. Exemplo de diagrama de componentes.
Fonte: GUEDES, 2011.
T1. Diagrama de implantação
O diagrama de implantação determina as necessidades de hardware do sistema, as 
características físicas como servidores, estações, topologias e protocolos de comunicação, 
ou seja, todo o aparato físico sobre o qual o sistema deverá ser executado (GUEDES, 
2011). A Figura 25 apresenta um exemplo desse diagrama.
Figura 25. Exemplo de implantação.
Fonte: GUEDES, 2011.
53
MODELAGEM DE SISTEMAS COM UML │ UNIDADE III
Diagrama de estrutura composta
O diagrama de estrutura composta descreve a estrutura interna de um classificador, 
como uma classe ou componente, detalhando as partes internas que o compõem, como 
estas se comunicam e colaboram entre si. Também é utilizado para descrever uma 
colaboração em que um conjunto de instâncias cooperam entre si para realizar uma 
tarefa (GUEDES, 2011). A Figura 26 apresenta um exemplo desse diagrama.
Figura 26. Exemplo de estrutura composta.
Fonte: GUEDES, 2011.
Diagrama de tempo ou de temporização
O diagrama de tempo descreve a mudança no estado ou condição de uma instância de 
uma classe ou seu papel durante um período. Tipicamente utilizado para demonstrar a 
mudança no estado de um objeto no tempo em resposta a eventos externos (GUEDES, 
2011). A Figura 27 apresenta um exemplo desse diagrama.
Figura 27. Exemplo de tempo ou de temporização.
Fonte: GUEDES, 2011.
54
CAPÍTULO 3
Visão geral da UML 2.0
Os objetivos que levaram os desenvolvedores da linguagem UML a lançar a versão 2.0 
foi reestruturá-la e refiná-la de maneira a torná-la mais fácil de aplicar, implementar e 
adaptar, melhorando sua precisão e capacidade de reutilização.
Um dos principais problemas enfrentados pela linguagem UML era causado pela 
constante evolução tecnológica na área de software, o que impedia que a UML se 
tornasse totalmente utilizável no momento em que uma empresa adotava uma tecnologia 
nova, devido ao fato da UML não prever ou não ser compatível com determinadas 
características inovadoras da tecnologia em questão. Assim, os desenvolvedores da 
UML decidiram permitir a criação de perfis a partir do núcleo da linguagem, permitindo, 
dessa maneira, que os usuários adaptassem a linguagem a uma plataforma ou domínio 
de aplicação específico (GUEDES, 2011).
Conceitos básicos: modelos, metamodelos e 
metaclasses
Conforme já descrito anteriormente, um modelo captura

Outros materiais