Quick Lecture Survey
- Describe one thing that John can do differently to help you to better
understand the 221 material
- Describe one thing that you can do differently to help you to better
understand the 221 material
- Describe one thing that you like about the 221 lectures
- Name any topics (perhaps from CS 160) that you would like
to see covered again in CS 221
- Do you have any other comments or concerns?
Chapter 1: Introduction to Software Design
Software Activities
- Requirements
- Analysis
- Design: Top-Down (Figures 1.3-1.5), Bottom-Up, Object-Oriented
- Implementation
- Testing (unit testing, integration testing, etc.)
Software Life Cycle
- Waterfall Model: Figure 1.1
- Unified Software Life Cycle Model: Figure 1.2
UML: Unified Modeling Language (Figures 1.6 and 1.8)
- Rectangles: Classes
- Lines: Interactions
- Figure: Actor
Abstraction
Abstract Data Type (ADT)
- Definition: The combination of data and its methods.
- An interface can be used to specify the methods of an ADT.
- A class can be used to implement an ADT.
Writing Good Java Code
- Javadoc:
@author, @version, @param, @return (Listing 1.1)
- Preconditions and Postconditions (Example 1.2)
Lecture Code