CSPP 527 Home Page
 

CSPP 527     Advanced OO Design & Development



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 course will be conducted in half-lecture half-lab format.

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 pair coding.

Specific deliverables students are responsible for will include:

Requirements Documentation
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 Reviews
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.

Teaching staff:

J. Mark Shacklette, mark@cs.uchicago.edu
(Office hours listed on the syllabus)

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

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

Syllabus:

Details of the course can be found in the course syllabus.
 

Prerequisites:

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.
 

Lecture Notes:

Lecture 1:    Introduction to XP:       Postscript      Powerpoint     Pdf     Lecture 1 in html

Lecture 2:    Introduction to JDBC:   Postscript    Powerpoint    Pdf   Lecture 2 in html

Lecture 3:    Introduction to Servlets:   Postscript   Powerpoint   Pdf   Lecture 4 in html

Lecture 4:    Introduction to RMI:       Lecture 3 in html

Customer Online Page (Requirements)

http://people.cs.uchicago.edu/~elehtis/FXMarket.html

Online Sources of Relevant Information:

XP Programming:
     Wiki sources
    XProgramming.com
    Extreme Programming:  A gentle introduction

Current Info:

Role Assignments have now been posted.

Reading List:

To join the Listserv for this course, go to:  http://www.cs.uchicago.edu/mailman/listinfo/cspp527
 


I can be reached at several email addresses, among them:

mark@cs.uchicago.edu
mshack@post.harvard.edu