Buscar

11_analise_de_sistemas_

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Análise de Sistemas
Análise de Sistemas
1ª edição
2019
Autoria
Parecerista Validador
Bruno Rafael de Oliveira Rodrigues
Sandra Gavioli Puga / Ricardo Soares
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte
desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos
direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
4
Sumário
Sumário
Unidade 1
1. Modelagem Conceitual de Sistemas ........................7
Unidade 2
2. Apresentação da UML e Visão de Sistema .............21
Unidade 3
3. Modelagem Estrutural ............................................36
Unidade 4
4. Modelagem Dinâmica ..............................................50
5
Palavras do professor
Nesta disciplina, você será apresentado aos conceitos, técnicas e padrões 
utilizados para modelar sistemas de informação de forma clara e eficiente. 
A proposta principal deste estudo é contextualizar o tema de maneira que 
você tenha condições de compreender as técnicas de análise de sistemas 
e projetar modelos de software que são importantes para todo profissional 
da área de desenvolvimento de sistemas.
Aqui serão abordados temas sobre as funções do analista de sistemas, 
a importância da modelagem, as características da análise orientada a 
objeto e o padrão da Linguagem de Modelagem Unificada (UML). Além 
disso, você, também estudará como realizar o levantamento de requisitos, 
conhecer o documento de visão e ferramentas para se desenvolver 
diagramas e modelos de sistemas de software. 
Por meio de exemplos, estudos de casos são, então, apresentados a 
cenários, nos quais é possível aplicar as técnicas estudadas. Dessa maneira, 
além do conteúdo teórico, é possível absorver a prática proposta.
Ao final desta disciplina, você será capaz de realizar a atividades de análise 
de sistemas, aplicando os padrões de análise e modelagem com uma 
visão ampla e crítica.
Bons estudos!
6
Objetivos da disciplina
• Compreender os princípios da análise de sistemas.
• Aplicar as técnicas de levantamento e análise de requisitos.
• Empregar os conceitos da análise orientada a objetos.
• Criar modelos de sistemas de software usando a linguagem UML.
7
 1Unidade 11. Modelagem Conceitual de 
Sistemas
Para iniciar seus estudos
Nesta unidade, serão apresentados os principais conceitos da disciplina de 
Análise de Sistemas, conhecendo seus objetivos e desafios. Na construção 
de um sistema, a fase de análise é extremamente importante. Nela, são 
definidos quais os elementos do sistema que transformarão problemas 
do mundo real em soluções tecnológicas. Para isso, é necessário 
compreender bem as necessidades que o cliente expõe e, por meio de 
padrões, desenvolver modelos que atendam a essas necessidades. Então, 
vamos conhecer melhor esse trabalho?
Objetivos de Aprendizagem
• Compreender a finalidade e a importância da fase de análise de 
sistemas e do processo de desenvolvimento de sistemas.
• Conhecer os principais problemas de comunicação enfrentados 
no desenvolvimento de projetos.
• Identificar as diferenças, vantagens e desvantagens entre as 
técnicas de desenvolvimento: estruturado e orientada a objetos.
• Assimilar os conceitos relacionados à orientação a objetos.
• Entender a importância de utilizar um padrão de modelagem.
8
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Introdução 
Atualmente, a demanda por sistemas de software está cada vez maior. A necessidade das empresas em informatizar 
e se atualizarem, devido às mudanças das tecnologias e das tendências mercado, fazem com que essa demanda 
aumente cada vez mais. Assim, construir sistemas de qualidade que supram a necessidade do mercado é um grande 
desafio. Para isso, o analista de sistemas deve conhecer e aplicar as técnicas de análise e modelagem de sistema.
Nesta unidade, são abordados os conceitos sobre modelagem conceitual de sistemas sendo apresentadas suas 
principais características. Por que esses conceitos são úteis? O desenvolvimento de um software é algo complexo 
que depende de vários fatores e colaboradores para ser realizado. Um fator muito relevante é a análise de sistemas 
que, entre suas funções, temos a elaboração de modelos com base nos requisitos “levantados” com o cliente. 
Assim, o analista de sistemas precisa possuir boa comunicação e bons conhecimentos técnicos. 
Além disso, é importante entender como funciona o processo de desenvolvimento de software e os conceitos 
básicos sobre análise de sistemas e orientação a objetos. Em geral, os processos de desenvolvimento são úteis 
para situar o analista em suas funções e o apoiar durante todas as etapas. Os conceitos sobre orientação a 
objetos devem ser bem compreendidos e aplicados na fase de análise. Uma vez que, a orientação a objetos é um 
paradigma bastante difundido e utilizado na modelagem de sistemas, ele se torna essencial para todo o trabalho. 
O levantamento de requisitos e a modelagem de sistemas sãos as principais atividades de um analista de sistemas. 
É de suma importância entender como elaborar requisitos e modelos. Dessa maneira, ao final desta unidade, 
você será capaz de aplicar esses conceitos e compreender o valor inestimável da modelagem de sistemas.
1.1 Entendendo o processo de desenvolvimento de software
O processo de software define as atividades que devem ser realizadas em cada etapa do desenvolvimento. 
As atividades vistas como fundamentais no processo de software são (SOMMERVILLE, 2011):
• Especificação: é o documento que define as funcionalidades e restrições do software.
• Projeto e implementação: é a fase onde são modelados e codificados os artefatos do software.
• Validação de software: é a fase que garante a qualidade do software que valida que ele está de acordo 
com a especificação.
• Evolução: na evolução, são adicionadas ao software já existente novas funcionalidades.
Existem vários modelos de processos de software que podem ser aplicados no desenvolvimento. Contudo, em 
todos os processos são aplicadas as atividades de arcabouço, que são atividades genéricas dos processos. Essas 
atividades podem ser classificadas como:
• Comunicação: é a atividade na qual são levantados os requisitos junto ao cliente.
• Planejamento: são elaborados o cronograma, as análises de riscos e os recursos necessários.
• Modelagem: traduz a especificação em formatos simbólicos, tanto em nível de requisito quanto em nível 
de projeto.
• Construção: são gerados os códigos e testes do software.
• Implantação: é quando se coloca o produto em produção, ou seja, é nesta atividade que o cliente recebe 
o software.
9
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Os modelos de processo de software não necessariamente são realizados de forma totalmente sequencial. 
Isso pode variar de acordo com a estratégia adotada para o projeto ou conforme as diretrizes da empresa 
desenvolvedora.
No processo de desenvolvimento de um software, são envolvidas diversas pessoas, no qual exige-se compromisso 
e comunicação durante todas as fases do projeto. Os participantes dos projetos são classificados em três 
categorias: cliente, usuário e desenvolvedor (PFLEEGER, 2004), que são definidas como:
• Cliente: é quem paga para que seja construído o sistema.
• Usuário: é quem usa o sistema, não necessariamente é o cliente.
• Desenvolvedor: é o responsável por desenvolver e manter o sistema.
Em cada categoria, os membros possuem responsabilidades que são vitais para o projeto. Diante desse cenário, 
o papel do analista de sistemas é essencial para a criação e manutenção de um software. 
Para melhorcompreensão das atividades de análise de sistemas, é importante conhecer o funcionamento dos 
processos de software e suas atividades.
No processo de desenvolvimento de sistemas, devem ser definidas as atividades e os responsáveis por executar 
cada uma dessas atividades, bem como quando essas atividades serão executadas. Em cada momento do 
processo de desenvolvimento são gerados artefatos, como documentação, diagramas e códigos, por exemplo. 
Porém, como esses artefatos devem ser usados em cada etapa do processo de desenvolvimento? Na prática, 
antes, cada empresa utilizava processos rígidos ou simplesmente não tinham processo bem definidos.
Pensando em resolver problemas de padrões de processo, foi gerado o Processo Unificado (PU) do inglês 
Unified Process (UP), o qual é chamado de framework, isto é, ele dispõe de processos e métodos para alcançar um 
objetivo que visa aumentar a qualidade do desenvolvimento de software. Tem como característica ser interativo e 
incremental. Assim, cada fase possui novas características e interações. O PU é centrado na arquitetura. Assim, é 
definida a estrutura do sistema em sua fase de concepção. Isso significa que, antes mesmo de definir as tecnologias 
como linguagem de programação ou banco de dados do sistema, já é possível definir as funções do sistema e 
como elas irão interagir. Além disso, é dirigido, por caso de uso, os casos de uso descrevem o comportamento 
de cada função do sistema de acordo com a perspectiva do usuário. No Processo Unificado, os casos de uso são 
empregados desde a fase de concepção do sistema até a fase de transição, no qual o sistema é entregue ao 
cliente. Nesse sentido, é possível realizar um melhor planejamento começando, por exemplo, pelos casos de uso 
mais prioritários e complexos.
O processo unificado define, também, as fases presentes em todo o desenvolvimento de software. Cada uma 
dessas fases será tratada a seguir.
• Concepção: Nesta fase, inicia-se o levantamento dos requisitos do sistema. É o momento em que se 
procura entender o negócio do cliente e são realizados os primeiros modelos conceituais e descrições do 
requisito. 
• Elaboração: É nesta fase que se viabiliza o requisito, dando continuidade ao processo modelando o 
sistema. 
• Construção: Esta é a fase de implementação, ou seja, a fase onde se codifica e testa o sistema. 
• Transição: Esta fase é o momento em que é realizada a entrega do produto ao cliente e a migração dele 
do desenvolvimento para produção. 
A figura a seguir é uma representação clássica do processo unificado que ficou muito conhecida pelo seu gráfico 
de baleias. Nesse gráfico, é possível ver as interações de cada fase ao longo do tempo no eixo horizontal e no eixo 
vertical o fluxo de trabalho, ou seja, as atividades realizadas no projeto. Assim, cada fluxo de trabalho é situado 
em uma fase, sendo a intensidade de utilização das atividades desse fluxo destacada no gráfico.
10
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Figura 1 – Processo Unificado (PU)
Fonte: KRUCHTEN, 2004.
O Processo Unificado possui outras vertentes, uma delas é o Processo Unificado da Rational 
(Rational Unified Process – RUP) que é o processo criado pela IBM. Outra vertente é o Processo 
Unificado Ágil (Agile Unified Process – AUP) cujas fases são adaptadas para se usar em 
metodologias ágeis.
Saiba mais
O Processo Unificado visa fornecer um arcabouço para o processo de desenvolvimento. Ele organiza os fluxos de 
trabalho em relação a cada fase. 
Lembre-se de que ele não diz que cada atividade do fluxo é totalmente sequencial, mas que 
permeia em cada fase durante o ciclo de vida do projeto.
Fique atento!
11
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
1.2 O que é análise de sistemas 
O termo sistema é bastante amplo e utilizado em várias áreas do conhecimento. De modo geral, refere-se a um 
conjunto de elementos que operam colaborativamente. Na biologia, é comumente empregado para descrever a 
interação e o relacionamento entre os órgãos do corpo humano, como, por exemplo, sistema cardíaco, sistema 
respiratório, sistema nervoso, entre outros. 
Na computação, é comum utilizar o termo sistema para descrever a relação entre seus diversos componentes. 
Pode-se então definir formalmente um sistema sendo um conjunto intencional de componentes inter-
relacionados que funcionam juntos para atingir certo objetivo (SOMMERVILLE, 2011). Um componente pode ser 
entendido como um elemento independente no sistema. 
Os sistemas de informações realizam o processamento de dados que são inseridos em seu contexto e produzem 
uma saída útil para ser analisada pelo seu usuário, ou seja, é capaz de receber informações, processá-las e retornar 
uma saída, além de interagir com o ambiente e se retroalimentar, conforme mostra a Figura 2.
Figura 2 – Esquema de sistemas
Entrada Processamento
FeedbackAmbiente
Saída
Fonte: Adaptada de PALMISANO; ROSINI, 2003.
Assim, uma empresa pode ser considerada um sistema, uma vez que, existe a interação com clientes, funcionários, 
fornecedores, tecnologias que são características de um sistema. Os softwares utilizados por ela, também, são 
considerados sistemas, como sistemas de pagamento, sistemas de controle de estoque, sistema de vendas etc. 
Mas, então o que é a análise de sistemas? 
A análise de sistemas é a atividade na qual é idealizada a execução do desenvolvimento e manutenção do 
software. Faz parte dessa atividade o levantamento de requisitos junto ao cliente, ou seja, identificar o que o 
software deve realizar para atender à necessidade do cliente, além de documentar as necessidades do sistema por 
meio de padrões. Por meio dessas documentações, tanto o cliente quanto a equipe de desenvolvimento devem 
conseguir identificar essas necessidades.
1.3 O problema da comunicação na análise de sistemas
A chave para se entender e solucionar o problema do cliente é a comunicação. O analista de sistemas deve ter 
a consciência de realizar uma comunicação efetiva tanto com os clientes e usuários quanto com a equipe de 
desenvolvimento. Uma das principais fases do processo de desenvolvimento de software é o levantamento de 
requisitos. Essa é justamente a fase do processo que tem como finalidade descobrir, analisar, documentar e 
verificar os serviços e restrições (SOMMERVILLE, 2011). 
12
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Ao fazer o levantamento de requisitos, o analista cria o documento de especificação que é validado pelo cliente 
e que pode ser utilizado na construção do sistema. A satisfação do usuário e a qualidade do sistema dependem 
fortemente de uma documentação bem escrita e de requisitos bem pensados.
Quanto mais tardio são descobertos problemas nos requisitos, mais complicado fica de resolver o problema, uma 
vez que se tem retrabalho na construção. 
Além de tempo e dinheiro, a qualidade do sistema pode também ser comprometida, devido às mudanças 
estruturais.
Tenha em mente que o levantamento de requisitos é extremamente crítico para o sucesso ou fracasso do projeto. 
A Figura 3 é um exemplo clássico utilizado na área da computação para ilustrar a comunicação no desenvolvimento 
de sistemas.
Figura 3 – Projeto balanço na árvore 
Fonte: PROJECT CARTOON, 2007.
Na figura, é possível perceber que cada um dos envolvidos teve um entendimento sobre os requisitos do projeto. 
Dessa forma, todos realizaram suas atividades de forma diferente, prejudicando o projeto e principalmente não 
atendendo à necessidade do cliente.
É interessante observar que, durante a fase de requisitos, muitas vezes o cliente não passa todas as informações 
necessárias para o desenvolvimento do sistema porque ele julga que essas informações são óbvias. Porém, para 
o analista de sistemas, as explicações do cliente nem sempre são óbvias. Por exemplo,ao se realizar projetos 
de contabilidade, recursos humanos, sistemas médicos e outros, as informações de cada área, que são do 
conhecimento desses profissionais, não são facilmente interpretadas pelo analista de sistemas.
13
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
A comunicação é um dos possíveis problemas que podem ocorrer durante o levantamento 
de requisitos. Reflita como é possível minimizar as omissões de informações por parte do 
cliente, uma vez que você não é conhecedor do assunto do cliente.
1.4 Modelagem de sistemas
No desenvolvimento de sistemas, existem duas estratégias de modelagem de sistemas que podem ser 
empregadas: a estruturada e a orientada a objetos.
Análise estruturada
A modelagem de requisitos que utiliza a análise estruturada é a modelagem clássica. Teve sua origem quando os 
sistemas computacionais mais complexos começaram a surgir. Nesse tipo de análise, os diagramas de fluxo de 
dados (data flow diagram) são usados para representar para mostrar uma visão e o fluxo do sistema. Eles permitem 
explorar o domínio funcional e representar o comportamento do sistema (PRESSMAN; MAXIM, 2016). 
A Figura 4 a seguir ilustra um exemplo de diagrama de fluxo de dados.
Figura 4 – Diagrama de fluxo de dados
Processo 1 Processo 2
Sim Não
Processo 4Processo 3
Decisão
Fonte: Elaborada pelo autor.
14
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Apesar de alguns profissionais afirmarem que a análise estruturada é ultrapassada, ela é muito útil para organizar 
os pensamentos e representar o entendimento do negócio. Porém, destaca-se que um dos problemas da análise 
estrutura é que, quanto mais complexo é o problema, mais complexo, também, é o modelo, o que pode complicar 
mais do que ajuda.
Existem muitas ferramentas para se fazer diagramas de fluxos de dados, tanto gratuitas, 
como o DIA e o yED, quanto proprietárias, como o Microsoft Visio e o Enterprise Architect. 
Procure algumas ferramentas de software que permitam desenhar diagramas de fluxos de 
dados e experimente alguma. Caso não queira instalar em seu computador, há também 
opções de ferramentas on-line, como o draw.io e Lucidchart.
Saiba mais
Orientação a objetos
A orientação a objetos é uma outra estratégia para a modelagem de sistemas. Nessa abordagem, a ideia é 
representar os objetos do mundo real que são modelados e construídos no sistema. 
Na orientação a objetos, um objeto é uma unidade autônoma que contém seus próprios dados que são 
manipulados para alcançar os objetivos do objeto (BEZERRA, 2015). 
Um sistema orientado a objetos é formado por objetos que interagem uns com os outros para cumprir realizar 
suas funções. Cada objeto deve possui sua própria responsabilidade e, quando necessário, troca informações 
com outros objetos.
A orientação a objetos é um padrão que pode ser adotado para construção de um sistema 
permeando as fases de análise e implementação do sistema. Alguns exemplos de linguagens 
de programação que podem ser utilizadas para a implementação são Java, C++ e C#.
Fique atento!
 
Para melhor compreensão a orientação a objetos, alguns conceitos precisam ser entendidos, como por exemplo, 
a classificação, a abstração e a instanciação. Veja: 
15
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
A classificação é a forma como os objetos são agrupados em um universo, por exemplo, cavalo, cachorro e gato 
podem ser classificados como animais, assim como carro, moto e avião como veículos. Para realizar a classificação 
de objetos, é necessário envolver, também, o processo de abstração, ou seja, como classificar os objetos. 
Os objetos podem ser classificados de acordo com suas características e comportamentos, por exemplo, um 
veículo tem como característica ser de metal, ter rodas ou asas e ter como comportamento a locomoção. Dessa 
maneira, o termo veículo é abstraído a muitos objetos, ou seja, é abstraída a classe veículo. Assim, a abstração está 
intimamente relacionada à classificação. Ao classificar um objeto do mundo real, estamos abstraindo esse objeto.
A percepção desse objeto dentro de uma classe é chamada de instanciação. Em outras palavras, ao reconhecer 
que um objeto contém característica de um grupo, logo se faz a instanciação desse objeto. Quando instanciamos 
um objeto de uma classe, estamos criando um novo item do conjunto representando por essa classe, com as 
mesmas características e os mesmos comportamentos de todos os outros objetos já instanciados (GUEDES, 2014).
O Quadro 1 a seguir exemplifica como esses conceitos podem ser apresentados:
Quadro 1 – Exemplo de objeto
Objeto Classe Características Comportamento
Cavalo Animal Mamífero, quadrúpede, 
herbívoro
Anda, corre, transporta 
seres humanos ou 
cargas
Cachorro Animal Mamífero, quadrúpede, 
onívoro
Late, brinca, protege a 
casa
Carro Veículo De Metal, quatro rodas, 
usa motor
Transporta pessoas e 
coisas
Avião Veículo De metal, possui asas e 
motor 
Voa e transporta 
pessoas ou carga
Fonte: Elaborada pelo autor.
Observe nos exemplos que é possível instanciar cada objeto em novos objetos, uma vez que, cada cachorro, por 
exemplo, pode ser de uma raça diferente. Dessa forma, poderia instanciar um pastor alemão ou um poodle que 
são objetos do tipo cachorro. Assim, tem-se características e comportamentos em comum. 
Para melhor elucidar os conceitos apresentados, vamos utilizar o exemplo de um sistema de estoque de uma loja. 
No exemplo, o estoque é um objeto que possui informações sobre a quantidade de cada produto, como ilustra o 
Quadro 2 a seguir.
Quadro 2 – Exemplo dos conceitos de objeto no sistema de estoque
Objeto Classe Características Comportamento
Estoque Produto Descrição, quantidade Controlar quantidade
Fonte: Elaborada pelo autor.
16
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Note que o objeto estoque pode representar qualquer produto, como um sapato, roupa ou outro. Ele possui 
características que definem o produto como a descrição do produto e a quantidade em estoque. Nesse exemplo, 
seu único comportamento é o de controlar a quantidade do produto. Assim, ele pode aumentar ou subtrair a 
quantidade em estoque desse produto.
Vale a pena entender o comportamento dos objetos por meio de três características: operação, mensagem e 
estado. 
A operação é a função que o objeto realiza, em geral, produzido com o estímulo de alguma mensagem vinda de 
outro objeto. Essa operação por sua vez pode alterar o estado dos valores desse objeto (BEZERRA, 2015). Nesse 
contexto, supondo o comportamento do objeto estoque durante uma venda. Ao ser acionada a ação de venda, 
a quantidade no estoque do produto vendido é automaticamente alterada. Conforme a figura a seguir é possível 
ver que o objeto estoque recebe a mensagem venda e este altera o estado do valor do seu atributo quantidade.
Figura 5 – Comportamento dos objetos
Venda
Estoque
Quantidade
Fonte: Elaborada pelo autor.
Vamos conhecer um pouco mais sobre orientação a objetos?
A orientação a objeto traz uma série de conceitos que são importantes para aumentar a qualidade do sistema 
ao se trabalhar com esse paradigma. Conceitos como de encapsulamento, polimorfismo, generalização e 
composição que são tipicamente encontrados em sistemas orientados a objetos. Bezerra (2015) descreve esses 
conceitos da seguinte maneira:
• Encapsulamento: a ideia do encapsulamento é de restringir o acesso aos comportamentos do objeto. 
• Generalização (herança): permite que um componente herde características de outro componente. 
• Polimorfismo: uma operação pode ser utilizada para realizar funções diferentes dentro do sistema. 
• Composição: permite criar objetos a partir de outro, em outras palavras, um objeto ser composto por 
outros objetos.Nesta unidade, o termo componente é utilizado para se referir sobre classes e objetos, em 
que, nas explicações a seguir, o termo pode ser entendido como ambos.
Fique atento!
17
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Ao modelar um projeto orientado a objetos e até mesmo ao codificá-lo, você deve seguir a 
recomendação de que o sistema tenha baixo acoplamento e alta coesão.
O que isso significa?
O acoplamento é o relacionamento que existe entre componentes do sistema. Ao se modelar um sistema, é 
comum que isso ocorra, pois um componente chama outro para realizar uma função. Porém, quando um 
componente é muito dependente de outro existe um forte acoplamento, ou que eles são fortemente acoplados. 
Isso é ruim, uma vez que, essa dependência pode prejudicar o comportamento do sistema com muita sobrecarga 
ou até mesmo quando se alterar um componente outro sofra com essa alteração de forma errada.
A coesão é o contrário do acoplamento, ao passo que o acoplamento cria dependências com componentes 
externos, a coesão possui mais responsabilidades do que ela deve de fato assumir. Em outras palavras, a coesão 
é quando um componente possui, além de suas próprias responsabilidades, as que seriam de outro componente. 
Assim, ao invés de um componente buscar por uma operação em outro, ele simplesmente implementa a 
operação nele mesmo. Assim, um componente quando possui muitas operações que, às vezes foge até mesmo 
do seu domínio, diz-se que ele tem baixa coesão, ou seja, o componente não está coeso com o que propõe. 
Nesse sentido, ao se dizer que um sistema deve ter alta coesão e baixo acoplamento, refere-se ao fato de que 
cada componente deve ter suas responsabilidades bem explícitas. E que, o uso errado da orientação a objetos 
na modelagem, como usar generalização indiscriminadamente pode causar alto acoplamento. Da mesma forma 
que, ao se colocar responsabilidades que fogem do domínio do componente causa-se baixa coesão. Portanto, 
deve se ficar atento a esses detalhes que são reflexos da abstração.
Quando não se entende bem o problema e não é possível abstrair bem os dados do mundo real para o modelado, 
alguns desses problemas citados costumam acontecer.
As vantagens de se usar a orientação a objetos no desenvolvimento de sistemas vão muito além de modismo ou 
simplicidade. Como principais vantagens, são consideradas a reusabilidade e a manutenibilidade. A reusabilidade 
permite que componentes já criados no projeto sejam utilizados por outros. Já a manutenibilidade, é a atividade 
realizada a entrega do produto ao cliente. Nessa atividade o cliente pode relatar defeitos ou melhorias ao sistema. 
Graças à orientação a objetos essa atividade, que representa grande parte do ciclo de vida do sistema, é facilitada. 
Na modelagem de sistemas, é utilizado a linguagem UML (Unified Modeling Language), no qual não é uma 
linguagem de programação, mas sim uma linguagem que utiliza a orientação a objetos para descrever o sistema.
A Orientação a Objetos permite aumentar a qualidade do projeto de software. Contudo, 
mesmo utilizando esse paradigma não é garantido que a qualidade será alcançada.
18
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
1.5 A importância da modelagem de sistemas
Durante toda esta unidade, foi falado sobre modelar o sistema, mas...
Para que serve a modelagem?
Não é possível construir um software sem modelar?
Vejamos a argumentação desse contexto:
A modelagem é uma atividade do desenvolvimento de software que visa abstrair as informações levantadas junto 
ao cliente em um projeto no qual é possível se desenvolver o sistema. Por meio desses modelos, tem-se uma visão 
do fluxo de trabalho do cliente, da forma como os componentes do sistema devem se comportar, ser acessados e 
se comunicarem, entre outras informações que são totalmente relevantes durante sua construção.
Em geral, a pessoa que realiza a fase de concepção e elaboração não é a mesma que codifica e testa. Assim, existe 
uma ponte entre o cliente e o programador, que é justamente a parte que o analista de sistemas preenche. 
Entretanto, se o programador fizesse o levantamento dos requisitos junto ao cliente, haveria a necessidade de 
fazer os modelos? A resposta mais curta para essa pergunta é simplesmente sim, porque, ao fazer essa atividade, 
é preciso compreender as atividades do cliente e como elas são feitas para se propor uma solução viável no qual 
o software irá atender.
Fazendo uma analogia a construção civil, uma casa feita sem projeto costuma ter problemas estruturais e até 
mesmo funcionais. No software, por sua vez, acontece a mesma coisa. Quando não é feito o projeto do software 
que será construído, ele sofre com problemas estruturais e funcionais, uma vez que, não sendo planejado 
corretamente, a tendência é que a qualidade de software seja baixa. 
Como uma das funções da modelagem é aumentar a qualidade do sistema, pode-se entender que a sua 
manutenção, também, será facilitada graças ao modelo. Por meio dele, é possível preparar a estrutura do 
sistema para aceitar mudanças. Um sistema não é algo estático que, ao construí-lo, e está simplesmente pronto. 
Com o passar do tempo, novos requisitos podem ser agregados ao sistema e outros podem sofre alterações. 
Por esse motivo, quanto melhor preparado o sistema, maiores serão as chances de ele não sofrer tanto com as 
manutenções.
Além da qualidade, outro ponto que deve ser levado em consideração para se modelar sistemas é o de melhorar 
o planejamento. Graças à utilização de modelos, é possível estimar melhor o tempo e recursos necessários para 
que o sistema seja construído. Assim, a modelagem ajuda a satisfazer corretamente a necessidade do usuário, 
aumenta a qualidade do projeto, além de permitir que se entregue o projeto no prazo.
Mas, o que é um modelo conceitual? Como o próprio nome diz, o modelo conceitual busca extrair conceitos de 
um negócio. Suponha a modelagem de um sistema educacional, no qual se tem a seguinte representação: um 
aluno se matricula em um curso. O curso pode ter muitos alunos matriculados ou nenhum. 
Com base na descrição, a Figura 6 representa de forma simplória esse exemplo, no qual se tem os conceitos de 
Aluno e Curso que possuem os atributos nome e descrição, respectivamente, e estão relacionados por meio da 
matrícula.
19
Análise de Sistemas | Unidade 1 - Modelagem Conceitual de Sistemas
Figura 6 – Exemplo de modelo conceitual
Aluno 0..* 1..1 Curso
matricula descricaonome
Fonte: Elaborada pelo autor.
O modelo conceitual é útil durante o processo de análise para entender melhor o problema do negócio do cliente 
e validar se os termos presentes nesses conceitos, de fato, estão empregados de forma correta (WAZLAWICK, 
2010).
Síntese da unidade
Você foi capaz de compreender os conceitos básicos de análise de sistemas, os processos de desenvolvimento, a 
importância da comunicação não apenas no levantamento de requisitos, mas durante toda as fases do projeto. 
Viu-se os conceitos da análise estruturada e orientação a objetos que, apesar de parecer que um é evolução 
do outro, um pode complementar o outro. E foi vista também a importância de elaborar modelos de sistemas, 
independentemente de sua complexidade.
20
Considerações finais
Esta unidade apresentou os aspectos teóricos iniciais para a análise 
de sistemas. Os assuntos aqui tratados são de suma importância não 
apenas para o analista de sistemas, mas como para toda a equipe de 
desenvolvimento. Essa unidade é a porta de entrada para entender a 
complexidade por trás do desenvolvimento de sistemas. Agora siga em 
frente!
21
 2Unidade 22. Apresentação da UML e Visão 
de Sistema
Para iniciar seus estudos
Nesta unidade, serão apresentados a linguagem UML e os conceitos e 
técnicas do levantamento de requisitos. O levantamento de requisitosé 
uma atividade na qual se compreende e documenta todos os requisitos 
do sistema. Para isso, são aplicadas técnicas para colher informações do 
cliente e também para documentá-las. Então vamos conhecer algumas 
dessas técnicas?
Objetivos de Aprendizagem
• Entender os conceitos da linguagem UML, seus diagramas e suas 
ferramentas.
• Definir as técnicas e artefatos usados no levantamento de 
requisitos.
• Identificar os requisitos de sistema.
• Criar casos de uso.
22
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Introdução da unidade
A Linguagem de Modelagem Unificada (UML) é amplamente utilizada no mercado para se desenvolver sistemas. 
A UML contém diagramas que auxiliam os analistas durante todas as fases do desenvolvimento. À vista disso, 
conhecer seus recursos é de suma importância para realizar com qualidade as atividades de análise de sistemas. 
As técnicas de análise de requisitos são utilizadas para capturar e documentar os requisitos com o cliente. O 
levantamento de requisitos é uma fase delicada no desenvolvimento de sistemas. Por isso, espera-se que tais 
conceitos e técnicas sejam bem entendidos para que possam ser aplicados em cenários reais. 
No levantamento de requisitos, diversos artefatos são utilizados para se documentar as funcionalidades 
do sistema, bem como as caraterísticas necessárias para a sua construção. Assim, nesta unidade, você terá a 
oportunidade de enxergar como escrever e modelar casos de uso, que são documentos gerados na análise de 
requisitos que tratam da construção do sistema pela perspectiva do usuário. Esse artefato é bastante utilizado na 
área de desenvolvimento de sistemas e exige atenção do analista. 
Pois bem, esperamos que consiga assimilar todo o conteúdo aqui passado e que esses sejam utilizados da melhor 
maneira em sua vida profissional. 
Bons estudos!
2.1 Linguagem de Modelagem unificada (UML)
Um artefato é um componente do produto de software, como um documento de especificação, um módulo de 
um programa ou um manual (SCHACH, 2009). Em todas as fases do desenvolvimento de sistemas, são gerados 
artefatos que permitem à equipe de desenvolvimento e ao cliente visualizarem o projeto de software que será 
construído. A Unified Modeling Language (UML) ou Linguagem de Modelagem Unificada foi criada para auxiliar 
na documentação de sistemas orientados a objetos, com a intenção de melhorar o planejamento do projeto e 
aumentar a qualidade do sistema. 
A UML é uma linguagem usada para modelar sistemas usando o paradigma de orientação a objetos. É bom 
frisar que ela não é uma linguagem de programação, mas uma linguagem de modelagem que auxilia no 
desenvolvimento de sistemas. Guedes (2014) adiciona que a UML é utilizada para representar as características, 
comportamento e estrutura do sistema, bem como a dinâmica dos processos.
A UML é dividida em três grupos de diagramas (WAZLAWICK, 2010):
• Digramas estruturais: diagramas de pacotes, classes, objetos, estrutura, componentes e distribuição.
• Diagramas comportamentais: diagramas de caso de uso, atividades e máquina de estado.
• Diagramas de interação: representados pelos diagramas de comunicação, sequência, tempo e visão de 
integração.
Apesar da grande quantidade de diagramas disponíveis, é interessante entender que no projeto não é necessário 
usar todos os diagramas. Isso varia de acordo com o sistema a ser modelado e com os padrões requeridos pela 
empresa de desenvolvimento. Algumas empresas costumam fixar os artefatos que elas determinam que sejam 
produzidos.
23
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
O padrão UML foi disponibilizado à comunidade de desenvolvimento de sistemas na década de 1990, quando 
Booch, Jacobson e Rumbaugh uniram os seus métodos, o método de BOOCH, Object Modeling Technique (OMT) 
e Object-Oriented Software Engineering (OOSE), com o apoio da Rational. Atualmente, a UML é mantida pela Object 
Management Group (OMG) e é a linguagem de modelagem padrão no desenvolvimento de software (GUEDES, 
2014).
2.1.1 Diagramas UML
Para melhor compreender como funcionam os diagramas UML, veja os conceitos dos principais diagramas 
utilizados no desenvolvimento de sistemas. Pressman e Maxim (2016) descrevem:
• Diagrama de caso de uso: procura mostrar as funcionalidades do sistema pela visão do usuário, assim 
ele mostra a interação do usuário no sistema, e por ele é possível se ter uma visão geral do sistema.
• Diagrama de classes: descrevem uma visão estática ou estrutural do sistema. Ele é composto pelas 
classes, seus atributos, operações e relacionamentos.
• Diagrama de objetos: representa classes com visão estática do sistema, assim os objetos mostram os 
valores armazenados pelos objetos das classes, que são determinados em dado momento na execução 
do sistema. Nesse caso, esse diagrama é útil para simular as situações das classes.
• Diagrama de atividades: esse diagrama é semelhante a um fluxograma, ele mostra o comportamento 
dinâmico do sistema por meio de fluxos de controle, podendo mostrar também fluxos concorrentes.
• Diagrama de sequência: nesse diagrama é mostrada a comunicação dinâmica dos objetos no momento 
de execução, ou seja, ele procura exibir o que acontece quando um determinado objeto é executado em 
ordem temporal. Dessa maneira, é possível ver as interações desse objeto.
• Diagrama de estado: no sistema, um objeto pode mudar constantemente os valores de suas variáveis. 
O diagrama de estado procurar exibir como essas variáveis de controle trabalham ao longo do processo 
do sistema. Ele ajuda a descobrir situações perdidas ou inesperadas, garantindo que os eventos possíveis 
para aquele estado sejam levados em conta durante sua transição.
2.1.2 Ferramentas UML
Existem diversas ferramentas profissionais e gratuitas que podem ser usadas para se construir diagramas UML. 
Entre as mais populares do mercado, podem ser vistas: a Enterprise Architect (EA), as suítes da International Business 
Machines (IBM) e Microsoft Visio.
A EA é uma ferramenta bastante robusta disseminada no mercado. É uma ferramenta proprietária mantida 
pela Sparx Systems. Por meio dessa ferramenta, é possível construir praticamente todos os artefatos da fase de 
requisitos e modelagem de sistemas.
A IBM disponibiliza suítes de ferramentas agregadas que permitem construir modelos UML, como é o caso da IBM 
Rational Software Architect, IBM Rational Rhapsody Developer, IBM Rational Rose e IBM Rational Modeler. 
24
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
A Microsoft, em sua Integrated Development Environment (IDE)/Ambiente de Desenvolvimento Integrado - Microsoft 
Visual Studio, possibilita que se criem diagramas UML a partir dela. Além de diagramas, essa ferramenta oferece 
suporte a várias linguagens de programação, como C#, Basic, C++, entre outras.
Outras ferramentas que ficaram conhecidas no cenário UML foram a StarUML e Astah (antigo JUDE). Estas eram 
ferramentas gratuitas, porém no momento estão sendo disponibilizadas em versão paga. Contudo, o Astah ainda 
possui uma versão gratuita para estudantes, que pode ser adquirida mediante solicitação no seu próprio site.
As ferramentas que continuam sendo disponibilizadas de forma gratuita são: DIA, ArgoUML, UMBRELLO e 
PlantUML. Porém, com exceção da PlantUML, todas estão defasadas com a versão atual da UML e não têm evoluído 
muito nos últimos anos, isto é, não há novas versões e nem todas suportam os incrementos da UML.
Os diagramas UML podem, ainda, ser gerados dentro de IDEs, como o Eclipse e NetBeans. Nesse caso, é necessário 
baixar e instalar os plug-ins desses recursos. Vale lembrar que nem todo plug-in do Eclipse é disponibilizado de 
forma gratuita. 
Seguindo a tendência de ferramentas on-line, os diagramas UML também podem ser modelados sem a 
necessidadede instalar programas no computador. É o caso da Draw.io e Lucidchart. Eles oferecem aos usuários 
a possibilidade de modelar diagramas UML e outros apenas utilizando o navegador e a Internet. Para isso, basta 
possuir uma conta. No caso da Lucidchart, esta oferece uma versão de teste, mas depois é cobrado.
Apesar da grande quantidade de ferramentas disponíveis, todas são muito similares. Algumas, além de 
possibilitarem o desenho dos diagramas, permitem gerar código-fonte para a linguagem de programação 
configurada. Isso poupa o desenvolvedor do trabalho de digitar novamente os nomes de classes, atributos, etc.
Figura 7 – Ferramentas UML
Fonte: SHUTTERSTOCK, 2018.
25
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Para saber um pouco mais, procure experimentar algumas das ferramentas mencionadas 
e dar uma olhada nos seus manuais. Faça os exemplos aqui apresentados e experimente 
algumas de suas funções. Além das ferramentas citadas, existem outras.
Saiba mais
2.1.3 Documento de visão
O documento de visão é primeiro documento a ser criado ao se iniciar um projeto de software. Nele, apresenta-se 
uma visão macro do projeto, ou seja, são colocados os requisitos do sistema de forma geral, sem muitos detalhes. 
Em suma, esse é um documento de mercado que tem como ideia registrar o que será construído e o que o cliente 
espera. 
Esse documento é feito pelo analista de requisitos, no qual é realizado o primeiro levantamento de requisitos 
do sistema. Nele, são descritos o escopo e as restrições do sistema, identificando as principais necessidades do 
cliente, os objetivos do sistema e a visão geral da solução. Quanto mais detalhado for o documento de visão, 
melhor será para planejar o sistema, assim, caso o analista julgue necessário, pode adicionar diagramas e propor 
soluções. 
A partir do documento de visão, os requisitos são detalhados e amadurecidos. É importante de ser feito, para 
deixar claro tanto para a equipe de desenvolvimento quanto para o cliente, qual o escopo e as restrições do 
projeto (ENGHOLM, 2017).
Figura 8 – Documento de visão
Fonte: SHUTTERSTOCK, 2018.
26
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
2.1.4 Engenharia de requisitos
O processo que reúne o conjunto de tarefas e técnicas para se fazer o levantamento de requisitos é chamado de 
engenharia de requisitos. 
A engenharia de requisitos tem início no processo de comunicação e modelagem do projeto. Ela abrange as 
atividades de concepção, levantamento, elaboração, negociação, especificação, validação e gestão. Cada uma 
dessas atividades pode ser realizada em paralelo ou de acordo com o processo adotado pela empresa. Pressman 
e Maxim (2016) descrevem essas atividades da seguinte forma:
• Concepção: essa é a atividade inicial de um projeto de software, e nela é estabelecido o projeto, definindo 
o problema a ser resolvido e as pessoas envolvidas. Nessa atividade são definidos o plano de negócio e a 
viabilidade para ele. Aqui já se tem uma noção do escopo do projeto. 
• Levantamento: é questionado ao cliente o que de fato se deve ser construído. Nessa fase surgem diversos 
problemas como no escopo do sistema, no seu entendimento e sua volatilidade, ou seja, as recorrentes 
mudanças no requisito.
• Elaboração: é a atividade que modela o sistema, ou seja, refina os dados obtidos na concepção e 
levantamento e utiliza diagramas para documentá-las. 
• Negociação: quando surgem conflitos de requisitos, prioridades ou o escopo se amplia mais do que o 
previsto, o analista deve fazer negociações para gerenciar os conflitos e definir as prioridades a serem feitas. 
• Especificação: são os documentos e modelos gerados a partir do requisito.
• Validação: quando documentados os requisitos, o cliente precisa validar essas informações. Nessa 
atividade a equipe valida o que foi escrito na especificação como forma de garantir a qualidade do 
produto, assim, é verificado o seu entendimento para não haver ambiguidade. O cliente pode participar 
dessa fase para complementar a documentação.
• Gestão de requisitos: nessa etapa são gerenciadas as mudanças do requisito do sistema, assim, 
controlam-se o projeto e acompanhamentos sobre as necessidades de mudanças. 
Essas atividades fazem parte de um ciclo percorrido pelo analista para projetar o sistema. Elas não precisam ser 
realizadas exatamente de forma sequencial, mas devem ser compreendidas para que o analista se posicione 
conforme a situação. As empresas de desenvolvimento podem adotar ou adaptar processos em que são definidos 
como efetuar essas atividades.
2.1.5 Levantamento e análise de requisitos
O levantamento de requisitos é a atividade do desenvolvimento de sistemas na qual o analista procura entender 
e documentar as funcionalidades e restrições do sistema para atender à necessidade do cliente. Essa atividade, 
apesar de parecer simples, é uma das mais complexas do desenvolvimento. Essa complexidade está relacionada 
ao fato que o cliente, muitas vezes, não sabe o que quer. Além disso, a volatilidade com que os problemas ocorrem 
é muito grande. Assim, o cliente pode não ter certeza do que está relatando ou a visão que ele tinha no momento 
do levantamento de requisitos já não é a mesma depois. 
27
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Existem sistemas em que as mudanças no requisito são constantes. Por isso, um bom gerenciamento dos 
requisitos e técnicas de negociação devem ser aplicadas para minimizar os impactos causados pelas mudanças. 
Quanto mais tarde os problemas de requisitos forem encontrados, maiores serão seus custos.
O termo levantamento de requisitos é conhecido também como elicitação de requisitos. Nele, são combinados 
elementos de resolução de problemas, elaboração, negociação e especificação. Assim, são identificados 
os problemas a serem tratados pelo sistema, negociam-se as abordagens e se definem algumas soluções 
(PRESSMAN; MAXIM, 2016).
O processo de elicitação e análise de requisitos passam pelas seguintes atividades: obtenção de requisitos; 
classificação e organização de requisitos; priorização e negociação de requisitos; documentação de requisitos. 
Essas atividades podem ser descritas da seguinte forma (SOMMERVILLE, 2011):
• Obtenção de requisitos: ocorre a interação com as partes interessadas (stakeholders) para coletar 
informações sobre os requisitos. 
• Classificação e organização de requisitos: se agrupam os requisitos relacionados, e esses são 
organizados de forma coerente. 
• Priorização e negociação de requisitos: é usada no momento em que se têm requisitos no sistema que 
começam a ser conflitantes entre si. Nesse momento, o analista deve procurar negociar os requisitos para 
evitar conflitos e também para priorizá-los. 
• Documentação de requisitos: os requisitos levantados são documentados, podendo ser documentos 
formais ou informais, passando por um ciclo iterativo.
Para fazer o levantamento de requisitos, algumas técnicas podem ser utilizadas, como (SOMMERVILLE, 2011):
• Pontos de vista: são verificados os requisitos com diversos stakeholders, nesse caso são verificados os 
requisitos do sistema por meio de várias pessoas que têm atividades diferentes na empresa, logo, pontos 
de vistas diferentes.
• Entrevistas: podem ser feitas com um roteiro predefinido ou de uma forma exploratória. Em geral, as 
entrevistas acontecem com a combinação dos dois. As entrevistas são úteis para se ter um conhecimento 
geral, mas não do domínio, uma vez que, durante as entrevistas, o cliente pode utilizar termos que são 
apenas do domínio do negócio dele e ser mal interpretado pelo analista, por causa das ambiguidades da 
língua.
• Cenário: o usuário descreve por meio de exemplos a interação com o sistema. Assim, pode capturar 
fluxos, o que pode dar errado no sistema, atividadessimultâneas entre outras. 
• Caso de uso: identifica as ações e os agentes que irão interagir com o sistema, é composto por vários 
cenários detalhados que podem estar relacionados entre si.
• Etnografia: é uma técnica de levantamento de requisitos que se baseia na observação. Nela o analista 
observa o dia a dia do trabalho na empresa para melhor compreender o seu funcionamento, capturando 
requisitos que estão implícitos. 
28
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Além das técnicas de levantamento de requisitos aqui citadas, existem outras que podem ser 
exploradas, como a prototipação e Joint Application Design (JAD).
Saiba mais
2.1.5.1 Requisitos e regras de negócio
Os requisitos são classificados em requisitos funcionais, não funcionais e de domínio. Os requisitos funcionais 
são aqueles que ditam as funcionalidades do sistema (o que o sistema pode ou não fazer), estando ligados 
explicitamente às características do sistema. 
Já os requisitos não funcionais são restrições de funcionamento do sistema, tais como o tempo de resposta, 
o armazenamento e limitações de hardware, podendo ser, também, vindas de fontes externas, como 
interoperabilidade e requisitos da própria organização. 
Sommerville (2011) descreve os requisitos não funcionais definindo-os em grupos maiores, veja:
• Requisitos de produto: definem o comportamento do produto, como, por exemplo, requisitos de 
velocidade, quanto de memória ele requer, quantidade de falhas aceitáveis, portabilidade e usabilidade.
• Requisitos organizacionais: são definições das políticas do cliente ou do desenvolvedor, como padrões 
de processos e linguagem de programação.
• Requisitos externos: como o próprio nome sinaliza, esses requisitos são definidos por outros, como 
sistemas no qual o produto irá interagir (interoperabilidade), conformidade com a lei e questões éticas.
Os requisitos de domínio são os requisitos que fazem parte do domínio do negócio do cliente. Eles contêm 
conceitos que estão diretamente relacionados ao negócio. Assim, para se fazer um cálculo trabalhista, por 
exemplo, é necessário entender seu domínio e os termos utilizados por ele.
As regras de negócio definem as restrições lógicas ou tecnológicas que se aplicam a uma funcionalidade 
(WAZLAWICK, 2010). As regras de negócio são regras que regem o negócio e complementam o funcionamento 
de certos processos. Estão mais relacionadas ao domínio e existem independentes do sistema.
Vazquez e Simões (2016) aconselham que as regras de negócio sejam especificadas independentemente dos 
requisitos funcionais, para facilitar modificações e serem reutilizadas.
Os requisitos também são classificados como requisitos de usuário e requisitos de sistema. Os requisitos de 
usuário descrevem o que se espera do sistema e quais são suas restrições. E os requisitos de sistema detalham as 
funções, restrições e serviços do sistema (SOMMERVILLE, 2011). 
Tanto os requisitos de usuário quanto o de sistema englobam os requisitos funcionais, não funcionais e de domínio. 
No entanto, no requisito de usuário, se usa uma linguagem mais simples, descrevendo o comportamento do 
sistema que deve ser compreendido pelos usuários, ou seja, não são usados termos técnicos. 
29
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Os requisitos de sistema descrevem de forma mais detalhada os requisitos do usuário. Eles devem descrever 
todo o sistema e explicar detalhes dos requisitos. Também podem servir como contratos na implementação do 
sistema, por isso deve-se evitar termos muito técnicos.
 
Os requisitos funcionais, não funcionais e regras de negócio podem se confundir. Os 
requisitos nem sempre são claros de serem classificados.
Fique atento!
2.1.5.2 Caso de uso
Um caso de uso representa o comportamento do sistema pela perspectiva do usuário final. Assim, um caso de 
uso deve ser escrito para fornecer detalhes desse comportamento. O texto pode ser uma descrição a respeito das 
tarefas ou interações. Desse modo, alguns elementos devem estar presentes na descrição do caso de uso. 
Em todo caso de uso, existe a presença de atores. Os atores são as pessoas ou dispositivos que interagem 
com o sistema. Em geral, eles possuem papéis para operar o sistema. Apesar do ator exercer a funções de um 
usuário final, não significa que ele vai representar uma determinada pessoa, mas sim os papéis necessários para 
determinada função (PRESSMAN; MAXIM, 2016). 
Para exemplificar, imaginando o contexto de um sistema escolar acessado pela Internet, foram identificados os 
atores: professor, aluno, coordenador. O professor lança as aulas, notas e faltas dos alunos. Os alunos visualizam 
as aulas, notas e faltas. E o coordenador gerencia o curso, professores e turmas. Nesse caso, existem três atores, 
porém é comum que o coordenador também seja um professor. Dessa maneira, essa pessoa terá dois papéis, que 
são representados por dois atores diferentes no caso de uso: o de coordenador e o de professor, mesmo que esse 
usuário final seja uma única pessoa. 
Para ampliar o entendimento sobre os atores, é possível enriquecer ainda mais o exemplo. Suponha que 
esse sistema educacional precise trocar informações com o sistema da secretaria de educação para fornecer 
informações sobre os alunos da escola. Assim, o sistema da secretaria de educação terá de acessar os relatórios 
sobre os alunos e professores a partir do sistema educacional. Nesse caso, o sistema da secretaria de educação é 
considerado um ator, pois interage com as funcionalidades do sistema.
30
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Nem sempre os atores são identificados nas primeiras interações com o cliente. Esses atores 
podem ir surgindo quando se aprende mais sobre o negócio do cliente. Assim, se descobre 
incialmente os atores primários e, posteriormente, os atores secundários, que fornecem 
suporte ao funcionamento do sistema.
Fique atento!
No exemplo do sistema educacional, foram fornecidas algumas informações sobre ele e como os atores interagem 
com o sistema. Por exemplo, foi dito que o professor lança as aulas dadas, as notas e as faltas dos alunos. Por 
meio dessas frases, é possível verificar a interação do professor com o sistema, fornecendo os conceitos para se 
desenvolver as funcionalidades do sistema. 
Para detalhar o caso de uso, além do ator, são necessárias que outras informações sejam fornecidas. Veja no 
Quadro 3 como são definidas as partes do caso de uso.
Quadro 3 – Elementos do caso de uso 
Ator Alguém ou algo que interage no sistema
Stakeholder Quem tem interesse no sistema
Ator primário Quem o ou que inicia a interação com o sistema
Caso de uso Funcionalidade com o comportamento do sistema
Escopo Identifica o sistema
Precondição O que deve existir para acionar o caso de uso
Cenário de sucesso principal Um caso em que nada acontece errado
Extensões O que pode acontecer de diferente durante aquele cenário
Fonte: Adaptado de COCKBURN, 2005. 
Um exemplo bastante simples dessa aplicação pode ser visto da seguinte forma: o professor (ator) lança nota 
(caso de uso). O caso de uso lançar nota pode ser identificado no escopo do sistema educacional.
31
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Quadro 4 – Caso de uso
Ator: professor
Precondição: está no período de lançamento de notas
Cenário principal:
 1 – O professor acessou o caso de uso de lançamento de notas
 2 – O professor escolhe a turma
 3 – O sistema exibe os alunos com os campos de notas habilitados
 4 – O professor lança as notas dos alunos 
 5 – O sistema soma todas as notas de cada aluno e preenche o campo total para cada aluno
 6 – O professor salva o lançamento de nota
Extensão:
5a – O professor cancela o lançamento de notas
Fonte:Elaborado pelo autor.
O exemplo apresentado é um simples caso de uso para exemplo didático. De acordo com o exemplo, é possível 
ver o fluxo principal, que é o fluxo mais importante do caso de uso. Nele, são descritos os passos necessários para 
o funcionamento do sistema e os fluxos alternativos, que são as opções do caso de uso que podem ser acionados 
pelo ator. Além disso, estão presentes as regras de negócio, que são as regras do cliente, ou seja, elas existem 
mesmo sem a existência do sistema. E por último, o fluxo de exceção, que captura as exceções ou possíveis falhas 
que podem ocorrer no sistema durante a execução do caso de uso.
Existem muitos exemplos na Internet de como escrever casos de uso. Pesquise mais!
Saiba mais
2.1.5.3 Diagramas de caso de uso
Para representar os casos de uso, a UML possui um padrão de diagrama que é usado de modo gráfico para 
simbolizar e facilitar a comunicação no requisito. Ele deve ser usado para ilustrar o comportamento do sistema 
32
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
junto ao usuário. Assim, os elementos presentes nesse diagrama são: atores, casos de uso e as associações, 
conforme ilustra a Figura 9:
Figura 9 – Exemplo de caso de uso de sistema escolar – visão do professor
Professor
Lançar Nota
Lançar Falta
Registrar Conteúdo da Aula
Fonte: Elaborada pelo autor.
Os atores são representados por um “bonequinho”, já os casos de uso são representados por uma elipse. Repare 
que na Figura 9 existe uma linha ligando o ator ao caso de uso. No caso, essa linha é chamada de associação. 
A associação indica que o ator utiliza um determinado caso de uso. A associação pode estar relacionando não 
apenas atores e casos de uso, mas podem estar associados dois casos de uso ou dois atores. 
Existem outros tipos de associações que podem ser explorados no diagrama de caso de uso, como a generalização, 
inclusão e extensão. 
A generalização é usada para representar a herança. Nela, um ator pode herdar características de outro ator ou 
um caso de uso pode herdar atributos de outro caso de uso. 
A inclusão é indicada pela linha tracejada e pela palavra <include>. Essa associação indica que o caso de uso deve 
obrigatoriamente usar o outro caso de uso, também. 
Diferentemente da inclusão, a extensão indica que os recursos de outro caso de uso podem ser usados, mas não 
é obrigatória sua utilização. Ela é representada pela linha tracejada e pelo termo <<extend>>.
33
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Figura 10 – Exemplo de caso de uso de sistema escolar – visão professor e coordenador
Professor
Coordenador
Lançar Nota
Lançar Falta
Registrar Conteúdo da Aula
Gerenciar curso
<<extend>>
<<include>>
Cadastrar disciplina
Gerenciar Professor Verificar Professor
Gerenciar Turma
Fonte: Elaborada pelo autor.
A Figura 10 exemplifica o que foi explicado de uma forma hipotética do sistema escolar descrito. Por meio desse 
diagrama, o coordenador herda todas as funcionalidades do professor. Assim, o coordenador tem seus casos 
de uso: gerenciar curso, gerenciar professor, gerenciar turma. Ele também pode executar os casos de uso de 
professor: lançar nota, lançar falta e registrar conteúdo da ala. Contudo, o ator professor não pode executar os 
casos de uso do coordenador. Observe que a seta entre o coordenador e professor é o que indica a generalização. 
Essa seta pode ser usada, também, para generalizar casos de uso. 
A Figura 11 mostra como um caso de uso pode estar relacionado a outro por meio da generalização. Nesse 
exemplo, o caso de uso lançar conceito herda as funcionalidades do caso de uso lançar nota para as disciplinas 
de educação física, ensino religioso e outras que utilizam conceitos em suas avaliações. 
Figura 11 – Exemplo de generalização entre casos de uso
Lançar Nota
Lançar Conceito
Fonte: Elaborado pelo autor.
34
Análise de Sistemas | Unidade 2 - Apresentação da UML e Visão de Sistema
Os casos de uso gerenciar professor e verificar professor na Figura 10 estão associados com o tipo de inclusão. 
Isso indica que, sempre que o coordenador for utilizar o caso de uso de gerenciar professor, é obrigatório chamar 
o caso de uso verificar professor. Dessa forma, é garantido que o professor exista no sistema.
Já os casos de uso gerenciar curso e cadastrar disciplina possuem uma associação de extensão. Nessa associação, 
durante o gerenciar curso, o coordenador pode precisar cadastrar alguma disciplina. Assim, ele tem como opção 
chamar o caso de uso cadastrar disciplina, ou seja, essa associação não obriga o ator usar o caso de uso.
Por meio do diagrama de caso de uso, o entendimento a respeito do funcionamento do sistema fica melhor 
representado. Esse diagrama permite obter a visão geral do sistema, a forma como usuário interage com ele e até 
como o sistema deve se comportar. Portanto, esse é um diagrama fundamental no levantamento de requisitos.
Síntese da unidade
Nesta unidade, você foi apresentado à linguagem UML e ao levantamento de requisitos. A UML fornece 
diagramas úteis para o desenvolvimento de sistemas. Já o requisito de sistemas é uma atividade complexa, que 
exige atenção do analista. Este, por sua vez, tem à sua disposição diversos recursos para realizar o levantamento 
e documentação de requisitos, que serão validados pelo cliente e construídos pela equipe de desenvolvimento.
35
Considerações finais
Esta unidade apresentou as informações a respeito do processo de 
levantamento de requisitos e das ferramentas e padrões da UML. Espera-se 
que os conhecimentos aqui abordados sejam bem aproveitados nos seus 
estudos e no meio profissional. É sempre bom lembrar que o conteúdo 
aqui presente não esgota o assunto. Dessa forma, é indicado que procure 
mais nas indicações do material e consulte as referências indicadas para 
ampliar os conhecimentos adquiridos.
36
 3Unidade 33. Modelagem Estrutural 
Para iniciar seus estudos
Nesta unidade, serão apresentados os diagramas de classe e objetos 
conforme a notação UML. Por meio desses diagramas, você será capaz 
de representar a estrutura de um sistema. Eles são a base fundamental do 
projeto de software. Essa estrutura permite que o sistema seja codificado 
para se tornar um produto. Então vamos conhecer mais?
Objetivos de Aprendizagem
• Descrever um projeto de software por meio de sua representação 
gráfica.
• Criar diagramas de classes e diagramas de objetos.
37
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
Introdução da unidade
Um projeto de software inicia-se na concepção do problema que o cliente almeja resolver com um sistema no 
qual são levantados os requisitos necessários para sua construção. Antes de iniciar a codificação desse sistema, é 
necessário que seja feito um projeto para estruturar a sua implementação.
Similar a um projeto de uma casa ou de um edifício, a construção de um sistema precisa ser bem planejada e 
estruturada para aumentar a qualidade do projeto, além de melhorar sua manutenção e reuso.
Assim, a UML tem um papel fundamental nesse processo, que é de estruturar esse sistema por meio do paradigma 
de orientação a objetos. A orientação a objetos utiliza-se de classes e objetos para trabalhar. Dessa forma, não é 
blasfêmia dizer que o diagrama de classes é o diagrama mais importante em um projeto de software orientado a 
objetos. 
No diagrama de classes, são expostas as classes que são abstrações do mundo real e suas propriedades e 
operações. Essa abstração fornece aos objetos as funcionalidades necessárias. Para desenvolver esses diagramas, 
é bom que se tenha boa noção sobre orientação a objetos, pois seus conceitos são amplamente utilizados por 
esses diagramas.
Tanto o analista de sistemas como o desenvolvedor devem ter conhecimento sobreesses diagramas. Por serem a 
base de todo sistema orientado a objetos, são bastante utilizados no mercado.
Assim, fique atento aos detalhes e exemplos apresentados nesta unidade. 
Bons estudos!
3.1 Projeto de software
Em projetos de software, são criados modelos úteis para a construção de sistemas. Após o levantamento de 
requisitos, é importante estruturar como o sistema será desenvolvido. Em um projeto orientado a objetos, 
os modelos que representam a estrutura do sistema são os modelos de classes e objetos. A UML dispõe de 
diagramas de classes e diagramas de objetos para fazer essa representação. Modelos são representações 
gráficas que descrevem o processo de negócio, o problema a ser resolvido e o sistema a ser desenvolvido 
(SOMMERVILLE, 2011).
A descrição dos requisitos do sistema é feita por meio de linguagem natural, que é a linguagem em que nos 
comunicamos, português, inglês, espanhol, etc. Os requisitos podem ainda conter diagramas para representar 
graficamente o escopo do sistema, definindo então o comportamento do sistema. Em outra perspectiva, 
têm-se os modelos nos quais a arquitetura do sistema ou a estrutura de dados é feita. Ressalta-se que esses 
modelos não exatamente devem ser criados após a fase de análise e que eles podem ser utilizados nessa fase 
para melhor compreensão do desenvolvimento. Em geral, esse fluxo ocorre conforme a figura 12:
38
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
Figura 12 – Metodologia do projeto de software
Requisitos Domínio Projeto
Fonte: Elaborado pelo autor
Durante os requisitos, são gerados os artefatos necessários para o entendimento do projeto, que pode conter 
o modelo de domínio, também chamado de modelo conceitual. Nesse modelo, as classes são apresentadas 
de forma simples, apenas para representar o entendimento do domínio de negócio. Já os diagramas de classe 
referentes ao projeto levam em consideração as tecnologias a serem utilizadas. As classes são melhores 
representadas com suas propriedades e comportamentos, gerando o diagrama de classe de especificação 
(WAZLAWICK, 2010).
O projeto de software é aplicado independentemente do modelo de processo de software. Assim, o projeto 
de software é uma atividade de modelagem que antecede a construção do sistema. Por meio do projeto é 
que os desenvolvedores serão guiados a codificar o sistema seguindo os requisitos e a arquitetura do projeto 
(PRESSMAN; MAXIM, 2016). O projeto de software deve garantir a qualidade do produto. Assim como na 
construção de uma casa, são feitas plantas da casa para se estruturar o que será construído, dessa maneira, 
pode-se ter uma visão do que deve ser feito, além de permitir estimar melhor o tempo e custo do projeto. 
Em desenvolvimento de sistemas, o projeto não é diferente, ele ajuda a equipe a visualizar como deve ser sua 
construção, além de permitir estimar melhor tempo e custo do projeto.
Por trabalhar com o paradigma de orientação a objetos, os diagramas UML tendem a aumentar a qualidade 
do produto, visto que sistemas orientados a objetos são mais fáceis de serem alterados. Em geral, há um 
mapeamento claro entre entidades do mundo real e os objetos do sistema, o que aumenta a compreensão 
e facilidade de manutenção. Objetos, ainda, são componentes reusáveis porque são encapsulados de forma 
independente de estado e operação. A reusabilidade reduz o custo de projeto, programação e validação, 
também reduz os riscos no desenvolvimento (SOMMERVILLE, 2011).
3.2 Diagrama de classe
O diagrama de classe é um diagrama UML que mostra uma visão estática do sistema. Como o próprio nome diz, 
esse diagrama estrutura de maneira lógica as classes de um sistema orientado a objetos. Na orientação a objetos, 
a classe contém os atributos e métodos, ou seja, eles descrevem as características e comportamentos de um 
objeto. Uma classe pode se relacionar com outra classe por meio de associações. Em um diagrama de classes, é 
exibido justamente o relacionamento entre as classes. 
No processo unificado, visto na unidade 1 desta disciplina, é sugerido que se crie o modelo conceitual na fase de 
análise. Esse modelo ajuda a identificar termos de negócio do cliente e mostra como os conceitos são relacionados. 
Assim, são modeladas as classes, atributos e os relacionamentos entre as classes. Contudo, o comportamento da 
classe é detalhado na fase de projeto, transformando o modelo conceitual em modelo de domínio, assim como o 
modelo conceitual pode ser usado para produzir o modelo lógico de banco de dados (GUEDES, 2014).
As classes de análise podem ser categorizadas da seguinte maneira (PRESSMAN; MAXIM, 2016):
39
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
• classes de entidade ou classes de modelo ou negócio, que representam o que deve ser armazenado no 
banco de dados;
• classes de fronteira são usadas para criar uma interface exibida ou interagida com o usuário, como uma 
tela ou relatório;
• classes de controle são usadas para gerenciar a criação ou atualização de objetos, instância de objetos de 
fronteira, comunicação entre conjuntos de objetos e validação dos dados
Para melhor compreender a estrutura de uma classe, são apresentados os conceitos de suas partes, como os 
atributos e métodos. No diagrama de classes, a classe é representada por um retângulo com duas divisões, a 
primeira divisão contém os atributos, e a segunda divisão, os métodos, conforme figura a seguir.
Figura 13 – Exemplo de classe - conta corrente
ContaCorrente
-numeroconta: Long
-saldo: Double
+consultarSaldo(): Double
+sacar(valor: Double): void
+depositar(valor: Double): void
Fonte: Elaborada pelo autor.
Seguindo a convenção da orientação a objetos, o nome das classes é escrito com a inicial 
da palavra em maiúsculo, e o restante, em minúsculo. Quando se tem junção de palavras, as 
duas iniciam com letra maiúscula, por exemplo, conta correte seria ContaCorrente. E o nome 
da classe deve ser único.
Fique atento!
3.2.1 Atributos ou propriedades
Os atributos (também chamados propriedades) definem uma classe. Por exemplo, toda conta corrente, para 
existir, deve ter um número que a identifica e um valor ou saldo. Observe que, antes dos nomes dos atributos, 
existe um sinal de menos (-) e, antes do nome dos métodos, existe um sinal de mais (+). Esses sinais indicam a 
visibilidade do atributo e do método. Eles podem ser privados (-), públicos (+), protegidos (#) ou ser acessados 
por qualquer objeto dentro do pacote (~). Isso indica a forma como eles estão encapsulados, ou seja, se podem 
ou não ser acessados. 
40
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
Quando se tem atributos privados, esses atributos só podem ser acessados pela própria classe, no caso de 
ContaCorrente somente ela pode acessar os atributos número e saldo, pois seus atributos estão como privados. 
Caso esses atributos fossem protegidos, as classes que derivam dessa classe poderiam utilizar esses atributos, 
mas como são privados, o uso desses atributos se limita à classe. Em contrapartida, os métodos estão como 
públicos. Isso significa que qualquer classe pode acessar esses métodos. 
Na orientação a objetos, é recomendado que os atributos estejam como privados ou protegidos, enquanto os 
métodos declarados, como públicos. Esse recurso diminui o acoplamento entre as classes, ou seja, um sistema 
com classes mais independentes (LOBO, 2009).
Além da visibilidade dos atributos, no diagrama de classe é definido o tipo que o atributo deve assumir. Esse tipo 
é justamente o tipo que o atributo assume em uma linguagem de programação, como integer, string, double, etc. 
Assim como o nome das classes, existe uma sugestão de padronização dos nomes dos atributos. Em geral, o 
nome do atributo é escrito com os caracteres em minúsculo, caso seja nome composto, o segundo nome terá o 
segundo carácter em maiúsculo, porexemplo, nomeContaCorrente.
3.2.1.1 Métodos ou operações
Os métodos também são chamados de operações ou comportamentos. Eles executam as funções de uma 
classe, no exemplo da figura Exemplo de classe: conta corrente, os métodos consultarSaldo(), sacar() e depositar() 
representam o comportamento que essa classe pode ter. Em outras palavras, toda conta corrente tem suas 
propriedades de número da conta e saldo, e o usuário é capaz de consultar o saldo dessa conta, sacar ou depositar 
um valor. Comparada com a programação estruturada, os atributos seriam as variáveis, e os métodos, as funções 
e procedimentos. As operações de uma classe podem ser divididas em quatro categorias (PRESSMAN; MAXIM, 
2016): 
1. operações que manipulam dados de alguma forma; 
2. operações que realizam um cálculo;
3. operações que pesquisam o estado de um objeto;
4. operações que monitoram um objeto em termos de ocorrência de um evento de controle.
Os métodos podem ou não receber parâmetros e devolvê-los. No caso do método sacar, ele recebe um valor 
que é a quantia que o usuário deseja retirar. O método sacar deve, então, apenas retirar o valor que está sendo 
informado. Ele recebe o parâmetro e não informa retorno, o termo void indica que ele não retorna valor. Já o 
método consultarSaldo() não está recebendo nenhum parâmetro, mas deve retornar um valor ao usuário do tipo 
Double. Ou seja, os métodos podem ou não ter tipos definidos, bem como os atributos.
3.2.2 Relacionamentos
Em um diagrama de classes, os seus relacionamentos mostram como elas são de fato utilizadas. Entre os 
relacionamentos, têm-se as associações, a generalização, a dependência, a agregação e a composição.
41
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
3.2.2.1 Associação
A associação entre duas classes indica que há uma relação estrutural entre elas e são representadas por uma 
linha cheia que liga uma classe a outra. Essa linha pode ser rotulada, e a seta em sua extremidade indica a sua 
navegabilidade. Uma associação sem seta indica uma associação bidirecional, mas pode significar também 
que a navegabilidade não é importante (PRESSMAN; MAXIM, 2016). Assim, uma associação com uma seta em 
sua extremidade indica que é associação unidirecional, e uma seta nas duas extremidades indica uma relação 
bidirecional. A seta indica que uma classe pode acessar de forma fácil a classe para qual a seta aponta (PRESSMAN; 
MAXIM, 2016). Na figura a seguir, por exemplo, a conta pode acessar facilmente a Agência, pois nessa classe ela 
possui conhecimento da agência, o mesmo não é verdade ao contrário, pois a agência não conhece diretamente 
a conta. Pensando em nível de código, a declaração do objeto agência estará na classe conta, mas o contrário 
não é verdadeiro.
As associações podem conter multiplicidade, indicando a quantidade de objetos que elas suportam. A 
multiplicidade pode ser definida pela seguinte cardinalidade:
• 0..1: possui nenhum ou um objeto.
• 1: pode ter apenas um objeto.
• 0..*: possui nenhum ou vários objetos.
• *: muitos objetos.
• 1..*: possui no mínimo um objeto e, no máximo, vários.
A figura a seguir mostra o relacionamento entre as classes:
Figura 14 – Associação entre as classes
Fonte: Elaborada pelo autor.
42
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
Essa figura exibe o relacionamento das classes por meio da associação e multiplicidade entre agência e conta. 
Nesse caso, o diagrama mostra uma navegação direcionada, na qual uma agência tem várias contas e uma conta 
tem apenas uma agência. Além da associação unidirecional, é possível utilizar associações bidirecionais quando é 
interessante mostrar a navegabilidade pelos dois sentidos. A associação bidirecional, em geral, não é tão simples 
de codificar, pois é necessário que as duas propriedades se mantenham sincronizadas e, em um dos lados da 
associação, é preciso controlar o relacionamento. 
Em alguns casos, é necessário que seja explicitada a classe de associação, sendo que as classes de associação 
são geralmente utilizadas em relacionamentos muitos para muitos. Em relacionamentos de um para muitos, 
por exemplo, se tem um relacionamento binário, ou seja, um relacionamento apenas com duas classes. Porém, 
pode acontecer de ser necessário ter mais de uma classe nos relacionamentos, então têm-se os relacionamentos 
n-ários. Comumente, são vistos os relacionamentos ternários com três classes e quaternários com quatro classes 
relacionadas. Uma classe pode se relacionar com ela mesma, com as mesmas propriedades da associação, nesse 
caso, tem-se o autorrelacionamento.
Um detalhe importante a ser observado na figura Associação entre as classes é que 
a classeConta é uma classe abstrata, isso quer dizer que ela não pode ser instanciada 
diretamente. Para isso, é necessário ser utilizada por uma classe concreta, como ContaCorrente 
e ContaPoupanca. A classe abstrata na UML é representada pelo nome da classe em itálico.
Fique atento!
3.2.2.2 Dependência
Pode-se representar uma dependência de uma classe a outra por meio de uma linha tracejada e esta pode ou 
não conter rótulos ou setas (PRESSMAN; MAXIM, 2016). Ao fazer esse tipo de relacionamento, ao alterar uma 
classe, torna-se quase obrigatório alterar a classe dependente também.
Apesar da dependência entre as classes parecer algo ruim, em geral ela é bastante comum. Várias razões levam 
a dependência entre as classes, como: uma classe que envia uma mensagem para outra; uma classe que tem 
a outra como parte de seus dados; uma classe menciona uma outra como um parâmetro de uma operação 
(FOWLER, 2014).
A dependência caminha em única direção, ou seja, não é um relacionamento transitivo. Assim, temos a 
dependência ilustrada pela figura a seguir. As alterações feitas na ClasseA refletem na ClasseC e ClasseB. O 
mesmo não ocorre se a alteração for feita na ClasseB, em que apenas a ClasseC sofre com as mudanças. Se as 
mudanças ocorrerem na ClasseC, nenhuma das outras sofre com a alteração.
 
43
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
Figura 15 – Relação de dependência em classes UML
Fonte: Elaborada pelo autor.
Na figura “Associação entre as classes”, existe também uma dependência sendo indicada. 
Você consegue identificá-la? Observe a relação que existe entre agência e banco.
3.2.2.3 Agregação
Uma agregação é um tipo de associação que indica uma relação “todo/parte”. Ela é representada por uma linha 
com um losango branco na ponta. A classe que está na extremidade do losango é considerada o todo, e o da 
outra extremidade é considerada a parte (PRESSMAN; MAXIM, 2016). Na agregação, a relação entre as classes é 
fraca, o que sugere que um pode existir sem o outro, como mostra a figura a seguir.
Figura 16 – Exemplo de agregação em UML
Fonte: Elaborada pelo autor.
No exemplo da figura Exemplo de agregação em UML, é possível ver como o relacionamento entre as classes é 
fraco. Um ônibus pode ter várias pessoas, no caso, passageiros, porém os passageiros existem sem o ônibus e o 
ônibus existe sem os passageiros. A agregação é uma associação difícil.
44
Análise de Sistemas | Unidade 3 - Modelagem Estrutural 
3.2.2.4 Composição
A composição, ao contrário da agregação, apresenta um forte relacionamento entre a parte e o todo. Em uma 
composição, as partes não fazem sentido sem o todo. Na UML, ela é representada por uma linha cheia e, na 
extremidade do todo, um losango preto, como mostra a figura a seguir.
Figura 17 – Exemplo composição em UML
Fonte: Elaborada pelo autor.
Conforme a figura apresentada, é visto um forte relacionamento entre uma nota fiscal e os itens da nota fiscal. 
Nesse exemplo, os itens da nota só fazem sentido estando na nota fiscal, e a nota fiscal precisa de itens para ser 
gerada.
Existe uma certa confusão entre o uso da agregação e da composição. O uso da agregação

Outros materiais