SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Kürzlich hochgeladen (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

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