Buscar

Unidade 4 - Aula 16

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

Manutenção de Software
Apresentação
A palavra manutenção é originada do Latim "mantenus tenere", que significa "manter aquilo que se 
tem". Na engenharia de software, a manutenção do software é a última etapa do seu 
desenvolvimento, quando ele já está pronto, operacional, e precisa de reparos e modificações para 
continuar atendendo novos requisitos que surgem. Um software que é criado e não possui 
manutenção pode ser pouco utilizado ou até mesmo inutilizado. Constantes atualizações para 
corrigir falhas e realizar melhorias são essenciais para que ele continue "vivo".
Nesta Unidade de Aprendizagem, você irá adquirir conhecimentos fundamentais para entender o 
processo de manutenção de software e os problemas que podem ocorrer na sua manutenção. Verá 
também alguns dos motivos de mudanças e a necessidade da manutenção.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Explicar os conceitos gerais de manutenção de software.•
Identificar os problemas que podem ocorrer na manutenção de software.•
Analisar os motivos de mudanças de software.•
Desafio
Analise as seguintes situações de manutenção de software:
 
Das situações apresentadas, cada uma se refere a um tipo de manutenção (adaptativa, corretiva, 
evolutiva, preventiva). Qual o tipo de manutenção ocorreu em cada situação? Justifique a sua 
resposta.
Infográfico
A manutenção de software é utilizada tanto como processo de melhoria e otimização de software 
como para reparar defeitos e deficiências observadas pelo usuário durante o uso. Veja no 
infográfico seguinte os principais conceitos da fase de manutenção de software.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/fbc75475-486b-4ab0-b7f6-ac8246b96b84/4b2acecd-9e8d-42a6-8d6c-52f43fc34078.jpg
Conteúdo do livro
Todo software que obtém sucesso e conquista usuários passará por manutenções e essas são 
realizadas para o aperfeiçoamento, correção de problemas e adequação do programa. É muito 
comum, após a implementação e uso de um sistema, existir solicitação e necessidade de realizar 
alterações ou melhorias.
Acompanhe a leitura do capítulo Manutenção de software, da obra Engenharia de Software, para 
compreender a manutenção de software e os problemas que podem ocorrer durante o processo.
Boa leitura.
ENGENHARIA DE 
SOFTWARE 
Izabelly Soares de Morais
Manutenção de software
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Explicar os conceitos gerais de manutenção de software. 
 � Identificar os problemas que podem ocorrer na manutenção de 
software. 
 � Analisar os motivos de mudanças de software.
Introdução
A palavra “manutenção” é originada do latim mantenus tenere, que significa 
“manter aquilo que se tem”. Na engenharia de software, a manutenção 
do software é a última etapa do seu desenvolvimento, quando ele já está 
pronto, operacional, e precisa de reparos e modificações para continuar 
atendendo novos requisitos que surgem. Um software criado e que não 
possui manutenção pode ser pouco utilizado ou até mesmo inutilizado. 
Constantes atualizações para corrigir falhas e realizar melhorias são es-
senciais para que ele continue “vivo”.
Neste capítulo, você vai adquirir conhecimentos fundamentais para 
entender o processo de manutenção de software e os problemas que 
podem ocorrer na sua manutenção. Você vai ver, também, alguns dos 
motivos de mudanças e a necessidade da manutenção.
Manutenção de software: conceitos gerais
O desenvolvimento de software não é interrompido quando o sistema é en-
tregue, mas continua por toda a vida útil do sistema. Depois que o sistema é 
implantado, para que ele se mantenha útil é inevitável que ocorram mudanças. 
A evolução do software é importante, pois as organizações investem gran-
des quantias de dinheiro em software e são totalmente dependentes desses 
sistemas. Seus sistemas são ativos críticos de negócios, e as organizações 
devem investir nas mudanças de sistemas para manter o valor desses ativos. 
Consequentemente, a maioria das grandes empresas gasta mais na manu-
tenção de sistemas existentes do que no desenvolvimento de novos sistemas 
(SOMMERVILLE, 2011).
Todo sistema é desenvolvido para uma finalidade, ou seja, resolvem algum 
problema ou ajudam os usuários em alguma atividade específica. Porém, esta-
mos sempre em constante processo de mudanças, nas quais, com o passar do 
tempo, algumas coisas acabam obsoletas. O mesmo ocorre com um software, 
ou seja, não quer dizer que, porque um software foi desenvolvido com todas 
as funcionalidades operando corretamente para solucionar algum problema, 
ele nunca precisará de alguma manutenção. 
O ciclo de vida de um software é composto por algumas fases: definição 
de requisitos, projeto de software, implementação e teste de unidades, inte-
gração e teste do sistema e, por fim, operação e manutenção do software. 
Dessa forma, não importa a finalidade do software, em algum momento este 
irá demonstrar sinais de que precisa passar por uma manutenção, seja por 
meio da atualização de suas funções, ou até mesmo para que configurações 
do sistema sejam adaptadas aos requisitos do sistema.
A manutenção de um software, como o próprio termo já diz, promoverá 
a realização de mudanças no sistema, ou até mesmo a adaptação deste com 
um novo contexto, no qual ele pode ser inserido. Sabemos que tudo precisa 
de manutenção e com o software não é diferente. 
É importante salientar que toda modificação em um software irá interferir na questão 
do custo-benefício. Dessa forma, mesmo que mudanças aconteçam no software, 
mesmo quando ele já tenha sido entregue ao usuário, irá ter algum custo financeiro. 
Nem sempre as mudanças são cabíveis; muitas vezes, é mais barato desenvolver outro 
software do que inserir diversas mudanças em algum já existente. Cabe à equipe de 
desenvolvimento ou de manutenção avaliar, pois pode variar de software para software. 
Manutenção de software2
Motivos das mudanças de software
Para Sommerville (2011), prever o número de solicitações de mudança para 
um sistema requer uma compreensão do relacionamento entre o sistema e seu 
ambiente externo. Alguns sistemas têm relacionamento muito complexo com 
seu ambiente externo, e as mudanças nesse ambiente inevitavelmente resultam 
em alterações. Sob o ponto de vista de Sommerville (2011), historicamente 
sempre houve uma separação entre o processo de desenvolvimento e o de 
manutenção do software. Os custos da manutenção geralmente são mais altos 
do que os custos iniciais do desenvolvimento. Os processos de manutenção são, 
em alguns casos, considerados menos desafiadores do que o desenvolvimento 
do software original. A distinção entre o desenvolvimento e a manutenção do 
software é vista muitas vezes como irrelevante. Poucos sistemas de software 
são completamente novos, e faz muito mais sentido ver o desenvolvimento e 
a manutenção como processos contínuos. A Figura 1 a seguir mostra algumas 
etapas que podem ser seguidas.
Figura 1. Etapas para a manutenção.
Fonte: Sommerville (2011, p. 166).
Novo
Sistema
Processo de
identificação de
mudanças
Processo de
evolução
de software
Proposta de
mudanças
3Manutenção de software
Dessa forma, podemos perceber que a manutenção do software pode mesmo 
ser vista como uma evolução, na qual, de acordo com Sommerville (2011), 
existe uma fase em que há a identificação de mudanças e, posteriormente, 
as propostas devem ser avaliadas, pois, como já comentamos neste capítulo, 
as mudanças sempre interferem na relação de custo-benefício, por isso há o 
processo de evolução do software, no qual esse processo pode ser viável, ou não.
De acordo com Schach (2010), existem três razões principais para realizar 
modificações em um produto: 
1. Uma falha precisa ser corrigida, seja ela uma falha de análise, projeto, 
decodificação, documentaçãoou qualquer outro tipo. Isso é denominado 
manutenção corretiva. Neste ponto, Sommerville (2011) acrescenta 
que a falha, ou defeito, geralmente é grave o suficiente para impedir a 
continuidade do funcionamento normal do sistema.
2. Na manutenção de aperfeiçoamento, é feita uma modificação no código 
para aumentar a eficácia do produto. Por exemplo, o cliente pode querer 
funcionalidade adicional ou solicitar que o sistema seja modificado para 
que fique mais rápido. Aumentar a facilidade de manutenção de um 
produto é outro exemplo de manutenção de aperfeiçoamento. 
3. Na manutenção adaptativa, é feita uma modificação no produto como 
resposta a uma modificação no ambiente em que ele opera. Por exemplo, 
é quase certo que um produto tenha de ser modificado se ele for portado 
para um novo compilador, um sistema operacional ou um hardware. 
A cada mudança na legislação tributária, um produto que ajuda na 
preparação de declarações de imposto de renda precisa ser modificado 
de acordo. Quando o correio norte-americano introduziu os CEPs 
com nove dígitos em 1981, os produtos que permitiam o uso de CEPs 
com apenas cinco dígitos tiveram de ser modificados. A manutenção 
adaptativa não é solicitada pelo cliente; pelo contrário, ela é imposta 
ao cliente por um agente externo.
Para Sommerville (2011), fica claro que os programadores de manutenção 
devem ter praticamente todas as habilidades técnicas que um profissional de 
software deve ter. Mas o que ele ganha em troca?
 � A manutenção pós-entrega é um trabalho ingrato em todos os aspectos. 
Os profissionais de manutenção têm de lidar com usuários insatisfeitos, 
pois, se estivessem contentes com o produto, este não precisaria de 
manutenção.
Manutenção de software4
 � Os problemas do usuário frequentemente são causados por aqueles 
que desenvolveram o produto, e não pelo profissional de manutenção.
 � O próprio código poderia ter sido malfeito, o que é mais um fator que 
se acumula às frustrações do profissional de manutenção.
 � A manutenção pós-entrega é menosprezada por muitos desenvolvedores 
de software, que consideram a atividade de desenvolvimento de sof-
tware um trabalho glamouroso e a manutenção, um trabalho escravo, 
apropriado apenas para programadores novatos ou incompetentes. Ela 
pode ser comparada ao atendimento pós-venda. O produto foi entregue 
ao cliente, porém, ele está insatisfeito, pois o produto não funciona 
corretamente, não faz tudo o que deseja ou as circunstâncias para as 
quais ele foi construído mudaram de alguma forma. Existem diversos 
problemas que podem ser encontrados nessa fase, os quais veremos 
no próximo tópico.
Problemas que podem ocorrer na manutenção 
de software
Conforme Pressman e Maxim (2016), enfrentamos uma fila cada vez maior 
de correções de erros, solicitações de adaptação e melhorias que devem ser 
planejadas, programadas e, por fim, executadas. Logo, a fila já cresceu muito e 
o trabalho ameaça devorar os recursos disponíveis. Com o passar do tempo, sua 
empresa descobre que está gastando mais tempo e dinheiro com a manutenção 
dos programas do que criando novas aplicações. Não é raro uma empresa de 
software despender de 60% a 70% de todos os recursos com manutenção de 
software.
Pressman e Maxim (2016) questionam sobre a necessidade da realização 
de tanta manutenção e se tanto esforço deve ser despendido. Traz, ainda, uma 
possível resposta dada por Osborne e Chikofsky (1990 apud PRESSMAN; 
MAXIM, 2016, p. 797): “Muitos softwares dos quais dependemos hoje têm 
de 10 a 15 anos, em média. Mesmo quando esses programas foram criados, 
usando as melhores técnicas de projeto e codificação conhecidas na época 
(e muitos não foram), o tamanho do programa e o espaço de armazenamento 
eram as preocupações principais. Eles então migraram para novas plataformas, 
foram ajustados para mudanças nas máquinas e na tecnologia dos sistemas 
operacionais e aperfeiçoados para atender a novas necessidades dos usuários 
– tudo isso sem grande atenção à arquitetura geral. O resultado são estruturas 
5Manutenção de software
mal projetadas, mal codificadas, de lógica deficiente e mal documentadas em 
relação aos sistemas de software, e que devemos manter funcionando [...]”.
Outra razão para o problema de manutenção do software é a mobilidade dos 
profissionais. É provável que a equipe (ou pessoa) responsável pelo trabalho 
original não esteja mais por perto, ou, pior ainda, que outras gerações de 
profissionais de software possam ter modificado o sistema e já não estejam 
mais presentes. Hoje, pode não ter restado ninguém que tenha conhecimento 
direto do sistema legado (PRESSMAN; MAXIM, 2016). Se pararmos para 
analisar, a manutenção do software pode trazer o problema de métricas esco-
lhidas durante seu processo de produção, ou seja, o sistema final é fruto de 
diversas escolhas que abrangem as mais variadas vertentes de um software. 
Dessa forma, isso pode ser considerado mais um problema para a realização 
da manutenção pós-entrega de um software.
Nesta etapa, podemos notar a importância da documentação do software 
e o modo como essa documentação foi concebida. Sua eficácia é ratificada 
neste momento, no qual, para realizar a manutenção, a equipe terá como base 
a documentação produzida, a qual deve trazer os mínimos detalhes sobre o 
software. 
De acordo com Schach (2010), um relatório de defeitos será preenchido, se, 
na opinião do usuário, o produto não estiver funcionando como especificado 
no manual do usuário. Existem várias causas possíveis. Primeiro, pode ser 
que não haja nada de errado; pode ser que o usuário tenha interpretado mal o 
manual ou esteja usando o produto incorretamente. De modo alternativo, se 
existe uma falha no produto, pode ser que simplesmente o manual do usuário 
tenha sido mal redigido e não haja nada de errado com o código. Entretanto, 
normalmente existe alguma imperfeição no código. Porém, antes de fazer 
qualquer modificação, o programador de manutenção deve determinar exa-
tamente onde está a imperfeição e usar o relatório de defeitos preenchido pelo 
usuário, o código-fonte, nada mais. Consequentemente, o programador de 
manutenção precisa ter habilidades de depuração muito acima da média, pois 
a imperfeição poderia estar em qualquer ponto do produto. A causa original 
do defeito poderia estar, até o momento, nos artefatos de projeto ou de análise.
Conclui-se que o processo de desenvolvimento de software deve ser percor-
rido com muita cautela e a escolha de métodos, ferramentas e equipe poderá 
afetar não só o processo, mas também o resultado final, que é o sistema, e, 
consequentemente, a sua usabilidade estará atrelada a todos esses fatores 
citados anteriormente. Dessa forma, é sempre importante a realização de uma 
Manutenção de software6
preparação inicial antes do começo de ciclo de vida do software. A manutenção 
requer atenção tanto quanto as demais etapas do processo, pois ela garante o 
tempo de vida útil do software. 
Nesta fase de manutenção de software, um documento específico pode ser desen-
volvido, chamado de relatório de defeitos. 
A primeira coisa necessária ao se fazer a manutenção de um produto é um proce-
dimento para modificá-lo. Em relação à manutenção corretiva, isto é, à eliminação de 
falhas residuais, se o produto não estiver funcionando corretamente, então o usuário 
deverá preencher um relatório de defeitos, que deve conter informações suficientes 
para permitir que o programador de manutenção repare o problema. Normalmente 
trata-se de algum tipo de defeito de software. Além disso, o programador de manu-
tenção deve indicar a gravidade do defeito. Categorias de gravidade típicas são: crítico, 
importante, normal, secundário e trivial (SCHACH, 2010).
7Manutenção de software
OSBORNE, W. M.; CHIKOFSKY, E. J. Fitting pieces to the maintenance puzzle. IEEE 
Software, Los Angeles, p. 11-12, Jan. 1990.
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 
8. ed. Porto Alegre: AMGH, 2016.
SCHACH,S. R. Engenharia de software: os paradigmas clássicos e orientado a objetos. 
7. ed. Porto Alegre: AMGH, 2010.
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011.
Leitura recomendada
PFLEEGER, S. L. Engenharia de software: teoria e prática. 2. ed. São Paulo: Prentice-
-Hall, 2004.
Dica do professor
Nesta Dica do Professor, iremos falar sobre o processo de manutenção de software, os problemas 
que podem ocorrer na sua manutenção e analisar os motivos de mudanças do sistema.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/6717fcd03992439f679060db815fe49e
Exercícios
1) Qual das descrições apresentadas define melhor a manutenção de software? 
A) É o processo de melhoria e otimização de um sistema já desenvolvido, como também é o 
reparo dos seus defeitos.
B) É o processo em que o software é testado em busca de falhas.
C) É a etapa em que o software é desenvolvido pelos programadores.
D) É o processo de análise das necessidades do cliente.
E) É a fase que existe o planejamento do projeto realizado pelo gerente de projetos.
2) Um sistema de controle de vendas foi entregue para o cliente após passar por uma bateria 
de testes. O cliente, após dois meses de uso, notou que um dos cálculos realizados durante a 
preparação do relatório de vendas diário estava errado. Então, foi solicitada a manutenção 
desse software com o objetivo de ajustar esse cálculo. Essa solicitação foi de qual tipo de 
manutenção? 
A) Manutenção evolutiva.
B) Manutenção corretiva.
C) Manutenção adaptativa.
D) Manutenção preventiva.
E) Manutenção total.
3) Por que é importante que a manutenção do software seja prevista durante o planejamento 
da criação? 
A) Devido à manutenção ser realizada mais rapidamente do que a implementação do software.
B) Para que o software seja inutilizado antes do previsto.
C) Para que os desenvolvedores finalizem o projeto mais rapidamente.
D) Devido à manutenção de software, geralmente, possuir um custo mais elevado do que o 
próprio desenvolvimento.
E) Para que os defeitos e falhas não sejam encontrados.
4) O processo de manutenção de software, em alguns casos, enfrenta problemas que dificultam 
todo o processo. Qual é a principal causa desses problemas? 
A) A maioria dos problemas com a manutenção do software é causada pelo uso de testes 
unitários.
B) A maioria dos problemas com a manutenção do software é causada por implementações bem 
estruturadas e codificadas, pois utiliza padrões de projetos e conceitos bem definidos.
C) A maioria dos problemas com a manutenção do software é causada pela existência de uma 
documentação vasta e bem elaborada.
D) A maioria dos problemas com a manutenção do software é causada por um planejamento.
E) A maioria dos problemas com a manutenção do software é causada por deficiências na 
maneira como ele foi planejado e desenvolvido.
5) O que significa manutenibilidade? 
A) Manutenibilidade pode ser definida como a forma de manutenção do software.
B) Manutenibilidade pode ser definida como o conjunto de técnicas utilizadas para verificar se o 
software atende às necessidades do cliente.
C) Manutenibilidade pode ser definida como a facilidade com que o software pode ser 
entendido, corrigido, adaptado e/ou melhorado.
D) Manutenibilidade pode ser definida como o conjunto de técnicas de implementação de 
software.
E) Manutenibilidade pode ser definida como a possibilidade de um software obter manutenção.
Na prática
O gerente de projetos de uma empresa de desenvolvimento de software está fazendo o 
planejamento de como será a manutenção de um projeto que está começando. Como foi feito um 
estudo aprofundado de manutenção, entende-se que existem diferentes tipos de manutenção de 
software e que cada um desses tipos atende a uma necessidade de mudança no projeto em 
questão.
Veja o passo a passo de cada umas das manutenções sofridas por esse software:
Conteúdo interativo disponível na plataforma de ensino!
 
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Desenvolvimento e Manutenção de Software
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Tipos de manutenção de Software
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Manutenção de Software: Definições e Dificuldades - Artigo 
Revista SQL Magazine 86
Esse artigo apresenta algumas definições de manutenção de software, os tipos existentes, os 
impactos de sua aplicação e como é utilizada durante o desenvolvimento de um sistema.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
http://www.macoratti.net/vb_mds1.htm
http://leandromtr.com/tipos-de-manutencao-de-software/
https://www.devmedia.com.br/manutencao-de-software-definicoes-e-dificuldades-artigo-revista-sql-magazine-86/20402

Continue navegando