The University of Chicago
Department of Computer Science

CSPP 527 Course Syllabus
Winter 2001




Teaching staff:

Instructor:        Mark Shacklette
Office:              Ryerson 157
Office Hours:    Wednesday, 1:00 - 3:00 pm

email:     mark@cs.uchicago.edu (read daily or so)
              mshack@post.harvard.edu (read hourly or so)

TA:                  Matei Ripeanu (matei@cs.uchicago.edu)
Office Hours:      Tuesday,  4:30 - 5:30 pm, other times by appointment
Place:                    4th floor Lab

TA:                  Adriana Iamnitchi (anda@cs.uchicago.edu)
Office Hours:      Monday,  4:30 - 5:30 pm, other times by appointment
Place:                    4th floor Lab
 

Course Home Page: http://www.cs.uchicago.edu/~mark/527/
 
 
SUBJECT COURSE TITLE TIME BUILDING
324 527 Advanced OO Design & Development 5:30pm Ryerson 251

 

I. TEXT AND MATERIALS
 

Texts: Required

The Unified Modeling Language User Guide, Grady Booch, et. al., Addison Wesley, 1999, ISBN: 0201571684

Extreme Programming Explained, Kent Beck, Addison Wesley, 2000, ISBN: 201616416

Refactoring:  Improving the Design of Existing Code, Martin Fowler, et. al., Addison Wesley, 1999, ISBN: 0201485672

Design Patterns, Gamma, et. al., Addison Wesley, 1995, ISBN: 0201633612

AntiPatterns:  Refactoring Software, Architectures, and Projects in Crisis, Brown, et. al., Wiley, 1998, ISBN: 0471197130

Object-Oriented Software Construction, Second Edition, Bertrand Meyer, Prentice Hall, 1997, ISBN: 0136291554
 

Texts: Recommended

For Process and Design:

Developing Software with UML, Bernd Oesterich, Addison-Wesley, 1999, ISBN: 0201398265

Object Solutions, Grady Booch, Addison Wesley, 1996, ISBN: 0137372485

Developing Object Oriented Software, OOTC, Prentice Hall, 1996, ISBN: 0137372485

Object-Oriented Software Engineering, Ivar Jacobson, Addison Wesley, 1992, ISBN: 0201544350

Mastering UML with Rational Rose, Boggs et. al., Sybex, 1999, ISBN: 0782124534

The Unified Modeling Language Reference Manual, James Rumbaugh et. al., Addison Wesley, 1991, ISBN: 020130998X

The Unified Software Development Process, Ivar Jacobson et. al., Addison Wesley, 1999, ISBN: 0201571692

Surviving Object-Oriented Projects, Alistair Cockburn, Addison Wesley, 1998, ISBN: 0201498340

UML Distilled,  Martin Fowler et. al., Addison Wesley, 1999, ISBN: 0201325632

Object-Oriented Analysis and Design, Grady Booch, Benjamin Cummings, 1994, ISBN: 0805353402

Software Project Management, A Unified Framework, Walker Royce, Addison Wesley, 1998, ISBN: 0201309580

Use Case Driven Object Modeling with UML, Doug Rosenberg, et. al., BAddison Wesley, 1999, ISBN: 0201432897
 

For Java Development:

JDBC:

JDBC and Java, Reese, O'Reilly, 1997, ISBN: 1565922700
JDBC API Tutorial and Reference, Second Edition, White, Fisher, et. al., Addison-Wesley, 1999, ISBN:  0201433281

Servlets:

Developing Java Servlets, Goodwill, Sams, 1999, ISBN: 1672316005

For Java Network Programming (RMI):

Java Network Programming, Harold, O'Reilly, 1997, ISBN: 1565922271
Java Distributed Objects, McCarty & Cassady-Dorion, Sams, 1998, ISBN: 0672315378

SQL:

The Practical SQL Handbook, Bowman et. Al. Addison Wesley, 1996, ISBN: 0201447878

Linux and Unix:

Java Programming on Linux, Nathan Meyers, Waite, 2000, ISBN: 1571691669
Learning the Unix Operating System, Peek, et. al.,, O'Reilly, 1998, ISBN: 1565923901
A Practical Guide to Linux, Sobell, Addison Wesley, 1997, ISBN:  0201895498

Java Language Programming:

Beginning Java 2, Horton, Wrox Press, 1999, ISBN:  1861002238
Thinking in Java, Bruce Eckel, Prentice Hall, 1998, ISBN:  0136597238
Java I/O, Harold, O'Reilly, 1999, ISBN: 1565924851, esp. chapters 1,2,3,5,11
 

Texts: Ready Reserve Reading List

Patterns in Software:  Tales from the Software Community, Richard Gabriel, Oxford, 1998, ISBN:  0195121236
 

II. PREREQUISITE:

CSPP523 Object Oriented Architecture, Design, and Method, or consent of the instructor.  Knowledge of basic Java language programming will be assumed.  Students who don't know Java will be expected to come up to speed with the language with immediate dispatch.
 

III. COURSE DESCRIPTION

This course gives hands-on experience in the entire life-cycle of Object Oriented design, development, and deployment.  Students will work together as a group or development team, periodically taking on individual roles of architect, analyst, designer, coder, and tester.  The team will take a large(ish) OO project through the entire development life-cycle, from conception through implementation and deployment.

The process used will be RUP as modified by eXtreme programming concepts, and iterations will be defined with student input as the course proceeds.  The course will begin with requirements analysis and will proceed through the creation of a design model through to coding, testing, and deployment.  Coordinating activities such as project management as well as source code management (using CVS) will be employed by the students as well.

The application to be designed and developed during the course will be at once confined in scope so as to allow for efficient design and development over 10 weeks, but will be substantial enough as to tax the design and development team in delivering the application within the given time frame.  Each student will be involved in requirements gathering, analysis, design, coding, testing, project planning, and source code management.

All development will be done on Linux using Sun's J2EE and JDK 1.2.2, and database access will be conducted via JDBC with a Sybase backend.  The design tool used will be TogetherSoft's TogetherJ designer product.  The method will be RUP, but concentration will be given to eXtreme Programming concepts, especially team coding.
 

IV. LEARNING OBJECTIVES

Specific deliverables students are responsible for will include:

Requirements Document
Domain Glossary
Architecture Document
Use Case Model and supporting artifacts
Analysis Model
An  OO Framework that provides core services such as system configuration, management, logging, and monitoring
Design (Conceptual) Model utilizing Patterns
Source Code for the application's implementation
Code Review
Automated Unit Testing
concluding with a functioning application as a final deliverable.

Technologies that students will be exposed to during the course include:

J2EE technologies, including JDBC
Distributed Object programming issues using RMI over JRMP/IIOP

Conceptual issues such as reliability, failover, redundancy, and resource management will be introduced, as well as the application of autopoietic theory to component architectures for failover management.
 

V. ACADEMIC INTEGRITY

Students are expected to have read and understood the University's policy on Academic Integrity. This policy is detailed in the Student Manual of University Policies and Regulations, available online at http://www.uchicago.edu/student/manual/academic_honesty.html.
 

VI. METHOD OF INSTRUCTION

Methods include lecture and lab.
 

VII. OTHER COURSE INFORMATION

Attendance:

No formal attendance taken. There may be information presented in class that is not in the texts. You will be responsible for all information discussed in class and assigned in the required readings.

Make-up Work:

If you miss a review, you will need to speak with the instructor ASAP.

Students are expected to read the assigned texts before class in order to be able to full participate in the discussions.
 

VIII. METHOD OF EVALUATING STUDENT PROGRESS

Assigned work evaluated as follows:

1 Mid-Term  Individual Review of Work:                      20 pts
1 Mid-Term Reading Quiz                                                  10 pts
1 Final Individual Review of Work:                                   20 pts
1 Final Reading Quiz                                                              10 pts
Joint Course Project Deliverable:                                     40 pts (this portion of the grade is singular based on the class's work as a whole)
Total:                                                                                       100 pts

Grading scale: A=90-100, B=80-89, C=70-79, D=60-69, F=0-59
 

The course project will be due the final day of class, March 14, 2001.   Note that there will be no class that day, just the deadline for projects and individual interviews and the final reading quiz.

The instructor reserves the right to alter the course contents, dates, times or percentage of credit based on time allowed and class progress through the course material. The instructor also reserves the right to curve grades if he deems it in the best interest of the majority of students.
 

IX. COURSE SCHEDULE

NB: The Instructor reserves the right to alter the schedule as class progress dictates.

The following abbreviations reference the following works:
 
 
Abbreviation Text
Booch Unified Modeling Language
Beck Extreme Programming Explained
Fowler  Refactoring
Gamma Design Patterns
Brown AntiPatterns
Meyer Object-Oriented Software Construction

 
 
Class/Date Lecture Topics Required Reading Schedule Lab Activity
Class 1
January 3
Introduction and Problem statement
Role Description and Signup
Role Assignments have now been posted.
 Beck, chapters 1-12 NO LAB
Class 2
January 10
Introduction to Extreme Programming
Requirements Analysis and Interview
Beck, chapters 13-27 Use Case Model
Class 3
January 17
Introduction to JDBC Fowler, Preface and chapters 1-4
Meyer, chapter 35
Iteration Planning and
division of labor
Class 4
January 24
Introduction to Java Servlet Programming Fowler, chapters 5-8
Meyer, chapters 22,23,27,28
Analysis Model
Framework Design
Class 5
January 31
Introduction to Java RMI and JRMP/IIOP Brown, chapters 1-2
Fowler, chapters 9-12
Conceptual Model
Coding
Testing
Class 6
February 7
Conceptual Model Review introduced Brown, chapters 3-4
Fowler, chapters 13-15
Class 7
February 14
MID TERM INDIVIDUAL REVIEW
AND READING QUIZ
Exam Review
Brown, chapters 5-6
Meyer, chapters 1-2
Conceptual Model
Coding
Testing
Class 8
February 21
Conceptual Model continued Brown, chapters 7-8
Meyer, chapters 3-6
Conceptual Model
Coding
Testing
Class 9
February 28
Conceptual Model continued Meyer, chapters 7.8.11,12,13 System Testing
Coding
Class 10
March 7
System Integration and Deployment Meyer, chapters 14,15,16,17,18 Integration Testing
Class 11
March 14
FINAL INDIVIDUAL REVIEW,
READING QUIZ, AND 
PROJECT DUE DATE 

APPLICATION DUE 3:00 pm

Meyer, chapters 24,25,30,31

 

X. Online Reference and Resources:
 

General:

Cetus Links on OO: http://www.objenv.com/cetus/software.html
OOSE Links: http://www.inf.ufsc.br/poo/ine5383/oose.html

OOA/OOD:

Martin Fowler's home pages:      http://www2.awl.com/cseng/titles/0-201-89542-0/techniques/index.htm
                                             http://ourworld.compuserve.com/homepages/Martin_Fowler

Patterns:

Salingaros's notes on Christopher Alexander: http://www.math.utsa.edu/sphere/salingar/Chris.text.html
Patterns-Discussion FAQ: http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html
Writing Patterns: http://hillside.net/patterns/patterns.html
Pattern Examples: http://st-www.cs.uiuc.edu/cgi-bin/wikic/wikic?DesignPatterns
Alistair Cockburn's home page:  http://members.aol.com/acockburn/

Rational Reading Lists and news groups:

Rose Hypernews Group:  http://cafe.rational.com/hypernews/get/hn/rosecafe.html
Signup page for Rational s Reading Lists (see Rational Rose Forum and OTUG lists):
           http://www.rational.com/sitewide/support/newsgroup/index.jtmpl#sponsor