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 practices and architectural design.
This course can be taken for academic credit as part of CU Boulder’s Masters of Science in Computer Science (MS-CS) degrees offered on the Coursera platform. This fully accredited graduate degree offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:
MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder
Object-Oriented Analysis and Design: Practice & Architecture
University of Colorado Boulder via Coursera
-
33
-
- Write review
Overview
Syllabus
- Introductions to OOAD: Practice & Architecture
- This module introduces core object-oriented (OO) design principles and modeling techniques to establish a strong foundation for designing robust and maintainable software systems. Learners will explore how UML can be used to represent OO concepts, analyze real-world applications through design patterns, and evaluate best practices for developing resilient OO-based solutions.
- Advanced OO Development Practices
- This module builds on foundational object-oriented (OO) principles by applying advanced design patterns, refactoring techniques, and best practices in OO development. You will explore how to integrate UML modeling with OO design, improve software resilience through refactoring, and implement design principles in Java-based applications. Additionally, the module introduces advanced OO frameworks, including dependency injection (DI) and inversion of control (IoC), to enhance modularity and maintainability in complex software systems.
- OO in Architecture and Applications, Part 1
- This module explores the intersection of object-oriented (OO) design with software architecture, user experience (UX/UI), database integration, and API design. You will refine your ability to model applications using UML, implement OO design patterns in Java, and consider the broader implications of OO design in software engineering projects. The module also examines how OO principles relate to high-level software architecture and project management, ensuring that students gain a holistic understanding of software design and development.
- OO in Architecture and Applications, Part 2
- This module delves into advanced object-oriented (OO) design concepts, focusing on best practices, design patterns, and language-specific implementations. You will explore UML modeling, Java-based OO development, and interface design while analyzing pattern libraries and anti-patterns. Additionally, this module introduces the role of AI in software development and compares OO implementations across various programming languages, preparing students to adapt your skills to evolving industry trends.
- Capstone and Considerations for OO Design
- In this final module, you will demonstrate mastery of object-oriented (OO) design and development through a comprehensive capstone project. This module reinforces key concepts covered throughout the course, including UML modeling, OO design principles, software architecture, and best practices in Java-based development.
Taught by
Bruce Montgomery, PhD, PMP