Lecture Notes for CPS211: Object-Oriented Software Development

These notes are from the 2009 offering of the course. They are placed here primarily to assist students enrolled in the course; they are not intended as polished documents. All notes are copyright © Russell C. Bjork. Students enrolled in CPS211 may reproduce these notes for personal study; all other rights are reserved.

  1. Course Intro; Introduction To Software Engineering
  2. Requirements Engineering
  3. Use Cases and Initial Functional Tests
  4. Identifying Objects and Classes
  5. Class Diagrams in UML
  6. Representing Associations in Java; Collections
  7. Identifying Responsibilities; CRC Cards
  8. Modelling Dynamic Behavior of System: Interaction Diagrams in UML
  9. State Diagrams
  10. Cohesion and Coupling; the MVC Paradigm
  11. Detailed Design and Implementation
  12. Quality Assurance
  13. Concurrency and Threads
  14. Architectural Design
  15. Persistence, Relational Databases
  16. Database Querying and Updating
  17. Java Database Connectivity (JDBC)
  18. Relational Database Design
  19. Distributed Systems
  20. Design Patterns
  21. The User Interface