Loading...
- Type of Document: Ph.D. Dissertation
- Language: Farsi
- Document No: 54355 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Ramsin, Raman
- Abstract:
- Constructing bespoke software development processes according to the specifications of the project at hand has become a crucial issue, but defining a separate process for each potential project context is a time-consuming and costly endeavor. The Software Process Line (SPrL) is a concept similar to the Software Product Line (SPL), except that it belongs to the domain of software development process engineering; it allows software processes to be constructed according to a specific context by reusing core process assets. Tailoring a process line for constructing project-specific processes is time-consuming and error-prone if done manually; therefore, it is important that a high degree of automation is provided for performing process tailoring. This goal can be achieved by using the Model-Driven Development (MDD) approach for process line engineering. In MDD, models are considered as core concepts in analysis, design, documentation, deployment, and maintenance activities. By using the MDD approach for process line engineering, we can explicitly specify implicit tailoring knowledge in the form of tailoring transformations, and then automatically tailor the process line based on a specific project context.Through analyzing existing model-driven SPrLE approaches, we have identified four activities as the main areas that require to be improvemed; the activities include: feasibility analysis, enhancing the core process, managing configuration complexity, and post-derivation activities.The overall aim of this research is proposing a novel MDD approach for SPrLE that provides adequate coverage of the four activities mentioned for SPrLE. Due to the popularity of agile methods, we have focused on proposing a MDD approach for process line engineering specific to agile methodologies. Scrum is currently the most widely used agile methodology; therefore, this research specially focused on proposing a Scrum process line. However, the approach proposed for SPrLE can be used for creating process lines for other types of methodologies. The proposed approach can be used by process engineers for defining the SPrL, and also by project managers for developing custom processes. The approach consists of: 1) a framework for modeling SPrLs, in which the chain of models created throughout the proposed approach are represented; the framework includes the modeling levels used to gradually intstantiate the SPrL, and 2) a process for applying the framework to create a SPrL and develop specific processes by instantiating the SPrL; the process presents all the steps that should be followed for creating the process line and instantiating it.To achieve the research goal, the existing model-driven SPrLE approaches have been reviewed; furthermore, the relevant research efforts previously conducted in the context of SPLs have been studied with the ultimate aim of determining the potential of their contributions for use in the context of SPrLE. A framework and a process have then been proposed for producing a model-driven SPrLE approach. The proposed approach has been evaluated through two empirical methods: Case study and Experiment. The results have shown that the proposed approach can indeed result in improvements in the processes currently in use, and is also useful and easy to use in real situations. In addition to the case study and the experiment, we have also compared our approach to existing ones in order to show its superiorities in addressing the four activities mentioned above.Specific achievements of this research are: specifying a set of requirements for feasibility analysis of implementing a process line in organizations, proposing a rigorous process for creating an initial core process based on the existing processes in the organization, creating the Scrum process line as a Scrum metaprocess and using it for enhancing the initial core process, proposing specific metamodels for modeling variability in the core process, modeling context attributes, and separating modeling levels in the application engineering phase, implementing a set of model-to-model transformations in QVT language, creating a method base including agile practices and defining mapping relationships between project attributes and practices, and evaluating the proposed approach via two empirical methods
- Keywords:
- Model Driven Development ; Methodology Engineering ; Software Process ; Software Process Improvment ; Software Process Line ; Software Process Variability ; Model Driven Approach
- محتواي کتاب
- view