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
Grading Statistics
Announcements
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.
Grading
Course grade
| Project | 57% |
| Exam | 23% |
| Homeworks | 20% |
Breakdown for project:
| Requirements (first submission) | 5 |
| Design (first submission) | 12 |
| Final requirements, design, implementation, and implementation-related
documentation | 35 |
| Presentation and demo | 5 |
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:
| hw1 | 5 |
| hw2 | 6 |
| hw3 | 6 |
| in-class | 3 = (0.5 per team)*(6 other teams) |
The in-class assignment is your evaluation of
other teams' presentations on May 1 and 3.
Statistics
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.
Announcements
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: 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.