Vous êtes sur la page 1sur 6

Medio e Anlise de Processo de Software Utilizando

Tcnicas de Inteligncia Artificial


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.