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.
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:
Because you depend on each other and it's a high workload course, you each must make certain commitments:
Abbreviated titles precede the author. These are used in the syllabus.
A solid grounding in Java.
A useful introduction to Java, with many examples of the API. All of these examples are online.
An excellent guide to object-oriented software development. A clear statement of the issues; unabashedly opinionated.
Interviews with some major authorities
He at least addresses the issues.
A classic - revised with extra material. There will be a quiz on this material shortly after the start of the course.
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
This is a magnificent book which every programmer should read. I will require reading in about half of it, but the second half is also of great use to anyone programm for Microsoft Windows.
Recommended by several good students. Excellent for self-study.
A classic guide to writing well.
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.
WEEK LECTURE LAB WEEKLY READINGS 9/3 O-O Software Development A Java dev. env. OOSE 1-4; JIAN 1 9/5 Life cycle models, Java Programming OOSE 4;
9/10 Windows SW development Objects, classes, JIAN 2,3; JPL 1-4, 10 OO Development tools interfaces and packages 9/12 Goal Directed Design Apps vs Applets SEM 1-5; JIAN 4, 5,
9/17 Client presentations Java I/O JPL 11; JIAN 6 9/19 Client presentations Java Exceptions JPL 7; JIAN 26
9/24 Documentation & Help Java Threads JIAN 9; JPL 9; JIAN pp. 220-221 9/26 Document Revision Control msgs requirements Handouts
10/01 UI Form Quiz, MMM AF 5-9; MMM Envisioning A Project 10/03 UI Behavior Java AWT AF 11-14; JIAN 5; (CJ 7)
10/08 Ensuring Quality Team meetings SEM 12, 18, 21, OOSE 12, MMM 13 10/10 Project Planning discussions MMM 14, SEM 6-7, 16-17, 19
10/15 OO Architecture meetings OOSE 6; IEEE handouts 10/17 Use Case Analysis discussions BDS 1-2, 6 and Design
10/22 Exam I meetings 10/24 Analysis: Requirements discussions OOSE 7, BDS 8
10/29 The ERS meetings SEM 8-9, BDS 13-14 10/31 Construction: Design discussions OOSE 8, SEM 10-11
11/05 Construction: Implementation meetings OOSE 8 11/07 Components discussions OOSE 11 11/12 Testing meetings OOSE 12, SEM 12, 20, 21 11/14 The Test Plan discussions 11/19 EzTeX meeting VPlus meeting 11/21 Specialized Systems Bfly meeting OOSE 9, 10
11/26 OOSE Telecom Case Study meetings OOSE 14 11/28 holiday
12/03 Case Study: Warehouse Team 1 Report OOSE 13 12/05 Team 2 Report Team 3 Report
12/10 Examination II Wrapup
You should express your project preferences by email after all presentations have been made, but no later than 9/21 if you want them considered. I will be out of town 9/20-9/29. Team assignments will be available by email approximately 9/25.
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