This document discusses object-oriented programming concepts like classes, objects, inheritance, polymorphism, and class hierarchies. It explains that classes define templates for objects, with subclasses inheriting attributes and methods from superclasses. The document also outlines steps for object-oriented development like identifying candidate classes, looking for existing classes in a library, and engineering new classes when needed.
3. ? Object
? encapsulates both data (attributes) and data manipulation
functions (called methods, operations, and services)
? Class
? generalized description (template or pattern) that describes a
collection of similar objects
? Super-class
? a collection of objects
? Sub-class
? an instance of a class
3
4. ? Class hierarchy
? attributes and methods of a super-class are inherited by its
sub-classes
? Messages
? the means by which objects exchange information with one
another
? Inheritance
? provides a means for allowing sub-classes to reuse existing
super-class data and procedures
? provides mechanism for propagating changes
4
5. ? Polymorphism
? mechanism that allows several objects in an class hierarchy to
have different methods with the same name
? instances of each sub-class will be free to respond to
messages by calling their own version of the method
5
6. ? Build new class from scratch without using
inheritance
? Use inheritance to create new class from
existing class contains most of the desired
attributes and operations
? Restructure the class hierarchy so that the
required attributes and operations can be
inherited by the newly created class
6
7. ? Override some attributes or operations in an
existing class and use inheritance to create a
new class with (specialized) private versions of
these attributes and operations.
7
8. ? Customer communication
? Planning
? Risk analysis
? Engineering construction and analysis
? Customer evaluation
8
9. ? Identify candidate classes
? Look-up classes in library
? Extract classes if available
? Engineer classes if not available
? Object-oriented analysis (OOA)
? Object-oriented design (OOD)
? Object-oriented programming (OOP)
? Object-oriented testing (OOT)
? Put new classes in library
? Construct Nth iteration of the system
9
10. ? External Entities
? devices or people
? Things in Problem Domain
? Reports, displays, signals
? Events
? completion of some task
? Roles
? manager, engineer, salesperson
? Organizational Units
? divisions, groups, teams
? Structures
? sensors, vehicles, computers
10
11. ? Does object information need to be retained?
? Does object provide a set of needed services that can
change its attributes?
? Does object have major (important) attributes?
? Can you identify common attributes for all object
instances?
? Can you identify common operations for all object
instances?
? Is it an external entity that produces or consumes
information?
11
12. ? Establish a common process framework (CPF).
? Use CPF & historic data to eliminate time & effort.
? Specify products & milestones.
? Define Q.A. checkpoints.
? Manage changes.
? Monitor project.
12
14. ? Number of scenario scripts.
? Number of key classes.
? Number of support classes.
? (# key classes)/(# support classes).
? Number of major iterations (around spiral
model).
? Number of completed contracts.
14