Object-Oriented Design

In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation.Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry.

Created by: Kenny Wong

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100

icon
Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a android development course? Or looking for more detail on Kenny Wong's Object-Oriented Design? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

icon
Course Description

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.

icon
Instructor Details

Kenny Wong

Kenny Wong is an Associate Professor in the Department of Computing Science, at the University of Alberta, Canada. He received his B.Sc. and Ph.D. degrees in Computer Science from the University of Victoria, Canada. He has been a university instructor for 16 years, regularly teaching team-oriented, project-based software engineering courses, including several offerings of software process and product management. His research in software engineering focuses on analyzing the root causes of problems in the structure, behavior, and management of complex software systems.

icon
Reviews

4.5

117 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Artur P on 5-Apr-19

Very good course, provides you all what is needed to understand different UML diagrams, modelling and Design Principles.

By Volodymyr K on 6-Jan-19

The code in this course isn't maintained. You have to install old Android Studio in order to make things to work. Also, it is always a problem to get your assignments reviewed, you have to beg other classmates to do so. But I enjoyed a theoretical part and the quizzes. The part about Model Checking was not explained (except of the high theoretical words), even after watching the lecture about it I'm still a bit confused.Not bad course as a part of the specialization.

By S R M on 25-Jun-19

Super

By pavithra on 22-Jun-19

xcellent

By Michelle on 2-Jul-19

Thank you for the content of the course. It was very well structured, and relevant to industry standards. I have also acquired new skills through this course. Will highly recommend it to anyone who is interested in object oriented design.

By Kirupa v on 28-Jun-19

Nice course

By Islam N m I E on 1-Jun-19

perfect content and instructors

By Ankur k on 8-Apr-19

good

By DIEGO M G R on 29-Apr-19

Nice , but i think : Using Android is very cumbersome to practice architecture.

By Vladimir on 29-Jun-19

Now I have new useful techniques to solve my tasks. Thank you!

By sachin m on 7-Apr-19

I like completing this course, and i learnt a lot while solving challenging tasks.

By ashishverma on 5-Apr-19

nice course but hs lot of assignments