A Model-Driven Approach for Software Process Line Engineering
Abstract
:1. Introduction
- Feasibility analysis: Examining the suitability and feasibility of the SPrLE approach in the target organization.
- Enhancing the core process: Extension and improvement of the produced core process.
- Managing configuration complexity: Managing the complexities involved in variability resolution.
- Post-derivation enhancement: Enhancing the configured process to meet the remaining requirements.
2. Related Research
- None of the approaches provides mechanisms for examining the suitability and feasibility of SPrLs for the target organization; they suppose that SPrLs have already been deemed as suitable for the target organization. Therefore, they begin by identifying the commonalities and variabilities among the processes; however, adopting the SPrL approach without prior assessment of its suitability can lead to failure [13].
- The bottom-up approach is the predominant approach used for creating a core process: In this approach, processes that already exist in the problem domain are used for identifying the commonalities and variabilities. However, this approach can result in an inappropriate core process, as existing processes may not be ideal. The top-down approach attempts to define the commonalities and variabilities in a particular domain from scratch (based on general process frameworks), thus raising the chances of missing important details [6]. The bottom-up and top-down approaches can complement each other; however, a synergistic combination of the two has never been attempted in SPrLE approaches.
- In most of the approaches, configuration complexity is solely managed via implementing a set of transformations for automatic resolution of variabilities (e.g., [10,12]). As demonstrated in SPLE approaches, multi-stage configuration can be used effectively as a mechanism for managing configuration complexity; however, existing SPrLE approaches lack adequate support for this sort of configuration.
- The configured process may not satisfy all organizational/project needs. Therefore, specific mechanisms should be defined for enhancing the configured process to meet the remaining requirements; a feature that is completely ignored by existing SPrLE approaches.
3. Proposed Model-Driven Approach for SPrLE
- Analysis: This subphase is focused on specifying the domain scope by identifying a subset of existing processes and a set of attributes to describe different project situations. However, we first need to analyze the current situation of the target organization to examine whether the SPrL approach is suitable for its specific needs (Feasibility analysis). If the SPrL approach is suitable for the organization, the current processes and organizational goals should first be identified to then be used for identifying the variabilities and context attributes. To this end, the processes currently used in the organization are fed to this subphase to be modeled in Software & System Process Engineering Metamodel (SPEM) 2.0 notation [47]. Organizational goals are also used here to help identify the context attributes that are important to the organization. The processes (modeled in SPEM 2.0) and a set of context attributes are the outputs of the analysis subphase.
- Design: The aim of this subphase is to build an initial version of the SPrL by identifying variabilities among existing processes; this activity is commonly performed in SPrL approaches (e.g., [10,12]). To this end, the outputs of the analysis subphase are fed to the design phase as input models. Context attributes are modeled by instantiating the context metamodel defined for this purpose. The similarities and variabilities among existing processes are also identified via the bottom-up approach; the output of this approach is an incomplete core process (also referred to as the reference architecture). The context model and the initial core process are the outputs of the design subphase.
- Implementation: This subphase is mainly focused on the following: improving the initial core process, building the required foundations for improving the processes after instantiation (post-derivation enhancement), and managing the complexity of process instantiation by providing a certain degree of automation. To this end, the outputs of the design subphase are fed to the implementation subphase as input models. During implementation, the top-down approach is applied to produce a metaprocess that includes all the variabilities identified in the target domain; the initial core process is then completed by enriching it with the results of the top-down approach. Transformations are also produced in this subphase, to be used in AE for automatic derivation of processes from the SPrL. As the process generated in AE may not satisfy all organizational/project needs (resulting in delta requirements), a process improvement method base (PIMB) is also produced; the PIMB contains process elements extracted from other processes, such as XP [48] and DSDM [49], which can be added to the generated process to address the delta requirements.
- Analysis: The aim of this subphase is to specify the context in which a specific process needs to be built; these attributes are like requirements specific to a product in SPLE. To this end, context attributes are given specific values based on the situation at hand, and the organizational context model is produced.
- Design: This subphase is focused on producing a specific process while managing the configuration complexity by gradually resolving variabilities; the modeling levels comprising our proposed modeling framework are used in this subphase for gradual resolution of the variabilities. The organizational context model, core process and transformation rules are fed to the design subphase as input models. During design, the variabilities defined in the core process are gradually resolved by executing the pre-defined transformations in a multi-level fashion (based on the values of context attributes). The bespoke methodology thus generated is the output of the design subphase.
- Implementation: The aim of this subphase is to improve the constructed process by satisfying the remaining organizational/project needs (post-derivation enhancement); the need to conduct this activity has been identified throughout evaluating the proposed approach via a case study. The bespoke methodology is fed to the implementation subphase as the input model. The methodology is first analyzed, and if delta requirements are identified, the PIMB is used to address the shortcomings. The enhanced methodology is then applied to the target project.
- Feasibility analysis: The feasibility of using an SPrL approach for the organization is examined during DE by a set of requirements specifically defined for this purpose [13].
- Enhancing the core process: During DE, the top-down approach is applied to produce a metaprocess for the target domain. The core process created by analyzing existing processes (via the bottom-up approach) is combined with the metaprocess, resulting in an enhanced core process.
- Managing configuration complexity: During AE, configuration complexity is managed by the following: (1) providing semi-automation in resolving the variabilities, and (2) support for staged configuration by providing multi-level resolution of variabilities.
- Post-derivation enhancement: During the implementation subphase in AE, the process instantiated from the SPrL is analyzed to identify the remaining/delta requirements; the PIMB is then used to address the delta requirements.
3.1. Domain Engineering
3.1.1. Analysis
- Feasibility Analysis: Organizations should first examine whether the SPrL approach is suitable for their specific needs. In [13], we have identified a comprehensive set of requirements for adopting the SPrL approach. These requirements have been presented in the form of a questionnaire, which has been designed for determining the suitability of organizations for creating SPrLs; the questionnaire has been explained in [13]. Organizations that intend to develop an SPrL can consider this questionnaire as a suitability filter. The more an organization satisfies the requirements, the more justified it is to adopt the SPrL approach. As pointed out in [13], the level of importance of the requirements may not be the same in different contexts. Furthermore, it is required that a threshold be determined when applying the requirements to a specific context; this threshold is the minimum score that should be satisfied by the organization in order to be suitable for creating the SPrL. An example of the application of requirements for feasibility analysis has been provided in Appendix A.
- Modeling similar processes using SPEM 2.0: Of the requirements defined in [13], two are related to all the (potential) processes that can be instantiated from the core process (the process line portfolio): Structural similarity, and Process type. These two requirements are used for identifying the software processes in an organization that will be used for constructing the core process of the SPrL. Structural similarity refers to the degree of similarity in the structure of processes selected for creating the core process; there is no rigid threshold, but the degree of variabilities defined in the core process should be justifiable. Process type refers to the type of processes that will be part of the SPrL (such as agile or plan-driven). As the identified processes may have been modeled in different notations (or not documented at all), all of them should first be modeled/re-modeled in SPEM 2.0 [47] in order to unify their representations and thereby facilitate the identification of their commonalities and variabilities. SPEM 2.0 has been selected because it is the OMG standard for software process modeling.
- Identification of context attributes: Context attributes (also referred to as situational factors [50]) are used for describing the situation in which a specific process should be built. These attributes are the specific characteristics of the organization (e.g., maturity level), or the project at hand (e.g., degree of risk), or the individuals involved in the project (e.g., skill and knowledge). There are many research works on specifying situational factors (e.g., [51,52,53,54]). These works can also be used as sources for identifying context attributes; however, the tacit knowledge of subject matter experts should also be explored to refine these context attributes.
3.1.2. Design
- Context Modeling: The context attributes identified in the analysis subphase are fed to this activity as input. These context attributes are modeled using the metamodel shown in Figure 3. The metamodel has been implemented in Medini-QVT [55]; in this tool, metamodels are defined as Ecore metamodels and transformations are implemented as QVT rules. An example of modeling context attributes in this tool has been shown in Appendix B.
- Identification of commonalities and variabilities among the processes identified (Bottom-Up approach): The bottom-up approach can result in an inappropriate core process, as existing processes may not be ideal. The top-down approach is also error-prone, as it attempts to define the commonalities and variabilities in a particular domain from scratch. We have therefore decided to combine the two approaches. The bottom-up approach is used in the design subphase of DE for building an initial core process, and the top-down approach is used for improving the quality of the produced core process in the implementation subphase of DE. Separating the bottom-up and top-down approaches has specific benefits, including the following:
- −
- The organization can use an existing metaprocess to improve the core process instead of expending time and effort on improving existing processes. For example, the Scrum metaprocess [56] can be used in organizations that use different versions of Scrum.
- −
- The organization may not have enough knowledge to improve existing processes. Creating the metaprocess through the application of the top-down approach by experts can address this issue.
- −
- The metaprocess can be used to train organizational staff, and also to document the software processes currently used in the organization.
Variability Management in the Proposed Approach
- ProcLElement: This abstract class represents SPrL elements and has two subclasses: Varpoint, and Variant. As shown in Figure 4, ProcLElement is a subclass of the Model Element class; therefore, each instance of ProcLElement subclasses can be connected to instances of the Model Element subclasses via the Dependency class.
- VarPoint: Each variation point in the core process is an instance of this class; it can be of different types and granularities, namely the following: Phase, Activity, Task, Role, Work Product, and Guidance. Each variation point can be either Mandatory or Optional. It can include one or more variants that show possible alternatives for resolving the variability [1,60]. Furthermore, multi-level variabilities can be defined via the composition relationship drawn from the VarPoint class to itself, so that each variation point can include one or more other variation points. We have replaced or, xor, and and relations with UML-style multiplicities. Multiplicities consist of two integers: a lower bound and an upper bound, which are specified by two attributes in the VarPoint class: Min and Max.
- Variant: The variants related to variation points are instances of this class, and can be either Mandatory or Optional.
- Restriction Relationship: The relationships and constraints of variabilities can be represented via the Restriction Relationship class. Both variation points and variants can affect other parts of the process structure, as a variation point may exclude another one. These dependencies are represented by the Inclusion and Exclusion classes, which are subclasses of the abstract class Restriction Relationship.
Bottom-Up Approach
- Elements that are common to the processes are identified. These elements are of these types: Phase, Activity, Task, Role, Input/Output, Work Product, Guidance, and Dependency relationships. A process element is common to a set of processes if its name and description is identical in all of them. A dependency relationship is included in the core process if the elements on both sides have already been identified as common elements. An example of the output of this step is shown in Figure 5 (Step 1).
- Variation points and related variants are identified through the following substages by analyzing each of the phases, activities, and task elements that are not already included in the core process (we will call it e1):
- a.
- If the predecessor (e1-pre) or the successor (e1-succ) of e1 is already identified as a common element, two outcomes are possible: (1) an optional variation point is added to the core process, either after e1-pre or before e1-succ, and e1 is added as its optional variant; an example of the output of this step is shown in Figure 5 (Step 2-a (1)). (2) If a variation point after e1-pre or before e1-succ is already defined, no variation point is added to the process model, and e1 is just added to the core process as an optional variant under the previously defined variation point.
- b.
- If the predecessor (e1-pre) and successor (e1-succ) of e1 are not common elements, an optional variation point is added to the core process after or before the variation point related to e1-pre or e1-succ, respectively, and e1 is added as its optional variant.
- c.
- If at least one element of each process is added under a common variation point, the variation point is converted to a mandatory variation point.
- d.
- If no predecessor/successor elements exist before/after e1, an optional variation point is added to the core process under the process element with the higher granularity, and e1 is added as its optional variant. For example, the variation point related to a task is added under the related activity.
If any elements of types phase or activity are added to the core process in this step, steps 1 and 2 are repeated for them in order to identify their common and variable internal elements. - For each role, work product, and guidance that is not already included in the core process (we will call it e2), its variation points and variants are specified through these substages:
- a.
- If the phase/activity/task related to e2 is already added to the core process as a common element, three outcomes are possible: (1) An optional variation point is added to the core process and a dependency is established between the phase/activity/task and the variation point, and e2 is added as its optional variant; an example of the output of this step is shown in Figure 5 (Step 3-a (1)). (2) If another element of the process under investigation with the same type as e2 has already been added as a variant under a variation point, e2 is only added to the core process as an optional variant under the variation point, and the variation point is converted to Alternative OR, which is specified in our approach by assigning 1 to Min, and n (the number of variants) to Max; an example of the output of this step is shown in Figure 5 (Step 3-a (2)). (3) If another element of another process with the same type as e2 has already been added as a variant under a variation point, e2 is only added to the core process as an optional variant under the variation point, and the variation point is converted to Alternative XOR, which is specified in our approach by assigning 1 to Min and 1 to Max; an example of the output of this step is shown in Figure 5 (Step 3-a (3)).
- b.
- If the phase/activity/task related to e2 is not already specified as a common element, three outcomes, similar to those explained in the previous step, are possible. However, a dependency is established between the variation point related to the phase/activity/task and the variation point added to the core process.
- c.
- If at least one element of each process is added under a common variation point, the variation point is converted to a mandatory variation point. As the result of this step, the variation points related to the roles and techniques shown in Figure 5 are converted to mandatory (Step 3-c). Due to space limitations, the variation points are not shown in Figure 5, and variants are directly connected to the related process elements.
- For each dependency relationship that is not already added to the core process, the elements or variation points related to the elements on both sides of the dependency are found in the core process, and a dependency relationship is added between them; an example of the output of this step is shown in Figure 5 (Step 4).
3.1.3. Implementation
- Constructing the extended part of the core process (Top-Down approach): In the bottom-up approach, the initial core process is created by analyzing existing processes. To address the problems in existing processes, and thereby enhance the initial core process constructed, we use the top-down approach to create a metaprocess that includes all the variabilities in the target domain. Existing process frameworks, such as DAD [63], can also be used for this purpose. The top-down approach has already been used for constructing SPrLs (e.g., in [21,23]); however, it has been used in previous research to identify the variabilities in standard processes that can be instantiated across multiple organizations, whereas in our approach, the top-down approach has been used for enhancing the SPrL being created in a target organization. Furthermore, the bottom-up approach has never been used for analyzing the existing processes of an organization.An organization interested in implementing an SPrL can create the metaprocess by identifying the variabilities in a process framework; the selection of the framework depends on the type of processes being used in the organization. As Scrum is the most widely used agile framework, we have defined the Scrum metaprocess [56] through the top-down approach as an example. An example of the variabilities identified in the Scrum metaprocess has been provided in Appendix D.
- Developing the Process Improvement Method Base (PIMB): The constructed process may not satisfy all organizational/project needs (remaining requirements/delta requirements). To address this problem, a method base (PIMB) is built for storing additional core assets. PIMB’s metamodel is shown in Figure 6. This metamodel is an extended version of the left-hand section of the variability metamodel shown in Figure 4; two relationships have been added: one between Model Element and Context Attribute, and the other between Guidance and Context Attribute. The relationships between context attributes and process elements are also stored in PIMB. If the instantiated process cannot satisfy all the needs, context attributes are given specific values and are then fed to the transformations; by executing the transformations, suitable process elements are automatically extracted from PIMB. The metamodel has been defined in Medini QVT; the method base has been built by instantiating the metamodel and enriching it with process elements from DSDM and XP. However, the method base can be complemented by other process elements as well. The process elements so far defined in the method base are presented in Appendix E, and an example of how PIMB can be used for satisfying the delta requirements is provided in [64].
- Implementing transformations: Transformations are used for automatic derivation of a process from the SPrL. Transformations are implemented in a tool using a model transformation language, such as QVT [55]. Medini QVT has been used for implementing transformations in our approach; however, organizations can use other tools or languages for this purpose. An example of the implemented transformations has been provided in Appendix F. Due to space limitations, we will not provide the detailed descriptions of other transformations implemented for resolving the variabilities of the Scrum metaprocess. The complete set of transformations is available on Mendeley Data [64].
- Creating the complete core process: The models created by the bottom-up and top-down approaches are merged to obtain the final core process. This stage is currently performed manually. If the required transformations are implemented, the two input models can be automatically merged to produce the completed core process.
3.2. Application Engineering
3.2.1. Analysis
3.2.2. Design
- Inclusion: If a variant selected at a specific level has “inclusion” relationship with another variant, that variant is added to the process under construction.
- Exclusion: If a variant selected at a specific level has “exclusion” relationship with another variation-point/variant, that variation-point/variant is removed from the process under construction.
- Multiplicity: If there is a variation point with (min, max) = (1,1), selecting one of the variants of the variant group results in removing the variation point from the process under construction.
3.2.3. Implementation
- Analyzing the produced process in cooperation with members of the organization: The process produced in the previous phase is analyzed to identify the organizational/project needs that have not been addressed. If such needs exist, transformations are applied to PIMB to extract suitable process elements for addressing those needs.
- Applying the produced process to the target project: The produced process is enacted in the real world, and the results of its application may call for further iterations of DE and AE.
4. Evaluation
4.1. Case Study
4.1.1. RQ1. What are the Challenges of Using the Proposed Approach for Developing a Process Line?
Domain Engineering
- A.
- Analysis
- Feasibility analysis: The suitability-filter questionnaire was filled out by four companies, of which A was then identified as a suitable venue for creating an SPrL. The questionnaire has been provided in Appendix K.
- Modeling similar processes in SPEM: Interview sessions were held to elicit the different versions of the Scrum process used in A. These processes were then modeled with the tool.
- Identification of context attributes: In [51], a reference framework has been proposed for situational factors that affect software processes; we used this framework to identify the situational factors relevant to agile methodologies. These factors were then refined and completed based on other resources. The finalized list of situational factors is shown in Table 2, along with the additional resources that were used for refining or extending them. The third column in Table 2 depicts the range of possible values for each factor. Attributes under Personnel and Organization are considered as organizational factors; the attribute under Operation is considered as an environmental factor; attributes under Requirements, Application, and Business (except for the Opportunities attribute) are classified as project factors; and the Opportunities attribute, by definition, is an organizational factor.
- B.
- Design
- Context modeling: The situational factors shown in Table 2 were modeled in the tool.
- Identification of commonalities and variabilities (Bottom-up approach): The commonalities and variabilities among the processes being executed in A were identified by applying the bottom-up approach; details have been provided in [64]. For sake of brevity, only “Sprint Execution” is presented herein (Figure 9).
- C.
- Implementation
- Constructing the extended part of the core process (Top-Down approach): The “Sprint Execution” variabilities that were defined in the Scrum metaprocess have already been shown in Figure A7 in Appendix I.
- Developing PIMB (method base): The PIMB, implemented in Medini-QVT, is provided in Appendix E.
- Creating the complete core process: The final SPrL was created by combining the models created by the bottom-up and top-down approaches. An overview of this SPrL is shown in Figure 10. The details and variabilities of “Sprint Execution” in the Scrum metaprocess (Figure A7 in Appendix I) were more comprehensive than the processes being used in A (Figure 9). Therefore, the combined result was similar to Figure A7.
- Implementing transformations: A set of transformations were implemented in the tool for resolving the variabilities identified in the core process. The transformations have been provided in [64].
Application Engineering
- A.
- Analysis
- B.
- Design
- C.
- Implementation
- Analyzing the produced process in cooperation with members of the organization: The subjects of A confirmed that all organizational/project needs could potentially be satisfied by the processes instantiated from the SPrL, except for two problems related to the A.4 project. One problem was related to intra-team knowledge sharing, and the other was related to the capabilities of team members in writing high-quality code. Transformations were therefore applied to PIMB, and the following guidances were extracted: “Moving people around”, “Preparing documents of project status”, and “Training team members on code quality by a coach”.
- Applying the produced process to a real-world project: Parts of the process produced for project A.2 were applied in one sprint. The results are presented in Section 4.1.2.
Challenges Identified during the Application of the Proposed Approach for Creating the SPrL
- Identifying commonalities and variabilities among existing processes in case A was time-consuming, mainly because their processes were not documented.
- Presenting the variabilities of the Scrum metaprocess implemented in the tool to subjects was difficult. To facilitate the adoption of SPrLs in organizations, a high level of user friendliness is needed in the user interface of the tool.
- Assigning values to situational factors was challenging since subjects had different opinions about them. To address this issue, we recommend that organizations provide concrete examples on how to assign a specific value to each situational factor based on organizational context and project characteristics.
- Using the tool for executing transformations was difficult for the subjects because of its low-level user interface. Implementing a graphical user interface would therefore improve the adoption of SPrLs in organizations.
4.1.2. RQ2. Can the Specific Processes Produced from the SPrL Improve the Processes Currently Used in the Organization?
4.1.3. Discussion on Case Study Results
- Internal validity: A potential threat to internal validity is subject fatigue; this was handled by planning interviews in multiple one-hour sessions. Another threat to internal validity is misinterpretations in the interviews; to mitigate this threat, in addition to the notes taken during interviews, sound recordings were produced to later be transcribed as part of analysis. The results of each interview session were also reported back to the subjects via email and face-to-face conversation (Member checking).
- Construct validity: A potential threat to construct validity is subject selection. Random subject selection was not possible, as we needed subjects with adequate knowledge about the processes used. However, viewpoints of the different roles involved were considered throughout the case study, as well as in the questionnaire designed for obtaining feedback about the proposed practices (Theory triangulation). Furthermore, a case study protocol was defined at the beginning of the study and was updated continuously afterwards (Audit trail).
- Conclusion validity: One potential threat to conclusion validity is the reliability of the study results. Reviewing the procedures selected for data collection and analysis by an expert (the second author), member checking, and theory triangulation helped mitigate this risk.
- External validity: An inherent problem of case studies is external validity. To mitigate this risk, we applied the approach on a real case. However, the study has been conducted in a company that based its software processes on Scrum; therefore, we cannot generalize the results to companies using other types of processes.
4.2. Experiment
4.2.1. Definition, Planning, and Execution
- Subjective data were of two types: quantitative data and qualitative data. To analyze the quantitative data, which were obtained from closed-ended questions, numerical values were assigned to the responses given to these questions (from 5 for “Strongly agree,” to 0 for “Not sure”). The minimum, maximum, and average values for each Likert item of the questionnaire were then calculated. Qualitative data were obtained from open-ended questions; responses to these questions were categorized in three groups: Problems and challenges, Benefits, and Suggestions for improving the approach.
- Objective data were obtained by measuring the time expended by the subjects in each treatment. The Wilcoxon signed-rank test was used to verify whether differences in time measurements were statistically significant.
4.2.2. Results
RQ3. What Is the Users’ Perceived Usefulness of the Proposed Approach?
RQ4. What Is the Users’ Perceived Ease of Use of the Proposed Approach?
RQ5. To What Extent Does the Proposed Approach Enhance Efficiency?
RQ6. To What Extent Does the Proposed Approach Enhance Effectiveness?
4.2.3. Discussion on the Results of the Experiment
- Internal validity: There are two potential threats to the internal validity of a within-subject design. The first threat is learning effects, which we minimized by providing the subjects with the required instruments gradually and only when needed, thus leveling the learning curve; the only common instrument in the two treatments was the description of the hypothetical situation. However, as the subjects had to assign values to situational factors based on the description of the situation, they needed to carefully read each sentence of the description in the second treatment; therefore, the learning effect was minimized. Furthermore, we have intentionally designed the sequence of sessions 1 and 2 so that the tool is only used throughout the second session, thus obviating any biasing leaning effect resulting from having seen the output of the tool. The second threat is tiredness, which was handled by selecting only one activity of the Scrum framework as the object of experiment.
- Construct validity: The first threat to construct validity is misunderstanding the questions in the post-questionnaire; to deal with this, we added explanations to each measure. Furthermore, the pilot run helped ensure the completeness and understandability of the questionnaire. The second threat is that subjects might not gain sufficient understanding of the tool and the experiment’s tasks. To reduce this threat, we held a training session and sent a voice-recorded file including detailed instructions on how to execute the experiment. The within-subject design and subject limitation strategy helped reduce the effects of confounding variables [81] as the third threat to construct validity.
- Conclusion validity: One potential threat to conclusion validity is low statistical power; as we needed people with basic knowledge/experience of Scrum, we could not use a random sampling strategy to choose a large number of respondents. Another threat is the reliability of treatment implementation. We mitigated this risk by executing the whole experiment online. Furthermore, the same set of instruments was sent to all the subjects.
- External validity: The use of students as subjects of software engineering experiments is popular due to their higher availability/accessibility [82]. Although using student subjects is often seen as a potential threat to external validity, there is no general agreement that either students or professionals are generally better as subjects of experiments [82] (p. 26). Hence, we have used a combination of students and professionals in our experiment (as shown in Appendix Q); furthermore, the students who participated in the experiment had several years of experience in industrial projects. Another potential threat to external validity is having an inadequate experimental setting. To minimize this risk, we implemented the transformations in a tool that is available online; however, further experimentation is needed to generalize the findings.
4.3. Comparative Analysis
- Feasibility analysis in our approach is conducted in the analysis subphase of DE. No other approach provides mechanisms for this purpose.
- Enhancing the core process is performed in our approach via defining a metaprocess by applying the top-down approach, and then merging it with the initial core process. In [21,22,23], the top-down approach is used for creating the SPrL; however, the processes used in the organization are not analyzed to create the core process, whereas these processes may include specific process elements for specific situations that are not identified by the top-down approach. Therefore, the combination of bottom-up and top-down approaches has never been used before, and is a contribution of our proposed SPrLE approach.
- Managing configuration complexity is performed in our approach in two ways: automatic variability resolution and support for multistage configuration through multilevel resolution of variabilities. In [10,12,21,22,23,25,26,28,31], configuration complexity is managed by providing automation in resolving the variabilities. Multistage configuration of variabilities is implicitly supported in [21,22,23], but not in [10,12,25,26,28,31]; therefore, we have assigned the value “Partial-support” to [10,12,25,26,28,31] for managing configuration complexity. In [21], resolution of the variabilities defined in the SPrL results in creating a specific SPrL for the target organization; the target organization should then resolve the remaining variabilities to create the specific processes. In [22,23], variants of the reference model are created at different abstraction levels: company-specific level, unit-specific level, and project-specific level. There are two specific differences between the multi-stage configuration proposed in our approach with the one used in [21,22,23]: 1) We do not limit the number of levels through which the variabilities are resolved; organizations can define the levels based on their needs and by using the framework proposed (Figure 7); and 2) We exactly specify which variation points are resolved at which levels. This level of detail is not provided in [21,22,23]; however, as these studies have paid adequate attention to this aspect of complexity management, we have assigned the value “Full-support” to them for managing configuration complexity
- Post-derivation enhancement is performed in our approach in the implementation subphase of AE by analyzing the process instantiated from the SPrL to identify delta requirements; PIMB is then used to address those requirements. No other approach provides mechanisms for this purpose.
5. Discussion on the Benefits and Limitations of the Proposed Approach
- (1)
- Although providing tool support for representing variabilities and executing transformations has its own benefits, user-friendliness is an important feature that should be considered when implementing a tool; this requirement has not been adequately satisfied by our proposed tool. This may jeopardize the adoption of the approach by organizations.
- (2)
- Although automatic execution of transformations can facilitate change propagation, it is imperative that specific mechanisms be provided for preserving traceability between the SPrL and the processes already instantiated from it. Our approach lacks such mechanisms, to the detriment of the evolvability of the SPrL.
- (3)
- Another challenge is assigning specific values to situational factors during AE. Our approach fails to provide guidelines on how to assign these values based on the structure of the organization/teams and the type of the project at hand.
6. Conclusions and Future Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Appendix A
Requirement | Level of Importance (0–10) | Satisfaction by Organization (Yes = 1, No = 0) | Score |
---|---|---|---|
Significantly different criticality levels in different products | 3 | 1 | 3 |
Projects of significantly different sizes/durations undertaken | 5 | 1 | 5 |
Resource constraints | 1 | 0 | 0 |
Specific level of similarity as to the structure of methodologies | 2 | 1 | 2 |
Similarity in type of methodologies | 3 | 1 | 3 |
Sum = 13 |
Appendix B
Appendix C
Appendix D
Appendix E
Practice | Situation |
---|---|
Post-mortem session | Personnel cohesion = (*, High) OR Application connectivity = High |
Feasibility study | Degree of risk = High OR Application complexity = High OR Personnel experience = (Inexperienced, *) |
Prototyping | Personnel experience = (Inexperienced, *) OR Requirements standards = Inadequate OR Application complexity = High OR Degree of risk = High OR End-user experience = Inadequate |
Facilitated workshops | (Number of teams = High OR External dependencies = High) AND Organization facilities = Adequate |
Coding standards | Number of teams = High OR Personnel cohesion = (*, High) OR Application connectivity = High OR Application reuse = High OR Application quality = High |
Simple design | Personnel skill and knowledge = Inadequate OR Application reuse = High OR Application quality = High |
Appendix F
QVT Definition | Top Relation Rule9 |
---|---|
Part 1 | checkonly domain left1 L1: Context_Metamodel::Context{ Contains = D1: Context_Metamodel::Dimension { Name = ‘Application’, Contains = C1: Context_Metamodel::ContextAttribute { Name = ‘Quality’, Value = ‘High’}}}; |
Part 2 | checkonly domain left2 L2: SPrL_Metamodel::Task{ Name = ‘Task performance’}; |
Part 3 | enforce domain right R1: SPrL_Metamodel::Guidance{ Name = ‘Pair programming’, Is_Contained_by_Task = L2};} |
Appendix G
Appendix H
Appendix I
- Transformation 2.2: Sprint Execution and the OCM are fed to this transformation. For sake of brevity, only the relevant parts of the activity are shown in Figure A7. Variation points that are dependent to environmental factors (Tasks, Work Products, and Roles) are resolved at this level; therefore, “Daily Scrum”, which is designated as an optional task in the input model, is resolved by executing the transformation. Based on the values assigned to the situational factors, this task is added to the target process.
- Transformation 2.3: The Sprint Execution produced at level 2.2 and the OCM are fed to this level as input models. Variation points that are dependent to project factors are resolved at this level (Guidance); therefore, “Three questions”, designated as an optional guidance, is resolved by executing the transformation. Based on the values assigned to situational factors, this guidance is added to the target process.
- Transformation 3.2: The Sprint Execution produced at level 2.3 and the OCM are fed to this transformation as input models. Roles that are dependent to project factors are resolved at this level; therefore, “Other people”, designated as an optional role, is targeted by the transformation. Based on the values assigned to situational factors, “other people” is added to the target process as a role involved in the Daily Scrum.
- Transformation 3.3: All the remaining variabilities are resolved at this level. Based on the values assigned to situational factors, “Pair programming”, “Refactoring”, “TDD”, “Collective ownership”, “Continuous integration”, “Parking lot chart”, “Task board”, “Sprint burndown line chart”, and “Effort-hours” are added to the target process. By adding the “Sprint burndown chart” to the target process, the “Sprint burnup chart”, and the guidances associated with “Sprint burnup chart” (“Story point” and “Effort-hours”) are removed from the core process since there is an exclusion relationship between “Sprint burndown chart” and “Sprint burnup chart”. “CFD” is also removed based on the values of situational factors. The resulting “Sprint Execution” activity is the output of level 3.3.
Appendix J
Appendix K
Category | Requirement for Adopting SPrL | Candidate Companies | ||
---|---|---|---|---|
A | B | C | ||
Product | Significantly different criticality levels in different products | Y | Y | Y |
Significantly different product types produced | N | Y | Y | |
Significantly different product sizes produced | Y | Y | Y | |
Significantly different security levels in different products | N | N | N | |
Significantly different complexity levels in different products | Y | Y | N | |
Significantly different maintainability needs in different products | Y | N | Y | |
Significantly different usability needs in different products | N | N | N | |
Significantly different performance efficiency levels in different products | N | Y | N | |
Significant difference in the level of compatibility with organization laws/standards, or with existing systems, in different products | Y | N | N | |
Significantly different reliability needs in different products | N | N | N | |
Significantly different complexity levels in predicting the requirements/project schedule/project cost in different products | Y | N | Y | |
Significantly different levels of rigidity in meeting stated and implied needs of products | Y | N | N | |
Project | Significantly different levels of resource constraints in different projects | Y | N | N |
Significant difference in the level of team members’ skill/knowledge in different projects | Y | Y | N | |
Projects of significantly different sizes/durations undertaken | Y | Y | Y | |
Significantly different risk/complexity levels in different projects | Y | Y | Y | |
Significant difference in the number or size of teams in different projects | Y | Y | N | |
Significant difference in changeability, understandability, or feasibility of user/system requirements in different projects | N | N | N | |
Significant difference in the level of stakeholder involvement, number of stakeholders involved, and/or background/knowledge level of stakeholders in different projects | Y | N | N | |
Significant difference in team cohesion (Distributed/Collocated) in different projects | N | N | N | |
Significantly different project types undertaken (i.e., outsourced and insourced) | N | Y | N | |
Significant difference in technological environments (tool infrastructures, test environments, COTS products) and/or architectural decisions in different projects | N | N | N | |
Significant difference in the level of cooperation, cooperation history, and/or disharmony among team members, in different projects | N | Y | N | |
Variable types of development (developing new systems/modification of existing systems) undertaken in different projects | N | Y | N | |
Significant difference in contract types (fixed date/fixed price) and/or the level of interaction between contractor and developers in different projects | N | N | N | |
Significant difference in customer cohesion and/or customer variety in different projects | N | N | Y | |
Significant difference in the degree of novelty and/or the level of technology emerging in different projects | N | N | Y | |
Significantly different productivity levels in the teams involved in different projects | Y | N | N | |
Significant difference in the availability of legacy system information in different projects | Y | N | N | |
Significant difference in the level of end-user variety, their availability, and/or their experience with the system in different projects | N | N | N | |
Significant difference in the number of deployed versions of applications, or the number of deployed applications in different projects | Y | Y | N | |
Significant difference in importance of user interface in different projects | Y | N | N | |
Significant difference in the rate at which emergent opportunities occur in different projects | Y | Y | Y | |
Significant difference in the importance of status information for the top management in different projects | Y | N | N | |
Significant difference in the level of team members´ skill/knowledge in different projects | Y | N | N | |
Organization | Significant difference in sizes of distributed organizations | N | -- | -- |
Significant difference in structure/culture of distributed organizations | Y | -- | -- | |
Significant difference in maturity levels of distributed organizations | N | -- | -- | |
Significantly different levels of resource constraints in different organizations | N | -- | -- | |
Significant difference in the level of commitment, support, expertise, availability, accomplishment, and/or continuity among the managers | N | -- | -- | |
Significantly different crucial forces behind the successful development of a project in different organizations | Y | -- | -- | |
Significantly different product types in different organizations | Y | -- | -- | |
Significant difference in standards or legal aspects | N | -- | -- | |
Significantly different stability levels in different organizations | N | -- | -- | |
Significantly different innovation levels in different organizations | N | -- | -- |
Appendix L
Appendix L.1. Session 1
- General (~15 min): Focusing on subjects’ personal history and details of the projects performed in the specific unit;
- Explaining the study (~30 min): Focusing on the goals of the study, the proposed approach for creating the process line, how the subjects will benefit from the results, and guaranteeing the confidentiality and anonymity of the gathered data;
- Problems and challenges (~15 min): Focusing on the main problems and challenges that subjects face in projects.
Appendix L.2. Session 2
- Scrum process (~60 min): Focusing on how the subjects perform Scrum activities (including Portfolio Planning, Product Planning, Release Planning, Sprint Planning, Sprint Execution, Grooming, Sprint Review, and Sprint Retrospective), what roles are involved in each activity, what products are produced or received in each activity, the other activities performed, guidance/techniques used in each activity, and the problems faced when performing each activity.
Appendix L.3. Session 3
- Process line created (~25 min): Focusing on explaining the existing process line along with the process line proposed for the organization;
- Target process created for the specific project (~25 min): Focusing on explaining the specific process instantiated from the process line, and the mapping relationships between the problems of the unit and the practices defined in the proposed process;
- Subjects’ feedback on the proposed approach (~10 min);
- Ending (~5 min): Focusing on finishing with a brief summary, thanking the subject, and scheduling a feedback after applying some of the proposed practices.
Appendix M
Factor Class | Situational Factors | Value Assigned |
---|---|---|
Personnel | Number of Teams | Normal |
Culture | (Collaborative, Harmonious) | |
Experience | (Experienced, Unfamiliar) | |
Cohesion | (Normal, Normal) | |
Skill and Knowledge | Adequate | |
Commitment | Adequate | |
Requirements | Changeability | (High, Normal) |
Standards | Adequate | |
Application | Degree of Risk | High |
Complexity | Normal | |
Size | Normal | |
Connectivity | High | |
Reuse | High | |
Deployment Profile | High | |
Quality | High | |
Organization | Maturity | Adequate |
Management Commitment and Expertise | (Adequate, Adequate) | |
Facilities | Adequate | |
Operation | End-User Experience | Adequate |
Business | Time to Market | Normal |
External Dependencies | Normal | |
Opportunities | Normal | |
Business Drivers | Financial considerations and Maximizing customer satisfaction | |
Magnitude of Potential Loss | Normal |
Appendix N
Appendix O
Appendix P
Project | Problems and Solutions |
---|---|
A.1 | Problem: The capacity of team to complete work and then forecasting PBIs deliverable in the upcoming sprint is determined by an experienced person who has enough knowledge about capabilities of team members. Any change in the structure of the team can threat estimations performed. Solution: Specific guidances, including Velocity, Planning poker, and Story point are proposed. |
Problem: User stories defined in the product backlog are not split into tasks. Solution: It is proposed that Sprint goal be defined for each sprint. Furthermore, specific process elements, including Sprint backlog, and Task board are proposed. | |
Problem: Due to time constraints, unit testing is not performed; only black-box testing is automatically performed for validating PBIs implemented through the current sprint. Solution: Specific guidances, including Definition of ready and Definition of Done are proposed. | |
Problem: The size of PBIs is not properly estimated. Solution: Planning poker is proposed. | |
A.2 | Problem: Some of the top-most PBIs are not groomed into a ready state. Solution: The guidance “Definition of ready criteria” is proposed. |
Problem: The capacity of team to complete work and then forecasting PBIs deliverable in the upcoming sprint is determined by an experienced person who has enough knowledge about capabilities of team members. Any change in the structure of the team can threat estimations performed. Solution: Specific guidances, including Velocity, Planning poker, and Story point are proposed. | |
Problem: The size of PBIs is not properly estimated. Solution: Specific guidances, including Planning poker and Story point are proposed. | |
Problem: PBIs implemented in the current sprint are not properly presented to the product owner in sprint reviews. Solution: Definition of Done is proposed. Furthermore, defining the “How to Demo” template for specifying contents that should be presented throughout sprint review meetings can help solve the problem. | |
A.3 | Problem: Prioritizing PBIs are not performed properly. Solution: Considering Cost, Value, Knowledge, and Risk factors for prioritizing PBIs is proposed. |
Problem: The product backlog is not groomed in just-enough and just-in-time manner. Solution: Specific process elements, including Definition of ready, Planning Poker, and Task board are proposed. | |
A.4 | Problem: The size of PBIs is not properly estimated. Solution: Specific guidances, including Planning poker and Story point are proposed. |
Problem: There are problems with intra-team knowledge sharing. Solution: Guidances such as “Moving people around” and “Preparing documents of project status” are proposed. | |
Problem: The capabilities of team members in writing high-quality code are significantly different from each other. Solution: “Training team members on code quality by a coach” guidance is proposed. |
Appendix Q
No. | Current Work Status | Highest Academic Degree | Number of Projects Participated in | Experience in Using Scrum | Passed University Courses Related to Process Engineering Including Scrum |
---|---|---|---|---|---|
1 | Professional | MSc | 10+ | Yes | Yes |
2 | Professional | MSc | 1–2 | Yes | Yes |
3 | Academic | MSc | 8–10 | Yes | Yes |
4 | Academic | MSc | 3–4 | No | Yes |
5 | Professional | MSc | 5–7 | Yes | Yes |
6 | Academic | MSc | 1–2 | No | Yes |
7 | Professional | MSc | 10+ | Yes | Yes |
8 | Professional | MSc | 3–4 | No | Yes |
9 | Academic | MSc | 8–10 | Yes | Yes |
10 | Professional | MSc | 8–10 | Yes | Yes |
11 | Professional | MSc | 10+ | Yes | Yes |
12 | Academic | PhD | 8–10 | Yes | Yes |
13 | Academic | MSc | 10+ | Yes | Yes |
14 | Professional | MSc | 5–7 | Yes | Yes |
Appendix R
Appendix S
Strongly Agree | Agree | Neutral | Strongly Disagree | Disagree | Not Sure | Min | Max | Avg. | ||
---|---|---|---|---|---|---|---|---|---|---|
Sprint Execution | Scrum Team | 9 | 2 | 0 | 0 | 0 | 0 | 4 | 5 | 4.82 |
Sprint Goal | 9 | 1 | 0 | 0 | 0 | 1 | 0 | 5 | 4.45 | |
Sprint Backlog | 9 | 1 | 0 | 0 | 0 | 1 | 0 | 5 | 4.45 | |
Potentially Shippable Product | 7 | 2 | 1 | 0 | 0 | 1 | 0 | 5 | 4.18 | |
Daily Scrum | 8 | 3 | 0 | 0 | 0 | 0 | 4 | 5 | 4.73 | |
Task Performance | 6 | 3 | 1 | 0 | 0 | 1 | 0 | 5 | 4.09 | |
Flow Management | 4 | 2 | 1 | 0 | 0 | 4 | 0 | 5 | 2.82 | |
Task Planning | 6 | 4 | 1 | 0 | 0 | 0 | 3 | 5 | 4.45 | |
Communicating | 8 | 0 | 2 | 0 | 0 | 1 | 0 | 5 | 4.18 | |
Daily Scrum | Scrum Team | 8 | 3 | 0 | 0 | 0 | 0 | 4 | 5 | 4.73 |
Other People | 2 | 3 | 4 | 1 | 0 | 1 | 0 | 5 | 3.27 | |
Parking Lot | 1 | 4 | 6 | 0 | 0 | 0 | 3 | 5 | 3.54 | |
Three Questions | 5 | 3 | 3 | 0 | 0 | 0 | 3 | 5 | 4.18 | |
Task Performance | Pair Programming | 2 | 4 | 3 | 0 | 2 | 0 | 1 | 5 | 3.36 |
TDD | 8 | 1 | 2 | 0 | 0 | 0 | 3 | 5 | 4.54 | |
Refactoring | 8 | 3 | 0 | 0 | 0 | 0 | 4 | 5 | 4.73 | |
Collective Ownership | 6 | 3 | 2 | 0 | 0 | 0 | 3 | 5 | 4.36 | |
Continuous Integration | 10 | 1 | 0 | 0 | 0 | 0 | 4 | 5 | 4.91 | |
Communicating | Sprint Burndown Chart | 3 | 5 | 2 | 0 | 0 | 1 | 0 | 5 | 3.73 |
Task Board | 9 | 2 | 0 | 0 | 0 | 0 | 4 | 5 | 4.82 | |
Burndown Chart | Bar Chart | 2 | 2 | 5 | 0 | 0 | 2 | 0 | 5 | 3 |
Effort-hours | 2 | 1 | 5 | 1 | 1 | 1 | 0 | 5 | 2.91 | |
Total Average = 4.1 |
Appendix T
- Introductory document: The experiment goal and the tasks of the study were explained through this document.
- Description of hypothetical situation
- List of situational factors along with range of values
- Transformations package: Transformations implemented for resolving the variabilities of Sprint Execution were sent to the subjects via this package.
- Voice-recorded power point presentation: A voice-recorded presentation was sent to the subjects before the experiment execution. Through this file, we explained the subjects how to install and configure the tool. We also provide subjects with an example of assigning values to situational factors and executing transformations for resolving the variabilities of Release Planning.
- Pre-questionnaire: The demographic data were gathered through this questionnaire.
- Post-questionnaire: The perceived usefulness and ease of use were quantified through this questionnaire. Furthermore, the suitability of the process elements identified by the tool was measured via this questionnaire.
Appendix U
Number of Subjects Identifying the Process Element | Different Words Used | ||
---|---|---|---|
Sprint Execution | Scrum Team | 14 | ----- |
Sprint Goal | 4 | ----- | |
Sprint Backlog | 8 | ----- | |
Potentially Shippable Product | 9 | Potentially shippable increment, Deployable product, Increment, Potential product, Working application | |
Daily Scrum | 10 | Daily meeting, face to face conversations | |
Task Performance | 14 | Develop task, Development | |
Flow Management | 4 | Review and Revise | |
Task Planning | 5 | ----- | |
Communicating | 3 | ----- | |
Daily Scrum | Scrum Team | 10 | ----- |
Other People | 1 | ----- | |
Parking Lot | 1 | ----- | |
Three Questions | 0 | ----- | |
Task Performance | Pair Programming | 3 | ----- |
TDD | 2 | ----- | |
Refactoring | 4 | ----- | |
Collective Ownership | 3 | ----- | |
Continuous Integration | 4 | ----- | |
Communicating | Sprint Burndown Chart | 0 | ----- |
Task Board | 2 | ----- | |
Burndown Chart | Bar Chart | 0 | ----- |
Effort-hours | 0 | ----- | |
Average = 32.79% |
References
- Acuna, S.T.; Antonio, A.D.; Ferre, X.; Lopez, M.; Mate, L. The Software Process: Modelling, Evaluation and Improvement. In Handbook of Software Engineering and Knowledge Engineering; Chang, S.K., Ed.; World Scientific: Singapore, 2000; pp. 193–238. [Google Scholar] [CrossRef] [Green Version]
- Pedreira, O.; Piattini, M.; Luaces, M.R.; Brisaboa, N.R. A systematic review of software process tailoring. ACM SIGSOFT Softw. Eng. Notes 2007, 32, 1–6. [Google Scholar] [CrossRef]
- Mirbel, I.; Ralyté, J. Situational method engineering: Combining assembly-based and roadmap-driven approaches. Requir. Eng. 2006, 11, 58–78. [Google Scholar] [CrossRef]
- Agh, H.; Ramsin, R. A pattern-based model-driven approach for situational method engineering. Inf. Softw. Technol. 2016, 78, 95–120. [Google Scholar] [CrossRef]
- Ocampo, A.; Bella, F.; Münch, J. Software process commonality analysis. Softw. Proc. Improv. Pract. 2005, 10, 273–285. [Google Scholar] [CrossRef] [Green Version]
- Washizaki, H. Building Software Process Line Architectures from Bottom Up. In Proceedings of the 7th International Conference on Product-Focused Software Process Improvement (PROFES), Amsterdam, The Netherlands, 12–14 June 2006; pp. 415–421. [Google Scholar] [CrossRef]
- Jaufman, O.; Münch, J. Acquisition of a project-specific process. In Proceedings of the 6th International Conference on Product-Focused Software Process Improvement (PROFES), Oulu, Finland, 13–18 June 2005; pp. 328–342. [Google Scholar] [CrossRef] [Green Version]
- Pohl, K.; Böckle, G.; van der Linden, F. Software Product Line Engineering: Foundations, Principles and Techniques; Springer: Berlin/Heidelberg, Germany, 2005. [Google Scholar]
- Northrop, L.M. SEI’s Software Product Line Tenets. IEEE Softw. 2002, 19, 32–40. [Google Scholar] [CrossRef]
- Hurtado Alegría, J.A.; Bastarrica, M.C. Building Software Process Lines with CASPER. In Proceedings of the International Conference on Software and Systems Process (ICSSP), Zurich, Switzerland, 2–3 June 2012; pp. 170–179. [Google Scholar] [CrossRef]
- Armbrust, O.; Katahira, M.; Miyamoto, Y.; Münch, J.; Nakao, H.; Ocampo, A. Scoping Software Process Lines. Softw. Proc. Improv. Pract. 2009, 14, 181–197. [Google Scholar] [CrossRef]
- Hurtado, J.A.; Bastarrica, M.C.; Ochoa, S.F.; Simmonds, J. MDE Software Process Lines in Small Companies. J. Syst. Softw. 2013, 86, 1153–1171. [Google Scholar] [CrossRef]
- Agh, H.; Garcia, F.; Piattini, M.; Ramsin, R. Requirements for Adopting Software Process Lines. J. Syst. Softw. 2020, 164, 1–21. [Google Scholar] [CrossRef]
- Agh, H.; Ramsin, R. Towards a generic framework for model-driven engineering of software process lines. In Proceedings of the 5th European Conference on the Engineering of Computer-Based Systems (ECBS), Larnaca, Cyprus, 31 August–1 September 2017; p. 19. [Google Scholar] [CrossRef]
- Atkinson, C.; Gerbig, R.; Kühne, T. Comparing multi-level modeling approaches. In Proceedings of the Workshop on Multi-Level Modelling (MULTI@MoDELS), Valencia, Spain, 28 September 2014; pp. 53–61. [Google Scholar]
- Clark, T.; Gonzalez-Perez, C.; Henderson-Sellers, B. A foundation for multi-level modelling. In Proceedings of the Workshop on Multi-Level Modelling (MULTI@MoDELS), Valencia, Spain, 28 September 2014; pp. 43–52. [Google Scholar]
- de Lara, J.; Guerra, E. Multi-level model product lines. In Proceedings of the 23rd International Conference on Fundamental Approaches to Software Engineering (FASE), Dublin, Ireland, 25–30 April 2020; pp. 161–181. [Google Scholar]
- Czarnecki, K.; Helsen, S.; Eisenecker, U. Staged configuration using feature models. In Proceedings of the 3rd International Conference on Software Product Lines (SPLC), Boston, MA, USA, 30 August–2 September 2004; pp. 266–283. [Google Scholar] [CrossRef] [Green Version]
- White, J.; Dougherty, B.; Schmidt, D.C.; Benavides Cuevas, D.F. Automated reasoning for multi-step feature model configuration problems. In Proceedings of the 13th International Conference on Software Product Lines (SPLC), San Francisco, CA, USA, 24–28 August 2009; pp. 11–20. [Google Scholar]
- Arboleda, H.; Casallas, R.; Royer, J.C. Dealing with fine-grained configurations in model-driven SPLs. In Proceedings of the 13th International Conference on Software Product Lines (SPLC), San Francisco, CA, USA, 24–28 August 2009; pp. 1–10. [Google Scholar]
- Barreto, A.; Duarte, E.; Rocha, A.R.; Murta, L. Supporting the Definition of Software Processes at Consulting Organizations via Software Process Lines. In Proceedings of the 7th International Conference on the Quality of Information and Communications Technology (QUATIC), Porto, Portugal, 29 September–2 October 2010; pp. 15–24. [Google Scholar] [CrossRef]
- Kuhrmann, M.; Méndez Fernández, D.; Ternité, T. On the use of variability operations in the V-Modell XT software process line. J. Softw. Evol. Proc. 2016, 28, 241–253. [Google Scholar] [CrossRef] [Green Version]
- Kuhrmann, M.; Ternité, T.; Friedrich, J.; Rausch, A.; Broy, M. Flexible software process lines in practice: A metamodel-based approach to effectively construct and manage families of software process models. J. Syst. Softw. 2016, 121, 49–71. [Google Scholar] [CrossRef]
- Blum, F.R.; Simmonds, J.; Bastarrica, M.C. The v-algorithm for discovering software process lines. J. Softw. Evol. Proc. 2016, 28, 783–799. [Google Scholar] [CrossRef]
- Aleixo, F.A.; Freire, M.A.; dos Santos, W.C.; Kulesza, U. Automating the Variability Management, Customization and Deployment of Software Processes: A Model-Driven Approach. In Proceedings of the 12th International Conference on Enterprise Information Systems (ICEIS), Funchal, Portugal, 8–12 June 2010; pp. 372–387. [Google Scholar] [CrossRef]
- Simmonds, J.; Perovich, D.; Bastarrica, M.C.; Silvestre, L. A Megamodel for Software Process Line Modeling and Evolution. In Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems (MoDELS), Ottawa, ON, Canada, 27 September–2 October 2015; pp. 406–415. [Google Scholar] [CrossRef]
- Silvestre, L.; Bastarrica, M.C.; Ochoa, S.F. A usable MDE-based tool for software process tailoring. In Proceedings of the Poster and Demo Session co-located with the 18th International Conference on Model Driven Engineering Languages and Systems (P&D@MoDELS), Ottawa, ON, Canada, 27 September 2015; pp. 36–39. [Google Scholar]
- Costa, D.M.; Teixeira, E.N.; Werner, C.M. Odyssey-ProcessCase: A Case-Based Software Process Line Approach. In Proceedings of the 17th Brazilian Symposium on Software Quality (SBQS), Curitiba, Brazil, 17–19 October 2018; pp. 170–179. [Google Scholar] [CrossRef]
- Teixeira, E.N.; Vasconcelos, A.; Werner, C. OdysseyProcessReuse- A Component-based Software Process Line Approach. In Proceedings of the 21st International Conference on Enterprise Information Systems (ICEIS), Heraklion, Greece, 3–5 May 2019; pp. 231–238. [Google Scholar]
- Costa, D.M.; Teixeira, E.N.; Werner, C.M. Evaluating the Usefulness and Ease of Use of a Software Process Line Tool. In Proceedings of the 23rd Iberoamerican Conference on Software Engineering (CIbSE), Curitiba, Brazil, 9–13 November 2020; pp. 1–14. [Google Scholar]
- Casare, S.; Ziadi, T.; Brandão, A.A.F.; Guessoum, Z. Meduse: An approach for tailoring software development process. In Proceedings of the 21st International Conference on Engineering of Complex Computer Systems (ICECCS), Dubai, United Arab Emirates, 6–8 November 2016; pp. 197–200. [Google Scholar] [CrossRef] [Green Version]
- Javed, M.A.; Gallina, B. Safety-oriented process line engineering via seamless integration between EPF composer and BVR tool. In Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC), Gothenburg, Sweden, 10–14 September 2018; pp. 23–28. [Google Scholar] [CrossRef]
- Ruiz, P.; Agredo, V.; Camacho, C.; Hurtado, J. A canonical software process family based on the Unified Process. Sci. Tech. 2018, 23, 369–380. [Google Scholar]
- Arcia, C.; Paludo, M.; Malucelli, A.; Reinehr, S. A software process line for service-oriented applications. In Proceedings of the 30th Symposium on Applied Computing (SAC), Salamanca, Spain, 13–17 April 2015; pp. 1680–1687. [Google Scholar]
- Ocampo, A.; Soto, M. Connecting the rationale for changes to the evolution of a process. In Proceedings of the 8th International Conference on Product-Focused Software Process Improvement (PROFES), Riga, Latvia, 2–4 July 2007; pp. 160–174. [Google Scholar] [CrossRef]
- Murguzur, A.; Sagardui, G.; Intxausti, K.; Trujillo, S. Process variability through automated late selection of fragments. In Proceedings of the 25th International Conference on Advanced Information Systems Engineering (CAiSE), Valencia, Spain, 17–21 June 2013; pp. 371–385. [Google Scholar] [CrossRef]
- Rosemann, M.; van der Aalst, W.M. A configurable reference modelling language. Inf. Syst. 2007, 32, 1–23. [Google Scholar] [CrossRef]
- Meinicke, J.; Thüm, T.; Schröter, R.; Benduhn, F.; Leich, T.; Saake, G. Mastering Software Variability with FeatureIDE; Springer: Berlin/Heidelberg, Germany, 2017. [Google Scholar]
- Golpayegani, F.; Azadbakht, K.; Ramsin, R. Towards process lines for agent-oriented requirements engineering. In Proceedings of the International Conference on Computer as a Tool (EUROCON), Zagreb, Croatia, 1–4 July 2013; pp. 550–557. [Google Scholar] [CrossRef]
- Sozen, N. Use of Model-Based Software Product Line Engineering for Certifiable Avionics Software Development. Doctoral Dissertation, École Polytechnique de Montréal, Montreal, QC, Canada, 2016. [Google Scholar]
- Jahanbanifar, A. A Model-Based Framework for System Configuration Management. Doctoral Dissertation, Concordia University, Montreal, QC, Canada, 2016. [Google Scholar]
- Oliveira, A.L.D.; Braga, R.T.; Masiero, P.C.; Papadopoulos, Y.; Habli, I.; Kelly, T. Model-based safety analysis of software product lines. Int. J. Embed. Syst. 2016, 8, 412–426. [Google Scholar] [CrossRef]
- Verdier, F.; Seriai, A.D.; Tiam, R.T. Combining model-driven architecture and software product line engineering: Reuse of platform-specific assets. In Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), Funchal, Portugal, 22–24 January 2018; pp. 430–454. [Google Scholar] [CrossRef]
- Rombach, D. Integrated software process and product lines. In Unifying the Software Process Spectrum; Li, M., Boehm, B., Osterweil, L.J., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2005; Volume 3840, pp. 83–90. [Google Scholar] [CrossRef]
- Czarnecki, K.; Eisenecker, U.W. Generative Programming: Methods, Tools and Applications; Addison-Wesley: New York, NY, USA, 2000. [Google Scholar]
- Van der Linden, F.J.; Schmid, K.; Rommes, E. Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2007. [Google Scholar]
- Object Management Group. Software and Systems Process Engineering Metamodel Specification-Version 2.0; OMG: Milford, MA, USA, 2008; Available online: https://www.omg.org/spec/SPEM/About-SPEM/ (accessed on 22 November 2022).
- Beck, K.; Andres, C. Extreme Programming Explained: Embrace Change, 2nd ed.; Addison-Wesley: Boston, MA, USA, 2004. [Google Scholar]
- DSDM Consortium. The DSDM Project Framework Handbook; Agile Business Consortium: Ashford, Kent, UK, 2014; Available online: https://www.agilebusiness.org/dsdm-project-framework.html (accessed on 22 November 2022).
- Henderson-Sellers, B.; Ralyté, J.; Rossi, M.; Ågerfalk, P.J. Situational Method Engineering; Springer: Berlin/Heidelberg, Germany, 2014. [Google Scholar]
- Clarke, P.; O’Connor, R.V. The situational factors that affect the software development process: Towards a comprehensive reference framework. Inf. Softw. Technol. 2012, 54, 433–447. [Google Scholar] [CrossRef] [Green Version]
- Ally, M.; Darroch, F.; Toleman, M. A framework for understanding the factors influencing pair programming success. In Proceedings of the 6th International Conference on Extreme Programming and Agile Processes in Software Engineering (XP), Sheffield, UK, 18–23 June 2005; pp. 82–91. [Google Scholar] [CrossRef] [Green Version]
- Shakeri, Z.; Alipour, A.; Ramsin, R. Enhancing tool support for situational engineering of agile methodologies in Eclipse. In Proceedings of the 10th International Conference on Software Engineering Research, Management and Applications (SERA), Shanghai, China, 30 May–1 June 2012; pp. 141–152. [Google Scholar] [CrossRef]
- Kruchten, P. Contextualizing agile software development. J. Softw. Evol. Proc. 2013, 25, 351–361. [Google Scholar] [CrossRef]
- Medini QVT: IKV++ Technologies. Available online: http://www.mdetools.com/detail.php?toolId=11 (accessed on 22 November 2022).
- Agh, H.; Ramsin, R. Scrum metaprocess: A process line approach for customizing Scrum. Softw. Qual. J. 2021, 29, 337–379. [Google Scholar] [CrossRef]
- Simmonds, J.; Bastarrica, M.C.; Silvestre, L.; Quispe, A. Variability in Software Process Models: Requirements for Adoption in Industrial Settings. In Proceedings of the 4th International Workshop on Product LinE Approaches in Software Engineering (PLEASE), San Francisco, CA, USA, 20 May 2013; pp. 33–36. [Google Scholar] [CrossRef]
- Martínez-Ruiz, T.; García, F.; Piattini, M.; Munch, J. Modelling software process variability: An empirical study. IET Softw. 2011, 5, 172–187. [Google Scholar] [CrossRef]
- Simmonds, J.; Bastarrica, M.C. Modeling Variability in Software Process Lines; Technical Report; University of Chile: Santiago, Chile, 2011. [Google Scholar]
- van der Linden, F.; Schmid, K.; Rommes, E. Software Product Lines in Action; Springer: Berlin/Heidelberg, Germany, 2007. [Google Scholar]
- Assunção, W.K.; Lopez-Herrejon, R.E.; Linsbauer, L.; Vergilio, S.R.; Egyed, A. Reengineering legacy applications into software product lines: A systematic mapping. Empir. Softw. Eng. 2017, 22, 2972–3016. [Google Scholar] [CrossRef]
- Xue, Y. Reengineering legacy software products into software product line based on automatic variability analysis. In Proceedings of the 33rd International Conference on Software Engineering (ICSE), Honolulu, HI, USA, 21–28 May 2011; pp. 1114–1117. [Google Scholar] [CrossRef]
- Ambler, S.W.; Lines, M. Disciplined Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the Enterprise; IBM Press: Indianapolis, IN, USA, 2012. [Google Scholar]
- Agh, H.; Ramsin, R. A Model-Driven Approach for SPrLE—Appendices; Mendeley Data. 2019. Available online: https://data.mendeley.com/datasets/r62gjghx52/1 (accessed on 22 November 2022).
- Niknafs, A.; Ramsin, R. Computer-Aided Method Engineering: An Analysis of Existing Environments. In Proceedings of the 20th International Conference on Advanced Information Systems Engineering (CAiSE), Montpellier, France, 16–20 June 2008; pp. 525–540. [Google Scholar] [CrossRef]
- Kornyshova, E.; Deneckere, R.; Salinesi, C. Method Chunks Selection by Multicriteria Techniques: An extension of the Assembly-based Approach. In Proceedings of the IFIP WG 8.1 Working Conference, Geneva, Switzerland, 12–14 September 2007; pp. 64–78. [Google Scholar] [CrossRef] [Green Version]
- Runeson, P.; Host, M.; Rainer, A.; Regnell, B. Case Study Research in Software Engineering: Guidelines and Examples; John Wiley & Sons: Hoboken, NJ, USA, 2012. [Google Scholar]
- Lindvall, M.; Basili, V.; Boehm, B.; Costa, P.; Dangle, K.; Shull, F.; Tesoriero, R.; Williams, L.; Zelkowitz, M. Empirical findings in agile methods. In Proceedings of the 2nd XP Universe and 1st Agile Universe Conference (XP/Agile Universe), Chicago, IL, USA, 4–7 August 2002; pp. 197–207. [Google Scholar] [CrossRef] [Green Version]
- Campanelli, A.S.; Parreiras, F.S. Agile methods tailoring: A systematic literature review. J. Syst. Softw. 2015, 110, 85–100. [Google Scholar] [CrossRef]
- Fitzgerald, B.; Hartnett, G.; Conboy, K. Customising agile methods to software practices at Intel Shannon. Eur. J. Inf. Syst. 2006, 15, 200–213. [Google Scholar] [CrossRef]
- Stankovic, D.; Nikolic, V.; Djordjevic, M.; Cao, D.B. A survey study of critical success factors in agile software projects in former Yugoslavia IT companies. J. Syst. Softw. 2013, 86, 1663–1678. [Google Scholar] [CrossRef]
- Hoda, R.; Kruchten, P.; Noble, J.; Marshall, S. Agility in context. In Proceedings of the 25th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Reno, NV, USA, 17–21 October 2010; pp. 74–88. [Google Scholar] [CrossRef]
- Hodgetts, P. Refactoring the development process: Experiences with the incremental adoption of agile practices. In Proceedings of the 15th Australasian Database Conference (ADC), Dunedin, New Zealand, 18–22 January 2004; pp. 106–113. [Google Scholar] [CrossRef]
- Gill, A.Q.; Henderson-Sellers, B. Measuring agility and adoptability of agile methods: A 4-dimensional analytical tool. In Proceedings of the IADIS International Conference on Applied Computing, San Sebastian, Spain, 25–28 February 2006; pp. 503–507. [Google Scholar]
- Jyothi, V.E.; Rao, K.N. Effective Implementation of Agile Practices: In coordination with Lean Kanban. Int. J. Comput. Sci. Eng. 2012, 4, 87–91. [Google Scholar]
- Law, A.; Charron, R. Effects of agile practices on social factors. In Proceedings of the Workshop on Human and Social Factors of Software Engineering (HSSE), St. Louis, MO, USA, 16 May 2005; pp. 1–5. [Google Scholar] [CrossRef]
- Cervera, M.; Albert, M.; Torres, V.; Pelechano, V. On the usefulness and ease of use of a model-driven Method Engineering approach. Inf. Syst. 2015, 50, 36–50. [Google Scholar] [CrossRef] [Green Version]
- Hornbæk, K. Current practice in measuring usability: Challenges to usability studies and research. Int. J. Hum. Comput. Stud. 2006, 64, 79–102. [Google Scholar] [CrossRef]
- Davis, F.D. Perceived usefulness, perceived ease of use, and user acceptance of information technology. MIS Quart. 1989, 13, 319–340. [Google Scholar] [CrossRef] [Green Version]
- Lee, Y.; Kozar, K.A.; Larsen, K.R. The technology acceptance model: Past, present, and future. Commun. Assoc. Inf. Syst. 2003, 12, 752–780. [Google Scholar] [CrossRef]
- Wohlin, C.; Runeson, P.; Höst, M.; Ohlsson, M.C.; Regnell, B.; Wesslén, A. Experimentation in Software Engineering; Springer: Berlin/Heidelberg, Germany, 2012. [Google Scholar]
- Falessi, D.; Juristo, N.; Wohlin, C.; Turhan, B.; Münch, J.; Jedlitschka, A.; Oivo, M. Empirical software engineering experts on the use of students and professionals in experiments. Empir. Softw. Eng. 2018, 23, 452–489. [Google Scholar] [CrossRef]
Project Selected | Number of Development Teams Involved | |
---|---|---|
A.1 | Messaging | 2 |
A.2 | Business Support System | 2 |
A.3 | Premium Content Services | 1 |
A.4 | Cloud SMS Services | 2 |
Factor Class | Situational Factors | Value | Explanation |
---|---|---|---|
Personnel | Number of Teams | Normal/High | Number of development teams. |
Culture (two-valued factor) [51,52,68] | (Collaborative/Non-collaborative—Harmonious/Disharmonious) | First value: Level of collaboration among team members. Second value: Level of interpersonal conflicts. | |
Experience (two-valued factor) [51,53,69,70] | (Experienced/Inexperienced— Familiar/Unfamiliar) | First value: Level of developers’ business knowledge. Second value: Level of developers’ familiarity with the development methodology. | |
Cohesion (two-valued factor) [51,53,54,71] | (Low/Normal– Normal/High) | First value: Percentage of team members who have worked together in the past. Second value: Rate at which people leave the team. | |
Skill and knowledge [51,53,71,72,73] | Inadequate/Adequate | Level of developers’ technical knowledge and skill. | |
Commitment [51,71] | Inadequate/Adequate | Level of commitment to the project among team members. | |
Requirements | Changeability (two-valued factor) [51,68,69] | (Normal/High– Normal/High) | First value: Rate at which user and system requirements are changed. Second value: Rate of scope creep. |
Standards [51] | Inadequate/Adequate | General quality of user requirements. | |
Application | Degree of Risk [51,70] | Normal/High | Level of project risks. |
Complexity [51,52,69,70,73] | Normal/High | Level of application complexity. | |
Size [51,53,54,74] | Normal/Large | Relative application size. | |
Connectivity [51,53] | Normal/High | Level of dependence on existing/future systems | |
Reuse [51,75] | Normal/High | Extent of utilization of application components in other projects. | |
Deployment Profile [51,54,70] | Normal/High | Number of applications (or different versions of the application) to be deployed. | |
Quality [51,52,53,70,73] | Normal/High | Level of product quality required. | |
Organization | Maturity [51,54,71] | Inadequate/Adequate | Level of organization maturity. |
Management Commitment and Expertise (two-valued factor) [51,52,69,71] | (Inadequate/Adequate– Inadequate/Adequate) | First value: Level of management’s commitment to the project. Second value: Level of management’s knowledge and skill. | |
Facilities [51,71] | Inadequate/Adequate | Level of organizational support for providing the facilities required. | |
Operation | End-User Experience [51,53,69] | Inadequate/Adequate | Level of end-user familiarity with the application type. |
Business | Time to Market [51,53,73,76] | Short/Normal | Available time for building the first version of the shippable product. |
External Dependencies [51] | Normal/High | Number of parties involved in building the product (multisite development). | |
Opportunities [51] | Normal/High | Rate at which emergent opportunities occur. | |
Business Drivers [51,53] | Financial considerations/Marketing concerns/Minimizing costs/Maximizing customer satisfaction | Crucial forces behind successful development of the project. | |
Magnitude of Potential Loss [51,53] | Normal/High | Effect of project failure on customer relations, financial health, competitive position, organizational reputation, organizational survival, or market share. |
Usefulness | Ease of Use | |||
---|---|---|---|---|
Subjective Measures | Objective Measure | Subjective Measure | ||
Perceived usefulness | Accuracy | Completion time (Efficiency) | Perceived ease of use | Complexity management |
Performance | Understandability | |||
Completeness of target process (Effectiveness) | Easy to use |
Independent Variables | Dependent Variables |
---|---|
SPrLE approach {Ad hoc, Proposed approach} | Perceived usefulness Perceived ease of use Efficiency Effectiveness |
Min | Max | Avg. | |
---|---|---|---|
Accuracy | 3 | 5 | 4.14 |
Performance | 3 | 5 | 4.28 |
Total Average | 4.21 |
Min | Max | Avg. | |
---|---|---|---|
Complexity Management | 4 | 5 | 4.36 |
Understandability | 3 | 5 | 4.14 |
Easy to Use | 3 | 5 | 4.07 |
Total Average | 4.19 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Agh, H.; Ramsin, R. A Model-Driven Approach for Software Process Line Engineering. Software 2023, 2, 21-70. https://doi.org/10.3390/software2010003
Agh H, Ramsin R. A Model-Driven Approach for Software Process Line Engineering. Software. 2023; 2(1):21-70. https://doi.org/10.3390/software2010003
Chicago/Turabian StyleAgh, Halimeh, and Raman Ramsin. 2023. "A Model-Driven Approach for Software Process Line Engineering" Software 2, no. 1: 21-70. https://doi.org/10.3390/software2010003
APA StyleAgh, H., & Ramsin, R. (2023). A Model-Driven Approach for Software Process Line Engineering. Software, 2(1), 21-70. https://doi.org/10.3390/software2010003