Download - Towards Clean Legacy Code
![Page 1: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/1.jpg)
Towards Clean Legacy Code Lars Martin, Clean Code Days 2013, 11.09.2013
![Page 2: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/2.jpg)
Towards Clean Legacy Code
§ Developer, Architect, Consultant
§ Java Enterprise, Eclipse, Continuous …
Who am I?
![Page 3: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/3.jpg)
Agenda
+ introduction into model based software modernization approaches (software evolution)
+ introduction of Eclipse based tooling
− full migration of legacy systems “Make sure you know what the code does before you attempt any modifications, don't just jump in.”
Towards Clean Legacy Code
![Page 4: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/4.jpg)
Towards Clean Legacy Code
Motivation
§ legacy system § heavy database access § ORM è java.sql.* § new team
© Katharina Bregulla / pixelio.de
![Page 5: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/5.jpg)
Towards Clean Legacy Code
Motivation § Raising Questions Ø which tables will be accessed? Ø will other tables (modules) be
accessed? Ø if yes, migrated already?
Ø automation possible?
© Katharina Bregulla / pixelio.de
![Page 6: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/6.jpg)
Towards Clean Legacy Code
Horseshoe-Model
PIM
PSM PSM’
PIM’
Code’ Code
Foreward Engineering (M
DA
) Rev
erse
Eng
inee
ring
(A
DM
)
Re-Engineering
Architecture Transformation
Reverse engineering: ”… is the process of analyzing a software system to create representations of the system at a higher level of abstraction.” Re-Engineering: “... is the analysis and modification of a software system to change its form and implement it in its new form.” (Forward) Engineering: “… is the way of designing systems, starting from abstract logical and implementation independent specification to gradually lead to the implementation of a physical system. © unknown
![Page 7: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/7.jpg)
Towards Clean Legacy Code
MoDisco - Concepts
MoDisco
Eclipse Modeling
Source Code
Databases
Metrics Norm checking
Configuration Files
Restruct. Code Migrated Code
Documentation Impact Analysis
Models Viewpoints
..other
![Page 8: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/8.jpg)
Towards Clean Legacy Code
MoDisco - Modernization Phases
Models
Discover
Viewpoints
Understand Existing Artifacts
Software Artifacts • Source Code • Configuration • Tests • Database • …
New Artifacts
Transform
![Page 9: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/9.jpg)
Towards Clean Legacy Code
MoDisco – Use Cases
© Michael Bührke / pixelio.de
![Page 10: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/10.jpg)
§ Quality Assurance (Metrics, ...)
§ Documentation (Structure, Dataflow, …)
§ Refactorierung (Design Pattern, Standards, …)
§ Migration (Framework, Architecture, …)
Towards Clean Legacy Code
MoDisco – Use Cases
© Michael Bührke / pixelio.de
![Page 11: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/11.jpg)
Practical Session (1/2)
Towards Clean Legacy Code
![Page 12: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/12.jpg)
JUnit4 é
JUnit3
© Katharina Wieland Mülle / pixelio.de
Towards Clean Legacy Code
Practical Session
![Page 13: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/13.jpg)
JUnit3 Queries
JUnit3 Facet
JUnit3 Customization
java.ecore
uses uses
customizes extends conforms to
Java EMF Model
Towards Clean Legacy Code
![Page 14: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/14.jpg)
Practical Session (2/2)
Towards Clean Legacy Code
![Page 15: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/15.jpg)
Abstract Factory, Adapter, Bridge,
Builder, …, Singleton, …, Visitor
© kiramain / pixelio.de
Towards Clean Legacy Code
Practical Session
![Page 16: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/16.jpg)
Towards Clean Legacy Code
Conclusion
ü Customizability o Metamodels o M2M, M2T
ü Extensive o Discoverer o Queries
ü Workflow ü DSL (Xtext, …)
ü (Focus on Java) ü Entry barriers ü Toolset
© Gerd Altmann / pixelio.de
![Page 17: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/17.jpg)
© Mario De Ma?a / pixelio.de
ü Metrics on software maintainability o bugs / commits per time unit o committer per time unit o …
ü Identification of variants within branches o modularization o …
ü Sync domain model <−> DB
Towards Clean Legacy Code
Outlook
![Page 18: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/18.jpg)
© Gerd Altmann / pixelio.de
![Page 19: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/19.jpg)
Master Thesis / Abschlussarbeit – Software Engineering Aufgabengebiet: • Entwicklung von Methoden zur
Informationsgewinnung • Implementierung der Methoden mittels Eclipse
basierter Technologien Studienbereiche: • Informatik und -Informatik
© Willi Heidelbach / pixelio.de
![Page 20: Towards Clean Legacy Code](https://reader033.vdocument.in/reader033/viewer/2022052301/554f7bc0b4c9052a518b4a9b/html5/thumbnails/20.jpg)
SMB GmbH – Plauenscher Ring 21 – D-01187 Dresden
Dipl.-Inf. Lars Martin +49-(0)173-64 24 461 [email protected]