Documente Academic
Documente Profesional
Documente Cultură
OO Concepts - 1
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
Superclass
a collection of objects
Subclass
an instance of a class
2
OO Concepts - 2
Class hierarchy
attributes and methods of a superclass are inherited by its subclasses
Messages
the means by which objects exchange information with one another
Inheritance
provides a means for allowing subclasses to reuse existing superclass data and procedures provides mechanism for propagating changes
3
OO Concepts - 3
Polymorphism
mechanism that allows several objects in an class hierarchy to have different methods with the same name instances of each subclass will be free to respond to messages by calling their own version of the method
Advantages of OO Architectures
Implementation details of data and procedures hidden from the outside world
reduces propagation of side effects after changes
Class Candidates
External Entities
devices or people
Events
completion of some task
Roles
manager, engineer, salesperson
Organizational Units
divisions, groups, teams
Structures
sensors, vehicles, computers
10
12
Management of OO Projects
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.
13
OO Project Milestones
Contracts completed. OO Analysis completed. OO Design completed. OO Programming completed. OO Testing completed.
14
OO Project Metrics
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.
15
OO Estimation - 1
1. Use some effort decomposition technique (e.g. FP) to determine size estimates. 2. Use O.O.A. to develop scenario scripts and count them. 3. Use O.O.A. to get the number of key classes. 4. Categorize types of the user interfaces to determine support class multiplier:
NoUI = 2.0 TextUI = 2.25 GUI = 2.5 Complex GUI = 3.0
16
OO Estimation - 2
5. 6. Estimate the number of support classes
# support classes = (# of key classes) * (UI #)
7.