5. Automating Model Transformations
6.1. Discussion
Research Contributions
Chapter 3 reflected upon the support of the UML metamodel for the functional refinement of use case diagrams. It concluded that the «include» relationship is not adequate for that purpose and proposed an extension to the UML metamodel to bridge that gap with a new relationship: the «refine» relationship. Chapter 3 also proposed a systematization of use case variability modeling, as well as an extension to the UML metamodel in order to model variability in use case diagrams according to that systematization. This chapter proposed to represent variability in use case diagrams through «extend» relationships and stereotypes. It considered that the «extend» relationship is adequate for modeling alternatives and specializations, and a stereotype applicable to use cases for modeling options. This chapter proposed the stereotypes «alternative», «specialization» and «option» to distinguish the three variability types it proposed. It also proposed the stereotype «variant» to mark use cases at higher levels of abstraction before they are realized into alternatives or specializations. The stereotypes «alternative» and «specialization» were recommended to be applicable to the
stereotype «option» to mark use cases that represent options. Chapter 3 also argued about the implications of functionally refining use cases when variability is represented in use case diagrams with use cases connected through «extend» relationships. The approach of this chapter to use case modeling with support for refinement and variability was illustrated with the GoPhone case study. Chapter 3 provided for the following research contributions:
Research contribution 1: an extension to the UML metamodel for the functional
refinement of use case diagrams.
Research contribution 2: an extension to the UML metamodel for variability
modeling in use case diagrams.
These contributions addressed the following research goals, pointed out in Chapter 1:
Research goal 1: providing specific guidelines on how to conduct the activity of use
case modeling with support for functional refinement.
Research goal 2: providing specific guidelines on how to conduct the activity of use
case modeling with support for both functional refinement and software variability.
By representing variability in use case diagrams, chapter 3 provided for variability support in the logical architectures generated with the execution of the 4SRS transition method over those use case diagrams. Chapter 3 formalized use case refinement, which is relevant for the preparation of the recursive method’s execution, as well as it provided for guidelines to determine the use cases that will be the input for the method’s execution (recursive or not) and exposed the implications of executing the method itself when variability is considered in use cases. The extension of the 4SRS proposed in chapter 3 included the formalization of filtering and collapsing techniques applicable to the logical architectures delivered by the method’s execution (recursive or not) and the formalization of the transformation from components to use cases in order to prepare the recursive execution of the method. Chapter 3 provided for the following research contributions:
Research contribution 3: guidelines to determine the use cases that will be the input
6.1. Discussion
Research contribution 4: guidelines for the execution of the 4SRS when variability is
considered in use cases.
Research contribution 5: extension of the 4SRS with filtering and collapsing
techniques applicable to the logical architectures delivered by the method’s execution (recursive or not).
Research contribution 6: formalization of the transformation from components to
use cases in order to prepare the recursive execution of the 4SRS.
These contributions addressed the following research goal, pointed out in Chapter 1:
Research goal 3: supporting the refinement of logical software architectures with
variability support by extending a method applicable for modeling those architectures (the 4SRS).
Chapter 4 concluded that a procedural referential such as the RUP is important to classify patterns, mainly because it gives the classification a notion of software development process, therefore, it proposed a multilevel and multistage pattern classification. That classification provides for the knowledge of the moment from the software development process in which to use specific kinds of patterns. The foundation for the model transformation the 4SRS conducts is given the classification chapter 4 reported of a specific pattern (the MVC) and its incorporation in the structure of the logical architectures the 4SRS generates. Chapter 4 provided for the following research contribution:
Research contribution 7: multilevel and multistage software development pattern
classification based on the RUP and the classification of some software development patterns.
This contribution addressed the following research goal, pointed out in Chapter 1:
Research goal 4: classifying software patterns according to a multilevel and
multistage pattern classification based on the software development process to justify the pattern used for the model transformation the 4SRS guides.
Chapter 5 formalized a transition method (the 4SRS) as a small dedicated (at transitioning from the analysis to the design of) software development process that can be plugged into larger software development processes. For that purpose, chapter 5 extended the SPEM through metamodeling techniques for defining a visual language to model transition methods. Then, it modeled the 4SRS as a method content from the SPEM. Chapter 5 also elaborated on the automation of transition methods by means of a case study with the 4SRS method modeled with the SPEM and automated with the Moderne tool, which was adapted for the purpose. In the context of the Moderne tool, the 4SRS model transformations were defined with the ATL language, as well as some well-formedeness rules or constraints were defined with OCL to validate the models of the 4SRS transition method with the SPEM. Finally, chapter 5 addressed the transformation rules the Moderne tool used to automate some steps of the 4SRS with support for variability. Chapter 5 provided for the following research contributions:
Research contribution 8: visual language to model transition methods by means of
an extension to the SPEM.
Research contribution 9: model of the 4SRS as a method content from the SPEM. Research contribution 10: the Moderne tool adapted to automate the 4SRS
transition method modeled with the SPEM, including ATL model transformation rules for the execution of the 4SRS with support for variability and OCL constraints to validate the models of the 4SRS with the SPEM.
These contributions addressed the following research goals, pointed out in Chapter 1:
Research goal 5: exploring the particularities of modeling transition methods (like
the 4SRS) to formalize them as small dedicated software development processes.
Research goal 6: exemplifying the SPEM modeling of a transition method like the
4SRS as a way to study the benefits of the automatic execution of transition methods as small dedicated software development processes.
Research goal 7: reflecting on the impact of variability over the automation of