CSC 216/s08/be yourself: Difference between revisions
No edit summary |
|||
Line 98: | Line 98: | ||
<br> | <br> | ||
== Learning Exercise Explanation == | |||
<br> | |||
The idea behind this Restaurant O-O Design Game is to | The idea behind this Restaurant O-O Design Game is to |
Revision as of 18:58, 4 April 2008
Object Oriented Design
Object-oriented design is a programming paradigm that uses "objects" and their interactions to design computer programs. It is based on several techniques, including encapsulation, modularity, polymorphism, and inheritance.
The Software Life Cycle
The development of software is usually broken down into five parts: Analysis, Design, Implementation, Testing, and Deployment.
- Analysis- decision-making process in which a decision is made on what the project is supposed to accomplish.
- Design- the plan is developed for how the system will be implemented.
- Implementation- the program is written and compiled to implement the classes and methods that were decided on in the design.
- Testing- tests are run to verify that the program works correctly.
- Deployment- users install program and use it for its intended purpose
Classes
While programming in an object-oriented way, you must:
- Discover classes
- Determine the responsibilities of each class
- Describe the relationships between the classes
A class represents a set of objects with the same behaviors. Some entities should be represented as objects,
and others as primitive types. An example would be of the decision for an address to be a object of an address
class, or simply a string. This decision depends on what your program needs to complete its tasks. Not all
classes can be discovered in the analysis phase, and some of the classes that you need may already exist,
either in the standard library or in a program that you devloped previously.
Relationships Between Classes
Inheritance
- Inheritance is a relationship between a more general class (the superclass) and a more specialized class (the subclass)
- This relationship is often described as the "is-a" relationship
- Examples include:
- Every truck is a vehicle
- Every savings account is a bank account
- Every circle is an ellipse
Aggregation vs. Association
- An aggregation is a set of objects that make up a unit, also known as a "has-a" relationship. An example of aggregation is:
- An association is two or more objects that work together, but one is not part of another. An example of association is:
Learning Exercise
Learning Exercise Explanation
The idea behind this Restaurant O-O Design Game is to
- Decide which elements are classes - Nouns
- Determine the responsibilities (methods) of each class - Verbs
- Describe the relationships between the classes
- Create a "CRC Card" for each class on the provided flash cards.
- CRC Stands for "Classes, Responsibilities, and Collaborators"
Try organinzing classes so that a common superclass can take care of some responsibilities.
- Team members should find the four main classes they think should exist in a small restaurant.
- This means making a list of nouns and choosing the four most practical candidates.
- Write out one class per index card.
- Teams should write at least one responsibility for each class and come up with two total collaborators.
- Find one important task a restaurant would need to complete for each class, and write it on the CRC Card.
- Ask your team if this task needs help from other classes, and write this collaborator on the index card.
- An example of a completed CRC Card:
References
- Java Sun - http://java.sun.com/
- Java Net - http://java.net
- Object-Oriented Programming - http://objc.toodarkpark.net/oop.html