Towards Clean Legacy Code
-
Upload
lars-martin -
Category
Technology
-
view
301 -
download
2
description
Transcript of Towards Clean Legacy Code
Towards Clean Legacy Code Lars Martin, Clean Code Days 2013, 11.09.2013
Towards Clean Legacy Code
§ Developer, Architect, Consultant
§ Java Enterprise, Eclipse, Continuous …
Who am I?
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
Towards Clean Legacy Code
Motivation
§ legacy system § heavy database access § ORM è java.sql.* § new team
© Katharina Bregulla / pixelio.de
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
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
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
Towards Clean Legacy Code
MoDisco - Modernization Phases
Models
Discover
Viewpoints
Understand Existing Artifacts
Software Artifacts • Source Code • Configuration • Tests • Database • …
New Artifacts
Transform
Towards Clean Legacy Code
MoDisco – Use Cases
© Michael Bührke / pixelio.de
§ 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
Practical Session (1/2)
Towards Clean Legacy Code
JUnit4 é
JUnit3
© Katharina Wieland Mülle / pixelio.de
Towards Clean Legacy Code
Practical Session
JUnit3 Queries
JUnit3 Facet
JUnit3 Customization
java.ecore
uses uses
customizes extends conforms to
Java EMF Model
Towards Clean Legacy Code
Practical Session (2/2)
Towards Clean Legacy Code
Abstract Factory, Adapter, Bridge,
Builder, …, Singleton, …, Visitor
© kiramain / pixelio.de
Towards Clean Legacy Code
Practical Session
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
© 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
© Gerd Altmann / pixelio.de
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
SMB GmbH – Plauenscher Ring 21 – D-01187 Dresden
Dipl.-Inf. Lars Martin +49-(0)173-64 24 461 [email protected]