Buscar

Linguagem de modelagem unificada - UML (NPG1399)

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

LINGUAGEM DE MODELAGEM UNIFICADA (UML) 1 
Apresentação ............................................................................................................................ 5 
Aula 1: Paradigma Orientado a objeto ............................................................................... 7 
Introdução ............................................................................................................................. 7 
Conteúdo ................................................................................................................................ 8 
Contextualização ............................................................................................................... 8 
Conceituação do modelo OO ......................................................................................... 8 
Os elementos básicos do modelo OO ........................................................................... 9 
Os pilares do modelo OO ............................................................................................... 10 
Conclusões do modelo OO ........................................................................................... 14 
Conceitos importantes ................................................................................................... 15 
A análise para o desenvolvimento de software ......................................................... 15 
Relacionando a análise e o projeto .............................................................................. 16 
Um breve histórico da UML ........................................................................................... 16 
A UML hoje........................................................................................................................ 17 
Entendendo melhor a UML ............................................................................................ 18 
Principais características da UML ................................................................................. 18 
Os diagramas da atual versão da UML ........................................................................ 19 
Entenda onde começar com a UML ............................................................................ 21 
Implementando a UML ................................................................................................... 22 
O que envolve o processo de desenvolvimento de softwares ............................... 23 
Entenda os processos iterativos ................................................................................... 23 
A UML e os resultados em cada fase ........................................................................... 24 
O fluxo de trabalho entre os diagramas da UML ....................................................... 26 
Atividade proposta .......................................................................................................... 29 
Referências........................................................................................................................... 30 
Exercícios de fixação ......................................................................................................... 31 
Chaves de resposta ..................................................................................................................... 35 
Aula 2: Casos de Uso: Diagrama e especificações ........................................................ 36 
Introdução ........................................................................................................................... 36 
Conteúdo .............................................................................................................................. 37 
Levantamento de requisitos .......................................................................................... 37 
Exemplos dos requisitos a serem levantados............................................................. 38 
Principal finalidade do diagrama de casos de uso .................................................... 38 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 2 
Outra finalidade do diagrama de casos de uso ......................................................... 39 
Elementos do diagrama de casos de uso ................................................................... 39 
Ilustração do diagrama de casos de uso ..................................................................... 40 
Entendendo o ator........................................................................................................... 41 
Identificando atores ........................................................................................................ 43 
Entendendo o caso de uso ............................................................................................ 44 
Identificando casos de uso ............................................................................................ 44 
Atividade proposta ........................................................................................................ 45 
Relacionamentos entre atores ...................................................................................... 49 
Relacionamentos entre casos de uso .......................................................................... 51 
Relacionamentos entre casos de uso – inclusão ...................................................... 52 
Exemplo de inclusão ....................................................................................................... 53 
Relacionamentos entre casos de uso – extensão ..................................................... 54 
Exemplos de extensão .................................................................................................... 54 
Relacionamentos entre casos de uso – generalização ............................................ 56 
Exemplo de generalização ............................................................................................. 57 
A importância da especificação de casos de uso ...................................................... 57 
Os formatos para especificar casos de uso ................................................................ 58 
Diferenciando os três tipos de especificação ............................................................. 59 
O formato resumido ....................................................................................................... 60 
O formato informal ......................................................................................................... 60 
O formato completo ....................................................................................................... 61 
Como especificar casos de include.............................................................................. 65 
Especificação do caso "incluir dependente" ............................................................... 65 
Como especificar casos de extends ............................................................................. 66 
Especificação do caso “registrar devolução de DVD” ............................................... 67 
Considerações finais sobre especificações ................................................................ 68 
Dicas sobre especificações de casos de uso .............................................................. 69 
Quadro comparativo entre ações do ator e do sistema .......................................... 70 
Referências........................................................................................................................... 71 
Exercícios de fixação ......................................................................................................... 72 
Chaves de resposta .....................................................................................................................77 
Aula 5: Linguagem unificada de modelagem ................................................................ 79 
Introdução ............................................................................................................................... 79 
Conteúdo .............................................................................................................................. 80 
Conceitos do diagrama de classes ............................................................................... 80 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 3 
Finalidades do diagrama de classes ............................................................................. 80 
A evolução do diagrama de classes ............................................................................. 80 
Principais classes .............................................................................................................. 81 
Diagrama de classes de implementação .................................................................... 82 
A classe .............................................................................................................................. 82 
Classe e objeto ................................................................................................................. 83 
Visão geral do diagrama de classes e seus elementos ............................................. 84 
Classes com seus atributos e operações .................................................................... 85 
Conceito de método ....................................................................................................... 86 
Associação entre classes ................................................................................................ 86 
Formas de associação entre classes ............................................................................ 87 
Multiplicidade nos relacionamentos ............................................................................ 89 
Possibilidades da multiplicidade ................................................................................... 91 
A multiplicidade do diagrama de classes .................................................................... 91 
Visibilidade de atributos e métodos ............................................................................. 91 
Possibilidades de visibilidade ......................................................................................... 92 
Diretrizes relevantes sobre visibilidade ....................................................................... 93 
Outros relacionamentos entre classes ........................................................................ 93 
Classe de associação ....................................................................................................... 94 
Generalização/especialização ....................................................................................... 95 
Diferenciando agregação e composição .................................................................... 98 
Composição ...................................................................................................................... 98 
Agregação ......................................................................................................................... 99 
Dependência ................................................................................................................... 101 
Nome e papel de um relacionamento ...................................................................... 102 
Navegabilidade nos relacionamentos de Associação ............................................ 103 
Notas e comentários no diagrama de classes e UML ............................................. 104 
Atividade proposta ........................................................................................................ 105 
Referências......................................................................................................................... 108 
Exercícios de fixação ....................................................................................................... 109 
Chaves de resposta ................................................................................................................... 113 
Aula 6: Diagramas de interação e diagrama de transição de estados .................. 115 
Introdução ......................................................................................................................... 115 
Conteúdo ............................................................................................................................ 116 
Diagramas de interação................................................................................................ 116 
O tripé da análise ........................................................................................................... 117 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 4 
O diagrama de sequência ............................................................................................ 119 
O diagrama de sequência e seus elementos ........................................................... 122 
Decisões e repetições no diagrama de sequência .................................................. 123 
Criação de destruição de objetos ............................................................................... 125 
Tipos de mensagens: síncronas e assíncronas ........................................................ 126 
Responsabilidade das classes ...................................................................................... 127 
Atividade proposta ........................................................................................................ 128 
O diagrama de máquina de estados .......................................................................... 131 
Estados, evento e transição ......................................................................................... 131 
O diagrama de estados e seus elementos básicos.................................................. 132 
Detalhando a transição ................................................................................................. 133 
Ações de entrada e saída, transições internas e atividades................................... 134 
Superestados .................................................................................................................. 135 
Passo a passo para construção do DTE..................................................................... 137 
Contribuições do DTE ao diagrama de classes ....................................................... 139 
Referências......................................................................................................................... 140 
Exercícios de fixação ....................................................................................................... 141 
Chaves de resposta ................................................................................................................... 146 
Conteudista ............................................................................................................................... 148 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 5 
Com os sistemas de informação cada vez mais complexos nas organizações, 
torna-se cada vez mais necessário o planejamento e organização prévios para 
desenvolver sistemas de informação. A modelagem de sistemas possibilita que 
pensemos, planejemos e organizemos as soluções antes de implementarmos 
(programação) o software. Ou seja, definir o escopo do problema, entender e 
modelar os requisitos dos usuários, definir como resolver o problema, que 
tecnologias usar, o que programar, que técnicas usar, comotestar, são 
necessidades que antecedem a programação. Além disso, a modelagem ganha 
relevância também na medida em que possibilita que os membros da equipe de 
desenvolvimento possam se comunicar entre si e com os usuários, através de 
diagramas (desenhos) padronizados. 
 
Dentro do contexto da orientação a objetos, a linguagem de modelagem 
unificada (UML) tornou-se mundialmente aceita para a documentação de 
projetos de software. A UML é independente de tecnologia e de processo de 
desenvolvimento de software, ou seja, ela define os diagramas com respectivas 
finalidades e elementos, porém não define quais e em que ordem os diagramas 
devem ser usados durante o processo de desenvolvimento de software. Cada 
empresa pode adequar o uso da UML dentro de seus processos de 
desenvolvimento de software. 
 
A UML oferece uma gama de diagramas em várias visões do processo de 
desenvolvimento de software; por exemplo, oferece diagrama para 
levantamento de requisitos junto aos usuários, outro modelo para captar os 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 6 
objetos do domínio do problema e os relacionamentos entre eles, outro para 
mostrar as interações entre os diferentes objetos na realização das 
funcionalidades que o sistema terá. Dispõe ainda de diagramas que mostram 
como será a solução física através de componentes, como o hardware integrará 
a solução e outros diagramas com diferentes objetivos. 
 
Sendo assim, essa disciplina tem como objetivos: 
 
1. Proporcionar conhecimento dos conceitos de análise e projeto orientado a 
objetos, com seus pilares de embasamento teórico. 
2. Apresentar os principais diagramas da UML, com seus respectivos objetivos e 
elementos. 
3. Capacitar os profissionais a modelarem sistemas usando os diagramas da 
Linguagem de Modelagem Unificada (UML), sob a perspectiva da orientação a 
objetos. 
4. Proporcionar conhecimento sobre o fluxo de trabalho e resultados das fases 
de: análise de requisitos, análise e projeto do sistema. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 7 
Introdução 
A modelagem de sistemas consiste na criação de modelos (diagramas) capazes 
de representar o mundo real, sob a perspectiva do desenvolvimento de 
sistemas e está intimamente relacionado a dois fatores: ao paradigma de 
desenvolvimento e ao processo de desenvolvimento em uso. 
 
Um sistema desenvolvido sob o paradigma da orientação a objetos representa 
os objetos que encontramos no mundo real, relacionados ao problema que 
estamos tratando, no negócio para o qual estamos desenvolvendo o sistema. O 
foco da equipe de desenvolvimento passa a ser a identificação e modelagem 
dos objetos do mundo real que afetam o sistema. 
 
A orientação a objetos está balizada em três princípios fundamentais, o 
encapsulamento que protege o acesso aos atributos, a herança e o 
polimorfismo. Juntos, eles permitem que classes sejam reaproveitadas, 
otimizando tempo e custo de desenvolvimento, além da segurança no reuso de 
classes já usadas e testadas. 
 
Preparado para iniciar a aula? 
Bons estudos! 
 
 
 
 
Objetivos: 
1. Fundamentar as principais características e os pilares do paradigma 
orientado a objeto; 
2. Discutir os principais conceitos inerentes à Linguagem de Modelagem 
Unificada. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 8 
Conteúdo 
 
Contextualização 
 
Quando modelamos sistemas usando o paradigma orientado a objeto a tarefa 
passa a ser a identificação dos objetos do mundo real envolvidos no contexto 
do sistema e a relação entre esses objetos. Por exemplo, considerando o 
contexto de um sistema bancário (ilustrado pela imagem a seguir), podemos 
citar os objetos agencia, cliente e conta, e a relação “Cliente possui uma conta 
em uma agencia”. Ao identificar os objetos, são identificados também os dados 
(atributos) e as funcionalidades (funções) inerentes àquele objeto, conforme 
ilustrado na imagem abaixo. O objeto Cliente possui os dados Nome, Endereço, 
Telefone e CPF e sobre ele podem ser realizadas, por exemplo, as funções de 
Incluir Novo Cliente, Excluir Cliente Inativo, Inativar Cliente. 
 
OBJETO = DADOS + FUNÇÕES 
 
Conceituação do modelo OO 
Na medida em que são identificados todos os objetos pertinentes a um sistema, 
já teremos os dados e procedimentos relacionados. 
 
Um modelo Orientado a Objeto (OO) tem como entidade fundamental o 
objeto, que recebe e envia mensagens, executa procedimentos e possui um 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 9 
estado que, por proteção, apenas o próprio objeto pode modificar. Problemas 
são resolvidos por meio de objetos, que enviam mensagens uns aos outros. 
 
 
Os elementos básicos do modelo OO 
Um modelo OO é formado por alguns elementos básicos. São eles: 
 
OBJETO 
É o principal elemento do modelo OO. Os objetos representam as “coisas” a 
serem modeladas do mundo real. Um objeto pode ser algo concreto como um 
carro, um aluno ou algo abstrato como uma disciplina. Cada objeto possui os 
dados inerentes a ele, como por exemplo, Nome (José) e Matrícula 
(201101272201) de um aluno e possui as operações que ele executa, como 
incluir novo aluno ou alterar dados de um aluno existente. 
 
MENSAGENS 
As mensagens são enviadas entre os objetos. Quando um objeto deseja que 
seja executada uma operação, da responsabilidade de outro objeto, ele manda 
uma mensagem a esse outro objeto informando o que ele deseja que seja feito. 
A operação desejada será implementada por meio de um método. 
 
ATRIBUTOS 
São dados que caracterizam o objeto. 
 
MÉTODOS 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 10 
São procedimentos (implementados por uma rotina ou função) que executam 
uma operação em um objeto e definem parte de seu comportamento. 
 
CLASSES 
São conjuntos de objetos com as mesmas características (atributos e métodos). 
Por exemplo, os objetos IX35 e Sportage são objetos da classe CARRO, cujas 
características em comuns são: 
• Atributos: modelo, fabricante, ano de fabricação, portas, entre outros. 
• Métodos: incluir carro, vender carro etc. 
 
Atenção 
 Aqui, um exemplo da diferença entre o conceito de classes e 
de objetos. Ou seja, é habitual dizermos que o “objeto é uma 
instância de uma classe”, logo, a classe é o molde e o objeto a 
“coisa real”. 
 
 
 
Os pilares do modelo OO 
Dentre as principais características do paradigma orientado a objeto (OO), 
destacamos: 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 11 
ENCAPSULAMENTO 
Encapsular significa esconder, ou seja, o objeto esconde seus dados (atributos) 
do acesso indevido de outros objetos e somente permite que eles sejam 
acessados por operações implementadas pelos seus próprios métodos 
(funcionalidades que implementam o comportamento do objeto). Com isso, o 
encapsulamento protege os dados do objeto do uso arbitrário ou não 
intencional, o que pode ser visualizado na figura apresentada aqui. O 
encapsulamento é uma técnica para minimizar a interdependência entre as 
classes, pois apenas os métodos da respectiva classe podem alterar seus dados 
(atributos), facilitando a identificação de erros e a alteração dos programas. 
 
 
HERANÇA 
Trata-se de um mecanismo para derivar novas classes a partir da definição de 
classes existentes, que se dá por meio de um processo de refinamento. Uma 
classe derivada ou descendente herda os dados (atributos) e comportamento 
(métodos) da classe base ou ancestral ou ascendente. A implementação da 
herança garante a reutilização de código que, além de economizar tempo e 
dinheiro, propicia mais segurança ao processo de desenvolvimento, postoque 
as funcionalidades da classe base já foram usadas e testadas. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 12 
 
Conforme ilustrado na figura abaixo, as classes Conta Poupança e Conta 
Investimento herdam da classe Conta, os atributos e métodos que são 
permitidos. A classe Conta é chamada Classe base, uma vez que é a base da 
herança. 
 
 
POLIMORFISMO 
A palavra polimorfismo deriva do grego e significa “muitas formas”. A partir do 
momento em que uma classe herda atributos e métodos de uma (herança 
simples) ou mais (herança múltipla) classes base, ela tem o poder de alterar o 
comportamento de cada um desses procedimentos (métodos). Isso amplia o 
poder do reaproveitamento de código promovido pela herança, permitindo que 
se aproveite alguns métodos e se altere (redefina) outros. Dessa forma, um 
método com mesmo nome, em classes distintas, pode ter diferentes 
comportamentos. Acompanhe o exemplo da figura apresentada aqui, onde 
identificamos a seguinte herança: Pagamento em Dinheiro, Pagamento em CC 
(Cartão de crédito) e Pagamento em Cheque herdam da classe Pagamento o 
atributo valor e o método Pagar. Observe que em cada classe filha (Pagamento 
em Dinheiro, Pagamento em Cartão e Pagamento em Cheque) escreve-se 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 13 
novamente o método Pagar. Essa possibilidade ocorre pelo princípio do 
encapsulamento. 
 
VISIBILIDADE 
Outro conceito fundamental é a visibilidade entre as classes. Esta diz respeito 
ao que uma classe pode visualizar da outra. Como princípio devemos garantir o 
encapsulamento, ou seja, os atributos devem ser privados (acessíveis apenas 
por métodos da própria classe) e determinados métodos públicos (acessíveis 
por todas as classes) devem acessar esses dados. Por outro lado, se 
mantivermos todos os métodos como privados, a classe perde o sentido, pois 
nenhuma outra poderá usar seus métodos. Então, devemos usar a visibilidade 
com equilíbrio e sabedoria. Outra visibilidade possível, além da privada e da 
pública, é a protegida, onde os atributos e métodos somente podem ser vistos 
dentro da estrutura de herança, ou seja, pelas classes filhas. Na figura abaixo o 
atributo Valor e o método Pagar_Conta (Valor : int) da classe Pagamento 
somente podem ser acessados pelas classes Pagamento em Dinheiro, 
Pagamento por Cartão e Pagamento em Cheque. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 14 
 
Conclusões do modelo OO 
O modelo Orientado a Objeto surgiu (na década de 80) como um modelo 
promissor para o desenvolvimento de software mais confiável, devido às 
características inerentes ao modelo de objetos. São elas: 
 
• O conceito de encapsulamento, que permite a construção de classes 
independentes umas das outras, facilitando o desenvolvimento e a manutenção 
do software (alterações e melhorias na classe); 
• A herança e o polimorfismo, que permitem e facilitam a reutilização de 
código, úteis nas fases de implementação e manutenção. 
 
O uso de técnicas orientadas a objetos facilita o controle da complexidade, uma 
vez que promove uma melhor estruturação de seus componentes e também 
permite que componentes já usados e validados possam ser reaproveitados. 
 
Cabe ressaltar que uma das principais razões para a baixa produtividade no 
desenvolvimento de software é a dificuldade de reutilização de código usando o 
paradigma funcional. As hierarquias de classes (herança) são componentes 
portáveis entre aplicações, que se bem projetados podem ser reutilizados em 
vários sistemas, sem modificação, e, além disso, podem ser estendidos 
(polimorfismo) sem corromper o que já existe. 
 
Assim sendo, podemos dizer que o modelo de objetos proporciona 
modularidade, trazendo os seguintes benefícios: 
• Reusabilidade: softwares podem ser escritos com base em componentes já 
existentes; 
• Extensibilidade: novos componentes de software podem ser desenvolvidos 
a partir de outros já existentes sem afetar o comportamento do componente de 
origem. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 15 
Sabe-se que softwares são intrinsecamente complicados devido aos novos 
requisitos das aplicações modernas: alta confiabilidade, alto desempenho, 
desenvolvimento de software rápido e barato, alta complexidade e tamanhos 
grandes. 
 
O modelo OO veio para combater os problemas derivados da Crise do Software, 
termo cunhado em 1968, na Europa, e caracterizado pelos seguintes problemas 
do software: baixa confiabilidade, baixa qualidade, alto custo de manutenção e 
duplicação de esforços na sua construção (tempo e dinheiro). 
 
Um sistema desenvolvido com as características do modelo OO tende a ser bem 
estruturado, posto que os objetos são unidades coesas dotados de interfaces 
simples que escondem as suas implementações. 
 
Conceitos importantes 
A orientação a objetos enfatiza a identificação, representação e 
organização dos objetos necessários a um sistema. 
Antes de adentrarmos no universo da análise e do projeto, sob o enfoque do 
paradigma Orientado a Objeto, vamos tecer rápidos comentários acerca do que 
sejam as atividades de análise e projeto, dentro do contexto de 
desenvolvimento de software. 
 
A análise para o desenvolvimento de software 
Análise de sistemas significa uma investigação dos problemas e dos requisitos 
de um contexto, em particular, com vistas ao desenvolvimento de um sistema 
automatizado. A ideia básica seria identificar quais seriam as funções que esse 
sistema precisa ter, de forma a atender eficientemente as necessidades de seus 
usuários. 
 
A atividade de análise, por ser muito abrangente, costuma ser dividida em 
análise de requisitos (investigação dos requisitos) e análise do domínio do 
problema. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 16 
 
Relacionando a análise e o projeto 
A atividade de projeto denota uma solução, voltada ao atendimento dos 
requisitos, considerando aspectos de tecnologia. Em geral, o projeto enfoca a 
arquitetura do sistema, definindo suas partes e as relações entre elas. 
A análise pode ser traduzida em “faça a coisa certa” e o projeto em “faça 
certo a coisa”. 
 
No contexto específico da orientação a objetos, análise implica em identificar e 
descrever os conceitos, no domínio do problema. Já na atividade de análise, 
foca-se na definição dos objetos de software e como eles colaboram para que 
os requisitos dos usuários sejam plenamente satisfeitos. 
 
Um breve histórico da UML 
A partir deste ponto, você iniciará com o assunto central de nossa disciplina, a 
Linguagem de Modelagem Unificada (UML). 
 
A Linguagem de Modelagem Unificada (UML) nasceu da integração de três 
métodos emergentes orientados a objeto que, na década de 90, eram os mais 
populares entre os profissionais de desenvolvimento de sistemas: 
 
• O Método OMT (Object Modeling Technique) de Jacobson; 
• O Método OOSE (Object-Oriented Software Engineering) de Rumbaugh; 
• O Método de Booch. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 17 
 
A UML hoje 
Finalmente, em 1997, a UML foi adotada pela OMG (Object Management Group 
ou Grupo de Gerenciamento de Objetos), como uma linguagem padrão de 
modelagem. 
 
Atualmente A UML encontra-se em sua versão 2.0 (2.4.1, já existindo a 2.5 em 
release BETA) e trouxe grandes novidades em relação à estrutura geral da 
linguagem. Entre as principais se encontram a abordagem de quatro 
camadas e a possibilidade de se desenvolver “perfis” particulares 
(oficial no site da OMG em http://www.uml.org) 
 
Desde a versão inicial a UML sofreu mudanças substanciais. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 18 
 
Entendendomelhor a UML 
A UML (Unified Modeling Language) é uma linguagem padrão para construção 
de projetos de sistemas, voltada para a visualização, especificação, construção 
e documentação de artefatos de um sistema. A UML foi projetada para ser 
independente do método de desenvolvimento a ser utilizado. 
 
A UML é uma linguagem de modelagem. Não se trata de um método de 
desenvolvimento, nem tampouco de uma metodologia ou de um processo de 
desenvolvimento de sistemas. Isso porque ela não determina a ordem e nem 
como os diagramas devem ser usados. A UML simplesmente disponibiliza os 
diagramas, sob as várias visões necessárias ao desenvolvimento de sistemas. 
 
Cada empresa utiliza-a da forma como lhe convém, ou seja, adequando a 
linguagem ao seu processo de desenvolvimento de sistema. 
 
Principais características da UML 
A UML é uma linguagem destinada à: 
 
Visualização: a modelagem gráfica tende a facilitar a compreensão, 
permitindo sua interpretação sem ambiguidades. 
 
Especificação: permite a construção de modelos precisos, completos e sem 
ambiguidades. A UML atende a esses quesitos sob o ponto de vista da análise, 
do projeto e da implementação. 
 
Construção: os diagramas UML podem ser diretamente integrados a várias 
linguagens de programação tais como Java e C++. 
 
Documentação: a UML abrange a documentação da arquitetura do sistema e 
de todos os seus detalhes. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 19 
Os diagramas da atual versão da UML 
Os diagramas da UML são divididos em 2 grupos: 
1. Diagramas de Estruturas; 
2. Diagramas de Comportamentos. 
Os diagramas somam um total de 14, conforme demonstra a imagem a seguir. 
 
 
Veja a especificação de cada um dos diagramas da UML: 
 
Diagrama Especificação 
Diagrama de Perfil Diagrama mais recente e bastante abstrato. Permite a 
criação de perfis que adapte a UML a plataformas, 
tecnologias ou domínios específicas, para os quais a 
linguagem não foi projetada originalmente. 
Diagrama de Classes O mais popular dos diagramas. Tem muitas 
informações, mas a principal finalidade é apresentar 
os tipos de objetos presentes no sistema e os vários 
tipos de relacionamentos existentes entre eles. 
Descreve para cada classe suas propriedades 
(atributos e métodos). 
Diagrama de Abrange um novo conceito, criado com a UML 2.0, 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 20 
Estruturas Compostas que é a capacidade de decompor hierarquicamente 
uma classe. 
Diagrama de 
Componentes 
Apresenta diferentes componentes de um sistema, 
além de possíveis dependências entre eles. O conceito 
de componente diz respeito a uma parte física de um 
sistema de componente, englobando outras estruturas 
relacionadas (como classes, interfaces etc.). 
Diagrama de 
Implantação 
Determina o ambiente físico sobre o qual o sistema vai 
operar. Determina as necessidades de hardware do 
sistema, evidenciando características físicas dos 
servidores, estações, protocolos de comunicação, 
redes etc. 
Diagrama de Objetos É um diagrama de classes, instanciado, ou seja, 
mostra exemplos de objetos de cada classe, 
mostrando os relacionamentos. 
Diagrama de Pacotes Pacotes são elementos que englobam outros. O mais 
comum são classes, mas têm sido usados para outros 
elementos, especialmente casos de uso. Representam 
a divisão de um sistema grande em partes menores 
(modularização). 
Diagrama de 
Atividades 
Descrevem a lógica de procedimentos, processos de 
negócios e fluxos de trabalho, suportando 
processamento sequencial e paralelo. 
Diagrama de Casos de 
Uso 
Mostra as funcionalidades do sistema e os atores que 
com elas interagem. 
Diagrama de Estados Mostra, para cada objeto do sistema, o 
comportamento do seu ciclo de vida. 
Diagrama de 
Sequência 
Mostra como os objetos interagem para a realização 
de um caso de uso, detalhando a troca de mensagem 
entre os objetos. 
Diagrama de São os antigos Diagramas de Colaboração, que junto 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 21 
Comunicação com o Diagrama de Sequência forma os diagramas de 
interação. Tem a mesma finalidade do diagrama de 
sequência, porém não focam a temporalidade 
(sequência). 
Diagrama de Visão 
Geral de Interação 
Novidade da versão 2.0. Misturam num único 
diagrama conceitos e elementos do diagrama de 
Atividades e do Diagrama de Sequência. 
Diagrama de Tempo Novidade da versão 2.0. Outro tipo de Diagrama de 
Interação, onde o foco está nas restrições de 
temporização. Usado para demonstrar a mudança no 
estado de um objeto no tempo em resposta a eventos 
externos. 
 
 
Entenda onde começar com a UML 
Nem mesmo os idealizadores da UML conseguem usar todos os diagramas. 
Geralmente as empresas escolhem um subconjunto deles e implementam nas 
fases de seus processos de desenvolvimento de sistemas. O ideal é que você 
encontre o seu conjunto de diagramas que funcione para o tipo de sistema que 
desenvolve. 
 
Como a UML não determina quais diagramas usar e por onde começar, cada 
um pode começar por onde desejar. Por exemplo, muitos começam pelo 
Diagrama de Classes, na medida em que o consideram o mais relevante. 
Porém, muitos começam pelo Diagrama de Casos de Uso, cuja finalidade é 
modelar as principais funcionalidades do sistema para atender às necessidades 
de seus usuários. 
 
Ambos estão usando a UML de forma correta e expressando a forma como 
visualizam a sequência mais adequada para desenvolver sistemas. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 22 
 
 
Implementando a UML 
Martin Fowler e Steve Mellor propuseram três modos para se usar a UML no 
desenvolvimento de sistemas. 
 
UML como esboço – o modo mais usado, onde os desenvolvedores usam a 
UML como forma de expressar aspectos relevantes de um sistema, esboçando 
ideias e alternativas do que se pretende fazer. É uma possibilidade de discussão 
com a equipe de desenvolvedores. Seu foco é a comunicação seletiva em vez 
de especificação completa. Geralmente são usados desenhos informais, sem 
ferramentas e cujo foco é a discussão de ideias visando à construção de 
software de forma colaborativa. 
 
O modo UML como esboço está mais compatível com as metodologias ágeis, 
que preconizam mais código e menos documentação. 
 
UML como projeto – foca a completeza. Aqui a ideia é construir um projeto 
completo para ser codificado por programadores, valendo-se de ferramentas 
CASE para melhor entendimento dos modelos, pela equipe. 
O modo UML como projeto está mais alinhado com os processos de 
desenvolvimento mais complexos, como processos iterativos e incrementais, 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 23 
como o PU (processo unificado) implementado através da ferramenta RUP 
(Rational Unifiec Process). 
Obs.: Será esse o tipo de UML abordado em nossas aulas! 
 
UML como linguagem de programação – onde os desenvolvedores 
desenham os diagramas que são compilados para o código executável e a UML 
se torna o código-fonte. Exige ferramentas mais sofisticadas. 
Por fim, o modo UML como linguagem de programação tende a ser mais usado 
em modelos de desenvolvimento de prototipação. 
 
O que envolve o processo de desenvolvimento de softwares 
Um processo de desenvolvimento de software descreve a abordagem para 
organizar as atividades relacionadas com a construção, implantação e 
manutenção de sistemas. 
 
Os processos mais populares hoje são os iterativos, como o PU (Processo 
Unificado), em particular o RUP (Processo Unificado da Rational) e as 
metodologias ágeis, como o XP (eXtreming Programming) e SCRUM. 
 
Entendaos processos iterativos 
Mas o que são processos iterativos, afinal? São processos onde o ciclo de vida 
do sistema é dividido em uma série de miniprojetos, curtos, preferencialmente 
de duração fixa (por exemplo 3 meses), denominados iterações. Cada iteração 
contém um subconjunto das funcionalidades do sistema. 
Em cada iteração temos as atividades de levantamento de requisitos, análise de 
requisitos, projeto, implementação, testes e implantação, conforme ilustrado 
pela imagem a seguir. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 24 
 
O ciclo de vida iterativo é baseado em incrementos sucessivos do sistema, pelas 
iterações do processo. A cada iteração um pedaço do software é incrementado, 
daí o nome processo iterático e incremental. 
Claro que entre um incremento e outro teremos feedbacks e ajustes na iteração 
encerrada. 
 
 
Atenção 
 Como já mencionado, a UML não define um processo padrão. 
Seus autores reconhecem que uma linguagem de modelagem 
e um processo robusto são importantes. Eles ofereceram sua 
orientação sobre o que constitui um processo adequado em 
publicações separadas daquelas exclusivamente dedicadas à 
UML, porque a padronização de um processo estava fora do 
escopo da definição de UML. 
 
A UML e os resultados em cada fase 
Usar a UML em um processo de desenvolvimento de sistemas não implica, 
necessariamente, na elaboração de documentos ou uso de uma ferramenta 
CASE. Muitas equipes usam UML para desenhos à mão em reuniões, para 
discussão de ideias. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 25 
Veja, a seguir, uma proposta de fluxo de trabalho e os resultados em cada fase, 
usando a UML em um processo iterativo. 
 
Levantamento de requisitos 
• Diagrama de Casos de Uso, para identificação, informal, dos requisitos e 
funcionalidades do sistema; 
• Diagrama de Classes Conceitual, de alto nível, com modelagem apenas das 
classes, com, talvez, os atributos mais relevantes. 
 
Análise de Requisitos 
• Casos de uso, que descrevem como as pessoas interagem com o sistema; 
• Diagrama de Classes Conceitual; 
• Diagrama de Estados, caso seja necessário elucidar algum ciclo de vida de um 
objeto relevante para o sistema; 
• Diagrama de Atividades, com algum fluxo de trabalho relevante, ou um caso 
de uso mais complexo. 
 
Projeto 
• Diagrama de Classes, já a partir de uma perspectiva de software; 
• Diagrama de Sequência, para cenários relevantes e comuns; 
• Diagrama de Estados; 
• Diagrama de Componentes, com a arquitetura do software; 
• Diagrama de Implantação, para definição do ambiente físico e distribuição dos 
componentes. 
 
 
 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 26 
 
Atenção 
 Nas duas fases primeiras fases (levantamento de requisitos e 
análise de requisitos), o aspecto mais relevante é a efetiva 
comunicação com os usuários e com a equipe de 
desenvolvimento. 
 
Conforme já mencionado, a UML não define uma ordem para 
elaboração de cada um de seus diagramas. Cada um usa os 
diagramas da UML da forma como deseja e dentro do processo 
de desenvolvimento considerado mais adequado à sua equipe 
e estilo de desenvolvimento, como ficou sinalizado nesta tela, 
quando identificamos os diagramas que podem (devem) ser 
modelados em cada fase de qualquer processo de 
desenvolvimento de software. 
 
O fluxo de trabalho entre os diagramas da UML 
Nossa proposta de uso da UML para esta disciplina é: 
 
Aula 2 
 
1. Modelo de Casos de Uso (aula 2): 
• Levantamento e identificação dos requisitos do sistema; 
• Construção do Diagrama de Casos de Uso; 
• Elaboração das descrições textuais de cada caso de uso. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 27 
 
Aula 5 
 
2. Modelo Conceitual de Classes (Aula 5): 
• Com base nos casos de uso, identificar os atores e as classes, elaborando a 
primeira versão do Modelo Conceitual de Classes; 
• Identificação dos relacionamento entre as classes; 
• Refinar o Modelo Conceitual de Classes. 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 28 
Aula 6 
 
3. Diagrama de Sequência (Aula 6): 
• Com base nas especificações no Diagrama de Casos de Uso, bem como no 
Diagrama Conceitual de Classes, elaborar o Diagrama de Sequência para cada 
cenário de uso, em cada caso de uso relevante; 
• Alterar os Modelos de Casos de Uso (diagrama e descrições textuais), com 
novas funcionalidades ou visões mais apropriadas das funcionalidades já 
existentes; 
• Alterar os modelos de classes, com a inserção de novos métodos para classes 
existentes e até de novas classes. 
 
4. Diagrama de Estados (Aula 6): 
• Para toda classe com mais de 1 estado, elaborar o modelo base do Diagrama 
de Transição de Estados; 
• Refinar o Modelo de Estados; 
• Proceder a eventual alteração no modelo de classes, com alterações em 
métodos ou atributos das classes propostas. 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 29 
Atividade proposta 
Imagine a seguinte cena. Um gerente está em sua mesa, trabalhando, quando 
se aproxima outra pessoa e se apresenta: 
– Bom dia, sou o Analista de Sistemas que veio fazer o trabalho encomendado. 
Ele continua – que conjunto de atividades são desenvolvidas nesse 
departamento? 
O gerente responde: 
– Bem, nós fazemos a liberação de pagamento de notas fiscais, o controle das 
notas fiscais em relação aos pedidos e o controle de estoque com os itens 
descritos na nota fiscal. 
O analista pergunta: 
– Quem faz a liberação dos pagamentos de notas fiscais? 
O empresário: 
– A secretária, dona Sílvia. – e chama a dona Sílvia para maiores 
esclarecimentos. 
Entrevistando dona Sílvia, o analista pergunta, para completar : 
– Dona Sílvia, o que faz a senhora iniciar o seu trabalho? 
Ela responde: 
– Quando chega uma nota fiscal carimbada pelo pessoal do estoque. 
– Dona Sílvia, quando encerra o seu trabalho? – pergunta o analista. 
– Meu trabalho encerra quando gero a guia de liberação de pagamento. – 
responde Dona Sílvia. 
 
Com base no texto acima, identifique as funcionalidades que o sistema precisa 
ter para atender às necessidades do gerente e da Dona Sílvia. 
 
Chave de resposta: As funcionalidades são: liberar pagamento, gerir notas 
fiscais e controlar estoque. 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 30 
Referências 
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com 
UML, 2/E. 2. ed. Rio de Janeiro: Campus, 2006. cap. 1. 
 
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML - guia do usuário. 2. ed. Rio 
de Janeiro: Elsevier, 2005. cap. 1 e 2. 
 
FOWLER, M. UML Essencial. Um breve guia para a linguagem-padrão de 
modelagem de objetos. 3. ed. Porto Alegre, RS: Artmed, 2005. 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 31 
 
Exercícios de fixação 
Questão 1 
Como se chama o princípio que diz que o acesso aos atributos de uma classe 
deve ser somente pelos métodos da classe e não diretamente por outra classe? 
a) Encapsulamento 
b) Herança 
c) Polimorfismo 
d) Entropia 
e) Visibilidade 
 
Questão 2 
No que se refere aos conceitos de Herança e Polimorfismo, analise as sentenças 
a seguir: 
I – A herança garante reuso e consequente economia de tempo e dinheiro. 
II – O polimorfismo diz que os atributos devem ter visibilidade privada. 
III – Sem herança não há como ter polimorfismo. 
IV – O encapsulamento visa garantir o desenvolvimento de classes 
independentes. 
Com base em sua análise, assinale a assertiva correta: 
a) Estão corretas apenas I, III e IV. 
b) Estão corretas apenas I e III. 
c) Estão corretasI, II, III e IV. 
d) Estão corretas apenas I e IV. 
e) Está correta apenas a III. 
 
Questão 3 
Quando um objeto se comunica com outro, ele envia ao destino: 
a) Uma mensagem 
b) Uma herança 
c) Um atributo 
d) Um método 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 32 
e) Um sinal 
 
Questão 4 
A propriedade que prega que novos componentes de software podem ser 
desenvolvidos a partir de outros, já existentes, sem afetar o comportamento do 
componente de origem, se relaciona: 
a) À herança 
b) Ao polimorfismo 
c) À reusabilidade 
d) À extensibilidade 
e) Ao atributo 
 
Questão 5 
Marque a alternativa com a qual a atividade de análise se relaciona: 
a) Faça a coisa certa. 
b) Faça certo a coisa. 
c) Faça sempre o melhor. 
d) Faça a coisa. 
e) Faça com cuidado. 
 
Questão 6 
No que se refere à UML (Linguagem Unificada de modelagem), assinale a única 
alternativa INCORRETA: 
a) É independente de processo de desenvolvimento de software. 
b) Contém um conjunto de diagramas com diferentes visões. 
c) É voltada especificamente para a modelagem de requisitos. 
d) Destina-se à visualização, especificação, construção e documentação de 
sistemas orientados a objeto. 
e) Nasceu da união de métodos usados, na época, pelos principais profissionais do 
mercado. 
 
Questão 7 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 33 
Como se chama o diagrama que mostra as funcionalidades do sistema e os 
atores que com elas interagem? 
a) Diagrama de Classes 
b) Diagrama de Estados 
c) Diagrama de Casos de Uso 
d) Diagrama de Componentes 
e) Diagrama de Sequência 
 
Questão 8 
Assinale a opção que apresenta o diagrama da UML que mostra o 
comportamento do ciclo de vida de cada objeto: 
a) Diagrama de Estado 
b) Diagrama de Classes 
c) Diagrama de Colaboração 
d) Diagrama de Objetos 
e) Diagrama de Implantação 
 
Questão 9 
Sobre os modelos de desenvolvimento de software dito interativos, analise as 
assertivas. 
I – São processos onde o ciclo de vida do sistema é dividido em uma série de 
miniprojetos e de curta duração. 
II – Cada iteração contém um subconjunto das funcionalidades do sistema. 
III – Em cada iteração temos as atividades de levantamento de requisitos, 
análise de requisitos, projeto, implementação, testes e implantação. 
IV – São modelos ultrapassados e pouco adequados para uso da UML. 
Com base nas assertivas, assinale a única alternativa CORRETA: 
a) Estão corretas apenas I, II e III. 
b) Estão corretas apenas I e II. 
c) Estão corretas I, II, III e IV. 
d) Estão corretas apenas II e IV. 
e) Estão corretas apenas I, III e IV. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 34 
 
Questão 10 
Durante a fase de análise de requisitos e análise do sistema, pode ser 
necessária a modelagem de algum fluxo de trabalho relevante, ou um caso de 
uso mais complexo. Nesse caso, qual diagrama da UML é o mais indicado? 
a) Diagrama de Atividades 
b) Diagrama de Estados 
c) Diagrama de Comunicação 
d) Diagrama de Implantação 
e) Diagrama de Componentes 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 35 
Aula 1 
Exercícios de fixação 
Questão 1 - A 
Justificativa: O encapsulamento garante a inviolabilidade dos métodos e 
consequentemente do estado de um objeto. Apenas métodos da própria classe 
podem acessar seus atributos, garantindo a proteção dos dados. 
 
Questão 2 - A 
Justificativa: I – Correta; II – Incorreta, de acordo com o conceito de 
encapsulamento; III – Correta; IV - Correta. 
 
Questão 3 - A 
Justificativa: Os objetos se relacionam por mensagens. 
 
Questão 4 - D 
Justificativa: Estender uma classe significa agregar funcionalidade com base no 
que já existe. 
 
Questão 5 - A 
Justificativa: A atividade de análise compreende “o que fazer”, ou seja, “faça a 
coisa certa”. 
 
Questão 6 - C 
Justificativa: A UML especifica diagramas para modelagem com várias visões, 
em diferentes momentos do processo de desenvolvimento e não apenas na 
modelagem de requisitos. 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 36 
Questão 7 - C 
Justificativa: Os casos de uso retratam as funcionalidades do sistema e como os 
atores interagem com essas funcionalidades. O diagrama que agrupa os casos 
de uso chama-se Diagrama de Casos de Uso. 
 
Questão 8 - A 
Justificativa: O ciclo de vida de um objeto é representado pelos estados que o 
mesmo possui e todas as transições de estados que ocorrem. 
 
Questão 9 - A 
Justificativa: I – Correta, é o conceito de processo iterativo; II – Correta, a ideia 
é justamente dividir as iterações no desenvolvimento de um pedaço do sistema 
III – Correta, em cada iteração há um ciclo completo de desenvolvimento; IV – 
Incorreta, são modelos muito usados hoje e, como já vimos, a UML não está 
voltada para nenhum processo específico, adaptando-se a qualquer modelo. 
 
Questão 10 - A 
Justificativa: O Diagrama de Atividades é útil para descrever a lógica de 
procedimentos, processos de negócios e fluxos de trabalho, suportando 
processamento sequencial e paralelo. Podemos incluir aqui ajuda no 
entendimento de um caso de uso de maior complexidade, cuja lógica pode ser 
mais bem visualizada sob a forma de diagrama. 
Introdução 
O levantamento e mapeamento adequado dos requisitos de um sistema são 
fundamentais para o sucesso do produto final a ser gerado: o software. 
O sistema precisa ter as funções adequadas para satisfazer as necessidades de 
seus usuários. Portanto, durante o processo de desenvolvimento de software, é 
preciso ter cuidado e, se possível, garantias de que os requisitos estão sendo 
corretamente capturados e compreendidos pelos analistas de sistemas. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 37 
A UML (linguagem unificada de modelagem) disponibiliza para esse fim o 
diagrama de casos de uso, cuja finalidade é mapear as funcionalidades do 
sistema, evidenciando os atores que com elas interagem. 
 
Os casos de uso, ou seja, as funcionalidades do sistema, sendo textualmente 
descritas, servem de base para que o sistema possa atender a essas 
necessidades. 
Preparado para iniciar a aula? 
Bons estudos! 
 
Objetivos: 
1. Apresentar o diagrama de casos de uso, conforme definições da UML; 
2. Demonstrar as formas de especificar os casos de uso. 
 
 
 
Conteúdo 
 
Levantamento de requisitos 
A atividade de levantar requisitos é de fundamental importância para todo o 
processo de desenvolvimento de sistemas. O sucesso do produto final, o 
software que será desenvolvido, depende de um correto levantamento de 
requisitos. 
 
Levantar requisitos implica em sabermos o que o sistema precisa fazer para 
atender as necessidades de seus usuários. A qualidade do levantamento de 
requisitos influenciará todo o processo de desenvolvimento, especialmente as 
validações junto aos usuários, necessárias ao longo do processo de 
desenvolvimento e sobretudo na adequação do software. 
 
O levantamento de requisitos visa identificar dois tipos de requisitos: 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 38 
Requisitos funcionais: são as funções que o sistema precisa ter. 
 
Requisitos não funcionais: são os atributos e propriedades do sistema. 
 
Exemplos dos requisitos a serem levantados 
Requisitos funcionais 
Como exemplos de requisitos funcionais para um sistema de folha de 
pagamento, podemos enumerar: 
 
• Cálculo da folha de pagamento; 
• Cadastramento de funcionários; 
• Cadastramento da tabela de imposto de renda; 
• Emissão do recibo de pagamento, entre outras funções necessárias aosistema. 
 
 
Requisitos não funcionais 
Como exemplos de requisitos não funcionais , que, obviamente, não são 
funções do sistema, podemos citar: 
• Tempo de resposta – o cálculo da folha de pagamento não pode demorar 
mais que 15 segundos; 
• Interface – deve ser composta de janelas de diálogo de fácil entendimento; 
• Tipo de ambiente – o sistema precisa estar acessível 24h por dia, nos 365 
dias do ano, denotando que precisa ser um sistema voltado para a internet. 
 
Principal finalidade do diagrama de casos de uso 
O diagrama de casos de uso é um dos mais informais e simples dentre os 
propostos pela UML. Sua principal finalidade é apresentar as principais 
funcionalidades que o sistema precisa ter; em outras palavras, apresentar os 
requisitos funcionais do sistema. Ou seja, é um diagrama que começa a ser 
usado após o levantamento de requisitos de forma a mapear as funcionalidades 
do sistema, documentar o que o sistema faz. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 39 
 
Esse diagrama é, geralmente, derivado do documento de especificação de 
requisitos (que não pertence à UML) ou de outro documento que relacione as 
principais necessidades dos usuários do sistema. 
 
 
 
Outra finalidade do diagrama de casos de uso 
Outra finalidade do diagrama de casos de uso é possibilitar que os requisitos 
possam ser validados junto aos usuários para se certificar que: 
• Todos os requisitos funcionais tenham sido identificados; 
• O entendimento da equipe de desenvolvimento, no que tange aos requisitos 
identificados, esteja correto e corresponda à realidade. 
 
Elementos do diagrama de casos de uso 
Por ser simples, o diagrama de casos de uso possui poucos elementos passíveis 
de representação, que são: 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 40 
 
 
Ilustração do diagrama de casos de uso 
Por ser simples, o diagrama de casos de uso possui poucos elementos passíveis 
de representação, que são: 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 41 
 
 
Entendendo o ator 
O ator é algo com comportamento, que interage diretamente com o sistema. 
Um ator participa (realiza) de um ou mais casos de uso do sistema. 
 
 
 
No diagrama de casos de uso, a representação do ator é o boneco, chamado 
stickman, conforme figura ao lado. O ator é o papel que o agente desempenha 
em relação ao sistema. 
 
Um ator pode representar papéis internos (gerente de compras) e papéis 
externos (cliente e fornecedor) de acordo com o ilustrado na figura abaixo. 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 42 
 
 
 
Um ator pode também representar setores e departamentos da empresa 
(contabilidade e contas a pagar), bem como funções desempenhadas na 
empresa (almoxarifado), tal qual ilustrado pela figura a seguir. 
 
 
 
 
Abaixo exemplo de Ator como setor e função desempenhada. 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 43 
Um ator pode ser dispositivos eletrônicos, como, por exemplo, hardwares, 
servidores ou dispositivos lógicos, como sistemas, de acordo com a imagem a 
seguir. 
 
 
 
 
 
Identificando atores 
O primeiro passo para a construção do modelo de casos de uso é a 
identificação de atores. Algumas perguntas são úteis nessa situação: 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 44 
1 - Quais órgãos, empresas ou pessoas farão uso desse sistema de 
informação? 
2 - Quais sistemas ou equipamentos se comunicarão com o sistema que será 
desenvolvido? 
3 - Quem deve ser informado de alguma ocorrência no sistema? 
4 - A quem pode interessar os requisitos funcionais do sistema? 
 
 
Entendendo o caso de uso 
Segundo Jacobson, um dos criadores da UML, “um caso de uso é uma 
descrição narrativa de uma sequência de eventos que ocorre quando um ator 
usa um sistema para realizar uma tarefa”. Representam, através de elipses, as 
funcionalidades do sistema, conforme imagem ilustrativa a seguir. 
Sendo uma funcionalidade, o nome do caso de uso deve ser composto de um 
[verbo no infinitivo] + [complemento verbal], como, por exemplo, 
[matricular] + [em curso]. 
 
 
 
• Um caso de uso é um conjunto de cenários. 
• Um caso de uso descreve uma sequência de ações do ator e do 
sistema. 
• Cada sequência de ações é chamada de cenário. 
Em suma, um cenário é uma sequência específica de ações que ilustra 
o comportamento do caso de uso. 
 
Identificando casos de uso 
Após a identificação dos atores, podemos passar ao reconhecimento dos casos 
de uso. Em primeiro lugar, podemos pensar nos casos de uso que representam 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 45 
os objetivos dos atores e/ou os processos da empresa. Assim sendo, as 
seguintes perguntas são úteis neste momento: 
 
1 - Quais as necessidades e objetivos de cada ator em relação ao sistema? 
2 - Quais informações serão produzidas pelo sistema? 
3 - O sistema realizará alguma ação que ocorra de forma regular no tempo? 
4 - Existe um caso de uso para atender cada requisito funcional? 
 
 
Atenção 
 Em seguida, podemos pensar nos casos de uso que não 
representam um benefício direto para os atores, mas são 
necessários para o funcionamento do sistema. Tais casos de uso 
englobam manutenções de: cadastros, usuários e seus perfis, 
informações provenientes de outros sistemas. 
 
Atividade proposta 
Imagine a seguinte cena: uma clínica oftalmológica precisa de um sistema de 
agendamento de consultas e exames. 
• Um paciente contata a clínica, por telefone ou pessoalmente, e solicita a 
marcação de uma consulta com seu médico de preferência, informando data e 
hora desejadas; 
• A atendente verifica na agenda do médico a disponibilidade mais próxima de 
data e hora e marca a consulta; 
• Na data e hora agendadas, o paciente realizou a consulta, onde o médico 
solicitou exames e prescreveu medicamentos; 
• Após a consulta, o paciente solicita à atendente a marcação de seus exames, 
informando data e hora pretendidas. A atendente verifica a disponibilidade 
próxima à solicitada e agenda o exame para o paciente; 
• A qualquer momento, o paciente pode solicitar o cancelamento, não apenas 
da consulta, mas, também, do exame. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 46 
Com base nas descrições anteriores, identifique os atores, os casos de uso 
envolvidos e desenhe o esboço do diagrama de casos de uso. 
 
Chave de resposta: 
Atores: paciente, atendente e médico. 
Casos de uso: seguem identificados por ator. 
 Atendente: Agendar Consulta, Agendar Exame, Cancelar Consulta e Cancelar 
Exame; 
 Médico: Consultar Paciente; 
 O paciente, embora extremamente relevante nesse processo, não interage 
diretamente com nenhuma funcionalidade do sistema, embora todas os dados 
imputados no sistema sejam fornecidos por ele. Em princípio não é considerado 
um ator, do ponto de vista da interação com o sistema. Todavia, muitos 
autores consideram-no ator, juntamente com os verdadeiros atores de cada 
caso de uso. 
Assim sendo podemos ter 2 soluções, representada nos 2 diagramas de casos 
de uso a seguir. 
 A primeira mais alinhada com o conceito de ator, onde o Paciente não figura 
entre os atores. 
 A segunda mais alinhada com a situação real, onde o Atendente e Médico 
interagem com o sistema, baseado no que lhes diz o Paciente. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 47 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 48 
Relacionamentos entre ator e caso de uso 
Como você já viu, o diagrama de casos de uso possibilita relacionamentos 
entre: 
• Atores e casos deuso; 
• Atores; 
• Casos de uso. 
 
O mais comum é o relacionamento entre atores e casos de uso indicado por 
uma linha sólida, que liga o ator ao caso de uso, denotando a interação entre 
ambos. Nos termos técnicos, dizemos que o ator realiza o caso de uso. A figura 
abaixo ilustra esse relacionamento. Entenda que a comunicação nesse 
relacionamento é bidirecional; ou seja, além de o ator informar dados ao caso 
de uso, também recebe informações por ele processadas. 
 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 49 
Relacionamentos entre atores 
Entre atores, é possível haver o relacionamento de generalização/especialização 
representado por uma linha sólida, com uma seta que aponta para o ator geral, 
conforme ilustrado na imagem abaixo. Perceba, então, que o ator geral é o 
funcionário, e o ator especialista, o gerente. O gerente também exerce as 
atividades de um funcionário; porém, como gerente, possui tarefas específicas 
a essa função. 
 
 
 
Como você já viu, o diagrama de casos de uso possibilita relacionamentos 
entre: 
• Atores e casos de uso; 
• Atores; 
• Casos de uso. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 50 
 
 
Observe o diagrama de casos de uso ilustrado na figura a seguir, onde temos 
exemplificada a generalização/especialização de atores. A leitura desse 
diagrama é a seguinte: 
 
• O ator geral é usuário, e os atores especializados são aluno e atendente; 
• Aluno e atendente relacionam-se com todos os casos de uso associados ao 
ator usuário; 
• No entanto, apenas o ator atendente se relaciona com cancelar matrícula em 
curso; ou seja, apenas atendente realiza esse caso de uso. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 51 
 
 
 
Atenção 
 Essa última é uma associação (ou um relacionamento) útil para 
definir sobreposição de papéis entre atores, onde: 
• O ator especializado interage com o caso de uso ao qual está 
associado diretamente e com todos os casos de uso com os 
quais o ator generalizado se associa; 
• Já o inverso não ocorre: o ator generalizado não interage com 
os casos de uso associados ao ator generalizado. 
 
Relacionamentos entre casos de uso 
Casos de uso podem ser organizados em três tipos de relacionamentos: 
inclusão, extensão e generalização (sendo que cada um deles é 
representado de uma maneira específica). 
Agora, na sequência, você entenderá um pouco melhor sobre eles. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 52 
 
Como você já viu, o diagrama de casos de uso possibilita relacionamentos 
entre: 
• Atores e casos de uso; 
• Atores; 
• Casos de uso. 
 
 
 
 
Relacionamentos entre casos de uso – inclusão 
Inclusão (include ou uses): 
Um caso de uso (caso de uso principal) incorpora, explicitamente, o 
comportamento de outro caso de uso (caso de uso incluído). O caso de uso 
incluído é parte integrante do caso de uso principal, e a fatoração acontece, 
pois outros casos de uso também poderão incorporar o caso de uso incluído e, 
assim, evitar repetições de fluxos. 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 53 
Exemplo de inclusão 
Observe no diagrama desta tela que o caso de uso validar disciplina é usado 
por dois casos de uso: incluir disciplina e eliminar disciplina. Isso significa que o 
caso de uso validar disciplina está contido em ambos; ou seja, se formos 
descrever as interações que ocorrem no caso de uso, perceberemos que tanto 
incluir disciplina quanto eliminar disciplinas possuirão uma mesma parte. 
 
O caso de uso validar disciplina será obrigatoriamente executado em algum 
ponto da execução do caso de uso incluir disciplina, como também em algum 
ponto na execução do caso de uso eliminar disciplina. 
 
 
 
 
 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 54 
 
Atenção 
 Normalmente, essa percepção da necessidade de fatoração 
ocorre quando estamos descrevendo os casos de uso, assunto 
que trataremos adiante. 
 
O cenário comum a mais de um caso de uso é capturado em 
outro caso de uso. No caso deste último exemplo, validar 
disciplina agrega o que é comum a incluir disciplina e a eliminar 
disciplina. 
 
Relacionamentos entre casos de uso – extensão 
Extensão (extends): 
Usado para descrever cenários opcionais em um caso de uso, uma variação do 
comportamento normal. 
 
Um caso B (caso de uso estendido) estende-se a A (caso de uso principal) 
quando alguma condição interrompe a execução do caso A (caso de uso 
principal) para que B (caso de uso estendido) execute e retorne, ao final, ao 
caso de uso A (caso de uso principal). A interrupção é feita no chamado ponto 
de extensão. A imagem desta tela ilustra o relacionamento de extensão. 
 
 
 
Exemplos de extensão 
Observe no diagrama desta tela que o caso de uso enviar informe de dívida 
estende o caso de uso cancelar matrícula em curso. Este poderá ou não solicitar 
a execução do caso de uso enviar informe de dívida, que somente será 
executado se o cancelamento do curso implicar no pagamento da dívida do 
aluno; se o aluno tiver quitado essa dívida, o caso de uso não será executado. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 55 
 
 
 
Existe outra conotação e leitura do uso do extends, que está ilustrado no 
diagrama de caso de uso demonstrado aqui. 
 
Observe que os casos de uso pagar em cheque e pagar em cartão estendem o 
caso de uso pagar mensalidade. Neste exemplo, haverá uma condição a ser 
avaliada, que é a forma de pagamento e, de acordo com ela, será executado 
um ou outro caso de uso: apenas um deles será executado. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 56 
 
 
 
Relacionamentos entre casos de uso – generalização 
Generalização: 
Quando um caso de uso é semelhante a outro, mas executa algumas funções a 
mais. É pouco usado, pois seu uso confunde-se com o extends na medida em 
que este também pode resolver esta questão da variação de comportamento; 
neste caso, um comportamento com adição de funcionalidade. 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 57 
Exemplo de generalização 
Observe o exemplo desta tela, onde existe a especialização do caso de uso 
solicitar produtos, que pode ser pela internet ou pelo telefone. De acordo com a 
forma de solicitação, o comportamento do caso de uso variará; porém, existem 
partes comuns, que estão especificadas em solicitar produtos (caso mais geral). 
 
 
 
A importância da especificação de casos de uso 
O diagrama de caso de uso é útil na medida em que nos fornece uma visão 
geral das funcionalidades do sistema (conjunto de casos de uso) e dos atores 
que com elas se relacionam. Todavia, é pobre na medida em que não nos 
permite entender como a interação ocorre em cada caso de uso. Podemos dizer 
que o diagrama é um sumário gráfico do conjunto de casos de uso 
(funcionalidades) de um sistema. 
 
No entanto, o real valor da técnica está na adequada descrição textual de cada 
caso de uso, que permite ver, com clareza, como os atores utilizam o sistema, 
no detalhamento. Mas a UML nada define sobre o texto narrativo, que descreve 
o caso de uso. 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 58 
Por exemplo, o processo unificado – PU define o modelo de casos de uso 
dentro da disciplina de requisitos, onde essencialmente se escreve o 
comportamento de todos os casos de uso. 
 
 
Atenção 
 Em suma, se o tempo destinado ao modelo de casos de uso for 
pouco, concentre-se na especificação ou descrição dos casos de 
uso e esqueça o diagrama. Mas, se tiver oportunidade, modele o 
diagrama, pois é umaótima ferramenta de diálogo com o 
usuário devido à sua simplicidade. 
 
Os formatos para especificar casos de uso 
No livro Utilizando UML e Padrões – uma introdução à análise e ao projeto 
orientados a objeto e ao desenvolvimento iterativo, de Craig Larman, são 
classificados três formatos para descrever casos de uso: 
 
Formato resumido 
O formato resumido trata-se de um resumo de um parágrafo, geralmente 
contendo o cenário principal do caso de uso, o cenário de sucesso. 
Quando usar? 
Utilizar o formato resumido na análise de requisitos inicial para obter uma ideia 
do assunto e escopo do caso de uso. 
 
Formato informal 
O formato informal consta de múltiplos parágrafos que cobrem vários cenários 
de uso. 
Quando usar? 
Utilizar o formato informal na mesma condição do formato resumido. 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 59 
Formato completo 
No formato completo, todos os passos e variantes são descritos em detalhes, 
com seções adicionais, complementando a especificação, como pré e pós-
condições. 
 
Quando usar? 
Utilizar o formato completo depois que muitos casos de uso tiverem sido 
descritos no formato resumido ou informal, durante a fase de análise de 
requisitos e de sistemas. Em suma, para os casos de uso relevantes, deve-se 
usar esse formato. 
 
 
Atenção 
 Em essência, a especificação ou descrição textual de um caso de 
uso deve mostrar a interação entre o ator e o sistema (caso de 
uso em questão); ou seja, a “conversa” entre ator e sistema na 
realização do caso de uso. 
 
Diferenciando os três tipos de especificação 
Para mostrar a diferença entre os três tipos de especificação, vamos usar como 
exemplo o caso de uso registrar venda, com o seguinte trecho de diagrama de 
casos de uso: 
 
 
 
Observe que, no diagrama acima, foram considerados ator tanto o caixa quanto 
o cliente. O motivo de considerá-los atores é que o cliente também interage 
com o sistema quando o pagamento é em cartão, por exemplo. 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 60 
O formato resumido 
Caso de Uso: Registrar Venda 
O cliente chega em um ponto de pagamento da loja com os itens que deseja 
adquirir. O caixa registra cada item desejado. Ao final, o sistema apresenta o 
total a pagar e a relação de itens comprados. O cliente informa, e o caixa 
registra os dados do pagamento, que são validados e registrados pelo sistema, 
que atualiza o estoque. O cliente recebe o recibo das compras e sai com os 
itens adquiridos. 
 
O formato informal 
Caso de uso: Registrar Venda 
Cenário Principal (de sucesso) 
O cliente chega ao ponto de pagamento da loja com os itens a serem 
adquiridos. O caixa usa o sistema PDV para registrar todos os itens comprados. 
Ao final, o sistema apresenta o total a pagar e a relação de itens comprados. O 
cliente informa e o caixa registrar os dados do pagamento, que são validados e 
registrados pelo sistema. O sistema atualiza o estoque. O cliente recebe o 
recibo das compras e sai com os itens adquiridos. 
 
Cenários Alternativos 
Se o identificador do item adquirido não for encontrado no sistema, esse 
notifica o caixa e sugere que esse entre manualmente com a identificação do 
item (que talvez esteja corrompido). 
Se o cliente informou pagamento em cartão e a operadora não aprova a 
transação, informe o cliente e solicite nova forma de pagamento; 
Se o sistema não consegue atualiza o estoque, sugere que o caixa registre no 
formulário de problemas do dia, para balanço ao final do dia. 
 
 
 
 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 61 
O formato completo 
Caso de uso (registrar venda) 
Vários gabaritos e padrões de formatos estão disponíveis para casos de uso 
relevantes que precisam de especificações detalhadas. Abaixo, descrevemos as 
principais seções que compõem o formato completo. 
 
Seção da especificação Significado 
Nome do caso de uso (*) Verbo no infinitivo + complemento verbal 
Escopo (*) O nome do sistema/projeto 
Nível 
Objetivo do usuário ou sub-função 
(include, extends e especialização) 
Atores (*) Atores envolvidos: principal e secundários 
Interessados e interesses 
Quem se importa com esse caso de uso e o que 
eles desejam 
Pré-condição (*) 
O que precisa ser verdade para esse caso de uso 
acontecer 
Pós-condição ou garantia 
de sucesso (*) 
O que precisa ser verdade quando da finalização 
bem-sucedida desse caso de uso 
Cenário principal (*) 
O cenário de sucesso, um caminho típico, 
incondicional 
Cenários alternativos ou 
extensões (*) 
Cenários alternativos, quando o cenário principal 
tem uma variação do fluxo bem-sucedido. 
Requisitos especiais Requisitos não funcionais relacionados 
 
(*) São as seções mais usadas pela maioria dos autores e analistas de 
sistemas. 
Nome do caso de uso: registrar venda 
Escopo: sistema de vendas – PDV 
Nível: usuário 
Atores: caixa 
Interessados e interesses: 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 62 
– Caixa: deseja que o sistema seja eficiente, sem erros e de fácil 
utilização; 
– Cliente: deseja adquirir os produtos desejados de forma rápida, sem 
muito esforço, bem como encontrar o que precisa e, ao final, um comprovante 
do que comprou; 
– Órgãos fiscais: desejam cobrar os impostos de cada venda realizada; 
– Operadoras de cartão: desejam receber solicitações de autorização de 
crédito no formato e protocolo corretos; 
– Etc. 
Pré-condição: todos os produtos registrados no sistema, contendo os 
respectivos preços; caixa autenticado e PDF registrado. 
Pós-condições: venda salva, impostos calculados, estoques atualizados, 
autorizações de pagamento registradas e recibo gerado. 
 
Cenário principal (ou fluxo básico) 
1. Cliente chega ao PDV com os itens que deseja adquirir; 
2. Caixa inicia uma nova venda; 
3. Para cada item de venda do cliente, faça: 
a) Caixa insere o identificador do item; 
b) Sistema localiza o item; 
c) Sistema registra e apresenta a linha do item de venda, com o identificador, 
nome e valor unitário do produto; 
d) Sistema calcula os impostos do item. 
4. Sistema apresenta o valor total da venda com impostos calculados; 
5. Caixa informa total ao cliente e solicita pagamento; 
6. Caixa informa o pagamento do cliente; 
7. Sistema registra e trata o pagamento do cliente; 
8. Sistema finaliza a venda e apresenta o recibo; 
9. Sistema contabiliza a baixa no estoque de cada item vendido. 
 
Cenários alternativos (extensões) 
2.a. Sistema não inicializa: 
 
 LINGUAGEM DE MODELAGEM UNIFICADA (UML) 63 
1. Caixa inicia a venda em planilha manual (contingência), registrando cada item e 
o pagamento em planilha eletrônica, e encerra o caso de uso. 
3.a. Sistema não localiza o identificador do item: 
1. Sistema avisa o erro e rejeita a entrada; 
2. Caixa responde ao erro: 
 2.a. Existe ID do item legível: 
 1. Caixa insere o identificador do item; 
 2. Sistema mostra descrição e preço. 
 2.b. Existe preço na etiqueta: 
 1. Caixa solicita ao gerente executar operação de correção; 
 2. Gerente realiza correção; 
3. Caixa indica entrada manual de preço, insere preço e solicita o imposto 
padrão para essa quantia. 
2.c. Caixa invoca ajuda no sistema para localizar produto a fim de obter 
identificação e preço real do item. 
2.d. Caso contrário, caixa pergunta a um funcionário o preço, e o identificador 
do item executa entrada manual do identificador (ver acima, 2.a) ou do preço 
do item (ver acima 2.b). 
 3-4 a. Cliente solicita o cancelamento de um item da venda: 
1. Caixa insere o identificador do item a ser removido; 
2. Sistema

Outros materiais