Grading and Rules
The course is graded by a project, rather than a written exam. The purpose of this project is to test your understanding of the theory of software maintenance and evolution, your ability to apply the learned principles (and tools) to the analysis of a real-world software project, and your ability to answer (in a documented way) several questions regarding the maintenance and evolution of this project.
Way of working
The project, described here, can be executed in groups of 1 or 2 students. A group receives a single grade. However, note that the amount of presented detail (when solving the assignment) for a group of two students is supposed to be about double than the amount of detail presented by a student who works alone. Group forming is up to you (if you encounter difficulties, please contact the lecturer).
During the assignment you will complete several consecutive steps. The way of working for all steps is outlined below:
- Steps: Within each step, you will have to do several specific analyses and answer specific questions on the software at hand. Note that, within each step, you have several sub-steps with sub-questions.
- Order: The order in which you complete the steps is up to you. However, it is strongly recommended you complete the steps in the presented order, as this is the logical (and increasing difficulty) order.
- Results: The results of all steps, put together, will form your final report, which you have to hand in for a grade.
- Progress: You should hand in at least one step per week. That is, you should hand in, each week, an increasingly complete report showing that you have progressed with (at least) one more assignment step.
- Feedback: After handing in your work each week, you will receive feedback. Use this feedback to improve your work onwards, and hand in the improved report next week.
- Deliverables: At the end of the course, you should hand in
- the final report
- a CD/DVD/USB stick containing all relevant data (see below)
For completing the assignment you will need your own computer, preferably running a recent version of Windows (and lots of free space, a few free GB are strongly recommended), and access to the internet.
Above all, we encourage you to explore the assignment in different directions, and not to stay limited to the letter of the assignment descriptions. Understanding complex software systems is much about exploration, hypothesis forming and testing, and creating (mental) pictures of a complex and abstract reality. Thus, what is most important, is to
- carefully read the questions to understand what is asked from you
- choose the right analyses, and interpret their conclusions carefully, to support your answer(s)
Handing in the final deliverable
The final deliverable should contain
- the final report, printed on paper. If you make (heavy) use of colors, then please provide a color print.
- the entire data relevant for your assignment:
- for Assignment A, this is (a) a dump (copy) of the directory of your SolidTA installation; this will contain also the data you mined from the considered repository; (b) the PDF of the final report;
- for Assignment B, this is (a) the full source-code of your implementation, including source code of any third-party libraries or packages you use; (b) a short but comprehensive description for building the code; (c) a short but comprehensive user manual document, explaining how one can use your developed tool; (d) the PDF of your report, containing the description of the problem you worked on, the inferred user requirements, the actual design you came up with, and a results section, e.g. displaying snapshots showing the operation of your tool.
The final deliverable should be passed to the lecturer, or put in the lecturer's mailbox (floor 4, Bernoulliborg).
Note: It is mandatory to deliver the results in a physical form, for several reasons. First, Board of Examiners procedures require such results to be archived in this form. Secondly, electronic-only delivery can be plagued with various problems (corrupted ZIP archives, not working links, etc), which makes it hard to assess the proper on-time delivery of the work.
Grading is based on the maximum mark (10) divided by the number of steps to complete in the assignment. If an assignment has more sub-steps, the grade fraction is subdivided accordingly.
If you know you will be late in handing in the final deliverable, report this in advance, with due motivation. Being late with no reporting will attract a grading penalty between 0.5 and 1 points/week for the first two weeks. Reports handed more than two weeks after the deadline will not be considered (you will have to take a re-examination).