 |
ELEC
372
Engineering Software Structures
Assignment 2: Software Inspection
|
This assignment is to be performed individually. Assignments are to
be submitted in the ELEC 372 assignment drop box, located outside Goodwin
235, by Monday February 26th at 1:00 PM. A solution will be posted shortly
after the assignments are collected, so we will not be able to accept late
assignments. Note that printers often become backed up shortly before assignment
submission deadlines - please take this into account in your planning.
Background
(Background story for assignment # 2 with apologies to Lewis Carol and
Alice)
The School of the Indeterminate (run by Mock Turtle) which offers
courses in such topics as Ambition, Distraction, Uglification, Derision,
and Confuser Science needs a software system to track both their students
and their courses. For economic reasons, the Mock Turtle has decided to
purchase software from an enterprising student of ELEC 372 who has offered
up, for a reasonable price, the efforts of assignment #1. However, Alice,
being somewhat doubtful of this scheme has suggested the software should
be verified in some way.
The enterprising student (who shall hereafter be referred to as ES)
has learned that software inspections are the most efficient means of verifying
software products and knows that students are economical sources of labour.
So, ES promises the Mock Turtle that the software will be verified for
such qualities as maintainability, correctness and reliability. ES then
sets about organizing the entire 372 class to inspect every program produced
for assignment # 1, in hopes that one of the programs is suitable for the
transaction, and will keep Alice happy!
However, to make sure the students get some practice before tackling
assignment # 1, ES finds a piece of code on which everyone will try out
their inspection skills first. Somehow ES talks the T/As into marking the
inspection efforts on the practice code as well. After the entire assignment
is marked, inspection results will be passed back to the code owners. ES
will be watching for whoever is frowning the least!
Do This Before Starting the Assignment
-
Prepare your own solution to Assignment #1 for inspection by someone else.
You made a new implementation of the two interfaces StudentList
and CourseList. These classes may share a base class
(as in the original assignment code) and may use some new classes.
Prepare a hard-copy listing of all the classes you changed or introduced.
Exclude the unchanged code which uses the interfaces. This hard-copy
listing will be given to a classmate for inspection during Assignment #2.
-
Find a partner who needs your code for completing the assignment.
Or, form a group of three and share (A -> B, B -> C, C ->A) if it's easier.
-
You can give your code to more than one person if necessary.
-
Don't share soft-copy, but hard-copy (on paper).
-
Read the note below.
Steps in the Assignment
-
Obtain hard-copy of the Inspection Materials, as follows:
-
The Checklist,
from this web site. This will define what you're inspecting for.
-
The Findings
Report Template, from this web site. You will need two copies
of this form
-
The code of the class LinkedTwoEndedList,
from this web site. This will be inspected.
-
The code of class(es) written by another student in ELEC 372 (either section).
This will be inspected (both original code and your changes).
-
Inspect LinkedTwoEndedList according to the Checklist.
Do this work on your own. Record all your findings in a Findings Report.
Record the Project Name on this Findings Report as "Linked Two-Ended List".
-
Inspect the other student's classes, using the Checklist to guide
your efforts. Do not consult with its author. Do this work on your
own. Record all your findings in another copy of the Findings Report. Record
the Project Name on this Findings Report as "Student Data Base".
-
Hand in the following:
-
The Findings Report for the project "Linked Two-Ended List". [40% of marks]
-
The Findings Report for the project "Student Data Base". [60% of marks]
-
The inspected code for the project "Student Data Base".
-
The entire inspection assignment is due Monday February 26th
at 1pm. Place the assignment in the drop box outside room 235 in Goodwin
Hall.
Do This After Finishing the Assignment
-
Give a copy of your Findings Report to the code-owner from whom you obtained
the "Student Data Base" project code.
-
Get a copy of the Findings Report for your own code, back from the person
you shared the code with.
Notes
-
This inspection exercise will not be enacting a full Fagan Inspection.
Instead, we will be carrying out the two steps Kickoff (the tutorials)
and Individual Checking (doing the inspection to be handed in for Assignment
# 2). (Some research is suggesting that the large inspection meetings add
little value to the process.)
-
Use the Checklist as a guide for your inspections. However, if you see
an issue in the code not related to the Checklist and feel it should be
recorded, do so! And suggest another checklist item to cover this issue.
-
You can fill in the Findings Report Template on paper, or if you want to
you can edit it electronically and print the result afterwards. But do
the inspection "at the desk" rather than electronically. (You should
have hard-copy, anyway.)
-
You will be graded on completeness of inspection and accuracy of records.
-
Quality is expensive. This
assertion even applies to assignments, where the resource is your
time and energy. For Assignment 1, you met what quality criteria
you saw fit, given the description of the assignment. Assignment
1 did not require all the quality criteria we are inspecting for in Assignment
2. What this means is that when your code is inspected, there
are sure to be quality criteria which your code does not appear to meet.
This is is no way a negative judgement on your coding abilities, or
you, because when you wrote the code, these criteria were not required.