Sei sulla pagina 1di 20

Towards Clean Legacy Code

Lars Martin, Clean Code Days 2013, 11.09.2013

Towards Clean Legacy Code

Who am I?

Developer, Architect, Consultant Java Enterprise, Eclipse, Continuous

Towards Clean Legacy Code

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

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
Re-Engineering PIM
Architecture Transformation

PIM Foreward Engineering (MDA)

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

Reverse Engineering (ADM)

PSM

PSM

Code

Code

Towards Clean Legacy Code

MoDisco - Concepts
Source Code Documentation Impact Analysis

Databases

Models Viewpoints

Configuration Files

Restruct. Code Migrated Code

MoDisco
..other

Eclipse Modeling

Metrics Norm checking

Towards Clean Legacy Code

MoDisco - Modernization Phases

Existing Artifacts

Discover

Understand

Transform

Software Artifacts Source Code Configuration Tests Database

Models

Viewpoints

New Artifacts

Towards Clean Legacy Code

MoDisco Use Cases

Michael Bhrke / pixelio.de

Towards Clean Legacy Code

MoDisco Use Cases

Quality Assurance (Metrics, ...) Documentation (Structure, Dataflow, ) Refactorierung (Design Pattern, Standards, ) Migration (Framework, Architecture, )
Michael Bhrke / pixelio.de

Towards Clean Legacy Code

Practical Session (1/2)

Towards Clean Legacy Code

Practical Session

JUnit4 JUnit3

Katharina Wieland Mlle / pixelio.de

Towards Clean Legacy Code


java.ecore customizes conforms to extends

Java EMF Model JUnit3 Customization JUnit3 Facet

uses

JUnit3 Queries

uses

Towards Clean Legacy Code

Practical Session (2/2)

Towards Clean Legacy Code

Practical Session

Abstract Factory, Adapter, Bridge, Builder, , Singleton, , Visitor


kiramain / pixelio.de

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

Towards Clean Legacy Code

Outlook 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
Mario De Ma?a / pixelio.de

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

Dipl.-Inf. Lars Martin +49-(0)173-64 24 461 lars.martin@smb-tec.com

SMB GmbH Plauenscher Ring 21 D-01187 Dresden

Potrebbero piacerti anche