SlideShare a Scribd company logo
1 of 20
Download to read offline
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
PSMPSM’
PIM’
Code’ Code
ForewardEngineering(MDA)
ReverseEngineering(ADM)
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
UnderstandExisting 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
lars.martin@smb-tec.com

More Related Content

Similar to Towards Clean Legacy Code

Software Archaeology - Raiders of the Lost Code (short)
Software Archaeology - Raiders of the Lost Code (short)Software Archaeology - Raiders of the Lost Code (short)
Software Archaeology - Raiders of the Lost Code (short)Lars Martin
 
Senior Sofware Resume
Senior Sofware ResumeSenior Sofware Resume
Senior Sofware ResumeArkadiy Kogan
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...Benoit Combemale
 
MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009fmadiot
 
Cooper, Mark Resume.Final.8.2.16
Cooper, Mark Resume.Final.8.2.16Cooper, Mark Resume.Final.8.2.16
Cooper, Mark Resume.Final.8.2.16Mark Cooper
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019Iulian Pintoiu
 
Using Algorithmia to leverage AI and Machine Learning APIs
Using Algorithmia to leverage AI and Machine Learning APIsUsing Algorithmia to leverage AI and Machine Learning APIs
Using Algorithmia to leverage AI and Machine Learning APIsRakuten Group, Inc.
 
The Essentials Of Project Management
The Essentials Of Project ManagementThe Essentials Of Project Management
The Essentials Of Project ManagementLaura Arrigo
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Introducing Eclipse MoDisco
Introducing Eclipse MoDiscoIntroducing Eclipse MoDisco
Introducing Eclipse MoDiscoHugo Bruneliere
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringHeiko Koziolek
 
Serverless machine learning architectures at Helixa
Serverless machine learning architectures at HelixaServerless machine learning architectures at Helixa
Serverless machine learning architectures at HelixaData Science Milan
 
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Labs
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Hugo Bruneliere
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems DissolveEoin Woods
 

Similar to Towards Clean Legacy Code (20)

Software Archaeology - Raiders of the Lost Code (short)
Software Archaeology - Raiders of the Lost Code (short)Software Archaeology - Raiders of the Lost Code (short)
Software Archaeology - Raiders of the Lost Code (short)
 
Senior Sofware Resume
Senior Sofware ResumeSenior Sofware Resume
Senior Sofware Resume
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
 
MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009MoDisco Poster EclipseCon 2009
MoDisco Poster EclipseCon 2009
 
Cooper, Mark Resume.Final.8.2.16
Cooper, Mark Resume.Final.8.2.16Cooper, Mark Resume.Final.8.2.16
Cooper, Mark Resume.Final.8.2.16
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019
 
Using Algorithmia to leverage AI and Machine Learning APIs
Using Algorithmia to leverage AI and Machine Learning APIsUsing Algorithmia to leverage AI and Machine Learning APIs
Using Algorithmia to leverage AI and Machine Learning APIs
 
The Essentials Of Project Management
The Essentials Of Project ManagementThe Essentials Of Project Management
The Essentials Of Project Management
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Introducing Eclipse MoDisco
Introducing Eclipse MoDiscoIntroducing Eclipse MoDisco
Introducing Eclipse MoDisco
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
Serverless machine learning architectures at Helixa
Serverless machine learning architectures at HelixaServerless machine learning architectures at Helixa
Serverless machine learning architectures at Helixa
 
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Ahmed El Mawaziny CV
Ahmed El Mawaziny CVAhmed El Mawaziny CV
Ahmed El Mawaziny CV
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
scottjgriffith_CV
scottjgriffith_CVscottjgriffith_CV
scottjgriffith_CV
 

More from Lars Martin

Skalierbares CI Deployment mit Docker
Skalierbares CI Deployment mit DockerSkalierbares CI Deployment mit Docker
Skalierbares CI Deployment mit DockerLars Martin
 
Software Development in the Cloud
Software Development in the CloudSoftware Development in the Cloud
Software Development in the CloudLars Martin
 
Application Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are coolApplication Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are coolLars Martin
 
smart3 - Smart Gardening für smarte Bürger in einer smarten City
smart3 - Smart Gardening für smarte Bürger in einer smarten Citysmart3 - Smart Gardening für smarte Bürger in einer smarten City
smart3 - Smart Gardening für smarte Bürger in einer smarten CityLars Martin
 
Software Archaeology - Raiders of the Lost Code (long)
Software Archaeology - Raiders of the Lost Code (long)Software Archaeology - Raiders of the Lost Code (long)
Software Archaeology - Raiders of the Lost Code (long)Lars Martin
 
Formal Requirement Engineering with Xtext and ProR
Formal Requirement Engineering with Xtext and ProRFormal Requirement Engineering with Xtext and ProR
Formal Requirement Engineering with Xtext and ProRLars Martin
 

More from Lars Martin (6)

Skalierbares CI Deployment mit Docker
Skalierbares CI Deployment mit DockerSkalierbares CI Deployment mit Docker
Skalierbares CI Deployment mit Docker
 
Software Development in the Cloud
Software Development in the CloudSoftware Development in the Cloud
Software Development in the Cloud
 
Application Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are coolApplication Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are cool
 
smart3 - Smart Gardening für smarte Bürger in einer smarten City
smart3 - Smart Gardening für smarte Bürger in einer smarten Citysmart3 - Smart Gardening für smarte Bürger in einer smarten City
smart3 - Smart Gardening für smarte Bürger in einer smarten City
 
Software Archaeology - Raiders of the Lost Code (long)
Software Archaeology - Raiders of the Lost Code (long)Software Archaeology - Raiders of the Lost Code (long)
Software Archaeology - Raiders of the Lost Code (long)
 
Formal Requirement Engineering with Xtext and ProR
Formal Requirement Engineering with Xtext and ProRFormal Requirement Engineering with Xtext and ProR
Formal Requirement Engineering with Xtext and ProR
 

Recently uploaded

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 

Recently uploaded (20)

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 

Towards Clean Legacy Code

  • 1. Towards Clean Legacy Code Lars Martin, Clean Code Days 2013, 11.09.2013
  • 2. Towards Clean Legacy Code §  Developer, Architect, Consultant §  Java Enterprise, Eclipse, Continuous … Who am I?
  • 3. 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
  • 4. Towards Clean Legacy Code Motivation §  legacy system §  heavy database access §  ORM è java.sql.* §  new team ©  Katharina  Bregulla  /  pixelio.de  
  • 5. 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  
  • 6. Towards Clean Legacy Code Horseshoe-Model PIM PSMPSM’ PIM’ Code’ Code ForewardEngineering(MDA) ReverseEngineering(ADM) 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  
  • 7. 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
  • 8. Towards Clean Legacy Code MoDisco - Modernization Phases Models Discover Viewpoints UnderstandExisting Artifacts Software Artifacts •  Source Code •  Configuration •  Tests •  Database •  … New Artifacts Transform
  • 9. Towards Clean Legacy Code MoDisco – Use Cases ©  Michael  Bührke    /  pixelio.de  
  • 10. §  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  
  • 12. JUnit4 é JUnit3 ©  Katharina  Wieland  Mülle  /  pixelio.de   Towards Clean Legacy Code Practical Session
  • 15. Abstract Factory, Adapter, Bridge, Builder, …, Singleton, …, Visitor ©  kiramain  /  pixelio.de   Towards Clean Legacy Code Practical Session
  • 16. 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  
  • 17. ©  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
  • 18. ©  Gerd  Altmann  /  pixelio.de  
  • 19. 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  
  • 20. SMB GmbH – Plauenscher Ring 21 – D-01187 Dresden Dipl.-Inf. Lars Martin +49-(0)173-64 24 461 lars.martin@smb-tec.com