MDSE In Practice - Chapter 5 - Reading Notes
Chapter 5 - Integration of MDSE In Your Development Process
- MDSE
- Is process agnostic
- Does not define which models must be used.
- Integrating MDSE can be complex. One code generator a MDSE integration does not make.
5.1 Introducing MDS In Your Software Development Process
- Technical and non-technical aspects should be taken into account.
- Major challenges
- The imbalanced distribution of efforts & rewards among team members.
- The lack of socio-technical congruence.
5.1.1 Pains & Gains Of Software Modeling
- If the pains of modeling are separated from the gains of modeling, in particular with respect to individual staff. Those that are subjectively burdened with the pains may doubt that their effort is worthwhile.
- Therefore, when the work distribution among the members separates the pains and gains of modeling, we must adopt policies that recognize (and compensate for) those differences.
5.1.2 Socio-Technical Congruence Of The Development Process
- The introduction of MDSE can bring in changes, both technical and organizational. These changes may disrupt the social elements of the team.
- Depending on the starting point and the desired destination, the introduction may require a sheperding, perhaps an evolving one to move the technical and social aspects and avoid conflict.
5.2 Traditional Development Processes and MDSE
- Traditional processes are already model based.
- MDSE brings the possibility of going from model-based to model-driven (e.g. to facilitate the automation of the transition between different phases of the development process).
5.3 Agile And MDSE
- Agile criticism of MDSE; Models
- don't run (i.e. they are not working software).
- are just documentation
- require extra work & alignment
- Counters to the above
- models can be executable
- active part of implementation & verification
- design less expensive than construction
- Agile Modeling (AM) as a synthesis of modeling and agile practices. Principles:
- Model with purpose
- Travel light
- Multiple models
- Rapid feedback
- Favor executable specifications
- Embrace change
- Incremental change
- Working software is your primary goal.
- Enabling the next effort is your secondary goal
- Agile practices could be applied to modeling
5.4 Domain-Driven Design & MDSE
- MDSE can be considered a framework that provides techniques for DDD.
- MDSE complements DDD by helping developers to benefit even more from the domain models.
5.5 Test-Driven Development and MDSE
5.5.1 Model -Driven Testing
- Models are used to derive the tests.
5.5.2 Test-Driven Modeling
- Before developing a model excerpt, write the model test.
- Requires that models be executable.
5.6 Software Product Lines and MDSE
- Product line = family of systems
- Aspect of interest - variability modeling
- 2 approaches
- Annotative & Compositional
- FOSD - Feature-Oriented Software Development
Comments
Post a Comment