CSC/ECE 517 Fall 2011/ch4 5a sp: Difference between revisions
Line 14: | Line 14: | ||
= Criteria for Elegant Software 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. | 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. | ||
[http://en.wikipedia.org/wiki/Usability Usability]: Usability can be measured by the ease of use for the client. | [http://en.wikipedia.org/wiki/Usability 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. | '''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. | '''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. | '''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. | '''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. | '''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. | '''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. | '''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. | '''Simplicity''': The simplicity criteria check if the design and/or the implementation unnecessarily complex. | ||
Revision as of 04:59, 30 October 2011
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 />