Object-Oriented Design and Implementation

CPST 320
Fall 2007


Table of Contents

General Info
Prerequisites
Objectives
Programming Resources
Schedule
Case Studies
Class Work
Grading
Policies


General

Instructor: Paul Christmann
587-9072
paul@priorartisans.com
Office hours: After class or by appointment or telephone
Time: Tuesday, 6:00 - 8:40 pm
Classroom: Newcomb 202 Lab
Text: Applying UML And Patterns, Third Edition, by Craig Larman. Prentice Hall, 2004
ISBN: 0-13-148906-2 Amazon.com
Additional Recommended Reading: UML Distilled, by Martin Fowler. Addison-Wesley, 2003.
ISBN: 0-32-119368-7 Amazon.com
Design Patterns, by Gamma, Helm, Johnson and Vlissides. Addison-Wesley, 1995.
ISBN: 0-20-163361-2 Amazon.com
Effective Java, by Joshua Bloch. Addison-Wesley, 2001.
ISBN: 0-20-131005-8. Amazon.com

Prerequisites

Before beginning this course, you are expected to be able to: If you do not meet these prerequisites, please contact the instructor!

Course Objectives

Upon completion of this course, you will be able to:

Programming Resources

Java

How to install a Java Development kit
  1. Visit http://java.sun.com, the home website for Java technology
  2. On the right side, under Popular Downloads, select J2SE.
  3. Select the JDK 6.0 Download.
  4. Accept the License Agreement
  5. Select and download the appropriate installation based on your operating system (Windows, Linux, Solaris).
  6. Alternatively, Select the Previous Releases tab, and navigate to find older releases.

Eclipse

Eclipse is an open source IDE (Integrated Development Environment), which simplifies java development.

How to install:

  1. Visit http://www.eclipse.org, the home website for eclipse
  2. Select the Downloads tab.
  3. Select the Eclipse IDE for Java Developers link.
  4. Wait.
  5. Unzip the contents of the zip file to c:\eclipse
  6. Create a shortcut to run c:\eclipse\eclipse.exe

UML Diagramming

UML is a standard language for specifying and documenting designs for a software system. UML diagrams are an important part of this course, and most homework and tests will require UML diagrams.

I would suggest using eUML 2 plugin for Eclpise, available at http://www.soyatec.com/. To install, follow the detailed instructions at http://www.soyatec.com/euml2/installation/

Using this plugin allow creation of UML diagrams and associated java classes within your Eclipse workspace.

Alternatively, consider using Poseidon Community Edition, 4.0.1 for UML diagram creation. This free tool can be installed:

  1. Visit http://www.gentleware.com.
  2. Select the Poseidon for UML link on the left side menu.
  3. Select the Community Edition link.
  4. Select the Download link.
  5. Navigate down the page to choose the Poseidon for UML 6.0.1 - without JRE section.
  6. Download the version for your operating system.
  7. Run the downloaded installer.
by selecting the Downloads link, followed by the Products link, then selecting an HTTP (or FTP) download of Community Edition.

Other UML diagraming tools are also available, and can be used if you would prefer. UML Diagraming is an important skill, and the tool used to create the diagrams is just a tool. Choose a tool that best helps you complete the job at hand. BUT, I will only be able to provide help with the Poseidon tool, as it is the one that I am familiar with.

Schedule

At the highest level, the class is composed of 3 distinct areas:
Date Class Description Chapter Due
9/4/2007 1 Syllabus, Programming Review    
9/11/2007 2 Use Cases 6 Hw #1
9/18/2007 3 Domain Models 9 Hw #2
9/25/2007 4 System Sequence Diagrams, Operation Contracts, Logical Architecture 10-14 Hw #3
10/2/2007 5 UML Diagrams and Tools 15-16 Hw #4
10/9/2007 6 Visibility and GRASP 17-19 Hw #5
10/16/2007 7 Object Design with GRASP 17-18 Project Checkpoint
10/23/2007 8     Midterm and Solution
10/30/2007 9 GRASP Patterns: Polymorphism, Pure Fabrication 25  
11/6/2007 10 GRASP Patterns: Indirection, Protected Variations; Design Patterns 25-26 Hw #6
11/13/2007 11 Design Patterns: Notification 26 Hw #7
11/20/2007 12 Strategy and Template; Relating Use Cases and Domain Model refinement 30,31  
11/27/2007 13 Logical Architecture and Package Design: applying Patterns 34, 35  
12/4/2007 14 Review and Advanced Topics   Project
12/11/2007 FINAL      

Case Studies

Case Studies we will be using illustrate how to use a process to design a system:

Class Work

Homework

Assignments are due at the beginning of classes, and should be submitted via email to paul@priorartisans.com.

Poseidon UML diagrams should be submitted by sending the entire project (.ZUML) file.

Eclipse source code shoud be submitted by zipping your entire project workspace.

Assignments can be turned in one week late at a 10% penalty. Assignments will not be accepted more than one week late. Period.

Project

The project is due in two stages:

Labs

Periodically, a portion of the class will be devoted to a programming excercise in support of the material taught in that class. Materials must be turned in at the end of the lab.

Quizzes

Periodically, closed book quizzes will be given at the beginning of class on the reading assigned for the class.

Grading

Final, cummulative and open book 20%
Midterm, open book 20%
Homework Assignments 25%
Project 25%
Labs and Quizzes 10%

Other Policies


Please
email me if you have questions or comments.