Aborda o tema gerência de ciclos de manutenção evolutiva de um sistema de controle acadêmico apoiado pela ferramenta Controla. Neste sentido, este artigo demonstra o quanto é importante gerenciar os ciclos de manutenção evolutiva de um software, pois a maior parte dos custos da engenharia de software está associada à evolução e manutenção.
Em que situação o tema é útil:
O tema é muito importante no cenário atual, pois existe um grande investimento de capital por parte das organizações em seus ativos de negócio, incluindo software. Gerenciar essa evolução é uma forma de permitir que essas empresas continuem tendo o valor desses ativos mantidos.
Resumo DevMan:
A maior parte dos custos da engenharia de software está associada à evolução e manutenção de software. Cerca de 50% do tempo gasto na fase de manutenção é dedicada às atividades de compreensão do software, ou seja, existe a necessidade de explicitar como o software funciona e como ele é internamente estruturado. Neste sentido, este artigo demonstra o quanto é importante gerenciar os ciclos de manutenção evolutiva de um software.
Autores: Lessandro Notaroberto Pyrâmides e Marco Antônio Pereira Araújo
Após a implantação de sistemas, eles sofrem alterações constantes para permanecerem úteis. Surgem novos requisitos e ocorrem mudanças em requisitos existentes. Essa evolução é um processo natural de todo software.
Gerenciar a evolução é uma tarefa importante para as organizações atuais devido a todo investimento de capital realizado. Os sistemas são ativos de negócio importantes para as empresas. O investimento em mudanças permite que as empresas continuem tendo o valor desses ativos mantidos.
A maior parte dos custos da engenharia de software está associada à evolução e manutenção de software (ler Nota 1). Cerca de 50% do tempo gasto na fase de manutenção é dedicada às atividades de compreensão do software, ou seja, existe a necessidade de explicitar como o software funciona e como ele é internamente estruturado.
Para que a manutenção evolutiva ocorra de forma planejada, é essencial que todos os requisitos tenham sido adequadamente documentados e gerenciados. A gerência de requisitos é um processo importante da engenharia de requisitos que permite identificar, rastrear e controlar os requisitos e suas mudanças.
As ações
ligadas à atividade de manutenção de software foram classificadas de acordo com
sua natureza em três categorias: corretivas, adaptativas e perfectivas. ·
Manutenções
do tipo corretivas visam corrigir defeitos de funcionalidade, o que inclui
acertos emergenciais de programa. Pfleeger (2001) expõe um exemplo desse
tipo de manutenção, que consiste em um usuário apresentando um problema de
impressão em um relatório. O número de linhas impresso por folha é muito
grande, o que causa sobreposição de informações. O problema foi identificado
como uma falha no driver da impressora, provocando a necessidade de se alterar
o menu do relatório para aceitar um parâmetro adicional que determina o número
máximo de linhas impressas por folha. ·
Manutenções
do tipo adaptativas referem-se a adequar o software ao seu ambiente externo. O
exemplo apontado por Pfleeger (2001) ilustra bem essa categoria. Suponha um
gerenciador de banco de dados, que faz parte um sistema maior de hardware e
software. Em uma atualização do gerenciador, os programadores perceberam que as
já existentes rotinas de acesso a disco precisavam agora de mais um parâmetro
adicional. Essa manutenção corresponde a uma manutenção adaptativa, uma vez que
teve por finalidade adequação do software ao seu ambiente e não a correção de
um defeito. ·
Manutenções
do tipo evolutivas têm por objetivo acrescentar novos recursos de
funcionalidade ao software, normalmente em razão de solicitações dos usuários.
Significam ainda re-projetar partes de um software, de forma a tornar mais
simples a compreensão e utilização do mesmo. Como exemplo, pode-se citar o pedido
do usuário por um novo relatório com informações que até então não podiam ser
obtidas do banco de dados.
A união
das categorias adaptativa e perfectiva é sugerida por Pigoski, que propõe
uni-las em uma única denominada aprimoramentos. Essa classificação estaria de
acordo com organizações que geralmente utilizam o termo manutenção para se
referir à execução de pequenas mudanças no software, enquanto o termo
desenvolvimento é usado para os demais tipos de modificações. Uma quarta categoria de manutenção é
apresentada por alguns autores. Essa categoria se refere a manutenções do tipo
preventivas que buscam identificar previamente possíveis fontes de problemas no
software e corrigi-las antecipadamente.