CSC/ECE 517 Fall 2011/ch4 5a sp
Introduction to Object Oriented Design(OOD)
This page serves as a knowledge source for understanding the concepts covered in Lecture14- Introduction to Object Oriented Design(OOD).
Overview
Lecture 14 <ref name="CSC517">OOD, CSC 517 Lecture14</ref> of CSC 517 covered various aspects of the object oriented design including the basics of OOD principles along with the design criteria and the Class Responsibility Collaboration card tool.
Object-oriented design can be defined as the process of planning a 'system of interacting objects' for the purpose of solving a software problem. It is one approach to software design.
Need for Design
Criteria for Elegant Software Design
Listed below are the different criteria for elegant software design. There are nine different design considerations, out of which the first five address correctness of the software and the rest consider the performance.
Usability
Usability can be measured by the ease of use for the client.
Completeness
A software program/application is complete if it solves all the client needs.
Robustness
A good design is one that can deal with unusual situations gracefully and avoid crashing.
Efficiency
The application performs the necessary computations in a reasonable amount of time.
Scalability
An application is scalable if it performs correctly and efficiently when the problems grow in size by several orders of magnitude.
Readability
If it is easy for another programmer to read and understand the design and code, the design is readable.
Modifiability
If the software can easily be enhanced or restricted by adding new features or removing old features without breaking existing code, the design is modifiable.
Reusability
Resuability checks the ability to be reused in another completely different setting.
Simplicity
The simplicity criteria check if the design and/or the implementation unnecessarily complex.
OOD: The CRC Method
Example 1: Flight reservation system
Example 2: Address Book
Example 3: Course Registration
Example 4: Other Example
Conclusion
References
<references />