• 140 likes • 165 Views
Software Re-Creation. From Legacy to Component Arie van Deursen. Software Duplication. Programs “Dit programma is grotendeels een kopie van het XY progamma ABCD123 .” Subsystems CICS and BATCH functionality Functions & Computations Entire systems.
E N D
Software Re-Creation From Legacy to Component Arie van Deursen
Software Duplication • Programs • “Dit programma is grotendeels een kopie van het XY progamma ABCD123.” • Subsystems • CICS and BATCH functionality • Functions & Computations • Entire systems CMG / ESTEC
return( (year%4 == 0 && year%100 != 0) || year%400 == 0 ) Function Duplication Example • When is a year a leap year ? • Two (small) 100.000 LOC systems contained 8 different computations! IF YY = 92 OR 96 MOVE 29 TO MD(2) END-IF CMG / ESTEC
Technology Abstraction Selection Specialization Integration Process Create reusable assets Support Reuse Manage Component Software Kent Beck: Say it once! AND ONLY ONCE! CMG / ESTEC
Financial Products • Loan, swap, future, FRA, … • Introduce innovative products • Bank’s backoffice hard to adapt • Describe products at high level • Generate (COBOL) code • At MeesPierson, with CAP Gemini CMG / ESTEC
Component Libarary • Legacy Calls • Cobol Routines • VSAM data • CICS screens • . . . DSL Compiler Domain-Specific Languages Product Specification CMG / ESTEC
Identify potential reusable assets Domain = family of systems 3 legacy + 3 future Economy of scope Organizational learning Application System Engineering Domain Engineering Domain Engineering CMG / ESTEC
Plan Domain stakeholders domain boundary decisions examples counter-examples Organizational Domain Modeling (ODM) Model Domain • domain experts • reverse engineer legacy systems • lexicon of terms • commonality • variability Engineer Asset Base • scope • architect • implement CMG / ESTEC
Fact Extractor Hypertext documentation Repository Object Model Visualization • Abstract • Combine • Filter Reverse Engineering Tools Legacy Sources CMG / ESTEC
Method nrs Field names Large classes Small classes CMG / ESTEC
Components: Abstraction Selection Specialization Integration Domain-Specific Languages Program Understanding Tools Summary Domain Engineering: • Comonality • Variability • Economy of Scope • Family of systems CMG / ESTEC
In Conclusion CBD: essential for producing quality software • Recommended Reading • Meyer: Object-Oriented Software Construction • Brooks: The Mythical Man Month • Jacobson, et. al.: Software Reuse • Quote from Alan Kay: To be a good software engineer, you need the ability to feel pain CMG / ESTEC
Object-Oriented Application Framework Hot Spots Design Pattern Java Object Request Brokers, CORBA, DCOM Software Architecture Unified Modeling Language N-Tier Systems Component-Based Development: Keywords CMG / ESTEC