Buscar

Engenharia de Software I

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

1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ENGENHARIA DE SOFTWARE I 
 
Carlos Helmar Duarte 
 
 
 
 
 
 
 
 
 
2 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Carlos Helmar Duarte 
 
Mestre em Educação pela PUC/MG - Pontifícia Universidade Católica de Minas Gerais, 
especialista em Educação, Comunicação e Tecnologia, pela UEMG - Universidade do 
Estado de Minas Gerais. Graduado em Pedagogia pela Universidade do Estado de Minas 
Gerais e graduado em Análise e Desenvolvimento de Sistemas pela UNOPAR - Universidade 
do Norte do Paraná. Tutor à distância e presencial em cursos de graduação em Pedagogia 
e Cursos de Extensão na área de Educação e Tecnologia desde 2006. Professor 
Pesquisador e Designer Instrucional dos cursos de EAD da Universidade do Estado de Minas 
Gerais. Tem experiência na docência na área de Educação com os conteúdos de 
Matemática e Informática para o ensino Fundamental e Médio; e Educação Tecnológica 
para o ensino superior. Integrante do grupo de estudos ETCS - Educação, Tecnologia, 
Ciências e Sociedade da PUC/MG. Participou efetivamente do NECT - Núcleo de Estudos 
sobre Comunicação e Tecnologia da UEMG, de 2003 a 2007. Diretor da Divisão de Apoio 
Administrativo do Departamento de Administração de Pessoal da UFMG – Universidade 
Federal de Minas Gerais, desde 2010. 
ENGENHARIA DE SOFTWARE I 
1ª edição 
Ipatinga – MG 
2023 
 
 
 
 
 
 
 
 
 
3 
 
 
FACULDADE ÚNICA EDITORIAL 
 
Diretor Geral: Valdir Henrique Valério 
Diretor Executivo: William José Ferreira 
Ger. do Núcleo de Educação a Distância: Cristiane Lelis dos Santos 
Coord. Pedag. da Equipe Multidisciplinar: Gilvânia Barcelos Dias Teixeira 
Revisão Gramatical e Ortográfica: Izabel Cristina da Costa 
Revisão/Diagramação/Estruturação: Bruna Luiza Mendes Leite 
 Fernanda Cristine Barbosa 
 Guilherme Prado Salles 
 Lívia Batista Rodrigues 
Design: Bárbara Carla Amorim O. Silva 
 Élen Cristina Teixeira Oliveira 
 Maria Eliza Perboyre Campos 
 
 
 
 
 
 
© 2023, Faculdade Única. 
 
Este livro ou parte dele não podem ser reproduzidos por qualquer meio sem Autorização 
escrita do Editor. 
 
 
 
Ficha catalográfica elaborada pela bibliotecária Melina Lacerda Vaz CRB – 6/2920. 
 
 
 
 
 
NEaD – Núcleo de Educação a Distância FACULDADE ÚNICA 
Rua Salermo, 299 
Anexo 03 – Bairro Bethânia – CEP: 35164-779 – Ipatinga/MG 
Tel (31) 2109 -2300 – 0800 724 2300 
www.faculdadeunica.com.br
http://www.faculdadeunica.com.br/
 
 
 
 
 
 
 
 
 
4 
 
 
Menu de Ícones 
Com o intuito de facilitar o seu estudo e uma melhor compreensão do conteúdo 
aplicado ao longo do livro didático, você irá encontrar ícones ao lado dos textos. Eles 
são para chamar a sua atenção para determinado trecho do conteúdo, cada um 
com uma função específica, mostradas a seguir: 
 
 
 
São sugestões de links para vídeos, documentos 
científicos (artigos, monografias, dissertações e teses), 
sites ou links das Bibliotecas Virtuais (Minha Biblioteca 
e Biblioteca Pearson) relacionados com o conteúdo 
abordado. 
 
Trata-se dos conceitos, definições ou afirmações 
importantes nas quais você deve ter um maior grau 
de atenção! 
 
São exercícios de fixação do conteúdo abordado 
em cada unidade do livro. 
 
São para o esclarecimento do significado de 
determinados termos/palavras mostradas ao longo 
do livro. 
 
Este espaço é destinado para a reflexão sobre 
questões citadas em cada unidade, associando-o a 
suas ações, seja no ambiente profissional ou em seu 
cotidiano. 
 
 
 
 
 
 
 
 
 
5 
 
 
SUMÁRIO 
 
ENGENHARIA DE SOFTWARE: CONTEXTUALIZAÇÃO HISTÓRICA E 
CONCEITOS BÁSICOS ............................................................................... 8 
1.1 HISTÓRIA E CONCEITO DE SOFTWARE ............................................................. 8 
1.2 CONTEXTO HISTÓRICO DO SOFTWARE ............................................................ 9 
1.3 TRABALHANDO OS CONCEITOS BÁSICOS DA ENGENHARIA DE SOFTWARE
 ......................................................................................................................... 12 
1.3.1 Conceitos iniciais ................................................................................................. 12 
1.3.2 Sistemas sociotécnicos ....................................................................................... 13 
1.4 ENGENHARIA DE SOFTWARE NOS DIAS ATUAIS ............................................ 16 
FIXANDO O CONTEÚDO ................................................................................. 20 
CONCEITOS E MODELOS DE PROCESSO DE SOFTWARE ........................ 24 
2.1 MODELOS DE PROCESSOS DE SOFTWARES .................................................... 24 
2.2 CICLOS DE VIDA DE UM SOFTWARE ............................................................... 26 
2.2.1 Modelo em Cascata .......................................................................................... 27 
2.2.2 Prototipação ........................................................................................................ 28 
2.2.3 Modelo de desenvolvimento Baseado em Componentes ........................ 29 
2.2.4 Entrega Incremental ........................................................................................... 31 
2.2.5 Modelo Espiral ...................................................................................................... 32 
2.3 ATIVIDADES DE PROCESSO DE SOFTWARE .................................................... 34 
2.3.1 Especificação de software ............................................................................... 34 
2.3.2 Implementação de software ............................................................................ 35 
2.3.3 Validação de software ...................................................................................... 36 
2.3.4 Evolução (manutenção) de software ............................................................ 38 
FIXANDO O CONTEÚDO ............................................................................. 2044 
INTRODUÇÃO AO GERENCIAMENTO DE PROJETOS .............................. 46 
3.1 VISÃO GERAL E CONCEITOS DO GERENCIAMENTO DE PROJETOS ................ 46 
3.2 ATIVIDADES, PLANEJAMENTO E CRONOGRAMA DE PROJETOS DE SOFTWARES
 ............................................................................................................................ 49 
3.2.1 Visão geral das atividades de gerenciamento de projeto de software..... 50 
3.2.2 Visão geral do planejamento de gerenciamento de projeto de software
 ................................................................................................................................... 51 
3.2.3 Visão geral do cronograma de gerenciamento de projeto de software .. 53 
3.3 ANÁLISE DE RISCOS ........................................................................................... 55 
FIXANDO O CONTEÚDO .................................................................................... 59 
ENGENHARIA DE REQUISITOS ................................................................. 63 
4.1 ESTUDOS DE REQUISITOS: CONCEITOS E IMPORTÂNCIA ................................. 63 
4.1.1 Importância do estudo de requisitos ................................................................. 64 
4.1.2 Engenharia de Requisitos ..................................................................................... 65 
4.2 REQUISITOS DE UM SOFTWARE: CARACTERÍSTICAS GERAIS, REQUISITOS 
FUNCIONAIS E NÃO FUNCIONAIS .................................................................... 67 
4.2.1 Características gerais ............................................................................................ 67 
4.2.2 Requisitos Funcionais .............................................................................................68 
4.2.3 Requisitos Não funcionais ..................................................................................... 70 
4.3 ELICITAÇÃO E ANÁLISE DE REQUISITOS............................................................ 73 
4.3.1 Levantamento de requisitos ................................................................................ 74 
4.3.2 Análise de requisitos .............................................................................................. 76 
4.3.3 Documentação de requisitos .............................................................................. 78 
4.4 Validação de requisitos ................................................................................... 79 
FIXANDO O CONTEÚDO .................................................................................... 82 
UNIDADE 
01 
UNIDADE 
02 
UNIDADE 
03 
UNIDADE 
04 
 
 
 
 
 
 
 
 
 
6 
 
 
INTRODUÇÃO AO ESTUDO DE PROJETOS ORIENTADO A OBJETOS (UML - 
UNIFIED MODELING LANGUAGE) ........................................................... 86 
5.1 VISÃO GERAL DA MODELAGEM ORIENTADA A OBJETOS............................... 86 
5.2 CLASSES, ATRIBUTOS E OPERAÇÕES ................................................................. 88 
5.2.1 Classes ...................................................................................................................... 88 
5.2.2 Atributos ................................................................................................................... 89 
5.2.3 Operações .............................................................................................................. 90 
5.3 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE COM UML ...................... 93 
5.3.1 Contexto de sistema e modelos de uso ............................................................ 94 
5.3.2 Projeto de arquitetura ........................................................................................... 95 
5.3.3 Identificação dos objetos principais do sistema .............................................. 96 
5.3.4 Modelo de projetos ............................................................................................... 97 
5.3.5 Especificar interfaces de objetos ........................................................................ 97 
FIXANDO O CONTEÚDO .................................................................................... 99 
MODELAGEM BÁSICA: DIAGRAMAS UML .................................. 103 
6.1 CONCEITOS E MODELOS ................................................................................. 103 
6.2 DIAGRAMAS ESTRUTURAIS ............................................................................... 104 
6.2.1 Diagrama de Classes ......................................................................................... 105 
6.2.2 Diagrama de Objetos ........................................................................................ 107 
6.3 DIAGRAMAS COMPORTAMENTAIS ................................................................. 108 
6.3.1 Diagrama de Caso de Uso ............................................................................... 109 
6.3.2 Diagrama de Atividades ................................................................................... 112 
6.3.3 Diagramas de interação ................................................................................... 115 
FIXANDO O CONTEÚDO ............................................................................................. 118 
RESPOSTAS DO FIXANDO O CONTEÚDO .................................... 122 
REFERÊNCIAS................................................................................. 123 
 
 
 
UNIDADE 
05 
UNIDADE 
06 
 
 
 
 
 
 
 
 
 
7 
 
 
CONFIRA NO LIVRO 
 
A unidade I tem como objetivo vincular o conhecimento sobre o 
termo “Software” à sua origem e a sua aplicação, a partir de uma 
contextualização histórica do termo. Serão discutidos também 
nesta unidade os principais conceitos e o contexto nos dias atuais 
sobre a Engenharia de Software. 
A unidade II tem como objetivo discutir os principais conceitos e 
modelos de processo e os ciclos de vida de um software, (Clássico, 
prototipação, espiral, etc.). Serão abordadas também as 
atividades do processo de um software, desde a especificação até 
a sua validação. 
 
 
A unidade III aborda uma visão geral e os principais conceitos 
introdutórios sobre gerenciamento de projetos. Será discutida nessa 
unidade, além das atividades, do planejamento e do cronograma, 
a análise de riscos dos projetos em engenharia de software. 
Na unidade IV o objetivo é discutir a Engenharia de Requisitos. Serão 
abordados os principais conceitos e a importância da Engenharia 
de Requisitos e para isso serão caracterizados os requisitos 
funcionais e não funcionais de um software, além de propor uma 
discussão sobre a elicitação e análise de requisitos. 
 
 
 
 
 
 
A unidade V tem como objetivo apresentar uma visão geral da 
modelagem orientada a objetos – UML. Para isso, propõe-se discutir 
os conceitos de classe, atributos e operações, além de introduzir 
definições sobre o processo de desenvolvimento de projeto de 
software com UML. 
 
A unidade VI tem como objetivo, a partir dos conceitos 
apresentados na unidade V, definir e caracterizar os diagramas da 
modelagem básica em UML. Serão apresentados os dois grupos de 
diagramas (estrutural e comportamental) e alguns seus de 
principais subtipos. 
 
 
 
 
 
 
 
 
 
 
 
 
8 
 
 
ENGENHARIA DE SOFTWARE: 
CONTEXTUALIZAÇÃO HISTÓRICA E 
CONCEITOS BÁSICOS 
 
 
 
1.1 HISTÓRIA E CONCEITO DE SOFTWARE 
Quando as pessoas pensam no termo software, a primeira associação feita é 
com programas de computador. Tecnicamente, software pode ser definido como 
sendo um conjunto de componentes lógicos e de programas presentes em 
computadores, celulares, carros, dentre outros. Autores como Sommerville (2007), 
Pfleeger(2004), e Pressman (2011) consideram esse conceito simplista, e descrevem 
que o conceito de software se refere também a todos os dados de documentação 
do projeto e configurações associados aos sistemas, os quais são necessários para 
que o programa funcione corretamente. 
Para Pressman (2011, p. 31): 
 
Hoje, o software assume um duplo papel. Ele é um produto e, ao 
mesmo tempo, o veículo para distribuir um produto. Como produto, 
fornece o potencial computacional representado pelo hardware ou, 
de forma mais abrangente, por uma rede de computadores que 
podem ser acessados por hardware local. (...) Como veículo de 
distribuição do produto, o software atua como a base para o controle 
do computador (sistemas operacionais), a comunicação de 
informações (redes) e a criação e o controle de outros programas 
(ferramentas de software e ambientes). 
 
O software é responsável pelo produto mais importante nas relações dos seres 
humanos atualmente, a informação. Para contexto apresentado, e visando os 
objetivos iniciais dessa unidade de contextualização e caracterização do termo 
software, é importante descrever o significado de sistema. Na engenharia de 
software, sistema pode ser definido como sendo “um conjunto intencional de 
componentes inter-relacionados que funcionam juntos para atingir certo objetivo” 
(SOMMERVILLE, 2007, p.14). Para o autor essa definição de sistema abrange um vasto 
universo de sistemas, desde os mais simples aos mais complexos. 
Após as definições de software e sistema, é ilustrado na figura 1 um esquema 
que resume o sistema de software. 
UNIDADE 
01 
 
 
 
 
 
 
 
 
 
 
9 
 
 
Figura 1: Definição de sistema de Software 
 
Fonte: Adaptado de Sommerville (2007, p. 04) 
 
1.2 CONTEXTO HISTÓRICO DO SOFTWARE 
A evolução do software ocorreu, desde o seu início, de forma acelerada. O 
objetivo principal no começo não estava diretamente relacionado com a interação 
entre o usuário e a máquina.O maior investimento estava centralizado em um 
hardware que pudesse gerar processamento de dados em grande volume, deixando 
assim o desenvolvimento do software em segundo plano. 
Com o passar do tempo os conceitos sobre o uso das máquinas sofreram 
mudanças, e as necessidades dos usuários têm um papel importante nesse novo 
cenário que se configura com a evolução tecnológica. A exigência passa a ser por 
equipamentos menores e com maior eficiência no desempenho das atividades, ou 
seja, buscam-se, além do desenvolvimento do hardware, maiores investimentos na 
produção dos softwares. 
Até o começo da década de 70, o desenvolvimento estava centrado na parte 
física da máquina, dessa forma a evolução dos softwares e as modificações ainda 
não eram evidentes para os usuários. A mudança dessa concepção começa a 
ocorrer com o aparecimento dos computadores multiusuários, os quais possibilitavam 
um processamento de dados em tempo real. 
Na figura 2, é apresentado um resumo da linha do tempo sobre a evolução 
dos softwares e hardwares. 
 
 
 
 
 
 
 
 
 
 
 
 
10 
 
 
Figura 2: Evolução software/hardware 
 
Fonte: Adaptado de Stallings (2010, p.12-27). 
 
Na figura 2, a primeira geração de computadores (1940), tem como 
característica principal a utilização de válvulas e programação baseada no sistema 
binário, uma combinação que gastava a maior parte do tempo no processamento 
de dados. Foi nessa geração que houve a evolução do armazenamento de dados 
em cartões perfurados para as fitas magnéticas. 
Na segunda geração de computadores (1950), ocorre o aparecimento das 
máquinas com transistores, considerado uma revolução na época. Algumas 
características importantes dos transistores era o fato de serem mais rápidos e 
confiáveis e terem um consumo menor de energia. Nessa geração, além do alto 
custo dos equipamentos, desperdiçava-se muito tempo no processo de operação 
das maquinas, dessa forma uma das soluções que as pessoas encontraram para 
reduzir o tempo desperdiçado foi o sistema de processamento em lotes. 
 
A ideia era reunir em uma bandeja (tray) um conjunto de jobs da sala 
de submissão e então le ̂-los em uma fita magnética usando um 
computador relativamente pequeno e barato, como o IBM 1401, que 
era muito bom para ler cartões, copiar fitas e imprimir a saída, mas 
péssimo para cálculos numéricos (TANENBAUM; WOODHULL, 2008 p. 
27). 
 
 
 
 
 
 
 
 
 
11 
 
 
 
 
Na terceira geração de computadores (1958) as máquinas começam a ser 
equipadas com os circuitos integrados - os microchips, feitos de silício. Uma das 
principais evoluções nessa época foi à construção de equipamentos menores e mais 
baratos. 
De acordo com Stallings (2010, p.26) “Além da terceira geração, existe pouco 
consenso geral sobre a definição das gerações de computadores”. De acordo com 
o autor, há diversas gerações posteriores, todas com base nos avanços da tecnologia 
do circuito integrado. Um fator importante no contexto das gerações posteriores 
aconteceu em 1971, com o aparecimento do microprocessador, quando a Intel 
descobriu o chip (4004), primeiro chip que possuía todos os componentes de um 
processador. Isso possibilitou avanços, conforme afirma o autor, “no processamento 
de imagens, reconhecimento de voz, videoconferência, criação de multimídia, 
desenvolvimento em arquivos de voz e vídeo e modelagem de simulação”. (P. 29) 
A partir da década de 90, com os avanços na estrutura e composição do 
hardware, começam a surgir novas exigências das pessoas e organizações, o que 
gerou maiores desafios no desenvolvimento de softwares. O aparecimento e a 
evolução da rede mundial de computadores – Internet trouxe consigo uma nova 
maneira de se buscar e disponibilizar o dado, a informação e o conhecimento, o que 
exigiu, na época, um desenvolvimento de software voltado para a eficiência. 
Nesse contexto, há uma mudança brusca nas estratégias para o 
desenvolvimento de software, ou seja, no começo, o desenvolvedor tinha suas 
próprias técnicas, e o software era construído com base na sua experiência pessoal, 
no entanto, nos dias atuais para se garantir uma qualidade na produção de um 
software é necessário o uso de técnicas diferenciadas, um conjunto de metodologias 
e um bom trabalho em equipe. Neste momento é que surge a Engenharia de 
Software. 
 
BUSQUE POR MAIS 
Para entender mais sobre o sistema de processamento em lotes, recomenda-se a leitura 
das páginas 26 e 27 do livro, Sistemas operacionais: projeto e implementação de Andrew 
S. Tanenbaum, Albert S. Woodhull. O livro está disponível na biblioteca virtual, no link: 
https://shre.ink/HZ2Y. Acesso em: 20 jan. 2023. 
 
https://shre.ink/HZ2Y
 
 
 
 
 
 
 
 
 
12 
 
 
 
 
Na seção 1.2 serão discutidos conceitos e termos com o objetivo de elucidar 
o campo de trabalho com projetos de desenvolvimento de software associados ao 
campo da Engenharia de Software. 
 
1.3 TRABALHANDO OS CONCEITOS BÁSICOS DA ENGENHARIA DE SOFTWARE 
1.3.1 Conceitos iniciais 
Alguns conceitos iniciais referentes à elaboração e uso de softwares são 
importantes para o um melhor entendimento da área de estudo de Engenharia de 
Software. 
O conceito de engenharia no dicionário Priberam online refere-se ao 
“Conjunto de técnicas e métodos para aplicar o conhecimento técnico e científico 
na planificação, criação e manutenção de estruturas, máquinas e sistemas para 
benefício do ser humano”. A associação do conceito de engenharia e o conceito 
de software apresentado na seção 1.1 dessa unidade auxiliam em um melhor 
entendimento da definição proposta por Sommerville (2007) para o termo Engenharia 
de Software. Para o autor “A Engenharia de Software é uma disciplina de engenharia 
relacionada com todos os aspectos da produção de software, desde os estágios 
iniciais de especificação do sistema até sua manutenção, depois que este entrar em 
operação” (p.5). A Engenharia de Software está relacionada com os processos 
técnicos de desenvolvimento e gerenciamento de projeto de software, além de 
desenvolver também “ferramentas, métodos e teorias que apoiem a produção do 
software” (p.5). 
Ao longo dos tempos o processo de desenvolvimento de softwares tem 
passado por alterações significativas, uma evolução no tempo de elaboração, no 
desenvolvimento, na metodologia, nos ciclos de vidas e no custo dos projetos. 
Nesse contexto, vários fatores contribuíram para uma discussão mais 
Para saber mais sobre a história e desempenho de computadores, sugerimos a leitura da 
parte I, capítulo 2 “Evolução e desempenho do computador” (páginas 12 a 45) do livro 
“Arquitetura e organização de computadores: Projeto para o desempenho” de William 
Stallings, disponível na biblioteca virtual no endereço eletrônico https://abrir.link/FVKNj. 
Acesso em: 20 jan. 2023. 
 
https://abrir.link/FVKNj
 
 
 
 
 
 
 
 
 
13 
 
 
aprofundada sobre as atividades de desenvolvimento dos softwares nas últimas 
décadas. Esses fatores estão diretamente relacionados, primeiro, com às altas 
complexidades do sistema que surgiram com a evolução do processamento das 
imagens e sons que foram integradas aos hardwares de pequeno porte; e segundo 
com as integrações, as quais ficaram cada vez mais evidentes nos diversos tipos de 
hardwares e de sistemas operacionais, seja para o uso no computador doméstico ou 
científico. 
 
1.3.2 Sistemas sociotécnicos 
Para um melhor entendimento das definições propostas para o termo de 
engenharia de software, serão apresentadas a seguir conceitos, termos e 
características dos sistemas sociotécnicos, que além de abordagens sobre 
componentes de hardware e software, incluem também, procedimentos e 
processos. 
As discussões descritas nesse livro sobre os sistemas sociotécnicos estão 
baseadas em Sommerville (2007). Para o autor, os sistemas sociotécnicos possuem 
propriedades de comportamentos fortemente interligados, isso significaque: 
 
O funcionamento com sucesso de cada componente depende do 
funcionamento dos outros componentes. Dessa forma, o software 
poderá operar somente se o processador estiver operacional. O 
processador somente poderá realizar a computação se o sistema de 
software que define essas funções tiver sido instalado com sucesso. 
(SOMMERVILLE, 2007, p.15) 
 
Uma característica no uso de sistema sociotécnicos é o fato de que as duas 
partes, o social e o técnico, funcionam para produzir resultados positivos, desta forma, 
é necessário um trabalho em conjunto na realização das tarefas de elaboração de 
produtos físicos como resultados sociais. 
O esquema da figura 3 apresenta uma visão geral em relação aos Sistemas 
Sociotécnicos baseado nas ideias de Sommerville (2007). 
 
 
 
 
 
 
 
 
 
 
 
 
 
14 
 
 
Figura 3: Visão geral dos Sistemas Sociotécnicos 
 
Fonte: Adaptado de Sommerville (2007, p. 14-27) 
 
As associações realizadas na figura 3 mostram as interligações e propriedades 
dos sistemas sociotécnicos, desde o projeto inicial até o fechamento das atividades 
do projeto. A seguir serão detalhadas características sobre cada fase ilustrado na 
figura 3. 
As propriedades emergências podem ser classificadas como funcionais e não 
funcionais. A primeira refere-se ao trabalho de todas as partes do sistema juntos 
buscando o mesmo objetivo e a segunda “ao comportamento do sistema em seu 
ambiente operacional” (SOMMERVILLE, 2007, p. 16). As propriedades emergentes são 
difíceis de serem avaliadas, mas trazem para o projeto itens importantes na 
construção e validação das atividades. São exemplos de propriedade emergentes: 
usabilidade, confiabilidade, proteção, desempenho, volume e proteção. 
A Engenharia de Sistemas envolve discussões na elaboração das atividades 
de todo o projeto, tais como: especificação, implementação, validação, 
implantação e manutenção dos sistemas. 
 
 
 
 
 
 
 
 
 
 
15 
 
 
 
 
Figura 4: Processo de Engenharia de Sistemas 
 
Fonte: Adaptado de Sommerville (2007, p.17-23) 
 
Na parte “social” do sistema referente à “organização, pessoas e sistemas de 
computadores” as mudanças de processos e de trabalho aponta a necessidade de 
se considerar o contexto no qual estão inseridos os usuários e o ambiente 
organizacional onde será utilizado o software. Nesse ponto, é preciso um estudo do 
perfil da organização interessada na elaboração do sistema, uma coleta de dados 
sobre os processos organizacionais da empresa e dos usuários envolvidos no uso do 
software. E, por último, a partir da coleta de dados, elaborar uma proposta de acordo 
Nesse ponto é importante diferenciar a engenharia de sistema de engenharia de 
software, para Sommerville (2007, p. 6) a “engenharia de sistemas é uma disciplina mais 
antiga que a engenharia de software”. Ao longo dos anos a pessoa tem realizado a 
especificação de sistemas complexos, com a evolução da tecnologia o número de 
softwares utilizados teve um expressivo aumento na produção de sistemas, dessa forma a 
técnica de engenharia de software tem sido usada no processo de engenharia de 
sistemas. O quadro 1 da seção 1.3 apresenta mais informações em relação as 
características e diferenciações da engenharia de software e engenharia de sistemas. 
 
 
 
 
 
 
 
 
 
 
16 
 
 
com as demandas do mercado. 
Os sistemas desenvolvidos com base em softwares legado possuem hardware, 
software, processos e procedimentos baseado em tecnologias mais antigas e 
obsoletas. Os sistemas legados incluem processos de negócios, software de 
aplicação, software de apoio e hardware de sistema. São “velhas formas de fazer 
coisas que dificilmente são mudadas porque estão baseadas em software legado”. 
(SOMMERVILLE, 2007, p.25). Os responsáveis pela empresa, associados a elaboração 
de políticas e procedimentos organizacionais, na maioria dos casos não substituem 
esse tipo de sistema por acreditarem que é grande o risco de perda de dados e 
informações. 
 
 
 
Nesse capítulo foram abordados alguns importantes conceitos e contextos 
para o entendimento inicial sobre a área de Engenharia de Software. No próximo 
capítulo será apresentado a Engenharia de Software no contexto dos dias atuais, 
descrevendo sobre o trabalho, a legislação e o campo profissional do engenheiro de 
software, bem como os desafios enfrentados no mercado de trabalho. 
 
1.4 ENGENHARIA DE SOFTWARE NOS DIAS ATUAIS 
Atualmente a engenharia de software tem se apresentado como uma área 
de grande importância no início, durante e na finalização de projetos de software, 
além de atuar também na manutenção. Essa importância se deve ao fato da equipe 
realizar atividades de coleta de dados junto ao sujeito e organização, atuar no 
“Os sistemas sociotécnicos incluem hardware de computador, software e pessoas, e são 
instalados dentro de uma organização. São projetados para auxiliar a organização a 
atingir um grande objetivo” (SOMMERVILLE, 2007, p. 27). Ao pensarmos na montagem de 
um ambiente com base na estrutura de sistema sociotécnicos, imaginamos um ambiente 
com uma dimensão técnica, pessoal e organizacional. Dimensão técnica, quando nos 
referimos a equipamentos físicos e virtuais, dimensão pessoal, quando a referência é de 
pessoas de uma equipe de trabalho envolvida no projeto e dimensão organizacional, 
quando pensamos na estrutura da organização onde o projeto será aplicado. Nesse 
contexto, que elementos podemos citar da estrutura de um sistema sociotécnicos? 
 
 
 
 
 
 
 
 
 
 
17 
 
 
processamento e análise de dados a partir de estratégias bem definidas, identificar 
possíveis falhas no software e elaborar soluções para resolvê-las. 
O quadro 1, mostra uma comparação entre as grandes áreas de formação 
em relação à tecnologia atualmente, situando a Engenharia de Software no 
contexto atual. 
 
Quadro 1: Caracterização das áreas de conhecimento: Engenharia de Software, Engenharia 
de Sistema, Ciências da Computação e Ciências da Informação 
Engenharia de 
Software 
Engenharia 
de Sistemas 
Ciências da 
Computação 
Ciências da 
Informação 
Preocupa-se com os 
problemas e soluções 
da prática da 
produção de 
softwares. 
Refere-se aos aspectos 
de desenvolvimento e 
da evolução e sistemas 
complexos. 
Dedica-se as 
teorias e aos 
métodos que 
constituem a 
base de 
computadores e 
sistemas de 
softwares. 
Refere-se à análise 
da formação do 
processo desde a 
informação até a 
transformação dos 
dados em 
conhecimento. 
Tem relação direta 
com o 
empreendedorismo e 
o mercado de 
trabalho. Elaboração 
de um software a 
partir do estudo de 
problemas. 
Está relacionada com o 
desenvolvimento de 
hardware, políticas e 
de processos de 
implantação dos 
sistemas. 
Tem uma 
relação direta 
com o meio 
acadêmico e 
científico como 
um todo, devido 
a concentração 
no estudo de 
teorias. 
Está diretamente 
relacionado com a 
gestão da 
informação dentro 
de empresas. 
Fonte: Elaborado pelo autor (2023) 
 
As classificações exibidas no quadro 1, mostram que as grandes áreas de 
conhecimento de tecnologia possuem relações entre si. Dessa forma, um bom 
projeto de software precisa ter a atenção e os cuidados de todos os profissionais 
envolvidos nas equipes. 
Na engenharia de software, algumas mudanças importantes ocorreram nos 
últimos anos, principalmente em relação à responsabilidade profissional e ética junto 
ao mercado de trabalho. No ano de 2018, o órgão responsável pelas Entidades de 
Fiscalização do Exercício das Profissões Liberais/Conselho Federal de Engenharia e 
Agronomia, publicou a Resolução nº 1.100 de 24 de maio de 2018, a qual “Discrimina 
as atividades e competências profissionais do engenheiro de software e insere o 
respectivo título na Tabela de Títulos Profissionais do Sistema Confea/Crea, para efeito 
de fiscalização do exercício profissional”. O decretoestabelece no seu artigo 2º que: 
 
 
 
 
 
 
 
 
 
 
18 
 
 
compete ao engenheiro de software as atribuições previstas no art. 7° 
da Lei nº 5.194, de 1966, combinadas com as atividades 1 a 18 do art. 
5º, §1º, da Resolução nº 1.073, de 19 de abril de 2016, referentes a 
requisitos de software, sistemas e soluções de software, evolução de 
software, integração local e remota de sistemas de software. 
 
 
 
 
De acordo com os estudos da Associação Brasileira das Empresas de Software 
– ABES, publicado no relatório anual do ano de 2021, o mercado de Hardware, 
Software e Serviços no Brasil cresceram 22,9% com um investimento de cerca de R$ 
200,3 bilhões (US$ 50,7 bilhões). O mesmo estudo aponta que mais de 70% das 
empresas no Brasil estão mais voltadas para a fabricação, desenvolvimento, 
comercialização e distribuição de softwares. 
Muitos desafios e responsabilidades se apresentam nos dias atuais para o 
profissional de engenharia de software. Sommerville (2007) destaca que os principais 
são: o desafio da heterogeneidade, da entrega e da confiança. 
Para o autor no desafio da heterogeneidade é preciso que “os sistemas de 
software operem como sistemas distribuídos, através das redes, que incluem 
diferentes tipos de computadores, com diferentes tipos de sistema de apoio” 
(SOMMERVILLE, 2007, p. 10). 
No desafio da entrega, é preciso aliar o tempo com a qualidade, ou seja, o 
software, “no ambiente de negócios de hoje deve apresentar resposta ágil e mudar 
rapidamente” (SOMMERVILLE, 2007, p.10), o software de apoio precisa acompanhar 
a velocidade das mudanças. 
Para saber mais sobre as responsabilidades e ética do engenheiro de software, consulte: 
1. Lei Nº 5.194, de 24 de dezembro de 1966. Regula o exercício das profissões de 
Engenheiro, Arquiteto e Engenheiro-Agrônomo, e dá outras providências. 
Fonte: https://abrir.link/dncaO. Acesso em: 20 jan. 2023. 
2. Resolução nº 1.073, de 19 de abril de 2016. Regulamenta a atribuição de títulos, 
atividades, competências e campos de atuação profissionais aos profissionais registrados 
no Sistema Confea/Crea para efeito de fiscalização do exercício profissional no âmbito 
da Engenharia e da Agronomia. 
Fonte: Publicado no DOU – Diário Oficial da União em: 22/04/2016, Edição: 76, Seção: 1, Página: 245. 
 
https://abrir.link/dncaO
 
 
 
 
 
 
 
 
 
19 
 
 
E o desafio da confiança, nesse ponto o autor reforça que é necessário 
“desenvolver técnicas que demonstrem que o software pode ter a confiança dos 
seus usuários” (SOMMERVILLE, 2007, p.10). 
Em resumo, a unidade I, contextualizou a história e apresentou o conceito de 
software e de engenharia de software. Foi descrito também a relação da engenharia 
de software com etapas de desenvolvimento e produção de um projeto de software. 
No final da unidade foi apresentado um pouco sobre a profissionalização do 
engenheiro de software, descrevendo a legislação que regulamentou a profissão e 
desafios nos dias atuais da área de engenharia de software. 
A seguir são propostas algumas questões sobre o conteúdo da unidade 01. 
 
 
 
 
 
 
 
 
 
 
20 
 
 
FIXANDO O CONTEÚDO 
1. A engenharia de sistemas está diretamente relacionada à execução e atividades 
de todo o projeto. Sobre esse assunto analise as proposições abaixo: 
I. Definição de requisitos: indicam que o sistema já pode ser iniciado, sendo liberado 
para colocar em funcionamento. 
II. Integração do Sistema: refere-se ao grupamento dos subsistemas para a 
construção do sistema completo. 
III. Evolução do sistema: relaciona-se ao período destinado a correção de erros dos 
requisitos e projetos de novas implementações. 
IV. Projeto de sistema: nessa parte da engenharia de sistemas a funcionalidade será 
fornecida pelos componentes do sistema. 
Estão corretas: 
a) I, II, III, IV. 
b) I, III, IV. 
c) II, III, IV. 
d) II e III. 
e) III e IV. 
 
2. “Os relacionamentos complexos entre os componentes de um sistema mostram 
que o sistema é mais do que simplesmente a soma de suas partes. Ele possui 
propriedades próprias do sistema como um todo” (SOMMERVILLE, 2007, p. 16). 
São exemplos de propriedades emergentes de um sistema: 
I. Complexidade. 
II. Usabilidade. 
III. Proteção. 
IV. Contextualidade. 
V. Volume. 
Estão corretas: 
a) I, II, III, IV e V. 
b) I, III, IV e V. 
c) II, III, IV e V. 
d) II, III e V. 
e) III e V. 
 
 
 
 
 
 
 
 
 
21 
 
 
 
3. A Resolução nº 1.100 de 24 de maio de 2018 indica em seu texto que as atribuições 
do engenheiro de software estão previstas no art. 7° da Lei nº 5.194, de 1966. De 
acordo com essa informação, analise as proposições abaixo: 
I. Estudos, projetos, análises, avaliações, vistorias, perícias, pareceres E divulgação 
técnica; 
II. Contração de pessoal para composição da equipe de projeto; 
III. Fiscalização de obras e serviços técnicos; 
IV. Direção de obras e serviços técnicos; 
V. Execução de obras e serviços técnicos. 
São atribuições do engenheiro de software: 
a) I, II, III, IV e V. 
b) I, III, IV e V. 
c) II, III, IV e V. 
d) II, III e IV. 
e) III e V. 
 
4. “A engenharia de software é uma disciplina de engenharia relacionada com todos 
os aspectos da produção de software, desde os estágios iniciais de especificação do 
sistema até sua manutenção, depois que este entrar em operação” (SOMMERVILLE, 
2007, p.5). 
Sobre o conceito e a importância do processo de engenharia de software analise as 
proposições abaixo: 
I. É preciso antes de projetar qualquer informação sobre o sistema criar ações práticas 
de elaboração do software. 
II. Um ponto chave no processo de engenharia de software é entender o problema 
antes de elaborar uma solução. 
III. Um projeto bem feito terá como resultados: qualidade e facilidade de manutenção 
do software. 
IV. A engenharia de software engloba um processo, métodos de gerenciamento e 
desenvolvimento de software, bem como ferramentas. 
Estão corretas: 
a) I, II, III e IV. 
b) I e IV. 
c) III e IV. 
 
 
 
 
 
 
 
 
 
22 
 
 
d) II e III. 
e) II, III e IV. 
 
5. (FUNIVERSA - 2009 - Adaptado) Assim como a Engenharia de Software, existe 
também na área de informática a chamada Ciência da Computação e a 
Engenharia de Sistemas. Assinale a alternativa que melhor apresenta a diferença 
entre Engenharia de Software, Ciência da Computação e Engenharia de Sistemas. 
a) A Ciência da Computação tem como objetivo o desenvolvimento de teorias e 
fundamentações. A Engenharia de Software se preocupa com as práticas de 
desenvolvimento de software. Já a engenharia de sistema está relacionada com 
políticas e processos de implantação dos sistemas. 
b) A Engenharia de Software trata da criação dos sistemas de computação 
(softwares) enquanto a Ciência da Computação está ligada ao desenvolvimento 
e criação de componentes de hardware, a Engenharia de Sistemas com a 
manutenção do sistema. 
c) A Engenharia de Software e a Engenharia de Sistema tratam dos sistemas com 
base em computadores, que inclui hardware e software, e a Ciência da 
Computação trata apenas dos aspectos de desenvolvimento de sistemas. 
d) A Ciência da Computação e a Engenharia de Sistema tratam dos sistemas com 
base em computadores, que inclui hardware e software, e a Engenharia de 
Software trata apenas dos aspectos de desenvolvimento de sistemas. 
e) A Ciência da Computação destina-se ao estudo e solução para problemas 
genéricos das áreas de rede e banco de dados e a Engenharia de Software e a 
Engenharia de Sistema restringem-se ao desenvolvimento de sistemas. 
 
6. Observe os trechos abaixo: 
“Toda a programação era feita em linguagem de máquina pura, frequentemente 
interligando fios através de painéis de conectores para controlar as funções básicas 
da máquina” (TANENBAUM e WOODHULL, 2008). 
O texto refere-se à: 
a) A primeira geração de computadores 
b) A geração de computadores dos circuitos integrados 
c)A geração de computadores que enfatizam o processamento em tempo real 
d) A quarta geração de computadores 
https://www.qconcursos.com/questoes-de-concursos/provas/funiversa-2009-iphan-analista-tecnologia-da-informacao
 
 
 
 
 
 
 
 
 
23 
 
 
e) A geração de computadores dos sistemas operacionais avançados. 
 
7. Sobre o conceito de software, analise as proposições abaixo: 
I. Os arquivos de configuração mostram no projeto como configurar o sistema 
planejado; 
II. A documentação do sistema refere-se às descrições da estrutura do sistema; 
III. Softwares disponíveis na web são fontes de coletas de informações pelos usuários; 
IV. Um projeto de software pode ser definido apenas como sendo programas de 
computadores. 
Estão corretas: 
a) I, II, III. 
b) I e III. 
c) II, III, IV. 
d) II e III. 
e) III e IV. 
 
8. (IPSEM– 2010) A evolução dos computadores foi caracterizada por avanços 
tecnológicos que marcaram cada geração. Sobre os avanços tecnológicos e suas 
respectivas gerações, é correto afirmar que: 
a) Na primeira geração a tecnologia dos circuitos integrados permitiu a substituição 
de centenas de componentes por uma única pastilha de silício. 
b) Na segunda geração nasceu o conceito de família de computadores compatíveis 
que permitiu a migração de sistemas para computadores mais potentes. 
c) Na terceira geração, os computadores eram baseados no uso de relés e válvulas 
permitindo a miniaturização. 
d) Na primeira geração a forma dominante de armazenamento secundário foi 
implementado através de fitas magnéticas que permitiam uma maior capacidade 
e velocidade. 
e) Na terceira geração apareceram os discos magnéticos para o armazenamento 
de dados possibilitando uma maior velocidade já que permitia acesso direto aos 
arquivos. 
 
 
 
 
 
 
 
 
 
 
 
 
24 
 
 
CONCEITOS E MODELOS DE 
PROCESSO DE SOFTWARE 
 
 
 
2.1 MODELOS DE PROCESSOS DE SOFTWARES 
 
Vimos na unidade I, conceitos, caracterização e uma contextualização do 
termo software, e de engenharia de software. Na unidade II, serão abordadas as 
relações da engenharia de software e as fases na construção do projeto de software. 
Essas fases consistem na apresentação de modelos de processos, do ciclo de vida e 
de atividades de processos software. 
O termo processo é definido por Pfleeger (2004 p.36), como sendo um 
“conjunto de tarefas ordenadas (...) uma série de etapas que envolvem atividades, 
restrições e recursos para alcançar a saída desejada”. 
A figura 6 ilustra algumas características de um processo segundo Pfleeger 
(2004). 
Figura 6: Características de um processo 
 
Fonte: Adaptado de Pfleeger (2004, p. 36-37). 
 
 
UNIDADE 
02 
 
 
 
 
 
 
 
 
 
25 
 
 
Em relação aos processos de software, para Sommerville (2007, p. 42), “os 
processos de software são complexos e, como todos os processos intelectuais e 
criativos, dependem de julgamento humano”. Apesar das muitas tentativas do uso 
de ferramentas para a automatização dos processos de software, os resultados são 
bastante limitados, isso por causa dos fatores relacionados à decisão nos projetos, ou 
seja, o uso do julgamento e da criatividade. 
Pressman (2011, p. 40) descreve que no contexto da engenharia de software, 
podemos dizer que o processo de desenvolvimento de software não é um processo 
fixo, rígido, estático, “ao contrário, é uma abordagem adaptável que possibilita às 
pessoas (a equipe de software) realizar o trabalho de selecionar e escolher o conjunto 
apropriado de ações e tarefas”. 
Existem vários tipos de processos de software, desta forma, um bom 
entendimento sobre o funcionamento desses processos auxilia na elaboração dos 
projetos. Existem algumas atividades que são comuns aos diversos tipos de processo, 
assim, é importante entende-las para uma melhor escolha do tipo que será 
selecionado para executar o projeto. Isso porque, confirma afirma Pfleeger (2004), 
“A estrutura do processo orienta nossas ações, permitindo-nos examinar, entender, 
controlar e aprimorar as atividades que compõem” (p.37), ou seja, é fundamental 
que o processo esteja alinhado a metodologia proposta no projeto de software. A 
figura 7 ilustra as atividades comuns no processo de software. 
 
 
 
 
 
 
 
 
 
 
26 
 
 
Figura 7: Atividades fundamentais e comuns no processo de software 
 
Fonte: Adaptado de Sommerville (2007, p.43) 
 
A figura 7 permite concluir que seja qual for o processo escolhido para compor 
o projeto de software, é necessário um processo que contenha a especificação, 
implementação, validação e evolução (manutenção) do projeto de software. As 
seções 2.2 e 2.3 dessa unidade descrevem conceitos e caracterizam os 
processos/ciclos de vida de um software. 
 
 
 
2.2 CICLOS DE VIDA DE UM SOFTWARE 
O ciclo de vida de um software é citado na literatura com diferentes 
denominações, dependendo da abordagem do autor. 
Nessa seção do livro serão abordados modelos de processo de software 
conforme o quadro 2, conforme pressupostos de Sommerville (2007). 
 
Para saber mais sobre o processo de software sugerimos a leitura do capítulo 4 do livro 
Engenharia de Software do autor Ian Sommerville (2007), páginas 42-49. O livro está 
disponível na Biblioteca Virtual: https://abrir.link/slcpS. Acesso em: 20 jan. 2023. 
 
https://abrir.link/slcpS
 
 
 
 
 
 
 
 
 
27 
 
 
Quadro 2: Modelos de Processos de Software 
Modelo em 
Cascata 
Prototipação Engenharia de 
Software 
Baseada em 
Componentes 
Entrega 
Incremental 
Desenvolvimento 
Espiral 
Especificação, 
desenvolvimento, 
validação e 
evolução (Fases 
de processos 
separados). 
Tem o 
objetivo de 
mostrar ao 
usuário, antes 
da entrega 
do produto 
final, um 
protótipo do 
sistema. 
Essa abordagem 
é baseada na 
existência de um 
número 
significativo de 
componentes 
reusáveis. 
A especificação, 
o projeto e a 
implementação 
de software são 
divididos em uma 
série de 
incrementos 
desenvolvidos 
um de cada vez. 
O 
desenvolvimento 
do sistema evolui 
em espiral para 
fora a partir de 
um esboço inicial 
até o sistema 
final. 
 
RUP – Ration 
Unified Process 
Modelo híbrido de processo. Traz elementos de todos os modelos de 
processo indicados nas colunas 1 a 5 desse quadro. 
Fonte: Adaptado de Sommerville (2007). 
 
 
 
A seguir serão descritos com mais detalhes os modelos de processo de 
software apresentados no quadro 2. 
 
2.2.1 Modelo em Cascata 
No modelo em Cascata, também conhecido como ciclo de vida clássico, na 
medida em que se executa o projeto, as informações são trocadas entre as fases e 
os problemas identificados são discutidos durante as fases do projeto. 
A figura 8 ilustra o modelo em cascata, observe que o modelo tem a 
característica de não linearidade. 
 
Uma organização de posse das ferramentas tecnológicas de processo disponíveis pode 
construir um modelo automatizado das tarefas, atividades e da metodologia de 
processos. Ao analisarmos as informações do quadro 2, podemos afirmar que existe um 
modelo único de processo para a elaboração desses projetos? 
 
 
 
 
 
 
 
 
 
28 
 
 
Figura 8: Modelo de processo de software em Cascata 
 
Fonte: Adaptado de Pressman (2011, p. 60). 
 
Dentre as vantagens desse tipo de modelo podemos citar a produção de 
documentos em cada fase e seu uso em outros modelos de projeto. A Desvantagem 
refere-se à inflexibilidade das fases do projeto, ou seja, há resistência no projeto em 
relação a mudanças de requisitos do usuário, dessa forma os requisitos precisam estar 
bem definidos no projeto. 
 
2.2.2 Prototipação 
O modelo de prototipação apresenta inicialmente um produto ao usuário em 
forma de protótipo, e somente depois da aprovação do cliente, o desenvolvimento 
do software é iniciado. O usuário terá acesso ao protótipo, por meio de um sistema 
já existente (sem todas as funcionalidades) oupor meio de aparências das janelas, 
consultas, relatórios, sem funcionalidade, ou através do uso do papel, onde é 
realizado um rascunho das interações com o sistema que será planejado. 
A figura 9 ilustra o modelo processo de prototipação. 
 
 
 
 
 
 
 
 
 
 
29 
 
 
Figura 9: O modelo da prototipação 
 
Fonte: Adaptado de Pfleeger (2004. p. 43). 
 
O processo de prototipação pode ser usado como modelo principal no 
desenvolvimento do software. Algumas práticas indicam que seu uso é mais comum 
como técnica implantada junto com os outros processos de software. De acordo 
com Pressman (2011) “quando os requisitos estão obscuros, o paradigma da 
prototipação auxilia os interessados a compreender melhor o que está para ser 
construído”. O autor completa: 
 
O projeto rápido leva à construção de um protótipo, que é 
empregado e avaliado pelos envolvidos, que fornecerão um retorno 
(feedback), que servirá para aprimorar os requisitos. A iteração ocorre 
conforme se ajusta o protótipo às necessidades de vários interessados 
e, ao mesmo tempo, possibilita a melhor compreensão das 
necessidades que devem ser atendidas (PRESSMAN, 2011, p. 64). 
 
É importante nesse processo considerar o fator relacionado à ansiedade do 
cliente, pois ao ter contato com o protótipo são geradas expectativas, o que pode 
influenciar na entrega final do produto. 
 
2.2.3 Modelo de desenvolvimento Baseado em Componentes 
A característica principal desse processo é o reuso de softwares. A definição 
de reuso no dicionário Priberam (2008), refere-se ao “ato ou efeito de reusar”, e a 
 
 
 
 
 
 
 
 
 
30 
 
 
palavra reusar, significa, “utilizar novamente”. Dessa forma podemos dizer que o 
processo de Engenharia de Software Baseado em componentes utiliza-se de vários 
softwares para a elaboração de outro software. Esse modelo de processo, “depende 
de uma grande base de componentes de softwares reusáveis e algum framework de 
integração desses componentes”. (SOMMERVILLE, 2007, p. 46) 
De acordo com Pressman (2011, p. 69) o modelo baseado em componentes 
possui as seguintes etapas no seu desenvolvimento: 
 
1. Produtos baseados em componentes disponíveis são pesquisados e 
avaliados para o campo de aplicação em questão. 2. Itens de 
integração de componentes são considerados. 3. Uma arquitetura de 
software é projetada para acomodar os componentes. 4. Os 
componentes são integrados na arquitetura. 5. Testes completos são 
realizados para assegurar funcionalidade adequada. 
 
A figura 11 ilustra as etapas e atividades do modelo de processo baseado em 
componentes. 
 
Figura 11: Processo de desenvolvimento de Engenharia de Software Baseada em 
Componentes 
 
Fonte: Adaptado de Sommerville, (2007, p. 46) 
 
A redução de custos e riscos é uma das vantagens desse modelo, isso porque 
reduz a quantidade de software a ser produzido. A desvantagem é que o 
desenvolvimento baseado em uma entrega mais rápida compromete a descrição 
dos requisitos, e consequentemente a possibilidade da entrega de um software que 
não atenda às necessidades reais dos usuários. 
 
 
 
 
 
 
 
 
 
 
31 
 
 
2.2.4 Entrega Incremental 
Nos projetos de construção de softwares de grande porte há muitas pressões 
internas para a mudança de requisitos, dessa forma, são necessárias alterações na 
forma de gerenciamento. “A essência dos processos iterativos é que a especificação 
é desenvolvida conjuntamente com o software”. No modelo incremental, “A 
especificação, o projeto e a implementação de software são divididos em uma série 
de incrementos desenvolvidos um de cada vez (...) o cliente identifica, em linhas 
gerais, os serviços a serem fornecidos pelo sistema” SOMMERVILLE, 2007, p.47). 
A Entrega Incremental combina as vantagens dos modelos evolucionárias e 
modelo em cascata, conforme ilustra a figura 12. 
 
Figura 12: Entrega Incremental – Processo de Software 
 
Fonte: Adaptado de Sommerville, (2007, P. 46) 
 
Observe na figura 12 que a partir do desenvolvimento do incremento do 
sistema, há uma forte iteração entre as atividades e fases do processo. No final ao 
validar um incremento, há um loop e a atividade se reinicia no desenvolvimento de 
outro incremento. 
A seguir, no quadro 3 são apresentados as vantagens e desvantagens da 
Entrega Incremental. 
 
Quadro 3: Vantagens e desvantagens da entrega incremental 
Vantagens 
 
Desvantagens 
 Os clientes não precisam esperar até a 
entrega do sistema inteiro. 
 Os clientes podem utilizar os 
incrementos iniciais como protótipos e 
utiliza-lo como experiência para os 
 Os incrementos devem ser relativamente 
pequenos e cada um deve entregar uma 
funcionalidade do sistema. 
 Dificuldade no mapeamento dos requisitos 
dos clientes em incrementos de tamanho 
 
 
 
 
 
 
 
 
 
32 
 
 
outros incrementos. 
 Existe um risco menor de falha geral do 
projeto, principalmente nas partes mais 
importantes do sistema. 
 
adequado. 
 A maior parte dos sistemas requer um 
conjunto de recursos básicos usados por 
diferentes partes do sistema. 
 Dificuldades na identificação dos recursos 
comuns exigidos por todos os incrementos. 
Fonte: Adaptado de Sommerville (2007, p. 48). 
 
2.2.5 Modelo Espiral 
No modelo espiral “o desenvolvimento do sistema evolui em espiral para fora 
a partir de um esboço inicial até o sistema final” (SOMMERVILLE, 2007, p. 47). O 
desenvolvimento Espiral apresenta quatro atividades importantes: planejamento, 
análise de riscos, engenharia e avaliação do cliente. 
De forma resumida, conforme Sommerville (2007), no planejamento ocorrem 
discussões importantes, tais como a determinação dos objetivos, alternativas e 
restrições. Na análise de riscos ocorre a identificação e resolução dos riscos. Na 
engenharia há o desenvolvimento do produto. E por último, na avaliação do cliente, 
é realizada uma avalição dos resultados da engenharia. 
Um dos pontos principais do modelo espiral e o que diferencia esse modelo 
dos demais modelos é a questão da análise do risco, ou seja, “o que pode dar 
errado”. Na figura 13, podemos observar a relevância dada a atividade de análise 
de riscos se comparado com as outras atividades do modelo. 
 
 
 
 
 
 
 
 
 
 
33 
 
 
Figura 13: Modelo em espiral do processo de software 
 
Fonte: Adaptado Pfleeger (2004, p.47). 
 
As vantagens do modelo espiral são significativas quando comparadas com 
os outros modelos de software. Uma dessas vantagens é que, as interações iniciais 
possuem um baixo custo, e são as que resolvem o maior número de problemas, 
devido à análise de riscos do modelo. A desvantagem é a exigência do modelo em 
relação à competência da avaliação de riscos para que o projeto tenha bons 
resultados; outro problema e o fato do modelo não fornecer indicação da 
quantidade de trabalho em cada ciclo, o que acarreta um aumento de problemas 
para gerência do projeto. 
 
 
 
 
O Rational Unified Process – RUP, idealizado durante o início dos anos 1990, por James 
Rumbaugh, Grady Booch e Ivar Jacobson é um bom exemplo de modelo híbrido de 
processo, ele traz elementos dos modelos iterativos, em cascata, baseado em 
componentes, evolucionário e a prototipação, a partir de uma perspectiva dinâmica, 
(mostra as fases do modelo) estática (Mostra as atividades realizadas) e prática (sugere 
boas práticas a serem realizadas). 
 
 
 
 
 
 
 
 
 
 
34 
 
 
 
 
2.3 ATIVIDADES DE PROCESSO DE SOFTWARE 
É importante ressaltar inicialmente que as atividades do processo de software, 
conforme descreve Sommerville (2007, p. 49), “são organizadas de modo diferente 
nos diversos processos de desenvolvimento”. São relatadas no quadro 5 um resumo 
das quatros atividades básicas do processo de software, segundo o autor. 
 
Quadro 5: Atividades de processo de software 
Atividades Descrição 
Especificação de software Processo para compreender e definir quaisserviços são 
necessários e identificar as restrições de operação e de 
desenvolvimento do sistema. 
Projeto e implementação 
de software 
Processo de conversão de uma especificação de sistema em 
um sistema executável. 
Validação de software O Objetivo é mostrar que um sistema está em conformidade 
com sua especificação e que atende às expectativas do 
cliente que está adquirindo o sistema. 
Evolução do software Mudanças podem ser feitas no software a qualquer instante, 
durante ou após o desenvolvimento do sistema. 
Fonte: Adaptado de Sommerville (2007) 
 
A seguir são descritos com mais detalhes as atividades de processo de 
software ilustradas no quadro 5. 
 
2.3.1 Especificação de software 
O processo de especificação de software é também denominado Engenharia 
de Requisitos. Na unidade 4, trataremos mais específico sobre os processos que 
envolvem os requisitos de um sistema. No geral, de acordo com Pressman (2011, 
p.129) uma: 
especificação de requisitos de software (software requirements specifi 
cation, SrS) é um documento criado quando uma descrição 
detalhada de todos os aspectos do software a ser construído deve ser 
especificada antes de o projeto começar. 
 
Para entender um pouco mais sobre o RUP, leia as páginas 54 a 56 do livro Engenharia de 
software do autor Ian Sommerville. O livro está disponível na biblioteca virtual: 
https://abrir.link/slcpS. Acesso em: 20 jan. 2023. 
 
https://abrir.link/slcpS
 
 
 
 
 
 
 
 
 
35 
 
 
O produto final, portanto, do processo de especificação de software é 
denominado documento de requisito e aborda o conteúdo sobre a especificação 
do sistema. O modelo está ilustrado na figura 14. 
 
Figura 14: Modelo de especificação de requisitos de software 
 
Fonte: Pressman (2011, p.129) 
 
As quatro principais fases da especificação de um software são: estudo de 
viabilidade, elicitação e análise de requisitos, especificação de requisitos e a 
validação de requisitos. Todas essas fases serão descritas com mais detalhes na 
unidade 4 desse livro. 
 
2.3.2 Implementação de software 
O objetivo da atividade que envolve o projeto e a sua implementação é a 
transformação da teoria (projeto do sistema) em prática (sistema executável). A 
figura 14 ilustra com detalhamento o processo de implementação de um projeto de 
software. 
 
 
 
 
 
 
 
 
 
 
36 
 
 
Figura 14: Processo de especificação de um software 
 
Fonte: Adaptado de Sommerville, (2007, p. 47). 
 
A figura 14 mostra as relações das atividades e produtos dos projetos, na 
atividade de elaboração do projeto e implementação de software. “A saída de 
cada atividade de projeto é uma especificação para o próximo estágio. [...] Os 
resultados finais do processo são especificações precisas de algoritmo e estruturas de 
dados a serem implementados” (SOMMERVILLE, 2007, p. 51). 
 
2.3.3 Validação de software 
O processo de validação de um software está diretamente relacionado com 
as verificações do sistema e a conformidade com as solicitações feitas pelo cliente 
que realizou a contratação. A ideia básica da validação do software é a partir da 
localização do erro, elaborar e aplicar o projeto de reparo desse erro, visando o 
acerto dos problemas encontrados. 
Nesse sentido são realizados três estágios de testes: teste no componente, teste 
no sistema e o teste na aceitação, conforme ilustrado na figura 15. 
 
 
 
 
 
 
 
 
 
 
37 
 
 
Figura 15: Processo de Validação de Software 
 
Fonte: Adaptado de Sommerville (2007, p. 52-53) 
 
A Figura 15 ilustra as fases de teste no processo de software. Acompanhando 
o fluxo da seta, primeiramente testam-se os componentes individuais, na sequência 
a integração dos componentes e por último é realizado, uma simulação, um teste 
com dados fornecidos pelo cliente. Observe que caso haja uma necessidade de se 
retornar a uma fase de teste isso é possível, ou seja, se o projeto encontra-se na fase 
de teste do sistema e há demanda para se testar novamente um componente, o 
processo poderá ser realizado. 
Complementando as informações da figura 15, a figura 16 mostra o fluxo para 
reparo do erro em um sistema de software. 
 
Figura 16: Fluxo para reparo do erro no processo de software (Debugging) 
 
Fonte: Adaptado de Sommerville (2007, p.52-53) 
 
Na figura 16 observa-se que após a detecção do erro (processo de 
debugging), inicia-se o processo de verificação do erro e em seguida os 
procedimentos para o reparo. No final uma reavaliação do programa é realizada 
finalizando o processo. 
 
 
 
 
 
 
 
 
 
 
38 
 
 
2.3.4 Evolução (manutenção) de software 
Evolução significa transformar algo ao longo de um determinado período. 
Historicamente as preocupações com o processo de manutenção de um software 
sempre ficaram em um plano inferior, a preocupação sempre está centrada no 
desenvolvimento do sistema. Para Sommerville (2007, p. 54) apesar de historicamente 
da manutenção de um software ser considerada menos desafiador do que o 
desenvolvimento é preciso: 
considerar o desenvolvimento e a manutenção de forma contínua. 
Em vez de dois processos separados, é mais realista pensar na 
engenharia de software como um processo evolutivo, no qual o 
software e continuamente alterado ao longo de sua vida, em 
respostas a mudanças de requisitos e as necessidades do cliente. 
 
 
 
 
 
 
 
 
 
 
 
39 
 
 
 
 
Por meio do estudo da unidade 2, foi possível perceber conceitos e relações 
importantes do termo processo e dos modelos propostos de processos de software. 
Foi possível também estudar os ciclos de vida de software e entender o 
funcionamento de cada ciclo no contexto do desenvolvimento dos projetos de 
software. Vimos, também, as quatro principais atividades do processo de software, 
seus fundamentos e conceitos. Na unidade 3, estudaremos de forma introdutória o 
gerenciamento de projetos. 
 
Manutenção de software 
As alterações feitas no software podem ser simples mudanças para correção de erros de 
codificação, até mudanças mais extensas para correção de erros de projeto, ou 
melhorias significativas para corrigir erros de especificação ou acomodar novos requisitos. 
As mudanças são implementadas por meio da modificação de componentes do sistema 
existente e, quando necessário, por meio da adição de novos componentes 
(SOMMERVILLE, 2007, p. 327). 
Gráfico 1: Distribuição de esforço de manutenção 
Gráfico 2: Custo de desenvolvimento e manutenção 
 
Fonte: Sommerville (2007, p.327) 
 
Analisando os dados dos gráficos 1 e 2 podemos retirar algumas conclusões sobre o 
processo de desenvolvimento e manutenção do projeto de software. Dessa forma, ao 
separarmos de um projeto de software a etapa da manutenção da etapa do 
desenvolvimento, qual o maior risco que podemos correr? O prejuízo será maior ou menor? 
É mais fácil trabalhar com o erro no decorrer do processo ou entregar o produto e esperar 
que os erros se acumulem para resolver todos de uma só vez? 
 
 
 
 
 
 
 
 
 
 
40 
 
 
 
 
 
 
 
 
A engenharia de software auxiliada por computador – CASE (Computer-Aided Sofware 
Enginnering) refere-se aos softwares utilizados para dar apoio às atividades do projeto de 
software, a partir da automação de algumas atividades referente ao processo. 
Para saber mais sobre ferramenta CASE, sugerimos a leitura do título: “Engenharia de 
software auxiliada por computador” páginas 56 e 57 do livro engenharia de software de 
Ian Sommerville. O livro está disponível na biblioteca virtual: https://abrir.link/slcpS. Acesso 
em: 20 jan. 2023. 
 
https://abrir.link/slcpS
 
 
 
 
 
 
 
 
 
41 
 
 
FIXANDO O CONTEÚDO 
 
1. Analise as proposições abaixo referentes às características de um processo: 
I. Restrições e controles só podem ser aplicados a uma atividade do processo; 
II. Os processos possuem um conjunto de diretrizes que explicam os objetivos detodas 
as atividades; 
III. Cada atividade do processo tem critérios de entrada e saída, de modo que seja 
possível saber quando o processo começa e termina; 
IV. Nos processos é importante atribuir critérios de entrada e saída para cada 
atividade, o objetivo é saber quando um processo começa e termina. 
Estão corretos: 
a) I, II, III e IV. 
b) I, II e III. 
c) II, III e IV. 
d) II e IV. 
e) III e IV. 
 
2. Observe a imagem e analise as proposições: 
 
Fonte: Pressman, (2011, p. 60) 
 
I. Em 5, as atividades principais desenvolvidas e a entrega do produto e a 
realização dos feedbacks. 
II. Em 3, o objetivo é realizar a previsão das atividades a partir da elaboração do 
cronograma e realizar o acompanhamento das atividades. 
III. O modelo de processo de software apresentado na figura é o modelo em 
prototipação, considerado o paradigma mais antigo da engenharia de 
software. 
IV. Na fase 1 da figura o objetivo é que sejam definidos todas as necessidades, 
um ponto criticado atualmente no modelo, tendo em vista que é difícil para o 
cliente estabelecer explicitamente todas as necessidades. 
V. O modelo apresentado na figura sugere uma abordagem sequencial e 
 
 
 
 
 
 
 
 
 
42 
 
 
sistemática para o desenvolvimento de software. 
Estão corretas: 
a) I, IV e V. 
b) I, II, III e V. 
c) I, III, IV e V. 
d) II, IV e V. 
e) II, III e IV. 
 
3. (IFMS-2016) O Modelo de Processo de Software em Espiral (Boehm) é caracterizado 
por não representar o processo de software como uma sequência de atividades com 
algum retorno entre uma atividade e outra, mas sim, como uma espiral. Cada loop, 
na espiral, representa uma fase do processo de software que é dividido em quatro 
setores. Cronologicamente, os setores estão organizados como: 
a) análise de negócio; avaliação e redução de riscos; desenvolvimento e validação; 
planejamento. 
b) planejamento; definição de objetivos; avaliação e redução de riscos; 
desenvolvimento e validação. 
c) definição de objetivos; avaliação e redução de riscos; desenvolvimento e 
validação; planejamento da próxima fase. 
d) planejamento; análise de negócio; avaliação e redução de riscos; 
desenvolvimento e validação. 
e) planejamento; análise de negócio; definição de objetivos; desenvolvimento. 
 
4. Em relação ao ciclo de vida de um software, associe as duas colunas a seguir: 
I. Modelo Espiral 
 
(A) Sugere uma abordagem sequencial e sistemática para o 
desenvolvimento de software, começando com o 
levantamento de necessidades por parte do cliente. 
II. Modelo em Cascata (B) Cada loop representa uma fase de processo do software. 
III. Engenharia baseada 
em componentes 
(C) O cliente define uma série de objetivos gerais para o 
software, mas não identifica, detalhadamente, os requisitos 
para funções e recursos. 
IV.Entrega incremental (D) Baseia-se em componentes reusáveis. 
V. Prototipação (E) Intercala atividades de especificação, desenvolvimento e 
validação. 
 
A sequência CORRETA é: 
a) I-E, II-A, III-C, IV-B, V-D. 
b) I-B, II-A, III-E, IV-C, V-D. 
 
 
 
 
 
 
 
 
 
43 
 
 
c) I-B, II-A, III-D, IV-E, V-C. 
d) I-E, II-B, III-D, IV-B, V-C. 
e) I-A, II-B, III-E, IV-D, V-C. 
 
5. As proposições abaixo se referem às atividades de processo de software. Analise-
as para responder a questão: 
I. O documento de requisito é considerado o documento que inicia as atividades 
de especificação de software. 
II. Na atividade de implementação de software, a discussão entre o que foi escrito 
no projeto e o que está sendo aplicado é uma das principais características. 
III. No processo de validação de um software, antes de reparar o erro, a equipe 
realiza o teste de componentes, integração e simulação. 
Está (ão) correta (s): 
a) I, II e III. 
b) I e II. 
c) Somente II. 
d) Somente III. 
e) II e III. 
 
6. Observe o trecho: “Trabalhos posteriores propuseram métodos para a tradução de 
fluxos de dados ou da estrutura de dados em uma definição de projeto. Abordagens 
de projeto mais recentes propuseram uma abordagem orientada a objetos para a 
derivação do projeto. Atualmente, a ênfase em projeto de software tem sido na 
arquitetura de software e nos padrões de projeto que podem ser utilizados para 
implementar arquiteturas de software e níveis de abstração de projeto mais baixos”. 
(PRESSMAN, 2011, p. 211) 
 
O trecho acima se refere à atividade do projeto de software: 
 
a) Evolução de software. 
b) RPU. 
c) Validação de software. 
d) Projeto de implementação de software. 
e) Análise de requisitos. 
 
 
 
 
 
 
 
 
 
44 
 
 
 
7. Observe o recorte da imagem: 
 
Fonte: (Pfleeger, 2004, P. 89) 
 
A etapa anterior a “Codificação” e posterior “Teste do sistema” são: 
 
a) Projeto do programa e Teste de Aceitação 
b) Projeto de programa e Operação e Manutenção 
c) Projeto de Sistema e Teste de Aceitação 
d) Projeto de Sistema e Manutenção 
e) Definição de Requisitos e Manutenção 
 
8. “Originalmente proposto por Barry Boehm [Boe88], o modelo espiral é um modelo 
de processo de software evolucionário que acopla a natureza iterativa da 
prototipação com os aspectos sistemáticos e controlados da modelo cascata” 
(PRESSMAN, 2011, p. 65). 
Sobre o modelo espiral analise as proposições abaixo: 
 
I. Um dos principais pontos do modelo espiral, é que o modelo parte do princípio que 
a forma de desenvolvimento do software precisa ser completamente determinada 
de antemão. 
II. Um dos ciclos no modelo espiral refere-se a avaliar alternativas com relação aos 
objetivos e restrições, e identificar as principais fontes de riscos. 
III. No modelo espiral, a estratégia para se descobrir os problemas é a prototipação, 
que é vista como um meio de redução de riscos. 
IV. Na etapa de planejamento da próxima fase, configura-se uma atividade 
preventiva, tendo em vista que o projeto poderá ser abortado se apresentar um alto 
fator de risco. 
 
 
 
 
 
 
 
 
 
45 
 
 
Estão corretas: 
a) I, II e IV. 
b) I, II e III. 
c) I e IV. 
d) II, III e IV. 
e) II, III e IV. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46 
 
 
INTRODUÇÃO AO 
GERENCIAMENTO DE PROJETOS 
 
 
 
 
3.1 VISÃO GERAL E CONCEITOS DO GERENCIAMENTO DE PROJETOS 
De acordo com o guia PMBOK - Guide to the Project Management Body of 
Knowledge ou Guia para o Conjunto de Conhecimentos de Gerenciamento de 
Projetos (2017, p.4), podemos definir projeto como sendo: “um esforço temporário 
empreendido para criar um produto, serviço ou resultado único. Projetos são 
realizados para cumprir objetivos através da produção de entregas”. Conforme 
consta no guia é possível à produção de uma ou mais entregas de: 
 
um produto único que pode ser um componente de outro item, um 
aprimoramento ou correção de um item ou um novo item final (...) um 
serviço único ou uma capacidade de realizar um serviço (...) um 
resultado único, como um produto ou documento; (...) e uma 
combinação única de um ou mais produtos, serviços ou resultados. 
(p.4) 
 
 
A definição e a caracterização do termo projeto têm como objetivo ajudar na 
elucidação do contexto de um estudo inicial sobre o gerenciamento de projetos. A 
figura 17 apresenta algumas características importantes sobre projetos. 
 
UNIDADE 
03 
 
 
 
 
 
 
 
 
 
47 
 
 
Figura 17: Contexto de iniciação do projeto 
 
Fonte: Adaptado de Guia PMBOK (2017, p. 08) 
 
Em relação ao gerenciamento de projetos, o guia PMBOK (2017, p. 10) define 
como sendo “a aplicação de conhecimentos, habilidades, ferramentas e técnicas 
às atividades do projeto a fim de cumprir os seus requisitos”. 
O gerenciamento de um projeto pode ser considerado como bom ou ruim, 
dependendo de vários fatores, seja eles internos ou externos. Para ajudar na 
compreensão desses fatores, é descrito no quadro 6, uma visão geral de 
características de gerenciamento de projetosconsiderados eficazes e mal 
gerenciados ou a ausência do gerenciamento. 
 
Quadro 6: Visão geral sobre a concepção de projetos 
Gerenciamento de projetos eficazes Projetos mal gerenciados ou ausência de 
gerenciamento 
 Cumprirem os objetivos do negócio; 
 Satisfazerem as expectativas das partes 
interessadas; 
 Serem mais previsíveis; 
 Aumentarem suas chances de sucesso; 
 Entregarem os produtos certos no 
momento certo; 
 Resolverem problemas e questões; 
 Responderem a riscos em tempo hábil; 
 Otimizarem o uso dos recursos 
organizacionais; 
 Identificarem, recuperarem ou 
 Prazos perdidos; 
 Estouros de orçamento; 
 Má qualidade; 
 Retrabalho; 
 Expansão descontrolada do projeto; 
 Perda de reputação para a organização; 
 Partes interessadas insatisfeitas; e 
 Incapacidade de alcançar os objetivos 
para os quais o projeto foi empreendido 
 
 
 
 
 
 
 
 
 
48 
 
 
Gerenciamento de projetos eficazes Projetos mal gerenciados ou ausência de 
gerenciamento 
eliminarem projetos com problemas; 
 Gerenciarem restrições 
 Equilibrarem a influência de restrições do 
projeto e 
 Gerenciarem melhor as mudanças 
Fonte: Guia PMBOK, (2017, p. 10). 
 
 
 
De um modo geral o gerenciamento de projetos é agrupado em cinco 
grandes grupos de processos: iniciação, planejamento, execução, monitoramento e 
controle e encerramento (PMBOK, 2017, p.21) 
 A iniciação é responsável pela definição e autorização de todo ou fase do 
projeto, 
 No planejamento trabalha-se com a definição e ações necessárias para 
viabilização dos objetivos. 
 Na execução realiza-se a integração das pessoas e recursos envolvidos para 
o plano de gerenciamento do projeto, além de concluir o trabalho definido 
no plano de gerenciamento do projeto com o objetivo de satisfazer os 
requisitos do projeto. 
 O grupo de monitoramento e controle é responsável pela medição constante 
do processo, com o objetivo de identificar as variações em relação ao plano 
de gerenciamento do projeto para o início das mudanças correspondentes. 
 No encerramento é formalizada a aceitação do produto, serviço ou resultado. 
Outro ponto do gerenciamento de projetos refere-se à equipe de trabalho, ou 
seja, o gerenciamento das partes interessadas dos projetos. A figura 18 apresenta um 
breve resumo das fases que envolvem esse gerenciamento. 
 
Para saber um pouco mais sobre as concepções de projetos e sistemas, sugerimos a 
leitura da unidade I, “Aqui começa o projeto”, do livro: “Gestão de projetos” do autor 
Fabio Câmara Araújo de Carvalho, páginas 1 a 18. O livro está disponível na biblioteca 
virtual: https://abrir.link/AYI52. Acesso em: 20 jan. 2023. 
 
https://abrir.link/AYI52
 
 
 
 
 
 
 
 
 
49 
 
 
Figura 18: Os processos de gerenciamento das partes interessadas do projeto são: 
 
Fonte: Adaptada do guia PMBOK (2017, p. 503). 
 
O gerenciamento das partes interessadas do projeto, em geral pode ser 
resumida de acordo com o guia PMBOK, (2017): 
 
inclui os processos exigidos para identificar todas as pessoas, grupos 
ou organizações que podem impactar ou serem impactados pelo 
projeto, analisar as expectativas das partes interessadas, seu impacto 
no projeto e desenvolver estratégias de gerenciamento apropriadas 
para o engajamento eficaz das partes interessadas nas decisões e na 
execução do projeto. (p.503) 
 
O conceito abordado nessa seção teve como objetivo descrever uma visão 
geral do termo projeto e do gerenciamento de projeto. No próximo capítulo será 
abordada uma visão geral das etapas específicas do gerenciamento de projeto de 
software. 
 
3.2 ATIVIDADES, PLANEJAMENTO E CRONOGRAMA DE PROJETOS DE 
SOFTWARES 
O gerenciamento de projetos de software é “parte essencial da engenharia 
de software” (SOMMERVILLE 2007, p.61). Como foi abordado no item 3.1 desse livro, 
 
 
 
 
 
 
 
 
 
50 
 
 
um mau gerenciamento de projeto, pode resultar em falha grave nos projetos. Dessa 
forma, é importante que a seleção da pessoa responsável pelo controle e 
coordenação desse tipo de projeto seja realizada com responsabilidade e critério. 
No gerenciamento de projetos de software, os profissionais responsáveis pelo 
desenvolvimento de planos e cronograma dos projetos são os gerentes de software. 
Além dessa função, eles também “supervisionam o trabalho para assegurar que ele 
esteja sendo realizado dentro dos padrões exigidos e monitoram o progresso para 
verificar se o desenvolvimento está no prazo e dentro do orçamento” SOMMERVILLE 
(2007, p.61). 
 
3.2.1 Visão geral das atividades de gerenciamento de projeto de software 
As atividades de um projeto, em geral, estão diretamente relacionadas ao 
“processo de identificação e documentação das ações específicas a serem 
realizadas para produzir as entregas do projeto” (PMBOK, 2017, p. 183). Uma 
atividade de gerenciamento de projeto de software está associada a “parte do 
projeto que acontece ao longo de determinado período” (PFLEEGER 2004, p.64). 
A figura 19 ilustra a proposta de atividades em um projeto de gerenciamento 
de software. 
 
 
 
 
 
 
 
 
 
 
51 
 
 
Figura 19: Esboço das atividades de gerenciamento de software 
 
Fonte: Adaptado de Sommerville (2007, p. 62-63) 
 
3.2.2 Visão geral do planejamento de gerenciamento de projeto de software 
Conforme já citado no item 3.1 desse livro, o planejamento, de uma forma 
geral, trabalha visando a realização dos objetivos do projeto. Nos projetos de 
gerenciamento de software, para que os objetivos sejam alcançados são necessários 
planos de ações. O quadro 7, exibe informações, sobre os planos de ações de um 
planejamento de projeto de software. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52 
 
 
Quadro 7: Tipos de planos de ação 
Plano Descrição 
Plano de qualidade 
Descreve os procedimentos e os padrões de 
qualidade usados no projeto. 
Plano de validação 
Descreve a abordagem, os recursos e o 
cronograma usado para a validação do sistema. 
Plano de gerenciamento de 
configuração 
Descreve os procedimentos e a estrutura de 
gerenciamento de configuração a serem usados. 
Plano de manutenção 
Prevê os requisitos de manutenção do sistema, os 
cultos de manutenção e o esforço necessário. 
Plano de desenvolvimento de 
pessoal 
Descreve como as habilidades e a experiência dos 
membros da equipe de projeto será desenvolvida. 
Fonte: Sommerville (2007, p. 64). 
 
Em um planejamento de projeto de software, as ações devem ser elaboradas 
e acompanhadas pelo gerente do projeto. Na figura 20, é possível identificar as 
ações referentes ao planejamento de projeto de software. Note, na figura, que há 
um “loop” ao término da ação final, caso haja um novo problema, o processo é 
reiniciado. 
Figura 20: Ações do planejamento de projeto de software 
 
Fonte: Sommerville (2007, p.64) 
 
 
 
 
 
 
 
 
 
 
53 
 
 
Um conceito importante e que tem relação direta com as atividades é o termo 
“marco”. Diferente de atividade, o marco, pode ser definido como sendo “um ponto 
final reconhecível de uma atividade do processo e software” SOMMERVILLE (2007, p. 
65). Para Pfleeger (2004), na relação entre marco e atividade, pode-se afirmar que 
“uma atividade tem um começo e um fim, ao passo que o marco é o fim de uma 
atividade – um momento específico no tempo”. 
A figura 21 ilustra o conceito e as relações entre atividade e marco no 
planejamento de projeto de software, observe na figura a descrição do marco e sua 
finalização em uma atividade. 
Figura 21: Atividade e marcos no processo de requisitos 
 
Fonte: Adaptada de Sommerville, (2007, p.65). 
 
3.2.3 Visão geral do cronograma de gerenciamento de projeto de software 
Cronograma de projeto de software “é uma atividade que distribui o esforço 
estimado por toda a duração planejada do projeto alocando esse esforço para 
tarefas específicas de engenharia de software” PRESSMAN (2011, p.

Mais conteúdos dessa disciplina