Outline: The concepts of Software Engineering. Stress is placed upon formal models for the design and development of high quality software. Topics include: project planning, requirements analysis, system design, program design, program implementation, program testing, system testing, system delivery, and maintenance. A group project with full documentation is required.
Index
Reports
Project Schedule
Proposal/Justification
Gantt Charts
Specification Document
Design Document
Test Design Document
User Manual
System Reference Guide
Reports:
In three to five pages, address the following:
Context of the project:
The Gantt Chart serves to report the current status of a project. Different books give different rules for these charts and the instructions contained here have been adapted from senior project Gantt charts which were informative and attractive. While you may choose to use a variation on this style, your chart should be as informative.
Attached are two charts for a single project. One is for the start of the project and the other reports the progress about half-way through the project. These were designed using Microsoft Word in Landscape mode and using tab settings for alignment. The basic chart took me several hours to do but once it was in place, the second was an easy modification of (a copy of) the file.
The proposed work schedule consists of several sections. Any required document must have at least one section whose endpoint corresponds to the delivery date. Large sections may have logical subsections, even if there is not an explicit product (for example, High-Level Design produces certain of the diagrams for the full Design document). However, there must be a way to determine when the section is done.
The portion of the chart at the right shows each of these sections with the planned start and end dates. As the project advances, planning becomes progress. Any work beyond the current date is designated S for Satisfactory. Work started before schedule is noted with a B while work after scheduled time is recorded as A. The Gantt chart at the end of the project gives important feedback to help improve estimates on future projects.
For Project Status, finished work is A or Satisfactory, even if finished late. Work not yet scheduled to be started is S for Scheduled. Work that is seriously behind is either C for Caution or F for Critical, depending on how far behind it is and how much it impacts the rest of the project. The Percent Complete estimate is an important part of this decision. On the second chart, a more prudent developer might consider the System Design as also Critical and Implementation as requiring a Caution. There is no fixed definition but experience has shown that software developers usually overestimate the amount accomplished and underestimate the amount of time needed to finish.
Sample Chart 1:
| ACTIVITY | PERCENT | STATUS | DATE ENDING |
| COMPLETE | 2/09 2/16 2/23 3/08 3/22 4/05 4/19 5/03 | ||
| Proposal | 0 | S | SSSS |
| Analysis | 0 | S | SSSSSSSSSS |
| Specification | 0 | S | SSSSSSSSSS |
| High-Level Design | 0 | S | SSSSSSSSSS |
| System Design | 0 | S | SSSSSSSSSS |
| Implementation | 0 | S | SSSSSSSSSSSSSSSS |
| Module Testing | 0 | S | SSSSSSSSSSSSSSSS |
| Integration Testing | 0 | S | SSSSSSSSSSSSS |
S Scheduled
A Satisfactory
C Caution
F Critical
Planning/Progress Symbols
B Work Before Scheduled Time
S Scheduled Activity Time
A Work After Scheduled Time
Sample Chart 2:
| ACTIVITY | PERCENT | STATUS | DATE ENDING |
| COMPLETE | 2/09 2/16 2/23 3/08 3/22 4/05 4/19 5/03 | ||
| Proposal | 100 | S | SSSS |
| Analysis | 100 | S | BSSSSSSSSSSAA |
| Specification | 90 | C | SSSSSSSSSSAAAA |
| High-Level Design | 40 | F | SSSSSSSSSS |
| System Design | 20 | C | SSSSSSSSSS |
| Implementation | 0 | S | SSSSSSSSSSSSSSSS |
| Module Testing | 0 | S | SSSSSSSSSSSSSSSS |
| Integration Testing | 0 | S | SSSSSSSSSSSSS |
Project Status Symbols
S Scheduled
A Satisfactory
C Caution
F Critical
Planning/Progress Symbols
B Work Before Scheduled Time
S Scheduled Activity Time
A Work After Scheduled Time
For this and all subsequent reports, the following format is required:
Introduction:
At each level of design, provide an Architectural Design, that is, identify the subparts making up the overall structure and their relationships (graph) and document each:
After designing a level, provide a Component Design on each subpart, that is, partition the services provided by a subpart across components in that subpart. This provides an Architectural Design of the subpart and is a new section of the document.
Where needed, provide
For this course, we will use the pre-condition/post-condition formalism to describe behaviors.
Real-Time Design: If relevant, give the design that will ensure that the real-time timing constraints will be met.
User Interface Design: Give the design principles to be used. Examples may be given.
Help System Design: describe the structure of the help system and how
it is to be accessed (menu, context-sensitive, etc.).
Testing:
Introduction:
Describe functionalities and reason for the system.
Introductory manual
If there is more than one user class, you may have to write a several-section manual with each giving the above for its audience. It should be very easy for a user to get very specific information to answer a question.
Includes complete copies of