Skip to main content
Erschienen in: Software Quality Journal 2/2018

11.05.2017

Round-trip engineering with the Two-Tier Programming Toolkit

verfasst von: A.H. Eden, E. Gasparis, J. Nicholson, R. Kazman

Erschienen in: Software Quality Journal | Ausgabe 2/2018

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

A major impediment to the long-term quality of large and complex programs is inconsistency between design and implementation. Conflicts between intent and execution are common because detecting them is laborious, error-prone, and poorly supported, and because the costs of continuously maintaining design documents outweigh immediate gains. A growing inconsistency between design and implementation results in software that is unpredictable and poorly understood. Round-trip engineering tools support an iterative process of detecting conflicts and resolving them by changing either the design or the implementation. We describe a Toolkit which supports a round-trip engineering of native Java programs without interfering with any existing practices, tools, or development environments, thereby posing a minimal barrier on adoption. The Toolkit includes a user-guided software visualization and design recovery tool, which generates Codecharts from source code. A “round-trip” process is possible because Codecharts visualizing source code can be edited to reflect the intended design, and the Verifier can detect conflicts between the intended and as-implemented design. We demonstrate each stage in this process, showing how the Toolkit effectively helps to close the gap between design and implementation, recreate design documentation, and maintaining consistency between intent and execution.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Fußnoten
1
(Although the tools we implemented currently support only programs implemented in Java, analyzers of source code in other class-based programming languages can easily be integrated since no other component of the Toolkit interacts directly with the analyzer or with the source code. Proofs of concept for such analyzers have already been produced for C++, C#, and PHP5.
 
Literatur
Zurück zum Zitat Alzahrani, A. A. H. (2015). Modelling and automated detection of design patterns using Codecharts with applications to security patterns (draft). Colchester, Essex: University of Essex. Alzahrani, A. A. H. (2015). Modelling and automated detection of design patterns using Codecharts with applications to security patterns (draft). Colchester, Essex: University of Essex.
Zurück zum Zitat Alzahrani, A. A. H., Eden, A. H., & Yafi, M. Z. (2015). Conformance checking of single access point pattern in JAAS using Codecharts. In the world congress on information technology and computer applications. Tunisia: Hammamet. Alzahrani, A. A. H., Eden, A. H., & Yafi, M. Z. (2015). Conformance checking of single access point pattern in JAAS using Codecharts. In the world congress on information technology and computer applications. Tunisia: Hammamet.
Zurück zum Zitat Assmann, U. (2003). Automatic roundtrip engineering. Electronic Notes in Theoretical Computer Science, 82(5), 33–41.CrossRef Assmann, U. (2003). Automatic roundtrip engineering. Electronic Notes in Theoretical Computer Science, 82(5), 33–41.CrossRef
Zurück zum Zitat Biggerstaff, T. J. (1989). Design recovery for maintenance and reuse. IEEE Computer, 22(7), 36–49.CrossRef Biggerstaff, T. J. (1989). Design recovery for maintenance and reuse. IEEE Computer, 22(7), 36–49.CrossRef
Zurück zum Zitat Chen, F., & Roşu, G. (2007). Mop: an efficient and generic runtime verification framework. SIGPLAN Not., 42(10), 569–588.CrossRef Chen, F., & Roşu, G. (2007). Mop: an efficient and generic runtime verification framework. SIGPLAN Not., 42(10), 569–588.CrossRef
Zurück zum Zitat Chikofsky, E. J., & Cross, J. H. (1990). Reverse engineering and design recovery: a taxonomy. IEEE Software, 7(1), 13–17.CrossRef Chikofsky, E. J., & Cross, J. H. (1990). Reverse engineering and design recovery: a taxonomy. IEEE Software, 7(1), 13–17.CrossRef
Zurück zum Zitat Demeyer, S. et al. (1999). Why unified is not universal: UML shortcomings for coping with round-trip engineering. In Proc. 2nd Int’l Conf. on the Unified Modeling Language. Lecture Notes in Computer Science. pp. 630–645. Demeyer, S. et al. (1999). Why unified is not universal: UML shortcomings for coping with round-trip engineering. In Proc. 2nd Int’l Conf. on the Unified Modeling Language. Lecture Notes in Computer Science. pp. 630–645.
Zurück zum Zitat Eden, A. H., & Nicholson, J. (2011). Codecharts: roadmaps and blueprints for object-oriented programs. Hoboken: Wiley-Blackwell.CrossRefMATH Eden, A. H., & Nicholson, J. (2011). Codecharts: roadmaps and blueprints for object-oriented programs. Hoboken: Wiley-Blackwell.CrossRefMATH
Zurück zum Zitat Eden, A. H., et al. (2013). Modeling and visualizing object-oriented programs with Codecharts. Formal Methods in System Design, 43(1), 1–28.MathSciNetCrossRefMATH Eden, A. H., et al. (2013). Modeling and visualizing object-oriented programs with Codecharts. Formal Methods in System Design, 43(1), 1–28.MathSciNetCrossRefMATH
Zurück zum Zitat Fischer, T. et al. (1999). Story diagrams: a new graph grammar language based on the unified modelling language and java. In Proc. Theory and Application of Graph Transformations–TAGT’98, LNCS 1764. Springer, pp. 296–309. Fischer, T. et al. (1999). Story diagrams: a new graph grammar language based on the unified modelling language and java. In Proc. Theory and Application of Graph Transformations–TAGT98, LNCS 1764. Springer, pp. 296–309.
Zurück zum Zitat Gamma, E. Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Reading: Addison Wesley Longman. Gamma, E. Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Reading: Addison Wesley Longman.
Zurück zum Zitat Gasparis, E. (2010) Design Navigation: recovering design charts from object-oriented programs. PhD Dissertation. School of Computer Science and Electronic Engineering, University of Essex. Gasparis, E. (2010) Design Navigation: recovering design charts from object-oriented programs. PhD Dissertation. School of Computer Science and Electronic Engineering, University of Essex.
Zurück zum Zitat Gasparis, E., Nicholson, J., et al. (2008a). Navigating through the design of object-oriented programs. In 15th Working Conf. on Reverse Engineering—WCRE. Antwerp, Belgium. Gasparis, E., Nicholson, J., et al. (2008a). Navigating through the design of object-oriented programs. In 15th Working Conf. on Reverse Engineering—WCRE. Antwerp, Belgium.
Zurück zum Zitat Gasparis, E., Eden, A.H., et al. (2008b). The Design Navigator: Charting Java Programs. In Tool Demonstrations, Proc. of 30th IEEE Int’l Conf. on Software Engineering—ICSE 2008. Leipzig: IEEE Computer Society Press. Gasparis, E., Eden, A.H., et al. (2008b). The Design Navigator: Charting Java Programs. In Tool Demonstrations, Proc. of 30th IEEE Int’l Conf. on Software Engineering—ICSE 2008. Leipzig: IEEE Computer Society Press.
Zurück zum Zitat Goldberg, M. & Wiener, G. (2010). Round-trip modeling using OPM/PL. In 2010 I.E. International Conference on Software Science, Technology and Engineering (SWSTE). IEEE, pp. 13–21. Goldberg, M. & Wiener, G. (2010). Round-trip modeling using OPM/PL. In 2010 I.E. International Conference on Software Science, Technology and Engineering (SWSTE). IEEE, pp. 13–21.
Zurück zum Zitat Guttag, J. V., Horning, J. J., & Wing, J. (1982). Some notes on putting formal specifications to productive use. Science of Computer Programming, 2(1), 53–68.CrossRefMATH Guttag, J. V., Horning, J. J., & Wing, J. (1982). Some notes on putting formal specifications to productive use. Science of Computer Programming, 2(1), 53–68.CrossRefMATH
Zurück zum Zitat Henriksson, A. & Larsson, H. (2003). A definition of round-trip engineering, University of Linköping. Henriksson, A. & Larsson, H. (2003). A definition of round-trip engineering, University of Linköping.
Zurück zum Zitat Hettel, T., Lawley, M. & Raymond, K. (2008). Model Synchronisation: Definitions for Round-Trip Engineering. In A. Vallecillo, J. Gray, & A. Pierantonio, eds. Theory and Practice of Model Transformations. Lecture Notes in Computer Science. Springer Berlin Heidelberg, pp. 31–45. Hettel, T., Lawley, M. & Raymond, K. (2008). Model Synchronisation: Definitions for Round-Trip Engineering. In A. Vallecillo, J. Gray, & A. Pierantonio, eds. Theory and Practice of Model Transformations. Lecture Notes in Computer Science. Springer Berlin Heidelberg, pp. 31–45.
Zurück zum Zitat Jackson, M. (2008). Automated software engineering: supporting understanding. Automated Software Engineering, 15(3–4), 275–281.CrossRef Jackson, M. (2008). Automated software engineering: supporting understanding. Automated Software Engineering, 15(3–4), 275–281.CrossRef
Zurück zum Zitat Kazman, R., & Carrière, S. J. (1999). Playing detective: reconstructing software architecture from available evidence. Automated Software Engineering, 6(2), 107–138.CrossRef Kazman, R., & Carrière, S. J. (1999). Playing detective: reconstructing software architecture from available evidence. Automated Software Engineering, 6(2), 107–138.CrossRef
Zurück zum Zitat Koschke, R. (2001). Software visualization for reverse engineering. In Lecture Notes In Computer Science. Revised Lectures on Software Visualization, International Seminar. pp. 138–150. Koschke, R. (2001). Software visualization for reverse engineering. In Lecture Notes In Computer Science. Revised Lectures on Software Visualization, International Seminar. pp. 138–150.
Zurück zum Zitat Mo, R. et al. (2015). Hotspot patterns: the formal definition and automatic detection of architecture smells. In 2015 12th Working IEEE/IFIP Conference on Software Architecture (WICSA). 2015 12th Working IEEE/IFIP Conference on Software Architecture (WICSA). pp. 51–60. Mo, R. et al. (2015). Hotspot patterns: the formal definition and automatic detection of architecture smells. In 2015 12th Working IEEE/IFIP Conference on Software Architecture (WICSA). 2015 12th Working IEEE/IFIP Conference on Software Architecture (WICSA). pp. 51–60.
Zurück zum Zitat Müller, H.A. & Klashinsky, K., 1988. Rigi—a system for programming-in-the-large. In Proc. 10th Int’l Conf. Software engineering. Singapore: IEEE Computer Society Press, pp. 80–86. Müller, H.A. & Klashinsky, K., 1988. Rigi—a system for programming-in-the-large. In Proc. 10th Int’l Conf. Software engineering. Singapore: IEEE Computer Society Press, pp. 80–86.
Zurück zum Zitat Nicholson, J. et al., 2014. Automated verification of design patterns: a case study. Science of Computer Programming, 80, Part B, pp.211–222. Nicholson, J. et al., 2014. Automated verification of design patterns: a case study. Science of Computer Programming, 80, Part B, pp.211–222.
Zurück zum Zitat Nicholson, J. (2011). On the theoretical foundations of LePUS3 and its application to object-oriented design verification. PhD Dissertation: School of Computer Science and Electronic Engineering, University of Essex. Nicholson, J. (2011). On the theoretical foundations of LePUS3 and its application to object-oriented design verification. PhD Dissertation: School of Computer Science and Electronic Engineering, University of Essex.
Zurück zum Zitat Nickel, U.A. et al. (2000) Roundtrip engineering with FUJABA (Extended Abstract). In 2nd Workshop on Software-Reengineering (WSR). Nickel, U.A. et al. (2000) Roundtrip engineering with FUJABA (Extended Abstract). In 2nd Workshop on Software-Reengineering (WSR).
Zurück zum Zitat Paesschen, E. V., Meuter, W. D., & D’Hondt, M. (2005). SelfSync: A dynamic round-trip engineering environment. In L. Briand & C. Williams (Eds.), Model driven engineering languages and systems (pp. 633–647). Heidelberg: Lecture Notes in Computer Science. Springer Berlin.CrossRef Paesschen, E. V., Meuter, W. D., & D’Hondt, M. (2005). SelfSync: A dynamic round-trip engineering environment. In L. Briand & C. Williams (Eds.), Model driven engineering languages and systems (pp. 633–647). Heidelberg: Lecture Notes in Computer Science. Springer Berlin.CrossRef
Zurück zum Zitat Perry, D. E., & Wolf, A. L. (1992). Foundations for the study of software architecture. SIGSOFT Software Engineering Notes, 17(4), 40–52.CrossRef Perry, D. E., & Wolf, A. L. (1992). Foundations for the study of software architecture. SIGSOFT Software Engineering Notes, 17(4), 40–52.CrossRef
Zurück zum Zitat Quatrani, T. (1998). Visual modeling with rational Rose and UML. Boston: Addison-Wesley Longman Publishing Co., Inc.. Quatrani, T. (1998). Visual modeling with rational Rose and UML. Boston: Addison-Wesley Longman Publishing Co., Inc..
Zurück zum Zitat Ryoo, J., Laplante, P. & Kazman, R. (2012). Revising a security tactics hierarchy through decomposition, reclassification, and derivation. In Software Secutiry and Reliability. Washington, D.C. Ryoo, J., Laplante, P. & Kazman, R. (2012). Revising a security tactics hierarchy through decomposition, reclassification, and derivation. In Software Secutiry and Reliability. Washington, D.C.
Zurück zum Zitat Schmidt, D. C. (2006). Guest editor’s introduction: model-driven engineering. Computer, 39(2), 25–31.CrossRef Schmidt, D. C. (2006). Guest editor’s introduction: model-driven engineering. Computer, 39(2), 25–31.CrossRef
Zurück zum Zitat Sendall, S. & Küster, J. (2004). Taming model round-trip engineering. Sendall, S. & Küster, J. (2004). Taming model round-trip engineering.
Zurück zum Zitat Sipser, M. (1997). Introduction to the theory of computation. Boston: PWS Pub. Co..MATH Sipser, M. (1997). Introduction to the theory of computation. Boston: PWS Pub. Co..MATH
Zurück zum Zitat Wassermann, R. & Cheng, B. H. C. (2003). Security patterns. In Pattern Languages of Programs—PLoP 2003. Robert Allerton Park, MI. Wassermann, R. & Cheng, B. H. C. (2003). Security patterns. In Pattern Languages of Programs—PLoP 2003. Robert Allerton Park, MI.
Zurück zum Zitat Wing, J. M. (1990). A specifier’s introduction to formal methods. Computer, 23(9), 8–23.CrossRef Wing, J. M. (1990). A specifier’s introduction to formal methods. Computer, 23(9), 8–23.CrossRef
Zurück zum Zitat Yoder, J. & Barcalow, J. (2000). Architectural patterns for enabling application security. In B. Foote, N. Harrison, & H. Rohnert, eds. Pattern languages of program design 4. Addison-Wesley. Yoder, J. & Barcalow, J. (2000). Architectural patterns for enabling application security. In B. Foote, N. Harrison, & H. Rohnert, eds. Pattern languages of program design 4. Addison-Wesley.
Metadaten
Titel
Round-trip engineering with the Two-Tier Programming Toolkit
verfasst von
A.H. Eden
E. Gasparis
J. Nicholson
R. Kazman
Publikationsdatum
11.05.2017
Verlag
Springer US
Erschienen in
Software Quality Journal / Ausgabe 2/2018
Print ISSN: 0963-9314
Elektronische ISSN: 1573-1367
DOI
https://doi.org/10.1007/s11219-017-9363-9

Weitere Artikel der Ausgabe 2/2018

Software Quality Journal 2/2018 Zur Ausgabe