CS 611 - CS 613 Advanced Software Engineering
Robert A. Morris
ram@cs.umb.edu
1996 - 1997

This document, with its links to assignments, is available at the address below; place it in your browser's bookmark list.

http://www.cs.umb.edu/~ram/cs612/schedule.html

Last revision, 11/4/96. Revisions are in the same color as this notice

I'm Bob Morris, ram@cs.umb.edu, CS611/12 meets Tuesdays and Thursdays from 4:30 to 7:15. Note that this starts 30 minutes later than the normal late afternoon class, in order to make it easier for people who come from work.We'll take a 15 minute break in the middle.

In the Spring semester, for CS613, I will meet regularly with the teams. You need to reserve Tu.-Th 6-7:15 for these meeetings, but from time to time a team will probably need to find some other times to meet with me also.

A MiniVision

This vision of the course, as well us much of the course design, follows that of Prof. Bill Campbell.

Writing small programs is easy. Writing large programs for use by others on time and within budget is hard.It requires engineering, not just programming. Software Engineering is about careful design and execution and involves carefully writing many documents to specify the program, its use and maintenance. Software Engineering is often a cooperative enterprise, and we'll methods and tools available for writing this engineering. Students report that any method is better than no method, but we'll focus on the method described in Ivar Jacobson's Object Oriented Software Engineering (OOSE) because it appears to scale up to large scale programming projects involving millions of lines of code and hundreds of programmers.

Because Java has been designed to avoid some of the pitfalls of other OO languages, we'll study it carefully for its insights into OOSE..

Our projects will be a medium-sized programming project: requireing about four or five people writing a program of not more than 10,000 source lines over a course of several months. It will be a real project for an actual client who wants to use your result if it meets his or her requirements. A successful project will thus prdoce a product which can be expected to be in real use and will allow you to apply what you learn from the reading and lectures.

Students who fully apply themselves to the work in this course will come away with:

Commitment

Because you depend on each other and it's a high workload course, you each must make certain commitments:

Required Textbooks.

Abbreviated titles precede the author. These are used in the syllabus.

Additional material (papers) will be handed out in class during the year. For this I will collect a deposit of $20 from each student for copying. Unspent monies will be returned at the end of the year.

Recommended Books

Office Hours

My office is 8-3-075 (I moved recently); it is on the corridor facing McCormack. My office telephone number is 287-6466; my home telephone number is 332-2917. Please do not telephone me at home before 9am or after 10pm. My email address is ram@cs.umb.edu ; I read my email regularly even if I am out of town.

For now, my office hours are Tuesday and Thursday, 3 to 4pm, and by appointment. I usually have to leave campus by 7:45 pm, but can see people in my office from the end of class until then without appointment. If you think you need more time, schedule an appointment. In general, I am around a lot during the day. Feel free to stop by.

Grading

For the Fall semester, a separate grade will be awarded for each of CS 611 and CS 612.

Your grade for CS611 will be based on a combination of the work done by your group (75%) and your individual contribution to that effort (25%).

Your grade for CS612 will be based on your individual performance on the quiz and the examinations and the Java programming project.The examinations will cover material from the lectures and the readings. The breakdown for this grade is as follows:

Syllabus

Once we get started, we'll devote one lab meeting per week to short meetings between me and each project team; the other lab meeting will be used for a class-wide discussion of each team's product. For these meetings the team will select someone to give a presentation about the current status of the project, especially the controversies and decisions taken that week in the team. One purpose of this meeting to give each other insights into common problems. Of course, you will want to meet together with your project team for several additional hours each week.

Project Deliverables

Project teams will be required to deliver the following items to me by the dates given.

DELIVERABLE                           DUE DATE



Product Vision -- a one-pager         October 22

Project Plan                          October 29

Engineering Requirements       
  Specification (ERS)
  incl. Requirements Model and
  Analysis Model      -- draft        December 3

Engineering Requirements
  Specification (ERS) -- final        December 16

Preliminary User Manual               December 16
[Java Programming Project due]        December 16

Design Document
 incl. Design Model --   draft        January 9

Design Document --       final        January 30

Test Plan                             February 11

Code Freeze (no additional            April 17
  functionality)               
Clean, commented, Code Model

Integration of Environment            April 24

Preliminary Test Reports              May 1

Operation and Installation Manual,
 As-built User Manual, Man Page,
 Final Test reports (Test Model),
 Revised Design,  Maintenance Doc
 Code Model                           May 13

Wrap-up Document                      May 13

A Few Important Notes

I'll meet reguarly with the teams, and I'll appoint team leaders whose responsibility is mainly to coordinate schedules and keep me informed of any problems. However, each of you should feel free to discuss issues from the project with me outside the team meetings if you wish. Time will prove very short on these projects, and you should move quickly to resolve any issues among your team and get my help if you can't. You can contact me in person, by phone or by email. Ask questions in class about both the readings and your projects. The answer to virtually every question benefits more than the questioner, and in the rare cases where it might not, I'll defer answering. Don't think of any question as to simple or unimportant to bother asking.

Last revision 9/19/96
Robert A. Morris, ram@cs.umb.edu