110 likes | 281 Views
Chapter 3: Object-Oriented Design. Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer Science Department. Outline. Responsibility Implies Noninterference Programming in the Small and in the Large Why Begin with Behavior? A Case Study in RDD
E N D
Chapter 3: Object-Oriented Design Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer Science Department
Outline • Responsibility Implies Noninterference • Programming in the Small and in the Large • Why Begin with Behavior? • A Case Study in RDD • The Interactive Intelligent Kitchen Helper • Working with Components • Identification of Components • CRC Cards-Recoding Responsibility • Giving Components a Physical Representation • The What/Who Cycle • Documentation
Responsibility Implies Noninterference • The conventional programming proceeds largely by doing something to something else • One portion of code in a software system is often tied to many other sections of the system • A responsibility-driven design attempts to cut these links • This notion might at first seem no more than information hiding and modularity • Responsibility-driven design elevated information hiding from a technique to an art • One major benefit of object-oriented programming is the reuse of software subsystems
Programming in the Small and in the Large • Programming in the small has the following attributes: • Code is developed by a single programmer who understand all aspects of a project • The major problem is the design and development of algorithms for dealing with the problem at hand • Programming in the large has the following features: • The software system is developed by a large team of programmers with no one understanding all aspects of the project • The major problem is the management of details and communication of information between diverse potions of the project
Why Begin with Behavior? • Understood long before any other aspect • Can be described almost from the moment an idea is conceived • Can be described in terms meaningful to both programmer and client