características do produto em termos de desempenho, confiabilidade, eficiência,
usabilidade, nível de manutenibilidade, nível de portabilidade e nível de reutilização.
O software enquanto produto sofre alterações, caracterizadas como:
Manutenção corretiva, que compreende:
remoção de defeitos introduzidos pelo projeto
remoção de defeitos introduzidos por manutenções adaptativas
remoção de defeitos introduzidos por melhorias
Manutenção adaptativa, que compreende:
a alteração de determinadas funções do software visando adequá-lo
a requisitos regulatórios ou de legislação
Melhorias no software, que compreendem:
introdução de novas features no software em função de novos
requisitos dos negócios
introdução de novas features no software em função de mudança
de tecnologia
Uma nova release do software é o somatório de manutenções adaptativas e de
melhorias.
O desenvolvimento de uma nova release pode ser realizado sob a filosofia de
projeto, ao passo que manutenções corretivas geralmente não.
1.2 - A Dimensão da Gestão do Software
A gestão do software consiste nas ações necessárias para a gestão do projeto, do
ambiente de desenvolvimento, e do produto (release) visando atingir objetivos
previamente estabelecidos no que concerne a produtividade e qualidade e quanto ao
atendimento das necessidades dos usuários ( clientes ).
Gestão do Projeto
As ações necessárias para a gestão do projeto podem ser categorizadas em:
Planejamento do Projeto, que compreende:
Elaborar o escopo preliminar do produto a ser desenvolvido
Elaborar estimativas de prazos, recursos, esforço, custos e
tamanho do produto
Definir o processo de desenvolvimento a ser adotado pelo projeto
Definir a estrutura de organização do projeto
Definir os pontos de controle do projeto
Controle do Projeto, que compreende:
Controle da alocação dos recursos
Verificação e validação dos produtos intermediários
Controle de mudanças no escopo do projeto
Refinamento do planejamento inicial do projeto
Replanejamento do projeto
Acompanhamento da realização das tarefas conforme planejado
Acompanhamento da realização orçamentária do projeto
Monitoramento do Projeto, que compreende:
Verificar o progresso do projeto
Verificar e avaliar a qualidade dos produtos intermediários
Verificar e avaliar a produtividade da equipe
Avaliar o projeto em termos financeiros
Gestão do Ambiente de Desenvolvimento de Software
A gestão do ambiente de software consiste em ações relativas a:
Introduzir novos recursos para a gestão e desenvolvimento de software
Avaliar comparativamente a produtividade dos projetos
Avaliar a produtividade do desenvolvimento conforme distintas plataformas
de hardware e software
Avaliar comparativamente, a qualidade dos projetos e produtos
Avaliar as tendências da produtividade e qualidade
Aperfeiçoar o processo de desenvolvimento de software
Avaliar o impacto de novos métodos e técnicas sobre a produtividade e
qualidade do software
Avaliar os aspectos financeiros do software
Gestão do Produto
A gestão do produto , por sua vez, refere-se a ações relativas a:
Elaborar o planejamento anual das manutenções/melhorias
Avaliar a produtividade das manutenções e melhorias
Avaliar a qualidade do produto ao longo de sua vida útil
Avaliar o nível de atendimento às solicitações de manutenção
Avaliar os aspectos financeiros do produto
1.3 - A Importância da Medição do Software
O objetivo da aplicação da medição de software é fornecer aos gerentes e
engenheiros de software um conjunto de informações tangíveis para planejar o projeto,
realizar estimativas, gerenciar e controlar os projetos com maior precisão.
A realidade aponta para a necessidade de medições, visto que:
As estimativas de prazos, recursos, esforço e custo são realizadas com
base no julgamento pessoal do gerente de projeto
A estimativa do tamanho do software não é realizada
A produtividade da equipe de desenvolvimento não é mensurada
A qualidade dos produtos intermediários do processo não é medida
A qualidade do produto final (release) não é medida
O aperfeiçoamento da qualidade do produto ao longo de sua vida útil não é
medido
Os fatores que impactam a produtividade e qualidade não são
determinados
A qualidade do planejamento dos projetos não é medida
Os custos de não conformidade ou da má qualidade não são medidos
A capacidade de detecção de defeitos introduzidos durante o processo não
é medida
Não há ações sistematizadas no sentido de aperfeiçoar continuamente o
processo de desenvolvimento e de gestão do software
Não há avaliação sistemática da satisfação dos usuários (clientes)
Na verdade, a maioria dos projetos e produtos de software são desenvolvidos e
evoluídos em bases artesanais , cuja única preocupação é atingir o objetivo de prazo,
negligenciando os atributos de qualidade e financeiro , ou de controle de custos.
Dessa forma, o que temos entregado aos nossos usuários e clientes é um
conjunto de código, que executa determinadas funções e defeitos, e o que é pior, não
aproveitamos as experiências passadas para aperfeiçoar o processo de desenvolvimento.
A adoção dos conceitos de engenharia para o desenvolvimento do software
requer:
Um processo de software definido em termos de políticas de
desenvolvimento, procedimentos, padrões, métodos, técnicas e
ferramentas
Medições relativas à atributos do projeto, tais como prazos, recursos,
custos e esforço
Medições relativas à atributos do processo, tais como cobertura de testes,
nível de detecção e remoção de defeitos, nível de complexidade do projeto,
produtividade
Medições relativas à atributos do produto, tais como confiabilidade, nível de
detecção de defeitos , índice de manutenção, tamanho do software