COMS 3620: Object-Oriented Analysis and Design

Course
Computer Science
Teaching
A project-based course emphasizing UML, design patterns, and software architecture principles.
Published

January 10, 2025

Object-Oriented Analysis and Design

Course Description

COMS 3620 is a project-based course focused on object-oriented requirements analysis and system design.
Students learn to apply Unified Modeling Language (UML) and design patterns to develop robust, scalable, and maintainable software systems.

The course emphasizes teamwork, iterative development, and effective communication of design decisions through documentation and presentations.
Object-Oriented Analysis and Design Overview

Figure: UML-driven process for analyzing, designing, and implementing object-oriented systems.

Topics Covered

  • Procedural & Data Abstraction
  • Modularity, Objects, and State
  • Unified Modeling Language (UML)
  • Object-Oriented Design Principles & Patterns
  • Metalinguistic Abstraction
  • Software Architecture & Evaluation
  • Team Presentations and Final Project Showcase

My Role

Computer Science Graduate Teaching Assistant (Fall 2024)

As a Teaching Assistant for COMS 3620, I provided end-to-end guidance to students through both the design and implementation phases of large-scale object-oriented projects. My contributions included:

  • UML & Design Mentorship: Assisted students in modeling system requirements using UML (use case diagrams, class diagrams, sequence diagrams).
  • Project Guidance: Advised student teams during the full development cycle—from requirement analysis and domain modeling to implementation and testing.
  • Design Critique & Feedback: Evaluated and gave feedback on design homeworks, helping students strengthen their reasoning with design principles and patterns.
  • Technical Assistance: Supported Java implementation of OOPS designs, clarifying concepts like inheritance, polymorphism, abstraction, and class hierarchies.
  • Presentation Coaching: Helped teams prepare and deliver clear, well-structured final project presentations and reports.

This experience strengthened my expertise in software architecture, model-driven design, and pedagogical mentoring for complex system development.

Learning Outcomes

Upon completing the course, students will be able to:

  • Analyze software requirements and model problem domains using UML.
  • Design robust object-oriented architectures following proven design principles.
  • Apply and justify the use of design patterns in software construction.
  • Produce UML-based design documentation and diagrams.
  • Implement OOPS designs in Java using inheritance, abstraction, and polymorphism.
  • Communicate and defend design decisions through written and oral presentations.
  • Collaborate effectively in team-based development environments.