12. Calling things properly
Reengineering
"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. Calling things properly
Reverse 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. Calling things properly
Restructuring
"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. Calling things properly
Forward 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. Everything together
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.
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.
19. Modernization
"It is a form of software evolution which relies
on an existing system as input."
R. C. Seacord, D. Plakosh and G. A. Lewis, “Modernizing Legacy Systems”. Addison-Wesley, 2003
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. 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. SOA migration
M. Razavian and P. Lago, “Towards a conceptual framework for legacy to soa migration,” in ICSOC workshop, 2010, vol. 6275, pp. 445–455.
24. MDD in
Software modernization
flickr/roger4336
29. Struts to JSF migration
J. 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. Maintainer script modernization
D. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
31. Maintainer script modernization
D. D. Ruscio and P. Pelliccione, “Towards maintainer script modernization in FOSS distributions,” OCE workshop, 2009.
32. Modernization business
T. 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.
38. What is it?
From OMG's specification
"ADM refers to the process of understanding
and evolving existing software assets in order
to maintain their business value"
43. What is it?
From OMG's specification
"...the ASTM supports a direct 1-to-1 mapping
of all code-level software language statements
into low-level software models."
44. What for?
From OMG's 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..."
57. What is it?
From OMG's 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..."
80. What is it?
From OMG's 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..."
92. Calculating metrics from PL/SQL
J. 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. Calculating metrics from PL/SQL
J. 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. Recovering Web Services
R. 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. Recovering Web Services
R. 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.
102. Technical Spaces
Definition:
"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
104. Bridging Technical Spaces
"...no TS is an island. There are bridges
between various spaces and these bridges also
have particular properties. Some may be bi-
directional and some may be one-way bridges.
Some operations may be performed easier in
one space and the result may then be imported
into other space."
I. Kurtev, J. Bézivin, and M. Aksit, “Technological Spaces : an Initial Appraisal,” in DOA, 2002
125. JUnit migration
JUnit3 to JUnit4
M2M Transformation
Mo
D
Ge isc
ne o J
Java model Java model ra av
JUnit4
to a
JUnit3 r
JUnit3
Facets
Java source code
JUnit4 code