Object-Oriented Analysis and Design

Course
Identifier: 
COM S 3620

Offered during Fall and Spring Semesters each year.

  1. Credits and contact hours: 3 credits, 3 contact hours
  2. Instructor’s or course coordinator’s name: Georgi Batinov
  3. Text book, title, author, and year: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Craig Larman, Third Edition.
  4. Other supplemental materials: None

Specific course information

  1. Brief description of the content of the course: Object-oriented requirements analysis and systems design. Design notations such as the Unified Modeling Language. Design Patterns. Group design and programming with large programming projects.
  2. Prerequisites or co-requisites: Minimum of C- in COM S 228 and MATH 165; ENGL 250 
  3. Required, elective, or selected elective? Selected Elective

Specific goals for the course

  1. Specific outcomes of instruction: The main objective is that students will be able to analyze system requirement, and create and justify object-oriented designs that meet their requirements and that are robust and evolvable. A second objective of the course is to develop the students’ ability to work in teams and be able to communicate both within the team framework and to external audiences. In more detail, the essential outcomes for this course are that students will be able to...
  • Analyze system requirements and model problem domains. (2)
  • Evaluate the quality of an analysis, and be able to explain how to improve it.
  • Design and build object-oriented systems. (6)
  • Explain and justify designs based on design principles, patterns, and heuristics.
  • Evaluate the quality of a design, and be able to explain how to improve it.
  • Write object-oriented code to correctly implement a design.
  • Be able to read and write analysis and design documentation in the Unified Modeling Language (UML).
  • Be able to read and write object-oriented code, in Java, that uses subclasses, inheritance, abstract methods, subtypes, and subtype polymorphism.
  • Be able to work with patterns and be able to discuss the use of patterns in class via a team presentation. (5)
  • Communicating their design through presenting design homework and providing a team presentation of their term project at the end of the semester. Each team provides a term project report. (3)

Brief list of topics to be covered

  • Procedural Abstraction
  • Data Abstraction
  • Modularity, Objects, State
  • Metalinguistic Abstraction
  • Course Summary and Evaluation