Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
High-level Petri nets: theory and application
High-level Petri nets: theory and application
CLOS in context: the shape of the design space
Object-oriented programming
GreatSPN 1.7: graphical editor and analyzer for timed and stochastic Petri nets
Performance Evaluation - Special issue: performance modeling tools
A high level language for structural relations in well-formed nets
ICATPN'05 Proceedings of the 26th international conference on Applications and Theory of Petri Nets
Proceedings of the 2008 Spring simulation multiconference
Evolving SaaS based on reflective Petri nets
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Hi-index | 0.00 |
Nowadays, software evolution is a very hot topic. Many applications need to be updated or extended with new characteristics during their lifecycle. Software evolution is characterized by its huge cost and slow speed of implementation. Often, software evolution implies a redesign of the whole system, the development of new features and their integration in the existing and/or running systems (this last step often implies a complete rebuilding of the system). A good evolution is carried out through the evolution of the system design information and then propagating the evolution to the implementation. Petri Nets (PN), as a formalism for modeling and designing distributed/concurrent software systems, are not exempt from this issue. Several times a system modeled through Petri nets has to be updated and consequently also the model should be updated. Often, some kinds of evolution are foreseeable and could be hardcoded in the code or in the model, respectively. Embedding evolutionary steps in the model or in the code however requires early and full knowledge of the evolution. The model itself should be augmented with details that do not regard the current system functionality, and that jeopardize or make very hard analysis and verification of system properties. In this work, we propose a PN based reflective framework that lets everyone model a system able to evolve, keeping separated functional aspects from evolutionary ones and applying evolution to the model if necessary. Such an approach tries to keep the model as simple as possible, preserving (and exploiting) the ability of formally verifying system properties typical of PN, granting at the same time model adaptability.