Brandeis University

Division of Graduate Professional Studies

Rabb School of Continuing Studies

Course Syllabus

I. Course Information

1. Course Name Object Oriented Design

2. Course Number 149RSEG-109-1DL

3. Course Start & End Dates; Class Meeting Times

·  09/17/2014 – 11/25/2014

·  Distance Learning Course Week: Wednesday through Tuesday

4. Instructor’s Name and Contact Information

·  Name: Dr. Vitaly Yurik

·  Email:

·  Office Hours/Availability: available through email M-F

5. Document Overview

This syllabus contains all relevant information about the course: its objectives and outcomes, the grading criteria, the texts and other materials of instruction, and of weekly topics, outcomes, assignments, and due dates.

Consider this your roadmap for the course. Please read through the syllabus carefully and feel free to share any questions that you may have. Please print a copy of this syllabus for reference.

6. Course Description

·  Catalog Description

Object-oriented design and modeling form the foundation of many software projects today and are pre-requisites to developing in C++, Java, C# and other object-oriented programming languages. This course covers object design and modeling techniques as they are applied from the point the high-level project requirements are established, through high level and detailed design, to the point where implementation is ready to start. The course focuses on Rational Unified Process and uses Unified Modeling Language (UML), an approach that combines previously competing object modeling theories, as well as concepts including distributed object frameworks; design best practices; existing object-oriented languages such as Java, C#, C+, ; and lifecycle and maintenance issues of object-oriented applications.

·  Relevant Programs (graduate or undergraduate; Program(s) for which this course is a core or elective)

·  Master in Software Engineering (MSE) – can be used to fulfill Design requirement for MSE or taken as elective

·  MS in Bioinformatics – elective

·  MS in Information Technology Management – elective

·  Prerequisites

RSEG 103 (Advanced Programming in C++) or RSEG 102 (Advanced Programming in Java) or RSEG 180 (Advanced Programming in C#) or equivalent

7. Materials of Instruction

·  a. Required Texts

·  Larman, Applying UML and Patterns: An Introduction to Object Oriented Design and Analysis and Iterative Development, 3rd ed, Prentice Hall, 2005. ISBN: 0-13-148906-2. This book will be referenced as Larman.

·  M.Fowler UML Distilled. Third Edition. , Addison-Wesley, 2004,

ISBN: 0-321-19368-7. This book will be referenced as Fowler.

b. Required Software

·  Any UML modeling software

c. Recommended Text(s) / Journals

8. Overall Course Objectives

The course is intended to provide students with an understanding of:

Advanced Object Oriented Design Techniques

Object Modeling and Design Techniques

UML Design approach

Static and Dynamic Modeling

9. Overall Course Outcomes

·  At the end of the course, students will be able to:
- Apply object modeling and design techniques from the point the high-level project requirements are established, through high level and detailed design, to the point where implementation is ready to start.
- Design software systems using object-oriented concepts including Unified Modeling Language (UML) design approach: classes, class diagrams, interfaces, types, and roles.
- Create static object models for a system, including class diagrams, association diagrams, and inheritance diagrams.
- Create dynamic, behavioral object models for a system, including use cases and interaction diagrams.
- Apply advanced Object Oriented design techniques, such as architectural modeling, component frameworks, and design patterns.

10. Course Grading Criteria

·  Description of work expectations for assignments

  • Project 1 requires you to:
  1. Write 2-3 use case scenarios.
  2. Create use case diagrams for these scenarios.
  3. Create preliminary partial domain model for these scenarios.
  4. Create sequence diagrams for these scenarios.
  5. Create communication diagrams for these scenarios.
  6. Project 2 requires you (using the same 2-3 scenarios) to:
  1. Create a class diagram. The class diagram should show classes with their attributes and operations. Include appropriate class relationships, such as generalization/inheritance, dependency, associations, and structural relationships.
  2. Apply at least two GRASP patterns. Provide an appropriate description.
  3. Apply at least two GoF patterns. Provide an appropriate description.
  4. Create activities diagrams.
  5. Create state machine diagrams.
  6. Refine domain model you have created preliminary in Project 1.

For the video store system, provide:

  1. Logical architecture as a diagram.
  2. Document your logical architecture.
  3. For one of the object-oriented languages of your choice: Java, C#, C++, describe which frameworks you will use in each architectural layer of your project. Describe the reasons for using selected frameworks as opposed to other existing frameworks. If there is no existing framework how will you create a new one to design your project?
  • As the alternative to the assigned Project 1 and Project 2 you may select a different business model of your choice. The content of all three Projects of your choice must be no less and no more than the assigned version of the Projects. If you select this option, you’ll need to write a short proposal before starting your work and send it to my email address for approval.

·  Discussion Participation Requirements:

Given the lack of the traditional classroom environment, all student participation will be done online via LATTE. Each weekly has a page that includes "Discussion Topics". These are a series of questions or points to consider regarding the course materials posted that week. To earn full credit for the Participation component of the grade, participants will be expected to complete the following during weeks 1 through 10 of the course:

Respond to (at least) two Discussion Topics each week; respond to one topic by end of day Saturday (midnight EDT) and to another by end of day Sunday (midnight EDT). These responses should be substantive in length and include your own insights into the topics. Any relevant sources used within the post should be cited appropriately.

Post (at least) two other substantive message to the Discussions by end of day Tuesday(midnight EST) each week. These other posts may be responses to the discussion topic messages of others, they may be questions or comments about the topics covered during the week, or they may be responses to the posts of other groups. The assumption is that you will read through the posts of your classmates to enhance your learning; respond to those of your choice, based upon your own experiences and insights.

Post your messages and responses on three different days of the course week.

While all the discussion and assignment due dates in the syllabus and in

Latte are stated to be midnight EST, students in time zones other than EST

can submit their work by midnight in the time zone they reside in.

·  Percentages earned per assignment:

Percent / Component
30% / Discussions participation
30% / Project 1
40% / Project 2

II. Weekly Information

Week 1 / 09/17 - 09/23
Objectives / At the end of week 1, students will have an understanding of:
·  Introduction to Object-Oriented Analysis and Design
·  Iterative, Evolutionary, and Agile Development
·  Case Studies
·  Introduction to UML and Classes
Outcomes / At the end of week 1, students will be able to:
·  Understand and use the concept of Object Oriented Analysis and Design
·  Understand and use the Iterative, Evolutionary, and Agile Development
·  Select and Describe Case Studies
·  Understand basic concepts of UML and Classes
Readings / ·  Larman, Chapters 1 - 3
·  Fowler, Chapter 1
Assignments / Assessments/
Self-Assessments / ·  Project 1 assigned on 09/17
Week 2 / 09/24 – 09/30
Objectives / At the end of week 2, students will have an understanding of:
·  Inception Process of Object-Oriented Design
·  Evolutionary Requirements of Object-Oriented Design
·  Use Cases and Use Case Diagrams in Object-Oriented Design
Outcomes / At the end of week 2, students will be able to:
·  Understand and use the Inception Process of Object-Oriented Design
·  Understand and use the Evolutionary Requirements of Object-Oriented Design
·  Understand and use the Use Cases and Use Case Diagrams in Object-Oriented Design
·  Understand and use the Supplementary Specification, Glossary, Vision, Business Rules in Object-Oriented Design
Readings / ·  Larman, Chapters 4 - 7
·  Fowler, Chapters 2 and 9
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 1 work continues
Week 3 / 10/01 - 10/07
Objectives / At the end of week 3, students will have an understanding of:
·  Basics of the Object-Oriented Design First Iteration
·  Domain Models
·  System Sequence Diagrams
·  Operational Contracts
Outcomes / At the end of week 3, students will be able to:
·  Understand and use Basics of the Object-Oriented Design First Iteration
·  Understand and use Domain Models
·  Understand and use System Sequence Diagrams
·  Understand and use Operational Contracts
Readings / ·  Larman, Chapters 8 – 11
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 1 work continues
Week 4 / 10/08 - 10/14
Objectives / At the end of week 4, students will have an understanding of:
·  Iterative Requirements to Design
·  Logical Architecture and UML Package Diagrams
·  Dynamic and Static Object Design Modeling
·  UML Interaction Diagrams: Sequence and Communication Diagrams
Outcomes / At the end of week 4, students will be able to:
·  Understand and use Iterative Requirements to Design
·  Understand and use Logical Architecture and UML Package Diagrams
·  Understand and use Dynamic and Static Object Design Modeling
·  Understand and use Sequence and Communication Diagrams
Readings / ·  Larman, Chapters 12 – 15
·  Fowler, Chapters 4 and 12
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 1 due at 10/14
Week 5 / 10/15 - 10/21
Objectives / At the end of week 5, students will have an understanding of:
·  UML Class Diagrams: Basics
·  UML Class Diagrams: Advanced Concepts
·  Objects Design with General Responsibility Assignment Software Patterns (GRASP): Information Expert, Creator, High Cohesion, Low Coupling, Controller.
Outcomes / At the end of week 5, students will be able to:
·  Understand and use Basics of UML Class Diagrams
·  Understand and use Advanced Concepts of UML Class Diagrams
·  Understand and design objects with General Responsibility Assignment Software Patterns (GRASP): Information Expert, Creator, High Cohesion, Low Coupling, Controller.
Readings / ·  Larman, Chapters 16, 17
·  Fowler, Chapters 3 and 5
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 assigned on 10/15
Week 6 / 10/22 – 10/28
Objectives / At the end of week 6, students will have an understanding of:
·  Use Case Realization with General Responsibility Assignment Software Patterns (GRASP).
·  Designing Objects for Visibility
·  Mapping Design to Code
Outcomes / At the end of week 6, students will be able to:
·  Understand and design Use Case Realizations with General Responsibility Assignment Software Patterns (GRASP).
·  Understand and design Objects for Visibility
·  Understand and use Map Design to Code
Readings / ·  Larman, Chapters 18, 19, 20
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 work continues
Week 7 / 10/29 – 11/04
Objectives / At the end of week 7, students will have an understanding of:
·  Test-Driven Development and Refactoring
·  Second Iteration: Use of Patterns
·  Objects Design with General Responsibility Assignment Software Patterns (GRASP): Polymorphism, Indirection, Pure Fabrication, Protected Variations.
·  Objects Design with GoF Design Patterns
Outcomes / At the end of week 7, students will be able to:
·  Understand and use Test-Driven Development and Refactoring
·  Understand and use Pattern on the Second Iteration
·  Understand and create Objects Design with General Responsibility Assignment Software Patterns (GRASP): Polymorphism, Indirection, Pure Fabrication, Protected Variations,
·  Understand and use GoF Design Patterns in Objects Design
Readings / ·  Larman, Chapters 21, 23—26
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 work continues
Week 8 / 11/05– 11/11
Objectives / At the end of week 8, students will have an understanding of:
·  UML Activity Diagrams and Modeling
·  UML State Machine Diagrams and Modeling
·  Related Use Cases
Outcomes / At the end of week 8, students will be able to:
·  Understand and use UML Activity Diagrams and Modeling
·  Understand and use UML State Machine Diagrams and Modeling
·  Create Related Use Cases
Readings / ·  Larman Chapters 27--30
·  Fowler, Chapters 10, 11
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 work continues
Week 9 / 11/12 – 11/18
Objectives / At the end of week 9, students will have an understanding of:
·  Domain Model Refinement
·  UML Components Modeling
·  UML Deployment Modeling
·  Updates to System Sequence Diagram and Contracts
Outcomes / At the end of week 9, students will be able to:
·  Make Domain Model Refinement
·  Understand and use UML Components Modeling
·  Understand and use UML Deployment Modeling
Readings / ·  Larman, Chapters 31, 32
·  Fowler, Chapters 7, 8, 14
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 work continues
Week 10 / 11/19 – 11/25
Objectives / At the end of week 10, students will have an understanding of Third Iteration artifacts:
·  Architectural Analysis
·  Logical Architecture Refinement
·  Architecture Documentation
Outcomes / At the end of week 10, students will be able to:
·  Provide the Architectural Analysis
·  Make the Logical Architecture Refinement
·  Create Architecture Documentation
Readings / ·  Larman, Chapter 33 , 34, 39
·  Handouts
Assignments / Assessments/
Self-Assessments / ·  Project 2 Due on 11/26 8 am EDT

III. Course Policies and Procedures

Orientation

From the Home Page of the course site, participants are expected to read all of the Orientation Materials available. These are located within the top-most center block.

Asynchronous Work

All required work for the course may be done asynchronously; i.e., participants can login to the course, read/download materials, post to the Discussions, and submit assignments throughout the course week. Please carefully follow syllabus and the weekly checklists to help manage your time throughout the course week; once we enter week 2, participants typically become much more comfortable with the pace and flow of the course.