CSCA 5448: Object-Oriented Analysis and Design: Practice and Architecture
ÌýPreview this courseÌýin the non-credit experience today!Ìý
Start working toward program admission and requirements right away.ÌýWork you complete in the non-credit experience will transfer to the for-credit experience when you upgrade and pay tuition. See How It Works for details.
- Course Type: Elective
- Specialization: Object-Oriented Analysis and Design
- Instructors:ÌýDr. Bruce Montgomery
- Prior knowledge needed: Students should consider their background in Java and begin appropriate tutorial study at a level needed to allow use of the language in course projects (suggested resources are provided).
Course Description
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.
Learning Outcomes
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.Ìý
Course Grading Policy
Assignment | Percentage of Grade |
---|---|
Peer Review Assignments | 40% (4 Assignments, 10% each) |
Graded Assignments | 20% (4 Assignments, 5% each) |
Capstone Project Peer Review | 15% |
Final Exam | 25% |
Course Content
Duration: 5Ìýhours, 11 minutes
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.
Duration: 4 hours, 18 minutes
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.
Duration: 4Ìýhours, 10 minutes
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.
Duration: 4 hours, 14 minutes
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.
Duration: 2Ìýhours, 42 minutes
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.
Duration: 42 minutes
This module contains materials for the final exam. If you've upgraded to the for-credit version of this course, please make sure you review the additional for-credit materials in the Introductory module and anywhere else they may be found.
Notes
- Page Updates: This page is periodically updated. Course information on the Coursera platform supersedes the information on this page. Click theÌýView on CourseraÌýbuttonÌýabove for the most up-to-date information.