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

  1. 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.
  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.
  3. You can give your code to more than one person if necessary.
  4. Don't share soft-copy, but hard-copy (on paper).
  5. Read the note below.

Steps in the Assignment

  1. Obtain hard-copy of the Inspection Materials, as follows:
    1. The Checklist, from this web site.  This will define what you're inspecting for.
    2. The Findings Report Template, from this web site.  You will need two copies of this form
    3. The code of the class LinkedTwoEndedList, from this web site.  This will be inspected.
    4. The code of class(es) written by another student in ELEC 372 (either section).  This will be inspected (both original code and your changes).
  2. 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".
  3. 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".
  4. Hand in the following:
    1. The Findings Report for the project "Linked Two-Ended List". [40% of marks]
    2. The Findings Report for the project "Student Data Base". [60% of marks]
    3. The inspected code for the project "Student Data Base".
  5. 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

  1. Give a copy of your Findings Report to the code-owner from whom you obtained the "Student Data Base" project code.
  2. Get a copy of the Findings Report for your own code, back from the person you shared the code with.

Notes

  1. 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.)
  2. 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.
  3. 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.)
  4. You will be graded on completeness of inspection and accuracy of records.
  5. 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.