Você está na página 1de 32

Manuteno de Software

Professora: Aline Vasconcelos CEFET Campos


aline.vasconcelos@terra.com.br

Roteiro

Definio Tipos de Manuteno Motivaes Processo de Software:

A etapa de Manuteno no Ciclo de Vida do Software

Caractersticas e Documentao da Manuteno Processo de Manuteno Manutenibilidade de Software Problemas na Manuteno

Mtodos de Apoio

Definio
Manuteno de Software: atividade durante a qual ocorrem modificaes em um ou mais artefatos resultantes do desenvolvimento de um software, buscando mant-lo disponvel, corrigir suas falhas, melhorar seu desempenho e adequ-lo aos requisitos novos ou modificados. (ANSI/IEEE, 1993)
3

Definio
Manuteno de Software: o custo associado modificao de um sistema de software ou componente depois de entregue para corrigir falhas, melhorar o desempenho ou outros atributos, ou para adapt-lo a um ambiente modificado. (SEI, 2005)
4

Tipos de Manuteno

Corretiva:correo de erros/falhas. Adaptativa: adaptao do software para acomodar mudanas em seu ambiente externo, i.e. uma nova plataforma (hardware, sistema operacional) ou mudanas nas regras de negcio, leis, polticas governamentais etc. Evolutiva (ou perfectiva): acrscimo de funcionalidades, no previstas em seu documento de requisitos original. Preventiva (reengenharia):o software modificado para oferecer uma base melhor para futuras manutenes. Ou seja, para melhorar a sua confiabilidade ou manutenibilidade futura.

Quanto consome?

Corretiva Preventiva

21% 25%

Adaptativa

4%

50%

Evolutiva

Motivaes

Modificao de software inevitvel Surgem novos requisitos O ambiente do negcio muda Erros devem ser reparados Novo equipamento deve ser incorporado O desempenho do software pode ser melhorado
7

Processo de Software

O trabalho associado Engenharia de Software pode ser dividido em 3 fases genricas (Pressman, 2001):

Definio: foco O que? Quais so os requisitos funcionais e no-funcionais? Quais so as regras de negcio? Quais so os dados de entrada e sada? Atividades: Anlise de Requisitos. Desenvolvimento: foco Como? Como os dados devem ser estruturados? Como deve ser a arquitetura do sistema para atender aos atributos de qualidade estabelecidos? Como as funes devem ser realizadas na arquitetura (i.e. comportamento do software)? Atividades: Projeto (Projeto de Alto Nvel e Projeto Detalhado ou de Baixo Nvel), Codificao (ou Implementao) e Testes. Suporte: foco Mudana. A fase de suporte reaplica as atividades definidas nas fases de Definio e Desenvolvimento no contexto de um software existente. Atividades:Manuteno (corretiva, adaptativa, evolutiva e preventiva).

Ciclo de Vida Clssico: (Waterfall Model ou cascata) Anlise de Requisitos Projeto do Sistema

-Projeto de Alto Nvel


- Projeto de Baixo Nvel

Projeto dos Programas Codificao

Teste de Unidade e Integrao Caractersticas: Seqencial Conceitualmente Simples Guiado por documentos Teste de Sistema

Teste de Aceitao
Entrega e Manuteno

Contribuies x Problemas Ciclo de Vida Clssico:

Define claramente as fases de desenvolvimento de software, permitindo a definio de mtodos e atividades em cada fase. Permite a definio dos workproducts ou artefatos a serem entregues em cada atividade. Outros modelos representam simplesmente variaes do ciclo clssico, incorporando loops e atividades extra. Problemas: projetos de software na prtica raramente seguem um fluxo seqencial; no suporta mudana de requisitos que pode ocorrer ao longo do projeto; cliente acaba esperando muito tempo por algum resultado concreto do trabalho.

10

Ciclo de Vida Baseado em Desenvolvimento por Fases: Incrementos e Iteraes

Sistema em Desenvolvimento
DESENVOLVEDORES

Construo da Release 1

Construo da Release 2

Construo da Release 3
Tempo

Utiliza Release 1
USURIOS

Utiliza Release 2

Utiliza Release 3

Caractersticas: Reduz o tempo de entrega, pois permite que o sistema seja entregue em partes. Geralmente h dois sistemas funcionando em paralelo: sistema operacional ou de produo e sistema em desenvolvimento.

Caractersticas da Manuteno

A manuteno de software consome cerca de 70% do oramento de software de uma organizao. Atividades Gerais: Anlise do Problema (categorizao/priorizao da manuteno); Avaliao do pedido de manuteno (avaliao do esforo, anlise de riscos, custos etc.): Avaliao da documentao de projeto e Anlise de impacto das mudanas (partes do software atingidas, efeitos colaterais); Implementao das mudanas (modelos e cdigo); Reviso e Aceitao: Testes de Regresso (i.e. repetio de testes passados a fim de garantir que as modificaes no introduziram falhas no software anteriormente operacional) e Inspees; Migrao.
12

Documentos na Manuteno

Formulrio de Pedido de Manuteno (origem externa): Bugzilla


Preenchido pelo usurio que deseja a manuteno.

Manuteno Corretiva: descrio completa das circunstncias que levaram ao erro (inclusive dados de entrada e de sada, screen shots e outros materiais de apoio).
Manuteno Adaptativa ou Perfectiva: especificao da mudana (i.e. uma especificao de requisitos abreviada). Esforo exigido para a manuteno. Natureza das modificaes.

Relatrio de Mudanas de Software (origem interna):


Prioridade do pedido.
Registro da modificao: itens (artefatos de software) modificados.
13

Processo de Manuteno

Um processo de Manuteno diz respeito a um conjunto de etapas bem definidas, que direcionam as atividades de manuteno de software, com o objetivo primordial de satisfazer s necessidades dos usurios de maneira planejada e controlada.

(Pigosky, 1996)
14

Processo de Manuteno

Segundo a norma NBR ISO 12207, o objetivo do processo de manuteno modificar um produto de software existente, preservando a sua integridade. A Manuteno se inicia quando uma necessidade de modificao identificada, ou seja, quando se necessita corrigir problemas, realizar adaptaes ou melhorias. O processo de manuteno chega ao seu final no momento da descontinuao do software, ou seja, quando no se vai mais utiliz-lo.
15

Processo de Manuteno Norma ISO 12207


Implementao do Processo Anlise da Requisio de Modificao Implementao da Modificao

Solicitao

Aceitao/Reviso da Manuteno
Descontinuao do Software Migrao

16

Processo de Manuteno Norma ISO/IEC 12207

Implementao do Processo:

nesta etapa, so estabelecidos planos e procedimentos para registrar e controlar a atividade de manuteno e os pedidos feitos pelos clientes. este evento ocorre quando alguma solicitao de modificao feita, ou pelos clientes, ou pelos prprios mantenedores.

Solicitao:

Anlise da Requisio de Modificao:

nesta etapa, feita uma verificao minuciosa da solicitao por parte do mantenedor, para que este possa oferecer opes de soluo para o problema identificado.

17

Processo de Manuteno Norma ISO 12207

Implementao da Modificao:

nesta etapa, so realizadas as tarefas propriamente ditas de alterao do produto de software, incluindo cdigo, documentao etc. Nela, deve-se garantir a perfeita execuo para se chegar soluo proposta. nesta etapa, so feitas as revises e testes a fim de garantir a integridade do produto, bem como a homologao e aprovao junto ao solicitante para que o produto possa ser liberado. nesta etapa, o produto gerado colocado no ambiente de produo e uma avaliao deve ser conduzida para confirmar a execuo perfeita da alterao.
18

Aceitao/Reviso da Modificao:

Migrao:

Processo de Manuteno Norma ISO 12207

Descontinuao do Software:

nesta etapa, o software chega ao seu ltimo estgio no ciclo de vida, onde no haver mais modificaes no mesmo.

19

Processo de Manuteno Norma ISO 14764


Norma internacional de manuteno Define um processo de manuteno idntico ao da ISO 12207, mas mais detalhado Define outros procedimentos relacionados manuteno Definio e estrutura de um plano de manuteno

Viso Geral do Fluxo de Eventos


Determinar o tipo de manuteno a ser realizada. Se for manuteno corretiva, determinar a gravidade do erro.

Se for um erro MUITO grave, abandonar temporariamente os controles de manuteno e aplicar imediatamente a modificao no cdigo (apaga incndio).

Seno, avaliar, categorizar e colocar na fila.

As adaptaes so avaliadas e categorizadas (priorizadas) antes de serem colocadas numa fila de pedidos de manuteno. Os acrscimos passam pelo mesmo processo das adaptaes. Porm, nem todos os pedidos de acrscimo so levados a efeito.
21

Viso Geral do Fluxo de Eventos

Uma vez formada a Fila de Pedidos de Manuteno.....

Implementao da Manuteno: Seleo da prxima tarefa da fila de prioridades. Planejar, organizar, aplicar Engenharia de Software: Anlise de Impacto da mudana; Avaliao de esforo, prazo e custo; Anlise de Riscos; Modificao/especificao dos requisitos de software e do projeto. Inspees; Modificaes do cdigo e testes; O evento final uma Reviso que revalida a nova configurao, garantindo sua integridade, e garantindo a sarisfao do Pedido de Manuteno.

22

Manutenibilidade

Manutenibilidade de software: facilidade com que um software pode ser entendido, corrigido, adaptado e/ou aumentado. Representa um requisito no-funcional ou atributo de qualidade de um software. Descrio das caractersticas e subcaractersticas de qualidade utilizadas (ISO/IEC 9126-1)

Caractersticas relacionadas a manutenibilidade do software: Referese ao esforo necessrio para fazer modificaes especficas no software. So elas: Modificabilidade: Avalia o esforo necessrio para a modificao e remoo de defeitos; Testabilidade: Avalia o esforo necessrio para validar as modificaes realizadas.
23

Manutenibilidade

Fatores que influenciam:

Arquitetura da aplicao: Camadas, MVC, Tubos e Filtros, Cliente-Servidor etc. Adoo de Princpios de Projeto: Modularidade (Coeso e Acoplamento), Ocultao de Informao, Encapsulamento, Separao de Objetivos, Generalizao (Abstrao). Utilizao de Padres de Projeto. Utilizao de Padres de Programao. Comentrios em Programas. Documentao de Anlise e Projeto atualizadas.
24

Manutenibilidade

Medida indireta de software.

Medida atravs dos atributos da atividade de manuteno que podem ser medidos.

Mtricas:
Tempo gasto para o reconhecimento do problema. Tempo gasto na anlise do problema (anlise da soluo, anlise de impacto) Tempo gasto na especificao das mudanas (documentos). Tempo de correo ou modificao (implementao). Tempo de testes. Outras mtricas podem ser utilizadas como esforo (em homenshora) da manuteno, mtricas de projeto (coeso, acoplamento), mtricas de complexidade do software (ex: McCabe).

25

Problemas na Manuteno

Geralmente, a nica fonte de informao disponvel sobre o software o cdigo fonte.

Cdigo complexo e de difcil leitura sem uma documentao de apoio. Documentao de anlise (requisitos) e projeto desatualizada. Dificuldade em avaliar o impacto da manuteno pela falta de modelos do software.

Dificuldade em se realizar Testes de Regresso quando no existe nenhum registro de testes. Os mantenedores, em geral, no so os mesmos profissionais que desenvolveram o software e os desenvolvedores originais nem sempre se encontram disponveis.
26

Problemas na Manuteno

Baixa estima dos mantenedores: geralmente os profissionais acham que mais nobre a tarefa de desenvolver novos sistemas do que a tarefa de manter sistemas existentes. A maioria do software no projetada para sofrer mudanas.

27

Mtodos para Apoio Manuteno


Engenharia Reversa. Reengenharia. Gerncia de Configurao. Reutilizao de Software.

28

Engenharia Reversa
Engenharia Reversa: processo de anlise dos componentes do sistema e dos seus relacionamentos, a fim de descrever este sistema em um nvel de abstrao mais alto do que o cdigo fonte original (GANNOD, 1999).

29

Reengenharia
Reengenharia: recuperao de informaes de projeto de um software existente, a fim de reconstituir o sistema de modo a melhorar a sua qualidade global. Envolve: Engenharia Reversa, Reestruturao e Engenharia Progressa.

30

Gerncia de Configurao
Gerncia de Configurao: Disciplina aplicando direcionamento tcnico e administrativo para identificar e documentar as caractersticas fsicas e funcionais de um item de configurao, controlar as modificaes sobre estas caractersticas, gravar e relatar o processamento da mudana e o status da sua implementao, e verificar a sua adequao aos requisitos especificados. [IEEE]
31

Reutilizao de Software
Reutilizao: Processo de Incorporar em
um novo Produto: cdigo, especificaes de requisito e de projeto, planos de teste, qualquer produto gerado durante desenvolvimentos anteriores (Werner, 2002).

32

Você também pode gostar