Atitit. R & D Management-Improving Efficiency-Software Development Methods DSM summary o99
1. What is DSM? 1
2. dsl 2, the language used by DSM
3. Advantages of the Model 2
4. Differences between DSM and MDA 2
5. Implementation of MDA 3
6. Refer to 4
1. What is DSM?
Only by improving the abstraction layer, directly targeting modeling experts or system analysts, and then using automated code generation technology can we develop software systems with high quality and speed, at oopsla (a leading software engineering conference), we think that DSM may be a solution. Bill Gates and Grady booch share the same view.
DSM means domain-specific modeling domain definition modeling. By using domain concepts to directly specify a solution, DSM improves the abstraction level beyond program code, the final software product will be automatically generated from a high-level design. Such an automatic process can be implemented because the language and code generator can meet the needs of a company or field, modeling Experts define this automatic machine, while programmers only need to use it.
Practical experience has proved that DSM is 5-10 times more efficient than existing approaches (including UML-based MDA), as booch said: "When modeling concepts can be directly mapped to domain, rather than the concept of computer technology, the value of MDA has been completed. "the meaning of this sentence is: MDA has proved that we can directly build models from the domain Point of View of domain experts, instead of having to be constrained by specific computer technology concepts, or using experienced system analysts/modeling experts for analysis and design to produce software systems has been proven to be feasible by MDA, this is also the value of MDA,
Booch and others hope to use DSM to replace MDA.
The Modeling Experts define code generators for related fields and components, and the result is better than that developed by most developers. From the perspective of MDA, we realized that it is impossible to have a "one size fits all figures" code generation scheme, without having to work as hard as the MDA, what DSM has done is just like compiling code into a compilation language compiler.
Author: old wow's paw attilax iron, email: [email protected]
Reprinted please indicate Source: http://blog.csdn.net/attilax
2. dsl language used by DSM
Domain-specific languages (Domain Modeling Language ).
Use XML to transmit data in application components, use SQL to access data, and use WSDL to describe the interfaces of components for Web applications, however, none of them directly address the business problems faced by end users.
DSL is designed to be directly oriented to the problem areas it wants to solve. To some extent, it can replace coding, data exchange, and configuration. We often call this type of language a modeling language.
Anno + HTML >>> UML
3. Advantages of the Model
The model is popular because it can express problems well and avoid getting into technical details. When technology becomes more and more complex, models are an essential means to increase productivity.
Another advantage of the model is that programmers and experts in the problem field can use the same expression, which facilitates communication between team members.
We can also regard the use of models as a way to bridge the gap between technology and business.
4. Differences between DSM and MDA
DSM avoids the difficulties in developing MDA and does not require fully expressing the details of the model at the PIM level. If the domain name is not limited, the existing Model Description Language and constraint description, such as OCL and model conversion language qvt, cannot meet the needs of sufficient expression ability, precise description, and abstract on the one hand, at the same time, it is easy to use. In this case, DSM is a good solution.
The main difference between DSM and MDA is that the MDA tool vendors define their own code generators. These code generators are very good for the first time, but they will become obsolete in the future, making it difficult to adapt to changes in requirements ..
In DSM, DSL and code generators are controlled by you. These tools can be adjusted to adapt to your own system. As developers, you only need to define DSL and implement your own code generators, all of these are defined and controlled by you.
5. Implementation of MDA
The separation of system business logic and implementation technology is considered to support MDA, such as vsts
Whether it's a white cat or a black cat, it's a good cat to catch a mouse. For software developers and various stakeholders, as long as the business logic is separated from the underlying technical platform, it can ensure that the results of hard modeling in those years will not inevitably come back as the technical platform changes and the stone is pushed up the mountain like the West River, it is called MDA (in fact, it is not called MDA: d ).
Figure 3 development process based on MDA
3. It corresponds to the traditional requirement-analysis-design-Development-test-delivery process. The MDA-based development process consists of the transformation between the model and the model. The final application can also be seen as a model, which corresponds to the terminal implementation platform (such as machine code)
Microsoft's vsts provides a convenient environment for defining domain-specific language (DSL), that is, the domain meta model we mentioned above, it also supports DSL-based models, program code generation, and Bidirectional Engineering. Microsoft is a typical seller of betrayal standards. It accepts the idea of MDA in an all-round way, changes its name, and then disregards the core standard UML and mof j of MDA. At the same time, Microsoft is an absolute realism. Starting from improving the development efficiency, it provides the MDA development support that is at least accepted by developers at the current stage. In this sense, vsts is a broad-based MDA tool.
Many other tools, due to business promotion and other factors, as long as they are hooked up with model conversion, code generation, and so on, often claim that they are MDA tools. These are understandable and there is no need to be truthful. According to the analysis above, as long as the separation of business logic and technical details is realized or partially realized, it can be said that it is a broad range of MDA tools, for example, the Code Generation Tool XDoclet and middlegen Based on velocity for specific platforms such as J2EE.
6. dsl case
The most recent article "Improving developer productiight with lightweight domain specific modeling" on TSS demonstrates how to use DSM to implement lightweight Modeling in five steps:
Argouml can be used to define DSL models. developers can design DSL models suitable for problem domains.
Convert the argouml model into an ecore In the eclipse model format.
Use the Eclipse plug-in Jet template to define how code is generated.
Input the ecore model to the template definition, and then define the ing between the model elements in the ecore model and the Jet template with Merlin.
The final result is to generate the final code.
7. Reference
Introduction to model-driven architecture (MDA)-blog channel-csdn.net.htm
Token is dsm_ .htm
Log of DSM and MDA-abben-wangyi Boke .htm
[Excerpt] domain-oriented modeling-Research and Practice: smart city, cloud computing, Iot and software engineering-blog channel-csdn.net.htm
Atitit. R & D Management-Improving Efficiency-Software Development Methods DSM summary o99