Geen diatitel - Department of Software Technology

advertisement
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
09-09-1999
CMG / ESTEC
2
Function Duplication
Example
When is a year a leap year ?
Two (small) 100.000 LOC systems
contained 8 different computations!
return( (year%4
== 0 &&
year%100 != 0) ||
year%400 == 0 )
09-09-1999
CMG / ESTEC
IF YY = 92 OR 96
MOVE 29 TO MD(2)
END-IF
3
Component Software
Technology
Process
Abstraction
Selection
Specialization
Integration
Create reusable assets
Support
Reuse
Manage
Kent Beck:
Say it once!
09-09-1999
AND ONLY ONCE!
CMG / ESTEC
4
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
09-09-1999
CMG / ESTEC
5
Domain-Specific Languages
Component
Libarary
Product
Specification
• Legacy Calls
• Cobol Routines
DSL
Compiler
• VSAM data
• CICS screens
• ...
09-09-1999
CMG / ESTEC
6
Domain Engineering
Identify potential
reusable assets
Domain
Engineering
Domain =
family of systems
3 legacy + 3 future
Economy of scope
Organizational learning
09-09-1999
CMG / ESTEC
Application
System
Engineering
7
Organizational Domain
Modeling (ODM)
Plan Domain
Model Domain
 stakeholders
 domain boundary
decisions
 examples
 counter-examples
 domain experts
 reverse engineer
legacy systems
 lexicon of terms
 commonality
 variability
09-09-1999
CMG / ESTEC
Engineer
Asset Base
 scope
 architect
 implement
8
Reverse Engineering Tools
Legacy
Sources
Fact
Extractor
Hypertext
documentation
Repository
• Abstract
• Combine
• Filter
09-09-1999
Object Model
Visualization
CMG / ESTEC
9
Large classes
Method nrs
Field names
Small classes
09-09-1999
CMG / ESTEC
10
Summary
Components:
Abstraction
Selection
Specialization
Integration
Domain Engineering:
Comonality
Variability
Economy of Scope
Family of systems
Domain-Specific Languages
Program Understanding Tools
09-09-1999
CMG / ESTEC
11
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
09-09-1999
CMG / ESTEC
12
Questions?
Component-Based
Development: Keywords
Object-Oriented Application Framework
Hot Spots
Design Pattern
Java
Object Request Brokers, CORBA, DCOM
Software Architecture
Unified Modeling Language
N-Tier Systems
09-09-1999
CMG / ESTEC
14
Download