José Malcher Jr.

Eng. Software – Analista de Sistemas

Modelo de Maturidade de Software – Processo de Desenvolvimento de Software


Fundamentos da medição de software

O objetivo da medição de software é aumentar a qualidade, o desempenho e a produtividade dos processos de desenvolvedores.

O uso de métricas está diretamente ligado ao controle desses processos.

Pesquisas realizadas em empresas de software indicam que acima de 60% dos projetos de software apresentam atraso na entrega, acarretando em custos excessivos e, em muitos casos, fracasso no seu resultado. Isso se deve, principalmente, à falta de controle dos projetos de software.

Depois dessas informações, você pode estar se questionando: Por que o software deve ser medido?

O software deve ser medido para:

  • Entender e melhorar o processo de desenvolvimento;
  • Aperfeiçoar o modelo de gerenciamento de projetos;
  • Melhorar o relacionamento com clientes;
  • Elaborar cronogramas mais realistas;
  • Gerenciar contratos de software;
  • Certificar a qualidade do software;
  • Avaliar a produtividade do processo;
  • Avaliar novas ferramentas de engenharia de software;
  • Avaliar retorno de investimento (ROI).

Medição e modelos/normas de qualidade de um software

Para compreendermos melhor esse processo, vamos ver em que as medições de software se baseiam:

  1. Medição na ISO/IEC 15504, também conhecida como SPICE, é a norma ISO/IEC que define o processo de desenvolvimento de um software. Ela é uma evolução da ISO/IEC 12207 e possui níveis de capacidade para cada processo assim como o CMMI.
  2. Medição no CMMI.
  3. Medição no MPS.BR

Vamos acompanhar, agora, boas práticas na implantação de Programas de Medição nas organizações:

  • Começar com um conjunto pequeno de métricas;
  • Utilizar um conjunto de métricas coerentes;
  • Utilizar um conjunto de medições rigorosamente definido;
  • Não utilizar métricas para motivar comportamentos esperados;
  • Foco desde os estados iniciais do ciclo de vida do software;
  • Automatizar a coleta dos dados;
  • Motivar a Gerência;
  • Estabelecer metas;
  • Envolvimento de todos com educação e treinamento;
  • Ganhar confiança;
  • Adotar uma abordagem evolutiva;
  • Aplicar a ferramenta 5S e descartar o que não é útil;
  • Fornecer informações corretas;
  • Incentivar os desenvolvedores a fazer uso das métricas;
  • Compreender que a adoção leva tempo;
  • Evitar má interpretação dos dados.

É preciso prestar bastante atenção nos fatores críticos para implantação de programas de medição. Veja quais são eles:

Sobrecarga: evitar coletar dados em excesso e desnecessários, que podem causar desperdícios e perda da credibilidade do programa de medição.

Uso incorreto da medição: medições com perda da integridade dos dados, pois os profissionais tendem a mascarar os dados com medo de que estes sejam utilizados contra eles.

Falhas de medição: obtenção de medidas erradas, ambíguas e inconsistentes, resultando em análises não conclusivas.

Falhas de processo: obtenção de medidas que motivam falhas no processo (exemplo: o objetivo de diminuir a taxa de resolução de problemas induz a ação indesejada de que as equipes tratem primeiramente os problemas mais simples).


ISO e a tecnologia da informação

A ISO criou com a IEC (International Eletrotechnical Commission), a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee).

O JTC1 é responsável pela criação de normas relacionadas à TI e é dividido em subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho (Working Groups – WG).

A subcomissão SC-7 (Engenharia de Software e de Sistemas) trata das normas relacionadas à qualidade de software.

Veja alguns grupos de trabalho da SC-7:

  • WG-2: Documentação de Sistemas.
  • WG-6: Avaliação e Métricas.
  • WG-7: Gerência do Ciclo de Vida.
  • WG-12: Medição do Tamanho Funcional.

Para compreender melhor, acompanhe o histórico da Série ISO 9000.

Normas da Série ISO 9000:2000

  • ISO 9000:2005 – Sistemas de Gestão da Qualidade – Fundamentos e Vocabulário.
  • ISO 9001:2000 – SGQ – Requisitos.
  • ISO 9004:2000 – SGQ – Diretrizes para a Melhoria de Desempenho.
  • ISO 19011:2002 – Diretrizes para Auditoria de SGQ e/ou ambiental.

Estrutura da Série ISO 9000:2000

A Norma ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e estabelece a terminologia para esses sistemas. Define uma abordagem centrada em modelo de processos, baseada em 8 princípios de gestão da qualidade e 13 fundamentos, para atingir excelência e satisfação dos clientes. Serve como base de orientação a toda a série de normas ISO 9000 (ISO, 2005).


Princípios de gestão da qualidade

Todo o processo de medição, modelos e ISO, está totalmente ligado à qualidade. Vamos aprofundar mais no assunto:

Foco no cliente: Organizações dependem de seus clientes e, portanto, é recomendável que atendam às necessidade atuais e futuras do cliente, aos seus requisitos e procurem exceder as suas expectativas.

Liderança: Líderes estabelecem a unidade de propósito e o rumo da organização. Convém que criem e mantenham um ambiente interno, no qual as pessoas possam estar totalmente envolvidas no propósito de atingir os objetivos da organização.

Envolvimento de pessoas: Pessoas de todos os níveis são a essência de uma organização e seu total envolvimento possibilita que as suas habilidades sejam usadas para o benefício da organização.

Abordagem de processo: Um resultado desejado é alcançado mais eficientemente quando as atividades e os recursos relacionados são gerenciados como um processo.

Abordagem sistêmica para a gestão: Identificar, entender e gerenciar os processos inter-relacionados, como um sistema contribui para a eficácia e eficiência da organização no sentido desta atingir os seus objetivos.

Melhoria contínua: Convém que a melhoria contínua do desempenho global da organização seja seu objetivo permanente.

Abordagem factual para tomada de decisão: Decisões eficazes são baseadas na análise de dados e informações.

Benefícios mútuos nas relações com os fornecedores: Uma organização e seus fornecedores são interdependentes e uma relação de benefícios mútuos aumenta a capacidade de ambos em agregar valor.

 

Para se obter sucesso na implantação da ISO 9000, é necessário implantar o processo de melhoria contínua, com o objetivo de aumentar a probabilidade de fazer crescer a satisfação dos clientes.

Qualidade é estar em conformidade com os requisitos dos clientes; é antecipar e satisfazer os desejos do cliente.


 Visões da qualidade de software

  • Usuário: facilidade de uso, desempenho, confiabilidade dos resultados, preço do software.
  • Desenvolvedor: taxa de defeitos, facilidade de manutenção e conformidade emrelação aos requisitos de usuários.
  • Organização: cumprimento de prazo, boa previsão de custo, boa produtividade.

Padrões de qualidade de software

O conhecimento referente aos padrões de qualidade está apoiado nas melhores práticas recomendadas pelas normas internacionais e que venham a favorecer a empresa. Esse conhecimento é adquirido após um grande número de tentativas e erros. Ajudam a empresa a evitar a não repetir erros cometidos no passado.

Os padrões favorecem para a implantação do processo de garantia de qualidade. Como esses padrões se apoiam nas melhores práticas, a garantia da qualidade deve estar assegurada.

Alguns padrões de Qualidade de Software

CMM – Capability Maturity Model – Desenvolvido pelo SEI (Software Engineering Institute).

SPICE (Software Process Improvement and Capability Determination) -Desenvolvido pela “International Organization for Standardization and the International Electrotechnical Commission” (ISO/IEC).


ISO 9001:2000 e ISO 1207

Vamos acompanhar, agora, as outras ISOs que também estão envolvidas no processo de qualidade e software.

A ISO 9001: 2000 é usada para demonstrar capacidade de atender aos requisitos do cliente e os da própria organização.

A organização deve documentar seus processos, comunicar, manter e melhorar continuamente o SGQ. Para tal, a organização deve:

  • Identificar os processos do SGQ;
  • Determinar sequência e interação desses processos;
  • Determinar critérios e métodos para assegurar que a operação e o controle desses processos são eficazes;
  • Assegurar disponibilidade de recursos e informações;
  • Monitorar, medir e analisar esses processos;
  • Impor ações para alcançar os resultados planejados e a melhoria contínua.

Vamos acompanhar, agora, as outras ISOs que também estão envolvidas no processo de qualidade e software.

ISO 1207

O padrão internacional ou modelo de referência ISO/IEC 12207 – Processos do Ciclo de Vida do Software tem como objetivo fornecer uma estrutura única para que o desenvolvedor e todo pessoal envolvido no desenvolvimento de software utilizem uma linguagem comum, que é estabelecida na forma de processos bem definidos.

A ISO/IEC 12207 contém processos, atividades e tarefas a serem aplicados durante a aquisição de um produto ou serviço de software e fornecimento, desenvolvimento, operação e manutenção e distribuição de produtos de software. A ISO/IEC 12207 provê, também, um processo que pode ser empregado na definição, controle e melhoria de processos de ciclo de vida (ISO/IEC, 2008).


ISO/IEC 12207: histórico

  • 1a Versão (1995): Tecnologia da Informação – Processos de Ciclo de Vida de Software: descreve processos e suas atividades e tarefas, de modo a facilitar o desenvolvimento de software em situações envolvendo duas partes.
  • Paralelamente, a Indústria de Software constata que, igualmente importante, é a necessidade de avaliar a capacidade de processo (ISO/IEC 15504), o que requer a declaração do propósito do processo e descrição de resultados esperados.
  • Emendas 1 (2002) e 2 (2004): introdução de novos processos e definição de propósitos e resultados esperados para cada processo.
  • Apesar da ISO 12207 tratar processos de ciclo de vida de software dentro de um contexto de sistemas, era necessário um padrão no domínio de sistemas: ISO/IEC 15288 (2002).
  • O desenvolvimento confuso das emendas e a falta de harmonia com a 15288 dificultavam a aplicação da ISO 12207.
  • Começa, então, um projeto de harmonização que culmina com a 2a edição da ISO 12207(2008): Engenharia de Software e de Sistemas – Processos de Ciclo de Vida de Software.
  • A norma ISO/IEC 12207 reconhece que nem todos os projetos e organizações precisam usar todos os processos providos. Assim, a implantação do padrão tipicamente envolve a seleção de processos apropriados para o projeto da organização (ISO/IEC, 2008).

Medição de software e melhorias em processos

Atualmente, há uma série de abordagens para medição de software, inclusive alguns padrões internacionais. Existe uma comunidade que divulga a combinação entre medição de software e melhorias em processos. Essa comunidade colaborou no desenvolvimento do processo de Medição e Análise do Capability Maturity Model Integration (CMMI) e no desenvolvimento do padrão ISO relacionado à medição de software e à avaliação de processos. O processo de Medição e Análise foi um importante adendo ao CMMI. Seu escopo é bem mais abrangente e explícito que o tratamento dispensado à questão de medição no Capability Maturity Model for Software (SW-CMM).


Atividade proposta

Pesquise um caso de sucesso com o emprego de métricas no desenvolvimento de um software.

Chave de resposta: Os modelos de métricas são usados na busca incessante pela qualidade de software.


 

Referências

PRESSMAN, Roger S. Engenharia de Software – Uma Abordagem Profissional. 7. ed. São Paulo: MCGRAW-HILL BRASIL, 2011.

SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: PEARSON (LIVROS UNIVERSITÁRIOS), 2011.

PFLEEGER, Shari Lawrence. Engenharia de Software – Teoria e Prática. 2. ed. São Paulo: Pearson (Livros Universitários), 2003.


Lista de Exercícios de Modelo de Maturidade de Software – Lista 4