• Nenhum resultado encontrado

Medição e Análise de Processo de Software Utilizando Técnicas de Inteligência Artificial

N/A
N/A
Protected

Academic year: 2021

Share "Medição e Análise de Processo de Software Utilizando Técnicas de Inteligência Artificial"

Copied!
6
0
0

Texto

(1)

Medição e Análise de Processo de Software Utilizando

Técnicas de Inteligência Artificial

Luciana Maria Azevedo Nascimento Orientador: Rodrigo Quites Reis Co-orientador: Carla Alessandra Lima Reis Universidade Federal do Pará – Belém – PA - Brasil PPGEE – Programa de Pós-Graduação em Engenharia Elétrica

{luma,clima}@ufpa.br, quites@computer.org

Nível: Mestrado Ano de Ingresso: 2005 Previsão de Conclusão: 03/2007 Aprovação da Proposta: 02/2005

Resumo. As pesquisas em relação à melhoria do processo de software têm

sido intensificadas em face da crescente demanda por produto de melhor qualidade. Tendo a qualidade do software relação direta com a qualidade do processo utilizado para desenvolvê-lo, constata-se a necessidade do uso de práticas que favoreçam o aperfeiçoamento contínuo do processo de desenvolvimento. Neste contexto, dados quantitativos que retratem a realidade de processos podem fornecer conhecimento acerca de pontos de sucesso e pontos que necessitam de melhoria. Este trabalho propõe o desenvolvimento de uma ferramenta de medição e análise de dados históricos de execução de processos, com o objetivo de apoiar a gerência de conhecimento e melhoria de qualidade.

Palavras-chave: Engenharia de Software, Inteligência Artificial, Qualidade de

(2)

1. Caracterização do problema.

A demanda por software na atualidade possui um crescimento contínuo, a ponto de produtos de software tornarem-se vitais em determinadas atividades da sociedade contemporânea. Este fato traz alguns desafios para a Engenharia de Software, pois o mercado exige grande produtividade, cumprimento de prazos, melhores soluções e software de melhor qualidade. O melhor atendimento a esses requisitos implica em um grande diferencial entre organizações de software [Natali e Falbo 2002]. Desse modo, a qualidade deixou de ser um diferencial competitivo e tornou-se um requisito básico para a sobrevivência no mercado [Florac e Carleton 1999].

Para gerar produtos de software com níveis de qualidade desejáveis é necessário verificar a qualidade das atividades realizadas, além das ferramentas e métodos utilizados. Para tanto, segundo Falbo (1998), duas abordagens são adotadas: a melhoria do processo de desenvolvimento de software, e o uso de tecnologia para apoiá-lo e até mesmo automatizá-lo.

Em relação à melhoria do processo, alguns modelos de qualidade tem sido propostos, como os padrões ISO, CMM, CMMI SPICE, BOOTSTRAP e o brasileiro mpsBr citados por Rocha (2004). Em geral, esses modelos definem um conjunto de práticas/atividades que as organizações devem seguir para se enquadrar em um dos crescentes níveis de qualidade. Níveis mais altos de qualidade exigem melhoria constante do processo de software apoiada por dados quantitativos, ou seja, atividades de medição e análise são requisitos para alcançar maturidade no desenvolvimento de software.

O uso de tecnologia para automação de processo de software tem sido apoiado por ambientes integrados de desenvolvimento denominados PSEEs (Process-Centered

Software Engineering Environments) [Derniame et al 1998], que são ambientes que

podem apoiar a análise, modelagem, simulação, execução e reutilização de processos de desenvolvimento de software para automação do seu gerenciamento.

1.1 Objetivo.

A proposta deste trabalho é o estudo de técnicas de Inteligência Artificial (IA) que subsidiem a construção de uma ferramenta para apoiar a medição e análise em processos de software executados em um PSEE específico, o WebAPSEE [Reis 2004].

Segundo Fenton (1994), medição é o processo pelo qual números ou símbolos são associados a atributos de entidades no mundo real, com o objetivo de descrevê-la de acordo com um conjunto de regras claramente definidas, produzindo como resultado um conjunto de métricas. A definição, coleta e análise manual de métricas não são tarefas triviais [Gomes 2001], exigindo conhecimento especialista para que não surjam problemas como: aumento desnecessário de esforço, escolha incorreta de métricas e análise equivocada de resultados. Para apoiar a tarefa de medição, a ferramenta proposta neste trabalho fará uso do paradigma GQM (Goal Question Metrics) [Basili et al 1994], pelo qual métricas a serem coletadas devem ser selecionadas de forma a atender a determinados objetivos.

Os dados coletados pela tarefa de medição podem constituir uma grande base de conhecimento, onde informações valiosas em nível organizacional, de processo e de produto podem estar implicitamente armazenadas, não sendo facilmente extraídas e analisadas sem o apoio de ferramenta apropriada. Portanto, este trabalho propõe o uso

(3)

de técnicas de IA para extração de conhecimento, também conhecidas como técnicas de Mineração de Dados, para auxiliar a tarefa de análise de métricas.

A ferramenta desenvolvida por este trabalho será integrada ao WebAPSEE, sendo este um ambiente open-source que disponibiliza funcionalidades de Gerência de Processos de Software através de Serviços Web. Foi desenvolvido a partir da adaptação do ambiente APSEE, originalmente desenvolvido no PPGCC-UFRGS, para permitir a sua integração com diferentes ferramentas livres e comerciais que atuem direta ou indiretamente em processos de software baseados na Internet. O WebAPSEE, desenvolvido na UFPA em cooperação com a Universität Stuttgart, atualmente apóia a modelagem, instanciação, execução, melhoria e reuso de processos [Reis 2004], [Lima Reis 2003].

2. Fundamentação Teórica.

Em qualquer campo da Ciência, medições e análises geram descrições quantitativas que nos ajudam a compreender comportamentos e resultados [Pfleeger 2004]. A partir de tal compreensão, pode-se selecionar melhor os métodos, técnicas e ferramentas adequadas para controle e melhoria de processos, recursos e produtos.

No contexto de desenvolvimento de software, medição e análise auxiliam o controle de qualidade, ajudam na identificação de pontos que necessitam de melhoria e pontos de sucesso, além de fornecer dados para tomada de decisões [Gomes 2001], [Shnaider et al 2004]. Além disso, todo o conhecimento obtido através de medição e análise pode ser reutilizado no desenvolvimento de planos de qualidade em outros projetos de uma organização, criando uma cultura de gerenciamento e melhoria de qualidade contínua.

Quanto à adoção de técnicas de IA, esta vem sendo avaliada na Engenharia de Software, especialmente na área de Tecnologia de Processos de Software, por fornecer técnicas maduras para descoberta de conhecimento. A literatura especializa citada por [Falbo 1998], [Lima 1999] e [Pedrycz 2002] apresenta um bom número de experiências, como por exemplo: o uso de regras na modelagem e gerenciamento de atividades de processos; agentes inteligentes na simulação de processos e auxílio aos desenvolvedores em tempo real; raciocínio baseado em casos na reutilização de componentes, entre outros. O uso de Mineração de Dados é enfatizado em [Mendonça et al 1998] e [Mendonça e Sunderhaft 1999] no auxílio à análise de dados de Engenharia de Software através da extração de fatos relevantes, como desvios em relação a estimativas de métricas e correlações inesperadas entre valores de um conjunto de métricas.

3. Trabalhos Relacionados.

Com a crescente ênfase na melhoria de qualidade, ferramentas vêm sendo propostas com o intuito de apoiar medição e análise de processos e produtos de software.

A ferramenta REMEX [Greese et al 2000], permite o desenvolvimento de planos de medição para projetos de desenvolvimento de software, conforme o paradigma GQM, além de apoiar medição e análise de dados. REMEX utiliza raciocínio baseado em casos para construção de automática de um plano de medição através da reutilização de planos e/ou atividades de planos anteriores.

Amadeus [Selby et al 1991], MedPlan e Metrics al [Shnaider et al 2004] são ferramentas de medição e análise integradas a PSEEs. O sistema Amadeus, inserido no PSEE Arcadia, permite a integração de medição e mecanismos de re-alimentação

(4)

empíricos aos processos de desenvolvimento, além de suportar a adição de novas técnicas de análise, que são baseadas em métodos estatísticos.

As ferramentas MedPlan e Metrics estão integradas ao ambiente de desenvolvimento TABA. A ferramenta MedPlan apóia planejamento de medição a nível de organização e de projeto, baseada no método GQM, enquanto que a ferramenta Metrics permite coleta e cálculo de métricas de acordo com o plano de medição, além de gerar relatórios.

4. Caracterização da Contribuição.

A principal contribuição esperada deste trabalho para a área de pesquisa está na utilização de técnicas de IA para descoberta de conhecimento não-trivial (i.e, que não é facilmente identificado e recuperado) acerca de projetos de desenvolvimento, apoiando a melhoria de qualidade no desenvolvimento de software e com potencial de fornecer dados para subsidiar tomada de decisões.

O uso de uma ferramenta para automação da medição e análise tem potencial de beneficiar o planejamento das metas de qualidade, coleta e armazenamento dos dados (métricas), visualização e divulgação de resultados. A integração deste trabalho com o ambiente de desenvolvimento WebAPSEE possibilita a coleta automática de dados acerca de projetos executados no ambiente. Como exemplo de tais dados pode-se citar: duração prevista e real de atividades, recursos utilizados, artefatos gerados, pessoas envolvidas, entre outros.

O WebAPSEE possui também um mecanismo de registro de eventos, denominado log de eventos [Paxiuba et al 2005]. No log são armazenadas informações sobre o que aconteceu, quando aconteceu, quem foi o responsável e a razão da ocorrência do evento. Eventos estão relacionados com os seguintes componentes: recursos, modelos de processos, atividades, conexões entre atividades e o próprio processo de software. A análise do log de eventos pode destacar pontos fortes e fracos nos históricos de um processo e de uma organização, com o potencial de fornecer dados quantitativos para ferramentas que auxiliem o gerenciamento e a melhoria de processos.

5. Metodologia Utilizada e Estado Atual do Trabalho.

As atividades do trabalho foram organizadas em cinco etapas. Inicialmente, foram definidos o mecanismo e a estrutura gerência de eventos ocorridos durante a execução de um processo no ambiente WebAPSEE. Tal estrutura foi denominada log de eventos [Paxiuba et al 2005].

A segunda etapa, ainda em desenvolvimento, tem como objetivo a realização de um estudo aprofundado na área de qualidade de processos e produtos. Também será definido o planejamento, gerenciamento e retorno de informações das métricas de projetos em desenvolvimento no WebAPSEE.

Atualmente em execução, a terceira etapa visa definir as técnicas de IA candidatas para uso na análise e geração de conhecimento a partir das medições coletadas e do log de eventos. Após a seleção das técnicas de IA, será feito um levantamento de ferramentas de software livre existentes que implementem tais técnicas. Dessa forma será verificada a possibilidade de reutilizar ferramentas no projeto ou a necessidade de implementar tais técnicas na ferramenta a ser construída.

Na quarta etapa a ferramenta de medição e análise proposta será desenvolvida e integrada ao WebAPSEE. A ferramenta deve apoiar a tarefa de medição possibilitando a

(5)

definição de planos de medição, a definição e inserção manual de métricas e a coleta automática de métricas a partir do log de eventos. Em relação à tarefa de análise, deverá gerar relatórios acerca de medições e fornecer mecanismo inteligente para descoberta de conhecimento, conforme as escolhas definidas na etapa anterior.

Por fim, a última etapa focaliza a avaliação prática da ferramenta desenvolvida. Este projeto tem a intenção de realizar esta etapa dentro de uma empresa parceira do laboratório onde este projeto esta inserido, através do uso experimental da ferramenta resultante do trabalho com dados reais coletados da empresa.

Alguns resultados iniciais foram obtidos através de experimento envolvendo mineração de dados. Utilizou-se um log contendo 1.495 transações com dados fictícios sobre atividades de desenvolvimento e suas habilidades requeridas, desenvolvedores e seus graus de habilidades, e prazos de execução planejados e reais. Com a execução de algoritmos para descoberta de associações, foram retornadas informações como:

• Das 256 atividades que os desenvolvedores A e B trabalharam juntos, 98% terminaram no prazo.

• Em 44% do total de atividades entregue no prazo, o desenvolvedor C esteve envolvido.

O experimento continuará com a adição de novas métricas, esperando desse modo extrair mais informações.

6. Considerações Finais.

O planejamento e controle da qualidade são tarefas essenciais em vários produtos e serviços utilizados pela sociedade atual, não sendo diferente em relação a produtos de software. Medição e análise do processo de desenvolvimento são práticas que favorecem o aprendizado coorporativo baseado nas experiências de uma organização, o que é primordial para a melhoria de produtividade e qualidade.

Este trabalho pretende contribuir para a melhoria de qualidade ao apoiar o planejamento e recuperação de medições, além de fornecer solução avançada para extrair conhecimento em bases históricas de projetos de desenvolvimento de software.

Agradecimentos:

À CAPES pelo apoio financeiro para a realização deste trabalho. Este trabalho conta também com o apoio do projeto nº CNPq 506526/2004-6.

Referências:

Basili, V.; Caldieira, G.; Rombach, H. D. (1994). Goal Question Metric Paradigm. Encyclopedia of Software Engineering. John Wiley & Sons, Inc., p. 528-532.

Derniame, J.; Kaba, B.; Wastell, D. (1998). Software Process: Principles, Mehodology and Technology. Lecture Notes in Computer Science, 1500. Springer.

Falbo, R. A. (1998). Integração de Conhecimento em um ambiente de desenvolvimento de software. Tese de Doutorado. Rio de Janeiro: COPPE-UFRJ.

Fenton, N. E. (1994). Software Measurement: A Necessary Scientific Basis. IEEE Transactions on Software Engineering, vol 20 n. 3, p. 199-206.

Florac, W. A.; Carleton, A. D. (1999). Measuring the Software Process: Statistical Process Control for Software Process Improvement. Addison Wesley.

(6)

Gomes Junior, A. G. (2001). Avaliação de Processos de Software baseada em medições. Dissertação de Mestrado. Rio de Janeiro: COPPE-UFRJ.

Greese von Wangenheim, C.; Rodrigues, M. R. (2000). Planejamento de programas de mensuração baseados em reutilização. XI Conferência Internacional de Qualidade de Software. Curitiba, Brasil.

Lima Reis, C.A. (1999). Estudo da Utilização de Técnicas de Inteligência Artificial na Tecnologia de Processos de Software. Trabalho individual, PPGCC-UFRGS.

Lima Reis, C.A. (2003). Uma abordagem flexível para execução de processo de softwares evolutivos. Tese de Doutorado. Porto Alegre: PPGC-UFRGS-RS.

Mendonça, M. G.; Basili, V. R. et al. (1998) An approach to improving existing measurement frameworks. IBM Systems Journal, vol. 37, number 4.

Mendonça M. G.; Sunderhaft N. L. (1999). Mining Software Engineering Data: A Survey. Rome, NY: Data & Analysis Center for Software. Disponível em: http://www.dacs.dtic.mil/techs/datamining.

Natali, A. C.; Falbo, R. A. (2002). Gerência de Conhecimento de Qualidade de Software. 2nd Ibero-American Symposium on Software Engineering and Knowledge Engineering, Salvador, Brasil.

Paxiúba, C. M. C.; Nascimento, L. M. A.; Reis, R. Q.; Lima Reis, C. A. (2005). Towards an Event Recording Mechanism for a Process-based Environment. Seminário de Software e Hardware do XXV Congresso da SBC, São Leopoldo, p. 1691-1703.

Pedrycz, W. (2002). Computational intelligence as an emerging paradigm of software engineering. In:Proceedings of the 14th international conference on Software Engineering and Knowledge Engineering, Ischia, Italy, p. 7-14.

Pfleeger, S. (2004). Engenharia de Software-Teoria e Prática. Prentice Hall, 2ª Edição. Reis, R.Q. (2004). WebAPSEE: Uma Abordagem Flexível para Gerência de Processos

de Software Baseados na Internet. CT-INFO/FNDCT/FINEP. Disponível em: http://www.labes.ufpa.br

Rocha, A. R. (2004). Definição, Implantação, Avaliação e Melhoria de Processos de Software. In: 18º Simpósio Brasileiro de Engenharia de Software. Brasília, Brasil. Selby, R. W.; Porter, A. A.; Schmidt, D. C.; Berney, J. (1991). Metric-Driven Analysis

and Feedback Systems for Enabling Empirically Guided Software Development. 13th International Conference on Software Engineering, p.288-298.

Schnaider, L.; Santos, G.; Montoni, M.; Rocha, A. R. (2004). Uma abordagem para Medição e Análise em Projetos de Desenvolvimento de Software. III Simpósio Brasileiro de Qualidade de Software. Brasília, Brasil.

Referências

Documentos relacionados

v) por conseguinte, desenvolveu-se uma aproximação semi-paramétrica decompondo o problema de estimação em três partes: (1) a transformação das vazões anuais em cada lo-

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Silva e Márquez Romero, no prelo), seleccionei apenas os contextos com datas provenientes de amostras recolhidas no interior de fossos (dado que frequentemente não há garantia

En este sentido, el concepto de interés general, ahora abierto a la participación por exigencias de un Estado que se presenta como social y democrático de Derecho, presenta

Para além da quantificação da captação de formaldeído do ar interior, todas as tintas foram sujeitas a testes e ensaios de caracterização simplificados e nas tintas

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para