COMS 3620: Object-Oriented Analysis and Design
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.
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.