(*Object Model Report - second draft *)

(* This file defines the objects and operations of a Report *)

object Report
    components: GradedItem* and showStatistics and OrganizeBy;
    description: (*
         A Report is composed of one or more GradedItems organized by
         what the user chooses. It can show statistics. 
    *);
end Report;

object showStatistics is boolean;

object RunningTotal is boolean;

object OrganizeBy is
   components: Date and Mark and Score;
   description: (* 
         A report can be organized by the date the graded item is dure or the name of
         the graded item
   *);
end OrganizeBy;
  
operation ViewReport is 
    inputs: Report;
    outputs: UserWorkSpace;
    description: (*
          ViewReport will generate a report for an individual student.
    *);
end ViewReport;


obj Date is
    components: d:tDay and m:Month and y:Year;
    description:(*
        Typical date object
        *);

end Date;

obj tDay is integer;
obj Month is integer;
obj Year is integer;