An introduction to object-oriented (OO) analysis, design, and modeling. Topics include techniques for mapping real-world systems onto an OO representation, use case design, OO methodology for software development, identifying patterns, building conceptual models, and OO implementation issues. The Unified Modeling Language will be used as a modeling tool. Prerequisite: CISS 350 or CISS 358.
Prerequisite(s) / Corequisite(s):
CISS 350 or CISS 358.
Course Rotation for Day Program:
Offered even Spring.
Most current editions of the following:
Textbooks listed are not necessarily the textbook(s) used in the course.
Object-Oriented Analysis and Design with Applications
By G. Booch (Addison-Wesley) Recommended
UML Distilled: A Brief Guide to the Standard Object Modeling Language
By M. Fowler (Addison-Wesley) Recommended
By E. Gamma, R. Helm, R. Johnson, J. Vlissides (Addison-Wesley) Recommended
The Unified Software Development Process
By I. Jacobson, et. al. (Addison-Wesley) Recommended
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process
By C. Larman (Prentice Hall) Recommended
Design Patterns Explained: A New Perspective on Object-Oriented Design
By A. Shalloway, J.R. Trott (Addison-Wesley) Recommended
To develop a strong foundation in object-oriented analysis, design, and implementation of software systems.
To use UML notation in the design of systems.
To choose appropriate design patterns for common design problems.
Discuss the properties of good software design.
Compare and contrast object-oriented analysis and design with structured analysis and design.
Evaluate the quality of multiple software designs based on key design principles and concepts.
Select and apply appropriate design patterns in the construction of a software application.
Perform requirements analysis and create a use case model from user requirements.
Create an OO software design for a software product from a software requirement specification using UML.
Conduct a software design review using appropriate guidelines.
Evaluate a software design from the perspective of reuse.
Implement an OO software design using an OO programming language.
Review of object-oriented programming
Comparison of structured and OO methodologies
Requirements analysis - Use case model
OO Analysis - Domain model - Conceptual classes - Associations and links - Class responsibility and CRC - Contracts with pre- and post-conditions
OO Design - Design model - Design analysis - Data model - Object persistence
NOTE: The intention of this master course syllabus is to provide an outline of the contents of this course, as specified by
the faculty of Columbia College, regardless of who teaches the course, when it is taught, or where it is taught. Faculty members teaching this
course for Columbia College are expected to facilitate learning pursuant to the course objectives and cover the subjects listed in the topical
outline. However, instructors are also encouraged to cover additional topics of interest so long as those topics are relevant to the course's
subject. The master syllabus is, therefore, prescriptive in nature but also allows for a diversity of individual approaches to course material.