- Level Professional
- Duration 17 hours
- Course by University of Alberta
-
Offered by
About
This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML). You will be challenged in the Capstone Project to apply your knowledge of object-oriented design by evolving and documenting the Java codebase for an Android application with corresponding UML documentation. After completing this course, you will be able to: - Apply the Class Responsibility Collaborator (CRC) technique to analyze and design the object-oriented model for a problem. - Explain and apply object-oriented modeling principles and their purpose (e.g., abstraction, encapsulation, decomposition, generalization). - Explain and apply different types of inheritance - Explain the difference between association, aggregation, and composition dependencies. - Express object-oriented models as Unified Modeling Language (UML) class diagrams. - Translate between UML class diagrams and equivalent Java code. - Apply design guidelines for modularity, separation of concerns, information hiding, and conceptual integrity to create a flexible, reusable, maintainable design. - Explain the tradeoff between cohesion and coupling.Modules
Introduction to Software Design and Architecture
3
Assignment
- Java Proficiency Quiz 1
- Java Proficiency Quiz 2
- Java Proficiency Quiz 3
2
Videos
- 1.1.1 – Welcome to Software Design and Architecture
- 1.1.2 – Software Architect and Design Roles in Industry
5
Readings
- Meet Your Presenter – Sam Jeffery
- Meet Your Facilitators
- Java Knowledge
- Object Oriented Design Course Notes
- Course Glossary
Object-Oriented Thinking
1
Videos
- 1.1.3 – Object-Oriented Modeling
1
Readings
- Discussion: Introduce Yourself
Design in the Software Process
1
Videos
- 1.1.4 – Software Requirements, Conceptual and Technical Designs
2
Readings
- Expressing Requirements with User Stories
- Categories of Objects in Design
Design for Quality Attributes
1
Videos
- 1.1.5 – Competing Qualities and Trade-offs
Class Responsibility Collaborator (CRC)
1
Videos
- 1.1.6 – Record, Organize, and Refine Components
1
Readings
- Discussion: Modeling CRC
Review
1
Assignment
- Module 1 Review
Creating Models in Design
1
Videos
- 1.2.1 – Models: Bridging Concepts and Solutions
Languages Evolution
1
Videos
- 1.2.2 – Languages Evolution
1
Readings
- Discussion: Design Principles and Language Evolution
Four Design Principles
4
Videos
- 1.2.3 – Abstraction
- 1.2.4 – Encapsulation
- 1.2.5 – Decomposition
- 1.2.6 – Generalization
Expressing Design Structure in Java & UML Class Diagrams
5
Videos
- 1.2.7 – Abstraction in Java and UML
- 1.2.8 – Encapsulation in Java and UML
- 1.2.9 – Decomposition in Java and UML
- 1.2.10 – Generalization with Inheritance in Java and UML
- 1.2.11 – Generalization with Interfaces in Java and UML
Assignments
2
Peer Review
- Ungraded Assignment - UML Class Diagram
- Capstone Assignment 1.1 – UML Class Diagram
3
Readings
- Ungraded Assignment - UML Class Diagram (Solution)
- Peer Review Request Forum
- Capstone Assignment 1.1 - UML Class Diagram (Solution)
Review
1
Assignment
- Module 2 Review
Design Principles
4
Videos
- 1.3.1 – Coupling and Cohesion
- 1.3.2 – Separation of Concerns
- 1.3.3 – Information Hiding
- 1.3.4 – Conceptual Integrity
2
Readings
- Discussion: Coupling and Cohesion
- Discussion: Design Principles
Generalization Principles
1
Videos
- 1.3.5 – Inheritance Issues
Modelling Behaviour
4
Peer Review
- Ungraded Assignment – UML Sequence Diagram
- Capstone Assignment 1.2 – UML Sequence Diagram
- Ungraded Assignment – UML State Diagram
- Capstone Assignment 1.3 – UML State Diagram
2
Videos
- 1.3.6 – UML Sequence Diagram
- 1.3.7 – UML State Diagram
4
Readings
- Ungraded Assignment - UML Sequence Diagram (Solution)
- Capstone Assignment 1.2 - UML Sequence Diagram (Solution)
- Ungraded Assignment - UML State Diagram (Solution)
- Capstone Assignment 1.3 - UML State Diagram (Solution)
Model Checking
1
Videos
- 1.3.8 – Model Checking
Review
1
Assignment
- Module 3 Review
Assignments
1
Peer Review
- Capstone Assignment 1.4 – Update the Application
1
Readings
- Capstone Assignment 1.4 - Update the Application (Solution)
Course Review
1
Assignment
- Final Exam
3
Readings
- Discussion: Last Word – Object-Oriented Design
- Acknowledgements
- Credits
Auto Summary
Enhance your Java skills with Coursera's "Object-Oriented Design" course, tailored for IT & Computer Science professionals. Dive deep into object-oriented analysis, design principles, and UML notation to create modular, reusable software. Challenge yourself with a Capstone Project on an Android application. Suitable for professionals, this 1020-minute course offers flexible subscription options.

Kenny Wong