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
| 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
|
Before beginning this course, you are expected to be able to:
- Create, use and explain the structure of a Class and an Object.
- Create and use Objects in an Object Oriented program.
- Write a Java program using standard java syntax and programming constructs.
- Create and explain the components of a UML Class Diagram.
- Apply problem-solving skills to a given business problem.
If you do not meet these prerequisites, please contact the instructor!
Upon completion of this course, you will be able to:
- Create Use Cases to model how users interact with a system.
- Explain the fundamental concepts behind the object-oriented paradigm
- Design classes to build a system, observing important Object Oriented criteria, such as
- High Cohesion
- Low Coupling
- Create UML Sequence and Class Diagrams to document a system design.
- Implement classes using standard java syntax
Java
How to install a Java Development kit
- Visit http://java.sun.com, the home website for Java technology
- On the right side, under Popular Downloads, select J2SE.
- Select the JDK 6.0 Download.
- Accept the License Agreement
- Select and download the appropriate installation based on your operating system (Windows, Linux, Solaris).
- For Windows installation from the internet, select the Windows Online installation link: jdk-1_5_0_10-windows-i586-p-iftw.exe
- Alternatively, Select the Previous Releases tab, and navigate to find older releases.
Eclipse is an open source IDE (Integrated Development Environment), which simplifies java development.
How to install:
- Visit http://www.eclipse.org, the home website for eclipse
- Select the Downloads tab.
- Select the Eclipse IDE for Java Developers link.
- You will be downloading a zip file named eclipse-java-europa-win32.zip, which is approximately 75 MB.
- Wait.
- Unzip the contents of the zip file to c:\eclipse
- Create a shortcut to run c:\eclipse\eclipse.exe
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:
- Visit http://www.gentleware.com.
- Select the Poseidon for UML link on the left side menu.
- Select the Community Edition link.
- Select the Download link.
- Navigate down the page to choose the Poseidon for UML 6.0.1 - without JRE section.
- Download the version for your operating system.
- On windows, this will download PoseidonCE_6_0_1_Installer.exe
- 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.
At the highest level, the class is composed of 3 distinct areas:
- Modelling a system, using Use Cases and Domain Modelling
- Designing a system, using Sequence Diagrams and Class Diagrams
- Implementing the design in Java.
Case Studies we will be using illustrate how to use a process to design a system:
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:
- Checkpoint in class 7, which should include use cases and a domain model (at least).
This checkpoint is worth 20% of the total grade.
- Complete project in class 14.
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.
| Final, cummulative and open book |
20% |
| Midterm, open book |
20% |
| Homework Assignments |
25% |
| Project |
25% |
| Labs and Quizzes |
10% |
- Assignments will be distributed 1-2 weeks before they are due.
- Midterm will be given at the beginning of class, and should last approximately 1 hour.
- The final exam is cumulative.
- Midterm and Final will consist of both factual tests and design activities.
- Midterm and Final are open book.
- Project and Homeworks are to be completed individually.
- No makeup for Final Exam.
- Midterm can only be made up when advance notice and documentation is provided.
A 10% penalty will be incurred.
- Homeworks are due at the beginning of class. Late homework will lose 10% the first
week. Late homework will not be accepted more than one week late.
- Students are obligated to adhere to the University Honor Code.
- Attendence is Required for Lab time.
- Class Attendence Requirements are as specified by University College Policy.
Please email me if you have questions or comments.