Report #3: SPECIFICATION & DESIGN -- Iteration 2(a) (Revised and Collated) -- (due date given here)
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:
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.
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.
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.
We are interested in the evolution of your project as well as in the final outcome. If you began with certain ideas but now have modified them, you should not simply discard for the third report. First explain how you started, then explain why you moved on to a new design. Why the original design was inadequate? How is the new design better? If you scaled down your initial ambitions, indicate that this can be part of future work for your project. Polish only the ideas that you have implemented for final submission.
Include both the domain model and the class diagram in the
report. You should know by now that your domain model does not need to
exactly correspond to the class diagram. In fact, it is very likely
that they will 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).
The key difference between the domain model and class diagram
is that the domain model shows conceptual organization of
your software, while the class diagram contains many
implementation details.
Therefore, the domain model being more abstract and summarized
should be easier to understand. The class diagram contains
many details and requires longer examination to understand.
It may contain many specific details of your particular implementation
of the conceptual domain model.
Both have value and both should be included.
Ideally, you would show the first Domain Model that was
part of Report #1, then you show the most recent Domain Model
that you derived at the end of the semester.
Same for the Class Diagram, first the one from Report #2,
then the final one.
Provide description how new domain model evolved
from the old one, and how the class diagram evolved from
the domain model.
Each student must individually write a reflective essay focusing on the course topics and the design project. This should be a reflection from your personal, individual perspective on how you felt the course met your needs or fell short. You should demonstrate what you have actually done in the course and what you have learned. What was the most difficult aspect of this course in general, and what was the most difficult aspect of team projects? Analyze your work on the group design project and to reflect on the issues that your project confronted. Discuss how you would approach the teamwork if you had another semester to work on the project.
There is usually some confusion about reporting the contribution breakdown for this report. Keep in mind that this report is mainly made by combining Reports #1 and #2 (although there are some new elements unique to this report).
Recall the policy that the contributions should be claimed by all
team members who made any intellectual contribution to a particular part of the report.
Therefore, the breakdown should reflect the entire history of contributions that eventually led to the writeup of this report.
In other words, the credit must not be claimed solely by the person who did cut-and-paste from the previous two reports!
See also the grading policy for the assigning the overall team grade vs. grades for the individual members.
First, all reports will be graded independently of each other, as follows:
(NOTE: Check also the actual
grading checklist.)
Points | |
• Summary of Changes | |
1. Customer Statement of Requirements | |
2. Glossary of Terms | |
3. System Requirements see detailed breakdown in Report #1 | |
4. Functional Requirements Specification see detailed breakdown in Report #1 | |
5. Effort Estimation | |
6. Domain Analysis see detailed breakdown in Report #1 | |
7. Interaction Diagrams see detailed breakdown in Report #2 plus, use of Design Patterns | 10 |
8. Class Diagram and Interface Specification see detailed breakdown in Report #2 plus, OCL Contract Specification | 10 |
9. System Architecture and System Design see detailed breakdown in Report #2 | |
10. Algorithms and Data Structures | |
11. User Interface Design and Implementation | |
12. Design of Tests | |
14. History of Work, Current Status, and Future Work | |
15. References (negative points if missing or inadequate) | |
PROJECT MANAGEMENT | |
TOTAL: |
Note that the grading focus will be on traceability along the domain, class, interaction, etc., diagrams as well as the program code. To avoid confusion, it is extremely important that the names of concepts, classes, methods, and attributes are consistent across all diagrams.
Second, all reports will be cross-compared and rank-ordered. See Report #1 for explanation of this second step.
The reflective essays will be graded individually as an extra effort.
This report should be sumbitted in parts, so follow the same guidelines as for Report #1.
In addition, each student should email his or her individual reflective essay, separately as a PDF document, to the instructor and TA.
Submission deadline is usually by end of the day on the due date.