Good software starts with great design. Get a fun and fresh introduction to object-oriented design and analysis—from defining requirements to diagramming classes.
Overview
Syllabus
Introduction
- Learn object-oriented design principles
- What you should know
- Object-oriented thinking
- Objects
- Classes
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Analysis, design, and programming
- Unified modeling language (UML)
- Defining requirements
- FURPS+ requirements
- Challenge: Jukebox requirements
- Solution: Jukebox requirements
- Use cases
- Identifying the actors
- Identifying the scenarios
- Diagramming use cases
- User stories
- Challenge: Jukebox use cases
- Solution: Jukebox use cases
- Identifying the objects
- Identifying class relationships
- Identifying class responsibilities
- CRC cards
- Challenge: Jukebox conceptual model
- Solution: Jukebox conceptual model
- Creating class diagrams: Attributes
- Creating class diagrams: Behaviors
- Converting class diagrams into code
- Instantiating classes
- Class with multiple constructors
- Static attributes and methods
- Challenge: Jukebox class diagrams
- Solution: Jukebox class diagrams
- Identifying inheritance situations
- Using inheritance
- Abstract and concrete classes
- Interfaces
- Aggregation
- Composition
- Challenge: Jukebox class relationships
- Solution: Jukebox class relationships
- OOP support in different languages
- General development principles
- Software testing
- Design patterns
- Next steps
Taught by
Olivia Chiu Stone and Barron Stone