MeiSE (Measurement in Software Engineering) inclui uma série de iniciativas realizadas durante mais de dez anos com o objetivo de apoiar medição em organizações de software e TI. O ponto de partida foi a tese de doutorado intitulada Uma Estratégia para Medição de Software e Avaliação de Repositórios de Medidas para Controle Estatístico de Processos em Organizações de Software de Alta Maturidade, de Monalessa P. Barcellos. Desde então, temos proposto ontologias, estratégias, métodos e ferramentas de apoio à medição de software. Algumas delas são citadas nesta página.
Medição de software é um processo chave para a melhoria de processos e produtos de software. Fornece informação útil para as organizações analisarem seu desempenho, orientando tanto a tomada de decisões como as atividades diárias. Organizações bem sucedidas realizam medição como parte de suas atividades. De acordo com os objetivos pretendidos e o nível de maturidade da organização, medição pode ser realizada de diferentes formas. Por exemplo, organizações em níveis iniciais de maturidade de modelos como o CMMI (Capability Maturity Model Integration) e MR-MPS-SW (Modelo Brasileiro de Referência para Melhoria de Processos de Software) usam a medição com foco em atender necessidades de informação gerenciais. Por outro lado, organizações em níveis de maturidade mais altos, tais como CMMI níveis 4 e 5 e MR-MPS-SW níveis B e A, realizam medição também para o controle estatístico de processos (CEP), a fim de compreenderem o comportamento dos processos e obter informações úteis para apoiar os esforços em melhoria de processos.
ORMS é uma ontologia de referência bem fundamentada que provê conceituação sobre medição de software e controlo estatístico de processos. Sua primeira versão foi proposta em 2009, na tese de doutorado de Monalessa P. Barcellos. ORMS evoluiu ao longo dos anos e atualmente é uma ontologia de SEON (Software Engineering Ontology Network). Publicações relacionadas:
ORMS representa conhecimento estrutural de medição de software. Para abordar aspectos comportamentais do processo de medição de software, foi desenvolvida uma Ontologia Tarefa de Medição de Software (OTMS), que foi introduzida neste artigo:
Geralmente, organizações de software utilizam diferentes ferramentas para apoiar diferentes processos. Por exemplo, ferramentas para elaboração de cronogramas e orçamentos são usadas para auxiliar na gerência de projetos, ferramentas de modelagem são usadas para apoiar a engenharia de requisitos e ambientes de desenvolvimento e sistemas de controle de versões são usados para apoiar a codificação e a gestão do código fonte. Embora essas ferramentas não sejam concebidas para apoaiar medição de software, muitas vezes, elas armazenam dados úteis relacionados aos processos que apoiam (por exemplo, número de defeitos, tempo despendido em atividades, número de linhas de código, taxa de falhas nos testes, etc.). Para apoiar adequadamente a medição por software, essas ferramentas devem ser integradas. No entanto, essa não é uma tarefa fácil. A heterogeneidade entre os sistemas é a principal dificuldade. OBA-MSI é uma abordagem que utiliza ontologias de medição de software (ORMS e OTMS citadas anteriormente) como base para integrar ferramentas e apoiar a medição de software. OBA-MSI foi apresentada neste artigo:
Propusemos uma estratégia para preparar as organizações de software para o controlo estatístico dos processos, a qual foi apresentada em:
No contexto dessa estratégia, definimos um conjunto de recomendações para a medição de software e um instrumento para avaliar repositórios de medição.
O conjunto de recomendações fornece recomendações para auxiliar as organizações de software a realizar medição visando ao CEP. As recomendações podem ser vistas do documento disponível aqui. Uma visão geral do conjunto de recomenações foi apresentada em:
O instrumento de avaliação de repositórios de medição fornece checklists e um processo para avaliar a adequação dos repositórios de medição ao CEP. A especificação do instrumento está disponível aqui. O artigo a seguir aborda o uso do instrumento para avaliar o repositório de medidas de uma organização:
O crescente interesse das organizações em melhorar seus processos de software levou a uma busca pela alta maturidade em processos, onde o controle estatístico dos processos (CEP) é necessário. Um dos desafios para realizar CEP é seleccionar as medidas adequadas. Medidas utilizadas no CEP podem ser encontradas na literatura e podem ser reutilizadas pelas organizações, mas a informação está dispersa e não estruturada, não favorecendo acesso e reúso.
Analisando-se medidas já utilizadas em iniciativas de CEP é possível identificar padrões de medidas usadas para monitorizar certos objetivos de medição e para realizar o controle estatístico de determinados processos. Padrões podem ser organizados em linguagens de padrões, que representam os padrões, suas relações e definem um processo que orienta a seleção e utilização de padrões.
MePPLa é uma linguagem de padrões composta por um conjunto de padrões inter-relacionados que, quando utilizados de forma combinada, ajudam na elaboração de planos de medição para o CEP. Os padrões de MePPLa foram identificados a partir da literatura e de um survey com profissionais.
Em MePPLa cada padrão está relacionado a um processo e segue o formato Goal-Question-Metric (GQM). Assim, em MePPLa, um padrão inclui um objetivo de medição, questões que indicam necessidades de informação que devem ser satisfeitas para que seja possível monitorar o objetivo e medidas que satisfazem as necessidades de informação. Ao utilizar MePPLa, a organização seleciona os padrões relacionados com os processos que ela pretende submeter ao CEP e os padrões selecionados são adicionados ao plano de medição. Atualmente, MePPLa inclui padrões relacionados aos processos Gerência de Projectos, Codificação e Testes. Sendo uma linguagem de padrões, MePPLa está em constante evolução, com novos padrões e processos podendo ser gradualmente acrescentados. MePPLa foi introduzida neste artigo:
A especificação textual de MePPLa está disponível aqui. O uso de MePPLa é apoiado pela ferramenta, MePPLa Tool, na qual o usuário pode selecionar os padrões e incluí-los em um documento para a elaboração do plano de medição.
A literatura aponta que serviços de TI devem apoiar processos de negócio críticos e devem ser medidos a fim de fornecer informações úteis para a tomada de decisões. Nos últimos anos, em uma parceria com o prof. Gleison Santos (UNIRIO) e a profa. Tayana Conte (UFAM), temos investigado aspectos relacionados à medição de serviços de TI e aplicado conhecimento relacionado a medição de software neste contexto. No trabalho de mestrado de Bianca Trinkenreich (UNIRO) foi definido SINIS, um método para identificar objetivos, estratégias e indicadores para serviços de TI, que estende o GQM+Strategies. SINIS auxilia departamentos de serviços de TI na identificação de objetivos, estratégias e indicadores para fornecer informação para a tomada de decisão para diferentes níveis organizacionais e em alinhamento com os objetivos de negócio. SINIS apoia a definição de estratégias para atingir os objetivos de serviços de TI e a identificação de indicadores que permitam avaliar as estratégias e o alcance aos objetivos. É baseado em abordagens de melhoria de processos (principalmente GQM+Strategies) e abordagens relacionadas com a gestão de serviços de TI (principalmente COBIT Goals Cascade).
Publicações Relacionadas:
Informações gerais sobre medição de software e controlo estatístico de processos, incluindo conhecimentos obtidos a partir do conjunto de recomendações e instrumento de avaliação mencionados anteriormente, podem ser encontradas neste livro: