Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

UML e o Processo Unificado de 
Desenvolvimento
Análise e Projeto de 
Software Orientado 
a Objetos
Diretor Executivo 
DAVID LIRA STEPHEN BARROS
Gerente Editorial 
CRISTIANE SILVEIRA CESAR DE OLIVEIRA
Projeto Gráfico 
TIAGO DA ROCHA
Autoria 
JOÃO DANILO NOGUEIRA
LEANDRO C. CARDOSO
AUTORIA
João Danilo Nogueira
Sou graduado em Ciência da Computação pela Faculdade 
Grande Fortaleza (FGF) e amo programar. Atualmente, o foco de minha 
expertise é na área de gerenciamento de projetos, teoria dos números, 
RSA e criptografia. Vai ser um prazer enorme ajudar VOCÊ a se tornar 
um excelente desenvolvedor de software ou administrador de banco 
de dados. Conte comigo para lhe ajudar nessa trajetória rumo ao seu 
desenvolvimento profissional! Muito sucesso para você. Conte comigo!
Leandro C. Cardoso 
Sou formado na Graduação em Comunicação Social com 
Habilitação em Design Digital, e mestrado em Tecnologias da Inteligência 
e Design Digital pela PUC-SP, com uma experiência em direção de arte 
e criação na área com mais de 20 anos. Passei por empresas, a exemplo 
da Laureate International Universities, FMU, FIAM-FAAM, Universidade 
Anhembi Morumbi, Universidade do Centro Paula Souza (FATEC-ETEC), 
DeVry Brasil, UNEF, FAESF, Faculdade Positivo, Uninter, Platos Soluções 
Educacionais S.A. (Krotonn - Universidade Anhaguera). Além disso, atuei 
como analista de Desenvolvimento Pedagógico Sênior, Coordenador 
de Curso Técnico de Comunicação Visual e Revisor Técnico e Validador 
para Curso EAD. Também sou autor de mais de 10 livros didáticos um dos 
organizadores da Maratona de Criação e Design do Curso de Comunicação 
Visual da ETEC Albert Einstein. Sou apaixonado pelo que faço e adoro 
transmitir minha experiência de vida àqueles que estão iniciando em suas 
profissões. Por isso fui convidado pela Editora Telesapiens a integrar seu 
elenco de autores independentes. Estou muito feliz em poder ajudar você 
nesta fase de muito estudo e trabalho. Conte comigo!
ICONOGRÁFICOS
Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez 
que:
OBJETIVO:
para o início do 
desenvolvimento de 
uma nova compe-
tência;
DEFINIÇÃO:
houver necessidade 
de se apresentar um 
novo conceito;
NOTA:
quando forem 
necessários obser-
vações ou comple-
mentações para o 
seu conhecimento;
IMPORTANTE:
as observações 
escritas tiveram que 
ser priorizadas para 
você;
EXPLICANDO 
MELHOR: 
algo precisa ser 
melhor explicado ou 
detalhado;
VOCÊ SABIA?
curiosidades e 
indagações lúdicas 
sobre o tema em 
estudo, se forem 
necessárias;
SAIBA MAIS: 
textos, referências 
bibliográficas e links 
para aprofundamen-
to do seu conheci-
mento;
REFLITA:
se houver a neces-
sidade de chamar a 
atenção sobre algo 
a ser refletido ou dis-
cutido sobre;
ACESSE: 
se for preciso aces-
sar um ou mais sites 
para fazer download, 
assistir vídeos, ler 
textos, ouvir podcast;
RESUMINDO:
quando for preciso 
se fazer um resumo 
acumulativo das últi-
mas abordagens;
ATIVIDADES: 
quando alguma 
atividade de au-
toaprendizagem for 
aplicada;
TESTANDO:
quando o desen-
volvimento de uma 
competência for 
concluído e questões 
forem explicadas;
SUMÁRIO
Diagramas da UML...................................................................................... 10
O que é um Diagrama? ...............................................................................................................10
Processo Unificado de Desenvolvimento de Software ............... 21
Conceituação ..................................................................................................................................... 21
Ciclo de Vida .......................................................................................................................................23
Concepção do Processo Unificado .....................................................30
A Fase de Concepção ................................................................................................................. 30
Estudo de Caso ............................................................................................................. 31
Desenvolvendo o Esboço do Projeto ........................................................... 36
Elaboração do Processo Unificado ......................................................39
A Fase de Elaboração ................................................................................................................. 39
Detalhamento da Fase ................................................................................................................43
7
UNIDADE
02
Análise e Projeto de Software Orientado a Objetos
8
INTRODUÇÃO
Você sabia que a área de processos unificados no desenvolvimento 
de software, é uns dos pilares para o entendimento e realização na 
prática da análise e projeto de softwares orientados a objetos? Isso 
mesmo. Mas, para isso, é importante o conhecimento prévio do conceito 
e das aplicações gerais da UML - Modeling Language, ou a Linguagem 
Unificada de Modelação em projetos orientados a objetos. É importante, 
além da teoria, executar a aplicação prática dos conceitos na estruturação 
de um processo unificado de desenvolvimento de software orientado 
a objetos, utilizando os diagramas e notações da UML - Linguagem 
Unificada de Modelação. Para isso, é relevante o conhecimento das 
técnicas de desenvolvimento unificado de sistemas. Entendeu? Portanto, 
ao longo desta unidade letiva, você vai mergulhar neste universo!
Análise e Projeto de Software Orientado a Objetos
9
OBJETIVOS
Olá. Seja muito bem-vindo à Unidade 2. Nosso objetivo é auxiliar 
você no desenvolvimento das seguintes competências profissionais até o 
término desta etapa de estudos:
1. Utilizar os diagramas da Linguagem de Modelação Unificada, bem 
como diferenciar seus usos e estéticas.
2. Discernir sobre o que é processo unificado de desenvolvimento de 
software, suas fases e as atividades de um fluxo de trabalho.
3. Identificar todos os procedimentos e características da fase de 
concepção de um processo unificado.
4. Aplicar todos os procedimentos e características da fase de 
elaboração de um processo unificado.
Análise e Projeto de Software Orientado a Objetos
10
Diagramas da UML
OBJETIVO:
Ao término deste capítulo, você será capaz de compreender 
e utilizar os diagramas da Linguagem de Modelação. 
Isto será fundamental para o exercício de sua profissão. 
E então? Motivado para desenvolver esta competência? 
Desta forma, vamos lá. Avante!
O que é um Diagrama?
Diagramas são elementos gráficos de uma linguagem de 
comunicação. Podemos utilizar diagramas em quase tudo em nosso dia 
a dia, desde em um simples organograma de um setor ou empresa, até 
em sofisticados fluxogramas que orientam como determinado processo 
irá funcionar em um programa de computador.
Você pode utilizar diagramas de todo tipo para se expressar, como 
é o caso dos mapas mentais, o qual é considerado uma técnica cognitiva. 
Os mapas mentais são diagramas bastante requisitados por professores 
e alunos, com o objetivo de facilitar o entendimento de aulas e assuntos 
lidos em livros didáticos. A UML - Linguagem Unificada de Modelação, 
utiliza de nove tipos de diagramas: 
1. Casos de uso; 
2. Classes;
3. Objetos; 
4. Estados; 
5. Sequência;
6. Colaboração; 
7. Atividade; 
8. Componente; 
9. Execução (MICROSOFT, 2018).
Análise e Projeto de Software Orientado a Objetos
11
Todo e qualquer sistema é composto por uma estrutura estática 
e um comportamento dinâmico. Considerando isso, a UML suporta os 
modelos de estrutura estática e dinâmica, além de abranger o modelo 
funcional, para isto, ela se prende a diagramas específicos (FOWLER, 
2007). Os responsáveis pelo modelo estático são os diagramas de 
classes e de objetos, que incluem toda a representação das classes e 
seus relacionamentos. A parte de modelação dinâmica se dá por meio de 
diagramas de estados, sequências,colaboração e atividades, enquanto a 
parte funcional é suportada pelos diagramas de componentes e execução. 
Figura 1 - Organograma, um exemplo de diagrama
Fonte: Nogueira (2018a, p. 14).
O diagrama de casos de uso descreve todos os elementos do 
sistema por meio de atores externos, casos de uso e processos, cabe 
aos atores o papel de representar entidades, como sistemas externos, 
usuários ou hardwares. São os atores que estabelecerão canais de 
comunicações com o sistema em cada caso de uso. Os casos de uso, 
por sua vez, representam sequências de ações a serem executadas pelo 
sistema, respondendo à comunicação dos seus respectivos atores.
IMPORTANTE:
Um diagrama de caso de uso serve para descrever e definir 
todos os requisitos funcionais de um sistema.
Análise e Projeto de Software Orientado a Objetos
12
A imagem a seguir representa um exemplo de diagrama de casos 
de uso. Neste exemplo, apenas um ator envolve-se com todos os casos 
de uso, mas poderiam ser vários. Além disso, tal figura descreve todas as 
funções possíveis para um ator externo a um sistema de controle bancário, 
sendo que o ator é o gerente desse sistema e é capaz de realizar cada 
uma das ações descritas nos balões de casos de uso.
Figura 2 - Exemplo de um diagrama de casos de uso de uma agência bancária, na qual o 
ator é o gerente da agência
Cadastrar 
cliente
Abrir conta 
corrente
Fechar 
conta corrente
Abrir 
poupança
Fechar 
poupança Cadastrar 
agência
Remover 
ou atualizar 
cliente
Remover 
ou atualizar 
operação
Cadastrar 
operação
Cadastrar 
dependente
Remover 
ou atualizar 
agência
Fonte: Nogueira (2018a, p. 14).
Assim, o diagrama de classes é utilizado para demonstrar 
graficamente a estrutura das classes criadas para o sistema modelado. 
Cada classe representa elementos gerenciados pela aplicação final. 
O diagrama de classes utiliza diversos relacionamentos, tais como 
associação, dependência, especialização, agrupamentos etc. 
Nesse sentido, o diagrama de classes mostra todos os 
relacionamentos, juntamente com as estruturas internas das classes, 
atributos e métodos. Somado a isso, ele é considerado estático, pois sua 
estrutura permanece a mesma em todos os ciclos de vida do sistema. 
Assim, a imagem a seguir representa um exemplo deste tipo de diagrama.
Análise e Projeto de Software Orientado a Objetos
13
Figura 3 - Exemplo de um diagrama de classes para um sistema de controle de locação de 
veículos
Cliente
Contrato de aluguel Veículo alugado
Companhia 
de aluguel de 
veículos
Caminhão Carro 
esportivo
Carro de 
passeio
Tipos de veículo
possui
Refere-se a
possui
1
1
0..*
0..*
0..1
Fonte: Nogueira (2018a, p. 17).
Os diagramas de classes, quando implementados em parceria com 
o desenvolvimento, normalmente já são desenhados contendo sintaxes 
e referências à linguagem de programação a ser aplicada ao projeto 
(MICROSOFT, 2018). 
IMPORTANTE:
Classes apenas irão aparecer em um diagrama se, e 
somente se, possuírem relacionamentos entre si.
Como sabemos, em um sistema, muitas classes não possuem 
relacionamento entre elas. Por conta disso, perceba que um sistema 
raramente possuirá apenas um diagrama de classes. No diagrama de 
objetos, objetos utilizados no sistema são demonstrados graficamente, 
além disso, esse diagrama expõe as instâncias das classes, traçando 
uma espécie de modelo do sistema em determinado momento. A 
imagem ilustrada adiante traz um exemplo de um diagrama de objetos, 
apresentando três deles referente a um sistema de controle de locação 
de veículos.
Análise e Projeto de Software Orientado a Objetos
14
Figura 4 - Exemplo de um diagrama de objetos do mesmo sistema de locação 
anteriormente apresentado
2679: Contrato de aluguel
Num_Contrato: 2679
Veículo: “Audi V8”
Pablo: Cliente
Nome: “Pablo F. Barros”
Idade:20
CPF: 941689121-05
2678: Contrato de 
aluguel
Num_Contrato: 2678
Veículo: “BMW 914”
Fonte: Nogueira (2018a, p. 18).
O diagrama de objetos não possui a importância de um diagrama 
de classes, mas, em sua composição, existem todos os relacionamentos 
definidos no diagrama de classes, com a exceção de que, no diagrama 
de objetos, temos modelos de valores finais se relacionando. Vale 
ressaltar também que esses diagramas são utilizados, geralmente, 
para exemplificar partes complexas dos relacionamentos, muitas vezes, 
utilizados como parte dos diagramas de colaboração.
Já o diagrama de estados é um complemento do diagrama de 
classes, mostrando todos os possíveis estados que um objeto pode 
demonstrar e quais eventos do sistema irão realizar modificações de 
estado. Esse diagrama, por mais que seja um complemento descritivo, 
raramente é desenhado para todas as classes do sistema, mas sim para 
aquelas que possuem números definidos de estados e que afetam o 
sistema de maneira diferente para cada estado. Adiante, você pode 
conferir um exemplo dele.
Análise e Projeto de Software Orientado a Objetos
15
Figura 5 - Exemplo de um diagrama de estado para um transeunte se deslocando entre 
dois andares
Chegar ao 
térreo
Chegar ao andar
Tempo de espera
Subir 
andar
Subir 
andar
Chegar ao 
andar
Descer 
andar
No térreo
Descendo
Subindo
Parado
Indo para 
o térreo
Fonte: Nogueira (2018a, p. 19).
Os diagramas de estados possuem o item chamado “Ponto de 
Início”, além de um, ou mais “pontos de finalização”. No diagrama da 
figura anterior, o ponto de início é representado por uma pequena 
circunferência simples. Já os pontos de finalização são representados por 
uma circunferência menor circunscrita em um círculo maior. 
Ainda no diagrama do exemplo, temos um clássico loop de 
informações, que nunca irá encontrar seu fim, por isto não apresentamos 
um exemplo de ponto de finalização. Além disso, o referido diagrama 
mostra os estados de um transeunte andando por um estabelecimento 
que possui dois andares, e explica como seria representado seu 
comportamento em cada uma das possibilidades de deslocamento.
No diagrama de sequência, é o utilizado para demonstrar 
colaborações dinâmicas entre objetos, a partir dele é possível observar-se 
toda a estrutura de mensagens enviadas entre os objetos. O diagrama de 
sequência é capaz de demonstrar a interação, o evento que ocorre, o que 
esse evento afeta e o que ocorrerá em determinados pontos do sistema. 
Ele também é chamado de Diagrama de Linha do Tempo, por ser capaz de 
mostrar todos os objetos protagonistas em uma linha horizontal e, abaixo 
dos mesmos, toda a linha cronológica de ações que irá desencadear um 
evento final.
Análise e Projeto de Software Orientado a Objetos
16
Figura 6 - Diagrama de sequência aplicado ao spooler de impressão
Computador
Servidor de 
impressão
Impressora Fila
Imprimir arquivo [Impressora livre]
Imprimir arquivo
[Impressora 
ocupada]
Imprimir arquivo
Fonte: Nogueira (2018a, p. 20).
No diagrama ilustrado na anterior, temos uma demonstração da 
sequência de passos para que um computador realiza para impressão 
de um arquivo. Perceba que o computador envia a mensagem para o 
servidor de impressão, que manda a mensagem para a fila da impressora, 
que se comunica com a impressora para verificar se ela está livre ou não, 
para somente então realizar a impressão.
Além disso, o diagrama de colaboração possui um formato mais 
limpo para se demonstrar um diagrama de sequência, ou seja, ele 
representa uma alternativa ao diagrama de sequência. Desta forma, ele é 
um pouco mais completo que o de sequência, pois, além de mostrar as 
mensagens do sistema, mostra também seus relacionamentos. 
Mas, em que situações deve-se utilizar um ou outro? O fator 
determinante para esta escolha está na função do tempo, isto é, se o 
diagrama for tratar de uma sequência de eventos que ocorre no tempo, o 
diagrama de sequência será a escolha mais adequada. Porém, se a função 
for contextual, o de colaboração é a escolha certa. Para exemplificarmos, 
vamos retomar o mesmo exemplo ilustradopara o diagrama de sequência, 
só que utilizando o diagrama de colaboração, neste caso, teríamos a 
seguinte ilustração com apresentando na figura a seguir.
Análise e Projeto de Software Orientado a Objetos
17
Figura 7 - Diagrama de colaboração de um spooler de impressão
Computador
Servidor de 
impressão Impressora 
Fila
1. Imprimir 
arquivo
[Impressora livre]
1.1 Imprimir arquivo
[Im
pr
es
so
ra
 oc
up
ad
a]
1.2
 A
rm
az
en
ar 
(ar
qu
ivo
)
Fonte: Nogueira (2018a, p. 21). 
Como podemos observar na ilustração da figura anterior, o modelo 
de colaboração é semelhante ao diagrama de objetos, listando vários 
objetos juntamente com os seus relacionamentos. A diferença é que, 
neste, não teremos a descrição de atributos e métodos, mas apenas as 
mensagens de comunicação. 
Note ainda que, no diagrama de colaboração do sistema de 
spooler de impressão da figura anterior, as mensagens estão numeradas, 
incluindo os estados que permitem as mensagens serem entregues ou 
não para determinado objeto, como, por exemplo, quando o estado do 
objeto Impressora for “Livre”, ela irá receber o comando de imprimir. Já 
quando o estado do objeto Impressora for “Ocupado”, a mensagem de 
armazenamento será enviada para o Objeto Fila.
Já o diagrama de atividades é aquele que descreve todas as 
ações do sistema e seus resultados. Todos os trabalhos executados em 
operações e atividades de instâncias de objetos são representados por 
este diagrama. Podemos dizer que o diagrama de atividades captura as 
ações e resultados causados pelas mudanças de estado do sistema. 
Análise e Projeto de Software Orientado a Objetos
18
Assim, enquanto o diagrama de estados. São cinco os objetos do 
diagrama de atividades: 
1. Capturar os trabalhos resultantes da execução de operações; 
2. Capturar os dados das ações de um objeto; 
3. Mostrar as formas de como as ações podem ser executadas e 
seus respectivos resultados; 
4. Mostrar como uma instancia de classe pode ser executada; 
5. Mostrar como um negócio funciona, através dos atores e fluxos.
A figura a seguir ilustra como o diagrama de atividades é capaz de 
representar determinado fluxo de atividades.
Figura 8 - Diagrama de colaboração de um spooler de impressão
Remover Caixa 
de Mensagem
Imprimir arquivo ()
(Di
sco
 ch
eio
)
(Espaço em disco)
^Impressora.Imprimir (arq)
Criar arquivo 
PostScript
Mostrar caixa 
de mensagem 
“Disco cheio”
Mostrar caixa 
de mensagem 
“Disco cheio”
Fonte: Nogueira (2018a, p. 22).
Já o diagrama de componentes é um diagrama que, juntamente 
com o diagrama de execução, demonstra o lado funcional do sistema, seu 
objetivo é descrever todos os componentes do sistema e as dependências 
entre os mesmos. Entende-se por componente toda a estruturação lógica 
de parte do sistema, definido por arquivos de código (como uma classe 
completa e suas ações), uma biblioteca (ou uma estrutura linguística), e 
de partes da implementação da arquitetura física. 
Análise e Projeto de Software Orientado a Objetos
19
Este diagrama mostra os componentes unicamente como tipos, 
sendo que ele se diferencia do diagrama de execução, que mostra as 
instâncias executáveis. Geralmente, componentes representam as partes 
visíveis do sistema, de modo que outros componentes possam enxergar 
e utilizar. A ilustração seguir expressa um exemplo deste tipo de diagrama.
Figura 9 - Exemplo de diagrama de componentes
Gerenciador 
de banco de 
dados
Db.dll
Aplicação
App.excel
Gerenciador de 
comunicação
Comm.dll
Gráficos
Graficos.dll
Fonte: Nogueira (2018a, p. 23).
O diagrama de execução é o responsável por descrever graficamente 
toda a arquitetura física do sistema, além de como o software se relaciona 
com esta arquitetura. Ele ainda descreve os tipos de conexão utilizados 
para realizar a comunicação entre artefatos, como pode ser observado no 
exemplo ilustrado na figura a seguir.
Análise e Projeto de Software Orientado a Objetos
20
Figura 10 - Exemplo de um diagrama de execução
Fonte: Nogueira (2018a, p. 23).
Para que um software seja desenvolvido, é importantíssimo que 
todos os seus requisitos sejam devidamente diagramados, para que o 
resultado final se aproxima ao máximo das necessidades iniciais definidas 
no escopo do projeto.
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu mesmo 
tudinho? Agora, só para termos certeza de que você 
realmente entendeu o tema de estudo deste capítulo, 
vamos resumir tudo o que vimos. Você deve ter aprendido 
que como são desenvolvidas as notações e representações 
gráficas dos diagramas que compõem a UML. Vimos 
que a UML possui notações e regras bem detalhistas, 
que permitem descrever e demonstrar diversos modelos 
orientados a objetos. Realizar a descrição de um sistema 
em UML não prescreve a ação de implementar, já que a 
UML faz parte da zona de planejamento do projeto. Assim, 
podemos afirmar que a UML responde de forma rápida e 
direta “O que fazer?”, “Como Fazer?”, “Quando Fazer?” e “Por 
que deve ser Feito?”, além de demonstrar quantas serão as 
atividades e a ordem em que devem ser executadas. De 
maneira geral a UML se utiliza de um conjunto de diagramas 
para estruturar o projeto de maneira compreensível a todos, 
tanto aos profissionais da área de TI, quanto aos usuários e 
demais atores do sistema em desenvolvimento.
Análise e Projeto de Software Orientado a Objetos
21
Processo Unificado de Desenvolvimento 
de Software
OBJETIVO:
Ao término deste capítulo, você será capaz de compreender 
o que é um processo unificado de desenvolvimento de 
software, suas fases e as atividades de um fluxo de trabalho. 
Isto será fundamental para o exercício de sua profissão. 
E então? Motivado para desenvolver esta competência? 
Então vamos lá. Avante!.
Conceituação
O processo unificado é um conjunto de atividades necessárias para 
unir todos os processos relacionados a um projeto, em prol da entrega 
de um produto final. A UML é apenas uma linguagem de modelagem 
utilizada para criar e ler modelos bem formados, referentes a sistemas 
planejados. Sua estrutura impede que seja definida a cronologia da 
criação e a definição dos quais realmente precisam ser implementados. 
Assim, a atividade de desenvolvimento de software acaba por cair nas 
mãos do processo unificado, que já se utiliza de modelos de UML para 
fins de implementação (BRAZ, 2006). O processo unificado apresenta três 
características que o torna indicado para trabalhar ao lado da UML: 
1. Orientação a casos de uso; 
2. Arquitetura centrada; 
3. Processo iterativo incremental.
Para avançarmos no tema de processo unificado de desenvolvimento 
de software, é importante revisar os conceitos de processo orientado a 
casos de uso, que se trata de um agrupamento de dados cuja finalidade 
é a de descrever uma funcionalidade do sistema. 
Análise e Projeto de Software Orientado a Objetos
22
Também é importante salientar que a um conjunto de casos de 
uso em determinado contexto, quando interage com um ator, atribui-se o 
nome de diagrama de casos de uso. Em outras palavras, um diagrama de 
casos de uso é uma descrição de como determinado sistema funciona, 
e como ele interage com cada tipo de ator, seja ele um usuário ou um 
sistema externo.
Já se tratando de um processo orientado a casos de uso, todo o 
desenvolvimento do projeto visa atender às especificações e reações 
que o ator irá necessitar. Em termos práticos, desenvolvemos módulos 
do sistema para atender cada caso de necessidade, envolvendo cada 
diagrama de caso de uso, obedecendo cada uma de suas exigências, 
para que, ao final, quando unidos, os módulos possam compor todas as 
interações dos atores externos. 
A grande vantagem de um processo orientado a casos de uso é a 
garantia de que um sistema não terá funções desnecessárias, pois toda 
a funcionalidade foi definida por meio da análise sucinta da UML. Desta 
forma, o processo irá seguir todo um fluxo planejado de desenvolvimento,ou seja, os fluxos de trabalho pelos quais o processo irá passar estarão 
definidos e bem empregados.
Sobre o processo centrado na arquitetura, a arquitetura de software 
engloba todos os conceitos significativos do sistema, crescendo de acordo 
com as necessidades de um determinado projeto de desenvolvimento. 
As mudanças de arquitetura atingem diretamente os casos de uso do 
sistema, afetando o desenvolvimento e planejamento do projeto final. A 
arquitetura é influenciada por todos os fatores relacionados ao sistema, 
desde a plataforma até as modularizações criadas pelo software.
IMPORTANTE:
Quando falamos de arquitetura, seja ela a arquitetura de um 
prédio, ou a arquitetura de um sistema, estamos falando de 
uma visão geral de como o projeto se mostra, salientando 
suas características mais importantes.
Análise e Projeto de Software Orientado a Objetos
23
Quando traçamos o relacionamento entre a arquitetura e os casos 
de uso do sistema, percebemos que todas as funcionalidades do sistema, 
descritas nos casos de uso, fazem parte da arquitetura. Então, finalmente, 
abstraímos que o conjunto de casos de uso do sistema define parte 
da arquitetura do software, pois deve haver sempre um balanço entre 
funcionalidade e forma. De maneira geral, um sistema é dito inteligente 
quando sua arquitetura é planejada pensando em possíveis evoluções e 
mudanças, para que, caso ocorram, não venham a ser dificultosas nem 
complexas para serem implantadas.
Já no processo iterativo e incremental, a modularização do sistema 
é a forma mais prática e cômoda de se trabalhar no sistema como um todo. 
Por meio do processo de modularização, criamos pequenos projetos com 
problemas menores, que podem ser também modularizados e facilmente 
solucionados. Desse modo, é possível solucionar problemas bem mais 
complexos essas modularizações são iterativas e incrementais, pois, 
quando juntas, apresentam o resultado final.
DEFINIÇÃO:
Interativo é tudo aquilo que se repete (o mesmo que cíclico 
ou repetitivo) e incremental é tudo aquilo que é adicionado 
de um valor constante a cada novo ciclo.
É importante sempre perceber que cada iteração deve envolver 
casos de uso relevantes, pois, caso contrário, acabam por ser 
desnecessárias, gerando retrabalho. Iterações bem desenvolvidas 
reduzem os riscos e, consequentemente, os custos, a violação de prazos 
e o tempo de desenvolvimento como um todo.
Ciclo de Vida
Para a aplicação de um processo unificado, há de se compreender 
que ele é, na verdade, a reaplicação constante de uma série de ciclos 
que regem toda a vida do sistema. Cada ciclo é responsável pela entrega 
Análise e Projeto de Software Orientado a Objetos
24
de uma versão do sistema, geralmente subdividida em quatro fases: 
Concepção, Elaboração, Construção e Transição. 
Cada uma dessas fases é subdividida em processos de iteração, 
em um total de cinco processos, chamados de fluxos de trabalho, são 
eles: Requisitos, Análise, Projeto, Implementação e Teste. 
Figura 11 - Cada ciclo é responsável pela entrega de uma versão do sistema
Fonte: Nogueira (2018b, p. 23).
Os fluxos de trabalho não são exclusivos, pois eles devem ser 
desenvolvidos simultaneamente, conforme as iterações das fases vão 
se aplicando. Aqui, chamamos de Iterações os pequenos módulos do 
sistema, desenvolvidos dentro de cada fase. Durante todo o ciclo de 
vida do projeto, diversas iterações são aplicadas. Cada iteração gera uma 
Análise e Projeto de Software Orientado a Objetos
25
chamada “versão” do sistema, criando produtos executáveis que são, na 
verdade, subprodutos do projeto final.
Sobre os fluxos de trabalho do ciclo de vida do projeto, para 
compreendermos bem o que vem a ser um fluxo de trabalho, vamos tomar 
algumas definições preliminarmente, tais como as fases que compõem 
um fluxo de trabalho, a saber: Requisitos, Análise, Projeto, Implementação 
e Teste.
Figura 12 - Diagrama de um fluxo de trabalho
Fonte: Nogueira (2018b, p. 23).
É importante salientar que todos os requisitos do sistema devem 
ser especificados neste fluxo, por meio de entrevistas que gerem a lista 
de necessidades dos usuários e clientes. Esses requisitos estão todos 
expressos nos diagramas de casos de uso.
IMPORTANTE:
Lembre-se. Os atores do diagrama são usuários do sistema 
e cada caso de uso é uma funcionalidade.
Durante a concepção, os casos de uso mais relevantes determinam 
os domínios do sistema, a elaboração ajuda a pôr na prática a codificação 
dos casos de uso. Em sua construção, é realizada a “costura” de toda 
Análise e Projeto de Software Orientado a Objetos
26
a implementação para que comecem a funcionar como um sistema 
completo.
Como pode ser observado na figura anterior, a fase de transição 
é também chamada de fase de adaptação, é nesta fase nos quais 
os requisitos que sofreram mudanças são identificados. O fluxo de 
requisitos é mais constante durante as fases de Concepção e Elaboração. 
Normalmente, essas são as fases em que há a coleta, e começa a haver 
diminuição conforme a fase de construção vai se elaborando.
Já o modelo de análise refina os requisitos especificados, por meio 
dos diagramas de classes, ele argumenta quais os tipos de implementação 
que serão realizadas. É o diagrama de análise que define como os estados 
do Diagrama de Estados irão se comportar, e como as interações irão 
ocorrer. 
Durante a fase de concepção, o diagrama de análise é uma 
formalidade, ele passa a se tornar importante a partir da fase de elaboração, 
quando, na prática, os códigos começam a ser desenvolvidos. Como 
pode ser observado na figura anterior, o modelo do fluxo de análise é de 
crescimento incremental. Se o colocarmos em gráficos, a fase de análise 
possuirá uma grande saliência durante a fase de elaboração, e, então, 
decrescerá em sua massa, conforme as fases vão se desenvolvendo.
Figura 13 - O diagrama de análise é importante a partir da fase de elaboração no momento 
que os códigos começam a ser desenvolvidos
Fonte: Freepik.
Análise e Projeto de Software Orientado a Objetos
27
Em relação ao projeto, é no fluxo de projeto que o sistema começa 
a ser moldado conforme sua forma, essa forma é definida para atender as 
necessidades dos requisitos e da análise. O foco da fase de projeto é o 
final da fase de elaboração, quando todas as definições já foram descritas 
e o projeto pode começar a ser aplicado com foco no produto final. 
E, na implementação, é o fluxo pelo qual os componentes do 
projeto são desenvolvidos. Esse fluxo se limita a integrar o sistema em 
cada iteração, implementar os subsistemas, testar implementações e 
integrá-las. A maior evidência do fluxo de implementação está na parte 
de construção, que é quando o projeto é propriamente desenvolvido em 
código e prática, mantendo-se até a fase de transição para a correção de 
erros.
Figura 14 - Na implementação, é o momento que os componentes do software orientado a 
objetos são desenvolvidos
Fonte: Freepik.
Já o fluxo de teste é um dos mais importantes do sistema. É 
nesta fase que verificamos se todas as exigências e necessidades estão 
sendo atendidas. Nela, são realizadas ações em todos os componentes 
Análise e Projeto de Software Orientado a Objetos
28
executáveis do sistema, com o intuito de garantir que estejam realizando 
suas funções de maneira correta. Esse fluxo consiste em uma sequência 
lógica de testes com o objetivo de analisar todos os resultados, verificando 
todos os componentes do sistema. Aqui, são identificados erros de 
concepção e implementação. 
Figura 15 - No fluxo de teste, é verificado se todas as exigências e necessidades estão 
sendo atendidas
Fonte: Freepik.
Os testes de sistema começam na fase de elaboração, quando a 
arquitetura já está definida e os resultados finais já podem ser logicamente 
enxergados. É um fluxo que se estende até o final da fase de construção, 
mantendo-se na fase de transição para corrigirpossíveis erros.
Análise e Projeto de Software Orientado a Objetos
29
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo deste 
capítulo, vamos resumir tudo o que vimos. Você deve ter 
aprendido que um processo unificado de desenvolvimento 
de sistemas tem como objetivo garantir que o sistema 
possa ser desenvolvido. Mas de forma enxuta e sucinta, 
assegurando a eficácia de cada uma das fases, desde a 
definição e análise dos requisitos, até o teste do sistema 
como um todo. Também é importante compreender o 
conceito de processo, que se trata de um conjunto de 
ações continuadas, divididas em passos que definem algo 
a ser feito, quando será feito e como será feito. Sob a ótica 
da Engenharia de Software, um processo é uma tentativa 
incessante de entregar o produto final de um projeto, 
capaz de atender as necessidades de um cliente ou de um 
negócio. Mas, ao falarmos em algo unificado, vem a nossa 
mente o conceito de unitariedade, o que não é errado se 
pensar. Então, um processo unificado nada mais é do que 
um conjunto de atividades necessárias para unir todos os 
processos relacionados a um projeto, em prol da entrega 
de um produto final, que no caso de nosso estudo um 
software orientado a objetos..
Análise e Projeto de Software Orientado a Objetos
30
Concepção do Processo Unificado 
OBJETIVO:
Ao término deste capítulo, você será capaz de compreender 
alguns procedimentos e características da fase de 
concepção de um processo unificado. Isto será fundamental 
para o exercício de sua profissão. E então? Motivado para 
desenvolver esta competência? Então vamos lá. Avante!.
A Fase de Concepção
Para o desenvolvimento de um projeto, como, por exemplo, 
de software orientado a objetos, o pensamento claro é a chave de 
determinação, é na fase de concepção em que é utilizada a lógica, a 
análise e o planejamento para delimitar o chamado “escopo do projeto”. 
É a partir do escopo que o projeto passa a ser desenvolvido, sendo 
determinado até onde ele irá cobrir e cumprir o que se pede. 
A maior concentração da fase de concepção está no fluxo de requisitos, 
pois a definição de todos os requisitos concebe o sistema como um todo. 
Além disso, é ao final desta fase que é avaliado se um processo deve ser 
seguido em plena escala. Antes de lançarmos um exemplo prático de tudo 
isto sobre o qual estamos falando, vamos relembrar o que representa cada 
fase do processo unificado de desenvolvimento de sistemas. 
 • A fase de requisitos: este é o fluxo mais importante da fase de 
concepção e, quando bem executado, torna-se o cerne de todo o 
projeto a ser desenvolvido, cabendo a esta fase o detalhamento de 
todos os requisitos.
 • A fase da análise: nesta fase, é criado um modelo de análise inicial, por 
meio dos detalhamentos realizados no fluxo de requisitos;
 • A fase do projeto: é o momento em que os primeiros esboços do 
projeto começam a tomar forma; 
 • A fase de implementação e de teste: nessas fases, são realizadas, 
respectivamente, a codificação e a identificação dos erros cometidos 
durante a execução dos módulos do sistema.
Análise e Projeto de Software Orientado a Objetos
31
Estudo de Caso
Vamos elaborar um exemplo prático de concepção, de um jogo 
chamado Pokémon, cujo objetivo é realizar batalhas entre criaturas que 
possuem características e habilidades diferentes (SOUZA, 2016). Vamos 
tomar este jogo como base para desenvolver nossa concepção, neste 
jogo, temos um ator externo chamado “Treinador”, que tem cinco funções: 
1. Ver Pokémon;
2. Capturar Pokémon;
3. Desafiar Treinadores;
4. Mudar de Local; 
5. Libertar Pokémon.
O diagrama de casos de uso de um treinador pode ser descrito da 
maneira expressa no diagrama ilustrado na figura a seguir. 
Figura 15 - Diagrama descrevendo as cinco funcionalidades do Pokémon
Ver Pokemons
Capturar 
Pokemon
Desafiar 
Treinador
Treinador
Mudar de 
Local
Libertar 
Pokemon
Fonte: Nogueira (2018c, p. 14).
Análise e Projeto de Software Orientado a Objetos
32
Além disso, o jogo tem um segundo ator, chamado Pokémon, que 
possui as ações: 
1. Atacar; 
2. Evoluir; 
3. Fugir.
Veja como pode ser exemplificado as ações do segundo ator 
segundo na figura a seguir.
Figura 16 - Ações possíveis ao Pokémon
Atacar
Fugir Evoluir
Pokemon
Fonte: Nogueira (2018c, p. 14).
O fluxo de requisitos é definido com base no diagrama de casos de 
uso, no caso, os diagramas ilustrados nas figuras anteriores, existirão duas 
superclasses que irão gerir o sistema: 
1. Pokémon; 
2. Treinador.
Há um diagrama de classes que generaliza os pokémons da 
seguinte maneira exemplificado na figura a seguir.
Análise e Projeto de Software Orientado a Objetos
33
Figura 17 - Generalização da superclasse Pokémon
Pokemon
Água Fogo Planta
Squirtle Chamander Bulbasaur
Fonte: Nogueira (2018c, p. 15).
De maneira análoga, há um diagrama de classes que generaliza os 
treinadores, como pode ser observado na ilustração a seguir.
Figura 18 - Generalização da superclasse Treinador
Treinador
Jogador Aleatório Ginásio
Fonte: Nogueira (2018c, p. 15).
Analisando as informações compiladas até este ponto, podemos 
concluir que serão necessárias 7 classes para tratarmos pokémons e 4 
classes para tratarmos treinadores. Claro que o sistema está totalmente 
simplificado, pois, para sua implementação, seriam necessárias as regras 
e definições de atributos e métodos. Em uma análise preliminar, as 
informações nos dizem que um pokémon possui uma série de atributos, 
tais como:
Análise e Projeto de Software Orientado a Objetos
34
 • Vida; 
 • Nível; 
 • Ataque; 
 • Defesa; 
 • Ataque Especial; 
 • Defesa Especial; 
 • Nome; 
 • Tipo; 
 • Evolução (SOUZA, 2016). 
Cada subclasse de Pokémon traz características exclusivas dos 
tipos definidos, como: 
 • Fraquezas; 
 • Vantagens; 
 • Habilidades especiais (SOUZA, 2016). 
Cada Subclasse dos tipos é referida como espécie e traz consigo 
uma lista de características que diferenciam as espécies, como habilidades 
específicas, um treinador é separado em três distinções: 
1. Jogador, quando é o perfil do usuário; 
2. Ginásio, quando é um membro ou líder do ginásio; 
3. Aleatório, quando não faz parte de nenhuma agregação.
Avaliando um diagrama de classes mais detalhado, podemos 
observar a formação descrita na ilustração apresentada na figura a seguir.
Análise e Projeto de Software Orientado a Objetos
35
Figura 19 - Diagrama de classes do Pokémon
Água
Fraqueza: String (planta)
Vantagem: String (fogo)
Tipo: String (Água)
Pokemon
Nome: String
Tipo: String
Evolução: String
Vida: Inteiro
Nível: Inteiro
Ataque: Inteiro
Defesa: Inteiro
SAtaque: Inteiro
SDefesa: Inteiro
Vantagem: String
Fraqueza: String
Fogo
Fraqueza: String (água)
Vantagem: String (planta)
Tipo: String (fogo)
Planta
Fraqueza: String (fogo)
Vantagem: String (água)
Tipo: String (planta)
Fonte: Nogueira, 2018c, p. 17.
Perceba, na ilustração da figura anterior, que as subclasses 
elementares herdam todas as características da classe Pokémon, as 
classes elementares utilizam a característica de polimorfismo para 
modificar valores padrões definidos na superclasse. Já no caso da classe 
Treinadores, teremos o diagrama ilustrado na próxima figura.
Figura 20 - Diagrama de classes do Pokémon
Jogador
Insignias: Inteiro
Treinador
Nome: String
Pokemon: Pokemon
Local: String
Pokemons: Inteiro
Aleatório
Derrotado: boolean
Ginásio
Tipo: String
Líder: boolean
Fonte: Nogueira (2018c, p. 17).
Análise e Projeto de Software Orientado a Objetos
36
Definidas de classes do sistema, poderemos, então, começar a 
detalhar o projeto como um todo.
Desenvolvendo o Esboço do Projeto
Um exemplo de como pode ser desenvolvido o projeto de batalhas 
do jogo Pokémon, poderá será escrito em linguagem PHP, com suporte ao 
banco de dados MySQL, executados por meio de uma rotina de suporte 
APACHE.A escolha da rotina APACHE se dá pelo motivo de que o projeto 
será desenvolvido em uma plataforma web, que é conhecida por dar um 
retorno instantâneo em termos de resultados, o que é extremamente 
válido para quem está apenas aprendendo. 
A linguagem PHP foi a escolhida por ser de fácil compreensão, além 
de conseguir se ligar facilmente ao HTML, podendo criar um pequeno 
sistema compatível com o navegador, tornando-o rápido e enxuto. 
Também há o suporte de gerar um website futuro para dar continuidade 
ao projeto, até o seu término. Em que pese o fato de a linguagem PHP 
não ser propriamente orientada a objetos, ela pode ser utilizada nesta 
modalidade de programação, portanto, atende o requisito mínimo de 
implementação com base em uma modelagem UML, aplicada a um 
modelo de processo unificado de desenvolvimento de software.
É importante salientar que o nosso foco aqui não é o ensino da 
linguagem de programação PHP, que estará sendo utilizada apenas para 
dar suporte e não como protagonista do nosso processo de aprendizagem. 
Os fragmentos de código que serão inseridos para demonstrar os artefatos 
e componentes do sistema serão explicados em termos de lógica, e não 
de sintaxe.
O nosso sistema irá consistir em uma plataforma de batalhas, 
dotada de treinadores e seus pokémons. O usuário, como treinador, irá 
possuir um pokémon e poderá desafiar outros treinadores, desenvolvidos 
com uma pequena inteligência artificial e controlados unicamente pelo 
computador. Os treinadores podem fazer parte de um ginásio ou serem 
treinadores locais, cada treinador pode possuir até seis pokémons, no 
máximo, cada pokémon possui duas habilidades, sendo uma física e 
outra especial. Caso haja um desafio de ginásio, e ele seja bem-sucedido, 
Análise e Projeto de Software Orientado a Objetos
37
uma insígnia (distintivo qualquer, como uma medalha, por exemplo) será 
gerada. O pokémon é capaz de subir de nível e, atingindo um certo nível, 
passará por um processo de evolução.
O ginásio possui um líder, este status de liderança é o desafio final 
para destravar a insígnia. As batalhas levam em consideração as vantagens 
e fraquezas, além de considerar os atributos de ataque, defesa, ataque 
especial e defesa especial. O nível impulsiona ou reduz os possíveis 
danos, por meio de cálculos a serem descritos mais adiante. O treinador 
do jogador pode transitar entre locações, definidas como cidades, cada 
cidade terá seus pokémons exclusivos, treinadores diferentes e ginásios. 
O jogo se encerra quando o jogador conseguir a oitava insígnia.
Depois de concluir a fase de concepção, podemos começar a nos 
concentrar em outras etapas, inicialmente, temos que avaliar quais serão 
as peculiaridades sobre as quais manteremos nosso foco na Fase de 
Elaboração. 
Análise e Projeto de Software Orientado a Objetos
38
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo deste 
capítulo, vamos resumir tudo o que vimos. Você deve ter 
aprendido que os fluxos de trabalho definem todas as 
possíveis atividades e onde cada uma terá maior influência, 
todo o processo geralmente é dividido em quatro fases, 
compondo os ciclos de vida do projeto. Ao final de cada 
fase há um ponto de verificação que checa se todos os 
artefatos necessários foram desenvolvidos e aplicados, 
realizando então o avanço, ou não, para a próxima fase. É 
importante destacar que a Fase de concepção é totalmente 
focada em conceitos e teorias, lembrando de que ela não 
é definitiva, ou seja, a qualquer momento, velhos conceitos 
poderão ser redefinidos para que possam ser realmente 
aplicados no corpo do projeto. Seja quaisquer projetos de 
análise e projeto de software orientados a objetos, como 
por exemplo, o apresentado neste tópico especificamente 
de um jogo, o pókemon, que também é considerado com 
um software.
Análise e Projeto de Software Orientado a Objetos
39
Elaboração do Processo Unificado
OBJETIVO:
Ao término deste capítulo, você será capaz de 
compreender alguns procedimentos e características da 
fase de elaboração de um processo unificado. Isto será 
fundamental para o exercício de sua profissão. E então? 
Motivado para desenvolver esta competência? Então 
vamos lá. Avante!
A Fase de Elaboração
É na fase de elaboração que os requisitos ainda não definidos na 
concepção são incorporados ao plano, é a etapa no qual tudo irá se iniciar. 
Nesta fase, ignoraremos os detalhes do sistema e enxergamos as fronteiras 
mais distantes que ele irá atingir, evitando que coisas desnecessárias 
sejam imaginadas. O real foco desta fase é a de criar uma base firme, 
sobre a qual o sistema começará a ser implementado e ganhará força 
para se tornar o que deve ser. 
Ao completarmos a fase de elaboração, o sistema já apresentará 
uma arquitetura-base bem estabelecida seu escopo estará bem definido 
e seus detalhamentos começarão a ser implementados. Os riscos 
deverão ser avaliados com cautela e, para cada um, uma solução deverá 
ser planejada, com o intuito de que eles não atrapalhem o andamento do 
projeto. Assim como a concepção, a elaboração também é dividida em 
seus 5 fluxos, sendo eles:
1. Requisitos; 
2. Análise; 
3. Projeto; 
4. Implementação; 
5. Testes (BRAZ, 2006).
Análise e Projeto de Software Orientado a Objetos
40
O fluxo de requisitos, na fase de análise, é um dos principais objetivos 
a ser alcançado, os requisitos pré-estabelecidos na fase de concepção 
são analisados novamente para a checagem de faltas e complementos, 
para então serem reaplicados ao projeto. Todos os casos de uso adicionais 
devem ser analisados e estruturados de forma a apresentar um plano de 
como devem ser implementados. Os casos de uso adicionais vão formar 
a maior parte do sistema, já que englobam comunicações com o banco 
de dados, comunicações com hardware, processos de comunicação do 
sistema com o usuário, entre outros.
Figura 21 - Os requisitos pré-estabelecidos na fase de concepção são analisados 
novamente
Fonte: Freepik.
Nem todos os casos de uso do sistema vão ser detalhados nesta fase, 
salvo se o projeto for declarado como “Projeto de Escopo Fechado”, neste 
caso, outro conceito vem à tona: “Escopo Aberto”. Os projetos de escopo 
aberto são os mais utilizados, pois estão em constante desenvolvimento, 
e cada modificação de escopo impacta no valor final do sistema. 
Análise e Projeto de Software Orientado a Objetos
41
Já no caso dos projetos de escopo fechado, o escopo já está 
inteiramente definido. Geralmente, quando tratamos deste tipo de projeto, 
especificamos todo o sistema de forma a deixar claro o que realmente 
será desenvolvido, e como será desenvolvido. Qualquer modificação é 
considerada um aditivo ao projeto. Quanto menos casos de uso forem 
detalhados na fase de concepção, maiores serão os riscos, quanto mais 
casos de uso forem detalhados, menores serão esses riscos, porém, o 
impacto no custo do projeto será enorme.
IMPORTANTE:
Conforme os casos de uso forem sendo detalhados, 
possíveis redundâncias e processos desnecessários 
provavelmente começarão a ser cortados, tornando a 
experiência de desenvolvimento mais dinâmica.
Chegado o fluxo de análise, o foco será voltado para os casos 
de uso mais relevantes para o sistema, esses casos de uso são os mais 
movimentados, tendo suas classes e objetos como protagonistas de todo 
o desenvolvimento.
Figura 22 - Na análise, o foco é voltado para os casos de uso mais relevantes para o sistema
Fonte: Freepik.
Análise e Projeto de Software Orientado a Objetos
42
No projeto, é chegada a hora de começar o desenvolvimento dos 
casos de uso analisados, é na fase de projeto da elaboração que as 
classes, subclasses, objetos e subsistemas começam a ser envolvidos 
diretamente. Vale salientar que, até este momento, nada foi realizado 
na parte estrutural do código do projeto, apenas estudose análises 
conceituais são aplicadas até esta fase.
Figura 23 - Na fase de projeto da elaboração, as classes, subclasses, objetos e subsistemas 
começam a ser envolvidos diretamente
Fonte: Freepik.
É no fluxo de projeto da elaboração que o arquiteto do sistema deve 
começar a segregar as classes em pacotes de trabalho, que, mais adiante, 
desempenharão seu papel no desenvolvimento do projeto. É bem lógico 
adivinhar que um projeto possui classes não relevantes, o que realmente 
ocorre. Porém, o agrupamento dessas classes é extremamente relevante, 
daí a necessidade de se criar pacotes de trabalho com agregações dessas 
classes. 
Análise e Projeto de Software Orientado a Objetos
43
Na implementação ou fase de elaboração, finalmente, os dados 
começam a ser codificados e inseridos. Nesta fase, a elaboração irá cuidar 
de desenvolver todas as classes mais significantes e tratar de aplicar suas 
funcionalidades. Já no fluxo de testes, as classes criadas são testadas de 
maneira minimalista e detalhada, tornando sua usabilidade extremamente 
confiável e preparando o sistema para a próxima fase.
Detalhamento da Fase
A Fase de elaboração engloba o planejamento e modelagem do 
sistema. A elaboração é a fase que refina e expande os casos de uso, 
além de cria uma representação arquitetural do projeto, seus principais 
objetivos são: 
 • A criação da Linha de Base da arquitetura;
 • A determinação e combate dos riscos em potencial;
 • A definição dos componentes do sistema; 
 • A diagramação e descrição das partes reutilizáveis (FOWLER, 
2007).
Esta fase gera diversos artefatos que são utilizados pelas fases 
seguintes, dentre os principais estão: 
 • Os protótipos do sistema; 
 • Os arquivos base, que servirão como modelos de teste e modelos 
de aprimoramento; 
 • Os modelos de design, tanto de interfaces, para começar a definir 
qual o visual que será apresentado para o usuário final, quanto o 
de código, definindo regras de diagramação de sintaxe;
 • Os modelos de dados, determinando as estruturas das classes, 
seus atributos e métodos, já inicializando as capacidades de cada 
classe, deixando o caminho bem delimitado para a aplicação dos 
casos de uso; 
 • Um modelo de implantação, que é definido como um mapa de 
como o projeto deve ser implantado.
Análise e Projeto de Software Orientado a Objetos
44
A Fase de concepção irá retornar diversos resultados que serão 
utilizados pela fase de elaboração para dar prosseguimento ao processo, 
como por exemplo, uma lista inicial de requisitos, atores, objetivos e 
casos de uso importantes. Além disto, é de se esperar uma descrição 
resumida dos demais casos de uso, para aprimoramento, os requisitos 
mais influentes e os que podem causar maior risco. 
A fase de concepção também irá criar uma primeira versão da 
visão e especificação suplementar, ou seja, se o cliente realizar um 
questionamento sobre os resultados do processo, os responsáveis 
podem defender suas marcas. Caso o projeto seja extremamente extenso, 
é também a fase de concepção que irá enviar os dados de protótipos 
para a fase de elaboração aprimorá-los, além de enviar uma lista de 
recomendações do que comprar, construir ou reutilizar. Já a fase de 
elaboração tem como objetivos principais:
 • Descobrir e listar a maioria dos requisitos; 
 • Eliminar os riscos; 
 • Implementar os elementos centrais. 
Isto não significa que tudo ficará pronto ao final desta fase, pelo 
contrário, aqui é dado apenas um pontapé inicial para a construção das 
fases seguintes. A fase de elaboração irá selecionar um dos casos de uso 
enviados pela fase de concepção, para utilizá-lo como inicial.
IMPORTANTE:
Sempre é escolhido um caso de uso simples, sem muitos 
riscos, mas em situações emergenciais, pode-se optar 
pelos mais complexos.
Todos os protótipos criados na fase de concepção são descartáveis, 
pois são apenas modelos a serem desmistificados e aplicados, porém, 
na fase elaboração, todos os protótipos já fazem parte do sistema, ou 
seja, eles já são pequenos subconjuntos do sistema final. Para manter 
tudo funcionando como dever ser, inicialmente, os módulos do sistema 
Análise e Projeto de Software Orientado a Objetos
45
são identificados, dividindo-os em processos, camadas, pacotes, 
subsistemas e outros tipos de segregação. Para cada módulo é definida a 
responsabilidade e quais serão as interfaces utilizadas, por fim, devemos 
definir como os módulos irão se conectar entre si.
Para um melhor aproveitamento da fase de elaboração, é necessária 
a criação de iterações curtas e com prazos bem estabelecidos. Vale notar 
que, algumas vezes, a melhor maneira de garantir qualidade é definir 
e cumprir um prazo, mesmo que isso signifique diminuir o número de 
iterações. A chave do sucesso é o início da programação, quanto mais cedo 
for iniciada a programação, mais cedo se iniciam os testes. Quanto mais 
cedo se iniciam os testes, mais cedo se encontram erros, quanto mais cedo 
se encontram erros, menores são os riscos de o processo falhar. 
Mas é importante que todas as fases sejam executadas no momento 
correto, a ideia não é de adiantar sem cumprir os requisitos necessário 
de cada etapa. Uma forma de garantir que não haja retrabalho é, ao final 
de cada fase, sempre elaborar um cronograma de projeto que permita o 
sistema ser construído de maneira adaptativa. Ou seja, que ele já esteja 
preparado para receber diversos tipos de mudança e sempre adaptar 
todas as modificações de acordo com o feedback de testes.
Sobre as iterações, de cada fase, trata-se de pequenos módulos 
que irão se realizar conforme a fase avança, durante a fase de elaboração, 
definir bem as iterações pode garantir um excelente resultado. Para uma 
boa definição, deve-se levar em conta os riscos de complexidade técnica, 
a inexperiência de quem irá lidar com elas, a criticidade e a garantia 
de que as iterações irão cobrir todas as partes do sistema. Também é 
importante conhecer o modelo de domínio, como pode ser observado 
na ilustração da figura a seguir, o modelo de domínio é um modelo 
conceitual que mostra todas as classes do sistema e quem domina quem. 
É um retrabalho do diagrama de classes da UML.
Análise e Projeto de Software Orientado a Objetos
46
Figura 24 - Exemplo de modelo de domínio
Batalha Naval
Tabuleiro
Nome
Jogado em
Casa
Coordenada
Jogador
Nome
Bomba
Coordenada
Embarcação
Tipo
- Possui 
- Lança 
- Joga 
- Ataca 
- Ocupa 
- Contém 
1
1
1 1
1
1
11
1 2
2
1.8
81
1.5
Fonte: Nogueira (2018d, p. 18).
Na análise e projeto de software orientado a objetos, é importante 
o conhecimento do modelo de projeto e documento de arquitetura do 
software. Trata-se da documentação que compreende o conjunto de 
diagramas que descreve todo o projeto, bem como os dados do projeto 
como um todo, descrições de objetivos, riscos e linha de base. Também é 
o documento que ilustra todos os problemas da arquitetura e as possíveis 
soluções que serão adotadas neste projeto em si, com a justificativa da 
solução adotada, este é o documento no qual o projeto irá passar a se 
basear. Além do storyboard de casos de uso, no qual é uma adaptação do 
diagrama de sequência, que irá indicar toda a descrição da interface com 
o usuário e as trajetórias da navegação.
De maneira geral, com base em diagramas UML - Modeling 
Language, ou a Linguagem Unificada de Modelação, é possível iniciar a 
análise da fase de concepção de projetos, na qual os softwares orientando 
a objetos podem ser aplicados.
Análise e Projeto de Software Orientado a Objetos
47
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu mesmo 
tudinho? Agora, só para termos certeza de que você 
realmente entendeu o tema de estudo deste capítulo, vamos 
resumir tudo o que vimos. Você deve ter aprendido que é 
necessário que os diagramas UML - Modeling Language, 
ou a Linguagem Unificada de Modelação para começar a 
etapa de análisee da fase de concepção de projetos. Nos 
quais as classes principais devem ser definidas e listadas na 
fase de concepção, e que os principais casos de uso que 
iriam ser aplicados ao projeto também devem ser listados. 
Assim é possível iniciar a fase de elaboração. A fase em 
que as primeiras partes do projeto passam a tomar forma 
e permitindo assim começar a enxergar um produto final. 
De maneira geral a fase de elaboração é extremamente 
delicada dentro do contexto de um processo unificado, 
nela, toda a linha de base do projeto é firmada. Caso não 
seja desenvolvida de maneira sólida, o projeto corre sérios 
riscos de falhar, desta maneira é importante a atenção 
de todos esses aspectos na análise e projeto de software 
orientados a objetos.
Análise e Projeto de Software Orientado a Objetos
48
REFERÊNCIAS
BRAZ, C. C. Introdução ao Processo Unificado. Devmedia, 2006. 
Disponível em https://www.devmedia.com.br/introducao-ao-processo-
unificado/3931. Acesso em: 03 Dez 2021. 
FOWLER, M. UML Essencial: Um Breve Guia para Linguagem 
Padrao. São Paulo: Bookman, 2007.
MICROSOFT. Criar projetos e diagramas de modelagem UML. 
Microsoft Developer Network, 2018. Disponível em: https://msdn.
microsoft.com/pt-br/library/dd409445.aspx.
NOGUEIRA, J. Análise e Projeto de Software Orientado a Objetos. 
Diagramas da UML. São Paulo: Uninassau, 2018a.
NOGUEIRA, J. Análise e Projeto de Software Orientado a Objetos: 
Conceitos e definições sobre OO. São Paulo: Uninassau, 2018b.
NOGUEIRA, J. Análise e Projeto de Software Orientado a Objetos: 
Características da OO. São Paulo: Uninassau, 2018c.
NOGUEIRA, J. Análise e Projeto de Software Orientado a Objetos: 
UML – Conceito e Aplicações. São Paulo: Uninassau, 2018d.
 SOUZA, S. Pokemon Go como introdução à Programação 
Orientada a Objeto. Medium, 2016. Disponível em: https://medium.
com/@samuelsouza/pokemon-go-como-introdução-à-programação-
orientada-a-objeto-803e7abf1ed1 Acesso em 27 de Jun de 2018.
Análise e Projeto de Software Orientado a Objetos
	Diagramas da UML
	O que é um Diagrama?
	Processo Unificado de Desenvolvimento de Software
	Conceituação
	Ciclo de Vida
	Concepção do Processo Unificado 
	A Fase de Concepção
	Estudo de Caso
	Desenvolvendo o Esboço do Projeto
	Elaboração do Processo Unificado
	A Fase de Elaboração
	Detalhamento da Fase

Mais conteúdos dessa disciplina