Linguagem de Padrões para Planejamento de Medição de Software para o CEP Daisy F. Brito 1 Monalessa P. Barcellos 1 Gleison Santos 2 1 NEMO - PPGI - Universidade Federal do Espírito Santo 2 PPGI - Universidade Federal do Estado do Rio de Janeiro
Agenda Introdução Fundamentação Teórica Método de Pesquisa MePPLa: A Measurement Planning Pattern Language Avaliação de MePPLa Considerações Finais 2
Introdução O crescente interesse das organizações de software em melhorar os seus processos tem motivado a busca pela alta maturidade, na qual é necessário realizar o controle estatístico de processos (CEP). Alguns problemas no uso do CEP em organizações de software são a definição de medidas inadequadas e coleta de dados não apropriados ao CEP. A literatura apresenta medidas adequadas ao CEP, porém o seu acesso pode ser difícil ou ineficiente, uma vez que as informações estão dispersas. A partir de um conjunto de medidas já utilizadas no CEP, é possível identificar alguns padrões para apoiar o planejamento de medição. 3
Introdução Um padrão pode ser definido como uma solução para um problema recorrente. Padrões tipicamente são usados de maneira combinada e o registro de padrões em catálogos não favorece a identificação das relações entre os padrões. Padrões podem ser organizados em uma Linguagem de Padrões (LP), que busca representar os padrões e suas relações a fim de facilitar a aplicação dos padrões. LPs potencializam o reúso que, consequentemente, contribui para a melhoria de qualidade e a produtividade. Assim, propõe-se uma Linguagem de Padrões para auxiliar na elaboração de planos de medição visando ao CEP. 4
Fundamentação Teórica Medição de Software Processo de Medição de Software Planejamento da Medição Execução da Medição Avaliação da Medição GQM (BASILI et al. 1994) pode ser usado para apoiar o planejamento da medição. Para cada objetivo estabelecido, é possível determinar questões cujas respostas são fornecidas por dados coletados para medidas 5
Fundamentação Teórica Controle Estatístico de Processos Usado para analisar o comportamento dos processos. Conhecer o comportamento histórico permite avaliar estabilidade, prever o comportamento futuro e verificar a capacidade de os processos alcançarem os objetivos para eles estabelecidos. Para realizar o CEP, é preciso selecionar os processos que serão submetidos ao CEP e as medidas que serão utilizadas para analisar o comportamento desses processos. Para realizar o CEP, são necessárias medidas adequadas para tal. Por exemplo, a medida deve: possuir granularidade adequada, estar relacionada a processo crítico, ter definição operacional que permita coleta consistente de dados e possuir medidas correlatas para apoiar a análise. 6
Fundamentação Teórica Linguagem de Padrões Uma Linguagem de Padrões é uma rede de padrões inter-relacionados que define um processo para resolução sistemática de problemas. Notações visuais podem ser utilizadas para representar graficamente LPs. OPL-ML (Ontology Pattern Language Modeling Language): notação visual, baseada em constructos da UML, para representação de Linguagem de Padrões Ontológicos (QUIRINO, 2016). Pode ser usada para representar LPs em outros domínios. LPs relacionadas à medição de software foram propostas por ANDRADE e SOUZA (2008) e BRAGA et al. (2012). Elas tratam estimativas de software na fase de planejamento do projeto. 7
Método de Pesquisa Problema Organizações de software têm dificuldade em realizar planejamento de medição adequada ao CEP. Requisitos da Pesquisa Desenvolver uma linguagem de padrões para planejamento de medição adequada ao CEP que seja capaz de guiar o usuário na seleção dos padrões a serem inclusos no plano de medição, apresentar relações entre medidas e que seja representada graficamente. Critérios de Aceitação Viabilidade de uso e utilidade. Ciclo de Relevância Domínio de Aplicação A linguagem de padrões é destinadas a organizações de software ou profissionais que desejam definir planos de medição adequados ao CEP. MePPLa (Concepção e Desenvolvimento) Ciclo de Design MePPLa Avaliação (avaliada em estudo experimental) Fundamentos Teorias científicas e métodos relacionados a: mapeamento sistemático da literatura, medição de software, controle estatístico de processos, linguagem de padrões e métodos de avaliação. Contribuições MePPLa, Ciclo de um panorama Rigor sobre a pesquisa abordando medidas utilizadas no CEP, o survey, que fornece informações sobre medidas que têm sido usadas em iniciativas de CEP em organizações brasileiras, ferramenta de apoio ao uso de MePPLa. 8
MePPLa: A Measurement Planning Pattern Language LP composta por padrões baseados no GQM. Cada padrão está associado a um (ou mais) processo que pode ser submetido ao CEP. MePPLa Busca apoiar o planejamento de medição para o CEP de organizações que desejam implementar as práticas do CEP visando à alta maturidade. Versão atual de MePPla contém 26 padrões, relacionados a 3 processos: 12 relacionados a Gerência de Projetos, 6 a Codificação e 8 a Testes. Padrões identificados a partir de uma investigação da literatura (mapeamento sistemático) e da prática (survey), que resultaram em 110 medidas, 18 processos e 49 objetivos de medição. A partir dos resultados, os processos a ser tratados na primeira versão de MePPLa foram selecionados e para cada um foram extraídos padrões. Os padrões baseiam-se no GQM e incluem definições operacionais para as medidas neles presentes. 9
MePPLa: A Measurement Planning Pattern Language Test Preparation Productivity Name: Test Preparation Productivity Process / Sub-process: Tests / Test Preparation Measurement Goal: Improve productivity in test preparation Information Needs: What is the productivity in tests preparation? Measures: Test Preparation Productivity, Number of Elaborated Test Cases, Test Preparation Effort. Operational Definition of Measures: Derived measure Test Preparation Productivity Mnemonic TPP Description Measure used to quantify productivity in the tests preparation, that is, the ratio between the number of test cases produced and the effort spent on test preparation. Entity Tests Preparation sub-process Property Productivity Scale Positive real numbers accurate to two decimal places Measurement unit Test Cases / Man-Hour Formula (NPTC/ TPE) Measurement Procedure Calculate productivity in test preparation using the formula for calculating the measure. Measurement Periodicity The measurement must be performed for each execution of the Test Preparation sub-process. Measurement Responsible <<indicate the role responsible for collecting data for the measure. It is recommended that the measurement responsible is the data provider (i.e., a role involved in tests preparation)>> Measurement Moment At the end of each execution of the Test Preparation sub-process. Measurement Analysis Procedure For process behavior analysis (organizational context): - Represent in a control chart values collected for the measure in several projects. - Obtain the process control limits and analyze the process behavior: (i) If the values pass in the stability tests, then the process is stable and a baseline can be established. Stability tests [WHEELER and CHAMBERS 2010]: Test 1: There is at least one point outside 3σ; Test 2: there are at least two out of three successive points at the same side and at more than 2σ from the central limit; Test 3: there are at least four out of five successive points at the same side and at more than 1σ from the central limit; Test 4: There are at least eight successive points at the same side. (ii) If the values do not pass in the stability tests, the process is unstable. It is necessary to investigate the special causes, identify corrective actions and execute them. For quantitative project management (project context): - Represent in a control chart values collected for the measure in the project. - Analyze the process behavior considering the organizational behavior expected for it (i.e., by using the process baseline as reference). (i) If the values pass in the stability tests considering the process baseline as reference, then the process behaved according to the behavior expected for it in the organization. (ii) If the values do not pass in the stability tests considering the process baseline as reference, then the process did not behave according to the behavior expected for it in the organization. It is necessary to investigate the causes, identify corrective actions and execute them. In the project context, the analysis must be performed once to each execution of the Test Preparation 10
process baseline as reference). (i) If the values pass in the stability tests considering the process baseline as reference, then the process behaved according to the behavior expected for it in the organization. MePPLa: A Measurement Planning Pattern Language Analysis Periodicity (ii) If the values do not pass in the stability tests considering the process baseline as reference, then the process did not behave according to the behavior expected for it in the organization. It is necessary to investigate the causes, identify corrective actions and execute them. In the project context, the analysis must be performed once to each execution of the Test Preparation sub-process. In the organizational context <<indicate the periodicity based on a time period (e.g., fortnightly) or on an amount of new data collected (e.g., each 4 new values collected)>> Analysis Responsible <<indicate the role responsible for analyze data collected for the measure>> In the project context, the analysis must be performed after each execution of the Test Preparation subprocess. Analysis Moment In the organizational context, analysis must be performed during the activity in which organizational process behavior analysis is done <<indicate which is the activity in your organization >>. Base Measure 1 Number of Prepared Test Cases Mnemonic NPTC Description Measure that quantifies the number of test cases elaborated in the test preparation. Entity Tests Preparation sub-process Property Number of test cases Scale Positive real numbers accurate to two decimal places Unit of measurement - Formula - Measurement Procedure Obtain and record the number of test cases prepared in the test preparation. ( ) ( ) Base Measure 2 Test Preparation Effort Mnemonic TPE Description Measure that quantifies the test preparation effort. Entity Tests Preparation sub-process Property Effort Scale Positive real numbers accurate to two decimal places Unit of measurement Man-hour Formula - Measurement Procedure Obtain and record the effort spent on the preparation of the tests, i.e., test cases preparation. ( ) ( ) Related Patterns: Test Preparation Efficiency. 11
MePPLa: A Measurement Planning Pattern Language MePPLa é representada utilizando OPL-ML (QUIRINO, 2016). Possui dois tipos de modelos: Estrutural: apresenta os padrões que compõem a linguagem e as relações estruturais entre eles. Comportamental (modelo de processo): descreve o processo de aplicação dos padrões. Possui dois formatos: caixa-preta e detalhado. Uso de MePPLa: i. Com base em seus objetivos estratégicos, a organização deve selecionar os processos que deseja submeter ao CEP. ii. Uma vez selecionados os processos, a organização deve navegar pelos fluxos do modelo de processo de MePPLa, selecionando os padrões de acordo com as condições apresentadas. O modelo estrutural auxilia na identificação de medidas correlatas que podem ser selecionadas para auxiliar na análise. iii. Selecionados os padrões, eles devem ser incorporados ao Plano de Medição da organização. 12
MePPLa: A Measurement Planning Pattern Language Modelo Estrutural do processo Testes 13
MePPLa: A Measurement Planning Pattern Language Modelo Comportamental (Formato Caixa Preta) 14
MePPLa: A Measurement Planning Pattern Language Modelo Comportamental do Processo Testes Formato Detalhado 15
MePPLa: A Measurement Planning Pattern Language Ferramenta de Apoio ao uso de MePPLa 16
Avaliação de MePPLa Um estudo foi conduzido para avaliar se MePPLa é útil no apoio ao planejamento de medição de software visando ao CEP e se seu uso é viável. Indicadores: Adequação dos resultados gerados pela linguagem de padrões Utilidade da linguagem de padrões Benefícios providos pelo uso da linguagem de padrões para planejamento de medição. 4 participantes com experiência/conhecimento em medição de software e CEP. Procedimento: Disponibilização de informações em um documento Uso da ferramenta pelos participantes Resposta a um questionário eletrônico 17
Avaliação de MePPLa Resultados Adequação dos resultados gerados a partir do uso de MePPLa 3 participantes consideraram os resultados adequados Utilidade de MePPLa 3 participantes consideraram MePPLa muito útil ou útil Benefícios providos pelo uso de MePPLa 3 participantes consideraram que MePPLa contribui para a qualidade dos planos de medição 3 participantes declararam ter sido guiados na seleção das medidas a serem inclusas no plano Todos os participantes consideraram fácil ou muito fácil usar MePPLa Todos os participantes consideraram que MePPLa contribui para reutilização 2 participantes consideraram que MePPLa contribui para tornar o planejamento de medição muito mais produtivo ou mais produtivo 18
Avaliação de MePPLa A avaliação inicial de MePPLa aponta que ela é um apoio útil ao planejamento de medição de software visando ao CEP e seu uso é viável. Analisando-se as justificativas apresentadas pelos participantes para suas respostas, notou-se que limitações da ferramenta influenciaram na avaliação de MePPLa. O estudo foi realizado com poucas pessoas, em curto prazo e fora do contexto organizacional (não foi usado em projetos reais), o que pode também ter influenciado os resultados. 19
Considerações Finais Lacunas identificadas em um mapeamento sistemático da literatura que investigou medidas usadas no CEP [Brito and Barcellos 2016]: (i) (ii) falta de abordagem para selecionar medidas adequadas ao CEP ausência das definições operacionais das medidas encontradas (iii) falta de preocupação com medidas correlatas. Essas lacunas são tratadas em MePPLa, uma vez que: (i) (ii) MePPLa fornece um fluxo que guia o usuário na seleção dos padrões contendo medidas MePPLa provê definições operacionais para as medidas que compõe os padrões (iii) MePPLa possui um modelo estrutural, no qual informações sobre as relações estruturais entre os padrões revelam as medidas correlatas e os objetivos que impactam em outros. 20
Considerações Finais Sendo uma LP, MePPLa pode estar em constante evolução. A versão atual é uma primeira versão e pode ser evoluída. Principal limitação: avaliação de MePPLa o Pequeno número de participantes o Pouco tempo para avaliação o Uso fora do contexto organizacional o Influência das limitações da ferramenta Trabalhos futuros: o Novos estudos para avaliar MePPLa o Evoluir MePPLa para tratar outros processos e incluir outros padrões o Realizar melhorias na ferramenta de apoio 21
Referências ANDRADE, T., SOUZA, J. Uma linguagem de Padrões de Estimativa de Software para Micro e Pequena Empresas, 7ª Conferência Latino-Americana em Linguagens de Padrões para Programação, 2008. BASILI, V. R., ROMBACH, H. D., CALDIERA, G. Goal Question Metric Paradigm, Encyclopedia of Software Engineering, 2 Volume Set, John Wiley & Sons, Inc, 1994. BRAGA, M.R.R., BEZERRA, C.I.M., MONTEIRO, J.M., ANDRADE, R. (2012). A pattern language for agile software estimation. Proc. of the 9th Latin-American Conference on Pattern Languages of Programming. Natal, RN, Brazil. BRITO, D. F., BARCELLOS, M. P. (2016). Measures Suitable for SPC: A Systematic Mapping. Proc. Of the XV Brazilian Symposium on Software Quality, Maceió AL, Brazil. QUIRINO, G. K. S. Uma Notação Visual para Representação de Linguagens de Padrões Ontológicos. Dissertação de Mestrado, UFES Universidade Federal do Espírito Santo, 2016. 22
Linguagem de Padrões para Planejamento de Medição de Software para o CEP Daisy F. Brito 1 Monalessa P. Barcellos 1 Gleison Santos 2 1 NEMO - PPGI - Universidade Federal do Espírito Santo 2 PPGI - Universidade Federal do Estado do Rio de Janeiro