Sie sind auf Seite 1von 12

Organizao do conhecimento utilizado na manuteno de software

Mrcio Greyck Batista Dias Faculdades Alves Faria, Departamento de Sistemas de Informao Goinia, Brasil, 74.445-190 myck@alfa.br Nicolas Anquetil Universidade Catlica de Braslia, Mestrado em Gesto do Conhecimento e da Tecnologia da Informao Braslia, Brasil, 70.790-160 nicolas@ucb.br Kthia Maral de Oliveira Universidade Catlica de Braslia, Mestrado em Gesto do Conhecimento e da Tecnologia da Informao Braslia, Brasil, 70.790-160 kathia@ucb.br Resumo
Gerncia do conhecimento est surgindo como uma rea promissora para apoiar atividades de engenharia de software. Uma das possveis aplicaes seria auxiliar na soluo de alguns dos vrios problemas da manuteno de software. Mantenedores freqentemente tm que modificar sistemas desenvolvidos h muitos anos, com tcnicas e ferramentas obsoletas, sem documentao e que eles no desenvolveram. Contrastando com essa falta de informao de um sistema, mantenedores precisam de conhecimento sobre: o domnio da aplicao, os procedimentos de manuteno de software da organizao, o prprio sistema, a linguagem utilizada, os mtodos de desenvolvimentos passados, etc. Embora exista um consenso sobre esses problemas, no existe uma definio clara e completa de qual conhecimento necessrio para apoiar a manuteno de software. Este artigo descreve a pesquisa que buscou identificar este conhecimento e organiz-lo utilizando ontologia.

Abstract
Knowledge management is emerging as a promising area to support software engineering activities. One of its possible applications would be to help in solving some of the various problems that affect the software maintenance activity. Maintainers often have to modify systems developed many years ago with obsolete techniques and tools, without documentation and that not developed by themselves. Contrasting with this lack of information on the system, maintainers need a lot of knowledge: about the application domain, the organization software maintenance procedures, the system itself, the language used, past development methods, etc. Although, there is a consensus about those problems, there is no clear exhaustive definition of what specific knowledge would be useful to perform software maintenance. This work describes a research to identify this knowledge and to organize it using ontology.

Introduo
A engenharia de software uma disciplina composta de vrios tipos de atividades que conduzem e apiam o desenvolvimento de sistemas informatizados. Dentre todas as atividades previstas nesta disciplina, destaca-se a manuteno de software, atividade durante a qual ocorrem modificaes em um produto de software, buscando mant-lo disponvel, corrigir suas falhas, melhorar seu desempenho e adequ-lo aos requisitos novos ou modificados [2], conforme as necessidades de seus usurios. A manuteno de software exige, do profissional mantenedor, significante quantidade de conhecimento acumulado e aprendido para sua conduo, conhecimento que tem sido rotulado de capital intelectual [29] das organizaes. Importantes iniciativas visando gerenciar todo este conhecimento vm apoiando atividades essenciais dentro da engenharia de software, tais como: gerncia de documentos, gerncia de competncia, identificao de especialistas, reuso de software, gerncia de memria de projetos (e de produtos) e aprendizado organizacional [29]. Este apoio consiste na organizao, compartilhamento, aprendizagem e disseminao do conhecimento em benefcio de uma instituio e de seus usurios [19]. O desafio detectado neste contexto lidar com o fato de que ainda no se tem bem definido qual o conhecimento necessrio aos mantenedores de software para que desempenhem, satisfatoriamente, suas atividades. Portanto, o objetivo deste artigo levantar e explicitar o conhecimento efetivamente utilizado na atividade de manuteno de software, fazendo uso de uma abordagem formal de organizao do conhecimento denominada Ontologia [9]. Esse artigo composto de sete sees, alm dessa introduo. A Seo 2 conceitua o objeto desta pesquisa, o conhecimento, alm de explanar sobre suas representaes. A Seo 3 retrata a importncia da atividade de Manuteno de Software, justificando estudos como este. A Seo 4 descreve o processo adotado por esta pesquisa, suas atividades, tipos de produtos e de tcnicas utilizadas. Tambm expe os produtos efetivamente gerados a partir dos estudos sobre o conhecimento utilizado na Manuteno de Software. A Seo 5 busca ratificar os resultados objetivos na pesquisa atravs de uma sistemtica avaliao. A Seo 6 traa um paralelo desta pesquisa (quanto aos objetivos, tcnicas e produtos) em relao a outras pesquisas correlatas. Finalmente, na Seo 7 so apresentadas as concluses dos autores, advindas desta pesquisa.

1 O Conhecimento e sua representao


O conhecimento a soma de informaes, idias, noes, discernimentos e interpretao [17], tomada de forma implcita ou explcita, oriunda de um indivduo ou de uma organizao [26] e usado para orientar a soluo de problemas [32]. A existncia do conhecimento sem que haja uma eficaz disseminao e compartilhamento com os indivduos que necessitam dele no supre as necessidades das organizaes [20]. Este tipo de converso de conhecimento individual em coletivo requer um esforo de modelagem, produzindo artefatos representativos, atravs dos quais, torna-se possvel evoluir de conceituaes vagas e tcitas, para uma representao explcita de uma idia. Uma das estratgias para modelar o conhecimento a construo de ontologias. Ela representa a especificao explcita de uma conceituao [9], ou seja, a definio explcita de conceitos e suas relaes, propriedades e restries expressas formalmente. A ontologia um abrangente sistema de classificao, taxonomizao e representao do conhecimento de forma geral [11]. Com a ontologia pode-se versar sobre conceitos (entidades, objetos, eventos, processos, metas e resultados), destacando suas propriedades, relaes e restries de entendimento [10], estas expressas atravs de axiomas. Em um contexto geral, cada pessoa ou organizao possui jarges prprios, diferenas de entendimento sobre os mesmos conceitos, necessitando, portanto, de um intrprete para viabilizar uma comunicao efetiva de seu conhecimento. Segundo [33], a falta deste tipo de intrprete pode provocar: (i) comunicao deficiente entre as equipes e projetos dentro das organizaes; (ii) dificuldade em identificar requisitos no decorrer da especificao dos sistemas; e (iii) limitaes na potencial reutilizao e compartilhamento de conceitos. A ontologia funciona como este tipo de intrprete. Existem diferentes linguagens de representao de ontologias. Neste trabalho, a linguagem escolhida para especific-las foi a LINGO (LINguagem Grfica para descrever Ontologias). Trata-se de uma linguagem simples, baseada em uma notao grfica e que possui seu formalismo definido, explicitamente, em lgica de primeira ordem [6].

2 Manuteno de Software
Desde o incio da dcada de 90, [1] e [12] j apontavam a manuteno de software como a atividade consumidora da maior parte dos recursos financeiros, humanos e tecnolgicos, na maioria das organizaes de software. Alguns estudos estatsticos mostram que a manuteno representa cerca de 80% do oramento total do desenvolvimento de um software e que de 40% a 60% do esforo para realizar as manutenes direcionado ao processo de entendimento do sistema [22]. Na perspectiva tradicional de [2], a manuteno de software sempre se caracterizou pela realizao de modificaes em um produto de software que j se encontra em funcionamento para manter o software em funcionamento. Contudo, esta concepo tradicional omite o planejamento e a aplicao dos recursos e esforos necessrios para buscar a manutenibilidade do sistema, desde a sua fase de projeto, tornando significativos os custos e a necessidade de tempo na fase de manuteno ([23] e [24]). Na abrangente pesquisa de [30] sobre este tpico, foram elaboradas algumas consideraes importantes: Com exceo do conhecimento de terceiros, ao mantenedor resta basicamente o cdigo-fonte como fonte de informao que subsidia a manuteno; e Sempre que houver uma consulta a uma outra pessoa, deveriam ser providenciados meios para registrar o conhecimento transmitido em alguma ferramenta que possa compartilh-lo, pois este conhecimento (mesmo cultural ou social) tem um enorme impacto no que funciona ou no em uma organizao em particular.

Um outro problema preocupante sobre a manuteno de software abordado neste artigo, trata-se do fato do mantenedor no perceber de forma satisfatria o conhecimento envolvido diretamente sobre sua prpria atividade profissional, tal como conhecer sobre os artefatos, tcnicas, processos e ambientes manipulados [24]. Este fato cria uma forte dependncia de conhecimento no explcito [14], caracterizando um risco para qualquer projeto ou organizao dependente de software.

3 Organizando o conhecimento utilizado na manuteno de software


O desafio de especificar o conhecimento utilizado numa atividade to complexa como a manuteno de software exigiu a criao e adoo de um processo formal e sistemtico para realizar todas as definies e validaes necessrias na construo da ontologia. A definio deste processo adotou princpios oriundos de outros processos pr-existentes ([31], [6], [18], [34], [10]), principalmente no que se refere objetividade e adoo de algumas atividades bsicas: (i) definio do propsito da ontologia, (ii) captura do conhecimento, (iii) conceituao, (iv) formalizao, (v) integrao, (vi) avaliao e (vii) documentao. Atravs da Figura 1, pode-se visualizar o processo adotado neste trabalho para organizar o conhecimento utilizado na manuteno de software. Para subsidiar a identificao e o entendimento dos vrios conceitos presentes e utilizados na atividade de manuteno de software, duas fontes de informao foram escolhidas pela importncia que representam: as referncias bibliogrficas especializadas e os profissionais especialistas nesta atividade. A seguir, so descritas as fases e caractersticas do processo adotado: a) Identificao do Propsito e Especificao de Requisitos fase que tem por objetivo realizar uma investigao e discusso sobre aspectos que fundamentam a modelagem do conhecimento sobre manuteno de software. Para atingir o objetivo definido, a execuo de algumas tarefas exigida: (i) definir um conjunto mnimo de Cenrios de Utilizao (situaes reais, especficas e bem definidas que ilustram a necessidade da utilizao de conhecimento) a partir do ponto de vista dos engenheiros de conhecimento e dos especialistas; (ii) definir algumas Questes Gerais de Competncia com um alto nvel de abstrao para subsidiar o estabelecimento do escopo da ontologia em construo; e (iii) definir um conjunto mnimo de sub-ontologias; modelado, com base nos produtos identificados na fase anterior. Para essa modelagem elaborado, inicialmente, um conjunto de Questes de Competncia especficas para cada sub-ontologia. Uma vez definidas as Questes de Competncia, buscam-se os conceitos, ou seja, os termos do vocabulrio empregados pela rea do conhecimento em estudo para cada sub-ontologia identificada na fase anterior. Tambm as restries sobre o entendimento destes conceitos so identificadas na forma de regras expressas em linguagem natural. Finalmente, todos os termos so explicitados e explicados em um glossrio (dicionrio) de termos;

b) A Construo das sub-ontologias durante esta atividade, o conhecimento utilizado na manuteno de software

c) A Formalizao das sub-ontologias o objetivo de tornar uma especificao formal eliminar as possibilidades
de ambigidade em seu entendimento para seus usurios. definida uma atividade exclusivamente para formalizar a especificao de conceitos e as restries de entendimentos levantadas durante a fase de Construo das sub-ontologias, ou seja, somar esforos para esclarecer mais claramente a semntica do conhecimento modelado. Nesta fase, vrios artefatos (modelos) so criados usando a linguagem LINGO;

d) Integrao das ontologias em busca de uma uniformidade, nesta atividade ocorre a promoo de um processo
de construo de uma estruturao ontolgica nica atravs do reuso de outras sub-ontologias j concebidas at ento; e

e) Avaliao da Ontologia a ontologia deve ser avaliada de forma que satisfaa seus requisitos: (i) aplicando os
critrios preestabelecidos de qualidade durante a construo; (ii) usando uma representao grfica (LINGO); (iii) especificando axiomas suficientes para expressar as questes de competncia e caracterizar suas solues; e (iv) verificando se o conhecimento modelado na ontologia , de fato, utilizado pelos mantenedores.

ATIVIDADES
1. Identificao do propsito e especificao de requisitos 1.1-Definio

PRODUTOS
Cenrios, Escopo e Questes Gerais

2.1-Construo 2. Construo das sub-ontologias 2.2-Formalizao 2.3-Integrao

Sub-Ontologias (Questes de Competncia, Conceitos, Taxonomias, Relaes e Restries) e Glossrio

3.1-Aplicao de Questionrios 3. Avaliao da ontologia

3.3-Instanciao e freqncia de uso 3.2-Observao 3.4-Anlise dos Resultados Instncias, Narrativas e Questionrios preenchidos

Figura 1 O processo adotado


Diferentes artefatos foram gerados em cada atividade prevista neste processo. Nas sees seguintes apresentado cada um dos artefatos. 3.1 Cenrios de Utilizao Os Cenrios de Utilizao foram levantados atravs da realizao de um ciclo programado de reunies de brainstorming com especialistas em manuteno de software, a seguir citamos alguns deles: (i) Cenrio 01 A necessidade de o mantenedor identificar quais artefatos um Sistema possui para facilitar sua manipulao; (ii) Cenrio 02 A necessidade do gerente de manuteno alocar recursos tecnolgicos para cada projeto, envolvendo tarefas de estudo de viabilidade, levantamento, avaliao e disponibilizao de tecnologias de Cincia da Computao (ferramentas automatizadas, tcnicas, mtodos e etc.); (iii) Cenrio 03 A necessidade de o gerente definir ou alocar os mais indicados mantenedores para um novo projeto de manuteno, com base no domnio (exemplo: fundo de investimento), ou em tecnologias especficas, ou seja, alocar pessoas que j atendam tais caractersticas para obter uma melhor produtividade; (iv) Cenrio 04 A necessidade de o gerente definir quais procedimentos devero ser seguidos pelos mantenedores durante a manuteno do sistema; (v) Cenrio 05 A necessidade do gerente e mantenedor conhecer sobre a estrutura organizacional onde o software em manuteno est inserido; (vi) Cenrio 06 A necessidade de o mantenedor executar uma manuteno de software, o qual pouco ou nada conhece sobre o sistema. Este necessita, inicialmente, adquirir conhecimento suficiente para entender como o sistema est estruturado e obter uma produtividade satisfatria na atividade de manuteno do mesmo; e (vii) Cenrio 07 A necessidade de o mantenedor saber quais os procedimentos a serem seguidos, as normas a serem adotadas e etc. 3.2 Questes Gerais de Competncia

Com a discusso destes cenrios, identificou-se o seguinte conjunto de Questes Gerais de Competncia que a ontologia de manuteno de software dever fornecer subsdios para responder: (i) Como est organizado (quanto a sua estruturao interna) o software que receber a manuteno? (ii) Como so organizados os procedimentos que um mantenedor deve conhecer para executar o processo de modificao de um software? (iii) Em quais competncias para realizar a manuteno de um sistema especfico um mantenedor deve estar capacitado? (iv) Como est organizado o domnio de aplicao no qual o mantenedor deve realizar a manuteno de um software? (v) Quais as regras de conduta organizacional um mantenedor deve seguir no decorrer de uma manuteno de software? e (vi) Como est estruturada a organizao, dentro da qual o software est inserido e atua? 3.3. Sub-Ontologias Com base no contexto levantado, foi possvel identificar as sub-ontologias representativas sobre o conhecimento utilizado na manuteno de software, so elas: (i) para responder questo a, definiu-se uma sub-ontologia chamada Sistema, destacando a importncia do conhecimento sobre o produto software, independente se este produto j se encontra em produo, em laboratrio ou mesmo ainda em fase de projeto; (ii) para responder questo b, definiu-se uma sub-ontologia chamada Modificao, ou seja, o conjunto de atividades e outros conceitos necessrios no decorrer de alguma interveno nas caractersticas estruturais e/ou comportamentais de um software, seja ela uma alterao, melhoria ou acrscimos de funcionalidades; (iii) para responder questo c, definiu-se uma sub-ontologia chamada Competncias, a qual representa a capacitao exigida de cada mantenedor em qualquer das tarefas previstas para uma manuteno. Alguns exemplos deste tipo de conhecimento: conhecimento de uma linguagem de programao, de estrutura de dados tpicos e etc.; (iv) para responder questo d, definiu-se uma sub-ontologia chamada Domnio da Aplicao, que retrata o assunto e tarefas do sistema. Cada tipo de assunto apresenta um grau de complexidade e de exigncias em relao ao conhecimento de seus mantenedores. Entender o domnio (conceitos, relaes, propriedades e valores) e as tarefas do sistema uma das prerrogativas mais importantes do mantenedor ao tentar proceder uma manuteno de forma produtiva; e (v) para responder s questes d e e, definiu-se uma sub-ontologia chamada Estrutura Organizacional, que aborda a estrutura organizacional onde ocorre a manuteno, sob a qual os mantenedores e os procedimentos devem se adaptar quanto as regras de conduta, tais como hierarquias de cargos e unidades organizacionais, para permitir autorizaes e concesses relacionadas diretamente com manuteno de software. 3.4 A Sub-Ontologia: Sistema Nesta seo, feita uma anlise ilustrativa e criteriosa sobre o conhecimento utilizado na manuteno de software, especificamente dentro da sub-ontologia Sistema. Ressalta-se que este mesmo processo foi aplicado para as outras quatro sub-ontologias previamente definidas. O Sistema o alvo principal das manutenes de software. Um Sistema um conjunto identificvel e coerente, de elementos, que interagem coesivamente, onde cada elemento pode ser um outro sistema [25]. Em relao a estes elementos, na rea de software, so denominados de artefatos de software [3]. A sub-ontologia Sistema deve fornecer subsdios para responder as seguintes questes de competncia: Quais artefatos compem um sistema? Qual a natureza dos artefatos que compem um sistema? Como artefatos relacionam entre si? Quais tecnologias da cincia da computao so utilizadas por um sistema? Um sistema instalado em qual hardware? Quem interage com um sistema? Que tarefas de um domnio da aplicao um sistema aborda? Como os sistemas interagem entre si dentro de uma organizao? Para responder estas questes, um levantamento bibliogrfico e consultas a especialistas foram realizados, produzindo um esquema grfico escrito em LINGO (Figura 2) para explicitar os conceitos e relaes entre conceitos identificados. Este esquema explicita uma taxonomia de artefatos de software que compem um sistema de software e uma taxonomia de recursos (humanos, hardware e software) que o sistema faz uso. Aps especificar as demais Sub-Ontologias e com base na natureza dos conceitos e relaes entre conceitos identificados, identificou-se 47 restries (conforme amostra na Tabela 1) de entendimento relevantes sobre Sistemas, na forma de axiomas formais, eis alguns deles: Conforme pode ser visto na Tabela 2, toda a terminologia adotada nas sub-ontologias foi documentada em local nico, melhor explicada e exemplificada na forma de um dicionrio de conceitos, visando reduzir o risco de ambigidade na apreenso de cada termo.

nome nome* nome

Legenda conceito conceito de outra subontologia ralao relao _um


relao tem_um

interage
sistema

interage com 1,n instalado em 1,n usa

usurio*

hardware*

1,n

tecnologiaCC*

implementa 1,n
tarefa* documento

1,n realiza
artefato
correlaciona

componente

descreve
componente deimplantao componente de produto de trabalho componente de execuo

produto do trabalho

documento do processo

documento de apoio

especificao de requisito

especificao de projeto

especificao de produto

manual do usurio manual do hardware

manual de manuteno
manual de operao

modelo lgico

modelo fsico

plano de teste

plano de configurao

plano de garantia de qualidade

plano de desenvolvimento de software

Figura 2 A sub-ontologia SISTEMA consolidada Tabela 1 Alguns dos 47 axiomas identificados A1: ( s) (sistema(s) ( a) (composicaosistema (s,a))) A2: ( a1 , a2 ) (subartefato(a1 , a2 ) superartefato(a2 , a1 )) A3: ( a) (artefatoelementar(a) ( a1 ) (subartefato(a1 , a)))

Tabela 2 Glossrio de Termos Descritor Artefato SubSinnimo Ontologia Origem Sistema Elemento, Item. Descrio consensual Elemento genrico que compe (BOOCH, et al., 2000) um Sistema qualquer na forma de exemplares de seus: Requisitos, Itens da Instanciaes Prottipo da tela CLI03, MSDLG32.OCX, Especificao de Servios

Descritor

SubSinnimo Ontologia Origem

Descrio consensual Arquitetura, Projetos, Cdigos-Fonte, Planos do Projeto, Testes, Prottipos e Verses de Componentes.

Instanciaes #A762, Diagrama de Classes, Diagrama de Caso de Uso, Modelo Relacional Normalizado, SISTEMA.INI, ESTOQUE.MDB e etc. MSDLG32.OCX, Cliente.cls, SISTEMA.INI, ESTOQUE.MDB, MDITela.frm e etc.

Componente

Sistema

Componente de Execuo .....

Sistema .....

Artefato que entra na composio do produto final , o software. Segundo (PRESSMAN, 2001), todos os componentes de um software compreendem uma configurao. Segundo (BOOCH, 1994), os tipos de componentes de software existentes so: Componente de Implantao, Componente do Produto do Trabalho e Componente de Execuo. Gerados (BOOCH, 1994) como uma Um objeto COM+ (que conseqncia de um sistema de execuo. instanciado de uma DLL) e etc. .... ....

4. A Avaliao da Ontologia
As ontologias construdas sempre devem ser avaliadas para verificar se cumprem seu propsito e se o fazem da melhor maneira possvel, podendo identificar falhas como omisses, inconsistncias e redundncias em sua construo [35]. [21] estabelecem os principais critrios que podem ser aplicados na avaliao de ontologias, tais como: clareza, consistncia, extensibilidade e etc. [31] e [33] defendem, tambm, que as questes de competncia devem ser usadas como critrios de qualidade, inclusive para avaliar a adequao da axiomatizao realizada. A avaliao pode ser dividida em verificao da ontologia e validao da ontologia [8]: (i) Verificao busca garantir a correo da ontologia, investigando se as definies esto sendo construdas seguindo os critrios de projeto, detectando antecipadamente estruturas sintaticamente incorretas em definies formais, palavras chaves sem documentao e identificando erros de dedues nas definies formais; e (ii) Validao busca garantir que a ontologia corresponde ao que se propem, que as definies da ontologia realmente definem o mundo real para o qual esta foi projetada. Uma vez atingido o objetivo de organizar o conhecimento utilizado na manuteno de software atravs da construo de uma ontologia, entendeu-se necessrio comprovar a qualidade do produto obtido atravs de um conjunto de atividades de avaliao que: (a) valide a consistncia da ontologia; e (b) verifique a efetiva utilizao dos conceitos propostos pela ontologia. Neste contexto, de acordo com [16], necessrio que uma significativa parcela de recursos de pesquisa seja focada em estudos voltados para pessoas, visto que so eles quem criam e mantm o software. Para atingir os objetivos esperados para esta avaliao, tornou-se necessrio a definio de estratgias especficas para este fim. Foram investigadas e avaliadas vrias tcnicas, no que se refere a sua eficincia e eficcia e, finalmente, foram aplicadas as mais adequadas. Com base nas tcnicas analisadas, foram definidas quatro atividades para avaliar a ontologia, cada qual com seu planejamento, mtodo e tipos de resultado prprios: (i) Aplicao de Questionrios objetivo (a); (ii) Instanciao objetivo (a); (iii) Observao objetivo (b); e (iv) Avaliao de Freqncias objetivo (b). A empresa escolhida para a realizao dos estudos de campo foi uma instituio bancria estadual. Esta escolha foi possvel pela facilidade de trnsito do pesquisador, que possui vnculo empregatcio com a empresa. Outro motivo relevante foi a receptividade dos mantenedores responsveis pelo projeto escolhido, em dispor de seu tempo e compartilhar seu conhecimento para contribuir com este trabalho. 4.1 Aplicao de Questionrios Tratou-se da aplicao de um formulrio com questes de cunho avaliativo junto a profissionais e pesquisadores conhecedores de Manuteno de Software. Atravs destes questionrios [7], planejou-se avaliar aspectos como a clareza, a simplicidade e a intuitividade das representaes produzidas sobre este universo de discurso. Da mesma forma, planejou-se avaliar questes estruturais como eventuais redundncias, contradies e omisses.

De acordo com o perfil definido (gerentes de manuteno de software e pesquisadores ps-graduados), foram escolhidos quatro pessoas, que aceitaram avaliar a ontologia e preencher o questionrio: (i) um especialista do domnio que atua como gerente de manuteno de um banco estadual, com 22 anos de experincia com manuteno de software, 2 anos como gerente de projetos e 4 anos como gerente de informtica; e (ii) trs pesquisadores com nvel de doutorado, todos com mais de 13 anos de experincia com manuteno de software. Embora interessante ter sido em maior nmero, no foi possvel a aplicao de mais questionrios por questes de tempo (devido ao fato da instituio onde esta pesquisa deveria ser apresentada como dissertao de mestrado ter fixado um prazo muito curto para a execuo destes trabalhos) e por questes de disponibilidade de pessoas gabaritadas e com titulao na rea. Uma vez planilhados, os resultados da aplicao destes questionrios foram documentados e consolidados numa forma resumida para anlise (Tabela 3). Tabela 3 Resultado dos questionrios Por Sub-Ontologia Quesitos de Qualidade Sub-Ontologias Sistema Competncia Modificao Domnio da Aplicao Estrutura Organizacional Mdia Geral 3,60 3,55 3,20 3,60 3,65 3,50 3,40 3,35 3,15 3,55 3,70 3,40 3,75 3,50 3,20 3,55 3,80 3,25 3,50 3,35 3,30 3,50 3,80 3,20 3,75 3,70 3,55 3,65 3,80 3,60 3,30 3,25 3,10 3,40 3,80 3,05 Clareza Consistncia Generalidade Completeza Conciso Robustez

Na avaliao geral ilustrada na Tabela 3, foram avaliados os seguintes aspectos: (i) o texto introdutrio, descrevendo a motivao e a forma de construo da ontologia de manuteno de software; (ii) a descrio da identificao do propsito da ontologia de manuteno de software; (iii) as questes de competncias gerais definidas; (iv) as subontologias originadas das questes de competncia gerais; e (v) O inter-relacionamento entre as sub-ontologias. Na avaliao de cada sub-ontologia ilustrada na Tabela 3, o nvel de detalhe aumentou e foram considerados os seguintes aspectos: (i) a especificao; (ii) o texto referente a conceituao; (iii) as questes de competncia; (iv) o esquema em LINGO; e (v) os axiomas definidos. 4.2 Instanciao O objetivo desta atividade averiguar a representatividade do conhecimento organizado. Com base nos conceitos j explicitados na ontologia, escolheu-se um projeto que estivesse em plena manuteno e realizou-se um estudo criterioso do mesmo, buscando instanciar todos os conceitos que estivessem explcitos em sua documentao, o que, por si s, no representa o fato de haverem sido utilizados estes conhecimentos, mas contribui para o planejamento de observaes. Para realizar esta atividade, um formulrio especial foi concebido com todas as sub-ontologias e seus conceitos, permitindo o registro das instncias assim que identificadas. Esta instanciao foi realizada pelo pesquisador em um total de oito horas (distribudas em quatro dias de trabalho), enquanto o projeto de manuteno continua em andamento e est previsto para concluir somente em Maio/2004. Ressalta-se que uma hierarquia de conceitos pressupe conceitos de maior e menor nvel de abstrao sobre um mesmo assunto, baseado nisso, considerou-se que uma vez instanciado um conceito de nvel inferior de abstrao, esta instncia tambm foi contabilizada para os conceitos de nvel superior. Se esta considerao no tivesse sido feita, em um universo de 98 conceitos identificados na ontologia de manuteno de software, 25 deles nunca seriam contabilizados, limitando a estatstica em apenas 73 conceitos elementares (aqueles de menor nvel de abstrao) e resultando em um expurgo prejudicial de 26% dos conceitos. Deve-se ressaltar que este raciocnio de incluso tambm foi adotado nas demais atividades previstas nessa avaliao. A Tabela 4 ilustra a relao percentual entre as quantidades de conceitos previstos e instanciados em relao ao sistema em estudo.

Tabela 4 Conceitos instanciados na documentao Sub-Ontologia Competncia Domnio da Aplicao Modificao Sistema Estrutura Organizacional Total Total de conceitos 38 04 30 23 03 98 Total de conceitos instanciados 28 02 23 16 03 72 % 74% 50% 77% 70% 100% 73%

4.3 Observao Esta atividade teve por objetivo verificar a efetiva utilizao dos conceitos projetados na ontologia, com a ressalva de procurar evitar que este conhecimento organizado represente um vis (fator externo que direcione os experimentos e a interpretao, resultando em dados inexatos ) aos estudos de campo realizados. Aps anlise criteriosa, decidiu-se que, entre as tcnicas mais adequadas para este contexto, seriam adotados os protocolos Pensando em Voz Alta ou Think-aloud protocols (tcnica de 1 grau), que, conforme definem [16], prevem que o mantenedor narre (pense em voz alta) concomitante a toda e qualquer tarefa, ao ou interveno que ele faa para conduzir a manuteno. Para tanto foi utilizado um gravador porttil e, posteriormente, digitalizao das narrativas para uma anlise criteriosa (transcritas no Anexo 4). Durante as sesses, o pesquisador manteve-se imparcial e neutro. A Tabela 5, por exemplo, destaca um quadro comparativo sobre o percentual de validao positiva (ndice de confirmao do uso dos conceitos previstos pela ontologia no universo de amostras obtido atravs dos estudos de campo), por sub-ontologia. Tabela 5 Validao Positiva durante a Observao Sub-Ontologia Competncia Domnio da Aplicao Modificao Sistema Estrutura Organizacional Total Total de conceitos 38 04 30 23 03 98 Validaes Positivas 15 01 16 09 02 43 % 39% 25% 53% 39% 67% 44%

4.4 Avaliao de Freqncias Com base nos resultados das instanciaes de conceitos, realizou-se estudos de campo para acompanhar a freqncia de uso de cada instncia conforme informaes dos mantenedores. Para tanto, eles preencheram (bastando marcar com um X) um formulrio que expe todas as instncias em uma forma estruturada e que permite ao prprio mantenedor assinalar cada uso efetivo, atravs de formulrio adequado, a cada final de expediente. A Tabela 6 ilustra os resultados obtidos com a atividade Avaliao de Freqncias. A Tabela 7 ilustra a comparao dos resultados obtidos (por sub-ontologia) na validao positiva atravs dos dois mtodos que mediram o efetivo uso dos conceitos nos estudos de campo. Com base nestes resultados, pode-se concluir que a atividade Avaliao de Freqncias apresentou melhores resultados por se basear na anlise das instncias encontradas investigando uma

documentao completa existente de um sistema selecionado para este estudo, enquanto que a atividade Observao aborda casos espordicos de manutenes que, geralmente, envolvem somente uma poro muito restrita do sistema.

Tabela 6 Validao Positiva durante a Avaliao de Freqncias Sub-Ontologia Competncia Domnio da Aplicao Modificao Sistema Estrutura Organizacional Total Total de conceitos 38 04 30 23 03 98 Validaes Positivas 26 02 22 13 03 66 % 68% 50% 73% 57% 100% 67%

Tabela 7 Validao Positiva Geral Sub-Ontologia Competncia Domnio da Aplicao Modificao Sistema Estrutura Organizacional Total Total de conceitos 38 04 30 23 03 98 Observao 15 01 16 09 02 43 % 39% 25% 53% 39% 67% 44% Avaliao de Freqncias 26 02 22 13 03 66 % 68% 50% 73% 57% 100% 67%

5. Trabalhos Correlatos
Alguns trabalhos de pesquisa sobre o conhecimento aqui abordado j surgem para contribuir com a atividade de manuteno de software. A seguir a relao de alguns dos principais: a) Em [28], a manuteno de software recebeu ateno especial, sob o ponto de vista da Psicologia, atravs do descobrimento e descrio das necessidades humanas ocorridas durante o exerccio deste tipo de atividade. As atividades descritas nesta pesquisa foram restritas a um escopo tecnolgico, limitando-se quelas diretamente relacionadas com o cdigo-fonte do software a ser modificado; Em [4], a preocupao principal residiu na descrio de fatores que pudessem afetar a qualidade e produtividade da manuteno de software, abordando detalhes do tipo: (i) o perfil de experincia do pessoal de manuteno; (ii) a forma com que o conhecimento adquirido nos projetos disseminado nas organizaes; e (iii) os procedimentos organizados para conduzir a manuteno, documentao, qualidade de cdigo-fonte e etc. As taxonomias apresentadas foram: ferramentas e mtodos de manuteno, documentao de manuteno, erros humanos e falhas de processo de manuteno, e taxonomia de equipes. Eles atingiram seu objetivo, determinando ligaes causais entre problemas de manuteno e falhas do processo e da organizao que conduzem a manuteno de software. Em [15], os autores criticam a viso da gerncia de mudanas se restringir gerncia de configurao. Na verdade, consideram-na um processo complexo que, independentemente do domnio da aplicao, envolve atividades como: preveno e planejamento contra mudanas, anlise de impacto, garantia de estabilidade (ou integridade) e documentao de mudanas. Algumas reas de conhecimento relevantes foram identificadas: modelos de processo, gerncia de configurao, heursticas, mtodos, linguagens, rastreabilidade e ambientes de desenvolvimento. Em [27], os autores propuseram estudar que conhecimento era importante durante uma manuteno de software, atravs do acompanhamento e da anlise do conhecimento que os engenheiros de software usam durante suas atividades dirias. Os autores se apoiaram na hiptese de que manter o foco em assuntos relativos ao conhecimento (saber qual conhecimento necessrio, onde encontr-lo, como represent-lo, como us-lo e etc.) pr-requisito para promover progressos significantes nas pesquisas de compreenso de programas e de engenharia reversa. Foram classificados os seguintes domnios de conhecimento: (i) Conhecimento de cincia da computao; (ii) Conhecimento de negcio; e (iii) Conhecimento geral;

b)

c)

d)

10

e)

Em [5], o autor pressupe que, durante o ciclo de vida do desenvolvimento de um software, especialmente no contexto das atividades de manuteno e reuso, o sistema a ser construdo concebido atravs de (e documentado por) diferentes tipos de artefatos, representando o conhecimento capturado sobre o domnio da aplicao; e Apesar de todos os trabalhos anteriores adotarem uma abordagem comum sobre a relevncia do conhecimento para a atividade de manuteno de software, deve-se ressaltar que eles privilegiaram a preocupao com a estrutura de experincias empricas, em relao prpria natureza dos atributos de cada um dos conceitos capturados sobre o conhecimento de manuteno de software. Em [13] ocorreu uma aproximao significativa com o objetivo e a estratgia deste artigo, os autores reverteram esta perspectiva de abordagem, planejaram e construram uma ontologia de manuteno de software.

f)

6. Concluso
Manuteno de sistemas uma realidade preocupante no mercado de software, sendo considerada em estimativas como at 80% de todo o trabalho de engenharia de software [22]. Esse trabalho realizado, em geral, sobre sistemas legados, construdos h muito tempo, por profissionais que j perderam o vnculo com a empresa, e como pouca ou nenhuma documentao. Esses fatores implicam em considerado esforo para entendimento dos sistemas a serem mantidos pelos mantenedores. Nesse sentido, de grande importncia identificar e organizar conhecimento que possa apoiar mantenedores nesse entendimento, e por conseqncia, na manuteno de software. Este trabalho teve por objetivo identificar o referido conhecimento e organiz-lo atravs de ontologias, as quais buscam definir conceitos, relaes entre esses conceitos e restries de entendimento sobre o universo de discurso em considerao. Para alcanar esse objetivo, foi realizada uma ampla reviso da literatura sobre manuteno de software, buscando identificar e modelar todo o conhecimento que pudesse ser utilizado para apoiar os mantenedores. As cinco sub-ontologias identificadas levaram a um total de 98 conceitos formando uma ontologia sobre o conhecimento bastante expressiva para a manuteno de software. Para avaliar a ontologia definida foi necessrio comprovar a qualidade do produto obtido atravs de um conjunto de atividades de avaliao que valide a consistncia da ontologia e verifique a efetiva utilizao dos conceitos propostos pela ontologia. Esse , portanto, apenas o incio de um longo trabalho para apoiar os mantenedores, procurando oferecer-lhes conhecimento til e adequado em cada momento da realizao de suas atividades de manuteno de software.

Referncias
[1] Abran, A., Nguyenkim, H. Analysis of Maintenance Work Categories Through Measurement. In: PROCEEDING OF CONFERENCE ON SOFTWARE MAINTENANCE, Sorrento, Italy: p.1041 13, 1991. [2] ANSI/IEEE - An Americam National Standard IEEE Standard. Glossary of Software Engineering Terminology. IEEE Transaction on Software Engineering. 1983. [3] Booch, Grady, Rumbaugh, James, Jacobson, Ivar. UML - Guia do usurio. Editora CAMPUS, 2000. [4] Briand, Lionel C., Basili, Victor R., Kim, Yong-Mi, Squier, Donald R. A Change Analysis Process to Characterize Software Maintenance Projects. In: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 1994. [5] Deridder, Dirk. Facilitating Software Maintenance and Reuse Activities with a Concept-oriented Approach. In: WORKSHOP ON KNOWLEDGE-BASED OBJECT-ORIENTED SOFTWARE ENGINEERING (KBOOSE), 16th European Conference on Object-Oriented Programming (ECOOP), Malaga, Spain, June 1014, 2002. [6] Falbo, R. Integrao de Conhecimento em um Ambiente de Desenvolvimento de Software. Rio de Janeiro, RJ, Brasil, 1998. Tese (Doutorado) COPPE, Universidade Federal do Rio de Janeiro. [7] Fouro, Ana Mirtes Maciel. Apoio Construo de Bases de Dados de Pesquisa em Ambientes de Desenvolvimento de Software Orientados a Domnio. Rio de Janeiro, Brasil, 2002: Dissertao (Mestrado) COPPE Sistemas/Universidade Federal do Rior de Janeiro. [8] Gmez-Prez, A. Some Ideas and Examples to Evaluate Ontologies. 11th Conference on Artificial Intelligence for Applications, p.299-305, 1995. [9] Gruber, Thomas R. Toward Principles for the Design of Ontologies Used for Knowledge Sharing. Int. J. Hum. Comput. Stud., 43(5/6): 907-928, 1995. [10] Grninger, M., Fox, M. S. Methodology for the Design and Evaluation of Ontologies. Toronto, CANADA: Technical Report, University of Toronto, 1995.

11

[11] Guizzardi, Giancarlo. Uma abordagem metodolgica de desenvolvimento para e com reuso, baseada em ontologias formais de domnio. Vitria, ES, Brasil, 2000. Dissertao (Mestrado), Universidade Federal do Esprito Santo. [12] Harrison, W., Cook, C. Insights on Improving the Maintenance Process Through Software Measurement. In: PROCEEDINGS OF CONFERENCE ON SOFTWARE MAINTENANCE, San Diego, CA: p.37-45, 1990. [13] Kitchenham, Barbara A., TRAVASSOS, Guilherme H., MAYRHAUSER, Anneliese von, NIESSINK, Frank, SCHNEIDEWIND, Norman F., SINGER Janice, TAKADA, Shingo, VEHVILAINEN, Risto, YANG, Hongji. Toward an Ontology of Software. Journal of Software Maintenance: Research and Practice. 11(6):365-389, May, 1999. [14] Kruchten, Philipie. The rational unified process: An introduction. 2nd Edition. p.218-219, Addison-WesleyLongman, 2000. [15] Lam, W. Shankararaman, V. Managing Change during Software Development: An Incrmental, KnowledgeBased Approach. In: PROCEEDINGS OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, p.124-127, Kaiserlautern, Germany, Jun., 1998. [16] Lethbridge, Timothy C., Sim, Susan Elliot, Singer, Janice. Software Anthropology: Performing Field Studies in Software Companies. Consortium for Software Engineering Research (CSER), 1996. [17] Markkula, Minna. Knowledge Management in Software Engineering Projects, In: PROCEEDINGS OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, p.20-27, Kaiserlautern, Germany, Jun., 1999. [18] Noy, Natalya Fridman, Hafner, Carole D. The State of the Art in Ontology Design. USA: American Association for Artificial Intelligence Magazine, p.53-74, 1997. [19] OLeary, Daniel E. Enterprise Knowledge Management. IEEE Computer, Mar., p.54-61, 1998a. [20] OLeary, Daniel E. Using AI in Knowledge Management: Knowledge Base and Ontologies. IEEE Intelligent Systems, (May/Jun), p.34-38, 1998b. [21] Oliveira, Kthia, Rocha, Ana Regina, Travassos, Guilherme H., Menezes, C. Using Domain-Knowledge in Software Development Environments. In: PROCEEDINGS OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, p. 180-187, Kaiserlautern, Germany, Jun., 1999. [22] Pfleeger, S. L. Software Engineering: Theory and Practice. 2nd Edition. New- Jersey: Prentice Hall, 2001. [23] Pigoski, Thomas M. Practical software maintenance: best practices for managing your software investment. USA: John Wiley & Sons. p.87-102, Dec, 1996. [24] Pigoski, Thomas M. Software maintenance. In: GUIDE TO THE SOFTWARE ENGINEERING BODY OF KNOWLEDGE. Los Alamitos, CA: IEEE Computer Society Press. Trial Version 1.00, May, 2001. [25] Pressman, Roger S. Software Engenieering. 5th Edition. p.225-241, McGraw Hill, 2001. [26] Probst, Gilbert, Raub Steffen, Romhardt, Kai. Managing Knowledge: building blocks for success. John Wiley & Sons, 2000. [27] Ramal, Marcelo Fenoll, Meneses, Ricardo, Anquetil, Nicolas. A Disturbing Result on the Knowledge Used During Software Maintenance. Working Conference on Reverse Engineering, Richmond, VA, U.S.A., p. 277287, 29 Oct-1 Nov., 2002. [28] Rugaber, Spencer, Tisdale, Victoria G. Software Psychology Requirements for Software Maintenance Activities. Software Engineering Research Center, Georgia Institute of Technology, 1992. [29] Rus, Ioana, Lindvall, Mikael. Knowledge Management in Software Engineering. IEEE Software, v. 19, n. 3 (May/Jun), p.26-38, 2002. [30] Singer, Janice. Practices of Software Maintenance. IEEE International Conference on Software Maintenance (ICSM'98), p.139-145. Nov, 1998. [31] Staab, Steffen, Studer, Rudi, Schnurr, Hans-Peter, Sure, York. Knowledge Process and Ontologies. IEEE Intelligent Systems, v16, n1, p.26-34, 2001. [32] Stenmark, Dick. Data, Information and Knowledgement. Dick Stenmarks Homepage. Disponvel em <http://w3.informatik.gu.se/~dixi/km/chap3.htm>. Acesso em 15 de dezembro de 2002. [33] Uschold, Mike, Grninger, Michael. Ontologies: principles, methods and application. The Knowledge Engineering Review, Vol. 11:2, p.93-136, 1996. [34] Uschold, Mike, King, M., Moralee, S. et al. The Enterprise Ontology. The Knowledge Engineering Review, v.13, 1995. [35] Vasconcelos, Jos ngelo Braga de. An Ontology-Driven Organisational Memory for Managing Group Competencies. York, England, 2001. Degree of Doctor of Philosophy Submission, The University of York.

12

Das könnte Ihnen auch gefallen