University of Colorado Boulder
Object-Oriented Analysis and Design: Patterns and Principles
University of Colorado Boulder

Object-Oriented Analysis and Design: Patterns and Principles

Sponsored by BrightStar Care

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

29 hours to complete
3 weeks at 9 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

29 hours to complete
3 weeks at 9 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Recognize design challenges in creating maintainable object-oriented systems

  • Apply appropriate standard design patterns to solve typical object-oriented design issues

  • Understand the principles behind the patterns applied to solve object-oriented development problems

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

4 assignments

Taught in English
Recently updated!

December 2024

See how employees at top companies are mastering in-demand skills

Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 5 modules in this course

Continuing examinations of the benefits and challenges of applying design patterns and related principles in Object-Oriented Analysis and Design (OOAD). The overall specialization and the instructor are introduced here. Topic lectures introduce the origins and intent behind Object-Oriented (OO) pattern definitions, and then examine two common OO patterns - Strategy and Observer - for their purpose, structure, supporting principles, and typical applications in the design and development of OO applications. Students should have some background in OO foundational elements, Java, JUnit, and UML (all covered in the prior OOAD foundations & concepts course). These topics are prerequisites to gaining the most benefit from lectures and performing design and development assignments, so students may want to consider appropriate tutorial study as needed.

What's included

8 videos4 readings1 assignment1 peer review2 discussion prompts1 ungraded lab

This module focuses on structural OO patterns - patterns that help with object composition or making complex designs more efficient and flexible. Included here are discussions of Decorator, Facade, Adapter, Proxy, Composite, Flyweight, and Bridge. Supporting OO principles will also be discussed, as well as design topics such as multiple inheritance use guidelines and tradeoffs between the principles and implementation approaches. The project assignment (using Decorator for this module) will be the first design and development effort for an application that will be extended and refactored in each follow-on module.

What's included

7 videos1 reading1 assignment1 programming assignment1 peer review

We continue the examination and assessment of OO design patterns by looking at creational patterns here. Creational patterns provide alternative approaches for creating and instantiating objects, strengthening designs by separating the logic for object creation from object use. Supporting principles (e.g. Dependency Inversion), concepts (deep and shallow copies), and example applications will be provided. OO patterns reviewed here include Factory, Abstract Factory, Singleton, Object Pool, Prototype, and Builder. The project assignment (using Abstract Factory for this module) will be another step in extending and refactoring the class-long application design and development effort.

What's included

6 videos1 reading1 assignment1 programming assignment1 peer review

The final full module of OO design pattern reviews focuses on the behavioral OO patterns, the largest category of patterns that help provide structure for object interactions and responsibilities. The lectures look in detail at Command, State, and Template patterns, with a somewhat briefer review of Iterator, Mediator, Memento, Interpreter, Chain of Responsibility, and Visitor. Supporting principles, pattern structures, and examples of use and implementation are also reviewed. The project assignment continues the build of the class-long application design and development effort, adding the Command pattern to support additional functionality.

What's included

6 videos1 reading1 assignment1 programming assignment1 peer review

In this last class module, we take a look at building patterns from other patterns - creating compound patterns - by examining the most commonly encountered compound pattern, Model/View/Controller (MVC). We also look at a development approach called Thinking in Patterns that encourages pattern use in the analysis and design process. (Both MVC and Thinking in Patterns will be revisited in the final OOAD course.) The capstone project provided here is the last step in the class-long design and development effort, integrating State, Singleton, and Observer patterns for extending and finalizing the application functionality.

What's included

5 videos1 reading1 programming assignment1 peer review

Instructor

Bruce Montgomery, PhD, PMP
University of Colorado Boulder
5 Courses13,459 learners

Offered by

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Recommended if you're interested in Computer Science

Placeholder

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy