Round-trip Engineering.
KELLOKOSKI, PASI (2000)
KELLOKOSKI, PASI
2000
Tietojenkäsittelyoppi - Computer Science
Taloudellis-hallinnollinen tiedekunta - Faculty of Economics and Administration
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2000-06-16
Julkaisun pysyvä osoite on
https://urn.fi/urn:nbn:fi:uta-1-8750
https://urn.fi/urn:nbn:fi:uta-1-8750
Sisällysluettelo
1. Introduction 7 2. Terminology 9 2.1. Software engineering process 9 2.1.1. Definition 9 2.1.2. Discussion 12 2.2. Software engineering methodology 13 2.2.1. Definition 13 2.2.2. Discussion 14 2.3. Modeling language 15 2.3.1. Definition 15 2.3.2. Discussion 16 2.4. Model 17 2.4.1. Definition 17 2.4.2. Discussion 18 3. UML 19 4. Round-trip engineering 21 4.1. General 21 4.2. The mappings between UML and the source code 23 4.2.1. General 23 4.2.2. Example 24 4.3. Discussion 27 4.3.1. General 27 4.3.2. Advantages of round-trip engineering 29 4.3.3. Disadvantages/problems 31 5. Round-trip engineering in software process 33 5.1. General 33 5.2. OMT++ 33 5.2.1. General 33 5.2.2. Round-trip engineering issues in OMT++ 35 5.3. Discussion 37 6. Round-trip engineering methodologies 40 6.1. General 40 6.2. J-UML 40 6.2.1. General 40 6.2.2. Example 43 6.3. Universal Object Language (UOL) 45 6.3.1. General 45 6.3.2. Example 47 6.4. XML Metadata Interchange (XMI) 48 6.4.1. General 48 6.4.2. Example 49 6.5. Discussion 51 7. Round-trip engineering tools 53 7.1. General 53 7.2. Rational Rose 54 7.3. Together 55 7.4. Comparison 56 7.5. Discussion 59 8. Example of development with round-trip engineering and UML 62 8.1. General 62 8.2. The development process 62 8.3. Lessions learned 65 9. Future research 67 10. Conclusions 68 References 71 Appendix 74
Tiivistelmä
The basic problem of any software design is how to derive executable software components from requirement specification, and how this process could be supported by a computer. The object-oriented approach allows smooth shift from one process phase to another. However, problems tend to occur particularly in the design and implementation phases. It is typical that these phases aren´t seamlessly integrated. A lot of manual work has to be done to transform the design artifacts into implementation artifacts. Even more work has to be done if the design artifacts are kept up-to-date with the implementation artifacts. The bottom line is that models today are expenses. They need to be assets. All the work spent on modeling doesn´t pay off unless we can translate our models into executable deliverables.
With round-trip engineering and UML the programmer generates code from a UML model, changes that code in the development environment and recreates the adapted UML model back from the source code. This approach promotes better time-to-market and better quality. This thesis studies the whole problem domain of round-trip engineering, consisting of processes, methodologies and tools.
It can be concluded that full round-trip engineering with UML still has a lot of problems. This is mainly because UML is not a visual programming language but a visual modeling language. However, there are some promising methodologies to support round-trip engineering with UML. Hopefully these methodologies gain more support from tool vendors and other organizations in the future.
Keywords: object-oriented design, UML, round-trip engineering, forward engineering, reverse engineering.
With round-trip engineering and UML the programmer generates code from a UML model, changes that code in the development environment and recreates the adapted UML model back from the source code. This approach promotes better time-to-market and better quality. This thesis studies the whole problem domain of round-trip engineering, consisting of processes, methodologies and tools.
It can be concluded that full round-trip engineering with UML still has a lot of problems. This is mainly because UML is not a visual programming language but a visual modeling language. However, there are some promising methodologies to support round-trip engineering with UML. Hopefully these methodologies gain more support from tool vendors and other organizations in the future.
Keywords: object-oriented design, UML, round-trip engineering, forward engineering, reverse engineering.