160 likes | 710 Views
Object-Oriented Development. Use OO perspective throughout analysis/design/programming stages Object-oriented analysis Object-oriented design Object-oriented programming Transition between stages should be seamless each stage introduces additional detail. Object-Oriented Design Features.
E N D
Object-Oriented Development • Use OO perspective throughout analysis/design/programming stages • Object-oriented analysis • Object-oriented design • Object-oriented programming • Transition between stages should be seamless • each stage introduces additional detail Object-Oriented Design
Object-Oriented DesignFeatures • Information hiding • manages complexity • Evolution advantage: • can change implementation “freely” • Generalization and inheritance • design (and implementation) reuse • advantages with evolution (specifically specialization) Object-Oriented Design
Object-Oriented DesignGeneralization and Inheritance • Generalization • Identifying what different classes of objects have in common • Inheritance • How generalization is supported in many OO languages • Representation inheritance vs. Interface inheritance Object-Oriented Design
Object-Oriented DesignGeneralization and Inheritance Object-Oriented Design
Object-Oriented DesignGeneralization and Inheritance • An abstraction mechanism which may be used to classify entities • A reuse mechanism at both the design and implementation (programming) level • Inheritance graph • a source of organizational knowledge about domains and systems Object-Oriented Design
Concurrency Servers vs. Active Objects • Servers • Server controlled access to object • Each method call starts a process • Locking ensures against interference among threads in object • Active Objects • Object modeled as a process, always updating internal state Object-Oriented Design
Concurrency Language Support In Java: • Servers • Synchronized methods on all classes (via inheritance from class Object) • Active Objects • Thread interface Object-Oriented Design
Object-Oriented DesignDesign Process • Define context and modes of use • Design system architecture • Identify principle objects • Design/model principal objects • Specify object interfaces Object-Oriented Design