Software Modernization

1,352 views

Published on

Slides from my talk in Madrid, November 11th 2012

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,352
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
41
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Software Modernization

  1. 1. SoftwareModernization Javier Luis Cánovas Izquierdo javier.canovas@inria.fr Universidad Autónoma de Madrid Noviembre de 2012
  2. 2. Who am I?René Magritte
  3. 3. Where am I from?
  4. 4. The team
  5. 5. AtlanMod people
  6. 6. Our place
  7. 7. Our place in MDD
  8. 8. My place
  9. 9. Outlinefotopedia/DVIDSHUB
  10. 10. Software modernizationJean Christophe Prunet
  11. 11. Calling things properlyMauro Cateb
  12. 12. Calling things properlyReengineering "The examination and alteration of a software system to reconstitute it in a new form and the subsequent implementation of a new form. Generally includes some form of reverse engineering, followed by some form of forward engineering or restructuring."E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
  13. 13. Calling things properlyReverse Engineering "Process of analyzing a subject system to identify its components and their relationships and to create representations of the systems in another form or at a higher level of abstraction. Generally involves extracting design artifacts and building or synthesizing abstractions that are less implementation- dependent..."E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
  14. 14. Calling things properlyRestructuring "Transformation for one representation form to another, at the same abstraction level, while preserving the subject system external behavior (functionality and semantics)"E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
  15. 15. Calling things properlyForward Engineering "The traditional process of moving from high level abstractions & logical or implementation independent designs (e.g. models) to the physical implementation of a system (e.g. source code)."E. Chikofsky and J. Cross, “Reverse engineering and design recovery: A taxonomy,” Software, IEEE, vol. 7, no. 1, pp. 13–17, 1990.
  16. 16. Everything togetherR. Kazman, S. G. Woods, and S. J. Carrière, “Requirements for Integrating Software Architecture and Reengineering Models : CORUM II,” in WCRE conf., 1998, pp. 154–163.
  17. 17. Everything together (reloaded)R. Kazman, S. G. Woods, and S. J. Carrière, “Requirements for Integrating Software Architecture and Reengineering Models : CORUM II,” in WCRE conf., 1998, pp. 154–163.
  18. 18. flickr/a_ninjamonkey
  19. 19. Modernization"It is a form of software evolution which relieson an existing system as input." R. C. Seacord, D. Plakosh and G. A. Lewis, “Modernizing Legacy Systems”. Addison-Wesley, 2003
  20. 20. Modernization Examplesflickr/mark.hogan
  21. 21. Reverse engineering goal models Y. Yu, Y. Wang, J. Mylopoulos, S. Liaskos, A. Lapouchnian, and J. C. Sampaio do Prado Leite, “Reverse engineering goal models from legacy code,” in RE conf., 2005.
  22. 22. Reverse engineering goal models Y. Yu, Y. Wang, J. Mylopoulos, S. Liaskos, A. Lapouchnian, and J. C. Sampaio do Prado Leite, “Reverse engineering goal models from legacy code,” in RE conf., 2005.
  23. 23. SOA migrationM. Razavian and P. Lago, “Towards a conceptual framework for legacy to soa migration,” in ICSOC workshop, 2010, vol. 6275, pp. 445–455.
  24. 24. MDD in Software modernizationflickr/roger4336
  25. 25. The classical Horse-shoe model
  26. 26. The MDD-based Horse-shoe model
  27. 27. The MDD-based Horse-shoe model
  28. 28. MDD-based Modernization ExamplesAlan Pennington
  29. 29. Struts to JSF migrationJ. L. Cánovas Izquierdo, O. Sánchez Ramón, J. Sánchez Cuadrado, and J. García Molina, “DSLs para la extracción de modelos en modernización,” in DSDM workshop, 2008.
  30. 30. Maintainer script modernizationD. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
  31. 31. Maintainer script modernizationD. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
  32. 32. Modernization businessT. Clark and P.-A. Muller, “Exploiting model driven technology: a tale of two startups,” Software & Systems Modeling, vol. 11, no. 4, pp. 481–493, Aug. 2012.
  33. 33. Architecture-Driven Modernizationfotopedia/Mirco Wilheim
  34. 34. What is it?
  35. 35. What is it?
  36. 36. What is it?
  37. 37. What is it?
  38. 38. What is it?From OMGs specification "ADM refers to the process of understanding and evolving existing software assets in order to maintain their business value"
  39. 39. ADM metamodels
  40. 40. ADM metamodels
  41. 41. Going into the metamodelsAlex Proimos
  42. 42. ADM metamodels
  43. 43. What is it?From OMGs specification "...the ASTM supports a direct 1-to-1 mapping of all code-level software language statements into low-level software models."
  44. 44. What for?From OMGs specification "This mapping is intended to provide a framework for: 1. A high-fidelity invertible representation of code written in any software language... 2. Attachment of low-level software semantics produced by a constraint analysis, specifically scope analysis..."
  45. 45. Abstract syntax tree
  46. 46. Levels of conformance
  47. 47. GASTM
  48. 48. SASTM
  49. 49. Levels of conformance
  50. 50. Levels of conformance
  51. 51. Example
  52. 52. Example
  53. 53. Example
  54. 54. Example
  55. 55. Summary
  56. 56. ADM metamodels
  57. 57. What is it?From OMGs specification "...a meta-model for representing existing software, its elements, associations, and operational environments... KDM facilitates projects that involve existing software systems by ensuring interoperability and exchange of data between tools provided by different vendors..."
  58. 58. KDM packages
  59. 59. Compliant levels
  60. 60. Core Package
  61. 61. Kdm Package
  62. 62. Kdm Package ● KDM metamodel structure
  63. 63. Kdm Package ● KDM metamodel structure ● Audit mechanism
  64. 64. Kdm Package ● KDM metamodel structure ● Audit mechanism ● Extension mechanism
  65. 65. Kdm Package ● KDM metamodel structure ● Audit mechanism ● Extension mechanism ● Tag mechanism
  66. 66. Source Package
  67. 67. Code Package
  68. 68. Action Package
  69. 69. Micro-KDM package● Action semantic● Action types● Comparison(equals, notequals, lessthan,…)● Numerical (add, multiply, divide,…)● Binary operations (bitAnd, bitNot, leftShift,…)● Control (if, assign, condition,…)● Data type access (fieldSelect, …)● Data type conversion (sizeof,…)● String operations (tail, append,…)● ...
  70. 70. Example
  71. 71. Example
  72. 72. Example
  73. 73. Example
  74. 74. Example
  75. 75. And the other packages?
  76. 76. Summary
  77. 77. ASTM vs. KDMASTMKDM
  78. 78. ASTM vs. KDMASTMKDM
  79. 79. ADM metamodels
  80. 80. What is it?From OMGs specification "...meta-model for representing measurement information related to any model structured information with an initial focus on software, its operation, and its design.... ...this specification is an extensible meta-model for exchanging both measures and measurement information concerning artifacts contained or expressed by structured models, such as MOF..."
  81. 81. Core elements
  82. 82. Measures hierarchy
  83. 83. Measurements hierarchy
  84. 84. Hierarchy mirrored
  85. 85. Example
  86. 86. Example
  87. 87. The classical Horse-shoe model
  88. 88. ADM-based horse shoe model
  89. 89. Modernization scenarios OMG, “Architecture-driven modernization scenarios,” 2006.
  90. 90. ADM Modernization business
  91. 91. ADM-based modernization examplesflickr/jonrus
  92. 92. Calculating metrics from PL/SQLJ. L. Cánovas Izquierdo and J. García Molina, “An Architecture-Driven Modernization Tool for Calculating Metrics,” IEEE Software, vol. 27, no. 4, pp. 37–43, 2010.
  93. 93. Calculating metrics from PL/SQLJ. L. Cánovas Izquierdo and J. García Molina, “An Architecture-Driven Modernization Tool for Calculating Metrics,” IEEE Software, vol. 27, no. 4, pp. 37–43, 2010.
  94. 94. Recovering Web ServicesR. Pérez-Castillo, I. G. D. Guzmán, and I. Caballero, “Software modernization by recovering Web services from legacy databases,” Journal of Software: Evolution and Process, 2012.
  95. 95. Recovering Web ServicesR. Pérez-Castillo, I. G. D. Guzmán, and I. Caballero, “Software modernization by recovering Web services from legacy databases,” Journal of Software: Evolution and Process, 2012.
  96. 96. MoDiscophotopedia/marfis75
  97. 97. MoDisco = Model Discovery "An Eclipse framework to support the elaboration of Model-Driven Reverse Engineering solutions."
  98. 98. MoDisco in the Horse-shoe model
  99. 99. MoDisco in the Horse-shoe model
  100. 100. Reverse Engineering in MoDisco
  101. 101. Discover
  102. 102. Technical SpacesDefinition: "A technological space is a working context with a set of associated concepts, body of knowledge, tools, required skills, and possibilities. It is often associated to a given user community with shared know-how, educational support, common literature and even workshop and conference meetings." I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
  103. 103. Technical Spaces
  104. 104. Bridging Technical Spaces"...no TS is an island. There are bridgesbetween various spaces and these bridges alsohave particular properties. Some may be bi-directional and some may be one-way bridges.Some operations may be performed easier inone space and the result may then be importedinto other space." I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
  105. 105. Why bridging?Jean Bézivin. Model Engineering for Software Modernization. In WCRE - Guest Talk, 2004
  106. 106. Bridging Technical SpacesI. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
  107. 107. Technical Spaces
  108. 108. Technical Spaces
  109. 109. Reverse Engineering in MoDisco
  110. 110. MoDisco support for Java
  111. 111. MoDisco support for XML
  112. 112. MoDisco support for JSP
  113. 113. Discovery manager
  114. 114. New discoverers
  115. 115. Understand
  116. 116. Reverse Engineering in MoDisco
  117. 117. Model Browser
  118. 118. Transform
  119. 119. Transform
  120. 120. Reverse Engineering in MoDisco
  121. 121. MoDisco Architecture
  122. 122. MoDisco examplesflickr/-staci-
  123. 123. JUnit migration Java metamodel MoDisco Java conforms to Discoverer JavaJava source code model JUnit3 code JUnit3 MoDisco Model Browser
  124. 124. JUnit migration Java model JUnit3 Java JUnit3Customization Facets uses MoDisco ModelBrowser JUnit3 Queries
  125. 125. JUnit migration JUnit3 to JUnit4 M2M Transformation Mo D Ge isc ne o JJava model Java model ra av JUnit4 to a JUnit3 r JUnit3 Facets Java source code JUnit4 code
  126. 126. Calculating metrics from code
  127. 127. Viewpoints from source code
  128. 128. flickr/peterzen

×