Instructor Information

Samuel Schappelle

Home Phone: 301-963-0764
Cell Phone: 240-338-3862

Joseph Demasco

Work Phone: 301-873-0771

Course Information

Course Description

This course describes fundamental principles of object-oriented modeling, requirements development, analysis, and design. Topics include specification of software requirements; object-oriented static and dynamic analysis approaches using the Unified Modeling Language (UML); object-oriented design; object-oriented reuse and maintainability, including design patterns; software implementation concerns; state models; persistence; and the Object Constraint Language (OCL). Prerequisite(s): While there are no programming assignments in this course, experience in an object-oriented programming language such as C++ or Java is important.

Course Goal

This course will prepare you to apply object-oriented techniques and notation to the process of developing software. You will be able to perform the following activities: develop requirements, analyze the requirements using object-oriented analysis to identify the software components to be implemented, and design those software components using object-oriented design techniques. The notation of the Unified Modeling Language (UML) will be used throughout.

Course Objectives

  • Create, Critique and Refine customer Use Cases.
  • Transform Use Cases into Object Oriented software Realizations through OO Analysis and OO Design.

  • Document your requirements, analysis, and design models in the Unified Modeling Language (UML) notation.
  • Apply techniques of state machines and design patterns to your designs.

When This Course is Typically Offered

This course is typically offered on-line at least twice a year.  


  • Introduction to OOAD
  • Requirements Elicitation
  • Capturing Functional Requirements with Use Cases
  • Writing Use Case Scenarios
  • Use Case Diagrams and Documentation
  • Finding Candidate Classes
  • Static Analysis Modeling
  • Dynamic Analysis Modeling
  • Static Design Modeling
  • Dynamic Design Modeling
  • State Modeling
  • Design Patterns
  • Object Constraint Language
  • Persistence

Student Assessment Criteria

Weekly quizzes 40%
Team project deliverables 30%
Final project deliverable 15%
Peer evaluations 15%

There is one project deliverable due each week.  An updated, corrected version of ten of the documents will be due at the end of the class.  The peer evaluations allow you to rate the other members of your team.

Computer and Technical Requirements

You must be familiar with (i.e., be able to program in) an object-oriented programming language (e.g., smalltalk, C++, Java, C#, etc.). 

605.401, Foundations of Software Engineering or its equivalent would be quite helpful.

Participation Expectations

You will be working as part of a team on the project, which lasts the entire semester.  There will be assignments due each week.


Textbook information for this course is available online through the MBS Direct Virtual Bookstore.

Course Notes

There are notes for this course.

Term Specific Course Website

(Last Modified: 07/06/2016 02:35:48 PM)