Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slide 1 Chapter 10 Class and Method Design. Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION.

Similar presentations


Presentation on theme: "Slide 1 Chapter 10 Class and Method Design. Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION."— Presentation transcript:

1 Slide 1 Chapter 10 Class and Method Design

2 Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION

3 Slide 3 Levels of Abstraction

4 Slide 4 Elements Classes Objects Attributes States Methods Messages

5 Slide 5 Encapsulation Hiding the content of the object from outside view Communication only through object’s methods Key to reusability

6 Slide 6 Polymorphism Same message triggers different methods in different objects Dynamic binding means specific method is selected at run time Implementation of dynamic binding is language specific Need to be very careful about run time errors Need to ensure semantic consistency

7 Slide 7 Inheritance Single inheritance -- one parent class Multiple inheritance -- multiple parent classes Redefinition and inheritance conflict Most inheritance conflicts are due to poor classification

8 Slide 8 Rumbaugh’s Rules Query operations should not be redefined Methods that redefine inherited ones should only restrict the semantics of the inherited ones The underlying semantics of the inherited method should never be changed The signature (argument list) of the inherited method should never be changed

9 Slide 9 Additional Inheritance Conflicts Two inherited attributes or methods have same name and semantics Two inherited attributes or methods have different name, but same semantics Two inherited attributes or methods have same name and different semantics

10 Slide 10 Inheritance Conflicts with Multiple Inheritance

11 Slide 11 Design Criteria

12 Slide 12 Coupling Indicates the interdependence or interrelationships of the modules Interaction coupling Relationships with methods and objects through message passage

13 Slide 13 Interaction Coupling

14 Slide 14 Types of Method Cohesion

15 Slide 15 Ideal Class Cohesion Contain multiple methods that are visible outside the class Have methods that refer to attributes or other methods defined with the class or its superclass Not have any control-flow coupling between its methods

16 Slide 16 Types of Class Cohesion

17 Slide 17 Connascence Two modules (classes or methods) are so intertwined, that if you make a change in one, it is likely that a change in the other will be required

18 Slide 18 Connascence and Encapsulation Levels Minimize overall connascence by eliminating any unnecessary connascence throughout the system, Minimize connascence across any encapsulation boundaries, such as method boundaries and class boundaries, Maximize connascence within any encapsulation boundary.

19 Slide 19 Types of Connascence

20 Slide 20 Object Design Activities

21 Slide 21 Additional Specification Ensure the classes are both necessary and sufficient for the problem Finalize the visibility of the attributes and methods of each class Determine the signature of every method of each class Define constraints to be preserved by objects

22 Slide 22 Identifying Opportunities for Reuse Analysis patterns Design patterns Frameworks Libraries components

23 Slide 23 Sample Design Pattern

24 Slide 24 Restructuring the Design Factoring Separate aspects of a method or class into a new method or class Normalization Identifies classes missing from the design Challenge inheritance relationships to ensure they only support a generalization/specialization semantics

25 Slide 25 Optimizing the Design Review access paths between objects Review each attribute of each class Review fan-out of each method Examine execution order of statements Create derived activities

26 Slide 26 Map Problem Domain Classes to Implementation Languages Single-Inheritance Language Convert relationships to association relationships Flatten inheritance hierarchy by copying attributes and methods of additional superclass(es)

27 Slide 27 Implement in Object-Based Language Factor out all uses of inheritance from the problem domain class design

28 Slide 28 Implement in a Traditional Language Stay away from this! But if necessary, factor out all uses of Polymorphism Dynamic binding Encapsulation Information hiding

29 Slide 29 Constraints and Contracts

30 Slide 30 Types of Constraints Pre-Conditions A constraint to be met to allow a method to execute Post-condition A constraint to be met after a method executes Invariants Constraints that must be true for all instances of a class

31 Slide 31 Invariants

32 Slide 32 Elements of a Contract

33 Slide 33 Method Specification

34 Slide 34 Method Specification General information Events Message passing Algorithm specification Structured English Pseudocode UML activity diagram

35 Slide 35 Applying the Concepts at CD Selections

36 Slide 36 Revised CD Selections Class Diagram

37 Slide 37 Back of CD CRC Card

38 Slide 38 Get Review Method Contract

39 Slide 39 Revised Package Diagram


Download ppt "Slide 1 Chapter 10 Class and Method Design. Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION."

Similar presentations


Ads by Google