Chapter 12: Object-Oriented Design
Software Life Cycle
Many models of the software life cycle have been
developed over the years. Here are three of them.
Model 1: Waterfall Model (early 1970s)
- Analysis
- Design
- Implementation
- Testing
- Deployment
Model 2: Spiral Model (late 1980s)
- Refer to Figure 2
- Prototypes are built at regular intervals
Model 3: Extreme Programming (late 1990s)
- Realistic planning
- Small releases
- Shared metaphor
- Simplicity
- Testing
- Refactoring
- Pair programming
- Collective ownership
- Continuous integration
- 40-hour week
- On-site customer
- Coding standards
Discovering Classes
One Technique: CRC Cards
- C(lass), R(esponsibilities), C(ollaborating Classes)
- Discover the classes - typically nouns
- Determine the responsibilities - typically verbs
- Identify the collaborating classes
Describing Relationships Between Classes - UML Notation
- is-a (inheritance): solid line with open triangle
- has-a (aggregation): solid line with open diamond, the
diamond is next to the class that aggregates the other class
- uses (dependency): dotted line with arrow
- interface implementation: dotted line with open triangle
Methodology for 2 Case Studies
- Gather requirements
- Develop CRC cards
- Draw UML Diagrams
- Use javadoc to document method behavior
- Implement the program
Sample Solution for Lab 11