public_namespace:mda_approach
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| public_namespace:mda_approach [2007/01/25 13:21] – prudhomme | public_namespace:mda_approach [2007/01/25 13:58] (current) – effacée prudhomme | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== MDA approach ====== | ||
| - | |||
| - | |||
| - | ===== 1 Model-driven development ===== | ||
| - | |||
| - | |||
| - | Development of Web software is still an inefficient and errorprone process. We need integrated techniques and tool support for automated generation of Web systems. The goal of model-driven development (MDD) is to tackle these problems introducing a higher level of abstraction by defining metamodels and model transformations rules. | ||
| - | The idea behind MDD is that modeling and transforming is a better foundation for the development and maintenance of systems than programming. | ||
| - | |||
| - | To develop software, we need knowledge about two concerns: | ||
| - | * Domain aspects (relevant for the software end-user) | ||
| - | * Software-technology aspects | ||
| - | |||
| - | |||
| - | |||
| - | The domain knowledge is distinct from software technology. In software development, | ||
| - | |||
| - | The Model-Driven Architecture separates the specification of the operation of a system form the details of the way that system uses the capabilities of its platform. MDA is an approach to system development, | ||
| - | It is model-driven because it provides a means for using models to direct the course of understanding, | ||
| - | |||
| - | MDA provides an approach for, and enables tools to be provided for: | ||
| - | * specifying a system independently of the platform that support it, | ||
| - | * specifying platforms, | ||
| - | * choosing a particular platform for the system, | ||
| - | * transforming the system specification into one for a particular platform | ||
| - | |||
| - | |||
| - | Goals of MDA are: | ||
| - | * portability | ||
| - | * interoperability | ||
| - | * reusability | ||
| - | |||
| - | |||
| - | MDA specifies 3 viewpoints on a system, each used for a kind of model (CIM, PIM, and PSM): | ||
| - | a computation independent viewpoint, | ||
| - | a platform independent viewpoints used for PIM, | ||
| - | a platform specific viewpoint used for PSM. | ||
| - | |||
| - | |||
| - | ===== 2 Basic Definitions ===== | ||
| - | |||
| - | |||
| - | ==== 2.1 System ==== | ||
| - | |||
| - | A System is an assemblage of entity, comprising a whole with each and every element interacting or related to at least one other element. Any entity which has no relationship with any other element of the system is not an element of that system. A subsystem is then a set of elements which is a system itself and a part of the whole system. | ||
| - | Every division or aggregation of real entities into systems is arbitrary, therefore it is a subjective abstract concept. | ||
| - | In MDA, a system is described in terms of one or more applications supported by one or more platforms. An application is a functionality being developed. | ||
| - | |||
| - | |||
| - | ==== 2.2 Model ==== | ||
| - | |||
| - | A model is a representation of an object or system from a particular viewpoint. | ||
| - | A model of a system is a description or specification of that system and its environment for some certain purpose. A model is often presented as a combination of drawings and test. The text may be in a modeling language or in a natural language. | ||
| - | |||
| - | |||
| - | ==== 2.3 Viewpoint ==== | ||
| - | |||
| - | A viewpoint on a system is a technique for abstraction using a selected set of architectural concepts and structuring rules, in order to focus on particular concerns within that system. Here “abstraction” is used to mean the process of suppressing selected detail to establish a simplified model. | ||
| - | The concepts and rules may be considered to form a viewpoint language. | ||
| - | A view of a system is a model which represent that system form the perspective of a chosen viewpoint. | ||
| - | |||
| - | |||
| - | ==== 2.4 Platform ==== | ||
| - | |||
| - | A platform is a set of subsystems and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented. | ||
| - | Platform independence is a quality, which a model may exhibit. This is the quality that the model is independent of the features of a platform of any particular type. | ||
| - | |||
| - | |||
| - | ==== 2.5 Quality ==== | ||
| - | |||
| - | Quality degree to which a set of inherent characteristic fulfills requirements" | ||
| - | Quality can be defined as both the degree to which a delivered application meets the needs of users as well as the degree to which a delivered system has low maintenance costs. | ||
| - | |||
| - | |||
| - | ==== 2.6 Process ==== | ||
| - | |||
| - | A process is a set of possible behaviors. | ||
| - | Behavior of a system is the evolution of state of system over time, i-e the path the system traces out in some attribute space. Thus any description of a system' | ||
| - | |||
| - | |||
| - | ==== 2.7 Pervasive Services ==== | ||
| - | |||
| - | Pervasive services are services available in a wide range of platforms. | ||
| - | MDA will provide common, platform independent models of pervasive services. It will provide mappings for transforming models, which draw on these pervasive service PIMs, to platform specific models using the services as provided by a particular platform. | ||
| - | |||
| - | |||
| - | |||
| - | ==== 2.8 Implementations ==== | ||
| - | |||
| - | An implementation is a specification, | ||
| - | |||
| - | ===== 3 Structure of MDA ===== | ||
| - | |||
| - | ==== 3.1 The computation Independent Model (CIM) ==== | ||
| - | |||
| - | === 3.1.1 Computation Independent Viewpoint === | ||
| - | |||
| - | The computation independent viewpoint focuses on the environment of the system, and requirements for the system; The details of the structure and processing of the system are hidden or as yet undetermined. | ||
| - | |||
| - | === 3.1.2 Definition === | ||
| - | |||
| - | A computation independent model is a view of a system from the computation independent viewpoint. A CIM does not show details of the structure or implementation of systems. A CIM is a domain model or a business model. Vocabulary of the specification model is familiar to the practitioners of the domain in question. | ||
| - | === 3.1.3 Usage === | ||
| - | |||
| - | CIM describes the situation in which the system will be used. It may hide much or all information about the use of automated data processing systems. | ||
| - | A CIM is a model of a system that shows the system in the environment in which it will operate, and thus it helps in presenting exactly what the system is expected to do. | ||
| - | It is useful, not only as an aid to understanding a problem, but also as a source of a shared vocabulary for use in other models. In an MDA specification of a system CIM requirements should be traceable to the PIM and PSM constructs that implement them, and vice versa. | ||
| - | A CIM might consist of two UML models, from the ODP enterprise and information viewpoints. It might include several models from these viewpoints, some providing more detail than others, or focusing on particular concerns of a viewpoint. | ||
| - | |||
| - | ==== 3.2 Platform Independent Model ==== | ||
| - | |||
| - | === 3.2.1 Platform Independent Viewpoint === | ||
| - | |||
| - | The platform independent viewpoint focuses on the operation of a system while hiding the details necessary for a particular platform. A platform independent view shows that part of the complete specification that does not change form one platform to another. | ||
| - | A platform independent view may use a general purpose modeling language, or a language specific to the area in which the system will be used. | ||
| - | === 3.2.2 Definition === | ||
| - | |||
| - | A platform independent model is a view of a system from the platform independent viewpoint. A PIM exhibits a specified degree of platform independence so as to be suitable for use with a number of different platforms of similar type. It describes the system, but does not show details of its use of its platform. | ||
| - | A very common technique for achieving platform independence is to target a system model for a technology neutral virtual machine. A virtual machine is defined as a set of parts and services ( communications, | ||
| - | === 3.2.3 Usage === | ||
| - | |||
| - | A PIM might consist of enterprise, information and computational ODP viewpoint specifications. | ||
| - | the enterprise viewpoint, which is concerned with the purpose, scope and policies governing the activities of the specified system within the organization of which it is a part; | ||
| - | the information viewpoint, which is concerned with the kinds of information handled by the system and constraints on the use and interpretation of that information; | ||
| - | the computational viewpoint, which is concerned with the functional decomposition of the system into a set of objects that interact at interfaces – enabling system distribution. | ||
| - | |||
| - | |||
| - | The structure of this information model might be quite different from the structure of an information viewpoint model in a CIM of the same system. | ||
| - | A platform independent model will be suited for a particular architectural style, or several. | ||
| - | ==== 3.3 Platform Model ==== | ||
| - | |||
| - | A platform model provides a set of technical concepts, representing the different kinds of parts that make up a platform and the services provided by that platform. It also provides, for use in a platform specific model, concepts representing the different kinds of elements to be used in specifying the use of the platform by an application. | ||
| - | A platform model also specifies requirements on the connection and use of the parts of the platform, and the connections of an application to the platform. | ||
| - | A generic platform model can amount to a specification of a particular architectural style. | ||
| - | Models can be expressed in UML, and OCL or UML, and stored in a MOF compliant repository. | ||
| - | ==== 3.4 Platform Specific Model ==== | ||
| - | |||
| - | === 3.4.1 Platform Specific Viewpoint === | ||
| - | |||
| - | The platform specific viewpoint combines the platform independent viewpoint with an additional focus on the detail of the use of a specific platform by a system. | ||
| - | === 3.4.2 Definition === | ||
| - | |||
| - | A platform specific model is a view of a system from the platform specific viewpoint. | ||
| - | A PSM combines the specifications in the PIM with the details that specify how that system uses a particular type of platform. | ||
| - | === 3.4.3 Usage === | ||
| - | |||
| - | A PSM may provide more or less detail, depending on its purpose. A PSM will be an implementation, | ||
| - | A PSM that is an implementation will provide a variety of different information, | ||
public_namespace/mda_approach.1169731262.txt.gz · Last modified: 2007/01/30 09:49 (external edit)
NeurologWikiSite