PAMELA is an annotation-based Java Modelling framework. PAMELA provides a smooth integration between model and code, and enable Java developers to handle software development both at conceptual level and at source-code level, without code transformation and/or generation, and avoiding round-tripping issues.
Exposed metamodel provides meta-programming support, multiple inheritance and traits programming, contract programming, aspect programming and run-time weaving. This framework also offers operational features derived from model-level edition such as notification management, validation, persistence, comparison and object graph computation.
PAMELA approach has been tested and validated on some java-based industrial projects, making it a credible alternative in the context of Model-Driven Engineering.
- Continuous modeling process
- Strong coupling between model and code with smooth integration
- Modeling without code generation: no need to generate POJO (plain old java objects), as their execution follow the standard semantics (less code, less bugs)
- Interpretation of models at runtime
- Code instrumentation
- Meta-programming
- Contract programming with assertions checking at runtime
- Dynamic code weaving at runtime (aspect programming without compilation)
Official website, documentation and installation available here : https://www.openflexo.org/pamela