This practice is a specialization of the Analysis, Visualization & Generation Practice for using the Java model as a source model, target model, or both. This page provides a high level reference and the book goes into details.
So what is possible to do with the Java model/language in addition to generic analysis, visualization and generation?
jacoco.exec
and class files and associated with model elements.Documentation similar to documentation generated from Ecore models such as Java model above, Family model, or Enterprise model with:
* Visualizations mentioned above
* Documentation produced by GenAI - explainations and recommendations.
Such documentation may be useful in modernization efforts where there is a need to understand a legacy codebase. It may also be useful in onboarding of new team members and it might help provide deeper insights into the codebase for all team members.
Source code with @Generated
annotations or @generated
Javadoc tags to allow detection of changes in the generated code and re-generation only if there changes in the generator inputs, and the output was not modified since the last generation. It allows concurrent evolution of the generator, generator inputs, and manual modifications. For more details see Solution instantiation.
RAG/Chat on top of the Java model may use bytecode and runtime introspection information in addition to just source code. For example “This method is overridden by … and is called by …”. RAG may be contextual - chat with a class, a method, a package, a module or an application (group of modules) if the model elements are “mounted” under higher level constructs such as products and segments.