Title: Software Engineering
1Software Engineering
Dr. Mohamed Fayad, Associate Professor Department
of Computer Science Engineering University of
Nebraska, Lincoln Ferguson Hall, P.O. Box
880115 Lincoln, NE 68588-0115 http//www.cse.unl.e
du/fayad
2Lesson 33 Dealing with Legacy Systems
2
3Lesson Objectives
- Understand how to reuse non-OO software
- Learn how to encapsulate non-OO code
- Recognize required language features
- Learn how to develop object-oriented
encapsulations of non-OO code - Learn how to manage dual documentation
4OO SOFTWARE COMMUNICATES VIA WELL DEFINED
INTERFACES
5NON-OO SOFTWARE MUST BE COMPLETELY ENCAPSULATED
6LANGUAGE INTERFACING RULES
- Language interface must maintain OO structure
- No data coupling
- Well defined interfaces
- Information Hiding
- Object-Oriented language should be main part of
program - Helps keep as many OO features as possible
- Maximum benefit of maintainability and
extensibility
7RULES TO ENCAPSULATE HERITAGE CODE INTO OBJECTS
- Look for clean interfaces
- If necessary, create messages to pass data - no
data coupling allowed
8MANAGING OO/NON-OO DOCUMENTATION(DOD-STD-2167A
EXAMPLE)
9REUSING NON-OO SOFTWARE SUMMARY
- Non-OO software can be reused within OO systems
- Non-OO software must be completely encapsulated
- OO notation can be developed for encapsulated
heritage software - OO documentation can be developed using the
encapsulation