CS3/SE3 Individual Practical (Phase 2) Self-Assessment Proforma
The number of marks available for this phase of the practical is 50.
This proforma provides the grading scheme for the
practical. You should submit a completed proforma with your
work. To complete the proforma just edit this html document and include it in the bundle of documents you submit.
| Name: |
|
| Email Address: DCS mail address here |
|
The marking scheme is based on two types of questions:
- All or nothing questions [A] In these questions you are asked a yes or no question - if the answer is yes you get all the marks, no you get none of the marks.
- Sliding scale questions [S] In these questions you
are asked to rate your performance and award marks in
proportion to how you rate your work. In the case of marks
out of 2 you should award yourself zero if the answer is
"not at all", one for the answer "somewhat" and two if you
can answer "almost completely".
In Phase 2 of the practical your main task is to develop a system
based on your design undertaken in phase 1. There is no need to
stick precisely to the design of Phase 1 and if you are unhappy
with your design you may change it in any way you see fit.
The maximum number of marks available for Phase 2 depends on the level
of implementation you choose to provide. It is probably better to
begin with a more modest aim that can be extended than to start
with an ambitious aim only to find you need to do disaster
recovery late in the practical. There are three possible
choices:
|
Level
|
Max Marks
|
Description
|
|
Basic
|
35
|
This is a basic system in which nodes should be able to join and leave
the system and should be able to add and retrieve files but
need not include features that add to speed,
robustness, or security. In particular you can assume
that: any single file resides at a single node; there is
no need to try to speed access by using concurrent access
to more than one node; and that nodes do not fail.
|
|
Enhanced
|
40
|
This is a system with at least the basic functionality plus one
additional feature (e.g. dealing with node failures, using
redundant servers, security, splitting files across
multiple nodes to speed access, ...).
|
|
Full
|
50
|
This is a system with at least the functionality of an enhanced system
plus at least one additional feature. This system could
be quite close to your full design submitted in Phase 1.
|
To complete the proforma:
- All students should assess their systems against the criteria given for the basic system. This provides 35 marks of the overall assessment.
- Students submitting an enhanced system should assess their systems against the enhanced systems criteria.
- Students submitting full systems should assess their systems against the full systems criteria.
Basic System Criteria [35 Marks]
You should report on the basic system criteria by editing this part of the proforma to supply answers to the questions posed in the table below. Reporting on the basic system criteria is divided into two sections. The first section reports on the code and tests you have developed during the practical and is common to both the CS and the SE streams of the practical. This part of the practical is worth 25 marks. The additional 10 marks is awarded for a section specific to the SE or CS variants.
Both CS and SE Deliverables [25 Marks]
This part of the proforma should be completed by all students.
This part of the assessment covers those deliverables that are common to both the SE and CS IPP. For this part you should supply:
- The files containing the code for your system.
- The additional JUnit tests you have created to unit test
the classes you have created during development.
- The simple tests provided in the test harness for the file system
only test some simple aspects of the functionality. In
particular, they do not test the distributed aspect of the
system. Provide a description of how you tested the
distributed aspects of your file system. Allow up to two
pages for the description.
- Provide any additional system tests you created for your system.
|
Question
|
Type
|
Out of
|
Mark
|
|
Does your implementation compile and implement the supplied interface
(or some closely related interface)?
|
[A]
|
5
|
|
|
How many of the tests supplied in the JUnit test harness does your
code pass (award one mark per test)? If it was impossible
to use the provided tests, supply alternative tests,
assess how well your system performs with respect to these
tests and demonstrate how your tests meet or exceed the
supplied tests.
|
[S]
|
5
|
|
|
Briefly describe how your system performed on each test, taking care to describe your diagnosis of any problems arising during testing: Add your answer here.
|
|
Assess the adequacy of the unit testing of the code you have
developed. Award at least 5 marks if each class in your
implementation has been subjected to some testing.
|
[S]
|
10
|
|
|
Provide a brief assessment of the coverage of your test cases. If you believe all classes are adequately tested award 10, interpolate between 0 and 10 to reflect your assessment. Add your answer here.
|
|
Assess the adequacy of your approach to testing the distributed
aspects of your system. Award at least two marks if you have
checked that the system works with at least two nodes and
that information added at one node is available at
another. Interpolate either side of this.
|
[S]
|
5
|
|
|
Provide a brief justification for your assessment of
the distributed aspects of your system. Add your answer here.
|
|
Total for this section:
|
|
25
|
|
CS Specific Questions [10 Marks]
Note: this part of the proforma should only be completed by students taking the CS variant of the practical.
You should provide two additional deliverables:
- A brief review of your implemented system against your design
submitted for phase 1. Clearly identify those elements of the
design that have been implemented successfully and those that
have been partially implemented or not implemented at all. If
the implementation is significantly different from the design
you should sketch the new design in this deliverable. This deliverable should be at most two pages of text.
- A document that describes your implementation of the system in a way that could make it useful to a developer who wants either to use or develop your system further. This should be at most two pages of text.
|
Question
|
Type
|
Out of
|
Mark
|
|
Assess how well your review of the implementation against the design reflect the match between the two. Does the list of implemented, partially implemented or unimplemented features accurately reflect the real situation?
|
[S]
|
5
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Assess how adequate your documentation of the system is - could a developer make effective use of the documentation in any subsequent development work?
|
[S]
|
5
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Total for this section:
|
|
10
|
|
SE Specific Questions [10 Marks]
Note: this part of the proforma should only be completed by students taking the SE variant of the practical.
You should provide two additional deliverables:
- Provide a review of your code against the class model you developed in Phase 1. You should identify the major similarities and differences and describe why you deviated from the original model. This should be at most two pages of text.
- Provide a review of the testing that you carried out against the test plan contained in your Phase 1 report. Identify any deviations from plan and describe why you deviated from the test plan.
|
Question
|
Type
|
Out of
|
Mark
|
|
Assess the adequacy of your review of the class model against your implementation. In particular, are all major discrepancies reported and is their significance explained clearly?
|
[S]
|
5
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Assess the adequacy of your review of the test plan against your implementation. In particular: Was unit testing carried out adequately to plan? Was integration testing carried out adequately to plan? Was system testing carried out to plan?
|
[S]
|
5
|
|
|
Justify your answer: Add the justification for your mark here.
Total for this section:
|
|
10
|
|
Enhanced System Criteria [5 Marks]
This part of the proforma should only be completed by those students who are submitting an enhanced system. Those submitting full systems should complete the next section not this one.
In addition to the deliverables provided for the basic system criteria you should:
- Provide a brief description of what feature your system implements that provides the enhancement over a basic system.
- Describe the testing procedures you used to verify your system implements the enhanced feature. This could be the code for JUnit tests or it could be a description of the testing process with test data, results and any auxiliary code used in the testing process.
|
Question
|
Type
|
Out of
|
Mark
|
|
Assess the adequacy of your implementation of the enhanced feature on a three point scale (0=broken, 1=partially working, 2=mostly working).
|
[S]
|
2
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Assess the thoroughness of your testing process applied to test the enhanced feature of your system on a four point scale (0=no verification, 1=inadequate, 2=adequate, 3=thorough).
|
[S]
|
3
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Total for this section:
|
|
5
|
|
Full System Criteria [15 Marks]
This part of the practical should be completed by students submitting a full system.
In addition to the deliverables provided for the basic system criteria you should:
- Provide a brief description of at least two features your system implements that provides enhancement over a basic system.
- Describe the testing procedures you used to verify your system implements the enhanced features. This could be the code for JUnit tests or it could be a description of the testing process with test data, results and any auxiliary code used in the testing process.
- Provide a document (maximum length 2 pages) that provides an analysis of the behaviour of your system in the event of some specific failure conditions. You should consider at least the following failure situations:
- Suppose a node fails while it is transferring data, will the system recover from the failure.
- Loss of a single node when the system contains at least 100s of nodes. How likely is the system to lose data?
- Loss of 5% of the nodes in a system that contains at least 100s of nodes. How likely is the system to lose data?
- Suppose an adversary infiltrates the system with a single node that is intended to corrupt data in the system. Is it possible for a user to detect attempts to corrupt data?
- Does your system detect attempts to provide corrupt data by nodes that have been compromised in some way?
You should add at least two additional failure situations to this list and assess how well your system performs in those situations.
|
Question
|
Type
|
Out of
|
Mark
|
|
Assess the adequacy of your implementation of each of two of the enhanced features you provide in your system on a three point scale (0=broken, 1=partially working, 2=mostly working).
|
[S]
|
4
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Assess the thoroughness of your testing process applied to test each of two of the enhanced features of your system on a four point scale (0=no verification, 1=inadequate, 2=adequate, 3=thorough).
|
[S]
|
6
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Assess the robustness of your system to a range of failure modes. To award full marks your system must provide some level of protection to all the failure situations considered in your report.
|
[S]
|
5
|
|
|
Justify your answer: Add the justification for your mark here.
|
|
Total for this section:
|
|
15
|
|
Stuart Anderson
Last modified: Mon Jan 21 08:19:15 GMT 2002