Object-Oriented Design

Course Image
Out of 266 reviews
Go to course
or more from Coursera

Course Information

Platform iconPlatform: Coursera
Level iconDifficulty: Intermediate
Time icon26-40h hours of content
Speed iconStarted Jul 23
Certificate iconCertificate: Certificate (q2)
Instructor Image
Kenny Wong

Related Courses

Design Sprint Foundations
by Udacity | $599

As the title suggests, here the student will learn about testing ideas and leveraging opporunities using Design Sprint. Design Sprint has completely altered the way products are brought to market. This course includes support from industry experts and practical cases to test and train your skills.

C# Fundamentals with C# 5.0
by Pluralsight | Free Trial

Want to become a great C# developer? Be sure to check out this great course by Scott Allen. The course is designed to cover everything you need to get into the C# game, including segments on syntax, classes, objects, types, and assemblies. At the same time, you'll learn how to use Visual Studio and object oriented programming.

How Git Works
by Pluralsight | Free Trial

Explore the .git directory and get a full understanding of the model on which Git is based. This course is designed for beginners and professionals alike with the purpose of teaching you to master Git. The course content covers topics which help you to avoid Git disasters as well as best practices to prevent failures.

UX Design Course
by Springboard | $499/mo.

The course is for everyone. To study Design this course, it is irrelevant whether you have had a design or arts training before or not. In studying this course, students go through a step-by-step process of growing from beginner to actually launching a UX Design portfolio. It is a user-focused course.

Introduction to Data Science
by Springboard | $499/mo.

Learn about the science behind how to make data work in this broad overview designed for beginners to data management. This course aims to prepare students for further study in the Data Science field. Discover how raw data is managed and its relation to data mining. You can also expect to gain a sound basic knowledge in R.

Object-Oriented Design

This course is created or produced by University of Alberta via Coursera

Description of the course

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.

Syllabus of "Object-Oriented Design"

Object-Oriented Analysis and Design

Good software design begins before coding. After establishing the initial software requirements, design practices involve two main activities: conceptual design and technical design. In this module, you will realize the importance of design and object-oriented thinking, and learn how to design software using techniques like CRC cards.

Object-Oriented Modeling

Best software design practices have evolved alongside programming languages. Today, all developers should be familiar with abstraction, encapsulation, decomposition, and generalization, which are fundamental principles in object-oriented design. You will learn all of these principles and how they are expressed in Java and communicated visually in Unified Modelling Language.More

Design Principles

Additional design principles will help you to create code that is flexible, reusable, and maintainable. In this module you will learn about coupling and cohesion, separation of concerns, information hiding, and conceptual integrity. You will also learn to avoid common pitfalls with inheritance, and ways to express software behavior in UML.

Capstone Challenge

In the previous modules you were introduced to object-oriented analysis and design, object-oriented modeling, and design principles. To cement your understanding of this material, you created a UML class diagram from an example Android code base, and used your understanding of the code base to make sequence and state diagrams to model its behavior. Now, in the final module of the course, given a description of new functionality and an updated UML class diagram, you will implement the updated design into the Android code base. After completing this development task, you will be ready to complete the final exam. More

Go to course
Back to search results