Um middleware para documentação automática e co-evolutiva de sistemas aplicado ao Logicamente
Documentação automática, co-evolutibilidade, geração de modelos, lógica
O Logicamente(1) é um software em desenvolvimento desde 2006 por alunos da graduação em ciência da computação do DIMAp/UFRN. Hoje ele conta com alunos de mestrado que trabalham para torná-lo um Ambiente Virtual de Aprendizagem de lógica. No que toca ao processo de desenvolvimento do Logicamente, identificamos alguns problemas e propomos soluções. Um dos mais urgentes está relacionado com a documentação dos módulos desenvolvidos. Esse problema já tem se apresentado de forma que alguns módulos desenvolvidos por alunos não puderam ser integrados por falta de documentação. O código desenvolvido simplesmente foi perdido. Nesse sentido objetivamos com o presente trabalho garantir uma documentação eficiente, atualizada e contínua dos módulos do Logicamente. Adotamos alguns padrões de documentação para que o desenvolvedor siga deixando a documentação atualizada e útil. Para isso estamos desenvolvendo um software que intermedeia o processo de desenvolvimento e o sistema em produção. Ter uma prática de documentação definida não significa que ela será seguida. Este sistema deve ser capaz obrigar o desenvolvedor a seguir determinada prática de documentação, detectando onde o desenvolvedor falhou na documentação do sistema. Além disso, o sistema utilizará informações de documentação para gerar artefatos para o modelo do sistema, tais como diagrama de requisitos e casos de uso da SysML(2). Este problema de documentação não é exclusivo do Logicamente, mas foi no Logicamente que identificamos e propomos um middleware que objetiva resolvê-lo. Este trabalho trata da aplicação e melhora de algumas técnicas de documentação, a fim de solucionar o problema de um software específico, mas que representa também uma das grandes deficiências da indústria de software, a saber, a dificuldade em manter a co-evolutibilidade entre software e documentação. Apesar de ter utilizado o Logicamente como estudo de caso, a solução proposta será genérica. Em relação ao custo total do ciclo de vida de software, Ware,Wilkie e Shapcott (2007) e Aziz, Ahmed e Laghari (2009) afirmam que o custo de manutenção consome entre 40% e 90% dos gastos das empresas. Brusamolin (2004) identificou que o investimento em tempo para compreender o produto antes de modificá-lo é maior quando a documentação ou especificações de design do software não estão disponíveis. O autor acredita que é possível manter a documentação sempre atualizada e em conformidade com o sistema em produção. Definimos um padrão de documentação a ser seguido e verificaremos através de um middleware, se o desenvolvedor seguiu à risca as especificações, ou seja, o middleware irá receber a documentação e a validará para garantir que nada estará documentado fora do padrão definido.
(1) Logicamente http://lolita.dimap.ufrn.br/logicamente
(2) SysML (Systems Modeling Language) é uma linguagem de modelagem de propósito geral, que estende a UML, para aplicação em engenharia de sistemas. Ela da suporte à especificação, análise, design, verificação e validação de sistemas.
REFERÊNCIAS:
BRUSAMOLIN, V. Manutenibilidade de Software. In: Revista Digital Online, v.2, jan. 2004;
WARE, M. P.; WILKIE, F. G.; SHAPCOTT, M. The application of product measures in directing software maintenance activity. Journal of Software Maintenance and Evolution: Research and Practice, New York, v. 19, n. 2, p. 133–154, mar. 2007
AZIZ, Junaid; AHMED, Faheem; LAGHARI, Mohammad Shakeel. Empirical analysis of team and application size on software maintenance and support activities. In: 1st IEEE International Conference on Information Management and Engineering (ICIME). Washington, EUA: IEEE Computer Society, 2009. p. 47–51