CPSC 421-010 Object-Oriented Programming (OOP) Spring 2023
Section 010 TR 10:45 am - 12:00 pm
Arts & Sciences (CAS) 136
Notes
Software Design
Rainfall Coding Practices
Software Design Characteristics
Algorithmic Decomposition
Separate Compilation
XML
Coding Style
Free-Function Stereotypes
Concerns
Vertical Development
Function Generalization
Naming
Method Naming Standards
Scope
Iterator
Event States
DesignFun Feedback
Sequence Diagrams
Cohesion
Namespaces
UML Class Diagrams
Method Stereotypes
Encapsulation
Constructors and Initialization
Callbacks
UML Multiplicity
Lambda Functions
RAII
IoC
UML Class Relationships
Dependencies
Coupling
UML Association
UML Generalization
Dispatch
Virtual Destructors
Design Patterns
Design Pattern Template Method
rValue References
Errors and Exception Handling
Handlers
API
Design Pattern Factory Method
SOLID
Design Pattern Command
C++ Inheritance Specifiers
Design Pattern Composite
C++ Constructor Specifiers
Design Pattern Adapter
Design Pattern Strategy
PIMPL
Dependency Injection
Software Architecture
Design Pattern Facade
Design Pattern Singleton
Design Pattern Visitor
C++ Templates
Libraries
Design Pattern Proxy
Design Pattern Message Queue
Conclusion
Guides
Development Environment: Tools
GitHub Authentication
Git Setup
GitHub Codespaces
SSH Key Authentication
Workflow
Compilers
Git Tags
Benchmarks
srcML Resources
Names Feedback
Valgrind
Using Docker for Linux Builds