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
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: