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 : 88 / 100

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

placeholder

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
More android development courses

Flutter & Firebase: Build a Complete App for iOS & Android

$11.99

How To Launch Your App In Just 16 hrs - Android Development

$11.99

Android Game Development for Beginners - Learn Core Concepts

$11.99

Android App Development Bootcamp 2021 - Android 10 (Q)

$11.99

Game Development for Modern Platforms

Free

Principles of Computing (Part 2)

Free

icon
Reviews

4.4

139 total reviews

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

By deepakts on 25-Jan-19

Good but description of few concepts should have given more examples like object types, state diagram etc

By Stuart F on 27-Jan-19

Great!! Very satisfied with the course!

By christian E Z A on 17-Feb-18

Awesome and not boring content

By Donatien L on 25-Feb-18

This was really very helpful course, learn many concepts from this.

By Luis V on 28-Feb-18

Good content and very updated. Cover everything in this subject. It is challenge-full enough no matter your level. It is a must take course.

By Filip D on 21-Mar-18

All is very good!

By Maru A on 27-Dec-17

Honestly, this course is very poor and doesnt gives you necessary tools to model a object oriented solution in UML. The exercises need to be more real , what i mean is there isnt any code to help us to understand the real application of UML in POO.

By Tereshchenko V on 10-Oct-17

Videos are not bad, but assignments more about Android applications development (not covered in the course) than about Object-Oriented Design.

By Manjunath D on 22-May-18

Not happy with the examples are given and not more interactive one .

By Anastasia K on 30-Aug-19

So tired to deal with the android system. Spent more time making it work than studying the material

By Bogdan N on 7-Jul-19

Course teaches you some basics but it gets quite quickly over certain elements. In a 7 minute/10 minute video you can't have a good understanding of the UML Sequence Diagram or UML State Diagram. I would have like to see more details on that part that could allow to do a better job at capstone projects.

By Patty E on 27-Nov-17

The Android exercises were far off topic.