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
I'm Bob Morris, ram@cs.umb.edu, CS611/12 meets Tuesdays and Thursdays from 4:30 to 7:15. Note that this istarts 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.
Software engineering is about writing programs that are to be used by others. Writing such programs on time, and within budget, can be difficult; a programming project may require the cooperation of many people.
Our lectures will explore methods and tools available for writing such programs. In particular, we shall focus on Ivar Jacobson's Object Oriented Software Engineering (OOSE) method for software development because it is a method that appears to scale up to large scale programming projects involving hundreds, if not thousands, of programmers.
We shall spend a significant amount of time studying object-oriented design and object-oriented programming in the context of Java.
Our labs will focus on a medium-sized programming project: about four or five people writing a program of not more than 10,000 source lines over a course of several months. The project will allow us to apply what we have learned in the lectures to the production of a real product.
Students who fully apply themselves to the work in this course will come away with:
Commitment
Because we depend on each other, we each must make certain commitments:
You will be reading a lot. You will be writing lots of documentation. You will be making many presentations. Be prepared to spend lots of time.
Required Textbooks.
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.
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 reently); it is on the corridor facing McCormack. My office telephone number is 287-6469; my home telephone number is 332-2917. Please do not telephone me at home before 9am or after 10pm. My email address is bill@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 (50%) and your individual contribution to that effort (50%).
Your grade for CS612 will be based on your individual performance on the quiz and the examinations. The examinations will cover material from the lectures and the readings. The breakdown for this grade is as follows:
Syllabus
OOSE refers to Jacobson's Object-Oriented Software Engineering; AF refers to Cooper's About Face -- the Essentials of User Interface Design; JIAN refers to Flanagan's Java in a Nutshell; and JPL refers to Arnold and Gosling's The Java Programming Language. SEM refers to Gilb's Principles of Software Engineering Management.
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 Version Control Handouts
10/1 GUI's and frameworks Sun (UI) Tutorial, MSDEV handouts
WinHelp, Lisp help,
UI Form AF 5-9;
UI Behavior AF 11-14;
10/1 Envisioning a Project A Java Dev. Env. JPL 7; JIAN 26 10/3
10/9 10/14, Holiday 10/16 Ensuring Quality meetings Handouts; SEM 12, 21; OOSE 12 10/21, Project Planning discussion Handouts 10/23 OO Architecture meetings OOSE 6 10/28, Examination I discussion 10/30 The ERS meetings Handouts 11/4, Analysis: Reqs Model discussion OOSE 7 11/6 Analysis: Analysis Model meetings 11/11, Holiday 11/13 Construction: Design meetings OOSE 8 11/18, Construction: Impl discussion OOSE 8,9 11/20 Components meetings Handouts 11/25, Testing discussion OOSE 12 11/27 The Test Plan meetings Handouts 12/2, OOSE Telecom Case Study Team Presentation 1 OOSE 14 12/4 Team Presentation 2 meetings 12/9, Team Presentation 3 Semester Wrap-up 12/11 Examination II
Project Deliverables
Project teams will be required to deliver the following items to me by the dates given.
DELIVERABLE DUE DATE Product Survey September 30 Product Vision -- a one-pager October 21 Project Plan October 30 Engineering Requirements Specification (ERS) incl. Requirements Model and Analysis Model -- draft December 2 Engineering Requirements Specification (ERS) -- final December 16 Preliminary User Manual December 16 Design Document incl. Design Model -- draft January 8 Design Document -- final January 29 Test Plan February 10 Code Freeze (no additional April 16 functionality) Clean, commented, Code Model Integration of Environment April 23 Preliminary Test Reports April 30 Operation and Installation Manual, As-built User Manual, Man Page, Final Test reports (Test Model), Revised Design, Maintenance Doc Code Model May 12 Wrap-up Document May 14
A Few Important Notes
Should you have any problems or questions, contact me early; don't let small problems become big ones! Telephone me, visit me at my office or stop by after class to set up an appointment. Also, I encourage questions in class; if you don't understand something, there is a good chance that others don't. I like questions.