ISE440 (Spring 2001)
Information System Design:
Object-Oriented Modeling, Analysis, and Design
Scott Stoller

Table of Contents

Meeting Time and Location
Course Description
Project Page
Homework Guidelines
Exam Guidelines
Grading Statistics

Meeting Time and Location

Meeting Time: 8:20am-9:40am on Tues and Thurs in Computer Science 2212 (not Humanities 101).

Office Hours: 9:40-10:40 on Tues and Thurs in Computer Science 1429.

Course Description

This course covers fundamental topics in object-oriented analysis and design (OOAD), specifically, the Unified Modeling Language (UML) and design patterns. We will also briefly review the fundamentals of object-oriented programming languages.

The textbook is

Perdita Stevens and Rob Pooley. Using UML: Software engineering with objects and components. Updated edition. Addison-Wesley, 2000.
You might also want to refer to the UML 1.3 Standard. We will read supplemental material on design patterns.

Coursework includes several homework assignments and a project. Details of the project are available from the Project link in the Table of Contents.

Homework Guidelines

By default, assignments are due by the end (midnight) of the specified day. To submit an assignment, email it to
stoller AT cs DOT sunysb DOT edu or put hardcopy under the door of Room 1429.

Exam Guidelines

During exams, you may use the course textbook, your own notes, handouts that were distributed in class or posted on the course web page, and a dictionary. You may not bring someone else's notes or a mechanical reproduction of all or part thereof. You may not bring a different textbook or a mechanical reproduction of all or part thereof.


Course grade

Breakdown for project:
Requirements (first submission)5
Design (first submission)12
Final requirements, design, implementation, and implementation-related documentation35
Presentation and demo5

The work breakdown does not have its own weight in the grading. However, no member of a team will receive a score for the project until the team has submitted an acceptable work breakdown.

Breakdown for homework:
in-class3     = (0.5 per team)*(6 other teams)

The in-class assignment is your evaluation of other teams' presentations on May 1 and 3.


The following information may be slightly inaccurate, due to score adjustments, late submissions, etc.

Item Mean Std.Dev. Histogram
hw1 (out of 20) 18.0 2.4
requirements (out of 20) 17.4 3.5
design (out of 20) 18.2 0.8
hw2 (out of 20) 12.1 5.9
exam (out of 90) 55.6 12.2 histogram
hw3 (out of 20) 15.2 5.9
project (out of 100) 93 4

Students with Disabilities

The Provost has required that all faculty include the following statement in their syllabus handouts:
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.


11 May

Mail: Project scores and course grades have been sent by email. If you did not receive them, let me know. If you ever use UML again, please drop me a line; I'm interested to hear about it.

1 May

In-class Project Evaluations: I have 3 evaluation sheets without names. All 3 are written in pencil. If you think you are the author, stop by my office, or send me email containing a few phrases that you wrote on your evaluation sheet.

Statistics: I added grading statistics for hw3.

Presentations: Revised schedule for in-class presentations on Thursday:
May 3
8:20-8:40 auction
8:40-9:00 building security
9:00-9:20 express delivery
9:20-9:40 problem tracking

24 Apr

Project Demos: Schedule a demo by sending an email to Han suggesting a 40-minute timeslot during one of the following times. Han will meet you in the Transaction Lab.
Fri. May 4: 9:00am - 11:15am, 2:40pm - 6:00pm, and all evening
Sat, May 5: most times during the day
Sun, May 6: most times during the day
Mon, May 7: 2:40pm - 5:00pm
Tue, May 8: 9:00am - 11:30am
Wed, May 9: 8:00pm - 11:00pm

Exam: If you have questions about the grading of your exam, please start by talking to the person who graded the problem: Han for problems 2-8, Scott for problems 1 and 9. This will help ensure consistent grading.

17 Apr

Exam: I revised the sample solution for Problem 1. The new version is now available from the link below and says "version 2" near the top.

Exam: Here is a Sample Solution for Exam.

10 Apr

Handout: The handout in today's class is: Inventory and Accounting, from chapter 6 of: Martin Fowler, Analysis Patterns: Reusable object models. Addison-Wesley, 1997.

Presentations: I reserved a laptop and projector from Audio-Visual Services for May 1 and 3. Disclaimer: Equipment from Audio-Visual Services has worked fine in the past, but of course there is no way that I can guarantee that it will work fine in the future.

Project: Support for persistent storage in the implementation part of your project is not required. It will be treated as extra credit.

Exam: Remember that the exam will be in class on 17 April. You should review the Exam Guidelines. The exam will cover lecture material up to and including Topic VIII (Packages and Subsystems, discussed on 3 Apr) and textbook material from chapters 2, 3, and 5-14.

9 Apr

Presentations: The presentation should describe the requirements, design, and implementation. Your presentation should definitely include some UML diagrams, which are as effective in presentations as in written documents. If you use a laptop for your presentation (I have not yet received any requests for a laptop), you could try to actually run your implementation during the presentation, but keep in mind that it might not be possible to access the Transaction Lab (including the database server) from the laptop; if you want to look into this, send a message to ntadmin AT cs DOT sunysb DOT edu describing the situation. Demos will be done in the Transaction Lab.

6 Apr

Presentations: Here is the schedule for in-class presentations.

May 1
8:20-8:40 DMV
8:40-9:00 auction
9:00-9:20 job search
9:20-9:40 video rental
May 3
8:40-9:00 building security
9:00-9:20 express delivery
9:20-9:40 problem tracking

Announcement: On May 2, the university is having a Celebration of Undergraduate Achievement, in which undergraduates exhibit class projects, research, etc. If you are interested in exhibiting your ISE440 project, please contact Prof. Lewis.

2 Apr

Homework: Homework3 is now available. I added a grading breakdown for homework.

29 Mar

Presentations: During your presentation, you should use either overhead transparencies or a laptop+projector. If you would like to use the latter, let me know in advance, and I will try to reserve them from Audio-Visual Services (don't count on their availability until I have made the reservation).

28 Mar

Clarification: When I said in lecture yesterday that activity diagrams don't have inputs, I meant that edges (i.e., transitions) in activity diagrams are not labeled with events (unlike edges in state diagrams). Activity diagrams can still get input as part of activities. For example, there could be a node labeled "get PIN". In other words, in activity diagrams, the inputs, if any, are associated with nodes (activities) not edges (transitions).

Project: The final versions of your requirements and design should contain page numbers.

26 Mar

Homework: Here is a Sample Solution for Homework 2.

20 Mar

Project Meetings: When counting "every two weeks", skip spring break. Thus, on 29 Mar, I will meet with these teams: building security, express delivery, problem tracking.

Presentations and Demos: Here is a more detailed schedule for the end of the semester. Each team will give a presentation in class on May 1 or 3. You are free to let one team member do all of the talking or share the talking. Show respect for your classmates and plan to attend class on May 1 and 3. For added incentive, as in-class "homework" assignments, you will be asked to fill out questionnaires evaluating each other's presentations. Demos will be scheduled during the week of May 7; there will be no lecture that week.

16 Mar

Project: When you submit the design, if you have made non-negligible revisions to the requirements since 4 Mar, submit a printout of the revised requirements, too. You don't need to repeat info in the two documents; you can assume that someone reading the design has already read the requirements. The design should describe how all of the non-trivial methods work, using pseudo-code, state machines, or perhaps activity diagrams. Of course, you can use different formats for desccribing methods of different classes, if desired.

13 Mar

Homework: You must submit homework2 electronically (by email). We prefer PostScript or PDF format; Microsoft Word files are also acceptable.

Project: The deadline for submitting your design is postponed to 3pm on Monday, 26 Mar. You must submit a printout by that time.

Homework: By popular demand, the deadline for submitting hw2 is postponed to Monday, 19 Mar.

9 Mar

Job/Internship Fair: Don't miss the Job/Internship Fair on Wednesday, March 14, 12:00pm - 4:00pm, at the Sports Complex.

9 Mar

Homework 2 is now available.

Exam: The exam will be in class on 17 April.

5 Mar

Printing large diagrams from Argo: Argo lets you save diagrams as graphics (File -> Save Graphics). You can resize and print the graphics file using your favorite image viewing/manipulation program. If you are making diagrams so large that they are unreadable when resized to fit on a page, then you should divide them into multiple diagrams. This can be accomplished in various ways; if you don't see how, talk to me about it (during office hours, or make an appointment).

Printing from Argo in the Trans Lab: Argo lets you print to a file. The output is in PostScript form. You can transfer the PostScript file to a sparky account (every student can get one) and print it from there. I guess that you can transfer it by ftp or by emailing it to yourself. This might not work well for diagrams that do not fit on a page.

2 Mar

Grading: Considering the effort that will be needed for your projects, I will not assign as many homeworks as originally planned. Accordingly, the weight of homeworks in the course grade is reduced from 30% to 20%. The removed 10% is split among the project and the exam in such a way that the weight of the project divided by the weight of the exam is approximately 2.5, as before.

1 Mar

Homework: Here is a Sample Solution for Homework 1.

28 Feb

Project: At each team meeting, bring hardcopies of all of your team's requirements and design documents that have been created or updated since the previous meeting. I will keep these, as a record of your progress.

Project: As stated in the Project Description, the requirements should be expressed in the UML. UML documents usually contain both diagrams and text. For example, use cases can be described using use case diagrams, collaboration diagrams, and sequence diagrams, accompanied with explanatory text as needed. The requirements document might also include class diagrams for parts of the class hierarchy that might be of interest to the purchaser or user (e.g., to help them decide whether the system keeps track of all of the necessary information in a logically structured way), perhaps accompanied by descriptions of some of the operations (preferably expressed as preconditions and postconditions written either as logical formulas or as text). If your project involves a significant database component, your requirements document might also contain entity-relationship diagrams. Use your favorite word processor for the text. You are free to create the diagrams using Argo/UML or your favorite drawing program (Visio, Paintbrush, xfig, etc.). Visio has some pre-defined UML icons.

26 Feb

Sybase: The Transaction Lab Home Page has a link to a demo of how to use JDBC.

26 Feb

Grading: Hw1 will be returned during class tomorrow. If you have questions about the grading, please send email to the T.A., Han Li. If you still have questions after talking to the T.A., contact the instructor.

22 Feb

Project: Your systems will need to store persistent data. As part of your design, you will need to decide whether to use a database, such as Sybase, or ordinary files. Sybase can be accessed from Java using JDBC. If you have experience using Sybase, and you want to try this, ask me for a Sybase account for your team. If you have difficulty, you can come to office hours, and I will help as much as I can, but be forewarned that I have never tried this myself, so I do not guarantee that we will be able to get it to work. Another (probably easier) approach is to use ordinary files. The Java API conveniently supports writing clusters of objects to files and reading them back into memory, as well as reading and writing of simple text files. When designing the granularity and organization of the files, you should consider scalability to large datasets (e.g., datasets that do not fit in memory). If you believe it will be difficult to support large datasets efficiently (without using Sybase), you should come discuss the design with me, and we will decide what degree of scalability can reasonably be achieved in the project.

Project: Some teams were uncertain about the difference between the requirements specification and the design. The requirements specification expresses aspects of the design that are directly visible to the user. Like a good user manual, the requirements specification describes what the system does and how it is used. A prospective purchaser should be able to decide based on the requirements specification whether the system satisfies all of their needs. A prospective user should be able to understand based on the requirements specification how to interact with the system and whether that style of interaction will be convenient, efficient, and compatible with their company's business processes. The requirements specification describes substantial aspects of the user interface (e.g., what options are available to the user at each step of an interaction); it does not necessarily describe cosmetic aspects (e.g., on-screen layout).

21 Feb

Project: Team members should agree as soon as possible on how to divide the work. As stated on the Project page, each student (not the team as a whole) will receive scores for the project. Each team member is responsible for ensuring that he or she contributes. If you believe that your teammates are preventing you from contributing, discuss the situation with me immediately; if you wait until near the end of the semester, it will be too late to remedy the situation, and you will receive low scores for the project.

20 Feb

Project: Some teams did not distinguish in the description of their project goals the functionality that will be supported by the design from the functionality that will be supported by the implementation. For those teams, I will assume they plan to implement all of the described functionality. If this is not the case, you must propose what subset will be implemented no later than 23 March (the deadline for submitting designs).

Exam: I added Exam Guidelines.

Project meetings: Today I sent an important email about project meetings. If you did not receive it, let me know.

11 Feb

Homework: Homework1 is now available.

8 Feb

Project: When deciding which parts of your design to implement, I generally recommend that you focus on implementing the core functionality of the system, not the user interface. Implement a user interface that is just sufficient to test and demo the core functionality, or perhaps use a simple "test harness" program that simulates events coming from a user interface.

5 Feb

Argo/UML: Before using Argo/UML, you should go to the Argo/UML home page and read the User's FAQ and the User Interface Tours.

Argo/UML: I installed Argo/UML in the ise440_ta account. To run Argo/UML, open the folder H:\ise440_ta\argouml and then click on the icon for argouml-0.8.1a. Class diagrams, use case diagrams, state diagrams, and activity diagrams seem to work fine. Collaboration diagrams have an annoying bug: every message label contains the string ": new Action" (if you figure out how to delete it, let me know). Sequence diagrams are not supported in the current version of Argo/UML. So, I suggest that you use a drawing program to create collaboration diagrams and sequence diagrams. For example, you can do this using Microsoft Visio, which is available in the transaction lab.

Accounts: All students will receive Transaction Lab accounts during class on Tuesday.

30 Jan

Office Hours: I added information about office hours.