Mahdi Mostafazadeh

Thesis Title: Generative Software Development through Emergence-Based Transformation                  


Due to the rapid increase in the volume of data that needs processing, and also the ever-increasing demand for larger and more complex software systems, generative software development has become an attractive alternative to traditional approaches. Generative software development is in fact a transition from one complexity space to another; the higher the ratio of the complexity of the destination space is to the complexity of the source space, the more ideal the level of generation will be. In the ideal case, generative software development becomes equivalent to fully-automated software development. Despite widespread research on generative software development approaches–such as Model-Driven approaches, Software Product-Lines, Program Development from Formal Specifications, Generative Patterns, and High-level Programming Languages–there are certain disadvantages in each of them which have prevented researchers from achieving an ideal level of generativity in software development. For instance, in Czarnecki’s approach to generative software development, two methods (Configuration and Transformation) have been suggested for transition from the problem domain to the solution domain; although this approach is well-established, it has not achieved an ideal level of generation, mainly due to deficiency in generation power, lack of flexibility in configuration, extreme abstractness, inattention to seamlessness, and ambiguity in transformation.
One promising solution would be to use the synergy between the Configuration and Transformation methods, and thus provide an approach which has the generation power and flexibility of Transformation while providing the seamlessness and applicability of Configuration. Based on this observation, we propose a novel approach to generative software development which we have chosen to call Generative Software Development through Emergence-Based Transformation. In this approach, a software development problem is first regarded as a phenomenon, and is then represented by the phenomena from which it has emerged. This process can be applied recursively: It is possible to represent each of the phenomena thus identified by other phenomena from which they have emerged. The process is recursively applied to the identified phenomena until it is possible to generate the desired software solution with a potentially high level of automation through manipulation and evolution of the phenomena.
The objective of this project is to propose a comprehensive generative software development methodology based on the above approach. In addition to seamlessness, generation in this approach and the corresponding methodology is not just limited to code generation: It can start as early as analysis, and can stretch well beyond design and implementation, thus affecting evolution and maintenance as well; in other words, this approach can provide the means for constant generation in software development. Inherent composability and mergeability are other advantages of this approach in comparison to other generation approaches; attaining the desired level of automation in software development is thus facilitated.
This research will be conducted in five major stages: 1) Previous research on generativity will be investigated; 2) a practical method will be proposed for code generation (implementation) through emergence-based transformation; 3) existing automated software engineering methodologies (such as Model-Driven Engineering) will be investigated in order to explore their potential for combination with the proposed emergence-based code generation method; 4) a comprehensive generative software development methodology will be proposed based on the emergence-based transformation approach, extending the utilization of the approach to activities other than coding (in phases which precede or succeed the implementation phase); 5) validation of the proposed methodology by applying evaluation criteria, and also through a case study.

(Progress Chart)

Contact Information

   Email: mmostafazadeh[at] ce [dot] sharif [dot] edu