CISC 475/675
Object-Oriented Software Engineering

Spring 2003
221 Smith, MW 1730--1845


Instructor: Walt Leipold
E-mail: leipold@udel.edu
Office: 447 Smith
Office hours: MW 1845-1945
Web: http://www.cis.udel.edu/~leipold
  Teaching Assistant: Joseph Stelmach
E-mail: stelmach@cis.udel.edu
Office: 115 Pearson
Office hours: TR 1530-1630
Web:

This is the Web page for CISC475/675, "Object-Oriented Software Engineering". It will contain announcements, policies, and other pertinent material for the course. The page will be updated frequently---plan on checking for new or updated material at least once a week.


About the course
Textbook
Schedule
Semester project
Grading
Policies
Resources


About the course

This course presents an introduction to object-oriented software engineering concepts, methodologies and tools. It covers the analysis, specification, design, and implementation of software systems using object-oriented development processes including the Unified Process and UML. The course includes a semester-long team development project using the techniques discussed in class.

Prerequisites: A minimum grade of C− in CISC280 (Program Development Techniques) and Senior status. CISC361 (Operating Systems) is recommended.


Textbook

Applying UML and Patterns:
An Introduction to
Object-Oriented Analysis and Design
and the Unified Process

2nd Edition
Craig Larman
ISBN: 0130925691



Class schedule

ClassDateLectureActivity
01 10 Feb Introduction  
02 12 Feb OOA/D
Iterative development
Project teams formed; roles chosen
  17 Feb Class cancelled -- snow
03 19 Feb Requirements
Use cases
Project topics chosen and approved
04 24 Feb Other requirements  
05 26 Feb Sequence diagrams  
06 03 Mar Domain models --
classes & associations
 
07 05 Mar   Deliver/present Requirements and Use Cases documents
08 10 Mar Domain models --
associations & attributes
 
09 12 Mar Design model
Operation contracts
Interaction diagrams
 
10 17 Mar Class diagrams
Review for exam
 
11 19 Mar   1st exam
12 24 Mar Class diagrams  
13 26 Mar   Deliver/present specification documents
  31 Mar SPRING BREAK
02 Apr
14 07 Apr Intro to design patterns  
15 09 Apr Antipatterns  
16 14 Apr More patterns  
17 16 Apr Patterns & refactoring  
18 21 Apr More patterns  
19 23 Apr Software architecture  
20 28 Apr Architecture revisited  
21 30 Apr   Deliver/present design documents
22 05 May Review for exam  
23 07 May   2nd exam
24 12 May Exam post-mortem
Deployment
 
25 14 May Project help session  
26 19 May   Deliver/present project code
27 21 May  

Semester Project

A major part of the course will consist of a semester-long team project. Each team will analyze, design, and build a significant software system using the Unified Process, and will deliver a complete set of UP artifacts (use cases, domain model, sequence diagrams, operation contracts, and so forth). Projects will be implemented in Java (preferably) or C++.

Some possible project ideas are:

Each team will consist of five students, organized along the following lines:

You will present your progress to the class at four points through the semester. At the third presentation, you will be expected to demo major parts of your application. At the fourth presentation, you will demonstrate your complete application, and allow the instructor to "test drive" its functionality. The deliverables at each presentation are:

  1. Requirements and Use Cases document
  2. Specification documents (domain model, system sequence diagrams, operation contracts, collaboration diagrams)
  3. Design documents (design class diagrams, class descriptions, system architecture, user interface)
  4. Project source code, .class files, javadoc files, installation scripts, installation instructions, help files, test scaffolding, etc.

To prevent "scope creep", each project should be held to the following limits:

  1. Approximately 7 (± 2, max 10) use cases.
  2. A maximum of 20 concepts in the concept diagram.
  3. A maximum of two or three design patterns.

You may use third-party code (e.g., the Tomcat servlet container) as discrete components in your project, but the code and documentation your team develops in this course must be the work of the project team members.

I've put up a page containing everything I've been told about the project teams.

Final Presentation and Submission

Final project presentations will be on Monday, May 19th from 1730 to 1900 and on Wednesday, May 21st from 1730 to 2030. Two teams will present on Monday; the other four will present on Wednesday. Both sessions will be in 102 Gore Hall. The room will be open starting at 1700 to allow you to set up for the presentation.

Final project submissions are due at the beginning of class on 5/21 for ALL teams. The submission will consist of a printed portion (all project artifacts plus a table of contents) and a machine-readable portion (all of the above, plus source code, Javadocs, and build and test scripts) on CD (preferred) or floppy. Include a README file describing where you've put things. Do not include source or Javadoc printouts in the printed submission; there's no need to kill more trees.

There will be NO Internet connection available in 102 Gore, so bring all of the hardware you need for your presentation (except that the instructor will provide a power strip, a network hub, and several network cables). The instructor may connect a laptop to your server and test-drive your system, so make sure that your network drivers are up and that any firewall permissions are set to permit this.

Each member of each team should be introduced, and should make some part of the presentation. I may take a picture of each team.

Each presentation should take about 35–45 minutes, including setup/teardown and question/answer. Do at least one dress rehearsal of your presentation to make sure that everyone knows his part and that it will take about that amount of time.

Here are some examples of the things your presentation should cover:

You can't cover all of these areas thoroughly in 40 minutes, so you'll have to choose the areas to emphasize that are most likely to impress the instructor and TA.


Grading

Grades for the semester will be based on:

1st exam:   25% of final grade
2nd exam:   25% of final grade
Semester project:   45% of final grade
Attendance and participation:   5% of final grade

Policies

Exams: The course will include two exams (but no final). The lectures may introduce material not covered in the book. This additional material will be on the tests.

Late assignments: There are no homework assignments (other than the project) in this course. There are four delivery milestones for components of the project, which must be met. No credit will be given for project materials turned in late.

Academic integrity: You will be expected to conform to the University's policy on academic integrity.


Resources


Last modified: Tuesday, 13 May 2003