An applied analysis and design class that addresses the use of object-oriented techniques. Topics include domain modeling, use cases, architectural design and modeling notations. Students apply techniques in analysis and design projects. Focus is on key object-oriented design patterns and principles.
Object-Oriented Analysis and Design: Patterns and Principles
Instructor: Bruce Montgomery, PhD, PMP
Sponsored by ITC-Infotech
Recommended experience
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
Add to your LinkedIn profile
4 assignments
December 2024
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
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
Offered by
Why people choose Coursera for their career
Recommended if you're interested in Computer Science
University of Colorado Boulder
University of Colorado Boulder
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