Luciana Maria Azevedo Nascimento Orientador: Rodrigo Quites Reis Co-orientador: Carla Alessandra Lima Reis Universidade Federal do Par Belm PA - Brasil PPGEE Programa de Ps-Graduao em Engenharia Eltrica {luma,clima}@ufpa.br, quites@computer.org Nvel: Mestrado Ano de Ingresso: 2005 Previso de Concluso: 03/2007 Aprovao da Proposta: 02/2005
Resumo. As pesquisas em relao melhoria do processo de software tm sido intensificadas em face da crescente demanda por produto de melhor qualidade. Tendo a qualidade do software relao direta com a qualidade do processo utilizado para desenvolv-lo, constata-se a necessidade do uso de prticas que favoream o aperfeioamento contnuo 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 prope o desenvolvimento de uma ferramenta de medio e anlise de dados histricos de execuo de processos, com o objetivo de apoiar a gerncia de conhecimento e melhoria de qualidade. Palavras-chave: Engenharia de Software, Inteligncia Artificial, Qualidade de Software.
1. Caracterizao do problema. A demanda por software na atualidade possui um crescimento contnuo, a ponto de produtos de software tornarem-se vitais em determinadas atividades da sociedade contempornea. Este fato traz alguns desafios para a Engenharia de Software, pois o mercado exige grande produtividade, cumprimento de prazos, melhores solues e software de melhor qualidade. O melhor atendimento a esses requisitos implica em um grande diferencial entre organizaes de software [Natali e Falbo 2002]. Desse modo, a qualidade deixou de ser um diferencial competitivo e tornou-se um requisito bsico para a sobrevivncia no mercado [Florac e Carleton 1999]. Para gerar produtos de software com nveis de qualidade desejveis necessrio verificar a qualidade das atividades realizadas, alm das ferramentas e mtodos utilizados. Para tanto, segundo Falbo (1998), duas abordagens so adotadas: a melhoria do processo de desenvolvimento de software, e o uso de tecnologia para apoi-lo e at mesmo automatiz-lo. Em relao melhoria do processo, alguns modelos de qualidade tem sido propostos, como os padres ISO, CMM, CMMI SPICE, BOOTSTRAP e o brasileiro mpsBr citados por Rocha (2004). Em geral, esses modelos definem um conjunto de prticas/atividades que as organizaes devem seguir para se enquadrar em um dos crescentes nveis de qualidade. Nveis mais altos de qualidade exigem melhoria constante do processo de software apoiada por dados quantitativos, ou seja, atividades de medio e anlise so requisitos para alcanar maturidade no desenvolvimento de software. O uso de tecnologia para automao de processo de software tem sido apoiado por ambientes integrados de desenvolvimento denominados PSEEs (Process-Centered Software Engineering Environments) [Derniame et al 1998], que so ambientes que podem apoiar a anlise, modelagem, simulao, execuo e reutilizao de processos de desenvolvimento de software para automao do seu gerenciamento. 1.1 Objetivo. A proposta deste trabalho o estudo de tcnicas de Inteligncia Artificial (IA) que subsidiem a construo de uma ferramenta para apoiar a medio e anlise em processos de software executados em um PSEE especfico, o WebAPSEE [Reis 2004]. Segundo Fenton (1994), medio o processo pelo qual nmeros ou smbolos so 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 mtricas. A definio, coleta e anlise manual de mtricas no so tarefas triviais [Gomes 2001], exigindo conhecimento especialista para que no surjam problemas como: aumento desnecessrio de esforo, escolha incorreta de mtricas e anlise equivocada de resultados. Para apoiar a tarefa de medio, a ferramenta proposta neste trabalho far uso do paradigma GQM (Goal Question Metrics) [Basili et al 1994], pelo qual mtricas a serem coletadas devem ser selecionadas de forma a atender a determinados objetivos. Os dados coletados pela tarefa de medio podem constituir uma grande base de conhecimento, onde informaes valiosas em nvel organizacional, de processo e de produto podem estar implicitamente armazenadas, no sendo facilmente extradas e analisadas sem o apoio de ferramenta apropriada. Portanto, este trabalho prope o uso
de tcnicas de IA para extrao de conhecimento, tambm conhecidas como tcnicas de Minerao de Dados, para auxiliar a tarefa de anlise de mtricas. A ferramenta desenvolvida por este trabalho ser integrada ao WebAPSEE, sendo este um ambiente open-source que disponibiliza funcionalidades de Gerncia de Processos de Software atravs de Servios Web. Foi desenvolvido a partir da adaptao do ambiente APSEE, originalmente desenvolvido no PPGCC-UFRGS, para permitir a sua integrao com diferentes ferramentas livres e comerciais que atuem direta ou indiretamente em processos de software baseados na Internet. O WebAPSEE, desenvolvido na UFPA em cooperao com a Universitt Stuttgart, atualmente apia a modelagem, instanciao, execuo, melhoria e reuso de processos [Reis 2004], [Lima Reis 2003]. 2. Fundamentao Terica. Em qualquer campo da Cincia, medies e anlises geram descries quantitativas que nos ajudam a compreender comportamentos e resultados [Pfleeger 2004]. A partir de tal compreenso, pode-se selecionar melhor os mtodos, tcnicas e ferramentas adequadas para controle e melhoria de processos, recursos e produtos. No contexto de desenvolvimento de software, medio e anlise auxiliam o controle de qualidade, ajudam na identificao de pontos que necessitam de melhoria e pontos de sucesso, alm de fornecer dados para tomada de decises [Gomes 2001], [Shnaider et al 2004]. Alm disso, todo o conhecimento obtido atravs de medio e anlise pode ser reutilizado no desenvolvimento de planos de qualidade em outros projetos de uma organizao, criando uma cultura de gerenciamento e melhoria de qualidade contnua. Quanto adoo de tcnicas de IA, esta vem sendo avaliada na Engenharia de Software, especialmente na rea de Tecnologia de Processos de Software, por fornecer tcnicas maduras para descoberta de conhecimento. A literatura especializa citada por [Falbo 1998], [Lima 1999] e [Pedrycz 2002] apresenta um bom nmero de experincias, como por exemplo: o uso de regras na modelagem e gerenciamento de atividades de processos; agentes inteligentes na simulao de processos e auxlio aos desenvolvedores em tempo real; raciocnio baseado em casos na reutilizao de componentes, entre outros. O uso de Minerao de Dados enfatizado em [Mendona et al 1998] e [Mendona e Sunderhaft 1999] no auxlio anlise de dados de Engenharia de Software atravs da extrao de fatos relevantes, como desvios em relao a estimativas de mtricas e correlaes inesperadas entre valores de um conjunto de mtricas. 3. Trabalhos Relacionados. Com a crescente nfase na melhoria de qualidade, ferramentas vm sendo propostas com o intuito de apoiar medio e anlise de processos e produtos de software. A ferramenta REMEX [Greese et al 2000], permite o desenvolvimento de planos de medio para projetos de desenvolvimento de software, conforme o paradigma GQM, alm de apoiar medio e anlise de dados. REMEX utiliza raciocnio baseado em casos para construo de automtica de um plano de medio atravs da reutilizao de planos e/ou atividades de planos anteriores. Amadeus [Selby et al 1991], MedPlan e Metrics al [Shnaider et al 2004] so ferramentas de medio e anlise integradas a PSEEs. O sistema Amadeus, inserido no PSEE Arcadia, permite a integrao de medio e mecanismos de re-alimentao
empricos aos processos de desenvolvimento, alm de suportar a adio de novas tcnicas de anlise, que so baseadas em mtodos estatsticos. As ferramentas MedPlan e Metrics esto integradas ao ambiente de desenvolvimento TABA. A ferramenta MedPlan apia planejamento de medio a nvel de organizao e de projeto, baseada no mtodo GQM, enquanto que a ferramenta Metrics permite coleta e clculo de mtricas de acordo com o plano de medio, alm de gerar relatrios. 4. Caracterizao da Contribuio. A principal contribuio esperada deste trabalho para a rea de pesquisa est na utilizao de tcnicas de IA para descoberta de conhecimento no-trivial (i.e, que no 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 decises. O uso de uma ferramenta para automao da medio e anlise tem potencial de beneficiar o planejamento das metas de qualidade, coleta e armazenamento dos dados (mtricas), visualizao e divulgao de resultados. A integrao deste trabalho com o ambiente de desenvolvimento WebAPSEE possibilita a coleta automtica de dados acerca de projetos executados no ambiente. Como exemplo de tais dados pode-se citar: durao prevista e real de atividades, recursos utilizados, artefatos gerados, pessoas envolvidas, entre outros. O WebAPSEE possui tambm um mecanismo de registro de eventos, denominado log de eventos [Paxiuba et al 2005]. No log so armazenadas informaes sobre o que aconteceu, quando aconteceu, quem foi o responsvel e a razo da ocorrncia do evento. Eventos esto relacionados com os seguintes componentes: recursos, modelos de processos, atividades, conexes entre atividades e o prprio processo de software. A anlise do log de eventos pode destacar pontos fortes e fracos nos histricos de um processo e de uma organizao, 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 gerncia de eventos ocorridos durante a execuo 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 realizao de um estudo aprofundado na rea de qualidade de processos e produtos. Tambm ser definido o planejamento, gerenciamento e retorno de informaes das mtricas de projetos em desenvolvimento no WebAPSEE. Atualmente em execuo, a terceira etapa visa definir as tcnicas de IA candidatas para uso na anlise e gerao de conhecimento a partir das medies coletadas e do log de eventos. Aps a seleo das tcnicas de IA, ser feito um levantamento de ferramentas de software livre existentes que implementem tais tcnicas. Dessa forma ser verificada a possibilidade de reutilizar ferramentas no projeto ou a necessidade de implementar tais tcnicas na ferramenta a ser construda. Na quarta etapa a ferramenta de medio e anlise proposta ser desenvolvida e integrada ao WebAPSEE. A ferramenta deve apoiar a tarefa de medio possibilitando a
definio de planos de medio, a definio e insero manual de mtricas e a coleta automtica de mtricas a partir do log de eventos. Em relao tarefa de anlise, dever gerar relatrios acerca de medies e fornecer mecanismo inteligente para descoberta de conhecimento, conforme as escolhas definidas na etapa anterior. Por fim, a ltima etapa focaliza a avaliao prtica da ferramenta desenvolvida. Este projeto tem a inteno de realizar esta etapa dentro de uma empresa parceira do laboratrio onde este projeto esta inserido, atravs do uso experimental da ferramenta resultante do trabalho com dados reais coletados da empresa. Alguns resultados iniciais foram obtidos atravs de experimento envolvendo minerao de dados. Utilizou-se um log contendo 1.495 transaes com dados fictcios sobre atividades de desenvolvimento e suas habilidades requeridas, desenvolvedores e seus graus de habilidades, e prazos de execuo planejados e reais. Com a execuo de algoritmos para descoberta de associaes, foram retornadas informaes 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 adio de novas mtricas, esperando desse modo extrair mais informaes. 6. Consideraes Finais. O planejamento e controle da qualidade so tarefas essenciais em vrios produtos e servios utilizados pela sociedade atual, no sendo diferente em relao a produtos de software. Medio e anlise do processo de desenvolvimento so prticas que favorecem o aprendizado coorporativo baseado nas experincias de uma organizao, o que primordial para a melhoria de produtividade e qualidade. Este trabalho pretende contribuir para a melhoria de qualidade ao apoiar o planejamento e recuperao de medies, alm de fornecer soluo avanada para extrair conhecimento em bases histricas de projetos de desenvolvimento de software. Agradecimentos: CAPES pelo apoio financeiro para a realizao deste trabalho. Este trabalho conta tambm com o apoio do projeto n CNPq 506526/2004-6. Referncias: 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). Integrao 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.
Gomes Junior, A. G. (2001). Avaliao de Processos de Software baseada em medies. Dissertao de Mestrado. Rio de Janeiro: COPPE-UFRJ. Greese von Wangenheim, C.; Rodrigues, M. R. (2000). Planejamento de programas de mensurao baseados em reutilizao. XI Conferncia Internacional de Qualidade de Software. Curitiba, Brasil. Lima Reis, C.A. (1999). Estudo da Utilizao de Tcnicas de Inteligncia Artificial na Tecnologia de Processos de Software. Trabalho individual, PPGCC-UFRGS. Lima Reis, C.A. (2003). Uma abordagem flexvel para execuo de processo de softwares evolutivos. Tese de Doutorado. Porto Alegre: PPGC-UFRGS-RS. Mendona, M. G.; Basili, V. R. et al. (1998) An approach to improving existing measurement frameworks. IBM Systems Journal, vol. 37, number 4. Mendona M. G.; Sunderhaft N. L. (1999). Mining Software Engineering Data: A Survey. Rome, NY: Data & Analysis Center for Software. Disponvel em: http://www.dacs.dtic.mil/techs/datamining. Natali, A. C.; Falbo, R. A. (2002). Gerncia de Conhecimento de Qualidade de Software. 2nd Ibero-American Symposium on Software Engineering and Knowledge Engineering, Salvador, Brasil. Paxiba, 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. Seminrio de Software e Hardware do XXV Congresso da SBC, So 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 Prtica. Prentice Hall, 2 Edio. Reis, R.Q. (2004). WebAPSEE: Uma Abordagem Flexvel para Gerncia de Processos de Software Baseados na Internet. CT-INFO/FNDCT/FINEP. Disponvel em: http://www.labes.ufpa.br Rocha, A. R. (2004). Definio, Implantao, Avaliao e Melhoria de Processos de Software. In: 18 Simpsio Brasileiro de Engenharia de Software. Braslia, 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 Medio e Anlise em Projetos de Desenvolvimento de Software. III Simpsio Brasileiro de Qualidade de Software. Braslia, Brasil.