Este capítulo procura identificar o estado da arte e prática no desenvolvimento de SPCMMs. Para tanto foram levantados os trabalhos correlatos por meio de uma revisão sistemática da literatura completada por um survey.
Embora um grande volume customizações de SPCMMs já tenha sido realizado (WANGENHEIM et al., 2010b), o estudo sobre como realizar de forma sistemática a aquisição de conhecimento necessária a tais customizações é escasso. Como este trabalho trata da definição de um método para aquisição de conhecimento de SPCMMs com o intuito de fornecer um suporte sistemático para a sua customização para domínios específicos, esta seção apresenta as experiências relatadas na literatura que contém estudos que se aproximam desta pesquisa.
Foram considerados trabalhos correlatos para o estado da arte aqueles que apresentam algum grau de similaridade quanto: ao seu (i) objeto: trabalhos que enfoquem aquisição de conhecimento a partir de SPCMMs; (ii) objetivos: trabalhos que definam metodologias, métodos ou abordagens que tratem do desenvolvimento ou customização de SPCMMs; ou (iii) resultados: trabalhos que apresentem análises de quais são os SPCMMs existentes e como eles têm sido desenvolvidos.
Desta forma, com o objetivo de identificar o estado da arte e prática em relação ao objeto, objetivos e resultados desta tese, foram levantadas três perguntas que norteiam o levantamento do estado da arte:
1. Quais SPCMMs estão sendo desenvolvidos atualmente? 2. Como os SPCMMs têm sido desenvolvidos?
3. Quais são os métodos para desenvolvimento/ customização de SPCMMs?
As próximas seções deste capítulo apresentam os trabalhos identificados que procuram responder a estas perguntas.
3.1 Quais SPCMMs estão sendo desenvolvidos atualmente
Vários autores têm analisado o estado da arte no que diz respeito aos modelos e normas de referência para Engenharia de Software, não se restringindo a SPCMMs somente. Dentre estes, destaca-se o trabalho “Frameworks Quagmire” (atoleiro de frameworks), apresentado
inicialmente em (SHEARD, 1997) e atualizado em (SHEARD, 2001), que realiza uma análise de: normas, padrões de processos, práticas recomendadas, diretrizes, modelos de maturidade e outros frameworks relacionados a software e sistemas. Esta interessante pesquisa reconhece o valor dos novos modelos integrados, como CMMI e o FAA ICMM, que facilitam a adoção e compatibilidade com outros modelos, mas a conclusão do trabalho recomenda às empresas definirem os seus próprios processos, a fim de atingir seus objetivos de negócio. Entretanto, este trabalho não apresenta foco na customização de modelos genéricos para domínios específicos.
No trabalho apresentado em (MOORE, 1999) pelo IEEE Software Engineering Standards Committee, é proposta uma coleção integrada de normas de engenharia de software. Este trabalho apresenta uma pesquisa que descobriu 315 normas, guias, manuais e outros documentos normativos mantido por 46 diferentes organizações, demonstrando que os profissionais de engenharia de software têm dificuldade em encontrar as normas e padrões de que precisam para uma necessidade particular dentre os inúmeros disponíveis. Neste trabalho é oferecido um guia em quatro volumes com todas as normas mais importantes encontradas na pesquisa, numa visão integrada sob um guarda-chuva da norma IEEE / EIA 12.207. Mesmo não focando estritamente em SPCMMs, este trabalho denota a expressiva quantidade de normas e padrões existentes relacionados a software, demonstrando a clara necessidade de um maior apoio metodológico para o seu desenvolvimento.
Paulk (2004) propõe algumas alternativas para sobreviver ao “atoleiro de modelos de processos, modelos integrados e normas". O documento tenta descobrir porque os modelos de processos e padrões de referência são diferentes, e propor estratégias para a integração de diversos modelos e padrões sob a perspectiva de desenvolvedores e implementadores de modelos. Apesar de este trabalho não focar em modelos para domínios específicos de software, o autor afirma que modelos de âmbito mais restrito provêem requisitos e orientações mais detalhados sobre a execução de partes de um modelo mais amplo
O Guide to Software Engineering Standards and Specifications (Guia de Normas e Especificações de Engenharia de Software) apresentado em (MAGEE & TRIPP, 1997) descobriu 55 organizações desenvolvedoras de padrões de engenharia de software, que produziram cerca de 300 padrões de desenvolvimento e manutenção de software para mais de 1,5 milhões de engenheiros de software. O estudo demonstra que menos de mil pessoas foram envolvidas no
desenvolvimento destes padrões para a população mundial de engenheiros de software. Os autores afirmam que um diretório é claramente necessário, a fim de facilitar o acesso dos profissionais ao conhecimento publicado nesta infinidade de normas. Este é mais um estudo que apresenta o grande volume de normas e padrões nesta área, reforçando a urgência de apoio sistemático ao seu desenvolvimento.
Em relação ao estado da arte em modelos de processos e normas, Magee &. Thiele (2004) avaliam normas e padrões de processo sob a perspectiva de sete critérios, abrangendo pontos de vista organizacionais e profissionais. Em decorrência desta análise, este trabalho aponta alguns desafios no processo de como os desenvolvedores de normas e padrões e os usuários destas normas e padrões podem: selecionar, usar e evoluí-los. Como conclusão, os autores percebem a necessidade de um sistema atualizado e mais eficiente para a produção de normas que possam "capturar as vozes do pequeno desenvolvedor de software e do usuário de software".
Apesar de bastante abrangentes, estes trabalhos não enfocam especificamente SPCMMs, mas, em geral, abrangem outros modelos e normas de referência para engenharia de software. Assim, no sentido de identificar o estado da arte sobre quais os SPCMMs existentes atualmente, foi realizada uma revisão da literatura, na forma de uma Systematic Literature Review – Revisão Sistemática da Literatura (SLR), conforme relatado em (WANGENHEIM et al., 2010a) e em (WANGENHEIM et al., 2010b). Esta SLR seguiu o processo proposto por Kitchenham (2007) onde são realizadas três fases principais, iniciando pelo planejamento da revisão sistemática, seguindo a realização da revisão sistemática e a apresentação dos resultados da revisão da literatura. A Figura 14 ilustra o processo de SLR.
Figura 14: Processo de Revisão Sistemática da Literatura Fonte: Baseado em (BRERETON et al., 2007)
A pergunta de pesquisa da revisão da literatura, elaborada com base na pergunta de pesquisa geral deste trabalho, definida no capítulo 1, é:
Quais Software Capability/Maturity Models (SPCMMs) têm sido desenvolvidos, expandidos e/ou adaptados/harmonizados?
O escopo da SLR (PETTICREW & ROBERTS, 2005) é assim definido:
População: Organizações ou grupos de pesquisa desenvolvedores de SPCMMs.
Intervenção: Desenvolvimento de Software Process Capability / Maturity Models.
Comparação: Avaliação e/ou Melhoria da Qualidade de Processo e Produto de Software.
Resultados: Software Process Capability/Maturity Models desenvolvidos.
Contexto: Publicações realizadas a partir de 1990.
O Protocolo da Revisão (Review Protocol) é apresentado no Quadro 6.
Quadro 6: Protocolo de Revisão
PASSO DESCRIÇÃO
Background Estabelecimento de um método de aquisição de conhecimento de SPCMMs para o desenvolvimento de SPCMMs para domínios específicos de processo de software.
Perguntas de
Pesquisa Quais Software Capability / Maturity Models (SPCMMs) têm sido desenvolvidos, expandidos e/ou adaptados/harmonizados?
Estratégia Fontes de Pesquisa:
IEEEXplore, the ACM Digital Library, Compendex EI, ScienceDirect e WILEY Interscience database
Termos de Pesquisa:
IEEE XPLORE: (standard <or> model <or> framework) <and> ("software process" <or> "software processes" <or> "software engineering") <and> (assessment <or>
improvement <or> capability <or> maturity) <and> (CMMI <or> 15504 <or> 12207 <or> “MPS.BR” <or> CMM <or> SPICE <or> iso <or> standards) published since 1990 ACM Digital Library: ((Abstract:standard) or
(Abstract:model) or (Abstract:framework)) and ((Abstract:"software process") or (Abstract:"software processes") or (Abstract:"software engineering")) and ((Abstract:assessment) or (Abstract:improvement) or (Abstract:capability) or (Title: maturity)) and (CMMI or 15504 or 12207 or “MPS.BR” or CMM or SPICE or iso or standards) published since 1990
Compendex/Engineering village: ((standard OR standards OR model or framework) AND ("software process" OR "software processes" OR "software engineering") AND (assessment OR improvement OR capability OR maturity) AND (CMMI OR 15504 OR 12207 OR "MPS.BR" OR CMM OR SPICE OR ISO OR standards)) wn KY {english} WN LA ScienceDirect: title-abstr-key((standard OR standards OR model or framework) AND ("software process" OR "software processes" OR "software engineering") AND (assessment OR improvement OR capability OR maturity) AND (CMMI OR 15504 OR 12207 OR "MPS.BR" OR CMM OR SPICE OR ISO OR standards))
standard*) OR (title: model) OR (abstract: model) OR (title: framework) OR (abstract: framework)) AND ((abstract: "software process" ) OR (abstract: "software processes") OR (abstract: "software engineering")) AND ((abstract:
assessment) OR (abstract: improvement) OR (abstract: capability) OR (title: maturity)) AND (CMMI OR 15504 OR 12207 OR “MPS.BR” OR CMM OR SPICE OR iso OR standards)
Critérios Primários de
Seleção
1. Todos os artigos publicados em língua Inglês sobre modelos de capacidade/maturidade de processo de software disponíveis na Web (através de bibliotecas digitais e bases de dados), publicados entre janeiro de 1990 e abril de 2009. 2. Somente artigos revisados (peer reviewed), incluindo apenas os trabalhos publicados em revistas ou anais de conferências.
3. Excluir qualquer publicação, que não descreva explicitamente um modelo de capacidade/maturidade de processo de software ou norma, tais como: mapeamentos entre os modelos, análises de modelos de qualquer tipo, modelos com um foco diferente daqueles relacionados a processo de software, etc.
Critérios de
Qualidade 1. O modelo é detalhadamente apresentado? 2. São apresentados detalhes de como o modelo foi