XCARE - Um Framework Baseado em XML para o Desenvolvimento de Ferramentas de Análise de Código - Fonseca, Leonardo Abreu (2005)
Há um crescente interesse dentro da comunidade de engenharia de software no uso da linguagem XML e suas tecnologias como uma maneira de facilitar a implementação, reuso e integração das ferramentas de suporte ao processo de desenvolvimento de software. No entanto, os trabalhos realizados nesta área têm-se concentrado na definição de padrões XML para representação de código e na construção de ferramentas para extrair estas representações de forma automática dos artefatos de software de um sistema. A implementação da maioria das ferramentas de desenvolvimento atuais, em particular das ferramentas de análise de código fonte, ainda continua sendo feita de forma ?fechada?, isto é, suas estruturas internas e rotinas de manipulação de dados não são padronizadas e, por esse motivo, são de difícil utilização. Claramente, esta característica restringe as possibilidades de customização destas ferramentas pelos seus usuários, além de dificultar o seu reuso no contexto de novos ambientes de desenvolvimento. Este trabalho propõe um ambiente baseado em padrões e tecnologias XML para facilitar o desenvolvimento de ferramentas de análise de código. Este ambiente, denominado XCARE (XML-based Code Analysis and Reverse Engineering), emprega tecnologias XML não apenas como mecanismos para importação e exportação de dados de código fonte, mas também para implementar as próprias estruturas de representação e manipulação desses dados. A flexibilidade do ambiente foi demonstrada através da implementação de uma variedade de operações de análise de código para a linguagem Java, incluindo métricas, críticas de projeto e engenharia reversa. Experimentos foram realizados utilizando dados XML extraídos do código fonte de aplicações Java disponíveis publicamente, tais como Eclipse e Jdk, o que permitiu avaliar aspectos de desempenho e escalabilidade do framework quando instanciado com diferentes tipos de ferramentas de consulta a dados XML.