Loading...

Generative Software Development through Emergence-based Transformation

Mostafazadeh, Mahdi | 2015

585 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 47809 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Ramsin, Raman
  7. Abstract:
  8. Due to 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, 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. In our proposed approach to generativity, 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 generative software development approach based on the above idea, along with a methodology based on thus 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. Inherent composability is another advantage of this approach in comparison to other approaches; attaining a high level of automation in software development is thus facilitated. This research has been conducted in four major stages: 1) Previous research on generativity has been investigated; 2) a novel approach is proposed for generative software development through emergence-based transformation; 3) a comprehensive generative software development methodology has been proposed based on the emergence-based transformation approach; 4) the proposed approach and methodology have been seperately evaluated by applying evaluation criteria, and also through a case study
  9. Keywords:
  10. Generative Software Development ; Phenomenon ; Emergence ; Software Development Methodology

 Digital Object List

 Bookmark

No TOC