Logo Passei Direto
Buscar

ANALISE DE SISTEMA

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

A
N
Á
LISE D
E SISTEM
A
S
JAIME WOJCIECHOWSKI
Código Logístico
59856
Fundação Biblioteca Nacional
ISBN 978-65-582-1013-9
9 7 8 6 5 5 8 2 1 0 1 3 9
Análise de Sistemas 
Jaime Wojciechowski
IESDE BRASIL
2021
© 2021 – IESDE BRASIL S/A. 
É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito do autor e 
do detentor dos direitos autorais.
Projeto de capa: IESDE BRASIL S/A. Imagem da capa: Krasnopolski/Linas Sinkunas/Shutterstock
Todos os direitos reservados.
IESDE BRASIL S/A. 
Al. Dr. Carlos de Carvalho, 1.482. CEP: 80730-200 
Batel – Curitiba – PR 
0800 708 88 88 – www.iesde.com.br
CIP-BRASIL. CATALOGAÇÃO NA PUBLICAÇÃO 
SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ
W828a
Wojciechowski, Jaime
Análise de sistemas / Jaime Wojciechowski. - 1. ed. - Curitiba [PR] : 
IESDE, 2021.
138 p. : il.
Inclui bibliografia
ISBN 978-65-5821-013-9
1. Análise de sistemas. 2. Métodos orientados a objetos (Computação). 
3. UML (Computação). I. Título.
21-69939 CDD: 005.117
CDU: 004.415.2
Jaime Wojciechowski Doutor em Informática Aplicada em Engenharia Florestal 
pela Universidade Federal do Paraná (UFPR). Mestre 
em Informática Aplicada em Inteligência Artificial pela 
Pontifícia Universidade Católica do Paraná (PUCPR). 
Graduado em Matemática (bacharelado e licenciatura) 
pela mesma instituição. Atua, desde 1994, como 
docente no ensino superior e ingressou na UFPR no 
ano de 2006, onde é professor titular das disciplinas 
de Análise e Projetos de Sistemas no curso superior de 
Tecnologia em Análise e Desenvolvimento de Sistemas; 
Modelagem Ágil de Software no curso de Especialização 
em Desenvolvimento Ágil de Software; Aprendizado 
de Máquina e Laboratório de Inteligência Artificial 
no curso de Especialização em Inteligência Artificial 
Aplicada; Sistemas Computacionais Aplicados no curso 
de Especialização em Manejo Florestal; e é vice-diretor 
do Setor de Educação Profissional e Tecnológica. Foi 
analista de sistemas em ambiente de desenvolvimento 
de grande porte (mainframe). Trabalhou na área de 
desenvolvimento e treinamento para a formação de 
novos programadores no Banco do Estado do Paraná 
(Banestado), no Itaú, no Santander Banespa e no HSBC 
Bank Brasil.
Agora é possível acessar os vídeos do livro por 
meio de QR codes (códigos de barras) presentes 
no início de cada seção de capítulo.
Acesse os vídeos automaticamente, direcionando 
a câmera fotográ�ca de seu smartphone ou tablet 
para o QR code.
Em alguns dispositivos é necessário ter instalado 
um leitor de QR code, que pode ser adquirido 
gratuitamente em lojas de aplicativos.
Vídeos
em QR code!
SUMÁRIO
1 Introdução à análise de sistemas e Levantamento de Requisitos 9
1.1 Introdução à análise de sistemas 9
1.2 Levantamento de Requisitos 17
1.3 Análise Orientada a Objetos (UML) 29
1.4 Métodos Ágeis aplicados ao desenvolvimento de sistemas 34
2 Casos de Uso e Histórias de Usuário 41
2.1 Diagrama de Caso de Uso 41
2.2 Níveis do Diagrama de Caso de Uso 48
2.3 Prototipação de telas 53
2.4 Histórias de Usuário 56
3 Objetos e classes 67
3.1 Objetos e classes 67
3.2 Relacionamentos entre as classes 73
3.3 Diagrama de Classes 80
3.4 Diagrama de objetos 87
4 Diagrama de Sequência 91
4.1 Elementos do Diagrama de Sequência 91
4.2 Práticas do Diagrama de Sequência 100
4.3 Operadores do Diagrama de Sequência 112
5 Diagramas suplementares da UML 118
5.1 Diagrama de Transição de Estados 118
5.2 Diagrama de Atividades 125
5.3 Diagrama de Pacotes 130
 Gabarito 135
APRESENTAÇÃOVídeo
O desenvolvimento de software é uma das tarefas mais fascinantes e 
necessárias atualmente. Em todas as áreas do conhecimento, do trabalho 
e da produção, os softwares são imprescindíveis. Usamos algum tipo de 
software na maioria das nossas atividades diárias, no uso do celular, nos 
carros, nos estudos, no trabalho e no lazer, dentre muitas outras tarefas do 
dia a dia. É impossível gerenciar uma empresa sem o uso de softwares, e o 
funcionamento de quase todos os aspectos da vida diária é administrado 
por eles.
Esta obra busca não só apresentar as teorias de análise que fundamentam 
a construção de softwares e os procedimentos adotados nas empresas 
que os produzem, mas também mostrar as ferramentas que podem ser 
aplicadas para informatizar um determinado processo de negócio. Portanto, 
o livro tem um cunho essencialmente prático, em que você terá contato com 
o embasamento do conceito e, em seguida, será levado a realizar práticas 
com estudos de caso reais a fim de aplicar efetivamente a técnica, tal qual se 
aplicam nas empresas de desenvolvimento de software.
Serão abordados os primeiros aspectos da modelagem, desde o 
Levantamento dos Requisitos, passando pelo embasamento de Métodos 
Ágeis e partindo para a explicação detalhada dos principais diagramas da 
Análise Orientada a Objetos (UML).
Ao final do estudo, você contará com diversas ferramentas práticas de 
modelagem de sistemas e terá condições de, com base em um determinado 
problema, fazer toda a atividade de modelagem usando os diagramas da UML.
Bons estudos!
Introdução à análise de sistemas e Levantamento de Requisitos 9
1
Introdução à análise de sistemas 
e Levantamento de Requisitos
As atividades de análise de sistemas são de extrema importância no 
processo de desenvolvimento de um software. Muitas vezes as empresas 
negligenciam essas atividades por diversos motivos. É consenso que exis-
te uma grande expectativa (e pressão) por parte dos clientes em receber 
o produto final que solicitaram, ou seja, um software pronto, contemplan-
do todas as suas solicitações e, não raro, resolvendo todos os problemas 
de negócio.
Diferentemente de muitos produtos que exigem um processo com-
pleto e muito bem formalizado para se chegar ao produto final, um 
software, muitas vezes por uma visão equivocada da equipe de desen-
volvimento, aceita que algumas etapas do processo de desenvolvimento 
sejam suprimidas, e mesmo assim se chega a um software “funcionando”. 
A palavra foi colocada entre aspas para indicar que é muito questionável 
entregar um software, mesmo que “funcionando”, se etapas do processo 
forem suprimidas.
Neste capítulo serão apresentadas as bases das teorias de análise, seu 
histórico e a motivação para que as teorias evoluam. Também veremos 
o ciclo de desenvolvimento de um sistema, a visão das fases em que são 
aplicadas essas teorias e qual sua importância no processo como um 
todo. Finalmente teremos o primeiro contato com o que se chama de 
Métodos Ágeis, conjunto de práticas que vem revolucionando a indústria 
de desenvolvimento de software.
1.1 Introdução à análise de sistemas
Vídeo As atividades de análise fazem parte do ciclo de desenvolvimento de um sis-
tema e têm um papel de extrema importância na qualidade do produto final. Os 
prejuízos causados pela entrega de um software cujas etapas não foram seguidas 
da maneira correta são praticamente intangíveis. É muito difícil medir os efeitos 
negativos da falta de planejamento e de tarefas realizadas sem os devidos proce-
dimentos formais.
Como medir as perdas do negócio de uma empresa com um software que fre-
quentemente apresenta erros e muitas vezes apresenta resultados que não são 
10 Análise de Sistemas
aqueles esperados? Como medir as perdas de um software de difícil manutenção, 
seja para conserto de erros ou simplesmente para acomodar novas funcionalida-
des? O que é mais barato para uma empresa: a correção de um erro em uma hora 
ou em três dias? A demora na correção de um erro pode ocorrer devido à estrutura 
do software ter sido mal construída, aos programas terem sido codificados sem 
um padrão, sem uma estruturação dos módulos, sem planejamento nem análise, 
sem uma modelagem dos processos, ou seja, o que se diz na prática: “saíram pro-
gramando direto”.
Esse é um grande erro que as empresas cometem. Um software mal construído 
será carregado por anos (e talvez décadas), sempre comtrabalho visualmente usando o quadro (conhecido como Kanban).
A equipe de desenvol-
vimento do Spotify é 
totalmente voltada aos 
Métodos Ágeis. Nela são 
aplicados praticamente to-
dos os valores e princípios 
do Manifesto Ágil. O vídeo 
Spotify Engineering Culture - 
Partes 1 e 2, produzido por 
eles, mostra a dinâmica da 
equipe de desenvolvimen-
to, bem como suas carac-
terísticas. A forma como 
trabalham é impressionan-
te, vale a pena conferir.
Disponível em: https://www.youtube.
com/watch?v=NoGhC1LaaAE. Acesso 
em: 17 mar. 2021.
Vídeo
Introdução à análise de sistemas e Levantamento de Requisitos 39
 • Ter equipes enxutas com até dez pessoas.
 • Nada de títulos de função: estudos demonstram que quando não são criados 
títulos para as pessoas que possam limitar o entendimento de seu papel den-
tro de uma equipe, elas trabalham melhor.
 • Priorização: quando várias coisas são prioridade, nada é uma prioridade. En-
tão, para que algo realmente seja feito, a metodologia Scrum propõe que as 
atividades devem ser priorizadas.
Essa foi uma breve introdução sobre o Scrum. Existem outros conceitos, papéis 
e práticas envolvidos que não serão trabalhados aqui.
CONSIDERAÇÕES FINAIS
Este capítulo trouxe um panorama geral das teorias de análise, como ocorreu 
sua evolução e por quais motivos. Com o objetivo de situar o leitor em qual ciclo as 
atividades se encaixam, mostrou como é o ciclo completo de desenvolvimento de 
um sistema.
Fizemos um detalhamento da primeira atividade da fase de Iniciação, cujo produto 
final, a Lista de Requisitos, será a base para a construção de todos os artefatos da UML.
Trouxemos, ainda, os aspectos gerais sobre a Análise Orientada a Objetos, os Mé-
todos Ágeis e o framework Scrum, que são os padrões da área de desenvolvimento de 
software na atualidade.
ATIVIDADES
1. A Análise Estruturada foi um avanço no processo de modelagem de um sistema, 
com a introdução de diagramas como Fluxograma, DFD e Modelo de Dados. Esses 
diagramas ajudavam o analista no entendimento e mapeamento da solução dos 
problemas de negócio. Porém, essa estrutura não evitava completamente os 
problemas nos softwares produzidos. Explique o principal problema dessa teoria 
no funcionamento dos softwares.
2. Explique qual é o propósito dos Diagramas de Caso de Uso, de Classes e de 
Sequência da UML.
3. Quais foram as motivações para que os Métodos Ágeis se tornassem padrão da 
indústria de desenvolvimento de software?
REFERÊNCIAS
BECK, K. et al. Manifesto for Agile Software development. 2001. Disponível em: http://www.agilemanifesto.
org/. Acesso em: 17 mar. 2021.
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 12. ed. Rio de Janeiro: Elsevier, 2012.
COHN, M. Desenvolvimento de Software com Scrum. Porto Alegre: Bookman, 2011.
DE PAULA, G. B. Tudo sobre Metodologia Scrum: o que é e como essa ferramenta pode te ajudar a poupar 
tempo e gerir melhor seus projetos. Treasy, 14 fev. 2016. Disponível em: https://www.treasy.com.br/blog/
scrum/. Acesso em: 17 mar. 2021.
GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.
KRUCHTEN, P. Introdução ao RUP - Rational Unified Process. Rio de Janeiro: Ciência Moderna, 2003.
LAUDON, K. C.; LAUDON, J. P. Gerenciamento de sistemas de informação. 3. ed. Rio de Janeiro: LTC, 2005.
MELO, A. C. Desenvolvendo aplicações com UML 2.2. Rio de Janeiro: Brasport, 2011.
40 Análise de Sistemas
PRESSMAN, R. S., MAXIM, B. R. Engenharia de Software: uma abordagem profissional. 8. ed. Porto Alegre: 
Bookman, 2016.
PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. Porto Alegre: 
Bookman, 2014.
RUMBAUGH, J. et al. Modelagem e projetos baseados em objetos. São Paulo: Campus, 1994.
SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011.
STAIR, R. M.; REYNOLDS G. W. Princípios de Sistemas de Informações: uma abordagem gerencial. São Paulo: 
LTC, 2015.
SUTHERLAND, J. SCRUM: a arte de fazer o dobro do trabalho na metade do tempo. Rio de Janeiro: Sextante, 
2019.
VALENTE, M. T. Engenharia de software moderna. Princípios e práticas para desenvolvimento de software 
com produtividade. Leanpub, 2020. [e-book]
VAZQUEZ, C. E. Engenharia de Requisitos: software orientado ao negócio. São Paulo: Brasport, 2016.
YOURDON, E.; CONSTANTINE, L. L. Projeto estruturado de sistemas. São Paulo: Campus, 1992.
Casos de Uso e Histórias de Usuário 41
2
Casos de Uso e Histórias 
de Usuário
A fase de Elaboração, no ciclo de desenvolvimento de um sistema, 
corresponde ao momento de aplicação das teorias de análise de siste-
mas para que o ciclo seja modelado na forma de artefatos (documentos 
e diagramas) que demonstrem qual será a solução informatizada para o 
problema do cliente. Esses artefatos também irão delinear a arquitetura 
do software e como ele deve ser programado na fase de Construção.
Para a confecção desses artefatos, o analista de sistemas responsável 
por essa fase irá se basear em todas as informações coletadas na fase de 
Iniciação, por meio das atividades de Levantamento dos Requisitos.
Vimos que, na fase de Iniciação, o produto final foi uma Lista de 
Requisitos com especificações e regras de negócio. Neste capítulo, 
iremos construir os primeiros artefatos previstos na UML, o Diagrama 
de Caso de Uso, as Prototipações das telas (esboços) e a escrita das 
Histórias de Usuário.
Tais artefatos têm como objetivo dar uma visão funcional do sistema, 
detalhar seus processos e mostrar como será a solução informatizada em 
termos da organização dos seus Requisitos.
2.1 Diagrama de Caso de Uso
Vídeo O Diagrama de Caso de Uso tem como objetivo apresentar uma visão geral das 
funcionalidades do sistema, demostrando as entidades externas que terão acesso 
ao sistema e com quais funcionalidades cada entidade irá interagir (GUEDES, 2018; 
MELO, 2011).
Segundo Booch, Rumbaugh e Jacobson (2012, p. 263), “os diagramas de caso de 
uso são importantes para visualizar, especificar e documentar o comportamento 
de um sistema”.
Sua principal característica é a simplicidade em demonstrar graficamente tais 
funcionalidades, o que permite que seja compartilhado com o cliente para que se 
tenha uma visão do escopo do sistema e permita uma discussão em termos dos 
Requisitos que foram solicitados.
42 Análise de Sistemas
Por isso, esse diagrama pode e deve ser apresentado em reuniões com os clien-
tes, pois permite que sejam identificadas possíveis falhas na elaboração da Lista de 
Requisitos, percebidos Requisitos que não tenham sido identificados e, também, 
para deixar claro aquilo que o sistema não irá abordar (GUEDES, 2018).
2.1.1 Conceitos
Um Diagrama de Caso de Uso é composto de três elementos básicos: ator, caso 
de uso e relacionamento.
2.1.1.1 Ator
Os atores representam entidades externas ao sistema e que interagem com ele 
(DEBONI, 2003). Os atores fornecem e/ou recebem informações do sistema. Eles 
irão interagir com o sistema para satisfazer suas necessidades. Existem três tipos 
de atores:
São os atores mais fáceis de serem identificados. São as pessoas que irão 
manipular as telas, receber relatórios e fazer consultas aos dados.
Pessoas 
Em uma organização (empresa, indústria, loja, escritório, clube, dentre 
outros), um determinado órgão pode ser considerado um ator quando todas 
as pessoas desse órgão interagirem com o sistema. Por exemplo, em uma 
clínica médica, a Secretária, que atende aos pacientes que chegam para rea-
lizar consultas, exames e procedimentos, poderia ser considerada um ator 
perante o sistema de controle de consultas médicas da clínica. Note que, 
nesse exemplo, o paciente, os médicos e outros funcionários da clínica tam-
bém serão atores desse sistema.
Órgãos de uma organização 
Esse é o ator mais difícil de ser identificado. Quando construímos um 
software, é comum que ele tenha ligação com softwares externos, perten-
centes ou não à mesma organização. No exemplo anterior, digamos que 
existam dois sistemas na clínica médica, umsistema de consultas e um de 
exames. Se, no momento da consulta, o médico necessita saber os dados 
dos exames do paciente, o sistema de consulta iria acessar o sistema de 
exames para buscar essa informação, com isso o sistema de exames faz 
o papel de ator perante o sistema de consultas. No mesmo exemplo, se 
o sistema de consultas precisa de uma autorização do plano de saúde, o 
Plano de saúde também faz o papel de ator perante o sistema de consultas.
Outros sistemas informatizados
Casos de Uso e Histórias de Usuário 43
A Figura 1 ilustra os tipos de atores e suas interações com o sistema. Sob o pon-
to de vista do sistema de consultas, os bonecos representam seus atores.
Figura 1
Tipos de atores
Fonte: Elaborada pelo autor.
Órgão da organização
Pessoa
Paciente
Médico
Secretária
Sistema de 
exames
Plano de 
saúde
Sistema de 
consultas
Outros sistemas 
informatizados
2.1.1.2 Caso de uso
Um caso de uso representa um determinado Requisito, é uma funcionalidade 
completa conforme percebida pelo ator. Ele fornece um resultado observável ao 
ator e contribui para que o ator atinja seu objetivo.
Os casos de uso derivam da Lista de Requisitos. Normalmente um Requisito se 
transforma em um caso de uso, mas pode ocorrer de um Requisito se transformar 
em vários casos de uso, se isso for mais apropriado para uma melhor estruturação 
da solução.
A Figura 2 mostra um conjunto de Requisitos de um sistema para controle de 
uma biblioteca e como esses Requisitos poderiam ser organizados em casos de 
uso. A sigla UC antes do nome do caso de uso é uma abreviatura para use case (caso 
de uso em inglês).
Figura 2
Requisitos x casos de uso
Fonte: Elaborada pelo autor.
R1 - Emprestar Livro
UC2 - Emprestar Livro
UC1 - Pesquisar Livro
R2 - Devolver Livro
R3 - Cadastrar Usuário
UC4 - Imprimir Recibo
UC3 - Devolver Livro
UC6 - Manter Usuário
UC5 - Pesquisar Usuário
44 Análise de Sistemas
Nessa figura, digamos que o Requisito R1 - Emprestar livro seja implementado 
usando duas telas. Na primeira, o usuário faria uma pesquisa do livro que deseja 
emprestar; após a escolha do livro nessa tela, o sistema poderia apresentar uma 
segunda tela para que o empréstimo fosse efetivado.
Esse é um exemplo de como um Requisito pode se transformar em mais de um 
caso de uso. Uma dica é que cada caso de uso se transforme em uma tela, pois 
isso faz com que a sua implementação seja mais simples. Isso não é uma norma, 
pois podem existir exceções, em que um caso de uso pode ser implementado com 
várias telas ou o inverso, uma tela ser especificada em vários casos de uso.
Finalmente, por padrão e pelo caso de uso se tratar de uma função (ou ação), o 
nome do caso de uso sempre deve começar com um verbo no infinitivo seguido de 
um substantivo, por exemplo, “cadastrar cliente”.
2.1.1.3 Relacionamento
Os relacionamentos têm por objetivo fazer as ligações entre os atores e casos 
de uso. Com isso, é possível saber com quais casos de uso um determinado ator vai 
se relacionar e estruturar os atores conforme seus tipos a fim de detalhar melhor 
suas responsabilidades. Também é possível estruturar os casos de uso separando 
suas responsabilidades e encontrando a melhor solução.
Existem cinco tipos de relacionamentos que podem ser utilizados em um Dia-
grama de Caso de Uso.
11 Ligação
As ligações são feitas entre atores e casos de uso para indicar exatamente com 
quais casos de uso cada ator irá interagir.
A ligação só indica que o ator irá passar ou receber informações do caso de uso 
e que terá acesso a ele.
A ligação é representada por uma linha simples, sem setas e nem legendas. Na 
Figura 3, temos um exemplo do ator Secretária ligado ao caso de uso Marcar con-
sulta indicando que esse ator tem acesso a essa funcionalidade do sistema.
Figura 3
Exemplo de ligação entre ator e caso de uso
Fonte: Elaborada pelo autor.
Secretária
Marcar 
consulta
22 Herança de atores
O conceito de herança é uma das bases da Análise Orientada a Objetos. Ele é 
aplicado não só para atores, mas para casos de uso e, principalmente, para as clas-
ses (que serão abordadas em outro momento).
Você é considerado um ator perante 
o sistema do WhatsApp, mais espe-
cificamente no caso de uso Enviar 
mensagem. Também no Facebook 
somos atores no caso de uso Fazer 
postagem.
Curiosidade
Casos de Uso e Histórias de Usuário 45
Segundo Rumbaugh et al. (1994), a herança (de ator) é um relacionamento entre 
um ator e uma ou mais versões refinadas dele. Assim, ela é identificada quando 
existem “tipos” desse ator. Um ator com características mais gerais tem seus tipos 
mais específicos.
Como exemplo, imagine que na clínica existem os médicos (que são atores do 
sistema de consultas). Sabemos que existem diversas especialidades de médicos, 
ou seja, vários tipos. Assim, caso seja necessária a representação desses tipos, po-
deríamos usar o conceito de herança nesse ator.
A herança é representada por uma linha com uma seta vazada saindo dos ato-
res mais específicos e apontando para o ator mais geral. A Figura 4 mostra o exem-
plo de um médico e dois tipos.

Figura 4
Exemplo de herança de atores
Fonte: Elaborada pelo autor.
Médico
Médico ortopedista Médico dermatologista

Nesse exemplo, tanto ortopedista como dermatologista são tipos 
de médicos. Então, no topo foi colocado o ator mais geral, o Médico, e 
abaixo os dois tipos. As setas estão saindo dos tipos mais específicos e 
apontam para o mais geral (médico).
Vamos supor que exista um caso de uso Registrar doenças de 
pele. Ora, podemos perceber que esse caso de uso é específico para 
doenças relacionadas à pele de uma pessoa, então ele só deve ser 
manipulado pelo médico especialista em pele, ou seja, um derma-
tologista. Se, no Diagrama de Caso de Uso, tivermos somente o ator 
Médico e fizermos a ligação desse caso de uso a esse ator, o diagra-
ma estaria representando que qualquer médico pode acessar o caso 
de uso Registrar doenças de pele. Isso iria ferir uma regra de negó-
cio, pois não teria sentido um médico de outra especialidade aces-
sar esse caso de uso. Assim, para resolver essa inconsistência, seria 
necessário usar o relacionamento de herança, fazendo com que o 
Médico dermatologista fique ligado ao seu caso de uso específico. A 
Figura 5 ilustra essa situação.
Fonte: Elaborada pelo autor.
Figura 5
Exemplo de ligação de caso de uso com um ator 
específico
Médico
Médico 
ortopedista
Médico 
dermatologista
Registrar 
doenças de 
pele

46 Análise de Sistemas
33 Herança de casos de uso
Assim como temos herança de atores, podemos ter herança de casos de uso 
seguindo o mesmo conceito. Um caso de uso mais geral pode ter diversos tipos 
mais específicos.
Como exemplo, imagine o procedimento de saque de di-
nheiro em uma instituição bancária. Se tivermos o caso de 
uso Sacar dinheiro e considerarmos que em um banco esse 
saque pode ser realizado de duas formas, o saque no caixa 
eletrônico e o saque no caixa da agência, temos então dois 
tipos de saque. Nesse caso, podemos relacionar esses casos 
de uso por meio de herança. A Figura 6 mostra o exemplo de 
um saque e seus dois tipos.
Nesse exemplo, podemos perceber que o caso de uso Sa-
car dinheiro é o mais geral e nele estão as informações de 
um saque independentemente de onde é realizado.
44 Include (ou uso)
O relacionamento de Include (ou uso) é exclusivo para ser utilizado entre casos 
de uso.
Quando queremos separar uma parte dos procedimentos de um caso de uso 
criando um novo caso de uso com essa parte, esses dois casos de uso devem ficar 
ligados por meio de um Include.
Esse relacionamento funciona como a chamada de uma função (nas linguagens de 
programação) em que o caso de uso chama esse novo caso de uso, que realiza seus 
procedimentos e retorna ao principal para que ele continue seus procedimentos.
O Include é indicado quando essa parte pode ser usada por outros casos de uso, 
se necessário.
O símbolo de Include no Diagrama de Caso de Uso é uma seta pontilhada apon-tada para o caso de uso chamado e com a legenda > na linha, conforme 
mostra a Figura 7.
Como exemplo, imagine novamente o procedimento de saque de dinheiro em 
uma instituição bancária. Em todo saque, é necessário 
validar a senha do cliente. Porém, esse procedimento 
(de validação de senha) é feito em outros casos de uso, 
por exemplo, Emitir extrato. Então, para que não seja ne-
cessário repetir a validação da senha em todos esses ca-
sos de uso, fazemos um novo caso de uso Validar senha, 
e todos aqueles que necessitarem dessa validação serão 
ligados a ele por meio desse relacionamento. A Figura 7 
mostra esse exemplo.
Figura 6
Exemplo de herança de casos de uso
Fonte: Elaborada pelo autor.
Sacar dinheiro
Sacar no caixa 
da agência
Sacar no caixa 
eletrônico
Fonte: Elaborada pelo autor.
Figura 7
Exemplo da utilização do Include
Sacar dinheiro
Emitir extrato
Validar senha
>
>
Casos de Uso e Histórias de Usuário 47
A Figura 8 ilustra a situação em que o caso de uso “pagar parcela do emprés-
timo” separou os procedimentos de calcular parcela em um novo caso de uso so-
mente para estruturar melhor as duas funções.
Fonte: Elaborada pelo autor.
Figura 8
Exemplo de Include
Pagar parcela do 
empréstimo
Calcular parcela>
Os casos de uso chamados pelo Include não se enquadram na dica de que um 
caso de uso deve corresponder a uma tela, ou seja, o caso de uso chamado pelo 
Include pode ou não corresponder a uma tela.
55 Extend (ou extensão)
O relacionamento de Extend (ou extensão) também é exclusivo para ser usado 
entre casos de uso.
Seu funcionamento é muito parecido com o Include, ou seja, existe a chamada 
de um caso de uso por outro para que se realize um determinado procedimento e 
retorne ao caso de uso original.
Porém, no caso de um Extend, essa chamada ocorre segundo uma deter-
minada condição, ou seja, não existe a obrigatoriedade de que o caso de uso 
chamador execute os procedimentos do caso de uso chamado, e essa chamada 
vai acontecer se uma determinada condição for verdadeira ou se, no caso de 
uma tela, uma determinada ação for realizada para que o segundo caso de uso 
seja chamado.
O símbolo de Extend no Diagrama de Caso de Uso é uma seta pontilhada apon-
tada para o caso de uso chamador (é o contrário do relacionamento de Include) e 
com a legenda > na linha, conforme mostra a Figura 9.
Como exemplo, imagine uma concessionária de automóveis e o caso de uso 
Vender automóvel. Suponha que o gerente impôs uma regra de negócio dizendo 
que os automóveis com valor abaixo de R$ 50.000,00 podem ser vendidos sem ne-
nhuma verificação das informações do cliente. Porém, caso o valor do automóvel 
seja maior que R$ 50.000,00, o sistema deve consultar o crédito do cliente para 
verificar se ele tem alguma inadimplência ou se o seu nome se encontra com algum 
impedimento em instituições financeiras.
A Figura 9 mostra esse exemplo.
Fonte: Elaborada pelo autor.
Figura 9
Exemplo da utilização do Extend
Vender automóvel
Consultar 
crédito do 
cliente
>
48 Análise de Sistemas
Nesse exemplo, o caso de uso Consultar crédito do cliente pode ou não ser 
chamado e isso vai depender de a condição “valor do automóvel maior que 
R$ 50.000,00” ser ou não verdadeira. Quando isso ocorre, temos uma situação do 
uso do Extend.
Outro exemplo: imagine uma tela com alguns botões que levam a outras telas. 
No acesso à primeira tela (primeiro caso de uso), o usuário pode ou não clicar nos 
botões que levam às outras telas (outros casos de uso relacionados com Extend). 
Ou seja, o caso de uso da tela principal pode ou não chamar os casos de uso das 
demais telas, o que caracteriza esse relacionamento.
Os relacionamentos no Diagrama de Caso de Uso podem ser utilizados para me-
lhor estruturar a solução e demonstrar graficamente como será o encadeamento 
das telas, bem como a interação entre os casos de uso. Eles fornecem informações 
importantes sobre o encadeamento das telas do sistema.
2.2 Níveis do Diagrama de Caso de Uso
Vídeo Os Métodos Ágeis nos mostram a necessidade de se construir os artefatos da 
análise (diagramas ou documentos) na medida em que tenham utilidade no pro-
cesso de desenvolvimento. Então, dependendo dessa utilidade, o Diagrama de 
Caso de Uso pode ser construído em dois níveis: o nível 1, mais geral, e o nível 2, 
mais detalhado.
2.2.1 Nível 1 do Diagrama de Caso de Uso
Nesse nível, não devemos utilizar os relacionamentos de herança de atores ou 
casos de uso, Include e Extend. A ideia desse nível é que se tenha uma visão mais 
geral, sem muito detalhamento. Nele, os casos de uso não necessitam correspon-
der a uma tela (conforme a dica dada na seção anterior).
A Figura 10 ilustra um Diagrama de Caso de Uso de nível 1. Note que existe so-
mente o ator, o caso de uso e uma ligação entre eles.
Figura 10
Exemplo de diagrama de nível 1
Fonte: Elaborada pelo autor.
Cliente
Comprar 
passagem
aérea
Cadastrar voo
Empresa aérea
2.2.2 Nível 2 do Diagrama de Caso de Uso
O objetivo desse nível é fazer um detalhamento dos casos de uso, em que cada 
um irá corresponder a uma tela física. Para isso, pode-se utilizar todos os cinco 
tipos de relacionamentos do diagrama.
A Figura 11 ilustra um Diagrama de Caso de Uso de nível 2. É um detalhamento 
do diagrama da Figura 10. Podemos supor que o caso de uso Comprar passagem 
aérea foi dividido em três novos casos de uso (três telas físicas): Pesquisar voo, 
Casos de Uso e Histórias de Usuário 49
Selecionar voo e Emitir passagem aérea. Também o caso de uso Cadastrar voo foi 
dividido em Pesquisar voo e Manter voo.
Figura 11
Exemplo de diagrama de nível 2
Fonte: Elaborada pelo autor.
Cliente
Pesquisar voo
Manter voo
Selecionar voo
Emitir 
passagem 
aérea
Empresa aérea >
>
>
Os relacionamentos utilizados devem refletir a navegação entre as telas. Por 
exemplo, entre os casos de uso Pesquisar voo e Manter voo foi utilizado o relacio-
namento de Extend por ser opcional essa navegação entre as duas telas, ou seja, se 
a empresa aérea acessar o caso de uso Pesquisar voo, ela pode ou não escolher o 
acesso para a tela Manter voo (condição do Extend). Se o cliente acessar esse caso 
de uso, a condição é de que clientes não têm autorização para Manter voo (atuali-
zar os dados de um voo).
Por outro caminho, no processo de Comprar passagem aérea foi utilizado o 
relacionamento de include entre os casos de uso Pesquisar voo, Selecionar voo e 
Emitir passagem aérea, já que sempre irá ocorrer essa navegação entre as telas 
(considerando que a passagem efetivamente será comprada).
2.2.3 Estudo de caso – Escola de Natação
O estudo de caso a seguir tem como objetivo mostrar o passo a passo da cons-
trução do Diagrama de Caso de Uso, desde a identificação dos atores e casos de 
uso, passando pelo nível 1 do diagrama e, finalmente, chegando à construção do 
nível 2 com todo o detalhamento.
Iremos utilizar o exemplo da Escola de Natação, considerando a Lista de Re-
quisitos desse problema, que é o produto necessário para iniciar a construção do 
Diagrama de Caso de Uso.
Quadro 1
Lista de Requisitos da Escola de Natação completa
Requisito Descrição Regras de negócio
R1 – Manter cadastro dos alu-
nos
Permitir o cadastro completo dos 
alunos.
Permitir pesquisar, incluir, alterar e consultar.
Não permitir a exclusão de um aluno, somente 
marcar como inativo.
R2 – Manter cadastro dos pro-
fessores
Permitir o cadastro completo dos 
professores.
Permitir pesquisar, incluir, alterar, excluir e 
consultar.
(Continua)
50 Análise de Sistemas
Requisito Descrição Regras de negócio
R3 – Manter cadastro das tur-
mas
Permitir o cadastro completo das 
turmas, a modalidade (natação ou 
hidroginástica), dias/horários e o 
professor responsável.
Não permitir o cadastro de duas turmas da 
mesma modalidade no mesmo horário.
R4 – Matricular alunos. Matricular os alunos nas turmas.
Pessoas com mais de 80 anos só podem se 
matricularna modalidade hidroginástica.
R5 – Registrar frequência
Registrar frequência no diário de 
classes de cada aula.
Fonte: Elaborado pelo autor.
De posse dessa Lista de Requisitos, podemos começar identificando quais se-
riam os atores desse problema, que poderiam ser:
 • o atendente da escola;
 • os professores.
Podemos relacionar cada Requisito a um caso de uso somente alterando o 
nome para o padrão dos nomes dos casos de uso (verbo no infinitivo seguido de 
um substantivo).
2.2.3.1 Diagrama de Caso de Uso de nível 1
A Figura 12 mostra o diagrama de nível 1. Note que nesse diagrama não foram 
utilizados relacionamentos entre casos de uso. Esse é um Requisito do diagrama de 
nível 1, justamente para dar uma ideia geral dos Requisitos.
Figura 12
Diagrama de Caso de Uso nível 1 – Escola de Natação
Fonte: Elaborada pelo autor.
Professor
Registrar 
frequência
Atendente
Cadastrar 
aluno
Cadastrar 
professor
Cadastrar 
turma
Realizar 
matrícula
2.2.3.2 Diagrama de Caso de Uso de nível 2
Para entendermos como funciona a passagem do nível 1 para ao nível 2, preci-
samos agora começar a pensar como serão os esboços das telas do sistema, pois 
nosso objetivo é que cada caso de uso represente uma tela física do sistema.
Vamos usar como exemplo o primeiro caso de uso Cadastrar aluno. Ora, o ter-
mo cadastrar não se resume somente ao ato de incluir um novo aluno no cadastro, 
Casos de Uso e Histórias de Usuário 51
e sim a todas as operações que podem ser feitas sobre os alunos: incluir, alterar, 
excluir, consultar e pesquisar. Então, precisamos organizar uma ou mais telas que 
sejam amigáveis ao usuário e que consigam cobrir essas cinco operações sobre os 
dados de um aluno.
A seguir, temos uma proposta de solução de telas que consegue cobrir essas 
cinco operações. Trata-se de uma sugestão, pois existem muitas formas de se fazer 
essa organização. Essa é a forma mais comum encontrada nos sistemas.
A solução para esse caso seria construir duas telas, a primeira chamada Pesqui-
sar alunos e a segunda, Manter alunos, como mostram as Figuras 13 e 14.
Figura 13
Esboço da tela Pesquisar alunos
Fonte: Elaborada pelo autor.
Nome CPF Telefone Ações
Joaquim José da Silva Xavier 12345678901 98765-8752 Alterar Excluir
Patricia Amaral 98765432101 99987-8723 Alterar Excluir
Novo Aluno
Pesquisar alunos
Escola de Natação
Voltar Pesquisa:
Figura 14
Esboço da tela Manter alunos
Fonte: Elaborada pelo autor.
Manter alunos
Escola de Natação
Nome:
CPF
Telefone:
Endereço:
Salvar Voltar
52 Análise de Sistemas
A dinâmica das duas telas para cobrir as cinco operações seria a seguinte:
1. Primeiramente o ator Atendente teria acesso à tela Pesquisar alunos.
2. Para o procedimento de inclusão de um novo aluno, o atendente pressiona 
o botão “novo aluno” nessa tela. O sistema apresenta a segunda tela, Manter 
alunos. O atendente preenche os dados do aluno e pressiona o botão “salvar”.
3. Para o procedimento de alteração dos dados de um determinado aluno já 
cadastrado, o atendente encontra esse aluno na lista (pode utilizar o campo 
de filtro “pesquisa” no canto superior direito) e, na linha do aluno que deseja 
alterar, pressiona o botão “alterar”. O sistema apresenta a segunda tela, 
Manter alunos, só que agora colocando os dados do aluno escolhido nos 
campos correspondentes. O atendente então altera os dados que desejar e 
pressiona o botão “salvar”.
4. Para o procedimento de exclusão de um aluno já cadastrado, o atendente 
encontra esse aluno na lista (pode utilizar o campo de filtro “pesquisa” no 
canto superior direito) e, na linha do aluno correspondente, pressiona o 
botão “excluir”. Nesse caso, o sistema nem chama a segunda tela, somente 
apresenta uma mensagem de confirmação da exclusão na primeira tela e o 
atendente confirma. O sistema exclui o aluno e refaz a lista de alunos sem ele.
5. No procedimento de consulta, o atendente deseja somente visualizar 
os dados do aluno. Para isso, ele clica sobre qualquer dado do aluno que 
deseja consultar e o sistema apresenta a segunda tela, Manter alunos, só que 
agora com todos os dados do aluno escolhido nos campos correspondentes 
somente com a opção de visualização. Por fim, o atendente pressiona o botão 
“voltar” para retornar à tela de pesquisa.
6. A pesquisa é o ato de visualizar a lista de alunos, seja ela com todos os 
alunos ou somente alguns. Para isso, a primeira tela de Pesquisar alunos já 
apresenta inicialmente todos os alunos. Caso o atendente queira consultar 
alunos com um determinado argumento, basta colocar esse argumento no 
campo de pesquisa.
Essa organização de telas do caso de uso Cadastrar aluno constante no diagra-
ma de nível 1 foi importante porque foi possível verificar que esse caso de uso, 
por imposição de uma organização de tela, deu origem a dois novos casos de uso, 
Pesquisar alunos e Manter alunos.
Assim, na construção do diagrama de nível 2, esses dois novos casos de uso 
irão substituir o caso de uso Cadastrar aluno. Como eles estão interligados pelas 
ações que podem ser realizadas na primeira tela chamando a segunda, os casos 
de uso então devem ser ligados no diagrama de nível 2 com o relacionamento de 
extend, já que, dependendo da operação, a segunda tela será ou não chamada.
Todos os casos de uso do tipo Cadastrar... terão a mesma estrutura, então o 
Diagrama de Caso de Uso de nível 2 ficará conforme mostra a Figura 15.
Em banco de dados, as operações 
(incluir, alterar, excluir, consultar 
e pesquisar) realizadas sobre um 
determinado elemento (no exemplo, 
um aluno) é comumente chamada 
de CRUD, um acrônimo que significa 
Create, Read, Update, Delete.
Curiosidade
Casos de Uso e Histórias de Usuário 53
Figura 15
Diagrama de Caso de Uso nível 2 – Escola de Natação
Fonte: Elaborada pelo autor.
Professor
Registrar 
frequência
Atendente
Pesquisar 
aluno
Manter aluno
Pesquisar 
professor
Pesquisar 
turma
Manter turma
Realizar 
matrícula
Manter 
professor
>
>
>
Com isso, mostramos como estruturar o Diagrama de Caso de Uso em dois 
níveis para melhor demostrar graficamente os Requisitos do sistema e o encadea-
mento das suas telas.
2.3 Prototipação de telas
Vídeo Nesta seção, iremos aprender como fazer protótipos de telas de um sistema. 
Criar protótipos de telas significa desenhar os esboços que serão efetivamente 
construídos usando as linguagens de programação. A Prototipação é de grande 
importância, já que construir as telas usando a tecnologia para a qual o software 
é programado (linguagem de programação) é muito mais difícil e requer que os 
programadores façam esse trabalho.
Os protótipos de telas são criados pelos analistas de sistemas que participaram 
da fase de Levantamento de Requisitos e têm ampla visão do negócio e da solução 
informatizada que será dada ao problema.
2.3.1 Objetivos da Prototipação
Fazer protótipos das telas do sistema torna muito fácil a avaliação por parte do 
cliente. Esse é o principal objetivo desse trabalho.
O cliente recebe um esboço que pode ser alterado e ajustado rapidamente. É 
possível corrigir erros de layout da tela que não tinham sido bem entendidos e 
ajustes de posicionamento dos seus componentes para que a tela seja amigável e 
funcional no seu uso.
54 Análise de Sistemas
Além disso, os protótipos são feitos em ferramentas que facilitam essa manu-
tenção, que muitas vezes pode ser feita durante as reuniões de apresentação, cujo 
resultado alterado já pode ser avaliado e aprovado no mesmo momento.
2.3.2 Componentes de um protótipo de tela
Existem diversos componentes que podem ser utilizados na construção de te-
las, cada um com uma finalidade específica. Esses componentes também ajudam 
na estruturação da tela e na facilitação de seu uso.
Atualmente os softwares são executados em diversas plataformas e disposi-
tivos, como computadores, tablets, celulares e até mesmo televisores, mídias de 
automóveis etc.
A seguir são apresentados vários componentes de telaque podem ser utiliza-
dos nos protótipos, bem como a função de cada um deles:
Esse componente é o mais simples e é utilizado quando se deseja escre-
ver um texto na tela, seja em títulos e textos quaisquer ou para legenda de 
campos de entrada.
Label
O campo de entrada é utilizado quando se deseja que o usuário digite um 
determinado conteúdo de texto ou número no campo da tela.
Text field
São botões disponíveis na tela para o usuário pressionar levando o siste-
ma a realizar alguma ação.
Button
É utilizado quando se deseja o calendário de meses, inclusive com nave-
gação entre as datas.
Calendar
É utilizado quando se deseja apresentar uma lista de valores para que o 
usuário selecione uma ou mais opções.
Check box
É utilizado quando se deseja mostrar dados em forma de tabelas.
Grid
Casos de Uso e Histórias de Usuário 55
É utilizado quando se deseja a entrada de uma data na tela, porém com a op-
ção de apresentação de um calendário e a possibilidade de escolha dessa data.
Date chooser
É utilizado quando se deseja montar menus de opções para escolha do 
usuário que remetem a outras telas.
Menu bar
Assim como o text field, é utilizado quando se deseja que o usuário digite 
um determinado conteúdo de texto, porém, nesse componente, é possível 
escrever um texto com várias linhas, inclusive dando a possibilidade de di-
mensionar a área.
Text area
É utilizado quando se deseja apresentar uma lista de valores para que o 
usuário selecione apenas uma opção. Normalmente a primeira opção fica 
visível como primeira da lista e, ao pressionar uma seta no componente, a 
lista é aberta e apresenta-se as demais opções.
Combo box
A Figura 16 apresenta um exemplo de cada um desses componentes.
Figura 16
Esboço da tela Pesquisar alunos
Fonte: Elaborada pelo autor.
Nome CPF Telefone Ações
Joaquim José da Silva Xavier 12345678901 98765-8752 Alterar Excluir
Patricia Amaral 98765432101 99987-8723 Alterar Excluir
Pesquisar Alunos
Escola de Natação
Novo aluno Voltar Pesquisas:
Abrir documento
Salvar
Opção1
Opção 2
Opção 3
Sair
Opção1
Opção 2
Opção 3
Casado
Solteiro
Divorciado
D
J A N E I R O
T Q SS Q S
Label
Button
Calendar
Check box
Data chooser
Grid
Combo box
Menu bar
Text Area
Text field
56 Análise de Sistemas
Existem muitos outros componentes de tela para usos mais específicos, aqui 
foram explicados os principais.
O uso correto desses componentes nos locais apropriados é de grande impor-
tância para o sucesso do software. Para a maioria dos clientes, uma tela amigável é 
a propriedade do software. De nada adianta construirmos um software que atenda 
perfeitamente às necessidades funcionais do sistema se ele tiver usabilidade difícil 
e aparência ruim.
Um software muito utilizado 
para Prototipação de tela 
chama-se Balsamiq. Nele, 
você encontra diversos com-
ponentes usados em telas 
web e em aplicativos mobile.
Disponível em: www.balsamiq.com. 
Acesso em: 17 mar. 2021.
Curiosidade
2.4 Histórias de Usuário
Vídeo O Diagrama de Caso de Uso e os protótipos de tela nos dão uma boa ideia 
de como serão os Requisitos. Porém, a tela será programada por um membro da 
equipe especialista na tecnologia que será utilizada (linguagens de programação, 
componentes de software, bancos de dados, entre outros), que teve pouca (ou ne-
nhuma) participação na fase de Levantamento de Requisitos e conhecimento do 
negócio. Isso é normal e até é importante que o processo ocorra dessa forma. Por-
tanto, o desafio do analista de sistemas nesse momento é fazer com que o progra-
mador entenda exatamente o que deve ser programado, tanto o funcionamento da 
tela quanto as regras de negócio que devem ser verificadas para que o Requisito 
seja entregue exatamente como foi solicitado.
As Histórias de Usuário, então, entram nessa fase como um instrumento de 
detalhamento de cada um dos casos de uso (telas) para que o documento seja re-
passado ao programador e transformado num programa de software.
Repassar apenas o diagrama e os desenhos de tela ao programador não é o su-
ficiente para lhe dar condições de entender e programar a tela. Algumas empresas 
acreditam que apenas dizer (verbalmente) ao desenvolvedor o que ele deve fazer 
para programar a tela seja suficiente, porém o desenvolvimento de um software 
é um processo complexo e exige uma comunicação eficaz entre os membros da 
equipe (HELM; WILDT, 2014).
Assim, o próximo passo do processo de modelagem é escrever Histórias de 
Usuário para que sejam repassadas aos programadores da equipe.
Para cada caso de uso do Diagrama de Caso de Uso de nível 2 (ou de nível 1 caso 
só tenha sido feito esse), o analista deve fazer o seu detalhamento por meio de 
uma História de Usuário, conforme o documento que será explicado na sequência.
2.4.1 Construção de uma História de Usuário
A seguir, veremos a estrutura de uma História de Usuário, os tópicos que devem 
constar e o conteúdo de cada tópico.
11 Nome e descrição
O nome da História deve ser o mesmo nome do caso de uso do Diagrama de 
Caso de Uso de nível 2 (ou nível 1). Ele deve iniciar com a sigla HU seguida de um 
número sequencial:
Casos de Uso e Histórias de Usuário 57
HU000 – Nome da História de Usuário
Em seguida, devemos fazer uma descrição no seguinte formato:
Sendo 
Quero 
Para 
Quem quer
O que quer
Por que quer
Nessa descrição, o ator deve ser aquele que está ligado ao caso de uso no Dia-
grama de Caso de Uso (Quem quer).
Já a funcionalidade deve ser o nome do caso de uso (O que quer).
O benefício deve ser uma explicação ou justificativa daquilo que a História irá con-
tribuir para o processo ou agregar valor ao negócio do cliente. É uma frase que mos-
tra ao cliente o quanto será importante a implementação da História (Por que quer).
Exemplo:
HU001 – Realizar matrícula
Sendo um aluno da escola
Quero realizar matrícula
Para estar regularizado e iniciar a atividade escolhida
22 Desenho da tela
Nesse tópico deve ser colocado o desenho da tela conforme o protótipo que foi 
feito para ela.
33 Critérios de aceitação
Os critérios de aceitação são verificações que o sistema deve fazer para conside-
rar que a História está atendendo aos Requisitos do cliente.
Uma História deve ter uma série de critérios para que seja considerada aceita 
pelo cliente.
Os critérios dizem o que a História deve fazer, ou seja, quais os procedimentos 
da tela para que se atinja o seu objetivo, e também o que não deve fazer, ou seja, 
quais consistências devem ser realizadas para evitar erros.
A História é considerada pronta somente após todos os critérios serem 
verificados.
Esse tópico deve conter somente a relação dos critérios no seguinte formato:
Critério 
58 Análise de Sistemas
Como exemplos de critérios de aceitação da História de Usuário, podería-
mos ter:
Critério: não deve aceitar CPF em branco ou inválido.
Critério: não deve aceitar matrícula para aluno não cadastrado.
Critério: deve efetivar a matrícula.
44 Critérios de aceitação – detalhamento
Após a escrita da lista de critérios de aceitação, deve-se fazer um detalhamento 
de cada um deles. Esse detalhamento tem por objetivo orientar o programador 
de como eles devem ser programados e, principalmente, quais ações devem ser 
tomadas para cada critério.
O detalhamento dos critérios deve ter o seguinte formato:
Critério 
Dado que 
Quando 
Então 
Como exemplo de um critério de aceitação da História de Usuário detalhado, 
poderíamos ter:
Exemplo 1:
Critério não deve aceitar CPF em branco ou inválido.
Dado que foi informado um CPF Inválido.
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema apresenta a mensagem “CPF Inválido”.
E o sistema não efetiva a matrícula.
Exemplo 2:
Critério não deve aceitar CPF com Dígito Verificador incorreto.
Dado que foi informado um CPF com DV incorreto (R1).
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema apresenta a mensagem“CPF Inválido”.
E o sistema não efetiva a matrícula.
Casos de Uso e Histórias de Usuário 59
Exemplo 3:
Critério deve efetivar a matrícula.
Dado que não houve inconsistências de campos.
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema salva os dados da matrícula.
E o sistema apresenta a mensagem “Matrícula 
 Realizada Com Sucesso”.
55 Regras de negócio
As regras de negócio explicam a maneira de realizar certos procedimentos. É 
uma explicação de como deve ser realizada uma determinada ação. Elas serão co-
locadas quando não estiver clara a maneira de se programar uma ação.
Note que no Exemplo 2 foi colocado (R1) no final da sentença “Dado que”. Essa 
é uma referência à Regra 1 que deve ser colocada nesse tópico para explicar como 
deve ser feita a consistência do dígito verificador do CPF.
As regras de negócio devem ser listadas da seguinte maneira:
Rn – Descrição da Regra de Negócio.
Onde n é um número sequencial da regra.
Exemplo:
R1 – A consistência do Dígito Verificador do CPF deve ser feita 
utilizando a rotina módulo 11 da Receita Federal.
66 Outros artefatos
Deve-se relacionar nesse tópico os artefatos da UML que possam ajudar o pro-
gramador na implementação da História.
Exemplos:
Clique aqui para acessar o Diagrama de Classes.
Clique aqui para acessar o Diagrama de Sequência.
60 Análise de Sistemas
77 Observações técnicas
Deve-se relacionar nesse tópico as observações que achar pertinente relacio-
nadas às ferramentas tecnológicas que serão usadas na programação da História.
Exemplo:
Usar componentes de JavaScript na saída dos campos da tela.
Observação: não se preocupe com o significado do termo JavaScript, pois isso 
não irá afetar o entendimento do tópico e se refere a um conteúdo específico de 
linguagens de programação.
88 Histórias relacionadas
Caso a História que está sendo escrita tenha relação com outras Histórias im-
portantes que o programador conheça, podemos citá-las aqui.
Exemplos:
HU002 – Pesquisar Alunos
99 Critérios de aceitação para testes
Finalmente o último tópico de uma História de Usuário são os critérios de acei-
tação para testes.
O objetivo desse tópico é balizar os testes da História, ou seja, devemos prover 
a equipe de testes do sistema com recursos para que a História seja testada após 
sua implementação.
Nesse tópico, devemos então repetir todos os critérios de aceitação, com a dife-
rença de que aqui deve ser colocado valores reais nas entradas de campos da tela 
ou consistências necessárias.
Exemplo 1:
Considere o critério de aceitação explicado anteriormente:
Critério não deve aceitar CPF em branco ou inválido.
Dado que foi informado um CPF Inválido (R1).
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema apresenta a mensagem “CPF Inválido”.
E o sistema não efetiva a matrícula.
Casos de Uso e Histórias de Usuário 61
O critério de aceitação para testes nesse exemplo seria:
Critério não deve aceitar CPF em branco ou inválido.
Dado que foi informado o CPF J98.188.888 (inválido por 
 causa da letra J no início).
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema apresenta a mensagem “CPF Inválido”.
E o sistema não efetiva a matrícula.
Exemplo 2:
Critério não deve aceitar CPF com Dígito Verificador incorreto.
Dado que foi informado o CPF 54477271935 (DV incorreto).
Quando o aluno pressiona o botão “Efetivar Matrícula”.
Então o sistema apresenta a mensagem “CPF Inválido”.
E o sistema não efetiva a matrícula.
Esses são os tópicos de uma História de Usuário. A seguir, veremos um exemplo 
de uma História completa.
2.4.2 Exemplo completo de uma História de Usuário – estudo 
de caso da Escola de Natação
A seguir será apresentada uma História de Usuário completa do caso de uso “reali-
zar matrícula da Escola de Natação” com todos os tópicos descritos na Subseção 2.4.1.
HU001 – Realizar Matrícula
Sendo um aluno da escola.
Quero realizar matrícula.
Para estar regularizado para iniciar a atividade escolhida.
DESENHO DA(S) TELA(S)
Realizar matrícula
Escola de Natação
Turma 1: Seg/Qua/Sex das 10h às 11h
Natação
CPF:
Nome:
Turma:
Professor:
Mensalidade:
Modalidade:
Pesquisar
Efetivar matrícula Voltar
(Continua)
62 Análise de Sistemas
CRITÉRIOS DE ACEITAÇÃO
1. Deve apresentar as modalidades disponíveis ao ingressar na tela.
2. Não deve prosseguir com campos inconsistentes.
3. Deve permitir a pesquisa aos alunos cadastrados.
4. Deve apresentar o nome do aluno.
5. Deve apresentar as turmas disponíveis de cada modalidade apresentada.
6. Deve apresentar os dados de uma turma.
7. Deve efetivar a matrícula.
8. Deve retornar à tela anterior.
CRITÉRIOS DE ACEITAÇÃO – DETALHAMENTO
Critério de contexto (válido como premissa para todos os critérios):
Dado que acessei o menu “Realizar Matrícula”
1. Deve apresentar as modalidades disponíveis ao ingressar na tela.
Dado que
Quando a tela é apresentada.
Então o combo modalidade deve estar preenchido.
2. Não deve prosseguir com campos inconsistentes.
Dado que
Quando o aluno insere os campos.
Então o sistema verifica se os campos estão inconsistentes (R1).
3. Deve permitir a pesquisa aos alunos cadastrados.
Dado que não houve inconsistência nos campos.
Quando pressiono o botão Pesquisar Aluno.
Então o sistema chama a HU – Pesquisar Aluno.
4. Deve apresentar o nome do aluno.
Dado que o CPF foi informado (digitado ou pesquisado).
Quando o cursor sai do campo CPF (ou retorna da tela de pesquisa).
Então o sistema preenche o campo Nome do aluno.
5. Deve apresentar as turmas disponíveis de cada modalidade apresentada.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
Quando o aluno seleciona uma modalidade.
Então o sistema preenche o combo com as turmas 
 daquela modalidade.
(Continua)
Casos de Uso e Histórias de Usuário 63
6. Deve apresentar os dados de uma turma.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
Quando o aluno seleciona uma turma.
Então o sistema preenche os campos com os dados da turma.
7. Deve efetivar a matrícula.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
E a modalidade/turma foi selecionada.
Quando o aluno pressiona o botão Efetivar Matrícula.
Então o sistema deve salvar os dados da matrícula.
8. Deve retornar à tela anterior.
Dado que
Quando o aluno pressiona o botão Voltar.
Então o sistema deve retornar ao menu do sistema.
REGRAS DE NEGÓCIO DA HISTÓRIA
R1 – Consistência dos campos:
Inconsistência Mensagem
CPF Inválido. “CPF Inválido”.
CPF não cadastrado. “CPF não cadastrado”.
Dígito Verificador Inválido (O DV deve ser con-
sistido usando a rotina módulo 11 da Receita 
Federal).
“Dígito Verificador do CPF Inválido”.
OUTROS ARTEFATOS
Clique aqui para ver o Diagrama de Classes.
Clique aqui para ver o Diagrama de Sequência.
Clique aqui para ver o Diagrama de Atividades.
OBSERVAÇÕES TÉCNICAS
Usar os componentes do JavaScript.
HISTÓRIAS RELACIONADAS
Não há.
CRITÉRIOS DE ACEITAÇÃO – DETALHAMENTO (PARA TESTES)
Critério de contexto (Válido como premissa para todos os critérios):
Dado que acessei o menu “Realizar Matrícula”.
(Continua)
64 Análise de Sistemas
1. Deve apresentar as modalidades disponíveis ao ingressar na tela.
Dado que
Quando a tela é apresentada.
Então o combo modalidade deve estar preenchido com 
 “Natação” e “Hidroginástica”.
2. Não deve prosseguir com campos inconsistentes – Teste 1.
Dado que
Quando o aluno insere o CPF 88736364789 (Inválido).
Então o sistema verifica se os campos estão inconsistentes (R1).
3. Não deve prosseguir com campos inconsistentes – Teste 2.
Dado que
Quando o aluno insere o CPF 54477271972 (Válido, porém não 
cadastrado).
Então o sistema verifica se os campos estão inconsistentes (R1).
4. Deve permitir a pesquisa aos alunos cadastrados.
Dado que não houve inconsistência nos campos.
Quando pressiono obotão Pesquisar Aluno.
Então o sistema chama a HU – Pesquisar Aluno.
5. Deve apresentar o nome do aluno.
Dado que o CPF 9876457665 foi informado.
Quando o curso sai do campo CPF (ou retorna da tela de pesquisa).
Então o sistema preenche o campo Nome com “Joaquim José”.
6. Deve apresentar as turmas disponíveis de cada modalidade apresentada – 
Teste 1.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
Quando o aluno seleciona a modalidade “Natação”.
Então o sistema preenche o combo com as turmas:
Turma 1: Seg/Qua/Sex das 10h às 11h
Turma 2: Ter/Qui das 7h às 8h
7. Deve apresentar as turmas disponíveis de cada modalidade apresentada – 
Teste 2.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
Quando o aluno seleciona a modalidade “Hidroginástica”.
Então o sistema preenche o combo com as turmas:
Turma 3: Seg/Qua/Sex das 9h às 10h
Turma 4: Ter/Qui das 9h às 10h
(Continua)
Casos de Uso e Histórias de Usuário 65
8. Deve apresentar os dados de uma turma.
Dado que não houve inconsistência nos campos. 
E o nome do aluno está apresentado.
Quando o aluno seleciona a Turma 1.
Então o sistema preenche os campos:
Professor: Ambrósio Correa.
Mensalidade: R$ 195,00.
9. Deve efetivar a matrícula.
Dado que não houve inconsistência nos campos.
E o nome do aluno está apresentado.
E a modalidade/turma foi selecionada.
Quando o aluno pressiona o botão Efetivar Matrícula.
Então o sistema deve salvar os dados da matrícula.
10. Deve retornar à tela anterior.
Dado que
Quando o aluno pressiona o botão Voltar.
Então o sistema deve retornar ao menu do sistema.
Com isso, encerramos o tópico sobre Histórias de Usuário. Vale ressaltar que 
essa é uma prática bastante comum quando se utilizam Métodos Ágeis no proces-
so de desenvolvimento.
Como a premissa desses métodos é justamente a agilidade, o analista deve fa-
zer uma avaliação criteriosa do detalhamento necessário que deve ser usado na 
construção da História, pois em certos casos não há necessidade de se escrever a 
História completa e ele pode suprimir certos tópicos ou até mesmo escrevê-los de 
uma forma mais sucinta se a situação permitir.
Por exemplo, suponha que o analista irá repassar a História para um programa-
dor experiente, cujo trabalho seja conhecido e que não seja necessário o detalha-
mento de todos os tópicos. Nada impede então que o analista escreva somente os 
três primeiros tópicos (nome e descrição, desenho da tela e critérios de aceitação).
Sabendo que a premissa de Métodos Ágeis é não produzir trabalho desnecessá-
rio, as Histórias de Usuário se mostram uma ferramenta versátil e flexível para se 
utilizar nos ambientes de desenvolvimento de software.
No vídeo Caso de uso x his-
tória de usuário o professor 
Eduardo Castro mostra as 
diferenças entre casos de 
uso (trabalhados nas seções 
anteriores) e Histórias de 
Usuário (trabalhadas nesta 
seção).
Disponível em: https://www.youtube.
com/watch?v=YbwP1omurVU&t. 
Acesso em: 17 mar. 2021.
Vídeo
CONSIDERAÇÕES FINAIS
Este capítulo trouxe a primeira abordagem que deve ser feita para a modelagem 
de um sistema.
Vimos que, após a fase de Levantamento dos Requisitos (Iniciação), temos a fase de 
Elaboração com uma visão dos processos e descrição das funcionalidades.
Para isso, usamos os artefatos da UML conhecidos como Diagramas de Caso de Uso 
para a visão geral dos Requisitos e Histórias de Usuário para o seu detalhamento.
66 Análise de Sistemas
ATIVIDADES
1. A História de Usuário é um importante artefato para o detalhamento de como 
deve ser implementado um caso de uso. Quais são os objetivos dos critérios de 
aceitação?
2. Cite e explique os elementos de um Diagrama de Caso de Uso.
3. Quais são os objetivos de se fazer protótipos das telas do sistema?
REFERÊNCIAS
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 12. ed. Rio de Janeiro: Elsevier, 2012.
DEBONI, J. E. Z. Modelagem Orientada a Objetos com a UML. São Paulo: Futura, 2003.
GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.
HELM, R.; WILDT, D. Histórias de usuário. Por que e como escrever requisitos de forma ágil? 3. ed. Porto 
Alegre: Wildtech, 2014.
MELO, A. C. Desenvolvendo aplicações com UML 2.2. Rio de Janeiro: Brasport, 2011.
RUMBAUGH, J. et al. Modelagem e projetos baseados em objetos. São Paulo: Campus, 1994.
Objetos e classes 67
3
Objetos e classes
A primeira abordagem, na fase de Elaboração por meio de uma Lista 
de Requisitos, é a construção do Diagrama de Caso de Uso. A fase seguin-
te é a Prototipação das telas; por fim, seu detalhamento ocorre por meio 
das Histórias de Usuário. Esses artefatos darão uma visão funcional dos 
processos e de seu encadeamento. Ainda, ficará registrado o funciona-
mento de cada um deles e das regras de negócio que serão verificadas 
para que cumpram seus objetivos.
O próximo passo no processo de desenvolvimento do sistema é a 
identificação e a estruturação das entidades envolvidas no problema. Tais 
entidades, na Análise Orientada a Objetos, são chamadas objetos.
Neste capítulo, iremos conhecer não só os principais conceitos de 
objetos e classes, mas também os artefatos responsáveis por organizar 
esses objetos, a fim de dar a estrutura conceitual que o software necessita 
para distribuir os processos e suas responsabilidades.
3.1 Objetos e classes 
Vídeo A grande inovação trazida pela Análise Orientada a Objetos foi justamente o 
conceito de objeto. A organização da solução, em termos de objetos, fez com que 
os sistemas tivessem uma melhor estrutura. Com isso, diversos problemas das teo-
rias anteriores foram resolvidos.
Dentre todas as tarefas de modelagem de um sistema, a organização dos ob-
jetos é a de maior importância. Construir um sistema em torno de objetos é mais 
importante do que em torno de suas funções, pois são mais adaptáveis a modifica-
ções (RUMBAUGH et al., 1994).
A seguir veremos os principais conceitos necessários para se estruturar objetos 
e classes.
3.1.1 Objetos
O conceito básico da Análise Orientada a Objetos é, obviamente, o conceito de 
objeto.
Segundo Rumbaugh et al. (1994, p. 31), “definimos um objeto como um conceito, 
uma abstração, algo com limites definidos e significado em relação ao problema”.
68 Análise de Sistemas
Essa definição por si só mostra que quase tudo que manipulamos pode ser con-
siderado um objeto, e o sistema, com todos os seus componentes, irá se enquadrar 
nesse conceito.
Um objeto, para efeitos de estruturação do sistema, possui três elementos. 
São eles:
Cada objeto é único e deve ter uma identificação que não pode ser usada em outros objetos. A 
identificação é o nome do objeto. Por exemplo, uma pessoa pode ser identificada por seu CPF, 
pois esse número, pelo menos em termos legais, é único, ou seja, não existem duas pessoas com 
o mesmo número de CPF.
Identificação
São as características ou propriedades de um objeto. Eles identificam um determinado estado 
do objeto, pois um atributo pode ter um determinado valor que pode mudar no decorrer do 
tempo. Os atributos representam peculiaridades que costumam variar de um objeto para outro 
e permitem diferenciar um objeto de outro (GUEDES, 2018). Um atributo é uma propriedade com 
um intervalo de valores que ele pode assumir (BOOCH; RUMBAUGH; JACOBSON, 2012).
Atributos
Consistem no que o objeto consegue produzir; são as suas ações, suas operações, seu 
comportamento ou suas funções. É como o objeto reage a estímulos externos. Eles representam 
uma atividade que o objeto consegue executar (GUEDES, 2018). Um método pode ou não alterar 
o valor de um ou mais atributos; é a implementação de algum serviço que pode ser solicitado por 
algum objeto para mudar um ou mais comportamentos (BOOCH; RUMBAUGH; JACOBSON, 2012). 
A UML se refere aos métodos com o termo operações, porém o termo mais comumente utilizado 
na modelagem, e também na programação, é método.
Métodos
O quadro a seguir mostra algunsexemplos de objetos com sua identificação, 
seus valores e suas operações.
Quadro 1
Exemplos de objetos com atributos e métodos
Carro com placa 
BDF-7F91
Pessoa com nome de 
Joaquim José
Venda de uma 
joia
Empréstimo de 
Joaquim José
Atributos
Marca: VW
Ano: 2012
Km: 57.543
Atributos
Altura: 1,80 m
Cor do cabelo: preto
Gênero: masculino
Atributos
Número: 415
Data: 19/11/2020
Cliente: 
Joaquim José
Atributos
Número: 31.576
Quantidade de parcelas: 
48
Valor: R$ 1.000,00
Métodos
Andar
Frear
Buzinar
Métodos
Falar
Comprar
Dormir
Métodos
Vender
Mostrar produtos
Cancelar venda
Métodos
Calcular saldo devedor
Quitar empréstimo
Pagar parcela
m
at
sa
be
/ S
hu
tte
rs
to
ck
ta
tia
na
su
n/
 S
hu
tte
rs
to
ck
BI
nt
an
g 
Aj
i P
ria
m
bo
do
/ 
Sh
ut
te
rs
to
ck
M
us
ta
fa
 A
ra
in
/ S
hu
tte
rs
to
ck
Fonte: Elaborado pelo autor
Objetos e classes 69
Pelo fato de os atributos e métodos estarem juntos no objeto, dizemos que eles 
estão encapsulados no objeto. Esse encapsulamento é um importante conceito da 
Análise Orientada a Objetos; sua função é que os métodos “protejam” os atributos 
do acesso descontrolado, ou seja, o acesso aos atributos é realizado por intermédio 
de seus métodos.
3.1.2 Classes
Uma classe é um modelo, um protótipo usado para criar vários objetos com 
características semelhantes. Para Rumbaugh et al. (1994, p. 32), “uma classe de ob-
jetos descreve um grupo de objetos com propriedades semelhantes (atributos), 
o mesmo comportamento (operações), os mesmos relacionamentos com outros 
objetos e mesma semântica”.
Deboni (2003, p. 73) afirma que “A estrutura de um software é formada pelas 
classes do sistema. Analogamente ao esqueleto dos animais, as classes formam 
uma armação que dá a sustentação e a forma ao sistema”. Já de acordo com Guedes 
(2018, p. 44), “uma classe representa uma categoria, e os objetos são os membros ou 
exemplos dessa categoria”. As classes são meras descrições dos objetos que as com-
põem, são especificações que descrevem os seus objetos.
Podemos pensar em uma classe como o projeto de uma casa a ser construída. O 
projeto não é a casa, ela vai ser construída com base no projeto (BOOCH; RUMBAUGH; 
JACOBSON, 2012). Podemos também imaginar uma classe como uma receita de bolo. 
A receita não é o bolo, mas a descrição de como fazer um bolo. Quando usamos essa 
receita para efetivamente fazer um bolo, criamos um objeto (o bolo) dessa classe. O 
quadro a seguir ilustra essa situação.
Quadro 2
Exemplo de classe e seu objeto
Classe Objetos
Ingredientes
Massa:
2 xícaras (chá) de farinha de trigo
1 xícara (chá) de óleo
1 xícara (chá) de água
1 xícara (chá) de açúcar
1 colher (sopa) de fermento
2 ovos
Cobertura:
1 caixa ou lata de creme de leite
1 colher (chá) de manteiga
3 colheres (sopa) de achocolatado em pó
Modo de preparo
Misture a farinha de trigo e o açúcar. Bata os ovos, o óleo e a 
água; em seguida, misture com os demais ingredientes da mas-
sa, colocando o fermento por último.
Coloque em uma forma untada e asse por 30 min.
Derreta a manteiga e acrescente o creme de leite e o achocola-
tado, mexendo bem até ficar homogêneo.
Jogue a cobertura por cima do bolo assado.
Decore com frutas de sua preferência.
An
ut
aB
er
g/
 S
hu
tte
rs
to
ck
Fonte: Elaborado pelo autor.
70 Análise de Sistemas
Uma classe terá atributos e métodos, porém, como é uma mera descrição dos 
diversos objetos que serão criados por meio de sua especificação, nas classes não 
serão atribuídos os valores aos atributos (já que não se tem esses valores).
Ela será representada por um retângulo com três compartimentos. No primei-
ro, temos o nome da classe, no segundo a sua relação de atributos, e no terceiro a 
relação de métodos da classe. O quadro a seguir mostra essa representação com o 
exemplo da classe Empréstimo.
Quadro 3
Classe Empréstimo
Empréstimo
Atributos
Número
Quantidade de parcelas
Valor
Métodos
Calcular saldo devedor
Quitar empréstimo
Pagar parcela
Fonte: Elaborado pelo autor.
Para um empréstimo de uma instituição financeira, teríamos outros atributos, 
porém devemos relacionar todos que forem necessários para atender ao negócio 
de empréstimos.
3.1.3 Mensagens
Uma mensagem é a invocação de um método de determinada classe para que 
um método de outra classe seja executado.
É comum que em um determinado processo um objeto necessite buscar os va-
lores de atributos de outro objeto ou mesmo fazer alterações nesse valor. Devido 
ao conceito de encapsulamento, esse objeto não tem permissão para acessar dire-
tamente atributos de outros objetos, então a forma de se comunicar é por meio de 
mensagens entre objetos.
A figura a seguir mostra o exemplo de duas classes: Cliente e Venda. A seta en-
tre elas representa a troca de mensagens pelas quais um determinado método de 
uma classe está chamando um método de outra.
Objetos e classes 71
Figura 1
Exemplo de mensagens entre classes
Cliente
incluir
vender
Venda
nome
CPF
numero
data
Fonte: Elaborada pelo autor.
3.1.4 Herança
O termo herança é bastante forte na Análise Orientada a Objetos; na verdade, esse 
conceito nasceu com essa teoria. Ele também pode ser utilizado entre atores e casos de 
uso. A herança entre classes é a capacidade de uma classe (chamada de filha) herdar 
as características (atributos e métodos) de outra classe (chamada de mãe). Nesse caso, 
a classe filha terá todas as suas características e mais as características da classe mãe.
A herança permite que as características da classe mãe possam ser expandidas 
para a filha, incluindo novas características a ela.
Uma classe mãe pode ter uma ou mais filhas. Em outras palavras, usamos he-
rança quando existem diversos tipos de uma determinada classe.
A figura a seguir mostra o exemplo da classe Cliente. Digamos que uma insti-
tuição financeira tenha dois tipos de clientes: pessoas físicas (pessoas comuns) e 
pessoas jurídicas (empresas).
Figura 2
Exemplo de herança de classes

Cliente 
– endereco : texto 
– telefone : texto
PessoaFisica
– cpf : numero 
– nome : texto 
– email : texto

PessoaJuridica
– cnpj : numero 
– razaoSocial : texto
– enderecoSite : texto
Fonte: Elaborada pelo autor.
72 Análise de Sistemas
Nesse exemplo, a classe Cliente é a classe mãe, os tipos de clientes PessoaFisi-
ca e PessoaJuridica são as classes filhas (os nomes das classes estão escritos sem 
espaços e acentuação não por erro de grafia, mas porque estão escritos em um 
padrão que veremos adiante).
Note que os atributos comuns a todos os tipos (endereço e telefone) estão na 
classe Cliente (classe mãe). A leitura que deve ser feita então é que, por exemplo, 
um objeto da classe PessoaFisica tem os atributos CPF, nome, e-mail e mais os 
atributos endereço e telefone (atributos da classe mãe). O mesmo podemos falar 
da classe PessoaJuridica, que teria os atributos CNPJ, razão social, endereço do site, 
endereço e telefone. 
3.1.5 Padrões
Os nomes de classes, atributos e métodos devem ser escritos em um deter-
minado padrão. Isso facilita o entendimento e a comunicação entre os membros 
da equipe de desenvolvimento e irá balizar a implementação em uma linguagem 
de programação, já que é a etapa seguinte no processo de desenvolvimento do 
sistema.
A seguir, apresentaremos um padrão muito comum utilizado na modelagem UML.
Padrão para nomes de classes:
 • Utilizar nomes no singular.
 • Evitar abreviaturas.
 • Não utilizar hifens, tracinhos ou espaços.
 • Não usar acentuação ou cedilha.
 • Não usar preposições (de, para, do, com, entre outras).
 • Não usar palavras desgastadas (Tabelas, Cadastro).
 • A primeira letra do nome deve ser maiúscula e as demais, minúsculas.
Exemplos de nomes de classes no padrão:
 • Cliente
 • ProdutoEstoque
 • PessoaFisica
 • Venda
 • LivroEmprestimo
Padrão para nomes de atributos:
 • Não utilizar hifens, tracinhos ou espaços.
 • Não usar acentuação ou cedilha.
 • Não usar preposições (de, para, do, com, entre outras).
 • É possívelusar abreviaturas.
 • É possível usar palavras no plural.
 • Usar letras minúsculas. Caso haja vários nomes, o primeiro inicia com minús-
cula, e a partir do segundo a primeira letra deve ser maiúscula.
Um objeto também é chamado 
de instância de classe. Esse é 
um termo bastante comum, 
principalmente nas linguagens de 
programação orientadas a objetos.
Curiosidade
Objetos e classes 73
Exemplos de nomes de atributos no padrão:
 • idade
 • nomeCliente
 • sldDevedor (Saldo devedor)
 • qtdAlunosMatriculados (quantidade de alunos matriculados)
É comum que seja colocado o tipo de atributo após o seu nome. Um atributo 
pode ser de diversos tipos, como numérico, texto, data, número com casas deci-
mais, com valores Verdadeiro/Falso (boolean), dentre outros tipos. Esse tipo é colo-
cado após o nome do atributo e separado por dois pontos (:).
Como exemplo, temos os atributos da classe Professor com seus tipos, como 
mostra a figura a seguir.
Figura 3
Exemplo de tipos de atributos
– cpf : numero 
– nome : texto 
– dataAdmissao : data
Professor
Fonte: Elaborada pelo autor.
Padrão para nomes de métodos:
 • Não utilizar hifens, tracinhos ou espaços.
 • Não usar acentuação ou cedilha.
 • Não usar preposições (de, para, do, com, entre outras).
 • É possível usar abreviaturas. 
 • É possível usar palavras no plural.
 • Usar letras minúsculas. Caso haja vários nomes, o primeiro inicia com minús-
cula, e a partir do segundo a primeira letra deve ser maiúscula.
 • Como um método é uma ação, a primeira palavra deve ser um verbo no infi-
nitivo (verbo na forma natural), ou seja, somente a leitura do nome do méto-
do já deve indicar a sua ação.
Exemplos de nomes de métodos no padrão:
 • calcularSaldoDevedor
 • imprimirBoleto
 • incluirCliente
3.2 Relacionamentos entre as classes 
Vídeo Normalmente, uma classe não está isolada em um sistema. É bem comum que 
seus objetos estejam relacionados aos objetos de outras classes.
Ao identificarmos e organizarmos as classes, descobriremos que dificilmente 
elas trabalharão sozinhas. A maioria das classes colaboram umas com as outras e 
74 Análise de Sistemas
seus objetos se relacionam entre si (BOOCH; RUMBAUGH; JACOBSON, 2012). Para 
essa relação, damos o nome de relacionamento entre as classes.
A seguir, conheceremos os principais tipos de relacionamentos entre as Classes 
e qual é a finalidade de cada um.
3.2.1 Associação
O relacionamento de associação representa a existência de alguma conexão 
entre os objetos das classes, de modo que um objeto de uma classe deve manter 
alguma referência ao objeto da outra.
A necessidade de se associar classes é que essa associação permite que se na-
vegue entre os objetos das classes, pois eles estarão conectados por atributos co-
muns entre elas (BOOCH; RUMBAUGH; JACOBSON, 2012). Isso significa que, pelo 
objeto de uma classe, pode-se criar vínculos com objetos de outras classes.
A associação faz com que uma classe colabore com a organização de outra clas-
se (MELO, 2010). Por exemplo, analise na figura a seguir a classe contendo os fun-
cionários de uma empresa e a outra contendo os dependentes dos funcionários.
Figura 4
Exemplo de classes sem associação
– matricula : numero
– nome : texto 
Funcionario
– nome : texto
– dataNascimento : data
Dependente
Fonte: Elaborada pelo autor.
Se as duas classes não estivessem associadas, o que teríamos seria um cadastro 
de todos os funcionários de um lado e um cadastro de todos os dependentes de 
outro, porém não seria possível saber quem é dependente de qual funcionário. 
Perceberíamos então que esse cadastro não teria muita utilidade para o negócio 
de uma empresa.
Para que essa ligação seja feita, devemos utilizar o relacionamento de associa-
ção; com isso, saberíamos qual é o funcionário responsável pelo dependente.
Associações simples são representadas na forma de uma linha cheia conectan-
do as duas classes, como mostra a Figura 5.
Figura 5
Exemplo de classes relacionadas com associação
– matricula : numero
– nome : texto 
Funcionario
– nome : texto
– dataNascimento : data
Dependente
Fonte: Elaborada pelo autor.
As associações são bidirecionais, pois um objeto de uma classe está ligado a um 
objeto de outra classe e vice-versa, que são definidas, na maioria das vezes, pelas 
regras de negócio do sistema (RUMBAUGH et al.,1994).
Objetos e classes 75
Por conta disso, as associações devem possuir o que chamamos de multiplicida-
de, para indicar com qual quantidade de objetos uma classe está associada a outra 
(nos dois sentidos), ou seja, se escolhemos um objeto de uma classe, queremos 
saber com quantos objetos ele está relacionado a outra classe.
No exemplo da Figura 5, devemos escolher um determinado funcionário e fazer 
a seguinte pergunta: quantos dependentes um funcionário pode ter? A resposta 
obviamente é que ele pode ter muitos dependentes. Também devemos fazer a 
pergunta inversa: um dependente pode ser dependente de quantos funcionários? 
Nesse caso, a resposta também seria: ele pode ser dependente de muitos e, mais 
exatamente, de um (se somente um dos pais é funcionário da empresa) ou dois (se 
pai e mãe trabalham na empresa).
Em termos de notação nas classes, colocamos um asterisco (*) na linha repre-
sentando a associação ao lado da classe que identificamos existirem “muitos”. No 
caso desse exemplo, são ambos os lados, pois verificamos que um funcionário 
pode ter muitos dependentes e um dependente pode ser dependente de muitos 
funcionários. Assim, a notação final da associação dessas duas classes é como apa-
rece na figura a seguir.
Figura 6
Exemplo de classes relacionadas com associação e multiplicidade
* *– matricula : numero
– nome : texto 
Funcionario
– nome : texto
– dataNascimento : data
Dependente
Fonte: Elaborada pelo autor.
A seguir, veremos mais um exemplo do relacionamento de associação. Vamos 
pensar em uma editora que publica vários livros. Poderíamos ter duas classes, 
como mostra a Figura 7.
Figura 7
Exemplo de classes associadas
*– cnpj : numero 
– nome : texto
Editora
– titulo : texto
– isbn : data
Livro
Fonte: Elaborada pelo autor.
A leitura que fazemos desse diagrama é que uma editora publica muitos livros 
(pelo * na linha ao lado da classe Livro) e que um livro é publicado por uma única 
editora (a ausência de * no lado da classe Editora indica “um único”).
Como último exemplo do relacionamento de associação, vamos pensar em uma 
classe com todos os países do mundo e outra com todas as capitais dos países. 
Poderíamos ter duas classes, como mostra a figura a seguir.
76 Análise de Sistemas
Figura 8
Exemplo de classes associadas
– nome : texto
Pais
– nome : texto
Capital
Fonte: Elaborada pelo autor.
A leitura que fazemos é que um país tem uma capital (a ausência de * no lado da 
classe Pais indica “um único”) e que cada capital é capital de um único país.
Existem refinamentos da notação para melhor demonstrar a multiplicidade en-
tre as classes, como mostra o Quadro 4.
Quadro 4
Notações de multiplicidade
Notação Significado Exemplo
* Muitos *
Editora Livro
Uma editora pode publicar muitos livros. Um livro pode ser publicado 
por somente uma editora.
0..* Zero, um ou muitos 
0.. *
Cliente Seguro
Um cliente pode ter nenhum seguro, um seguro ou muitos seguros. Um 
seguro é de um único cliente.
1..* Um ou muitos 1.. *
Motoboy Motocicleta
Um motoboy pode ter uma ou mais motocicletas (mas pelo menos 
uma). Uma motocicleta é de apenas um motoboy.
1..6 De um até seis 1.. 6
Aluno Disciplina
10.. 40
Um aluno pode ter matrícula em uma a seis disciplinas. Uma disciplina 
pode ter de 10 a 40 alunos matriculados.
Fonte: Elaborado pelo autor.
Quando associamos duas classes, na qual um objeto da primeira classe está 
associado com muitos da outra classe, comumente chamamos essa associação de 
1-para-muitos. Quando muitos objetos de uma classe se associam com muitos 
de outra classe, chamamos essa associação de muitos-para-muitos. Finalmente, 
quando somente umobjeto de uma classe está associado a somente um de outra 
classe, chamamos de associação 1-para-1.
Objetos e classes 77
3.2.2 Agregação
Uma agregação entre duas classes denota que uma delas possui as característi-
cas do todo do objeto e a outra corresponde às suas partes. Ela é um tipo especial 
de associação.
Nas agregações, as duas classes devem ter a característica de todo-parte, na qual 
uma das classes representa o todo e a outra representa as partes desse todo.
Suponhamos um time de futebol, por exemplo. Todo time é composto de atle-
tas. Se tivermos a classe Time, ela representaria o todo, e os atletas seriam as par-
tes desse todo.
Podemos perceber que o time tem seus atributos próprios, como o seu nome, o 
técnico, entre outros. Também os atletas têm seus atributos, como nome, posição 
em que jogam, entre outros. Podemos ver isso na figura a seguir.
A notação para o relacionamento de agregação é uma linha com um losango 
vazado na extremidade, que representa a classe “todo”.
Figura 9
Exemplo de agregação
– nome : texto – nome : texto
Time Atleta
– tecnico : texto – posicao : texto
Fonte: Elaborada pelo autor.
Uma agregação permite que um objeto na classe que representa o todo não es-
teja relacionado com nenhuma parte. Por exemplo, podemos ter um determinado 
time que não tenha nenhum atleta ligado a ele. Da mesma forma, um objeto da 
classe “partes” também pode não estar ligado a nenhum objeto do todo, como um 
atleta que não esteja em nenhum time.
Nesse tipo de relacionamento, um objeto da classe “partes” pode estar relacio-
nado a vários objetos da classe “todo”; por exemplo, um atleta pode jogar em vários 
times.
Fique atento a essas duas observações, pois serão as diferenças para o próximo 
tipo de relacionamento: a composição.
Outro exemplo de agregação seria uma playlist com músicas. Essa representa-
ção está na figura a seguir.
Figura 10
Exemplo de agregação
Playlist Musica
Fonte: Elaborada pelo autor.
78 Análise de Sistemas
A playlist seria a classe “todo” e as músicas dela seriam suas “partes”.
3.2.3 Composição
A composição é um tipo especial de agregação, ou seja, também tem a caracte-
rística todo-parte, porém, nesse caso, uma parte deve pertencer a um único todo.
No caso de uma composição, não faz sentido pensarmos o objeto da classe 
“todo” sem os objetos da classe que a compõem, isto é, as partes não existem sem 
o todo e vice-versa.
Na composição, o tempo de vida do todo e das partes coincidem. Uma vez 
criados os objetos de ambas as classes, eles nascem e morrem juntos (BOOCH; 
RUMBAUGH; JACOBSON, 2012).
Como exemplo, podemos pensar em um livro com capítulos. O livro não tem 
sentido sem seus capítulos e um capítulo só pode pertencer a um único livro; não 
tem sentido cadastrarmos um livro sem capítulos e vice-versa. Dizemos então que 
um livro é composto de seus capítulos. Esse exemplo é representado na Figura 11.
A notação para o relacionamento de composição também é uma linha com um 
losango na extremidade, que representa a classe “todo”, porém, nesse caso, esse 
losango é preenchido. 
Figura 11
Exemplo de composição
– titulo : texto – nome : texto
Livro Capitulo
– isbn : texto
Fonte: Elaborada pelo autor.
.3.2.4 Classe de associação
Pode ocorrer de uma associação entre duas classes necessitar de um atributo. 
Quando isso ocorre, uma classe de associação deve ser colocada entre duas classes 
com associação muitos-para-muitos.
Suponhamos uma classe com diversas receitas de pratos e outra contendo di-
versos ingredientes, como mostra a figura a seguir.
Figura 12
Associação com multiplicidade muitos-para-muitos
**– nome : texto – nome : texto
Receita Ingrediente
– modoPreparo : texto
Fonte: Elaborada pelo autor.
Inicialmente, temos uma associação com cardinalidade muitos-para-muitos, 
já que uma receita tem muitos ingredientes e um ingrediente pode estar em 
várias receitas.
Objetos e classes 79
Se pensarmos agora no atributo quantidade, podemos verificar que ele não se 
enquadra em nenhuma das duas classes, porque essa informação na verdade trata 
das duas classes, ou seja, “quantidade de um determinado ingrediente em uma 
determinada receita”.
Para acomodar então esse atributo, podemos criar o que chamamos de classe 
de associação. Ela é colocada entre as duas classes e ligada com uma linha pontilha-
da, como mostra a figura a seguir.
Figura 13
Exemplo de classe de associação
IngredienteReceita – nome : texto – nome : texto
– quantidade : numero
Receita Ingrediente
IngredienteReceita
– modoPreparo : texto
Fonte: Elaborada pelo autor.
Note que para o nome dessa nova classe foi utilizado o nome das duas classes. 
Isso é recomendado, uma vez que o atributo nela contido é um atributo que se 
refere a ambas as classes.
3.2.5 Herança
Por fim, o último tipo de relacionamento que veremos é o relacionamento de 
herança.
O conceito de herança já foi aprendido anteriormente. Veremos agora somente 
a sua notação, que é uma seta vazada saindo das classes filhas (os tipos) e apontan-
do para a classe mãe (mais geral).
Figura 14
Exemplo de herança
– cpf : numero
– nome : texto
– email : texto
– cnpj : numero
– razaoSocial : texto
– enderecoSite : texto
– endereço : texto
– telefone : texto
PessoaFisica PessoaJuridica 
Cliente

Fonte: Elaborada pelo autor.
Existem outros tipos de relacionamentos menos importantes na UML que não 
abordaremos neste livro.
Existe herança quando conseguir-
mos colocar a frase “é um” ou “é 
uma” entre a classe filha e a classe 
mãe e a relação tiver sentido. No 
exemplo, uma PessoaFisica é um 
cliente. Como isso é verdadeiro, 
existe herança entre as classes.
Importante
O vídeo Programação 
Orientada a Objetos (POO) 
// Dicionário do Programa-
dor, publicado pelo canal 
Código Fonte TV, ilustra 
de maneira lúdica alguns 
conceitos trabalhados 
nesta seção. Ele pode ser 
acessado no link a seguir.
Disponível em: https://www.youtube.
com/watch?v=QY0Kdg83orY. Acesso 
em: 17 mar. 2021.
Vídeo
80 Análise de Sistemas
3.3 Diagrama de Classes
Vídeo Depois de conhecermos todos os principais conceitos de objetos, classes e seus 
relacionamentos, devemos construir um diagrama, no qual serão colocadas todas 
as classes de um determinado sistema, com seus atributos, métodos e relaciona-
mentos. Fazemos isso construindo o Diagrama de Classes.
Esse é um dos principais diagramas da UML e é de extrema importância para 
a arquitetura da solução informatizada que está sendo construída. Ele é escrito 
pelo analista de sistemas com base nos Requisitos, Casos de Uso e nas Histórias 
de Usuário.
Para efeitos didáticos, iremos construir o diagrama em dois níveis.
3.3.1 Diagrama de Classes de nível 1
No Diagrama de Classes de nível 1, colocamos as classes do sistema, seus atri-
butos próprios e seus relacionamentos com outras classes. Nessa etapa, não co-
locaremos os métodos das classes, pois o melhor momento para se identificar os 
métodos é a construção do Diagrama de Sequência.
Como exemplo de construção do Diagrama de Classes de nível 1, iremos abor-
dar uma Escola da Natação. Com base em seus Requisitos e protótipos de telas, 
iremos identificar todas as classes e atributos necessários, bem como tentar iden-
tificar o relacionamento entre as classes.
O quadro a seguir apresenta a Lista de Requisitos, agora acrescida dos atributos 
das entidades envolvidas.
Quadro 5
Problema da Escola da Natação
(Continua)
Requisito Descrição Regras de negócio Atributos
R1 - Manter cadastro 
dos alunos
Permitir o cadas-
tro completo dos 
alunos.
Permitir pesquisar, incluir, 
alterar e consultar.
Não permitir a exclusão de 
um aluno, somente marcar 
como inativo.
CPF, nome, endereço.
R2 - Manter cadastro 
dos professores
Permitir o cadas-
tro completo dos 
professores.
Permitir pesquisar, incluir, 
alterar, excluir e consultar.
CPF, nome, data de 
admissão, modalidade 
(natação ou hidrogi-
nástica).
R3 - Manter cadastro 
das turmas
Permitir o cadas-
tro completo das 
turmas, sua mo-
dalidademuito esforço (e dinheiro) 
para mantê-lo funcionando, sempre impactando negativamente a imagem da em-
presa e seus negócios.
Nosso objetivo na tarefa de desenvolver um sistema é fazer com que todas as 
etapas do desenvolvimento sejam realizadas de modo fluente, tranquilo e, princi-
palmente, com produtividade, baixo custo e qualidade.
1.1.1 Conceitos iniciais
Segundo Stair e Reynolds (2015), sistemas de informação são componentes 
que interagem entre si, coletando, manipulando e disseminando dados e informa-
ções, a fim de atingir um objetivo. Já Laudon e Laudon (2005) definem sistemas de 
informação como um conjunto de elementos inter-relacionados que coleta, proces-
sa, armazena e distribui informações com o intuito de apoiar a tomada de decisão, 
a coordenação e o controle de uma organização.
Já um software pode ser definido como um conjunto de instruções (programa de 
computador) que, ao ser executado por um computador, produz um determinado 
resultado desejado e adequado à finalidade para a qual foi construído (PRESSMAN; 
MAXIM, 2016). É o termo genérico usado para descrever programas executados em 
um computador que manipulam dados e produzem o resultado para o qual foram 
projetados. O termo computador pode se referir a notebook, celular, tablet, smart 
TV, console de videogame etc.
Portanto, os softwares correspondem à parte lógica do computador, consistin-
do em programas que controlam o trabalho do hardware (STAIR; REYNOLDS, 2015).
A Figura 1 caracteriza um software e representa os componentes de um sistema 
de informações (SI).
Como exemplos de software podemos citar um 
site da internet, um aplicativo de celular, um editor de 
textos, planilhas eletrônicas, o programa que controla 
uma smart TV, um navegador de páginas na internet, 
um jogo, um editor de áudio ou vídeo, um app de strea-
ming, um controlador de semáforos das ruas e muitos 
outros. Por suas áreas de atuação, podem ser sistemas 
de informação, softwares embarcados, aplicativos de 
celular, softwares científicos, aplicações web, softwa-
res de inteligência artificial, dentre outros.
Figura 1
Componentes de um SI
Dados de 
entrada
Processamento
Dados de saída
• Software
Fonte: Elaborada pelo autor.
Introdução à análise de sistemas e Levantamento de Requisitos 11
Sistemas de informação e software se confundem. Tratar um deles como sendo 
o outro não traz grandes problemas, pois o que realmente importa para os usuá-
rios é a sua utilização.
1.1.2 Histórico da análise de sistemas
Os computadores surgiram na década de 1950, porém, até o início dos anos 
1970, eram utilizados basicamente no meio científico e militar. Com a populariza-
ção do seu uso, principalmente em empresas, sistemas de informações começa-
ram a ser construídos com o objetivo de resolver ou informatizar os processos de 
negócio dessas empresas.
Inicialmente as linguagens de programação eram complexas, a produção de 
programas demandava muitas linhas de código e a forma de se passar instruções 
aos computadores era difícil e exigia muita habilidade dos programadores. Não era 
rara a produção de programas imensos, porém a maioria do corpo do programa 
se referia à maneira de se comunicar com a máquina, sendo que a resolução do 
problema do negócio propriamente dito tinha de ficar em segundo plano.
Com isso, os programadores se preocupavam muito com as questões técni-
cas dos computadores e não conseguiam focar aquilo que realmente importava, 
ou seja, resolver o problema do seu usuário. Por causa disso, muitos erros eram 
cometidos, tanto de interpretação do negócio como de resolução equivocada do 
problema. Também, nessa época, não existia nenhuma estruturação dos proces-
sos a serem programados e muito menos uma organização dos dados utilizados 
pelo sistema.
A Figura 2 exemplifica essa situação. No lado esquerdo da figura, na primeira 
coluna, temos um conjunto de programas do sistema e, no lado direito, na segunda 
coluna, um exemplo de um conjunto de dados totalmente desestruturado. Podemos 
imaginar a dificuldade de manipular esses dados sem nenhuma estruturação, bem 
como de manter atualizada a estrutura depois de inserções de novos dados.
Figura 2
Programas e dados desestruturados
Fonte: Elaborada pelo autor.
Dados
Dados x
. . .
. . .
Dados y
. . . 
. . . 
Dados z
Programa 1
Programa 2
Programa 3
Programa n
12 Análise de Sistemas
Para amenizar esse cenário, nos anos 1970 surgiram as teorias de análise. Tais teo-
rias tinham o objetivo de fazer com que os profissionais tivessem um tempo para ana-
lisar o problema e estruturar uma solução antes da efetiva codificação dos programas.
1.1.2.1 Análise Estruturada
A primeira teoria de análise que surgiu foi chamada de Análise Estruturada 
(YOURDON; CONSTANTINE, 1992). Basicamente a referida teoria procurou dar uma 
estrutura aos processos e introduziu o conceito de diagramas para demonstrar a 
solução do problema. Surgiram então os dois primeiros diagramas básicos da Aná-
lise, o Fluxograma e o Diagrama de Fluxo de Dados (DFD), que foram amplamente 
utilizados até meados dos anos 1980.
As Figuras 3 e 4 mostram um exemplo de Fluxograma e um DFD (no qual está re-
presentado o negócio de uma locadora de filmes, algo que não existe mais nos dias de 
hoje, porém o exemplo foi usado para refletir como a teoria é antiga e ultrapassada).
Figura 3
Exemplo de fluxograma
Fonte: Elaborada pelo autor.
Inserir cartão
Cliente informa a senha Sistema emite a mensagem 
“Senha inválida”
Cliente informa o valor Sistema libera o dinheiro
>
>
Figura 4
Exemplo de DFD
Fonte: Elaborada pelo autor.
Admin. 
videolocadora
Manter clientes Locar fitas
Manter fitas Entidade externa
ClienteGerar relatórios
D1 Clientes D3 Mov. fitas
D2 Fitas
Comando
Dados fita
Dados fita
Dados fita
Dados fita
Dados fita
Doc. controle
Recibo
Relatórios
Solicitação
Dados cliente
Dados cliente
Dados Locação
Dados locaçãoDados Cliente
Carteira
Introdução à análise de sistemas e Levantamento de Requisitos 13
Porém, mesmo com a introdução dessa fase de análise no processo de desen-
volvimento do sistema, problemas e dificuldades continuavam acontecendo. A 
questão agora era a falta de estruturação dos dados que o sistema manipulava. 
Não existia uma forma definida e cada sistema organizava seus dados da maneira 
que imaginava ser a correta para a sua solução. Com isso, diversos problemas de 
manipulação dos dados ocorriam, sistemas diferentes não conseguiam se comuni-
car e o esforço para se trabalhar com esses dados era muito grande.
Surgiram então os Sistemas Gerenciadores de Banco de Dados (SGBD), am-
plamente utilizados até os dias de hoje. A proposta desses sistemas era armazenar 
e fornecer ferramentas de manipulação desses dados, fazendo com que os pro-
gramas somente fizessem solicitações aos SGBDs para consultar, atualizar, incluir 
e excluir seus dados. Porém, para a utilização desses sistemas, foi necessária a 
estruturação dos dados. Surgiram então as técnicas de organização dos dados em 
forma de tabelas, linhas e colunas e foram introduzidas técnicas de normalização e 
relacionamentos entre os dados. Com isso, surgiram os bancos de dados.
A Figura 5 mostra a estrutura da modelagem da Análise Estruturada.
Fonte: Elaborada pelo autor.
Admin.
videolocadora
Manter clientes Locar fitas
Manter fitas Entidade externa
ClienteGerar relatórios
D1 Clientes D3 Mov. fitas
D2 Fitas
Comando
Dados fita
Dados fita
Dados fita
Dados fita
Dados fita
Doc. Controle
Recibo
Relatórios
Solicitação
Dados cliente
Dados cliente
Dados locação
Dados LocaçãoDados cliente
Processos
Programa 1
Programa 2
Programa 3
Programas
Carteira
Figura 5
Análise estruturada Banco de dados
Aluno
cpf int PK
nome Text N
Matricula_numero int FK
Curso
codigo int PK
nome Text
Professor
cpf int PK
matricula int
nome text
Disciplina
codigo int PK
nome int
Curso_codigo int FK
Professor_cpf int FK
Matrícula
numero int PK
cpf_aluno int
codigo_disciplina int
Disciplina_codigo(natação 
ou hidroginástica), 
seus dias/horários 
e qual professor é 
responsável.
Não permitir o cadastro 
de duas turmas da mesma 
modalidade no mesmo 
horário.
Uma turma deve ter 
um nome (Turma 1, 
Turma 2 etc.), uma 
modalidade (natação 
ou hidroginástica), 
os dias da semana, a 
turma, os horários, o 
professor e o valor da 
mensalidade.
Objetos e classes 81
Requisito Descrição Regras de negócio Atributos
R4 – Matricular 
alunos
Matricular os alu-
nos nas turmas.
Pessoas com mais de 
80 anos só podem se 
matricular na modalidade 
hidroginástica.
Número da matrícula, 
data, turma e aluno.
R5 - Registrar fre-
quência
Registrar frequên-
cia no diário de 
classes de cada 
aula.
Aluno, data, 
frequência.
Fonte: Elaborado pelo autor.
A seguir serão apresentados os passos para a construção do Diagrama de Clas-
ses de nível 1.
3.3.1.1 Passo 1 – Identificação das classes e seus atributos
De posse desses Requisitos, podemos identificar as seguintes classes: Aluno, 
Professor, Turma, Modalidade, Matricula, Diario.
Inicialmente, criamos um Diagrama de Classes contendo as classes e seus atri-
butos, como mostra a figura a seguir.
Figura 15
Identificação das classes
– cpf : numero 
– nome : texto 
– endereco : texto
– codigo : numero 
– data : data
– data : data 
– frequentou : boolean 
– cpf : int 
– nome : texto 
– dataAdmissao : data 
– descricao : texto
– descricao : texto 
– valorMensalidade : int 
Aluno
Matricula 
Diario 
Professor
Modalidade 
Turma
Esta classe terá dois objetos: 
Natação 
Hidroginástica
As turmas nesta classe terão o seguinte formato: Turma 1 – 
Seg/Qua/Sex das 9h às 10h
Fonte: Elaborada pelo autor.
Algumas observações:
 • Note que foram colocados somente os atributos próprios de cada classe. Por 
exemplo, na classe Professor não foi colocado o atributo modalidade, que 
consta no Quadro 5, como um dos atributos de um professor. Isso ocorre 
porque Modalidade é uma outra classe, e a informação da modalidade em 
82 Análise de Sistemas
que o professor atua será representada pelo relacionamento entre Professor 
e Modalidade, que será colocado na sequência da construção do diagrama.
 • Na classe Turma não foi colocado o atributo professor da turma, pois existe 
uma classe Professor e essa informação (qual é o professor da turma) tam-
bém irá aparecer por meio de um relacionamento entre as classes Turma e 
Professor. O mesmo ocorre com a modalidade da turma.
 • A classe Matricula também não tem os atributos aluno e turma pelo mesmo 
motivo; serão feitos relacionamentos com essas classes.
 • Os quadros abaixo das classes Modalidade e Turma são explicativos e dão 
exemplo de quais serão os objetos das classes.
3.3.1.2 Passo 2 – Colocação dos relacionamentos entre as classes
Nesse passo, analisamos as classes para verificar quais relacionamentos deve-
mos colocar entre elas. Como vimos anteriormente, serão os relacionamentos que 
irão complementar as informações das classes.
 • Relacionamento 1: podemos perceber que a classe Aluno e a classe Profes-
sor têm atributos em comum (CPF e nome) e que aluno e professor são tipos 
de pessoa. Podemos então usar o relacionamento de herança, criando uma 
classe mãe chamada Pessoa, colocando nela esses dois atributos e relacio-
nando com as classes filhas Aluno e Professor, como mostra a Figura 16.
Figura 16
Herança entre Pessoa, Aluno e Professor
– endereco : texto – dataAdmissao : data
– cpf : numero 
– nome : texto
Aluno Professor
Pessoa

Fonte: Elaborada pelo autor.
 • Relacionamento 2: um professor poderá atuar em várias modalidades (por 
exemplo, pode dar aula de natação e de hidroginástica) e uma modalidade 
terá muitos professores. Então, identificamos que existe uma associação 
muitos-para-muitos entre as duas classes, como mostra a figura a seguir.
Objetos e classes 83
Figura 17
Associação entre as classes Professor e Modalidade
– endereco : texto – dataAdmissao : data
– descricao : texto
– cpf : numero 
– nome : texto
Aluno Professor
Modalidade 
Pessoa

Esta classe terá dois objetos: 
Natação 
Hidroginástica
*
*
Fonte: Elaborada pelo autor.
 • Relacionamento 3: uma turma terá um professor e um professor poderá 
atuar em várias turmas. Então, identificamos que existe uma associação 
1-para-muitos entre as duas classes, como mostra a figura a seguir.
Figura 18
Associação entre as classes Professor e Turma
– endereco : texto
– descricao : texto 
– valorMensalidade : int 
– dataAdmissao : data
– descricao : texto
– cpf : numero 
– nome : texto
Aluno
Turma 
Professor
Modalidade 
Pessoa

Esta classe terá dois objetos: 
Natação 
Hidroginástica
*
*
As turmas nesta classe terão o seguinte formato: 
Turma 1 – Seg/Qua/Sex das 9h às 10h
*
Fonte: Elaborada pelo autor.
84 Análise de Sistemas
 • Relacionamento 4: uma turma terá uma modalidade e uma modalidade terá 
várias turmas. Então, identificamos que existe uma associação 1-para-muitos 
entre as duas classes, como mostra a figura a seguir.
Figura 19
Associação entre as classes Turma e Modalidade
– endereco : texto
– descricao : texto 
– valorMensalidade : int 
– dataAdmissao : data
– descricao : texto
– cpf : numero 
– nome : texto
Aluno
Turma 
Professor
Modalidade 
Pessoa

Esta classe terá dois objetos: 
Natação 
Hidroginástica
*
*
As turmas nesta classe terão o seguinte formato: 
Turma 1 – Seg/Qua/Sex das 9h às 10h
*
*
Fonte: Elaborada pelo autor.
 • Relacionamento 5: a classe Matricula, por sua vez, deve ter a informação de 
qual aluno se matriculou e em qual turma. Se analisarmos as classes Aluno 
e Turma, podemos perceber que entre elas existe uma associação do tipo 
muitos-para-muitos, já que uma turma pode ter muitos alunos e um aluno 
pode ser de muitas turmas. Poderíamos então ter somente uma associação 
muitos-para-muitos. Porém, nesse caso específico, devemos guardar duas 
informações específicas dessa associação: o código e a data da matrícula. 
Temos caracterizado então o tipo de relacionamento classe de associação, 
como mostra a figura a seguir.
Objetos e classes 85
Figura 20
Classe de associação Matricula

– endereco : texto
– descricao : texto 
– valorMensalidade : int 
– dataAdmissao : data
– descricao : texto
– cpf : numero 
– nome : texto
Aluno
Turma 
– codigo : numero 
– data : data
Matricula
Professor
Modalidade 
Pessoa
Esta classe terá dois objetos: 
Natação 
Hidroginástica
*
*
As turmas nesta classe terão o seguinte formato: 
Turma 1 – Seg/Qua/Sex das 9h às 10h
*
*
Matricula
Fonte: Elaborada pelo autor.
 • Relacionamento 6: finalmente, temos o relacionamento da classe Diario, que 
deve registrar as frequências dos alunos nas turmas em que estão matriculados. 
Então, basta fazermos uma associação 1-para-muitos com a classe Matricula, na 
qual temos as informações dessas duas classes, como mostra a Figura 21.
Figura 21
Associação entre as classes Matricula e Diario
– cpf : numero 
– nome : texto
Pessoa

– endereco : texto
– descricao : texto 
– valorMensalidade : int 
– dataAdmissao : data
– descricao : texto
Aluno
Turma 
– codigo : numero 
– data : data
Matricula
– data : data 
– frequentou : boolean 
Diario 
Professor
Modalidade 
Esta classe terá dois objetos: 
Natação 
Hidroginástica
*
*
As turmas nesta classe terão o seguinte formato: 
Turma 1 – Seg/Qua/Sex das 9h às 10h
*
*
*
Matricula
Fonte: Elaborada pelo autor.
86 Análise de Sistemas
Com isso, finalizamos a construção do Diagrama de Classes de nível 1 com todas 
as classes relacionadas.
3.3.2 Diagrama de Classes de nível 2 
O Diagrama de Classes de nível 2 é uma expansão do nível 1, no qual são de-
talhados os atributos advindos das associações. Esses atributos são chamados de 
atributos associados ou atributos de ligação (RUMBAUGH et al., 1994).
Se analisarmos a associação entre as classes Modalidade e Turma, por exemplo, 
podemos perceber que uma turma é de uma modalidade. Sendo assim, podemos 
explicitar o atributo modalidade na classeTurma (aqui o termo modalidade está em 
letra minúscula porque segue o padrão para nomes de atributos). A figura a seguir 
mostra esse atributo na classe Turma e indica que o seu tipo é Modalidade (após o 
símbolo :), que está em letra maiúscula por se tratar de uma classe.
Figura 22
Indicação do atributo modalidade na classe Turma
*
– descricao : texto
Modalidade
– descricao : texto 
– valorMensalidade : int 
- modalidade : Modalidade
Turma
Fonte: Elaborada pelo autor.
Da mesma forma, se analisarmos o inverso, podemos perceber que uma mo-
dalidade é de várias turmas, então podemos explicitar o atributo turmas na classe 
Modalidade. Para representar que uma modalidade tem várias turmas, colocamos 
no tipo do atributo a indicação ArrayList, um termo usado em linguagens de progra-
mação para indicar uma lista. A Figura 23 mostra esse atributo na classe Modalida-
de e indica que o seu tipo é ArrayList (após o símbolo :). A leitura que se 
faz é a seguinte: uma Modalidade tem uma lista de turmas.
Figura 23
Indicação do atributo turmas na classe Modalidade
*
– descricao : texto
– turmas : ArrayList
Modalidade
– descricao : texto 
– valorMensalidade : int 
- modalidade : Modalidade
Turma
Fonte: Elaborada pelo autor.
Se colocarmos os atributos associados em todas as classes, o Diagrama de Clas-
ses de nível 2 ficará como mostra a figura a seguir.
Objetos e classes 87
Figura 24
Exemplo de Diagrama de Classes de nível 2
– cpf : numero 
– nome : texto
Pessoa

– endereco : texto
– matriculas: ArrayList
– dataAdmissao : data 
– turmas : ArrayList 
– modalidades: ArrayList 
– descricao : texto 
– valorMensalidade : numero 
– modalidade : Modalidade 
– matriculas : ArrayList
– codigo : numero 
– data : data 
– aluno : Aluno 
– turma : Turma 
– diarios : ArrayList 
– data : data 
– frequentou : boolean 
– matricula : Matricula
– descricao : texto 
– turmas : ArrayList 
– professores : ArrayList 
Aluno Professor
TurmaMatricula 
Diario 
Modalidade 
* *
*
*
*
Esta classe terá dois objetos: 
Natação 
Hidroginástica
Matricula
– As turmas nesta classe terão o seguinte 
formato: Turma 1 – Seg/Qua/Sex das 9h às 10h
Fonte: Elaborada pelo autor.
Podemos perceber que em nenhum momento da construção do Diagrama de 
Classes foram colocados os métodos das classes. O melhor momento para colocá-
-los é após a confecção dos Diagramas de Sequência. Após essa inclusão de méto-
dos, teremos em definitivo um Diagrama de Classes do sistema.
3.4 Diagrama de objetos 
Vídeo O Diagrama de Objetos tem por objetivo a visualização de alguns objetos nas 
classes. Com isso, é possível verificar se foram identificados todos os atributos ne-
cessários para as classes, se algum deles está na classe errada, e ter uma visão ge-
ral de como serão os objetos das classes quando o sistema for efetivamente usado.
88 Análise de Sistemas
Esse diagrama está amplamente associado ao Diagrama de Classes e pode ser 
considerado seu complemento, pois fornece uma visão dos valores armazenados 
pelos objetos em um determinado momento (GUEDES, 2018).
Segundo Melo (2010, p. 147), “o diagrama de objetos é muito útil para facilitar a 
modelagem de estruturas complexas de dados”. A construção desse diagrama tem 
como base o Diagrama de Classes de nível 1, em que cada classe é colocada e são 
atribuídos valores aos atributos ao lado de cada um deles (após os dois pontos, 
depois do nome do atributo e entre aspas).
Vamos usar como exemplo as classes Turma e Modalidade. Para cada classe, 
criamos um ou mais objetos em retângulos, cada um representando um objeto. 
Note que o nome do objeto reflete seu conteúdo e nos seus atributos são coloca-
dos valores.
Nesse exemplo, foram colocados três objetos da classe Turma, as turmas 1, 2 e 
3, e dois objetos da classe Modalidade, natação e hidroginástica. Esse exemplo está 
ilustrado na figura a seguir.
Figura 25
Exemplo dos objetos turma e modalidade
– descricao : Turma 1 Seg/Qua/Sex das 9h às 10h 
– valorMensalidade : 120,00
– descricao : “Natação”
 – descricao : “Hidroginástica”
– descricao : Turma 2 Ter/Qui das 8h às 9h 
– valorMensalidade : 110,00
– descricao : Turma 3 Seg/Qua das 7h às 8h 
– valorMensalidade : 230,00 
turma 1
modalidade Natação
modalidade Hidroginástica
turma 2
turma 3
Fonte: Elaborada pelo autor.
Podemos ter a visão de quais turmas teremos na Escola de Natação, suas 
informações e de quais modalidades elas serão. Esse é o objetivo do Diagrama 
de Objetos.
A figura a seguir mostra um Diagrama de Objetos completo do sistema da Es-
cola de Natação.
O vídeo História da Progra-
mação Orientada a Objetos, 
publicado pelo canal 
segunda.tech, apresenta 
alguns fatos bastante inte-
ressantes. Assista ao vídeo 
acessando o link a seguir.
Disponível em: https://www.youtube.
com/watch?v=UjpTvgau7mU. Acesso 
em: 17 mar. 2021.
Vídeo
Objetos e classes 89
Figura 26
Diagrama de Objetos da Escola de Natação
 – cpf : 12345678901 
– nome : “João da Silva” 
– endereco : “Rua das Carmelitas, 20” 
– codigo : 1070 
– data : “10/03/2020”
– cpf : 3765487611 
– nome : “José da Silva” 
– dataAdmissao : “01/02/2005” 
aluno João
matricula João na turma 1
– data : “10/11/2020” 
– frequentou : “Sim” 
– data : “11/11/2020” 
– frequentou : “Não” 
diario de 10/11/2020 diario de 11/11/2020
professor José
matrícula João na turma 1 
– descricao : Turma 1 Seg/Qua/Sex das 9h às 10h 
– valorMensalidade : 120,00
– descricao : “Natação”
 – descricao : “Hidroginástica”
– descricao : Turma 2 Ter/Qui das 8h às 9h 
– valorMensalidade : 110,00
– descricao : Turma 3 Seg/Qua das 7h às 8h 
– valorMensalidade : 230,00 
turma 1
modalidade Natação
modalidade Hidroginástica
turma 2
turma 3
Fonte: Elaborada pelo autor.
Esse diagrama mostra que a turma 1 é da modalidade natação e tem o profes-
sor José e o aluno João, que frequentou a aula no dia 10/11/2020 e faltou no dia 
11/11/2020.
Com isso, é possível termos uma visão geral de como serão os objetos que irão 
compor o sistema.
90 Análise de Sistemas
CONSIDERAÇÕES FINAIS
Este capítulo trouxe uma importante abordagem a ser feita para a modelagem de 
um sistema. A estruturação de objetos e classes, por meio de um Diagrama de Clas-
ses, é de vital importância para o sucesso do sistema. Sua estrutura irá balizar toda a 
arquitetura de implementação do sistema em termos de linguagens de programação 
e banco de dados.
Fazer um bom Diagrama de Classes facilita o trabalho do analista de sistemas de 
conduzir a equipe de programação e também dos próprios programadores, que terão 
uma visão geral da arquitetura criada como solução do problema.
ATIVIDADES 
1. Explique o que é uma classe.
2. Quais são os cinco tipos de relacionamentos entre classes?
3. Qual é o objetivo de um Diagrama de Objetos?
REFERÊNCIAS 
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 12. ed. Rio de Janeiro: Elsevier, 2012.
DEBONI, J. E. Z. Modelagem Orientada a Objetos com a UML. São Paulo: Futura, 2003.
GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.
MELO, A. C. Desenvolvendo aplicações com UML 2.2. Rio de Janeiro: Brasport, 2010.
RUMBAUGH, J. et al. Modelagem e projetos baseados em objetos. São Paulo: Campus, 1994.
Diagrama de Sequência 91
4
Diagrama de Sequência
Neste capítulo iremos conhecer o Diagrama de Sequência, um im-
portante artefato da UML que colabora para o desenho da arquitetura 
do sistema.
A modelagem de um sistema usando a UML se baseia em três pilares. 
O primeiro deles corresponde à visão dos processos, da organização dos 
Requisitos, das funções do sistema. Para a modelagem desses quesitos, 
trabalhamos com o Diagrama de Caso de Uso, a Prototipação de telas e as 
Histórias de Usuário. O segundo pilar é voltado à visão dos objetos e das 
classes, na qual, além de listar todos os objetos envolvidos no problema, 
identificamos seus atributos e o relacionamento entre essas classes.O 
terceiro pilar da UML é justamente a ligação desses dois primeiros por 
meio do Diagrama de Sequência.
Iremos aprender todos os elementos, bem como o modo de construir 
esse diagrama.
4.1 Elementos do Diagrama de Sequência 
Vídeo Um Diagrama de Sequência é construído partindo das Histórias de Usuário e 
do Diagrama de Classes, ou seja, construímos esse diagrama olhando tanto para 
a visão de processos (Casos de Uso e Histórias de Usuário) quanto para a visão de 
objetos e classes (Diagrama de Classes).
Percebemos na construção das Histórias de Usuário que nelas é detalhado o 
funcionamento de uma determinada tela com campos e botões. Para o preenchi-
mento do conteúdo de alguns campos, é necessário que se busquem os valores 
dos atributos de classes do Diagrama de Classes; o mesmo ocorre quando um 
usuário preenche os campos da tela e pressiona um botão em que esses valores 
digitados devem ser salvos no sistema. Para que isso ocorra, devem existir classes 
com atributos iguais aos campos da tela.
Uma classe tem atributos e métodos, e seus métodos são os únicos que têm 
permissão para manipular seus atributos. Quando uma tela é preenchida, temos 
de transferir de alguma forma esses valores digitados para os atributos da classe 
responsável por eles. Sendo assim, primeiramente devemos saber em qual clas-
se estão esses campos da tela e, em seguida, criar métodos capazes de transferir 
os valores digitados para os atributos dessa classe. O mesmo ocorre quando é 
92 Análise de Sistemas
necessário preencher campos de uma tela com valores de atributos de classes. 
Devemos primeiramente identificar qual classe possui esses atributos e, após isso, 
invocar métodos que façam a leitura dos valores desses atributos, a fim de que 
sejam transferidos para os campos da tela.
O Diagrama de Sequência procura então determinar quais métodos de quais 
classes devem ser invocados e em qual ordem (sequência), para a realização com-
pleta dos eventos da tela. Seu objetivo principal é identificar a ordem em que os 
eventos ocorrem e determinar os métodos que serão chamados para atender a 
esses eventos, refletindo assim a interação entre os objetos envolvidos em um de-
terminado processo (GUEDES, 2018).
Basicamente, esse diagrama “dá ênfase à ordenação temporal das mensagens” 
entre os objetos (BOOCH; RUMBAUGH; JACOBSON, 2012, p. 276).
A figura a seguir ilustra essa situação. Na parte de cima, temos um exemplo de 
tela de empréstimo de livros em uma biblioteca. Na parte de baixo, há um Diagra-
ma de Classes do sistema. As setas indicam as classes que estão sendo acessadas 
para que os campos da tela sejam preenchidos com valores armazenados nos atri-
butos, bem como as transferências de valores colocados na tela para os atributos.
Figura 1
Exemplo de interação entre uma tela e o Diagrama de Classes



- nome : int >
Autor
- ISBN : int
- titulo : int
Livro
- nome : int
Editora
- dataDevolucao : int
LivroEmprestimo
LivroEmprestimo
- nome : int
Usuario
Sistema de biblioteca – Empréstimo de livros
Insira o código do livro:
Livros selecionados:
Código           Título         Autores             Ação
CPF do usuário: Nome:
Data de retirada: 24/11/2020
Confirmar empréstimo   Cancelar
Data de devolução prevista: 10/12/2020
*
- nome : int
- dataEmprestimo : int
Funcionario
Emprestimo
*
**
Fonte: Elaborada pelo autor.
Diagrama de Sequência 93
Ao inserir o código de um livro que o usuário deseja emprestar, as setas trace-
jadas indicam o caminho que o sistema deve percorrer para buscar os atributos 
a serem carregados na tela. Nesse caso, será acessada a classe Livro para buscar 
o código (ISBN) e o título; o acesso à classe Autor serve para buscar os autores do 
livro; também poderia ser acessada a classe Editora, se fosse necessário buscar seu 
nome. Após esses acessos, os atributos são colocados no grid da tela.
Após isso, o usuário informa seu CPF e, na tela, deve ser apresentado seu nome. 
A seta contínua simboliza o acesso à classe Usuario para realizar essa busca.
Finalmente, ao pressionar o botão “Confirmar empréstimo”, o sistema deve in-
vocar as classes para armazenar o empréstimo. As setas pontilhadas simbolizam o 
acesso à classe Emprestimo, na qual é armazenada a data do empréstimo (atributo 
dessa classe), e à classe LivroEmprestimo em seguida, para armazenar os livros se-
lecionados. Será justamente essa sequência de acessos às classes que o Diagrama 
de Sequência irá representar.
A Figura 2 mostra um exemplo completo de Diagrama de Sequência de uma His-
tória de Usuário denominada Realizar Transferências em um caixa eletrônico. Todos 
os elementos nela contidos serão mostrados em detalhes nas seções seguintes.
Figura 2
Exemplo de Diagrama de Sequência
: Cliente
Interface
Caixa
Automático
Conta Saldo
1: Inserir Cartão() 1.1: verificarConta()
{Conta Válida}
{Solicitar Senha}
{Transferência OK}
5.2: creditar()
5.1: debitar()
2: Fornecer Senha()
2.1: validarSenha()
{Senha Válida}
{Apresentar Menu}
3: Selecionar Transferência()
{Solicitar Conta Crédito}
4: Informar Conta()
4.1: verificarConta()
{Conta Válida}
{Solicitar Valor}
5: Informar Valor()
Fonte: Elaborada pelo autor.
94 Análise de Sistemas
Podemos perceber então que, pela troca de mensagens entre os objetos, esse 
diagrama fornece uma visão dinâmica do processo, diferentemente dos Diagramas 
de Caso de Uso e de classes, que dão uma visão estática (DEBONI, 2003).
4.1.1 Elementos
A seguir veremos os principais elementos que podem ser utilizados em um Dia-
grama de Sequência.
4.1.1.1 Ator
Os atores utilizados em um Diagrama de Sequência são os mesmos que cons-
tam no Diagrama de Caso de Uso. Se uma tela pertence a uma História de Usuário 
que, por sua vez, está relacionada a um caso de uso do Diagrama de Caso de Uso, 
ela então está ligada a um determinado ator. Esse será o ator representado no 
Diagrama de Sequência.
Os atores solicitam serviços ao sistema e iniciam e/ou finalizam um determina-
do processo (GUEDES, 2018).
Nesse diagrama, os atores serão representados por um boneco magro, tal qual 
no Diagrama de Caso de Uso, porém aqui o ator terá uma linha da vida.
A linha da vida indica os momentos em que o ator está interagindo com a tela. 
Se ela estiver pontilhada, indica que o ator não está manipulando a tela. Caso a 
linha esteja no formato de um retângulo fino, indica que ele está informando ou 
recebendo dados da tela, ou realizando alguma ação. Também dizemos que o ator 
está ativo/inativo quanto ao manuseio da tela.
A Figura 3 mostra um exemplo do ator Usuario de uma biblioteca. Note que 
abaixo de sua representação foi colocada uma linha pontilhada.
Figura 3
Exemplo de ator no Diagrama de Sequência
: Ator Usuario
Fonte: Elaborada pelo autor.
Após os demais elementos serem explicados, veremos exemplos em que a linha 
da vida do ator se transforma em uma linha ativa.
Diagrama de Sequência 95
4.1.1.2 Objeto
No Diagrama de Sequência, usamos os objetos das classes envolvidas no pro-
cesso. Eles são representados com um retângulo e também contam com uma linha 
da vida; esta representa o tempo em que um objeto existiu durante um processo, 
ou seja, os momentos em que seus métodos foram executados.
A linha da vida do objeto também é pontilhada, assim como a do ator. No mo-
mento em que algum método da sua classe for invocado, a linha se transforma em 
um retângulo fino, indicando que ela ficou ativa. Essa representação também será 
vista após os demais elementos do diagrama.
A representação geral de um objeto e de uma classe no Diagrama de Sequência 
é mostrada na figura a seguir. Primeiramente é colocado o nome do objeto, depois 
o sinal de dois pontos e, finalmente, o nome da classe. O nome do objeto é opcio-
nal, então é comum que ele seja representado com dois pontos no início seguidos 
do nome da classe. A Figura 4 mostra esses dois casos.
Figura 4
Exemplo de objeto/classe no Diagrama de Sequência
: Classeobjeto : Classe
Fonte: Elaborada pelo autor.
Jáa Figura 5 mostra um exemplo de um objeto da classe Livro do sistema de 
biblioteca.
Figura 5
Exemplo de objeto no Diagrama de Sequência
: Livro
Fonte: Elaborada pelo autor.
É importante ressaltar que os objetos usados no diagrama devem ser os mes-
mos das classes do Diagrama de Classes. Isso significa que não tem sentido colocar 
objetos novos que não constem no Diagrama de Classes. Como exceção, temos as 
classes que representam a tela; elas obviamente não estão no Diagrama de Classes.
96 Análise de Sistemas
4.1.1.3 Estereótipo boundary
Um estereótipo boundary é um objeto especial que representa uma tela a ser 
manipulada pelo usuário.
A Figura 6 representa a tela que, no exemplo do sistema de biblioteca, é a tela 
Empréstimos de Livros.
Figura 6
Exemplo de objeto representando uma tela
Livros : Boundary()
Tela Empréstimo de
Fonte: Elaborada pelo autor.
Assim como veremos na construção completa do diagrama, ele começa com 
o ator, que sempre interage com a tela e, em seguida, com os demais objetos das 
classes do sistema envolvidos no processo da tela.
4.1.1.4 Mensagens
As mensagens são utilizadas para invocar um método de uma classe.
Como esse diagrama tem o objetivo de representar a sequência de chamadas 
dos métodos das classes, para que uma tela realize completamente sua função, 
usamos as mensagens nessa representação.
Basicamente, as mensagens são enviadas de um objeto para outro, da linha da 
vida de um objeto até a linha da vida de outro objeto (MELO, 2010).
Elas serão representadas por setas que saem do ator ou dos objetos e apontam 
para outros objetos. Na legenda dessas setas, serão colocados os nomes dos méto-
dos que estão sendo invocados. Somente na comunicação entre o ator e a tela essa 
legenda não indicará um método, mas sim uma ação do ator ou uma informação 
que o ator está colocando na tela.
A Figura 7 mostra um exemplo de mensagem entre o ator Usuario e a tela Em-
préstimos de Livros. Na legenda da mensagem (seta apontando para a tela), foi 
colocada a informação que o usuário está inserindo na tela (código do livro).
Diagrama de Sequência 97
Figura 7
Exemplo de mensagem entre ator e tela
: Ator Usuario
1: Código do Livro() 
Tela Empréstimo de
Livros : Boundary()
Fonte: Elaborada pelo autor.
Podemos perceber agora que a linha da vida, tanto do ator quanto da tela, 
transformou-se de uma linha pontilhada em um retângulo fino, indicando que o 
ator e a tela estão ativos e realizando alguma ação.
Esse retângulo permanecerá dessa forma até que o processo termine, transfor-
mando-se novamente em linha pontilhada.
O segundo exemplo, apresentado na Figura 8, mostra uma mensagem entre 
dois objetos: a tela Empréstimo de Livros e o objeto livro. Na legenda da mensagem 
(seta apontando para o objeto livro), foi colocado o nome do método que se deseja 
invocar, nesse caso é buscarLivro(). Note que esse nome de método está no padrão 
para esses nomes.
Figura 8
Exemplo de mensagem entre a tela e o objeto livro
1.1: buscarLivro()
1: Código do Livro()
Livros : Boundary()
Tela Empréstimo de: Ator Usuario
: Livro
Fonte: Elaborada pelo autor.
O número 1, que precede a legen-
da Código do Livro, é um número 
sequencial que será colocado em 
todas as mensagens, para ajudar 
na visualização da sequência 
de mensagens. Já o símbolo de 
abrir parênteses e fechar 
parênteses, colocado após a 
mensagens, servirá para que, na 
representação de métodos entre 
as classes, possam ser colocados 
os parâmetros que devem ser 
enviados aos métodos, o que não 
se aplica à interação entre o ator 
e a tela.
Importante
98 Análise de Sistemas
O terceiro exemplo, apresentado na Figura 9, mostra uma mensagem entre dois 
objetos: o objeto livro e o objeto autor. Na legenda da mensagem (seta apontando 
para o objeto autor), foi colocado o nome do método que se deseja invocar, nesse 
caso é buscarAutores().
Figura 9
Exemplo de mensagem entre o objeto livro e o objeto autor
1.1: buscarLivro()
1: Código do Livro()
Livros : Boundary()
Tela Empréstimo de: Ator Usuario
: Livro : Autor
1.1.1: buscarAutores()
Fonte: Elaborada pelo autor.
4.1.1.5 Autochamadas
Também denominadas autodelegações, as autochamadas são mensagens que um 
objeto passa para si mesmo. São usadas quando se deseja invocar um método da 
própria classe. Elas são representadas por setas que apontam para o próprio objeto.
No exemplo da Figura 10, suponha que, no objeto autor, queiramos um método 
para formatar os nomes dos autores antes de devolver a informação para o objeto 
livro. Assim, no próprio objeto autor, poderíamos ter o método formatarNomes e 
usaríamos uma autochamada para invocá-lo.
Figura 10
Exemplo de autochamadas
1.1.1.1: formatarNomes()
1.1.1: buscarAutores()
1.1: buscarLivro()
1: Código do Livro() 
: Autor: Livro 
Tela Empréstimo de 
Livros : Boundary()
: Ator Usuario 
Fonte: Elaborada pelo autor.
As autochamadas também são utilizadas para representar a chamada de outras Histórias 
de Usuário.
Diagrama de Sequência 99
4.1.1.6 Retorno
Após a invocação de um método de uma classe, é possível fazer o retorno ao 
objeto que o chamou. É comum que todas as chamadas (setas) tenham um retorno 
até chegarem ao ator que iniciou a sequência de chamadas. Esse retorno ao ator 
indica que o controle da tela foi devolvido para ele, ou seja, a tela foi novamente 
apresentada para que a próxima ação seja realizada. O retorno é representado por 
uma seta pontilhada com ou sem uma legenda.
A Figura 11 mostra o retorno de todas as chamadas realizadas até o momento, 
no exemplo da tela Empréstimo de Livros até a volta ao ator.
Figura 11
Exemplo de retorno
1.1.1.1: formatarNomes()
1.1.1: buscarAutores()
1.1: buscarLivro()
1: Código do Livro()
: Autor: Livro
Livros : Boundary()
Tela Empréstimo de: Ator Usuario
Fonte: Elaborada pelo autor.
Esses são os principais elementos que podem ser utilizados em um Diagrama 
de Sequência.
Vale ressaltar que esse diagrama não trata de todo o processo de empréstimo 
de livros, somente seu início. Ele foi construído para mostrar os elementos do dia-
grama. A construção de um diagrama completo será vista na próxima seção.
A Figura 12 mostra um resumo dos principais elementos.
Figura 12
Principais elementos de um Diagrama de Sequência
linha da vida inativa
linha da vida 
ativa
mensagem
autochamada
retorno
1.1.2: mensagem2()
1.1.1: autochamada1()
interação 
do autor
1.1: mensagem1()
1: Ação do usuário()
: Classe1
Tela : Boundary()
classe : 
Classe
objetoobjeto
estereótipoator
: Ator
Fonte: Elaborada pelo autor.
100 Análise de Sistemas
Pudemos aprender que é importante fazer um Diagrama de Sequência para 
cada uma das Histórias de Usuário (tela). Em cada diagrama, colocamos a chamada 
de métodos das classes. Ao final do trabalho de construção de todos os Diagramas 
de Sequência, teremos então todos os métodos em todas as classes do Diagrama 
de Classes.
O Diagrama de Classes primeiramente é construído somente com atributos. Os 
métodos das classes seriam colocados após a construção dos Diagramas de Se-
quência; agora, estamos vendo exatamente como eles surgiram.
A seguir, construiremos um Diagrama de Sequência completo do problema da 
Escola de Natação.
4.2 Práticas do Diagrama de Sequência 
Vídeo O objetivo desta seção é construir um Diagrama de Sequência completo, cobrin-
do todo o processo de uma História de Usuário (tela). Para isso, iremos utilizar o 
caso do problema da Escola de Natação.
Como foi citado anteriormente, devemos construir um Diagrama de Sequência 
para cada tela; para isso, iremos escolher a tela Realizar matrícula na escola.
Devemos lembrar que o diagrama é construído a partir dos seguintes elemen-
tos: Diagrama de Caso de Uso, Diagrama de Classes e protótipo de tela que consta 
na História de Usuário.
Para facilitar a visualização da construção do diagrama, a Figura 13 apresenta o 
Diagrama de Caso de Uso da Escola de Natação.
Figura 13
Diagrama de Caso de Uso da Escola de Natação
Professor
>Atendente
>>
Manter Aluno
aluno
Pesquisar turma
Pesquisar
professor
Pesquisar
professor
Manter
Manter turmaManter aluno
matrícula
Realizar
frequência
Registrar
Fonte: Elaborada pelo autor.
Já a Figura 14 apresenta o Diagrama de Classes desse estudo de caso.
Diagrama de Sequência 101
Figura 14
Diagrama de Classes da Escola de Natação

Hidroginástica
Natação
Esta classe terá dois objetos:
– descricao : texto
Modalidade
As turmas nesta classe terão o seguinte formato: 
Turma 1 Seg/Qua/Sex das 9h às 10h
– descricao : texto
– valorMensalidade : int
Turma
Matricula
– data : data
– frequentou : boolean
Diario
– codigo : numero
– data : data
Matricula
*
*
*
*
*
 
– dataAdmissao : data
Professor
– endereco : texto
Aluno
– cpf : numero
– nome : texto
Pessoa
Fonte: Elaborada pelo autor.
A Figura 15 mostra o protótipo da tela Realizar matrícula na Escola de Natação.
Figura 15
Protótipo da tela Realizar matrícula
Voltar Efetivar matrícula
Mensalidade:
Professor:
Turma 1 – Seg/Qua/Sex – 10h às 11hTurma: 
NataçãoModalidade:
Nome: 
PesquisarCPF:
Realizar matrícula
Escola de Natação 
Fonte: Elaborada pelo autor.
A seguir construiremos o Diagrama de Sequência seguindo um passo a passo. Nele 
serão acrescentados e explicados os componentes do diagrama.
4.2.1 Construção do Diagrama de Sequência da tela Realizar 
matrícula 
4.2.1.1 Passo 1 – Identificação do ator
O diagrama deve ser iniciado pelo ator que irá interagir com a tela. Para essa 
identificação, recorremos ao Diagrama de Caso de Uso e verificamos que o ator 
102 Análise de Sistemas
Atendente é quem está ligado ao caso de uso Realizar matrícula, conforme mostra 
a Figura 13 do Diagrama de Caso de Uso.
A Figura 16 mostra o início da construção, com o ator Atendente e a sua linha 
da vida.
Figura 16
Passo 1
: Atendente
Fonte: Elaborada pelo autor.
4.2.1.2 Passo 2 – Colocação do estereótipo boundary 
O próximo elemento que iremos colocar no diagrama é a representação da tela 
com a qual o ator irá interagir. Vimos que essa representação é chamada estereó-
tipo boundary. Então, nesse passo, iremos colocar esse elemento no diagrama, re-
presentando a tela Realizar matrícula (Figura 15).
A Figura 17 mostra essa representação.
Figura 17
Passo 2
Boundary()
Tela Realizar Matrícula :: Atendente
Fonte: Elaborada pelo autor.
4.2.1.3 Passo 3 – Primeira interação do ator com a tela
A primeira interação do ator Atendente com a tela ocorre quanto ele a aciona 
para que seja apresentada. Não precisamos nesse momento saber como ela será 
acionada: se por meio de um menu no sistema ou por um botão de alguma outra 
tela do sistema; o que importa é que, de alguma forma, ela será acionada.
A Figura 18 mostra essa representação com uma mensagem entre o ator Aten-
dente e a tela, com a legenda Aciona Tela. Note que a linha da vida de ambos, que 
estava pontilhada (inativa), tornou-se um retângulo, significando que ficou ativa.
Diagrama de Sequência 103
Figura 18
Passo 3
Tela Realizar Matrícula :: Atendente
Boundary()
1 : Aciona Tela( )
Fonte: Elaborada pelo autor.
4.2.1.4 Passo 4 – Mensagem entre a tela e o objeto 
Agora, se analisarmos os campos da tela, podemos perceber que o campo mo-
dalidade já deve vir preenchido com todas as modalidades cadastradas, quando a 
tela for apresentada pela primeira vez. Temos então que representar o acesso a 
essa classe para buscar suas informações, a fim de que sejam colocadas no campo 
respectivo da tela.
A Figura 19 mostra essa representação com uma mensagem entre a tela e 
o objeto modalidade. Na mensagem foi dado o nome pesquisar para o método 
que faz esse acesso, indicando que ele irá pesquisar e trazer todas as modali-
dades cadastradas.
Figura 19
Passo 4
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade 
Fonte: Elaborada pelo autor.
4.2.1.5 Passo 5 – Mensagem entre os objetos modalidade e turma
Da mesma forma, temos mais um campo da tela que também deve estar preen-
chido no momento da primeira apresentação. O campo turma deve vir com todas 
as turmas da modalidade, que está selecionada no campo modalidade. Então, de-
vemos chamar um método de sua classe para buscá-las. Essa ação trará o atributo 
valorMensalidade, que está na classe Turma, para ser colocado no campo da tela.
104 Análise de Sistemas
A Figura 20 mostra essa representação com uma mensagem entre o objeto moda-
lidade e o objeto turma. Na mensagem, foi dado o nome pesquisar para o método que 
faz esse acesso, indicando que ele irá pesquisar e trazer todas as turmas cadastradas.
Figura 20
Passo 5
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma
Fonte: Elaborada pelo autor.
4.2.1.6 Passo 6 – Mensagem entre os objetos turma e professor
Olhando para os campos da tela, podemos perceber que, além da descrição da 
turma e do valor da mensalidade (atributos já acessados no objeto turma), preci-
samos mostrar o nome do professor da turma. Esse atributo pertence ao objeto 
professor. Sendo assim, temos de acrescentar agora uma invocação a um método 
desse objeto para buscar os dados do professor. Note que o atributo nome, que 
está sendo buscado, não está colocado diretamente no objeto professor, porém 
não devemos esquecer que a classe Professor está relacionada por meio de uma 
herança da classe Pessoa, na qual consta esse atributo. No Diagrama de Sequência, 
basta representar o objeto professor para fazer esse acesso.
A Figura 21 mostra essa representação com uma mensagem entre os objetos 
turma e professor. Na mensagem foi dado o nome ler para o método que faz esse 
acesso e realiza a leitura dos dados do professor de uma turma.
Figura 21
Passo 6
1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor 
Fonte: Elaborada pelo autor.
Diagrama de Sequência 105
4.2.1.7 Passo 7 – Retornos para apresentação da tela
Já que todas as informações necessárias para a primeira apresentação da tela 
foram acessadas nos respectivos objetos, agora temos de fazer o retorno até o 
ator, representando que a tela está sendo apresentada (pela primeira vez), para 
que ele comece a colocar as informações com o intuito de realizar a matrícula.
A Figura 22 mostra a representação dos retornos, desde o objeto professor até 
o ator Atendente.
Figura 22
Passo 7
1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor 
Fonte: Elaborada pelo autor.
4.2.1.8 Passo 8 – Inserção do CPF do aluno pelo ator
Com essa última representação do diagrama, a tela está sendo apresentada 
pela primeira vez ao ator Atendente. A primeira informação que ele deve inserir na 
tela é o CPF do aluno que deseja se matricular.
Essa ação está representada na Figura 23.
Figura 23
Passo 8
2: CPF do aluno()
1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor 
Fonte: Elaborada pelo autor.
106 Análise de Sistemas
4.2.1.9 Passo 9 – Busca do nome do aluno
Podemos perceber que na tela existe o campo nome do aluno, que deve ser 
apresentado. Então, nesse passo do diagrama, com o CPF digitado na tela, deve-
mos chamar um método do objeto aluno, no qual temos o CPF e o nome do aluno.
A Figura 24 mostra essa representação com uma mensagem entre a tela e o ob-
jeto aluno. Na mensagem foi dado o nome ler para o método que faz esse acesso. 
Também já está feita a representação dos retornos para a tela.
Figura 24
Passo 9
2.1: ler()
2: CPF do aluno()
1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()1: Aciona Tela()
: Modalidade : Turma : Professor : Aluno
Fonte: Elaborada pelo autor.
4.2.1.10 Passo 10 – Efetivação da matrícula
Agora, o ator Atendente está olhandopara a tela com todas as informações 
disponíveis para a efetivação da matrícula. Com o CPF informado, o nome do 
aluno que deseja se matricular e um campo para selecionar a modalidade que 
ele deseja, ao escolher a modalidade, o sistema mostra as turmas (com o nome 
do professor e o valor da mensalidade). Portanto, só nos resta agora pressionar 
o botão “Efetivar matrícula”.
A Figura 25 mostra essa representação com uma mensagem entre o ator Aten-
dente e a tela. Na legenda foi colocada a ação que o atendente realizou, ou seja, 
pressionar o botão “Efetivar matrícula”.
Diagrama de Sequência 107
Figura 25
Passo 10
2.1: ler()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()1: Aciona Tela()
: Modalidade : Turma : Professor : Aluno
3: Efetivar matricula()
Fonte: Elaborada pelo autor.
4.2.1.11 Passo 11 – Inclusão da matrícula no sistema
Por fim, com a solicitação do ator Atendente de efetivar a matrícula, o sistema deve 
acessar um método do objeto matrícula, responsável por incluir a matrícula no siste-
ma. Essa inclusão nada mais é do que um novo objeto da classe Matricula, na qual são 
registrados o código, a data da matrícula, o aluno e a turma em que ele se matriculou.
A Figura 26 mostra essa representação com uma mensagem entre a tela e o 
objeto matrícula. Na mensagem foi dado o nome incluir para o método que faz essa 
inclusão. Também já está feita a representação dos retornos para a tela.
Figura 26
Passo 11
3.1: incluir()
3: Efetivar matricula()
2.1: ler()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor : Aluno : Matricula
Fonte: Elaborada pelo autor.
108 Análise de Sistemas
Assim, está finalizada a construção do Diagrama de Sequência da História de 
Usuário Realizar matrícula do problema da Escola de Natação.
A tarefa agora é construir os diagramas de sequência para todas as telas do 
sistema, como apresentaremos na sequência.
4.2.2 Modelagem completa do estudo de caso da Escola de 
Natação
Nosso objetivo é mostrar todo o processo de modelagem de um sistema previsto 
na UML. Para isso, é necessário construir a Lista de Requisitos, o Diagrama de Caso de 
Uso, os Protótipos de Telas, as Histórias de Usuário, o Diagrama de Classes (níveis 1 e 
2) e, finalmente, os Diagramas de Sequência. Esses são os diagramas básicos da UML, 
que formam seus pilares, apesar de existirem outros opcionais e suplementares.
Agora, iremos finalizar a modelagem do estudo de caso da Escola de Natação 
com a construção dos Diagramas de Sequência das demais Histórias de Usuário, 
para, finalmente, complementar o Diagrama de Classes com os métodos das clas-
ses que surgiram durante a construção de todos os Diagramas de Sequência.
Vamos usar aqui o Diagrama de Caso de Uso de nível 2, pois nele constam todos 
os casos de uso que tiverem escritas as Histórias de Usuário, como mostra a Figura 27.
Figura 27
Diagrama de Caso de Uso de nível 2 da Escola de Natação
Professor
>
Atendente
>>
Manter Aluno
aluno
Pesquisar turma
Pesquisar
professor
Pesquisar
professor
Manter
Manter turmaManter aluno
matrícula
Realizar
frequência
Registrar
Fonte: Elaborada pelo autor.
Para cada caso de uso, iremos mostrar a sua tela e o seu respectivo Diagrama de 
Sequência. Não colocaremos aqui todas as descrições das Histórias de Usuário, pois 
elas são extremamente longas. Sendo assim, foram colocadas somente suas telas.
Diagrama de Sequência 109
A Figura 28 mostra as telas das Histórias Pesquisar aluno e Manter aluno (lado 
esquerdo) e seus respectivos Diagramas de Sequência (lado direito).
A Figura 29 mostra as telas das Histórias Pesquisar professor e Manter profes-
sor (lado esquerdo) e seus respectivos Diagramas de Sequência (lado direito).
(Continua)
Figura 28
Tela e Diagrama de Sequência – Pesquisar e Manter aluno
2.1: salvar()
2: Salvar()
1.1: ler()
: Aluno
Boundary2
Tela Manter Aluno :: Atendente
1: Aciona Tela()
VoltarSalvar
Endereço
Telefone:
CPF:
Nome:
Manter alunos
Escola de Natação
: Aluno
2.1: Chama HU – Manter Aluno()
2: Novo Aluno()
Tela Pesquisar Aluno:
Boundary2
: Atendente
1.1: pesquisar()
1: Aciona Tela()
Alterar Excluir99987-872398765432101
Pesquisa:VoltarNovo aluno
Pesquisar alunos
Escola de Natação
AçõesNome CPF Telefone
12345678901 98765-8752 Alterar ExcluirJoaquim José da Silva Xavier
Patricia Amaral
Fonte: Elaborada pelo autor.
Figura 29
Tela e Diagrama de Sequência – Pesquisar e Manter professor
: Aluno
: Atendente
1.1: pesquisar()
1: Aciona Tela()
2.1: Chama HU – Manter Professor()
2: Novo Professor()
Professor: Boundary2
Tela Pesquisar
Alterar Excluir02/02/202083655432101
Pesquisa:VoltarNovo professor
Pesquisar professores
Escola de Natação
AçõesNome CPF Data Admissão
Arnaldo Antunes 12348543901 13/12/2019 Alterar Excluir
Márcia Cristina
110 Análise de Sistemas
: Atendente
2.1: salvar()
2: Salvar()
1.1: ler()
1: Aciona Tela()
: Professor
Boundary2
Tela Manter Professor :
Salvar Voltar
Manter professores
Escola de Natação
Data Admissão :
CPF :
Nome :
Fonte: Elaborada pelo autor.
Figura 30
Tela e Diagrama de Sequência – Pesquisar e Manter turma
Alterar Excluir
Pesquisa:Voltar
Escola de Natação
Ações
Alterar Excluir
120,00HidroginásticaTurma 2 – Ter/Qui – 8h às 9h
110,00NataçãoTurma 1 – Seg/Qua/Sex – 9h às 10h
MensalidadeModalidadeDescrição
Nova turma
Pesquisar turmas 
: Atendente
1.1: pesquisar()
1: Aciona Tela()
2: Nova Turma()
: Turma
2.1: Chama HU – Manter Turma()
Boundary2
Tela Pesquisar Turma :
Salvar Voltar
Manter turmas
Escola de Natação : Atendente
2.1: salvar()
2: Salvar()
1.1: ler()
1: Aciona Tela()
: Turma
Boundary2
Tela Manter Turma :
NataçãoModalidade:
Mensalidade:
Descrição:

Fonte: Elaborada pelo autor.
A Figura 30 mostra as telas das Histórias Pesquisar turma e Manter turma (lado 
esquerdo) e seus respectivos Diagramas de Sequência (lado direito).
A Figura 31 mostra a tela da História Registrar frequência (parte superior) e seu 
respectivo Diagrama de Sequência (parte inferior).
Diagrama de Sequência 111
Figura 31
Tela e Diagrama de Sequência – Registrar frequência
 
: Turma : Aluno: Matricula
2: registrarFrequencia()
1.1.1.1: ler()
1.1.1: pesquisar()
1.1: ler()
1: Acionar Tela()
: Diario
: Boundary3
Tela Registrar Frequência: Ator Professor
Registrar frequênciaPatricia Amaral
Registrar frequênciaJoaquim José da Silva Xavier
Ação
 Turma 1 – Seg/Qua/Sex – 10h às 11hTurma:
Registrar frequência
Escola de Natação
Voltar

Nome
Fonte: Elaborada pelo autor.
Após a construção de todos os Diagramas de Sequência e, por conseguinte, a 
criação de todos os métodos, finalmente terminamos a modelagem do sistema, 
apresentando o Diagrama de Classes completo, com atributos e métodos, como 
mostra a Figura 32.
Figura 32
Diagrama de Classes completo da Escola de Natação
+ pesquisar() : void
– descricao : texto
Modalidade
+ pesquisar() : void
+ salvar() : void
+ ler() : void
– descricao : texto
Turma
Matricula
+ registrarFrequencia() : void
– frequentou : boolean
– data : data
Diario
+ incluir() : void
+ pesquisar() : void 1
– data : data
– codigo : numero
Matricula

Pessoa
– nome : texto
– cpf : numero


+ pesquisar() : void
+ salvar() : void
+ ler() : void
– dataAdmissao : data
Professor
+ pesquisar() : void
+ salvar() : void
+ ler() : void
– endereco : texto
Aluno
*
*
*
*
*
Fonte: Elaborada pelo autor.
Na sequência, veremos outros elementos utilizados para estruturar o Diagrama 
de Sequência.
O termo void após o nome 
dos métodos representa o 
tipo de dado que o método irá 
devolver. Nesse caso, como não 
foi determinado que tipo de dado 
cada método do diagrama irá 
retornar, usamos o termo void, 
que significa nenhum tipo.
1
112 Análise de Sistemas
4.3 Operadores do Diagrama de Sequência 
Vídeo Vimosque os Diagramas de Sequência foram construídos usando três elemen-
tos básicos: o ator, os objetos e as mensagens. Porém, existem outros elementos 
que podem ser utilizados para melhorar a estruturação do diagrama e para mos-
trar algumas situações que podem ocorrer ao longo dos processos.
Esses novos elementos são chamados de operadores e serão apresentados 
a seguir.
4.3.1 Operador REF
Esse operador tem por objetivo fazer uma referência a uma parte de outro Dia-
grama de Sequência; REF corresponde à abreviatura do termo em inglês reference. 
É utilizado quando uma parte do diagrama se repete em vários Diagramas de Se-
quência. Em vez de repetir essa parte nos diversos diagramas, ela é construída so-
mente uma vez, e os diagramas que necessitarem realizar o mesmo procedimento 
podem somente fazer uma referência a essa parte.
Para exemplificar esse operador, vamos analisar o Diagrama de Sequên-
cia Realizar matrícula, que construímos na seção anterior, repetido na figura 
a seguir.
Figura 33
Diagrama de Sequência Realizar matrícula
 
3.1: incluir()
3: Efetivar matricula()
2.1: ler()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Boundary4
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor : Aluno : Matricula
Fonte: Elaborada pelo autor.
Podemos perceber que, no momento em que o ator Atendente insere o CPF do 
aluno, o sistema acessa o objeto aluno para buscar seus dados.
Vamos supor que esse procedimento de buscar os dados de um aluno se repita 
em vários outros Diagramas de Sequência do sistema. Desse modo, o uso do ope-
rador REF é justificado.
Diagrama de Sequência 113
Como mostra a Figura 34, o acesso ao objeto aluno foi trocado por um operador 
do tipo REF chamado Buscar aluno. Para isso, foi colocado um quadro na parte do 
diagrama original que fazia esse procedimento. Ele indica que essa busca do aluno 
se encontra em um outro Diagrama de Sequência.
Figura 34
Exemplo de operador REF
 
3.1: incluir()3: Efetivar matricula()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor : Matricula
Buscar aluno
ref
Boundary()
Fonte: Elaborada pelo autor.
O diagrama desse REF, que foi nomeado Buscar aluno, é feito separadamente, 
somente com esse procedimento de busca, como mostra a Figura 35.
Figura 35
REF Buscar aluno
1: buscarAluno()
: Aluno
Fonte: Elaborada pelo autor.
Entendemos que esse procedimento de Buscar aluno é bastante simples e po-
deria ser colocado diretamente nos Diagramas de Sequência que necessitassem, 
porém aqui foi um exemplo ilustrativo do operador do tipo REF.
114 Análise de Sistemas
4.3.2 Operador OPT
Esse operador tem por objetivo mostrar que uma parte do Diagrama de Se-
quência é opcional; OPT corresponde à abreviatura do termo em inglês optional. 
Nesse caso, utilizamos uma condição de guarda, na qual a parte só será realizada 
se a condição for verdadeira.
Como exemplo, observe o seguinte Diagrama de Sequência da Figura 36.
Figura 36
Exemplo de operador OPT
 
3: incluir()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor : Matricula
Buscar aluno
ref
Boundary0
[Se o aluno está cadastro]
otp
Fonte: Elaborada pelo autor.
Esse exemplo ilustra a seguinte situação: o operador REF Buscar aluno foi colo-
cado para indicar a busca dos dados do aluno. Logo em seguida foi colocado um 
quadro retangular envolvendo todo o processo de incluir a matrícula. No canto 
superior esquerdo, foi identificado como um operador OPT e, logo abaixo, uma 
condição (Se o aluno está cadastrado).
Esse operador indica, então, que o procedimento, dentro do quadro OPT, só 
será realizado se o aluno estiver cadastrado (se essa condição for verdadeira).
4.3.3 Operador LOOP
O operador LOOP indica que uma determinada parte do Diagrama de Sequência 
será executada repetidas vezes, enquanto uma condição de guarda for verdadeira. 
Caso a condição nunca seja verdadeira, uma condição de break (quebra) pode ser 
colocada, ou seja, uma saída forçada da repetição.
Diagrama de Sequência 115
Como exemplo, observe o seguinte Diagrama de Sequência da Figura 37, que 
ilustra a autenticação dos dados de um usuário em um procedimento de login.
Figura 37
Exemplo de operador LOOP
 
: Atendente
[cancelar login]
alt: break
3: validaSenha()
[enquanto senha não OK]
2: senha()
alt: loop 1.3
1: usuario()
: UsuarioTela
sd Login – Exemplo loop
Fonte: Melo, 2010, p. 173.
Esse exemplo ilustra a seguinte situação: após o ator Atendente inserir seus 
dados na tela, um quadro retangular simbolizando o operador LOOP foi colocado. 
No canto superior esquerdo do quadro, foi colocado loop 1.3, indicando que tudo 
que estiver no quadro será repetido três vezes, mas somente enquanto a condição 
de guarda for verdadeira. Nesse caso, a condição é “enquanto senha não OK”, ou 
seja, enquanto o ator Atendente informar uma senha inválida, o procedimento de 
receber a senha é repetido. Quando for informada uma senha válida, a repetição 
é interrompida e o diagrama segue após o quadro. No caso de o ator Atendente 
informar três vezes sua senha inválida, a condição de break é acionada e o login 
é cancelado.
4.3.4 Operador ALT
Esse operador tem o objetivo de oferecer uma alternativa ao diagrama; ALT 
corresponde à abreviatura do termo em inglês alternative. Esse operador é muito 
parecido com o operador OPT, com a diferença de que, se a condição de guarda for 
falsa, é possível escrever algum procedimento no diagrama.
Como exemplo, observe o seguinte Diagrama de Sequência da Figura 38.
116 Análise de Sistemas
Figura 38
Exemplo de operador ALT
 
3.1: incluir()
2: CPF do aluno()
 1.1.1.1: ler()
1.1.1: pesquisar()
Tela Realizar Matrícula :: Atendente
1.1: pesquisar()
1: Aciona Tela()
: Modalidade : Turma : Professor : Matricula
Buscar aluno
ref
Boundary0
[Se o aluno está cadastro]
alt
Aluno não cadastrado
4: Efetivar matricula()
[Se o aluno não está cadastrado]
3: Efetivar matricula()
Fonte: Elaborada pelo autor.
Podemos perceber que o quadro retangular do operador ALT oferece duas 
opções: os procedimentos acima da linha pontilhada, que são executados caso a 
condição de guarda seja verdadeira (Se o aluno está cadastrado), ou os que estão 
abaixo, caso a condição seja falsa.
No caso de o aluno estar cadastrado, o procedimento é incluir o aluno no ob-
jeto matrícula; caso contrário, o procedimento é emitir a mensagem “Aluno não 
cadastrado”.
Vimos então que os operadores do Diagrama de Sequência nos dão mais op-
ções para enriquecer o processo de detalhamento de como será a navegação entre 
os objetos. Temos maior flexibilidade e possibilidade de demonstrar os objetivos 
da História de Usuário para a qual o diagrama está sendo construído.
CONSIDERAÇÕES FINAIS 
Neste capítulo, vimos um importante diagrama da UML: o Diagrama de Sequência. 
Ele teve como objetivo fazer a ligação entre duas visões do problema a ser informati-
zado. Olhamos, de um lado, para os Casos de Uso e Histórias de Usuário e, de outro, 
para o Diagrama de Classes, fazendo, para cada História, uma análise da sequência 
das classes que devemos percorrer, invocando métodos para executar completamen-
te a História e chegar ao seu objetivo. Assim, foi possível finalizar o Diagrama de Clas-
ses com a colocação dos métodos das classes que nasceram durante a construção 
dos Diagramas de Sequência.
Diagrama de Sequência 117
Com os diagramas nesse nível de detalhamento, dizemos que os diagramas bási-
cos da UML estão construídos e prontos para que o sistema seja programado, isto é, 
toda a arquitetura da solução agora pode ser repassada aos programadores que, de 
posse de uma linguagem de programação orientada a objetos, conseguirão progra-
mar o software da forma que foi projetada nessa fase de modelagem.
ATIVIDADES1. Qual é o objetivo do Diagrama de Sequência?
2. Cite os três elementos básicos de um Diagrama de Sequência.
3. Cite quatro operadores que podem ser utilizados em um Diagrama de Sequência.
REFERÊNCIAS 
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 12. ed. Rio de Janeiro: Elsevier, 2012.
DEBONI, J. E. Z. Modelagem orientada a objetos com a UML. São Paulo: Futura, 2003.
GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.
MELO, A. C. Desenvolvendo aplicações com UML 2.2. Rio de Janeiro: Brasport, 2010.
118 Análise de Sistemas
5
Diagramas suplementares 
da UML
A UML é formada por três pilares, sendo o primeiro deles a visão de 
Requisitos organizados por meio do Diagrama de Casos de Uso, dos protó-
tipos de telas e das Histórias de Usuário. O segundo pilar é a identificação 
de objetos e classes e a construção do Diagrama de Classes. E o terceiro, faz 
a ligação entre as Histórias de Usuário e as classes.
Para cada uma das Histórias, verifica-se em quais classes e em qual or-
dem os métodos devem ser invocados para atingir o objetivo da História. 
Os Diagramas de Sequência são construídos para esse fim.
A UML, porém, é dotada de outros diagramas que colaboram na mo-
delagem da solução informatizada. Tais diagramas, que são opcionais ou 
suplementares, são construídos com o objetivo de melhorar a visão dos pro-
cessos e o funcionamento de certos aspectos complexos da modelagem.
Neste capítulo, iremos conhecer três desses diagramas: o Diagrama 
de Transição de Estados, o Diagrama de Atividades e o Diagrama de 
Pacotes.
5.1 Diagrama de Transição de Estados
Vídeo Imagine a seguinte situação: o pedido, feito por meio de um aplicativo, de um 
prato em um restaurante. Desde o momento em que o pedido é feito pelo cliente, 
ele passa por um fluxo, que se inicia com o cliente fazendo o pedido e se encerra 
com o recebimento do prato em sua residência.
Podemos perceber que o pedido assume diversas situações dentro do fluxo, 
que começa no aplicativo em que foi feito, passa para um fluxo dentro do restau-
rante – nos vários passos para a confecção do prato –, depois tem-se o fluxo com 
o entregador para finalmente finalizar o processo com a entrega efetiva do prato 
ao cliente.
A Figura 1 mostra como poderia ser esse fluxo.
Diagramas suplementares da UML 119
Figura 1
Exemplo do fluxo de um pedido
Cliente
Te
ro
 V
es
al
ai
ne
n/
Sh
ut
te
rs
to
ck
Pedido
Atendente
ba
ra
nq
/S
hu
tte
rs
to
ck
Recebendo Pedido
Atendente
ba
ra
nq
/S
hu
tte
rs
to
ck
Aguardando entregador
Pizzaiolo
do
ts
ho
ck
/S
hu
tte
rs
to
ck
Produzindo Produtos
Entregador
Pr
os
to
ck
-s
tu
di
o/
Sh
ut
te
rs
to
ck
Levando pedido
Cliente
Pr
os
to
ck
-s
tu
di
o/
Sh
ut
te
rs
to
ck
Recebendo pedido
Fonte: Elaborada pelo autor.
Se analisarmos alguns artefatos da UML, como o Diagrama de Caso de Uso, as 
Histórias de Usuário, o Diagrama de Classes ou o Diagrama de Sequência, podemos 
verificar que tais diagramas não conseguem refletir esse fluxo da situação do pedi-
do, a qual vai sendo alterada no decorrer do processo.
É fato que, em diversos momentos do processo, essa situação será alterada 
durante o manuseio das telas. Por exemplo, o pedido feito pelo cliente seria in-
cluído no sistema com a situação “solicitado”; em seguida, quando o restaurante 
verificasse a chegada do pedido, um atendente poderia entrar em uma tela em 
que seria marcado como “recebido”; na sequência, quando iniciasse a produção do 
prato, poderia se marcar a situação como “produzindo” e assim por diante.
120 Análise de Sistemas
O que devemos perceber nesse momento é que todas essas alterações de situa-
ção estariam “escondidas” e pulverizadas em diversas telas do sistema. Então, para 
conhecermos todas as mudanças de situação do pedido, bem como as condições 
necessárias para tais mudanças, seria necessário um árduo trabalho de análise das 
diversas Histórias de Usuário que tratassem dessas alterações. Isso seria pratica-
mente inviável, considerando que os processos nas telas tratam de outros com-
ponentes do processo e não só da mudança da situação, ocasionando então uma 
dificuldade muito grande para o analista ter uma visão geral de todas as mudanças 
de situação.
Por outro lado, poderíamos recorrer ao Diagrama de Classes. Ora, é bem prová-
vel que para esse processo tenhamos uma classe Pedido e um de seus atributos seja 
denominado situação. Os valores desse atributo seriam todas as situações possíveis 
do pedido. Isso também não nos daria a visão das possíveis mudanças de situação.
Finalmente, se formos analisar os Diagramas de Sequência, teríamos a mesma 
dificuldade encontrada nas Histórias de Usuário, já que é construído um diagrama 
para cada uma delas, e também não teríamos essa visão que estamos procurando.
Para resolver essa questão, o Diagrama de Transição de Estados é o artefato 
da UML que mostra exatamente o que estamos querendo enxergar nesse caso: a 
mudança dos possíveis estados da situação do pedido dentro do sistema e as con-
dições para que essas mudanças ocorram.
O Diagrama de Transição de Estados (ou simplesmente Diagrama de Estados) 
demonstra graficamente a mudança de estado de um ou mais elementos ou obje-
tos de um sistema por meio de um conjunto de transições (GUEDES, 2018).
Podemos dizer que esse diagrama descreve a dinâmica interna de um objeto, 
seu ciclo de vida desde o momento que é criado até o seu término, quando finaliza 
o processo para o qual foi criado (DEBONI, 2003). Conforme afirmam Rumbaugh 
et al. (1994, p. 114), “com o tempo, os objetos estimulam uns aos outros, resultando 
em uma série de alterações em seus estados”.
Segundo Booch, Rumbaugh e Jacobson (2012, p. 293), que chamam esse diagra-
ma de Diagrama de Estados, “os diagramas de estados serão empregados para fazer 
a modelagem de aspectos dinâmicos do sistema”.
Já Melo (2010, p. 187), que o chama de Diagrama de Máquinas de Estados, “uma 
máquina de estado consiste num comportamento que especifica a sequência de 
estados que um objeto atravessa durante sua vida, em resposta a eventos, junto 
com suas responsabilidades e ações”.
O objetivo desse diagrama, então, é mostrar graficamente não só todos os 
estados que um objeto pode assumir, mas também de qual estado e para qual 
estado ele pode passar e em que condições isso ocorre. Com isso, todas as mu-
danças de estado que estão espalhadas nos processos descritos nas Histórias 
de Usuário ficam visíveis na forma de um diagrama (normalmente de uma pági-
na), facilitando a análise e as futuras alterações do fluxo, comuns nos sistemas 
de informação.
Diagramas suplementares da UML 121
5.1.1 Elementos
A seguir serão apresentados os elementos básicos que podem ser utilizados no 
Diagrama de Transição de Estados.
5.1.1.1 Estado
Representa um estado em que o objeto se encontra em um determinado mo-
mento e quais as ações que são tomadas durante a passagem por esse estado.
Um estado é representado por um retângulo com bordas arredondadas e com 
dois compartimentos, como mostra a Figura 2.
No primeiro compartimento deve ser colocado o nome do estado e na parte de 
baixo as ações que devem ser tomadas na passagem do objeto por esse estado. 
Essas ações podem ser explícitas, mostrando exatamente o que deve ser feito, ou 
pode ser mostrado somente o nome de um método da classe do objeto em ques-
tão. A palavra do é opcional no compartimento da ação, ela indica que é a ação 
principal do estado (outras opções serão explicadas na sequência).
Figura 2
Símbolo de estado
do / 
Fonte: Elaborada pelo autor.
O nome do estado (primeiro compartimento) deve ser escrito no seguinte 
padrão:
A Figura 3 mostra um exemplo de estado em que o objeto pedido está entrando 
num estado em que está sendo incluído no sistema. Note que o nome do estado 
está no padrão. No segundo compartimento, foi colocado o nome do método da 
classe Pedido encarregado por essa ação.Figura 3
Exemplo do elemento estado
do / incluirPedido()
Incluindo Pedido
Fonte: Elaborada pelo autor.
O segundo compartimento do símbolo de estado pode conter ações de três 
tipos:
 • entry – realizada quando o objeto assume o estado.
 • do – executada enquanto o objeto se encontra no estado.
 • exit – executada antes de o objeto mudar de estado.
122 Análise de Sistemas
A Figura 4 mostra o exemplo do estado Incluindo Pedido, no qual poderíamos 
ter as seguintes ações:
Figura 4
Exemplo de ações de um estado
exit / fecharbancoDados
do / incluirPedido()
entry / abrirBancoDados()
Incluindo Pedido
Fonte: Elaborada pelo autor.
5.1.1.2 Transição
É a passagem, de um determinado objeto, de um estado para outro.
O símbolo para o elemento de transição é uma seta partindo de um estado para o 
próximo. Nela pode-se colocar uma legenda indicando qual será o próximo passo do 
processo ou o resultado do estado anterior. A Figura 5 mostra esse elemento.
Figura 5
Elemento transição
 
Fonte: Elaborada pelo autor.
No exemplo da Figura 4, suponha que, após o objeto sair do estado Incluindo 
Pedido, ele entre no estado Produzindo Produtos. A Figura 6 mostra um exemplo 
dessa transição. Na legenda foi colocado o próximo passo do processo.
Figura 6
Exemplo do elemento transição
Produzir Produtosdo / incluirPedido()
Incluindo Pedido Produzindo Produtos
do / produzirProdutos()
Fonte: Elaborada pelo autor.
5.1.1.3 Barra de sincronização
Em certos processos, é possível que dois estados tenham que acontecer 
ao mesmo tempo. Se representarmos um estado com uma transição para 
outro, esses dois acontecem de modo sequencial, um após o outro, e não 
simultaneamente.
Para representar os estados acontecendo ao mesmo tempo, podemos utilizar a 
barra de sincronização. Ela faz com que uma transição permita que várias outras se 
dirijam a estados que irão ocorrer de maneira simultânea. Após essa ocorrência, a 
barra também faz com que o processo volte a ser sequencial.
A Figura 7 mostra o elemento barra de sincronização com setas de transição 
entrando e saindo da barra.
Diagramas suplementares da UML 123
Figura 7
Elemento barra de sincronização
Fonte: Elaborada pelo autor.
Suponha o procedimento de arrancar um automóvel, em que o motorista deve 
ao mesmo tempo pisar no acelerador e soltar a embreagem do carro. Esses dois 
movimentos devem ser feitos simultaneamente. Para representar essa situação 
num Diagrama de Transição de Estados, podemos usar a barra de sincronização, 
conforme mostra a Figura 8.
Figura 8
Exemplo do elemento barra de sincronização
Andando
Soltando a embreagemPressionando o acelerador
Engatando a marcha
Fonte: Elaborada pelo autor.
Dois estados especiais são o estado inicial e o final e são utilizados obviamente 
para iniciar um diagrama e para representar o seu fim. Na Figura 9 estão represen-
tados esses dois estados, antes e depois do estado Incluindo Pedido.
Figura 9
Estado inicial e final
do / incluirPedido()
Incluindo Pedido
Fonte: Elaborada pelo autor.
5.1.2 Exemplo 1 – Encerramento de uma conta corrente
Como primeiro exemplo desse diagrama, vamos supor um processo de en-
cerramento de uma conta corrente em um banco. No decorrer desse processo, o 
objeto conta passa por diversos estados até chegar ao final, quando a conta está 
124 Análise de Sistemas
 efetivamente encerrada. Nesse exemplo poderemos constatar também que o Dia-
grama de Transição de Estados permite desvios conforme o resultado da ação de 
um determinado estado. A Figura 10 mostra esse exemplo.
Figura 10
Exemplo do Diagrama de Transição de Estados para o encerramento de uma conta corrente
Encerrando Conta
Verificando Saldo
Senha Válida
Verificando Senha
do / encerrar()
Saldo zerado
do / sacar()
Sacando Saldo
[Se positivo]
[Se negativo]do / consultarSaldo()do / validarSenha()Conta Existentedo / consultarConta()
Consultando Conta
Fonte: Elaborada pelo autor.
5.1.3 Exemplo 2 – Despacho de bagagem em um aeroporto
Este segundo exemplo mostra a rotina de uma bagagem passando por diversos 
estados em um aeroporto após o despacho pelo cliente no momento do embarque.
O processo inicia pelo cliente despachando a bagagem no balcão da companhia 
aérea; depois o embarque na aeronave; a saída para o aeroporto de destino até a 
retirada pelo cliente.
A Figura 11 mostra esse exemplo e também os casos excepcionais de bagagem 
com problema de checagem e não retirada por parte do cliente.
Figura 11
Exemplo do Diagrama de Transição de Estados para o despacho de uma bagagem em um aeroporto
Aguardando retirada
Transportando para reclamações
passageiro retirou
Retirando
passageiro não retirou
Entrando na Esteira Transportando do Avião Desembarcando
Voando
Embarcando
Transportando ao avião
Aguardando Embarque
Enviando para PF
Irregular
ChecandoDespachando
Fonte: Elaborada pelo autor.
Diagramas suplementares da UML 125
5.1.4 Exemplo 3 – Pedido de comida
Finalmente faremos o Diagrama de Transição de Estados para o exemplo inicial 
desta seção, em que o cliente faz um pedido de comida, passando por todos os 
trâmites até o recebimento na sua residência. A Figura 12 mostra esse exemplo.
Figura 12
Exemplo do Diagrama de Transição de Estados para o pedido de comida
do / recebendoPedidoCliente
Recebendo Pedido
Receber pelo clientedo / receberPedidoEntregador
Recebendo Pedido
Receber pelo entregador
do / chamarEntregador
Aguardando Entregador
Chamar entregador do / produzir
Produzindo Produtos
Produzir os produtos
do / receberPedidoAtendente
Recebendo Pedido
Receber no restaurantedo / incluirPedido
Fazendo Pedido 
Fonte: Elaborada pelo autor.
Vimos a versatilidade do Diagrama de Transição de Estados para representar 
situações pelas quais um objeto pode passar durante um determinado processo. 
Por ter uma visão transversal, devido aos diversos casos de uso, esse diagrama 
fornece uma visão gráfica das mudanças de estado, permitindo maior facilidade de 
projetar a solução e, principalmente, de alterar sua estrutura quando necessário.
5.2 Diagrama de Atividades
Vídeo Esse tipo de diagrama procura modelar um determinado processo, atividade, 
ou até mesmo um algoritmo, detalhando o passo a passo da execução. É um dia-
grama utilizado não só na modelagem UML como também em quaisquer áreas que 
necessitam representar seus processos de negócio.
Nas teorias de análise mais antigas, esse diagrama era muito difundido e utiliza-
do e tinha o nome de Fluxograma. Por muitos anos, era o único diagrama construí-
do para representar a solução informatizada.
Por sua simplicidade e facilidade de construir, o Diagrama de Atividades é usado 
das mais diversas formas; numa discussão rápida de como deve ocorrer determi-
nado caso de uso, por exemplo, ele pode facilitar o entendimento com um simples 
desenho no papel, fazendo com que a comunicação entre a equipe seja eficiente. 
Também no caso de algoritmos complexos, um programador pode utilizar esse dia-
grama para esboçar uma solução, antes de efetivamente implementá-la em uma 
linguagem de programação.
Trata-se de um diagrama que mostra a sequência de ações e condições para 
coordenar comportamento de baixo nível e dá ênfase aos detalhes de um processo 
(GUEDES, 2018).
126 Análise de Sistemas
Segundo Booch, Rumbaugh e Jacobson (2012, p. 293), assim como o Diagrama de 
Transição de Estados, “os diagramas de atividades serão empregados para fazer a mo-
delagem de aspectos dinâmicos do sistema”.
Para Melo (2010, p. 199), “este diagrama tem por propósito focalizar um fluxo 
de atividades que ocorrem internamente em um processamento, dentro de um 
período de tempo”.
A Figura 13 apresenta o processo de compra de uma passagem aérea, em que 
várias telas encadeadas precisam ser acessadas desde o momento das informações 
iniciais, dadas pelo cliente, até a efetivação da compra (na figura está representada 
somente parte desse processo).
Figura 13
Processo da compra de uma passagem aérea
Fonte: Latam Airlines BrasiL, 2021.Diagramas suplementares da UML 127
O Diagrama de Atividades é o diagrama apropriado para representar esse tipo 
de situação.
5.2.1 Elementos
A seguir serão apresentados os elementos básicos que podem ser utilizados no 
Diagrama de Atividades.
5.2.1.1 Ação
Uma ação representa um dos passos da atividade do diagrama. É uma parte do 
processo que deve ser realizada, normalmente nomeada com um verbo no infiniti-
vo e um sujeito. Também pode conter uma referência ao ator que está realizando a 
ação. O símbolo desse elemento é um retângulo com bordas arredondadas.
A Figura 14 apresenta dois exemplos desse elemento, o primeiro com a ação 
Pesquisar Voo e o segundo com a ação de um cliente inserindo um cartão no 
caixa eletrônico.
Figura 14
Exemplos do elemento ação
Cliente insere cartãoPesquisar Voo
Fonte: Elaborada pelo autor.
5.2.1.2 Fluxo
Representa a ligação entre duas ações, a passagem de uma ação para outra. A 
Figura 15 apresenta esse elemento com duas ações ligadas por um fluxo.
Figura 15
Elemento fluxo
Cliente insere cartão
Sistema solicita o 
cartão do cliente
Fonte: Elaborada pelo autor.
5.2.1.3 Nó de decisão
Representa uma bifurcação na sequência de ações que pode levar a diversas 
opções (alternativas) dependendo de certas condições.
Suponha que no exemplo da Figura 15, após o cliente inserir o cartão, o sistema 
fizesse a verificação se o cartão inserido é ou não um cartão válido. Nesse caso, 
teríamos duas alternativas e duas ações a serem tomadas dependendo do resulta-
do dessa validação. Para que o diagrama apresente essas duas opções, é usado o 
elemento nó de decisão.
128 Análise de Sistemas
A Figura 16 apresenta esse elemento. Após verificar se o cartão é válido, o exem-
plo mostra um nó de decisão em que uma ação é realizada caso o cartão seja váli-
do, e outra para o cartão inválido.
Figura 16
Elemento nó de decisão
“Cartão inválido”
Sistema emite a mensagem
[Inválido][Válido]
Sistema solicita a senha
Sistema valida o cartão
Cliente insere cartão
Sistema solicita o
cartão do cliente
Fonte: Elaborada pelo autor.
5.2.1.4 Barra de sincronização
Assim como no Diagrama de Transição de Estados, nesse diagrama também po-
demos utilizar a barra de sincronização quando desejamos que duas ações sejam 
realizadas ao mesmo tempo.
Sua representação é a mesma, ou seja, uma barra de onde podem sair diversos 
fluxos apontando para as ações que precisam ser executadas de maneira simultânea.
A Figura 17 mostra um exemplo desse elemento em que o encarregado de pro-
duzir um produto (um prato de um restaurante, por exemplo), ao receber um pe-
dido deve produzir os produtos desse pedido, porém, ao mesmo tempo, não deve 
deixar de acompanhar os produtos que já estavam sendo produzidos.
Figura 17
Elemento barra de sincronização
Produzir produtos
Receber pedido
em produção
Acompanhar produtos
Fonte: Elaborada pelo autor.
5.2.2 Exemplo 1 – Emitir extrato bancário
O exemplo a seguir mostra um Diagrama de Atividades de todo o processo de 
emitir um extrato num caixa eletrônico. A Figura 17 mostra esse exemplo.
Diagramas suplementares da UML 129
Figura 18
Exemplo do Diagrama de Atividades para a atividade emitir extrato
Apresentar extrato
inválido”
“Período
mensagem
Apresentar
[Período inválido]
período
Validar
período
Solicitar
[Senha válida]
“Senha inválida”
mensagem
Apresentar
[Senha inválida]
Verificar senhasenha
Solicitar
[Inválida]
conta
Verificar
conta
Solicitar
Fonte: Adaptado de Guedes, 2018.
5.2.3 Colunas
O Diagrama de Atividades pode ser construído com colunas onde em cada uma 
delas pode ser colocado um ator que faz parte do processo. Essas colunas, tam-
bém conhecidas como raias de uma piscina, são importantes para que cada ação 
esteja colocada na respectiva coluna do ator responsável por ela.
O exemplo a seguir mostra um Diagrama de Atividades de todo o processo de 
compra de uma passagem aérea. Podemos perceber que agora o diagrama está 
com as ações distribuídas em quatro colunas: Cliente, Empresa Aérea, Operadora 
de Cartão e Programa de Milhagem.
O processo inicia na primeira coluna (Cliente), informando os dados da viagem; 
em seguida foi colocado um fluxo para a próxima ação, Pesquisar voo, porém 
quem é responsável por essa pesquisa é o sistema na Empresa Aérea, então essa 
ação foi colocada na sua coluna; em seguida vem a ação Listar voos e o nó de deci-
são na coluna do Cliente novamente para que ou sejam colocados dados de outra 
viagem, caso não encontre a primeira, ou se passe para a ação do Cliente, Escolher 
um voo. O processo continua nessa linha, com todas as ações nas suas respectivas 
colunas. A Figura 19 mostra esse exemplo.
130 Análise de Sistemas
Figura 19
Exemplo do Diagrama de Atividades utilizando colunas
Debitar Milhas
Realizar Pagamento
Emitir Passagem
[Sem milhas]
[Com milhas]
Listar Voos
Pesquisar Voo
Passagem
Imprimir
da compra
Informar dados
Escolher Voo
[Achou]
[Não achou]
da viagem
Informar dados
Programa de MilhagemOperadora de CartãoEmpresa AéreaCliente
Fonte: Elaborada pelo autor.
Esses foram os principais elementos de um Diagrama de Atividades. Vimos a sua 
importância e suas diversas utilidades no processo de modelagem de um sistema.
5.3 Diagrama de Pacotes 
Vídeo O Diagrama de Pacotes tem por objetivo organizar os elementos de um modelo 
e demonstrar as dependências entre eles (GUEDES, 2018).
Normalmente diagramas de grandes sistemas e com muitas funcionalidades fi-
cam com um número excessivo de elementos, não permitindo sua visualização em 
uma única página, o que muitas vezes é inconveniente. Então, com esse diagrama, 
é possível segmentar os diagramas em funções e subfunções, sistemas e subsiste-
mas, ou até mesmo em partições, conforme o ambiente em que um determinado 
componente irá atuar.
Segundo Guedes (2018), o Diagrama de Pacotes pode também representar:
 • um conjunto de sistemas integrados;
 • submódulos de um único sistema;
 • a arquitetura de uma linguagem de programação;
 • a arquitetura de um processo em desenvolvimento.
Diagramas suplementares da UML 131
Olhando para os diversos diagramas da UML, o Diagrama de Pacotes pode ser usa-
do em conjunto com o Diagrama de Classes com o objetivo de “empacotar” classes per-
tencentes a um mesmo módulo e demonstrar a integração desses pacotes de classe. Já 
o Diagrama de Caso de Uso pode segmentar em pacotes conjuntos de casos de uso de 
uma determinada parte do sistema e demonstrar a integração entre eles.
O Diagrama de Pacotes serve então de auxílio a outros diagramas para melho-
rar a visualização da modelagem.
5.3.1 Elementos
A seguir serão apresentados os elementos básicos que podem ser utilizados no 
Diagrama de Pacotes.
5.3.1.1 Pacote
O elemento básico desse diagrama é, obviamente, o pacote. É representado 
por um retângulo em que, no topo, é colocado o nome do pacote. Esse nome 
deve apresentar uma boa referência sobre os componentes que estão sendo 
empacotados.
A Figura 20 apresenta um exemplo de um pacote que representa um determi-
nado sistema de informação de um restaurante.
Figura 20
Exemplo do elemento pacote
Sistema de Pedidos
Fonte: Elaborada pelo autor.
Nesse exemplo colocamos somente o pacote representando o sistema. Tam-
bém é possível colocar elementos dentro do pacote para mostrar o seu conteúdo.
Na Figura 21 foram colocadas algumas classes no pacote, demonstrando o que 
ele contém. Podemos perceber que, nesse pacote, as classes não contêm atribu-
tos nem métodos e não estão relacionadas. Isso ocorre porque o objetivo desse 
diagrama é justamente dar uma visão geral e mais ampla dos componentes, e não 
seus detalhes, que podem ser visualizados no diagrama específico.
Figura 21
Exemplo de pacote com classes
Cliente
Produto
Pedido
Sistema de Pedidos
Fonte: Elaborada pelo autor.
132 Análise de Sistemas
Já a Figura 22 mostra um exemplo de como empacotar casos de uso.
Figura 22
Exemplo de pacote com casos de uso
 
Entregar Pedido
Receber Pedido
Fazer Pedido
Sistema deint FK
14 Análise de Sistemas
Entretanto, apesar do avanço que a Análise Estruturada trouxe, os problemas 
nos sistemas continuavam ocorrendo. Os processos estavam estruturados e os da-
dos organizados, porém a principal questão nesse modelo era que qualquer pro-
cesso tinha autorização para manipular qualquer dado do modelo. Mesmo que o 
processo não tivesse relação nenhuma com determinado dado, nada o impedia de 
acessá-lo. Isso causava muitos problemas de programadores inexperientes codifi-
carem programas que deveriam ter um objetivo, porém esses objetivos eram ne-
gligenciados, desse modo o programa começava a interferir em outros processos 
fora do seu escopo e, o mais grave, começava a manipular dados que não eram 
condizentes com o real objetivo daquele programa.
1.1.2.2 Análise Orientada a Objetos
Para amenizar essas questões, surgiu nos anos 1990 a Análise Orientada a Obje-
tos (RUMBAUGH et al., 1994). O princípio básico dessa teoria é o conceito de encap-
sulamento, segundo o qual determinados dados devem ser manipulados somente 
por suas operações num componente chamado Objeto. Assim, se identificamos um 
conjunto de dados relativos a um cliente de banco, por exemplo, devemos ter um 
conjunto de processos (ou operações ou funções) que será responsável por ma-
nipular esses dados. Em outras palavras, não existe a possibilidade de processos 
que tratam de financiamentos do banco manipularem diretamente os dados dos 
clientes. Isso é de grande importância, pois somente as operações relativas aos 
clientes conhecem as regras para se manipular seus dados e essas regras ficam 
concentradas nas operações desses dados.
Como mostra a Figura 6, esse encapsulamento de dados e operações está 
representado na forma de um círculo contendo os dados e um outro à sua vol-
ta contendo suas operações, dando a ideia de que os dados estão “protegidos” 
pelas operações, ou seja, suas operações são as únicas que têm permissão para 
manipulá-los.
É evidente que existe a possibilidade de outros processos necessitarem de da-
dos que não são de sua responsabilidade, porém, nesse caso, esse processo só 
consegue acessar o dado fazendo uma solicitação às suas operações (representado 
pelas setas na figura), e essa solicitação é chamada de mensagem entre os objetos. 
Essa união entre dados e operações será chamada de objeto.
Figura 6
Modelo de Objetos
Fonte: Elaborada pelo autor.
operações
dados
Objeto 1
operações
dados
Objeto 2
operações
dados
Objeto n
operações
dados
Objeto 3
Para conhecer melhor as 
teorias de análise mais 
antigas, leia a obra Análise 
Estruturada de Sistemas, 
que determinou as tendên-
cias do desenvolvimento 
de software na década de 
1970.
GANE, C.; SARSON, T. São Paulo: 
LTC, 1983.
Livro
Introdução à análise de sistemas e Levantamento de Requisitos 15
Como exemplo, suponha um sistema de vendas de produtos. Os objetos en-
volvidos nesse negócio poderiam ser: produtos, clientes, fornecedores e, princi-
palmente, a venda. A representação desse sistema orientado a objetos seria o que 
mostra a Figura 7.
Figura 7
Exemplo de modelo de objetos
Fonte: Elaborada pelo autor.
incluir
nome
CPF
Cliente
incluir
nome
CNPJ
Fornecedor
vender
numero
data
Venda
mostraTela
Campos da tela
TELA DE VENDAS
consultar
nome 
dimensoes
ProdutoBanco de dados
Vimos que a evolução das teorias de análise nos levou a modelos mais comple-
xos, porém os problemas passaram a ser mais controlados e a qualidade dos siste-
mas melhoraram, fazendo com que se chegasse a um padrão utilizado por todo o 
mercado de produção de sistemas.
Não só a teoria de Análise Orientada a Objetos se solidificou no mercado, mas 
uma grande área surgiu para dar as diretrizes para todo o processo complexo de 
desenvolvimento de um software e foi chamada de Engenharia de Software, sendo 
seus precursores nomes como Roger S. Pressman, Bruce R. Maxim (PRESSMAN; 
MAXIM, 2016) e Ian Sommerville (SOMMERVILLE, 2011).
1.1.3 Ciclo de desenvolvimento de um sistema
Para o completo desenvolvimento de um sistema, desde a necessidade de um 
cliente informatizar a solução de um determinado problema de negócio até a efe-
tiva utilização do sistema no ambiente real, existe um ciclo de desenvolvimento 
cobrindo diversas atividades. Muitas formas foram propostas para esses ciclos, que 
também foram evoluindo no decorrer dos anos, sempre com novos modelos capa-
zes de resolver os problemas dos modelos anteriores.
Independentemente do tipo de ciclo, quatro fases básicas no processo sempre 
são identificadas: Iniciação, Elaboração, Construção e Transição (KRUCHTEN, 2003). 
Essa nomenclatura pode ser diferente nas várias propostas existentes, mas pode-
mos focar esses termos para entendermos em qual dessas fases atua a análise de 
sistemas. As características de cada uma das fases são:
16 Análise de Sistemas
Como o nome já diz, é a fase em que se inicia a investigação acerca das 
necessidades do usuário, busca-se o entendimento do negócio e do proble-
ma a ser resolvido. São levantados os Requisitos (ou funcionalidades) que 
serão atendidos pelo sistema e é obtido um acordo (ou consenso) com as 
partes envolvidas (usuário e equipe de desenvolvimento).
Iniciação
Nessa fase é projetada uma solução que satisfaça os Requisitos. É feita a 
modelagem do sistema por meio de construção de documentos e diagramas 
que apresentem ao usuário uma ideia de como será o produto final. A equipe de 
analistas de sistemas toma como base os materiais produzidos na fase anterior. 
Elaboração
Nessa fase são codificados os programas e componentes de software que se 
transformarão no produto final, um software funcionando. A equipe de progra-
mação toma como base todo o material produzido na fase anterior para cons-
truir um software como foi especificado no projeto.
Construção
Com os componentes de software construídos, nessa fase é feito o plane-
jamento da entrega, os testes de software, bem como sua homologação pelo 
usuário e, finalmente, o software é liberado para o ambiente produtivo.
Transição
A Figura 8 mostra o detalhamento 
das atividades em cada uma das fases. 
Ela é comumente chamada de gráfico 
das baleias. Na coluna da esquerda, 
as disciplinas representam as ativida-
des que devem ser realizadas, na linha 
horizontal, aparecem as iterações. As 
“barrigas”, representadas horizontal-
mente, indicam a carga de trabalho de 
cada atividade em cada fase, quanto 
mais alta, maior a carga.
Atividades
Modelagem de Negócios
Requisitos
Análise e Design
Implementação
Teste 
Implementação
Gerenciamento de 
Configuração e Mudança
Gerenciamento de Projeto
Ambiente
Figura 8
Ciclo de Desenvolvimento
Fonte: Kruchten, 2003.
Introdução à análise de sistemas e Levantamento de Requisitos 17
Esse modelo foi amplamente utilizado pelas empresas durante anos. Suas 
desvantagens foram a formalização, o excesso de procedimentos e artefatos que 
eram construídos e, muitas vezes, não tinha utilidade por não agregar valor ao 
produto final.
Porém, a estrutura geral do modelo, como as fases e suas atividades, permane-
ceu nas metodologias mais modernas.
Existem outros ciclos de 
desenvolvimento mais antigos 
que não foram abordados por 
não serem mais utilizados. São 
exemplos: cascata, incremental e 
prototipação.
Curiosidade
1.2 Levantamento de Requisitos
Vídeo A fase de Iniciação do ciclo de desenvolvimento de um sistema começa com o 
Levantamento de Requisitos.
Essa tarefa é primordial para que o software seja desenvolvido da maneira 
correta e atenda totalmente às necessidades do cliente. Sua importância e sua 
abrangência são tão grandes que uma nova área foi criada, chamada Engenharia 
de Requisitos.
O uso sistemático de técnicas para obter, documentar e manter as informa-
ções para conseguir uma Lista de Requisitos que atendem aos objetivos do cliente 
no seu negócio é uma boa definição de Engenharia de Requisitos. Suas práticas e 
ferramentas facilitam a comunicação com o cliente a fim de identificar e entender 
suasPedidos – Requisitos
Fonte: Elaborada pelo autor.
5.3.1.2 Dependência
O elemento dependência faz a ligação entre os pacotes para indicar a relação 
que existe entre eles tanto na passagem de informações quanto das suas funções. 
Para essa ligação, usa-se uma seta pontilhada.
A Figura 23 apresenta um exemplo de dois pacotes ligados pelo símbolo de de-
pendência. Nesse exemplo, digamos que o restaurante tenha outros dois sistemas 
de informação, o sistema financeiro, que deve registrar os valores dos pedidos, e 
o sistema de avaliação dos pedidos. Podemos perceber que, durante o processo 
completo de realização do pedido no sistema de pedidos, em algum momento os 
dois outros sistemas serão acessados, demonstrando assim a dependência que 
existe entre eles.
Figura 23
Exemplo do elemento dependência
Sistema de Avaliação
Sistema Financeiro
Sistema de Pedidos
Fonte: Elaborada pelo autor.
5.3.2 Exemplo 1 – Pacotes de arquitetura de um sistema
Nesse exemplo vamos mostrar como seriam os pacotes para representar uma 
arquitetura de programação de um sistema. Digamos que as classes de um siste-
ma foram distribuídas em três camadas, cada uma cuidando das suas funções. A 
primeira delas poderia ser chamada de camada de apresentação, na qual estariam 
todos os programas das telas do sistema com o único objetivo de apresentar a tela 
ao usuário.
Diagramas suplementares da UML 133
Em seguida, poderíamos ter uma camada de controle, responsável pela passa-
gem dos dados da camada de apresentação para a terceira camada e, finalmente, 
uma camada de negócios, contendo as classes responsáveis por todo o processa-
mento dos dados das telas, incluindo o acesso ao banco de dados e a aplicação das 
regras de negócio. A Figura 24 mostra esse exemplo.
Figura 24
Exemplo do Diagrama de Pacotes de uma arquitetura de programação
Negócio
Controle
Apresentação
Fonte: Elaborada pelo autor.
Esse exemplo é uma arquitetura importante, amplamente utilizada em aplica-
ções web, em que as páginas HTML estão na camada de apresentação. A comuni-
cação do browser com os programas do servidor de aplicações é controlada pelas 
classes do pacote de Controle e, já no servidor, o pacote com as classes de Negócio 
fazem todos o processamento dos dados da tela.
5.3.3 Exemplo 2 – Pacotes de dois sistemas com suas classes
Nesse exemplo vamos mostrar dois pacotes interligados, cada um represen-
tando um sistema de informação com suas respectivas classes. A Figura 25 mostra 
esse exemplo.
Figura 25
Exemplo do Diagrama de Pacotes de dois sistemas de informação interligados
ProfessorAluno
Cadastro
DeliberacaoSolicitacao
Secretaria On-line
Fonte: Elaborada pelo autor.
Vimos que o Diagrama de Pacotes é bastante útil para melhorar a apresenta-
ção dos componentes de um sistema, dando uma boa visão de grandes proces-
sos e demonstrando, nos níveis que se desejar, o conteúdo e o encadeamento 
dos pacotes.
O Exemplo 1, de uma arquitetura em 
três camadas, é conhecido como MVC 
(Model/View/Controler).
Curiosidade
134 Análise de Sistemas
CONSIDERAÇÕES FINAIS 
Este capítulo apresentou diagramas da UML que são considerados opcionais ou 
suplementares por fornecer informações e visões diferentes e/ou mais detalhadas de 
alguns aspectos da modelagem.
O Diagrama de Transição de Estados, que é aplicado a uma situação específica que 
pode ou não ocorrer no sistema quando um determinado objeto passar por diversas 
situações no decorrer de um processo, é de extrema utilidade para centralizar num úni-
co diagrama e mostrar graficamente as passagens e suas condições dessas situações.
Já o Diagrama de Atividades se mostra extremamente versátil e útil para diversos fins, 
pois atende desde o detalhamento de um simples algoritmo até a apresentação de manei-
ra detalhada de processos grandes e complexos.
Por fim, o Diagrama de Pacotes serve para mostrarmos que é possível agrupar 
processos a fim de demonstrar melhor seu encadeamento e se ter uma visão mais 
ampla do sistema.
ATIVIDADES 
1. Qual é o objetivo do Diagrama de Transição de Estados?
2. Quais são os quatro elementos básicos de um Diagrama de Atividades?
3. Quais são as aplicações de um Diagrama de Pacotes?
REFERÊNCIAS 
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 12. ed. Rio de Janeiro: Elsevier, 2012.
DEBONI, J. E. Z. Modelagem orientada a objetos com a UML. São Paulo: Futura, 2003.
GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.
LATAM AIRLINES BRASIL. Latam Airlines, 2021. Página inicial. Disponível em: https://www.latamairlines.
com/br/pt. Acesso em: 12 mar. 2021.
MELO, A. C. Desenvolvendo aplicações com UML 2.2. Rio de Janeiro: Brasport, 2010.
RUMBAUGH, J. et al. Modelagem e projetos baseados em objetos. São Paulo: Campus, 1994.
Gabarito 135
GABARITO 
1 Introdução à análise de sistemas e Levantamento de Requisitos
1. Os processos estavam estruturados, os dados organizados, porém a principal 
questão nesse modelo era que qualquer processo tinha autorização para manipular 
qualquer dado do modelo. Além disso, os programas tinham autorização para 
interferir em processos fora do seu escopo.
2. Diagrama de Caso de Uso: apresenta graficamente todas os Requisitos do sistema 
bem como a interação com as entidades externas.
Diagrama de Classes: é utilizado para modelar as classes de objetos, seus atributos, 
suas operações e relacionamento com outras classes.
Diagrama de Sequência: determina a sequência de mensagens que devem 
ser trocadas entre os objetos do sistema para que um caso de uso realize 
completamente sua função.
3. Muita burocracia e grande esforço na produção de documentos, diagramas e 
artefatos inúteis. O processo era engessado em normas e padrões. Atraso na 
entrega do sistema, alto custo e equipe insatisfeita com a metodologia de trabalho. 
Desperdício de tempo e dinheiro para produzir artefatos que não tinham nenhuma 
utilidade. O mais importante era a produção de documentos, e não a produção 
efetiva do sistema.
2 Casos de Uso e Histórias de Usuário
1. Os objetivos principais são: atender aos Requisitos do cliente por meio de 
verificações que o sistema deve fazer para considerar que a História pronta; 
ter o aceite do cliente, já que somente com os critérios verificados a História é 
considerada pronta; determinar quais são os procedimentos da tela para que se 
atinja o seu objetivo.
2. Os elementos de um Diagrama de Caso de Uso são ator, caso de uso e 
relacionamento. Os atores representam entidades externas ao sistema e que 
interagem com ele. Fornecem e/ou recebem informações do sistema e irão 
interagir com ele para satisfazer suas necessidades. Existem três tipos de atores:
 • Pessoas: são os atores mais fáceis de serem identificados. Irão manipular as 
telas, receber relatórios e fazer consultas aos dados.
 • Órgãos de uma organização: em uma organização, um determinado órgão pode 
ser considerado um ator quando todas as pessoas desse órgão irão interagir 
com o sistema.
 • Outros sistemas informatizados: são softwares externos, pertencentes ou não à 
mesma organização.
Um caso de uso representa um determinado Requisito, é uma funcionalidade 
completa conforme percebida pelo ator. Ele fornece um resultado observável 
ao ator e contribui para que o ator atinja seu objetivo. Os relacionamentos têm 
por objetivo fazer as ligações entre os atores e casos de uso. Com isso, é possível 
saber com quais casos de uso um determinado ator vai se relacionar e estruturar 
136 Análise de Sistemas
os atores conforme seus tipos a fim de detalhar melhor suas responsabilidades. 
Existem cinco tipos de relacionamentos que podem ser utilizados num Diagrama 
de Caso de Uso:
 • Ligação: é feita entre atores e casos de uso para indicar exatamente com quais 
casos de uso cada ator irá interagir.
 • Herança de atores: é identificada quando existem “tipos” desse ator. Um ator 
com características mais gerais tem seus tipos mais específicos.
 • Herança de casos de uso: um caso de uso mais geral podeter diversos tipos 
mais específicos.
 • Include (ou uso): é usado quando queremos separar uma parte dos procedi-
mentos de um caso de uso criando um novo caso de uso com essa parte. Esses 
dois casos de uso poderão ficar ligados por meio de um Include.
 • Extend (ou extensão): seu funcionamento é muito parecido com o include, exis-
tindo a chamada de um caso de uso a outro para que se realize um determinado 
procedimento e retorne ao caso de uso original. Porém, no caso de um Extend, 
essa chamada ocorre segundo uma determinada condição.
3. Os objetivos principais são: facilitação da avaliação por parte do cliente; possibilidade 
de se realizar ajustes rápidos e correção de erros; ajustes de posicionamento dos 
componentes e manuseio da tela.
3 Objetos e classes
1. Uma classe é um conjunto de objetos que possuem a mesma lista de atributos, 
as mesmas operações e os relacionamentos comuns com outros objetos. É 
um modelo, um protótipo, usado para criar vários objetos com características 
semelhantes. Ela representa uma categoria, e os objetos são os membros ou 
exemplos dessa categoria. As classes são meras descrições dos objetos que as 
compõem, são especificações que descrevem os seus objetos.
2. Associação, agregação, composição, classe de associação e herança.
3. Visualização de alguns objetos nas classes. Com isso, é possível verificar se foram 
identificados todos os atributos necessários para as classes, se algum deles está 
na classe errada, e possibilita ter uma visão geral de como serão os objetos das 
classes quando o sistema estiver sendo usado efetivamente.
4 Diagrama de Sequência
1. O objetivo principal do Diagrama de Sequência é identificar a ordem em que os 
eventos ocorrem e determinar os métodos que serão chamados para atender a 
esses eventos, refletindo assim a interação entre os objetos envolvidos em um 
determinado processo.
2. Ator, objeto e mensagem.
3. REF, OPT, LOOP e ALT.
Gabarito 137
5 Diagramas suplementares da UML
1. O Diagrama de Transição de Estados demonstra graficamente a mudança de 
estado de um ou mais elementos ou objetos de um sistema por meio de um 
conjunto de transições.
2. Ação, fluxo, nó de decisão e barra de sincronização.
3. O Diagrama de Pacotes pode representar um conjunto de sistemas integrados; 
submódulos de um único sistema; a arquitetura de uma linguagem de programação; 
a arquitetura de um processo em desenvolvimento.
A
N
Á
LISE D
E SISTEM
A
S
JAIME WOJCIECHOWSKI
Código Logístico
59856
Fundação Biblioteca Nacional
ISBN 978-65-582-1013-9
9 7 8 6 5 5 8 2 1 0 1 3 9necessidades e obter um consenso para a solução que será entregue. Em suas 
principais práticas estão tarefas, técnicas, orientações, papéis e responsabilidades 
(VASQUEZ, 2016).
O profissional responsável por essas tarefas é o analista de requisitos (que tam-
bém pode ser o analista de sistemas). Ele realiza as atividades previstas na fase de 
Levantamento de Requisitos e no mapeamento dos processos de negócio. A docu-
mentação técnica de especificação de Requisitos de softwares fornece um vasto 
material aos analistas de sistemas para que possam trabalhar na fase de Elabora-
ção, fazendo a modelagem do sistema.
Levantar Requisitos significa entender o negócio e o problema do cliente, iden-
tificar suas necessidades de software, investigar quais são as suas expectativas 
em relação à solução informatizada que será adotada, em resumo, definir o que o 
software vai fazer.
Nesse quesito, o maior problema que pode ocorrer é a dificuldade de comuni-
cação entre o analista e o cliente.
Na fase de Levantamento de Requisitos, então, é definido o escopo do sistema 
para se ter claro a que o sistema vai atender (e também a que ele não vai atender) 
e, principalmente, são identificados os seus Requisitos.
1.2.1 Conceitos
O conceito principal nessa área é o de Requisito. Segundo Vasquez (2016, p. 18), 
“é uma condição ou capacidade do sistema, solicitada pelo usuário, para resolver um 
18 Análise de Sistemas
problema ou atingir um objetivo”. Na prática, os Requisitos são funções, objetivos, 
propriedades ou restrições que o sistema deve possuir para satisfazer usuários.
De modo geral, um Requisito é uma condição necessária para satisfazer um 
objetivo, é uma exigência, solicitação, desejo e necessidade. Para Vasquez (2016):
Um usuário necessita que o sistema resolva seu problema ou 
o ajude a alcançar seu objetivo.
Requisitos estão relacionados a necessidades
Um usuário deve possuir a condição dada pelo sistema para 
satisfazer um contrato, padrão, especificação ou outro documen-
to formalmente imposto.
Requisitos estão relacionados a propriedades
Uma representação documentada de uma condição ou capaci-
dade como nas duas primeiras definições.
Requisitos possuem uma especificação
Os Requisitos estão ligados ao atendimento do negócio do sistema. Por exem-
plo, uma das funções de um sistema de venda de jogos pela internet é ter uma ou 
mais telas capazes de realizar a venda de um determinado jogo. Esse é o objetivo 
principal do sistema. Portanto, vender jogos é um Requisito do sistema (provavel-
mente o principal).
1.2.2 Tipos de Requisitos
Na análise do problema para a elaboração da Lista de Requisitos, podemos 
identificar vários tipos. É importante conseguirmos separar os Requisitos nesses 
tipos com o objetivo de melhor atuarmos no seu detalhamento e implementação. 
Os tipos de Requisitos serão especificados a seguir.
1.2.2.1 Requisitos Funcionais
Descrevem o comportamento que o software deve ter em termos de serviços 
para o negócio do usuário. Têm como objetivo as necessidades do assunto de 
que trata o sistema do cliente.
Os Requisitos Funcionais se referem às funções relacionadas com o negócio do 
cliente, com as funções que atendam diretamente às suas necessidades. Definem 
o que o sistema fará para atender ao pedido do cliente. São os Requisitos mais im-
portantes. O quadro a seguir apresenta exemplos desse tipo de Requisito.
Introdução à análise de sistemas e Levantamento de Requisitos 19
Quadro 1
Exemplos de Requisitos Funcionais em diversos negócios
O sistema deve cadastrar médicos profissionais.
O sistema deve emitir um relatório de clientes.
O sistema deve passar um cliente da situação “em consulta” para “consultado” quando o cliente 
terminar de ser atendido (mudança de estado).
O cliente pode consultar seus dados no sistema.
Executar a baixa dos boletos de contas a receber.
Renovar contrato.
Emitir certificado de participação do aluno no curso.
Vender passagem aérea.
Fonte: Elaborado pelo autor.
Quando um Requisito Funcional estiver escrito em um nível macro, passando 
uma ideia ampla, ele é chamado de Requisito Funcional Agregador. Não é indicado 
trabalhar com esse tipo na fase de modelagem do sistema, pois invariavelmente 
ele terá de ser subdividido para sua implementação. Então, o mais indicado é fazer 
essa divisão na fase de Levantamento dos Requisitos. Exemplos: efetuar gestão dos 
cursos; gerenciar relacionamento com clientes etc.
De maneira contrária aos Requisitos Agregadores, um Requisito Funcional pode 
ser fragmentado em vários Requisitos chamados de Requisitos de Subfunção. Tam-
bém não é indicado relacionar somente os Requisitos de Subfunção, pois eles só 
têm a função de mostrar as partes de um Requisito.
Por exemplo: o Requisito Funcional Sacar dinheiro em um caixa eletrônico teria 
três subfunções:
1. validar senha;
2. verificar saldo;
3. debitar conta.
1.2.2.2 Requisitos não Funcionais
Representam limitações ou determinações impostas aos Requisitos Funcionais. 
Falam das condições do ambiente no qual o software será executado e como esse 
ambiente pode afetar ou restringir a perfeita realização dos Requisitos Funcionais. 
Descrevem como o sistema deve funcionar. Entre outros aspectos, falam sobre:
 • O ambiente – segurança, comunicação etc.
 • A organização – locais de operação, tipos de hardware etc.
 • A implementação – linguagem de programação, Banco de Dados e 
arquitetura.
 • A qualidade – tempo de resposta, facilidade de uso, eficiência e facilidade de 
manutenção.
20 Análise de Sistemas
O quadro a seguir apresenta exemplos desse tipo de Requisito.
Quadro 2
Exemplos de Requisitos não Funcionais
Requisito Descrição
RNF1 – Tempo de resposta on-line
Todas as solicitações on-line feitas no sistema devem ter a 
resposta num tempo inferior a 15 segundos.
RNF2 – Disponibilidade do sistema
O sistema deve estar disponível ao usuário 24 horas/dia per-
mitindo paradas de até 5 minutos nos dias úteis e 1 hora em 
dias não úteis.
RNF3 – Autenticação dos usuários
Todos os usuários devem ser autenticados ao ingressar no 
sistema e suas senhas devem estar criptografadas.
Fonte: Elaborado pelo autor.
A prioridade de tratamento deve ser para os Requisitos Funcionais. Os Requi-
sitos não Funcionais podem ser tratados em um momento secundário do projeto.
1.2.3 Elicitação de Requisitos
Elicitação de Requisitos é a ação de aplicar as técnicas para o Levantamento dos 
Requisitos (VASQUEZ, 2016). Existe um longo caminho desde os primeiros contatos 
com o cliente a fim de conhecer suas necessidades até chegar a uma Lista de Re-
quisitos. Reuniões, análise de documentos e planilhas existentes, conhecimento de 
sistemas legados, dentre outras, são atividades que devem ser realizadas para se 
chegar ao objetivo.
É importante saber aplicar as técnicas corretas para que todos os detalhes e pe-
culiaridades do sistema fiquem esclarecidos e não ocorram entendimentos confli-
tantes ou insuficientes que acarretem um sistema que não coincide com os anseios 
do cliente.
A seguir veremos algumas técnicas e como aplicá-las para levantar os Requisitos.
1.2.3.1 Entrevistas e reuniões
Uma entrevista ou reunião, no âmbito do Levantamento de Requisitos, consiste 
no processo de ouvir e registrar as necessidades e os desejos dos clientes. O obje-
tivo é deixar o cliente descrever seu problema, apontar possíveis soluções e, princi-
palmente, demonstrar o funcionamento e as regras do seu negócio. O analista de 
requisitos busca respostas sobre os Requisitos, problemas e desafios da área de ne-
gócios, então é muito importante que o escopo da entrevista ou reunião fique res-
trito ao seu objetivo e que nenhum detalhe deixe de ser tratado (VASQUEZ, 2016).
Primeiramente uma entrevista ou reunião deve ser guiada por uma pauta de 
perguntas muito bem elaboradas pelo analista de requisitos. Novas questões po-
dem ser inseridas no decorrer do encontro dependendo do caminho que o assunto 
percorra e, também, para um maior detalhamento das questões levantadas.Para o bom andamento do encontro, algumas atitudes devem ser evitadas:
Introdução à análise de sistemas e Levantamento de Requisitos 21
11
Julgar/criticar as informações emitidas pelo outro
O cliente deve se sentir à vontade para passar as informações sem que seja julgado sobre a assertividade dos 
procedimentos que realiza. A informatização do processo por meio do sistema visa justamente à criação de um novo 
processo por meio do sistema que atenda perfeitamente à sua vontade.
22
Completar frases ou cortar a fala
É comum o analista de requisitos ter um entendimento prévio sobre o negócio do usuário e ter a ansiedade de colocar 
a sua opinião acerca dos procedimentos que estão sendo descritos pelo cliente. Essa discussão é benéfica, porém 
nunca se deve perder de vista que é o cliente quem tem a última palavra e que é a sua vontade que deve ser atendida. 
Então, o analista deve se conter e não interromper ou substituir as falas do cliente com a intenção de que a conversa vá 
em alguma direção de seu interesse.
33
Ser arrogante ou deixar a impressão de que sabe mais do que o outro
Na mesma linha do tópico anterior, o analista deve ter uma postura humilde perante o cliente. Jamais usar termos ou 
ter uma postura que denote superioridade ou que diminua a figura do cliente. O cliente deve se sentir à vontade para 
expressar suas opiniões e ter a ciência de que está no controle da situação.
55
Dar a solução antes de ouvir o problema
Oficialmente é o cliente quem detém o conhecimento do assunto que está sendo levantado. Então, a solução do 
problema deve vir dele. Mesmo que o analista conheça o problema e possíveis soluções, deve se comportar como um 
colaborador e deixar com que o cliente faça sua explanação completa antes de opinar sobre a solução.
66
Falta de cortesia, pontualidade e simpatia ou visual inapropriado
Na mesma linha do tópico anterior, o analista deve ter uma postura humilde perante o cliente. Jamais usar termos ou 
ter uma postura que denote superioridade ou que diminua a figura do cliente. O cliente deve se sentir à vontade para 
expressar suas opiniões e ter a ciência de que está no controle da situação.
77
Local, hora ou duração inadequada
O local do encontro deve ser preparado, organizado, tranquilo e sem interrupções. Deve-se definir um horário para iniciar 
(e esse horário deve ser seguido, salvo atraso do cliente) e, principalmente, a duração deve ser respeitada (salvo também 
se o cliente deseja que seja estendida).
44
Corrigir, seja informação técnica ou gramática
As correções devem ser feitas no sentido de enriquecer a fala do cliente, não constrangê-lo. Se o analista entender que 
alguma informação técnica está incorreta, deve se colocar na postura de que não compreendeu direito a informação 
e necessita de mais esclarecimentos. Deve deixar que o cliente chegue à conclusão de que a informação não está 
totalmente esclarecida ou correta. Ao final da fala, pode-se até resumir, em outras palavras, a informação recebida para 
validar o entendimento entre as partes. Já os erros gramaticais e de natureza semelhante devem ser relevados e não 
devem ser corrigidos abertamente, salvo se comprometer o entendimento da informação e, mesmo assim, seguindo a 
estratégia já descrita.
22 Análise de Sistemas
88 Vocabulário impróprio
O vocabulário deve ser formal e apropriado para o assunto, evitando piadas e linguagem vulgar.
99
Demonstrar despreparo sobre o assunto
O analista precisa se preparar para a entrevista, deve estudar o assunto, ter as perguntas organizadas e ter um 
mecanismo simples e ágil para registrar as respostas.
Uma entrevista ou reunião pode ter questões abertas e/ou fechadas, dependen-
do da necessidade de entendimento do assunto:
Nesse tipo de questão, é possível investigar 
os detalhes, as opiniões e as preferências 
do cliente. Numa resposta textual, a 
tendência é que o cliente consiga explicar 
melhor o assunto. 
Nesse tipo de questão, é possível investigar 
os detalhes, as opiniões e as preferências 
do cliente. Numa resposta textual, a 
tendência é que o cliente consiga explicar 
melhor o assunto. 
Essas questões têm a vantagem de deixar o 
cliente mais à vontade para discorrer sobre 
o assunto, permitem que o analista se 
adapte ou conheça o vocabulário do cliente 
e fornecem uma riqueza maior de detalhes.
Como desvantagens, podem permitir que 
o cliente explique detalhes desnecessários 
que não são do escopo do problema e 
fazer com que o foco seja desviado. Isso 
consumirá mais tempo e poderá dificultar a 
interpretação das respostas obtidas.
Questões abertas
Nesse tipo de questão, é possível investigar 
os detalhes, as opiniões e as preferências 
do cliente. Numa resposta textual, a 
tendência é que o cliente consiga explicar 
melhor o assunto. 
Essas questões têm um conjunto de 
respostas predefinidas. Ele serve para 
delimitar o assunto em questão e restringir 
aquilo que se tem interesse em descobrir. 
A criação dessas questões deve ser muito 
bem estudada e organizada. 
As vantagens dessas questões são que 
economizam tempo, pois requerem a 
escolha de uma opção delimitada por parte 
do cliente. Pode-se fazer uma interpretação 
mais simples das respostas e facilitam o 
controle do encontro por parte do analista.
Como desvantagens, as questões 
fechadas podem dar a sensação de 
restrição para o cliente e dar a conotação 
de que outras questões que ele acha 
importante não podem ser abordadas. 
Perde-se a riqueza de detalhes que muitas 
vezes são de grande importância.
Questões fechadas
Uma boa entrevista ou reunião deve então balancear questões abertas e fecha-
das, sempre com um estudo prévio de qual tipo será mais vantajoso e apropriado 
para cada tema que se deseja levantar.
As questões de uma entrevista ou reunião (abertas ou fechadas) podem ter as 
seguintes estruturas:
Nessa estrutura, inicia-se o encontro com questões fechadas e, dependendo das respostas, 
questões abertas podem ser inseridas para o detalhamento dessas respostas. É uma estrutura 
que permite o foco em subtópicos e facilita a organização do analista.
Pirâmide
Ao contrário da anterior, inicia-se o encontro com questões abertas, e as fechadas são 
inseridas para tentar organizar ou detalhar as respostas das questões abertas.
(Continua)
Funil
Introdução à análise de sistemas e Levantamento de Requisitos 23
É uma combinação das anteriores. Inicia-se com questões fechadas e, em seguida, são 
inseridas questões abertas, podendo-se voltar às fechadas. Essa estrutura é mais dinâmica, 
porém a tendência é que o encontro fique mais longo.
Diamante
Uma entrevista ou reunião deve ser muito bem preparada. Para isso, as seguin-
tes diretrizes devem ser seguidas:
 • Defina claramente o objetivo do encontro e de quais informações você precisa.
 • Identifique as pessoas adequadas que podem participar.
 • Descubra quem é o dono do processo.
 • Avalie conversar com pessoas em vários níveis organizacionais que serão afe-
tados pelo projeto.
 • Estude bem o assunto, analise a documentação, converse com pessoas que 
conhecem o assunto.
 • Familiarize-se com o vocabulário da área de negócio.
 • Comunique claramente os participantes para que eles também se prepara-
rem para o encontro.
 • Use a técnica conhecida como 5W+2H no preparo das questões:
 • What - o que será feito?
 • Why - por que será feito?
 • Where - onde será feito?
 • When - quando será feito?
 • Who - quem fará?
 • How - como será feito?
 • How much - quanto custará?
A técnica de Elicitação de Requisitos, conhecida como entrevista ou reunião, é 
uma das técnicas mais utilizadas na tarefa de Levantamento de Requisitos e am-
plamente difundida na área de desenvolvimento de software. A imensa maioria 
dos sistemas desenvolvidos têm no seu início de desenvolvimento um conjunto de 
entrevistas e reuniões.
1.2.3.2 Análise de documentos
É uma forma de elicitar Requisitos pelo estudo da documentação disponível so-
bre uma solução existente, com o objetivo de identificarinformações relevantes 
para o desenvolvimento de uma nova solução.
A análise de documentos é parte fundamental da Elicitação de Requisitos. Nem 
sempre as partes envolvidas estarão disponíveis ou cooperarão com o projeto, en-
tão o analista de requisitos deve focar a documentação sobre o negócio que está 
disponível na corporação.
Essa análise permite obter conteúdo sobre o contexto abordado ou aumentar o 
nível de domínio sobre o problema, além de possíveis soluções a serem adotadas. 
24 Análise de Sistemas
Sempre há algo documentado previamente que deverá ser analisado para depois 
partir para outras técnicas de elicitação.
Os documentos podem trazer informações sobre o domínio do problema, ne-
cessidades do negócio (oportunidades, problemas e objetivos), partes interessadas 
e impactadas.
São exemplos de documentos a serem analisados:
 • planos de negócio, marketing e contratos;
 • pedidos de proposta e fluxos de processos atuais;
 • modelos de dados lógicos e regras de negócio;
 • guias, websites e manuais;
 • relatórios, manuais, memorandos e documentação de software.
1.2.3.3 Conhecimento dos sistemas legados
Um sistema legado é aquele que o cliente já utiliza para resolver o problema 
relacionado ao assunto e que deseja substituir pelo novo sistema. É possível e 
aconselhável levantar as informações do negócio e, consequentemente, levantar e 
compreender os Requisitos conhecendo esse sistema já existente. Esse estudo tan-
to permite que se conheça o funcionamento do sistema como as regras do negócio, 
as dificuldades existentes (já que o cliente deseja que o sistema seja substituído) e 
as facilidades (que podem ser incorporadas no novo sistema).
É importante se envolver com a equipe de usuários do sistema legado, com a 
equipe de desenvolvimento que mantém o sistema funcionando e, se possível, 
ter acesso ao sistema no papel de usuário para testar todas as suas funcionalida-
des. Com isso, é possível ter uma boa noção daquilo que o sistema atende para 
propor uma abordagem mais moderna e funcional, cobrindo todas as necessida-
des do cliente com maior dinamismo e eficiência. Também é possível analisar os 
programas desse sistema e extrair dali as regras de negócio e o funcionamento 
do processo.
1.2.4 Especificação de Requisitos
Se a tarefa de Elicitação de Requisitos descobre as peças do quebra-cabeça, 
então a análise e Especificação de Requisitos procura montá-lo (VASQUEZ, 2016).
Durante a aplicação das técnicas para levantar quais são os Requisitos, na me-
dida do possível, o analista deve procurar escrever uma Lista de Requisitos. Esse é 
o objetivo final do trabalho de levantamento.
Porém, não é uma tarefa fácil. Normalmente o cliente tem sua forma própria de 
registrar as informações e processos e nem sempre de uma maneira estruturada. 
Para ilustrar, vejamos a situação colocada na Figura 9.
Introdução à análise de sistemas e Levantamento de Requisitos 25
Ve
ct
or
_V
isi
on
/S
hu
tte
rs
to
ck
O que o senhor espera 
desse sistema?
Eu tenho uma loja de peças. Gostaria que o meu PV 
fosse interligado com o meu estoque e eu pudesse 
a qualquer momento alterar valores dos FPs. Posso 
oferecer descontos a alguns tipos de clientes, mas 
preciso autorizar essa operação.
No fim do mês, quero um relatório dos produtos que 
mais venderam. Preciso também saber a estatística 
de vendas por forma de pagamento.
De tempos em tempos deve aparecer na tela do 
sistema uma promoção relâmpago que dê um brinde 
ao cliente.
Preciso que o sistema controle os pedidos também.
Figura 9
Diálogo entre usuário e analista
Fonte: Adaptado de Melo, 2011.
Podemos perceber nesse diálogo a dificuldade que existe em entender os ter-
mos usados pelo usuário, bem como a falta de informações em alguns pontos:
Quadro 3
Diálogo entre usuário e analista – dúvidas
O que é PV e FP?
Que tipos de clientes podem receber descontos?
Como seria feita a autorização de desconto e por quem?
Quais quantidades de produtos devem aparecer no relatório dos que mais venderam?
Quanto tempo significa “de tempos em tempos”?
Fonte: Adaptado de Melo, 2011.
O processo de Levantamento dos Requisitos envolve então muitas conversas, 
reuniões, entrevistas, estudo dos sistemas legados, entre outros, em um trabalho 
criterioso de Elicitação dos Requisitos, no qual o maior desafio é chegar a um con-
senso de entendimento daquilo que o usuário deseja e principalmente extrair as 
regras e o funcionamento do seu negócio.
Como exemplo, poderíamos ter o seguinte cenário na fase de Levantamento 
dos Requisitos, conforme mostra a Figura 10.
26 Análise de Sistemas
M
on
ke
y B
us
in
es
s 
Im
ag
es
/S
hu
tte
rs
to
ck
Fonte: Elaborada pelo autor.
Figura 10
Ilustração do processo de montagem da Lista de Requisitos
Blá blá blá bli bli bli piripipi piripipi poropopó poropopó bli bli bli blá 
blá blá poropopó John Snow piripipi piripipi Dynaris Targeryan blá blá 
blá Blá blá blá bli bli bli piripipi piripipi poropopó poropopó bli bli bli 
blá blá blá poropopó John Snow piripipi piripipi Dynaris Targeryan blá 
blá blá blá blá blá bli bli bli piripipi piripipi poropopó poropopó bli bli 
bli blá blá blá poropopó John Snow piripipi piripipi Dynaris Targeryan 
blá blá blá
Nessa figura, as pessoas sentadas em uma mesa conversando simbolizam uma 
reunião na qual o problema está sendo discutido e o cliente está repassando suas 
necessidades. A tabela em forma de planilha simboliza os sistemas legados que já 
existem e que devem ser substituídos. Após o trabalho de elicitação, o objetivo final 
é chegar a uma Lista de Requisitos.
Os Requisitos devem ser especificados segundo algumas regras, com o objetivo 
de colocá-los em uma estrutura que facilite sua modelagem e implementação nas 
fases seguintes do processo de desenvolvimento. As seguintes regras são sugeri-
das (VASQUEZ, 2016):
 • Expressar um e somente um Requisito por vez.
 • Evitar cláusulas condicionais complexas.
 • Usar uma terminologia clara e consistente.
 • Expressar Requisitos em uma sentença com verbo e em voz ativa.
 • Indicar claramente o que ou quem é responsável pela ação realizada pelo 
Requisito.
O exemplo a seguir, extraído de Vasquez (2016), mostra a forma errônea de 
se escrever um Requisito. A referida escrita expressa vários Requisitos em um só 
e inclui cláusulas condicionais, além de não incluir o verbo que caracteriza a ação 
principal realizada.
Quadro 4
Exemplo de Lista de Requisitos – forma equivocada de escrita
Requisito Descrição
R1 – 
Controle de portaria
Para realizar o controle de entrada e saída da portaria, deve ser realizado o 
cadastro do visitante com os seguintes atributos: nome, RG e foto. Caso a visita 
tenha sido liberada pelo condomínio, então podem ser registradas a data e a 
hora em que o visitante acessou a portaria. Ao sair do condomínio, devem ser 
registradas a data e a hora em que o visitante saiu, mas isso só deve ser permi-
tido para visitante com registro de entrada e sem registro de saída.
Fonte: Adaptado de Vasquez, 2016.
Introdução à análise de sistemas e Levantamento de Requisitos 27
Os mesmos Requisitos deveriam ser reestruturados conforme mostra o quadro 
a seguir.
Quadro 5
Exemplo de Lista de Requisitos – forma correta de escrita
Requisito Descrição
R1 – Manter cadastro do visitante
O porteiro realiza o cadastro do visitante com os seguintes 
atributos: nome, RG e foto.
R2 – Liberar acesso ao visitante
O porteiro cadastra a liberação do acesso selecionando um 
visitante já cadastrado e indica a data e hora de início da visita.
R3 – Registrar saída do visitante O porteiro registra a data e hora do fim da visita.
Fonte: Adaptado de Vasquez, 2016.
Por exemplo, considere o seguinte estudo de caso com as especificações de um 
determinado problema e, em seguida, qual seria a lista de todos os Requisitos que 
o sistema deve atender.
Suponha uma Escola de Natação que deseja informatizar o processo de controle dos alunos e 
suas aulas. A escola oferece aulas de natação e hidroginásticaem diversas turmas com dias e 
horários definidos. Os professores podem atuar em várias turmas e nas duas modalidades. O 
aluno, ao se matricular, deve poder escolher uma modalidade e qual turma deseja. No decorrer 
das aulas, os professores devem registrar a presença dos alunos.
É normal que o próprio cliente já faça suas solicitações na forma de Requisitos. É comum ouvir 
solicitações do tipo:
• Desejo ter um cadastro de todos os meus alunos.
• Preciso de um relatório com todas as mensalidades pagas no mês.
• Tenho de ter uma tela (palavras do cliente) para fazer a matrícula dos alunos.
• Quero que os professores controlem a frequência dos alunos nas aulas.
Para esse problema, teríamos os seguintes Requisitos:
Quadro 6
Lista de Requisitos da Escola de Natação
Requisito Descrição
R1 - Manter cadastro dos alunos
Permitir o cadastro completo dos alunos (pes-
quisar, incluir, alterar, excluir e consultar).
R2 - Manter cadastro dos professores
Permitir o cadastro completo dos professores 
(pesquisar, incluir, alterar, excluir e consultar).
R3 - Manter cadastro das turmas
Permitir o cadastro completo das turmas, sua 
modalidade (natação ou hidroginástica), seus 
dias/horários e qual professor responsável.
R4 – Matricular alunos Matricular os alunos nas turmas.
R5 - Registrar frequência
Registrar frequência no diário de classes de 
cada aula.
Fonte: Elaborado pelo autor.
Estudo de caso
Para cada Requisito, devemos entender quais são as regras de negócio que cada 
um deve seguir. Por exemplo, no R4 – Matricular alunos, pode ser que o dono da es-
cola coloque algumas restrições do tipo: “pessoas com mais de 80 anos só podem se 
matricular na modalidade hidroginástica”. Esse é um exemplo de regra de negócio.
As regras de negócio impõem restrições de negócio ao Requisito, impedindo 
que informações inconsistentes sejam registradas no sistema do ponto de vista do 
negócio. Alguns aspectos sobre as regras de negócio são:
28 Análise de Sistemas
As regras que dizem respeito aos Requisitos funcionais são leis que regem o ne-
gócio e são definidas pelo especialista do assunto.
Mostram como os Requisitos devem ser feitos.
Descrevem de modo complementar o funcionamento do Requisito.
Descrevem políticas corporativas, legislação pertinente, regulamenta-
ções governamentais, padrões de mercado. 
Não são ligadas à solução (de software), mas ao domínio do problema.
Existem independentemente do software e de o processo estar automatizado 
ou não. 
Não devem ser confundidas com Requisitos não Funcionais.
Alguns exemplos de regras de negócio são:
 • Somente alunos com mais de 75% de frequência podem ser aprovados na 
disciplina.
 • Somente clientes com mais de 18 anos podem abrir conta corrente.
 • Compras acima de R$ 500,00 podem ser parceladas.
 • Crianças de até 23 meses transportadas no colo do responsável não pagam 
passagem.
O Quadro 7 mostra algumas estruturas de regras de negócio com exemplos.
Quadro 7
Estruturas de regras de negócio
Tipo de estrutura Estrutura Exemplo
Regra para obrigar
“(Sujeito da frase) 
deve...”
Um pedido de empréstimo acima de R$ 1.000,00 
deve ter dois avalistas.
Regra para restringir
“(Sujeito da frase) pode 
... somente se...”
Um saque pode ser feito somente se a conta es-
tiver ativa e o saldo for suficiente.
Regra para proibir
“(Sujeito da frase) não 
pode...”
Um cliente não pode fazer um empréstimo se ti-
ver restritivos.
Fonte: Elaborado pelo autor.
Finalmente, o resultado final da fase de Levantamento de Requisitos deve ser 
uma Lista de Requisitos no formato do Quadro 8.
Introdução à análise de sistemas e Levantamento de Requisitos 29
Quadro 8
Lista de Requisitos da Escola de Natação completa
Requisito Descrição Regras de negócio
R1 - Manter cadastro dos 
alunos
Permitir o cadastro completo dos alu-
nos.
Permitir pesquisar, incluir, alterar e consultar.
Não permitir a exclusão de um aluno, somente 
marcar como inativo.
R2 - Manter cadastro dos 
professores
Permitir o cadastro completo dos pro-
fessores.
Permitir pesquisar, incluir, alterar, excluir e 
consultar.
R3 - Manter cadastro das 
turmas
Permitir o cadastro completo das 
turmas, sua modalidade (natação ou 
hidroginástica), seus dias/horários e 
qual professor responsável.
Não permitir o cadastro de duas turmas da mes-
ma modalidade no mesmo horário.
R4 – Matricular alunos Matricular os alunos nas turmas.
Pessoas com mais de 80 anos só podem se ma-
tricular na modalidade hidroginástica.
R5 - Registrar frequência
Registrar frequência no diário de clas-
ses de cada aula.
Fonte: Elaborado pelo autor.
No ciclo de desenvolvimento do sistema, essa atividade corresponde à fase de 
Iniciação. A próxima fase, de Elaboração, consiste em informar como o sistema será 
modelado e como a solução será proposta e organizada. Os artefatos que serão 
construídos terão como base essa Lista de Requisitos.
1.3 Análise Orientada a Objetos (UML)
Vídeo No ciclo de desenvolvimento, a fase de Elaboração é a responsá-
vel pelo projeto de solução do sistema. Nela são produzidos artefatos 
(documentos e diagramas) que irão balizar a construção do software.
É nessa fase que são aplicadas as técnicas de análise vistas ante-
riormente. Inicialmente figurava a Análise Estruturada, em seguida a 
Análise Estruturada Moderna (ou Análise Essencial) e, atualmente, o 
padrão de mercado é a Análise Orientada a Objetos (UML).
1.3.1 Conceitos
O termo Unified Modeling Language ou linguagem de modelagem 
unificada (UML) surgiu da necessidade de se padronizar a linguagem 
de modelagem da Análise Orientada a Objetos e possibilitou a uni-
ficação da escrita dos diversos diagramas previstos na técnica. Com 
o tempo, esse termo passou a ser quase um sinônimo da Análise 
Orientada a Objetos (BOOCH; RUMBAUGH; JACOBSON, 2012).
A versão inicial da UML foi apresentada em 1996 por Grady Booch, 
James Rumbaugh e Ivar Jacobson como consequência da junção das 
melhores características de cada um dos métodos de representação 
do processo de software que cada um desses autores desenvolveu.
A UML tornou-se então a linguagem padrão de modelagem adota-
da pelas empresas de desenvolvimento de software (GUEDES, 2018).
30 Análise de Sistemas
O conceito básico nessa teoria é o de Objeto, no qual os componentes de software 
foram considerados como objetos (do mundo real) com suas características e funções.
Um dos grandes problemas das teorias anteriores era a grande interferência 
que um determinado componente (programa ou dado) poderia ter sobre outro, 
ou seja, não havia nenhuma restrição que um determinado programa manipulas-
se dados ou interagisse com programas que não estavam relacionados com sua 
função, que não eram de sua responsabilidade. Com isso, era comum ocorrerem 
muitos erros de programadores que, de maneira inadvertida, alteravam funções 
ou dados, os quais acabavam impactando erros em partes do sistema que diziam 
respeito a outro assunto.
Um Objeto tem encapsulado seus dados e operações responsáveis por mani-
pular esses dados. Uma operação de um determinado Objeto não tem autorização 
(ou acesso) para manipular dados de outro Objeto se não pela solicitação ao Objeto 
responsável por esse dado. Com isso, os acessos não autorizados ficavam inviabili-
zados e, em tese, cada Objeto cuidava somente de suas funções.
Podemos exemplificar esse mecanismo de encapsulamento de um Objeto na 
Figura 11.
Figura 11
Encapsulamento de um Objeto
Fonte: Elaborada pelo autor.
incluir
nome
CPF
Cliente
vender
alterarDados
pedido 
data
Venda
Nesse exemplo, digamos que é necessária uma alteração no atributo data que 
se encontra no objeto venda. A única operação que tem autorização (e conhece as 
regras de negócio para esse procedimento) é a operação alterarDados desse Objeto. 
Seria impossível a operação incluir do Objeto cliente fazer uma alteração nesse atri-
buto data. Caso o Objeto cliente realmente necessite dessa alteração, a única forma 
possível seria fazer uma solicitação à operação alterarDados do Objetovenda.
Com esse mecanismo, evita-se o acesso descontrolado aos dados do sistema, 
impõe-se um conjunto de regras que somente os responsáveis pelos dados conhe-
cem e aplicam. Assim, o sistema tem maior integridade dos seus dados.
1.3.2 Artefatos da UML
Para a modelagem do sistema e representação da solução informatizada, a UML 
dispõe de diversos diagramas. Dentre os principais, pode-se citar os apresentados 
na sequência.
1.3.2.1 Digrama de caso de uso
Apresenta graficamente todos os Requisitos do sistema, bem como a interação 
com as entidades externas. A Figura 12 apresenta um exemplo desse diagrama.
Na tese de doutorado do autor 
deste livro, foi desenvolvido um 
software totalmente orientado a 
Objetos, o JCarbon, cujo objetivo 
é estimar o carbono em florestas 
usando técnicas de inteligência 
artificial. O software pode ser 
acessado em: www.jcarbon.ufpr.
br. Acesso em: 17 mar. 2021.
Curiosidade
Introdução à análise de sistemas e Levantamento de Requisitos 31
Figura 12
Exemplo de Diagrama de Caso de Uso de uma Escola de Natação
Fonte: Elaborada pelo autor.
Manter 
modalidade
Pesquisar 
modalidade
Pesquisar 
turma
Registrar 
presença do 
aluno
Pesquisar 
professor
Manter 
turma
Manter aluno
Pesquisar 
aluno
>
>
>
>
>
>
Ator atendente
Ator professor
>
Manter 
professor
Matricular 
aluno
1.3.2.2 Diagrama de Classes
É utilizado para modelar as classes de objetos, seus atributos, suas operações e 
relacionamento com outras classes. Ele fornece uma visão estrutural do sistema. A 
Figura 13 mostra um exemplo desse diagrama.
- cpf : int
- nome : String
Pessoa


Aluno
Matricula Turma
Diario
- dataAdmissao : Date 
Professor
- descricao : int
- data : Date - descricao : String
- data : int
Modalidade
Figura 13
 Exemplo de Diagrama de Classes de uma Escola de Natação 
Fonte: Elaborada pelo autor.
* *
*
*
32 Análise de Sistemas
1.3.2.3 Diagrama de Sequência
Determina a sequência de mensagens que devem ser trocadas entre os objetos 
do sistema para que um caso de uso realize completamente sua função. A Figura 
14 mostra um exemplo desse diagrama.
 
Figura 14
Exemplo de Diagrama de Sequência do Caso de Uso de realizar matrícula de uma Escola de Natação
: Matricula: Aluno: Turma: ModalidadeTela
sd DS – Realizar Matrícula – Resolvido
: Ator Atendente 
1 : Entrada ()
1.1 : buscar ()
1.1.1 : buscar ()
2.1 : buscar ()
3.1 : buscar ()
4.1 : salvar ()
2 : CPF ()
3 : Modalidade ()
4 : Efetivar ()
Fonte: Elaborada pelo autor.
1.3.2.4 Diagrama de Atividades
Permite demonstrar os fluxos de um processo. Pode ser usado para mostrar 
vários tipos de processos: um simples algoritmo, um caso de uso, um conjunto de 
casos de uso ou para mapeamento de processos. A Figura 15 mostra um exemplo 
desse diagrama.
Introdução à análise de sistemas e Levantamento de Requisitos 33
Figura 15
Exemplo de Diagrama de Atividades da solicitação de um extrato bancário
Fonte: Elaborada pelo autor.
Solicitar 
conta
Verificar 
conta
Apresentar extrato
Solicitar 
período
Validar 
período
Apresentar 
mensagem 
Senha inválida
Apresentar 
mensagem 
Período inválido
Solicitar 
senha
>
> >
>
1.3.2.5 Diagrama de Transição de Estado
Permite demonstrar a mudança dos possíveis estados de um Objeto e as condi-
ções para que isso ocorra. A Figura 16 mostra um exemplo desse diagrama.
Figura 16
Exemplo de Diagrama de Transição de Estados da situação de uma bagagem em um aeroporto
Fonte: Elaborada pelo autor.
Despachando Checando
Enviando para PF
Aguardando embarque
Transportando ao avião
Embarcando
Voando
DesembarcandoTransportando do aviãoEntrando na esteira
Transportando para 
Reclamações
Retirando
Aguardando retirada
Irregular
Passageiro não retirouPassageiro 
retirou
34 Análise de Sistemas
1.3.2.6 Diagrama de Pacotes
Permite a visualização dos pacotes de classes ou funções. A Figura 17 mostra 
um exemplo desse Diagrama com Pacotes de classes, e a Figura 18 mostra pacotes 
de funções.
Figura 17
Exemplo de Diagrama de Pacotes com Classes
Prova
Recurso
Prova Discursiva Prova Objetiva
Avaliação
Vagas
Cargo
Localidade
Fonte: Elaborada pelo autor.
Figura 18
Exemplo de Diagrama de Pacotes de Funções
Fonte: Elaborada pelo autor.
view controller
daomodel
A UML possui outros diagramas suplementares que não serão vistos aqui.
1.4 Métodos Ágeis aplicados ao 
desenvolvimento de sistemasVídeo
Os métodos de desenvolvimento ágil de software surgiram no início de 2000. 
Seu foco central era que os processos de produção de software deveriam se con-
centrar em indivíduos e interações sobre os processos e, principalmente, no produ-
to final, ou seja, no software funcionando (COHN, 2011).
O vídeo Google Systems 
Design Interview With An 
Ex-Googler (Entrevista de 
design de sistemas do 
Google com um ex-goo-
gler), publicado pelo 
canal Clément Mihailescu, 
mostra uma entrevista de 
um ex-analista da Google e 
explica, em termos gerais, 
como é o processo de 
desenvolvimento das fun-
cionalidades das aplicações 
Google usando Análise 
Orientada a Objetos.
Disponível em: https://www.youtube.
com/watch?v=q0KGYwNbf-0. Acesso 
em: 17 mar. 2021.
Vídeo
Introdução à análise de sistemas e Levantamento de Requisitos 35
1.4.1 Motivações para a criação dos Métodos Ágeis
A indústria de produção de software tornou-se extremamente burocrática e um 
grande esforço era dedicado à produção de documentos, diagramas e artefatos de 
modelagem que, em tese, deveriam ser úteis para melhorar a qualidade do produ-
to final.
Porém, nem sempre isso ocorria. O processo era engessado em normas e pa-
drões e as equipes eram obrigadas a segui-los. O resultado, quase sempre, era o 
atraso na entrega do sistema, um alto custo e a equipe insatisfeita com a metodo-
logia de trabalho.
Segundo Prikladnicki, Willi e Milani (2014, p. XIV), “a única constante no desen-
volvimento de software é a mudança, portanto criar mecanismos para adaptar-se a 
ela é mais eficaz do que tentar combatê-la”.
O mercado não aceitava mais o desperdício de tempo e dinheiro para produ-
zir artefatos que não tinham nenhuma utilidade. Como exemplo, imagine dezenas 
de documentos e diagramas escritos e desenhados com a proposta de solução 
e arquitetura do sistema, mas que, no momento de se fazer a programação dos 
componentes de software, nenhum era visto, nada do que foi escrito servia de base 
para a construção do software e todo o esforço gasto na sua produção era inútil.
No mínimo, esse modelo era muito custoso, pois horas tinham sido gastas na 
escrita de documentos que não seriam mais usados. Era como se o mais impor-
tante do processo fosse a produção de documentos, e não a produção efetiva do 
sistema (VALENTE, 2020).
Os Métodos Ágeis surgiram então com o objetivo de adotar práticas eficientes 
em todo o processo de desenvolvimento. Nesses métodos, só se produz aquilo que 
é útil e ajuda no desenvolvimento, os artefatos são construídos na medida exata da 
necessidade, sem perda de tempo e sem uso indevido de recursos.
Considerando que a prioridade é o cliente, os Métodos Ágeis surgiram também 
com o objetivo de enxugar o processo de desenvolvimento e dar mais agilidade às 
etapas, a fim de atender aos Requisitos.
Segundo Cohn (2011), os Métodos Ágeis se justificam por algumas razões:
 • maior produtividade e menores custos;
 • maior engajamento e satisfação no trabalho por parte da equipe de 
desenvolvimento;
 • atendimento rápido às demandas do mercado;
 • maior qualidade;
 • e, principalmente, maior satisfação do cliente.
1.4.2 Princípios e valores do Manifesto Ágil
Os Métodos Ágeis surgiram então como uma filosofia de trabalho, uma forma 
de se estruturar equipes, uma nova maneira de se realizar as atividades. Essa filo-
sofia foi materializada no que foi chamado de Manifesto Ágil (BECK et al., 2001), um 
Lean Inception – Como 
alinhar pessoase construir 
o produto certo (que 
em tradução livre seria 
pensamento enxuto) traz 
excelentes reflexões sobre 
o uso de Métodos Ágeis 
no desenvolvimento de 
software com uma lingua-
gem simples e divertida.
CAROLI, P. São Paulo: Caroli, 2018.
Livro
36 Análise de Sistemas
documento que serviu de base para as organizações implantarem essa filosofia nas 
suas equipes de trabalho. Os quatro valores do Manifesto Ágil, assim como apare-
cem em Beck et al. (2001), são:
11
33
22
44
Indivíduos e interações mais 
importantes que processos e 
ferramentas.
Colaboração com o cliente mais 
que negociação de contrato.
Software funcionando mais que 
documentação abrangente.
Responder a mudanças mais que 
seguir um plano.
A seguir são apresentados os 12 princípios do Manifesto (BECK et al., 2001):
1. A maior prioridade é satisfazer o cliente por meio da entrega contínua e 
adiantada de software com valor agregado.
2. Mudanças nos Requisitos são bem-vindas, mesmo tardiamente no 
desenvolvimento. Processos ágeis tiram vantagem das mudanças visando à 
vantagem competitiva para o cliente.
3. Software deve ser entregue funcionando frequentemente, de poucas 
semanas a poucos meses, com preferência com menor escala de tempo.
4. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em 
conjunto durante todo o projeto.
5. Projetos devem ser construídos em torno de indivíduos motivados. Eles 
devem ter o ambiente e o suporte necessário e receber confiança para 
fazerem o trabalho.
6. O método mais eficiente e eficaz de transmitir informações para e entre uma 
equipe de desenvolvimento é a conversa face a face.
7. Software funcionando é a medida primária de progresso.
8. Os processos ágeis promovem desenvolvimento sustentável. Os 
patrocinadores, desenvolvedores e usuários devem ser capazes de manter 
um ritmo constante indefinidamente.
9. Contínua atenção à excelência técnica e bom design aumentam a agilidade.
10. Simplicidade: a arte de maximizar a quantidade de trabalho não realizado é 
essencial.
11. As melhores arquiteturas, Requisitos e designs emergem de equipes 
auto-organizáveis.
12. Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e, 
então, refina e ajusta seu comportamento.
Os valores e princípios desse Manifesto se aplicam a todas as etapas do desen-
volvimento de um software, desde a fase de Iniciação e Elaboração até as fases de 
construção e transição. Então, temos a tarefa de utilizar e construir os artefatos 
dessas fases seguindo esses princípios. Como o nome já diz, os Métodos Ágeis têm 
seu foco na agilidade de realizar as tarefas e isso significa que devemos otimizar 
Introdução à análise de sistemas e Levantamento de Requisitos 37
as atividades e construir os artefatos que necessariamente serão úteis, no nível de 
detalhamento que ajude os desenvolvedores nas fases seguintes.
Desse modo, a construção dos diagramas previstos na UML será ensinada mi-
nuciosamente, mas o detalhamento e a profundidade de sua utilização na prática 
devem ser avaliados. Não devemos esquecer que esses diagramas servirão de base 
aos programadores para a construção do software e alguns fatores devem ser leva-
dos em conta nessa avaliação:
A atribuição de tarefas para a equipe de programação deve levar em conta sua experiência. 
Se o conhecimento na tecnologia e no negócio do sistema é baixo, deve-se detalhar melhor os 
artefatos da UML. Caso contrário, pode-se pular algumas etapas, suprimir alguns artefatos ou 
escrevê-los de modo mais geral e sem muitos detalhes.
Experiência da equipe
Muitas vezes existe uma escassez de recursos, poucos profissionais à disposição e não existe 
a possibilidade de se realizar completamente as etapas. Nesse caso, a única alternativa é 
suprimir etapas.
Recursos
Muitas vezes a entrega tem data definida. Como o foco nos Métodos Ágeis é a entrega de 
um produto final, por vezes pode não existir tempo hábil para se realizar as tarefas de modo 
completo. Por conta disso, e com a ciência de toda a equipe e do cliente, pode-se suprimir 
etapas e diminuir o detalhamento.
Prazo
Todos esses aspectos devem ser medidos e avaliados no desenvolvimento 
e seguindo os princípios de agilidade e aplicação correta das técnicas. O “soft-
ware funcionando”, um dos principais valores do Manifesto, será entregue ao 
final do processo.
1.4.3 Introdução ao Scrum
Os Métodos Ágeis, personificados no Manifesto Ágil, trouxeram para a área de 
desenvolvimento de software uma nova filosofia de trabalho, uma nova aborda-
gem de como encarar os projetos, as equipes e, principalmente, o cliente. Porém, 
os profissionais em um determinado momento se perguntaram: e daí? O que eu 
faço agora? Gostei, mas como trabalho com isso? Concordo com todos os valores e 
princípios, mas na prática como aplico tudo isso?
Foi necessário então criar uma metodologia capaz de dotar as equipes com fer-
ramentas que transformassem uma filosofia de trabalho em algo palpável, que pu-
desse ser aplicado na prática e os resultados esperados fossem atingidos.
Nesse sentido, o Scrum é uma ferramenta (comumente chamada de framework) 
usada para implementar o desenvolvimento ágil (COHN, 2011). O conceito básico 
do Scrum é a Sprint (nome dado para os ciclos do projeto). Para entendermos esse 
conceito, temos de conhecer os termos incremental e iterativo.
Nas páginas 5 a 15 do livro 
Métodos ágeis para desen-
volvimento de software, você 
encontra, de maneira deta-
lhada, comentada e muito 
bem fundamentada, todos 
os valores e princípios do 
Manifesto Ágil, bem como 
quem são seus autores.
PRIKLADNICKI, R.; WILLI, R.; MILANI, F. 
Porto Alegre: Bookman, 2014.
Livro
38 Análise de Sistemas
O desenvolvimento de um software de maneira incremental envolve a constru-
ção “pedaço por pedaço”: primeiro uma parte é desenvolvida, depois a próxima 
parte e assim por diante. Por exemplo, um site de vendas de produtos incremental 
pode envolver primeiro o desenvolvimento do cadastro dos produtos, em seguida 
o cadastro dos clientes e, finalmente, a funcionalidade de venda dos produtos.
Por outro lado, o desenvolvimento iterativo aceita a possibilidade de retrabalho, 
de construir novamente aquilo que já foi feito, porém com um incremento de qua-
lidade nessa nova construção. Voltando ao exemplo do site de vendas de produtos, 
podemos primeiro desenvolver uma versão preliminar do site inteiro, com poucos 
detalhes, com as telas com pouca qualidade, com alguns recursos não informa-
tizados. O site é lançado para uso e recebe feedbacks do cliente e usuários; em 
seguida, passa-se para uma segunda versão, aprimorando a primeira e corrigindo 
as falhas.
Uma Sprint do Scrum, então, combina as melhores características das duas 
abordagens, incremental e iterativa. Com isso, o cliente recebe entregas rápidas do 
produto e vai contribuindo para a sua melhoria.
Os benefícios de se trabalhar com Sprints são:
 • O software funcionando encoraja o feedback do cliente.
 • O software funcionando ajuda a equipe a avaliar seu progresso.
 • O software funcionando permite que o produto seja entregue antes do 
desejado.
É consenso na área de desenvolvimento de software que uma Sprint não deve 
demorar mais do que duas semanas (apesar de se admitir Sprints de até 30 dias). 
Esse tempo é suficiente para se planejar um incremento no software e garantir que 
o cliente receba “novidades” em um curto espaço de tempo.
A Figura 19 ilustra a aplicação das Sprints no processo de entregas. O ciclo de 
14 dias representa uma Sprint, e o ciclo de 24 horas representa a avaliação diária 
do andamento da Sprint por parte da equipe de desenvolvimento.
Figura 19
Ciclo de entregas das Sprints
Fonte: Adaptada de De Paula, 2016.
SprintsRequisitos
14 dias
24 h
Incremento no 
software
Além do conceito de Sprint, o Scrum define algumas práticas para serem segui-
das (COHN, 2011; SUTHERLAND, 2019):
 • Reuniões diárias, rápidas e objetivas de apenas 15 minutos com a equipe de 
desenvolvimento.
 • Mostrar o

Mais conteúdos dessa disciplina