A manutenção de software nas empresas
Ronan Assumpção Silva (UTFPR) [email protected]
Simone Nasser Matos (UTFPR) [email protected]
João Umberto Furquim de Souza (UEPG) [email protected]
Louisi Francis Moura (UTFPR) [email protected]
Resumo
A manutenção de software pode tomar 80% do tempo total no desenvolvimento do produto de
software. O tempo para se entender o produto é alto e pode ser otimizado. A falta de boas práticas e a
falta de consideração de pontos de impacto tem levado muitos projetos de software ao fracasso. O
artigo apresenta um estudo através de revisão bibliográfica sobre a tecnologia nas empresas e a
manutenção de produtos de softwares utilizados. É possível apresentar o software manutenível e
atender as necessidades do cliente de forma evolutiva, aumentando a durabilidade do software.
Paralelamente, é possível acrescentar informações pertinentes a escolha de um produto de software por
parte do cliente. O artigo conclui que a manutenção de software é fator relevante na diminuição dos
custos, para a maximização do seu uso nas empresas, além de contribuir para o aperfeiçoamento do
desenvolvedor.
Palavras chave: Manutenção de software, Tecnologia da Informação, gestão.
The software maintenance in the companies
Abstract
The software maintenance can take 80% of the total time in the development of the software product.
The time to understand the product is high and can be optimized. The fault of good practices and the
fault of consideration of impact points it has been carrying lots of projects to the failure. The article
shows a study through bibliographical revision about the technology in the companies and the
maintenance of software products used. It is possible to show the maintainable software and attend the
needs of customer of evolutionary form, increasing the software durability. As the same time, it is
possible to increase information pertinent the choice of software product by the client. The article
concludes that the software maintenance is important factor in the costs decrease, maximizing its use
in the companies, besides contributing for the improvement of the developer.
Key-words: Software maintenance, technology of the information, administration.
1 INTRODUÇÃO
Com o advento da Tecnologia da Informação (TI) uma significativa parcela das atividades e
ações do ser humano depende da utilização de softwares o que tem acarretado na necessidade
de seu desenvolvimento de modo rápido e com baixo custo. Assim, a qualidade dos softwares
está interligada com um produto adequado ao uso que se propõe.
Essa rápida e crescente demanda de Tecnologias da Informação tem aberto muitas
oportunidades de trabalho. Inúmeros são os desenvolvedores de softwares na expectativa de
altos retornos financeiros, porém gerando alta concorrência.
Percebe-se que esse fato tem levado ao desenvolvimento de softwares baratos, de rápida
comercialização. Porém, para se manter no mercado é necessário que, além de preço baixo,
garantias de excelência e qualidade seja parte do produto vendido.
Como todos os produtos em geral, os softwares também necessitam de manutenção. Essa
necessidade é derivada, principalmente, do avanço da tecnologia e as constantes atualizações
nos processos empresariais dos clientes – comércios, indústrias, prestadores de serviço.
É crescente o estudo de padrões de manutenção. Pois a demanda por produtos de software de
qualidade sob todos os aspectos é uma questão global. Em extremos, haverá sempre a questão
do custo de continuidade e a questão do desenvolvimento de um novo produto de software.
Outro fator que demonstra essa preocupação são as pesquisas realizadas com o fim de fazer da
manutenção de software, uma disciplina nos cursos de Tecnologia em Informática,
Bacharelado em Informática e Engenharia da Computação entre outros.
Diante desse cenário, como a tecnologia da informação se apresenta no sentido de garantir
qualidade nos softwares às empresas?
Esse artigo, através de revisão bibliográfica, apresenta a necessidade da manutenção de
softwares para que as empresas clientes possam usufruir do produto adquirido, garantido pela
qualidade dos serviços prestados e a viabilidade para o mercado da TI.
2 METODOLOGIA
O presente artigo quanto a sua natureza é classificado como pesquisa básica, e quanto ao
problema sua abordagem é qualitativa.
Em sua pesquisa bibliográfica, o artigo apresenta referencial teórico quanto à importância da
tecnologia para as empresas no quesito da manutenibilidade dos softwares.
3 O IMPACTO DA T.I. NAS ORGANIZAÇÕES
O avanço da tecnologia tem deixado cada vez mais o ser humano dependente dela para a
realização das suas ações, principalmente no que tange às atividades empresariais. Talvez seja
ainda possível encontrar pequenas e micro empresas que pouco utilize computadores,
impressoras, aparelhos de fax, celulares, mas grandes empresas não compartilham dessa
realidade, uma vez que a informação é fator determinante para empresas que investem no
controle de seus processos.
Isso permite o progresso das tecnologias da informação e também do aumento de seus
desenvolvedores. Com essa expansão no mercado, cada cliente tem a expectativa que o
software adquirido atenda suas necessidades empresariais para a qual realmente se destina, e
em um caso específico de necessidade, espera-se que a resposta do desenvolvedor seja
pontual, realizando a manutenção que a necessidade irá exigir.
O MRP (Material Requirements Planning - Planejamento das Necessidades de Material)
identifica a necessidade real de material para produção e o momento a ser requisitado, a fim
de que a data estabelecida seja cumprida, minimizando a formação de estoques.
A principal informação pelo MRP é o Programa-Mestre de Produção que estabelece as datas
da entrega, a produção e especificação do produto e liberação do produto. A carteira de
pedidos disponibiliza dados como, o que produzir e quanto produzir. Esses dados são
utilizados pelo Programa-Mestre ao organizar a produção.
Assim, o MRP pode verificar a lista de material para cada produto e remeter-se ao estoque. O
sistema pode, a partir desses dados, liberar as ordens de produção.
Com o conhecimento da técnica do MRP, o programa foi se expandindo ao usar da lógica do
sistema para o cálculo de outras necessidades de manufatura. Surgiu então, o MRP II
(Manufacturing Resources Planning) – Planejamento dos Recursos de Manufatura.
Slack et al. (1997) afirmam que o MRP II é considerado como um plano global para uma
empresa, ao envolver as áreas de produção, marketing, finanças e engenharia.
O ERP (Sistemas Integrados de Gestão - Enterprise Resource Planning) é derivado desses
softwares. Como propõe o nome, o ERP é um software que abrange a empresa e seus
processos em sua totalidade.
Rochetti, Campos, Galera (2008) explicam que o sistema ERP é utilizado principalmente em
médias e grandes empresas devido ao complexo e caro processo de implantação, que nem
sempre atende a todas as expectativas do cliente.
A venda dos sistemas ERP se caracteriza por um pacote de software: módulos para
implantação daquilo que o cliente deseja. Apesar dessa possibilidade de customização do ERP
na empresa, ela não é incentivada pelos desenvolvedores devido ao risco do desempenho e
integridade do sistema (ROCHETTI, CAMPOS, GALERA, 2008).
Não há garantia de que o desenvolvedor do software se disponha a desenvolver mais
módulos. Neste caso, o desenvolvimento de módulos segundo uma prioridade é tema de
estudos de metodologias de análise e desenvolvimento de sistemas e uma necessidade de
produzir o necessário. Além disso, a qualidade envolvendo tal ação, pode definir se o projeto
de produto de software irá ter continuidade ou será vantajoso adotar uma outra solução, que
pode ser desenvolver um novo produto ou adquirir um já bem estabelecido no mercado,
flexível a ponto de atender as necessidades já percebidas.
4 REQUISITOS DE SOFTWARE
Os requisitos de software correspondem ao processo de desenvolvimento que auxilia no
resultado eficaz. O processo é delimitado a partir de estudos de viabilidade verificando a sua
viabilidade ou não.
Fernandes; Pessoa (2008) descrevem os requisitos para o desenvolvimento de software a fim
de garantir o resultado esperado. Segundo os autores, “o processo de descobrir, analisar,
documentar e verificar essas funções e restrições é chamado de engenharia de requisitos”
(FERNANDES; PESSOA, 2008, P.3).
É importante que se tenha esses requisitos definidos para que o projeto seja corretamente
desenvolvido, pois:
Como o insumo para a próxima fase depende do resultado da fase anterior e, assim
sucessivamente até o produto estiver concluído e, existe a possibilidade de haver mais
de uma pessoa envolvida, é necessário um rigor maior na documentação do trabalho
executado além do próprio trabalho realizado (TONINI, PLONSKI, SPÍNOLA, 2008,
P. 7).
Esses requisitos são importantes aliados ao sucesso do software, pois definem com
antecedência as etapas de desenvolvimento.
Essas definições são feitas a partir da oferta pelo desenvolvedor e pela necessidade do
provável cliente. Assim, é de interesse ao desenvolvedor um alto nível de detalhamento dos
requisitos, os quais serão de interesse também para o designer, a descrição e documentação.
5 MANUTENÇÃO DE SOFTWARES
Um software necessita de uma série de requisitos para seu desenvolvimento. Entretanto, isso
não o exclui da necessidade de manutenção com o fim de garantir sua eficiência ao longo do
seu tempo de uso.
Segundo Pigoski (1996) e Pfleeger (2001) 80% dos custos de um software referem-se à sua
manutenção.
O processo de manutenção do software então pode ser definido como a mudança e
aperfeiçoamento do produto após a sua implementação, com o fim da correção de erros e
defeitos, melhorando seu desempenho e adaptando-o às necessidades reais do negócio
(CALAZANS; OLIVEIRA, 2005).
Desse conceito, pode-se definir a evolução dos softwares a partir das mudanças
proporcionadas pela sua manutenção ao corrigir erros e falhas, agregar novas funcionalidades,
deixando-o completo, adaptado, em pleno funcionamento, proporcionando dados e
informações a que ele deve atender e não perder a habilidade de ser manutenível.
Além disso, a manutenção do software também minimiza os custos de suporte. Como citado
anteriormente, o planejamento permite definições do sistema de modo a delimitar seu uso. A
manutenção, portanto, engloba a pós-entrega, com modificações a partir do real uso e
adaptação do software.
6 OS TIPOS DE MANUTENÇÃO DE SOFTWARE
A manutenção dos softwares é classificada conforme sua necessidade. Calazans; Oliveira
(2005) apresentam a classificação geral de manutenção de softwares. Ela é dividida em quatro
categorias:
a) manutenção corretiva;
b) manutenção adaptativa;
c) manutenção perfectiva;
d) manutenção preventiva.
6.1 Manutenção Corretiva
Esse tipo de manutenção refere-se
refere
àquela que objetiva a identificação e remoção de falhas.
falhas
Compreende erros de design, lógica e codificação no sistema.
6.2 Manutenção Adaptativa
Refere-se
se à manutenção devido às modificações no software quanto ao ambiente externo, ou
seja, plataformas de software e hardwares diferenciados. Compreende compiladores, banco de
dados, novos processadores e sistemas operacionais.
6.3 Manutenção Perfectiva
Também conhecida como Manutenção Evolutiva, é o tipo de manutenção com o fim de que o
software tenha seus requisitos funcionais aprimorados, melhorando a eficiência do sistema. A
partir de observação e participação dos desenvolvedores do software e dos usuários,
estabelece-se
se planos de melhoria incluindo novas funcionalidades e expandindo a abrangência
abra
das funcionalidades
ncionalidades já em uso.
6.4 Manutenção Preventiva
Ao longo do ciclo de vida do software, fatores internos e externos a ele implicam em
modificações que o deterioram.
A manutenção preventiva caracteriza-se
caracteriza
deve permitir uma facilidade maior na modificação
do software quanto a correção, adaptação ou melhoria.
melhoria Resulta em maior confiabilidade e
manutenibilidade.
Vendas
4%
25%
21%
Adaptativa
Corretiva
Evolutiva/Perfectiva
Preventiva
50%
as manutenções de acordo com o tipo. Fonte: Pleefger,
Pleefger 2001.
Figura 1 – Percentual das
A figura 1 mostra que metade das ocorrências que correspondem à manutenção de software, é
a manutenção do tipo corretiva, ou seja, aquela responsável por tratar das falhas e erros. Em
25% está a adaptativa, que se refere a mudanças que ocorrem no ambiente externo. Com 4%
está a manutenção do tipo preventiva, que é o investimento no software em mantê-lo
manutenível, organizado e documentado. E com uma importância de 21% das ocorrências de
manutenção de software, está a manutenção evolutiva, também conhecida como perfectiva.
Esta influencia no processo de maturidade do software.
7 MANUTENIBILIDADE DE SOFTWARE
Todo software pode evoluir ao longo do tempo quando ele é aperfeiçoado pelos seus usuários
e desenvolvedores.
Pressman (2006) conceitua como a facilidade que um produto de software pode ser entendido,
corrigido, adaptado e/ou aumentado.
Em estudos para determinar a influência na manutenibilidade de software, Brusamolin (2004)
classificou fatores de impacto, como:
a) arquitetura: o investimento em arquitetura de software aprimora a manutenibilidade. A
divisão da aplicação em componentes e dos componentes em classes tornou cada unidade de
código-fonte bem menor do que em uma abordagem monolítica, de modo que o esforço para
modificar o código apresenta-se pequeno e o potencial de inclusão de erros nessa modificação
é reduzido;
b) tecnologia: Uma das preocupações que o gerente deve ter é a de verificar o software
permite um bom grau de manutenibilidade. Ao longo do ciclo de vida de grandes sistemas, a
programação de softwares usando a orientação a objetos se mostrou positiva, devido às
manutenções mais localizadas levarem menor degradação do código;
c) documentação: o investimento em tempo para compreender o produto antes de modificá-lo
é maior quando a documentação ou especificações de design do software não estão
disponíveis;
d) compreensibilidade do programa: cerca de metade do tempo da manutenção, é usado para
entender a documentação e lógica dos produtos de software.
Estes fatores de impacto abrangem todo o ciclo de vida do software. A interdependência
desses fatores irão determinar a capacidade de um software ser manutenível. É possível
observar que esses fatores partem basicamente da organização bem feita de um projeto de
produto de software.
7.1 Práticas de manutenibilidade
Para que o software tenha um alto nível de manutenibilidade, foram observados alguns
quesitos que funcionam no desenvolvimento e manutenção de software.
Para Pigoski (1996) produzir sistemas manuteníveis deve ser levado em consideração já no
levantamento de requisitos. Ele sugere algumas práticas que levam à manutenibilidade:
a) Revisões de averiguação;
b) Caminhamentos estruturados;
c) Uso de design orientado a objetos;
d) Assegurar que cada linha de código tenha no máximo uma declaração;
e) Assegurar que comentários tenham informação útil;
f) Assegurar que programação “esotérica” seja evitada;
g) Empregar convenções de programação;
h) Usar definições de dados comuns;
i) Estabelecer padrões para desenvolvimento de procedimentos e documentos do sistema;
j) Registrar o processo de desenvolvimento explicando a filosofia de desenvolvimento e o
processo decisório;
k) Estimular a simplicidade;
l) Estudar possíveis mudanças futuras e aperfeiçoamentos;
m) Medir a complexidade dos componentes do sistema;
n) Registrar os pontos fracos do sistema e pontos problemáticos;
o) Estabelecer critérios de aceitação para avaliar a qualidade do software, com particular
atenção na qualidade da manutenibilidade;
p) Previsão de falhas.
7.2 A ISO/IEC 9126
Esta norma aborda um modelo de qualidade de produto software.
Costa (2005) observou através de estudo da norma ISO/IEC 9126, que esta facilita:
a) diagnosticar as deficiências ou causas de falhas ou ainda identificar as partes a serem
modificadas;
b) modificar o produto de software, de forma a remover os defeitos ou a adaptá-lo às
mudanças ambientais;
c) validar o produto de software que sofreu modificação;
d) identificar o risco de efeitos inesperados, os quais ocasionados por modificações.
Além disso, a norma ISO/IEC 9126 propõe um modelo de qualidade de uso, que é a visão da
qualidade de produto de software sob a perspectiva do usuário. Observe a figura 2 a seguir:
Qualidade de uso
Eficácia
Produtividade
Segurança
Figura 2 – Qualidade de uso. Fonte: ISO/IEC 9126.
Satisfação
Qualidade em uso é a capacidade com que um produto de software deve realizar os objetivos
para um usuário de acordo com a eficácia, produtividade, segurança e a satisfação em um
dado contexto. Estes conceitos seguem abaixo:
Eficácia: entende-se como eficácia a capacidade com que um produto de software atinge os
objetivos com exatidão e plenamente para os usuários;
Produtividade: capacidade do produto de permitir aos usuários agregar recursos a eficácia
obtida;
Segurança: produto deve apresentar níveis aceitáveis de riscos de danos no tocante a pessoas,
negócio, software, propriedades ou ao ambiente;
Satisfação: alcançar a satisfação dos usuários.
8 CONSIDERAÇÕES FINAIS
A tecnologia da informação se apresenta favorável no sentido de garantir qualidade nos
softwares às empresas. Normas como a ISO evidenciam a preocupação com que a tecnologia
da informação vem evoluindo, entre outras coisas, na qualidade.
Dentre muitos fatores que irão determinar se um software será capaz de atender as
necessidades do cliente está a sua manutenção.
A manutenção de software vem evidenciando que adotar práticas de manutenibilidade desde o
levantamento de requisitos para o desenvolvimento de software deve ser uma preocupação do
cliente e do desenvolvedor e/ou mantenedor do software.
Com a crescente busca por informação os produtos de software vêm sendo adaptados às
realidades da empresa, quando este é manutenível e quando o custo de manter o projeto é
vantajoso em relação ao investimento em um produto de software novo.
Independente dessa relação, a manutenção de software deve ser levada em consideração desde
o início do projeto e em todo o ciclo de vida do produto de software.
Considera-se o produto de software como inacabado, pois a manutenção não é realizada
somente para corrigir falhas. Ela passa por constante revisão para a maturidade relativa à sua
funcionalidade proposta e as demais que surgem no uso do sistema e nas necessidades do
cliente.
Como a manutenção é o item do ciclo de vida do software que mais exige tempo, minimizar
os riscos do mantenedor não atende a demanda solicitada.
É importante que os quesitos para o software ser manutenível esteja de acordo entre a sua
documentação e o seu desenvolvimento com o fim de assegurar que o produto atinja a
maturação a que foi destinado.
O artigo também mostrou a importância de ter os fatores de impacto como base para todo e
qualquer estudo sobre manutenibilidade de software. A preocupação quanto à abordagem da
documentação do software deve ser realizada de maneira contínua, minimizando o tempo
gasto com o entendimento do produto.
Em geral o tempo para esta percepção é longo, exigindo maior esforço do mantenedor e maior
tempo para conclusão de uma determinada manutenção.
O conhecimento de requisitos e as práticas de manutenção de software tornam-se importante
fator de eficiência na sua implementação, pois é uma tarefa que leva mais da metade do tempo
em todo o desenvolvimento de produtos de software.
Analisando a qualidade de uso, a manutenção do software não tem valor algum se perder o
propósito combinado com o cliente de atender as necessidades a que ele se destina.
Conclui-se que a manutenção de software é fator relevante na diminuição dos custos, para a
maximização do seu uso nas empresas, além de contribuir para o aperfeiçoamento do
desenvolvedor.
REFERÊNCIAS BIBLIOGRÁFICAS
BRUSAMOLIN, V. Manutenibilidade de Software. In: Revista Digital Online, v.2, jan. 2004;
CALAZANS, A. T. S.; OLIVEIRA, M. A. L. Avaliação de Estimativa de Tamanho para Projetos de
Manutenção de Softwares. Toffano Seidel Calazans et al./Proc. of Argentine Symposium on Software
Engineering, 2005;
COSTA, H. A. X. Critérios e Diretrizes de Manutenibilidade para a Construção do Modelo de Projeto
Orientado a Objetos. Tese (Doutorado). Escola Politécnica – Universidade de São Paulo, São Paulo, SP, 2005;
FERNANDES, V.; PESSOA, M. Diretrizes Estratégicas para empresa de software. XXVIII Encontro
Nacional de Engenharia de Produção. Rio de Janeiro, RJ, 2008;
ISO/IEC 9126-1. Software engineering– Software product quality- Part 1: Quality Model. 2001;
Oliveira, T. M. A. de. et al. Perception on software maintenance: a case study with information technology
managers. In: International Conference on Information Systems and Technology Management, 5, São Paulo,
2008;
PIGOSKI, T. M. Pratical Software Maintenance: Best Practices for Managing your Software Investment.
Wiley Computer Publishing, 1996;
PFLEEGER, S. L. Software Engineering – Theory and Practice, 2ª ed. Prentice-Hall, 2001;
PRESSMAN, R. S. Engenharia de Software, 6ª ed. McGraw-Hill, 2006;
ROCHETTI, A. T.; CAMPOS, R; GALERA, R. G. Um estudo sobre correspondências entre as classes do
ERP5 e os construtores de linguagem Cimosa. XXVIII Encontro Nacional de Engenharia de Produção. Rio de
Janeiro, RJ, 2008;
SLACK, N.; CHAMBERS, S.; HARLAND, C.; HARRISON, A. & JOHNSTON, R. Administração da
Produção. Atlas. São Paulo, 1997;
TONINI, A. C.; PLONSKY, G. A.; SPÍNOLA, M. M. Maturidade e inovação no desenvolvimento de
software: convergência ou conflito. XXVIII Encontro Nacional de Engenharia de Produção. Rio de Janeiro,
RJ, 2008.
Download

A manutenção de software nas empresas