Software Engineering


Report #3: SPECIFICATION & DESIGN -- Iteration 2(a) (Revised and Collated) --  (due date given here)


IMPORTANT: You must return your graded report#1 and report#2 to us when submiting report#3. This will allow us to compare the progress and facilitate the grading process.


1. Report Format

This report collates Reports #1 & #2 into a single document. This report should be self-contained and contain all the information that is relevant to your project. It should be possible to discard all previous reports and read this one alone to obtain all the relevant information about the project. The report should reflect the revisions and additions since the previous reports were submitted.

The report format should follow the formats of the previous two reports. The report must contain the following sections:

  1. Cover Page and Individual Contributions Breakdown, as specified here.
  2. Table of Contents
    Make sure that the page numbers listed here are correct
  3. Summary of Changes
    Provide an itemized list of key revisions since the previous two reports. This includes key changes in project objectives, use case descriptions, and system design (e.g., interaction diagrams, class and package diagrams).
  4. Customer Statement of Requirements (as in Report #1, revised as needed)
  5. Glossary of Terms (as in Report #1, revised as needed)
  6. Functional Requirements Specification (as in Report #1, revised as needed)
    Elaborate only the use cases that will be implemented by the time of the final demo. For the use cases that will not be implemented for the final demo, provide a casual description for each and indicate that these could be considered for future work.
    System Sequence Diagrams should be updated to incorporate the use cases that will be completed for the final demo.
  7. Nonfunctional Requirements (as in Report #1, revised as needed)
  8. Effort Estimation using Use Case Points
    When calculating duration (equation 4.8 in the lecture notes), assume the productivity factor PF = 28 hours per use case point.   Show the process, not only the final number.
  9. Domain Analysis (as in Report #1, revised to incorporate the use cases that will be completed for the final demo)
  10. Interaction Diagrams (as in Report #2, revised as needed)
  11. Class Diagram and Interface Specification (as in Report #2, revised as needed)
    In addition, include the following subsections:
    1. Design Patterns
      As for Interaction Diagrams indicate and discuss the use of design patterns to improve your design.
    2. Object Constraint Language (OCL) Contracts
      List important contracts (invariants, preconditions, postconditions) for classes and their operations (See Bruegge & Dutoit, Chapter 9; and Miles & Hamilton, Appendix A)
  12. System Architecture and System Design (as in Report #2, revised as needed)
  13. Algorithms and Data Structures (as in Report #2, revised as needed)
  14. User Interface Design and Implementation (as in Report #1 and Report #2, revised to incorporate the use cases that will be completed for the final demo)
  15. History of Work & Current Status of Implemenation
    Instead of the section Plan of Work have the section History of Work which documents how the actual milestones and deadlines evolved. Compare these against the milestones as planned in Reports #1 and #2.
    Also summarize (as a bulletted list) your key accomplishments in this project.
  16. Conclusions and Future Work (minimum 2 pages)
  17. References (books, papers, URL's of the sources of information and tools used in the project)

NOTE: Do not submit separately "revised/corrected" versions of reports #1 and #2. All corrections suggested for those reports should be incorporated in report #3. However, you must return the graded versions of the previous two reports to compare.
NOTE: If in doubt of whether to include something from reports #1 and #2 since it may be overlapping, then include everything that is not repetitious.

Please include both the domain model and the class diagram in the report. You should know by now that your domain model doesn't need to exactly correspond to the class diagram. In fact, it is very likely that they'll be different, with class diagram having many more classes. Moreover, if they do match exactly, that is likely a sign of a bad design.
On the other hand, there should be significant correlation between the two, since otherwise would imply that the domain model was not used in the design (hence, it is completely useless).

Discuss your diagrams! Describe all design decisions and other things that are not obvious from the diagrams. Any useful information is welcome. There is no limit on the number of pages for the report. Having good comments and explanations greatly helps in reading and evaluating the project and will certainly contribute to your grade.
Also, give exact references and URLs of any material that is used in the project and doesn't originate from the textbook.

Since this report is a compilation and revision of the previous two, it is a good idea to address all the issues that were not adequately addressed in the first two reports. Discuss with the TA what could have been done better in the first two reports and also take into account the comments that were provided to you earlier. Do not repeat the same mistakes.

2. Grading

See also the grading policy for the assigning the overall team grade vs. grades for the individual members.

The reports will be graded approximately as follows:
(Please note that the grading policy is subject to change, based on overall class performance.)

Report  Section
Points
  3. Summary of Changes
5
  4. Customer Statement of Requirements
6
  5. Glossary of Terms
4
  6. Functional Requirements Specification
      see detailed breakdown in Report #1
37
  7. Nonfunctional Requirements
6
  8. Domain Analysis
      see detailed breakdown in Report #1
25
  9. Interaction Diagrams
      see detailed breakdown in Report #2
      plus, use of Design Patterns
30

10
10. Class Diagram and Interface Specification
      see detailed breakdown in Report #2
      plus, OCL Contract Specification
10

10
11. System Architecture and System Design
      see detailed breakdown in Report #2
22
12. Algorithms and Data Structures
4
13. User Interface Design and Implementation
8
14. History of Work & Current Status of Implemenation
5
15. Conclusions and Future Work, min 2 pages
5
16. References
3
PROJECT MANAGEMENT
10
TOTAL:
200

Notice the grading focus on the mutual correspondence between the (domain, class, interaction, etc.) diagrams as well as quality of the comments. To avoid confusion, it is extremely important that the names of concepts, classes, methods, and attributes are consistent across all diagrams.

See Report #1 for explanation about the "Project Management" part of the grade.

3.   Report Submission

Each team should submit only one report to the TA. Bring the report to the TA's office on or before the due date.

Submission deadline: 5:00 p.m. on the due date.

The project report materials will not be returned, so make sure to keep your own copy of the final report.


Ivan Marsic
Sun Apr 3 17:30:12 EDT 2005