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