% 
%      author: Robert S. Laramee
%        file: laramee11assessmentReport.tex
%  start date: 11 Feb 2010
% last update: 11 Feb 2011
%      update: 21 Feb '12
%
\documentclass[11pt,twocolumn,oneside,a4paper]{article}
\usepackage[]{graphicx}
\usepackage{times}
\usepackage{parskip}
\usepackage{fancyhdr}
\usepackage{url}
%\usepackage{german}
\usepackage{array}
\usepackage[english]{babel}
%
% add more space per page
\setlength{\topmargin}{-0.5cm}
\setlength{\textwidth}{15.5cm}
\setlength{\textheight}{23.0cm}
\setlength{\oddsidemargin}{0.0cm}

\setlength{\extrarowheight}{1ex}
%
% define a new, user-defined length called width
\newlength{\width}
% set the value of that new, user-defined length
\setlength{\width}{70mm}

\pagestyle{fancyplain}
\lhead[\thepage]{}      % Note the different brackets! Removes Section Header
% from top of page
\rhead[\thesection]{ {R.\ S.\ Laramee: Software Engineering, \today}}
%\renewcommand{\headrulewidth}{0pt} % for removing the line accross
                                   % the top
%
\begin{document}
% 
\begin{center}
\large
Assessed Coursework 5: \\ 
Assessment of Coursework 4 Report\\
(Group Work)\\
\today
\end{center}
\normalsize
\textbf{Group Number Writing Report:}\\
\textbf{Group URL:}\\
\textbf{Names of Team Members:}\\

\textbf{Group Number being Assessed:}\\
\textbf{Group URL:}\\
\textbf{Names of Team Members:}\\

\textbf{Instructions:} Each team is to assess the work and product
delivered by another team in the form of a report.
Each team writes their report by answering the list of questions 
provided.
Consider how the other team's work compares to your own.
The report is typed, includes the original questions,
and is no longer than 12 pages.
Both a PDF and a \LaTeX{} source file for this document (the
instructions) are provided on the module web page to help you
get started.

The team delivering a late product will lose points according to how
many days after the deadline the requirements are fulfilled.
Those lost points will then be awarded to the recipient team.
\textit{Keep in mind that the team being assessed will receive a copy
of the report you write.} 
Also note that in order to obtain a distinction level score, all
components: design, implementation, documentation (doxygen), and
testing must be very good or excellent.

\vspace*{-4mm}
\section*{Assignment 5 Assessment Report Deadlines: Electronic and Printed}
\label{sec:a4deadlines}
\vspace*{-3mm}

%\begin{enumerate}
%  \item 
    \textbf{Monday 5 March} by 11:00:  
    online submission and
    paper/printed submission of assessment report 
    in the coursework submission drop-box or
    to the Departmental Student Secretary in room 206 of Faraday Building
%\end{enumerate}

\vspace*{-4mm}
\section{Evaluation Report for Partial Implementation}
\vspace*{-3mm}

The full evaluation is based on design, implementation, implementation
documentation, testing, and group work.

\vspace*{-3mm}
\subsection{Design}
\vspace*{-3mm}

The design report itself (A3) is not assessed here.  
That has already been assessed.  
What is assessed is the design of the partial implementation that
you have received as part of A4 (partial implementation).

\begin{enumerate}

  \item How many classes has the group implemented in their partial
        implementation?  How does this number
        compare with the number of classes your group identified?

  \item Are class names nouns?  Do the chosen class names make sense?
        Are they intuitive?

  \item Does each class have an author?

  \item Are method names verbs?  Do the chosen method names make sense?
        Are they intuitive?

   \item Does the partial implementation contain any class hierarchies?  
        How do the hierarchies compare to those
        that your own team designed?

  \item Do classes in the hierarchies appear to reflect the
    \textit{is-kind-of} relationship?  If not, which ones don't seem
       to?

  \item Do classes in the subsystems appear to reflect the
    \textit{is-part-of} relationships?  
    If not, which ones don't seem to?

  \item Does the software design make sense (so far)?
        Have decisions been justified?  How does it compare
        with that of your own group?

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate how well the partial implementation was designed?
        And why?

\end{enumerate}

\vspace*{-3mm}
\subsection{Implementation}
\vspace*{-3mm}

\begin{enumerate}

  \item Has the group provided screen capture movies that demonstrate the
        features of their software?

  \item Does the source code compile and provide a running application?

  \item For each group member, how many classes did they implement?
        Provide a list of names and numbers.
        Use the \texttt{author} field of each classes
        to identify this.

  \item For each member of the group, list the classes that they
        are the author of.

  \item How closely does the source code conform to the coding
        conventions?~\cite{laramee:bobs}

  \item For each class, list the methods that violate one of 
        \textit{Bob's Concise Coding Conventions ($C^{3}$)}~\cite{laramee:bobs} 
        along with the rule that was broken and the author
        of the class.
        The most commonly neglected rule is \#10-use 
        symbolic constants rather than raw numbers when writing
        source code.  For example:

        %\small
        \scriptsize
        \hspace*{-6mm}(1)~Class Name, (2)~Method Name, (3)~Conventions Violated\\
        1. ClassName::MethodName() --1,5,10.\\
        2. etc. 
        \normalsize

  \item Does the program support addition and deletion of contacts?

  \item Does the program support a month view?

  \item Does the application support three different event types?

  \item Do the events show up in the monthly view?

  \item Do the functions specified in the group report actually work
        as advertised?

  \item Are there any important features missing with respect to the
        assignment specification?

  \item How does the software rate in terms of usability?  Is it
        intuitive?

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate how well the application was written?
        And why?

\end{enumerate}

\vspace*{-3mm}
\subsection{Testing}
\vspace*{-3mm}

\begin{enumerate}

  \item Have unit tests been defined for all of the classes?
        If not, for how many classes have unit tests been defined?

  \item Try running the unit test for each class.  Do they actually
        run and work?  List each class that does not have unit
        tests defined for it or is not working properly.
        Note: It's fine if unit tests were written that test more
        than one class at a time.  They just have to be documented
        (noted in the doxygen comments).

  \item Are the monthly views actually correct?  Is there a correct
        correspondence between the dates and the days of the week?

  \item When does the application crash?  Which features cause it to 
        crash?

  \item Can the application handle random input?

  \item What happens when the input file is corrupted and does
        not conform to the correct CSV format?

  \item What happens when the CSV file is very large?
        What happens if a row in the CSV file contains 100 entries?
        What happens if a column in the CSV file contains 1000 
        data samples?
        Does it crash if the input data file is too large?

  \item How does the application handle empty cells, rows,
        and columns in the input CSV file?

  \item How does the program respond when the user or input
        data file is missing?

  \item How does the application handle corrupted user-data or input
        CSV files?
        For example, what if you replace the normal user-data
        file with a JPEG file?
        What happens if you edit the user-data file with a text
        editor and give it an unexpected format?

  \item Do you think the group did a good job of testing their
        application overall?  How does it compare with your group's
        testing?

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate how well the application was tested?
        And why?

\end{enumerate}

\vspace*{-3mm}
\subsection{Implementation Documentation}
\vspace*{-3mm}

\begin{enumerate}

  \item Has a user data file format description been provided somewhere,
        e.g., in the class that reads/writes the data?
        How does it compare with that of your own group?

  \item How complete is the doxygen output?  Are both the short and
        detailed class descriptions there as described in 
        \textit{Bob's Concise Introduction to 
          Doxygen}~\cite{laramee:doxygen}?  

  \item Are both the class hierarchy and collaboration diagrams there?

  \item Are all methods described?  

  \item Are all input parameters to methods documented?

  \item How about return parameters?

  \item List all of the methods that have undocumented input and
        return parameters and the corresponding class to which
        they belong.

  \item Has the group output their source code as part of their doxygen
        output?

  \item How does the other group's doxygen documentation compare to yours?
        Is it better?  Is it more (or less) complete?

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate the quality of the doxygen output?
        And why?

\end{enumerate}

\vspace*{-3mm}
\subsection{Group Work}
\vspace*{-3mm}

\begin{enumerate}

  \item Have all the required files and documents been provided, e.g.,
        design document, group report, minutes, source code, 
        class files, doxygen web pages, and demo movies?

  \item Have all the required files and documents been provided on
        time?  If not, how late was the group in delivering
        the product?

  \item Have all of the files been provided in the correct
        format, e.g., .PDF, .mpeg, etc., as described in Assignment 3?
 
  \item Do all of the folders and file names conform to the 
        naming conventions described in Assignment 3?
        List the files (and folders) that do not adhere
        to the guidelines (if any).

  \item Did each group manager contribute to the group report?
        Does the group report answer the questions from the
        lecture on group work and team roles?

  \item Did each group member contribute to the project?  
        List the group members that contributed and those that did not.
        Evidence of group member contributions can be
        found in four ways:
        (1) by looking at the author of class cards in the Design Report 
        (2)~by looking at the author of Java source code (.java) files,
        (3)~by reading the minutes of meeting protocol at who
            attended the meetings and
        (4)~by reading the Group Report.

  \item Did the group report any problems?  Did they also report
        how they resolved those problems?

  \item How well do you think the group worked together?  Did the
        active members of the group make up for the inactive
        members?  How does their group compare to yours?

  \item Do you think the group met often enough?  Did they meet more
        (or less) often than your group?

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate how well the group worked together?
        And why?  In your answer, take into account how well
        the group coped with non-contributing members.

\end{enumerate}

\vspace*{-3mm}
\subsection{Overall Judgement}
\vspace*{-3mm}

\begin{enumerate}

  \item On a scale of 1-7 (
        1 = very poor,
        2 = poor,
        3 = less than satisfactory,
        4 = average,
        5 = good,
        6 = excellent,
        7 = very excellent, outstanding)
        how would you rate the quality of the work handed over
        to you? Why?  How does it compare to your group's
        product?

  \item Overall, how confident is your team in its ability
        to take the system you've been given and extend it
        with the functionality in the next assignment?  Why?

\end{enumerate}

\vspace*{-4mm}
\bibliographystyle{plain}
\bibliography{../../../../masterBib/laramee09masterBib}

\end{document}

