Programming Assignment 5
         
            
         
  
         
            
1 Purpose
  This assignment has one primary purpose, to implement implement
  the functionality associated with saving documents to the application
  framework.
  
         
            
2 Learning Objectives
  There aren't any new topics associated with this assignment. It is really
  just about "completing" the application framework.
  
         
            
3 Starting Point
  As in the past, you may start with either your solution with the solution
  that you were given.
  
  
         
            4 Documents
    The UML class diagram is available as an SVG file at:
    
            
    The specifications are available as a PDF file at:
    
            
            
    The main class (that can be used for integration testing) is available at:
    
            
            
    The use case descriptions that explain how the demonstration application
    must behave are available at:
    
            
          
  
         
            5 Tasks
  For this assignment you must:
  
               - 
  Implement all of the interfaces and classes in the class diagram and
  specifications document.
  
 
               - 
  Write JUnit tests for many of the classes in the class diagram and
  specifications document.
  
 
            
          
         
            
6 Testing
  Your JUnit test suite must cover 75% of all statements and all
  branches (as measured by EclEmma) in the various
  classes other than the
      AbstractEditableReadingWorker,
      AbstractModalDialog, BackgroundTaskDialog,
      BigPixelEditor,
      GridComponent,
      PrintImage,
      ComponentPrinter,
      and DelegatingPrintable
      classes.
  (This includes classes from earlier assignments.)
  Your tests must be in a package
  named edu.jmu.cs.academics.testing and each test class
    must include the word "Test" in its name.
         
  
  
         
            7 Submission
  You must submit (using 
Autolab) a 
.zip
  file 
named pa4.zip
             that contains:
  
               - Your implementation of the required interfaces/classes/enums
      in the appropriate package(s), including those from
      previous assignments.
 
               - JUnit tests for all of your classes/interfaces.
 
            
            
               Do not submit the main class and do not submit any data files.
  
          
         
            8 Grading
  Your submission will be graded as follows:
  
               - Conformity to the Style Guide (Style) - 20% (All or Nothing; Success Required)
 
               - Passing your Tests (SelfTests) - 20% (All or Nothing; Success Required)
 
               - Coverage of your Tests (Coverage) - 20% (All or Nothing)
 
               - Correctness of your Code (OfficialTests) - 40% (Partial Credit Possible)