Welcome to my personal repository for learning Object Oriented Design through the Coursera course Object-Oriented Design. Within this repository, I am organizing a collection of my notes, assignment solutions and projects.
- Introduction to the course and its objectives.
- Object-Oriented Thinking
- Design in the Software Process
- Requirements
- Design
- Compromise in Requirements and Design
- Design for Quality Attributes
- Trade-offs
- Context and Consequences
- Satisfying Qualities
- Compromise
- Class Responsibility Collaborator (CRC) Cards
- Prototyping and Simulation
- Creating Models in Design
- Evolution of Programming Languages
- Four Design Principles
- Abstraction
- Encapsulation
- Decomposition
- Generalization
- Design Structure in Java and UML Class Diagrams
- Abstraction
- Encapsulation
- Decomposition
- Generalization
- Evaluating Design Complexity
- Coupling
- Cohesion
- Separation of Concerns
- Information Hiding
- Conceptual Integrity
- Generalization Principles
- Specialized UML class diagrams
- UML Sequence Diagrams
- UML State Diagrams
- Model Checking
To get started with this repository, follow these steps:
-
Clone this repository to your local machine using:
git clone https://github.com/your-username/Learning-Object-Oriented-Design-Coursera-UOA.git
-
Navigate to specific directories for notes, assignments, and projects.
This repository is licensed under the MIT License. Feel free to use, modify, and distribute the contents of this repository for educational purposes.
We would like to express our gratitude to the instructors, course creators, and Coursera for providing this valuable learning opportunity.
Happy learning!