Si desea razonar sobre el código fuente después de que se hayan entretejido aspectos en el código, debe entrelazar los aspectos en el código fuente en lugar del código binario.
Muchos tejedores de aspecto hacen tejer códigos binarios porque no tienen acceso a la información (tabla de símbolos, nombres, tipos, tipos de expresiones, ...) producida por un front-end del compilador. Entonces, el truco es usar el código de máquina virtual producido por el compilador (este truco básicamente solo funciona para conjuntos de instrucciones VM como .net IL y java class codes) que a menudo es fácil de decodificar (buen conjunto de instrucciones regulares) decorado con información de la tabla de símbolos.
Pero si no puede razonar acerca de los resultados binarios de tal proceso de tejido, entonces no puede estar seguro de que el programa tejido no tiene errores, que es el punto de la pregunta original de OP: "¿Cómo ¿Ejecuto herramientas SCA en la fuente tejida (efectiva)? ".
Puedes solucionar este problema de dos maneras:
- que la comunidad de escribir herramientas SCA que procesan los códigos de bytes en lugar de la fuente. Esto podría ser difícil porque el código fuente puede contener información perdida en el proceso de compilación.
- Una mejor idea: Obtenga la comunidad de aspecto para diseñar tejedores de aspecto que operen con código fuente y produzcan código fuente. Esto puede ser difícil porque obtener terminología completa es difícil.
No puedo evitar que la comunidad haga una elección.
Puedo ofrecer un fuerte estímulo para ayudar a la comunidad a elegir la segunda manera: nuestra DMS Software Reengineering Toolkit. Este es un sistema de transformación de programa que lleva a cabo directivas de la forma "si ve este, sustitúyalo por que" pero respetando la sintaxis y la semántica del lenguaje aplicando realmente dichos cambios a las estructuras de datos compiladas producidas por frente completo del lenguaje. (Esta es la versión de ingeniería de software de sustitución ecuacional en matemáticas). Las estructuras de datos modificadas se pueden reexportar como texto fuente compilable, completo con comentarios.
Si comprende lo que las transformaciones pueden hacer en general, puede ver que aspect weavers are a special case of program transformation systems. Por lo tanto, es fácil implementar tejedores de aspecto utilizando DMS, y los resultados son código fuente, lo que significa puede aplicar las herramientas de análisis de código fuente.
Dudo que esto realmente resuelve el problema PO de análisis de código generado por Roo en el corto plazo: - {
He buscado un poco de tiempo en este y también hablé con un vendedor de herramientas SCA. Parece que esto sigue siendo un problema de nicho :-( – er4z0r
Usamos Roo y Sonar también, por lo que estoy interesado en ver las respuestas a esta pregunta ... –
Ah, se siente bien no ser el único. Así que ya sabes el ¿Estoy hablando de problemas? – er4z0r