The Software Process Engineering Metamodel (SPEM) as defined by the OMG defines a meta-model to allow the representation (modelling) of all known software development processes in a common meta-model. Because any software development processes is not fixed ? they all allow variants and tailoring of the more general processes to specific enterprise oriented processes ? this meta-model allows the modelling of those specific variants of the software development processes.
MODA-TEL has developed a methodology, which can be applied in MDA-based development, and has used SPEM for its definition. According to SPEM a software development process can be defined as collaboration between abstract and active entities called process roles that perform operations called activities on concrete, tangible entities called work products. Process roles can interact or collaborate by exchanging work products and triggering the execution, or enactment, of certain activities. The overall goal of a process is to bring a set of work products to a well-defined state.
Using the SPEM terminology the MODA-TEL methodology identifies phases, each of which consists of activities. The following activities are identified by the MOA-TEL methodology:
1. Project management: aims at organising and monitoring the project;
2. Preliminary preparation: aims at identifying modelling and transformation needs;
3. Detailed preparation: aims at obtaining the modelling and transformation specifications;
4. Infrastructure set-up: aims at making tool support and metadata management facilities ready to use;
5. Project execution: aims at producing the necessary software artefacts and the final products.
The project management phase includes the activities:
(a) Software Development Process (SDP) selection,
(b) Project organisation (identification of roles), and
(c) Quality management.
The preliminary preparation phase includes the activities:
(a) Platform identification,
(b) Modelling language identification,
(c) Transformations identification, and
(d) Traceability strategy definition.
The detailed preparation phase includes the activities:
(a) Specification of modelling languages, and
(b) Specification of transformations.
The infrastructure set-up phase includes the activities:
(a) Tool selection, and
(b) Metadata management.
Finally the execution phase includes the activities:
(a) Requirements analysis,
(b) Modelling,
(c) Verification/Validation,
(d) Transformations,
(e) Coding/Testing,
(f) Integration/Deployment, and
(g) Operation/Maintenance.
An important qualifier for the specific application of the methodology is the type of project that should apply the methodology. The following classification of project types have been identified by MODA-TEL:
1. Engineering: Building an application from scratch, possibly using available components.
2. Integration: Integrating two or more applications. These applications may or may not have been developed according to the MDA principles.
3. Reverse-engineering: An available application that has not been developed according to the MDA principles needs to be reverse-engineered for some reason. It implies that there exist no platform-independent models of the application, and possibly also no usable documentation.
4. Re-engineering project: Modifying an application without changing the target platform. These modifications can range from modifications of the structure of the application to modifications in the details of the application functions.
5. Migration: Porting an application from its current platform to a new one.