Integration Plan for BAM

 


The BAM program development has been marked by a series of successive stages of development.  To date, three stages of development have been carried out.  At each stage, the program has been characterized by specific behaviors and functionality.

 

Integration Point 1: 22 February 1999

 


The goal of this stage of BAM development was to create a Bowling Analysis Checker (BAC) to check and parse the file format for the BAM system. 

 

The BAC system reads and processes the BAM file format, checking and validating required information from the BAM file.  The BAC system creates a report file indicating errors in the BAM file format.  BAM data is stored within the system in arrays of structured records, decomposed by different types.  The interface consists of a simple query and answer dialog with the user.

 

The BAC system begins with a brief startup message screen which is cleared when the user presses return.  The startup screen is replaced by a help screen containing brief execution instructions which is cleared when the user presses return.  The user is then prompted for the name of a BAM file to be parsed for format errors.  If the file cannot be opened, the program displays an error message which is cleared when the user presses return and exits.  If the file can be opened, however, BAC reads the file, parses it, and checks it for format errors.  For every error that is found in the BAM file, a message is written to the BAC error output file and echoed to the screen for the user’s benefit.  After the file as been processed, BAC issues a brief termination screen, which when cleared by the user pressing return, allows BAC to exit to the operating system.

 

Integration Point 2: 5 April 1999

 


The goal of this stage of BAM development was to create a Bowling Analysis tool with Lists (BAL) to coordinate lists of bowling analysis data stored in BAM files.

 

The BAL system allows a user to create and perform maintenance upon lists of bowling data for each of the sections of a BAM file.  BAL also allows a user to interactively create new BAM files.  The interface for this program consists of one-line text menus, navigated by the user selecting the leter of a menu operation name enclosed in parentheses and pressing return.  After an operation completes, the user is presented with another menu line to choose another operation.

 

The BAL system begins with a brief startup message screen which is cleared when the user presses return.  The startup screen is replaced by a help screen containing brief execution instructions which is cleared when the user presses return.  The user is then prompted to (O)pen an existing file, create a (N)ew file or (Q)uit the program.  If the user chooses to create (N)ew file, she is prompted for the name of the BAM file to be created interactively, then taken to the section menu (described below).  If the user chooses to (O)pen an existing file, BAL queries the user for the name of the file to open.  If BAL is unable to open the file, an error message is displayed and the user is returned to BAL’s main menu.  If BAL is able to open the specified file, the file is read, checked for errors, and the data contained in the file is stored into linked-list structures, decomposed by record type. 

 

The user is then taken to the section menu where she is prompted to edit the (A)lley, (E)vent, (T)ools, (B)alls, (R)eleases, (C)onditions, (G)ames, or (F)rames lists or to c(L)ose the current BAM file.  If she opts to c(L)ose the BAM file, BAL will query her to confirm that she really wants to stop working with the current BAM file.  If she indicates that she really does want to stop editing the current BAM file, the data stored in the linked-lists at that time will be written in BAM file format to the appropriate filename, the linked lists will be destroyed, and  she will be returned to the main menu of BAL.  If the user selects an option to edit one of the BAM file sections, she will be presented with a record menu giving her the option to (A)dd a new record to the list, (D)elete a record from the list, (E)rase the entire section list, (M)odify a current record in the list, (L)ist all of the records in this section or (T)erminate the editing session on this section.

 

 If the user chooses to (A)dd a record, she is guided through the creation of a record with prompts for each field asking her to specify a value within certain limits or skip the field and accept the default value for that field.  If the user chooses to (D)elete a record, she is prompted for the index number of the record in the list she wishes to delete and BAL attempts to delete the record specified by the index number she enters.  The user is notified whether her deletion attempt was successful and returned to the record menu.  If the user selects to (E)rase the entire list, she will be asked to confirm that she truly wishes to do this; if she responds affirmatively, the linked list for the section will be emptied.  If she chooses to (M)odify a record currently in the list, she will be notified that the operation is not implemented in this version of the system and she will be returned to the record menu.  If the user selects to (L)ist all of the records in this section, the contents of each of the records in the list will be displayed on the screen, pausing after each screenful for her to press enter to continue, and she will be returned to the record menu.  If she indicates that she wishes to (T)erminate her editing session on this section of the BAM file, she will be asked to confirm that desire.  If she does so, the user will be returned to the section menu; otherwise, she will be returned to the record menu.

 

There are some integrity checks in place on the individual section record menus.  A user cannot activate the (G)ames menu unless there is at least one record in each of the (A)lleys, (E)vents, (T)ools and (C)onditions.  Similarly, the (F)rames menu will not be available unless there is at least one record in each of the (G)ames, (B)alls, and (R)eleases sections.  Attempts to the (F)rames or  (G)ames record editing menus under such circumstances will cause BAL to display an error message and return the user to the section menu.

 

Integration Point 3: 3 May 1999

 


The goal of this stage of BAM development is to create an interactive software tool Bowling Analysis Manager (BAM) to be used by bowlers for the management of their bowling game database, allowing the user to browse game information from a BAM file.

 

The BAM system allows the user to view game information and perform limited searching operations to the BAM data file.  The interface is a graphic user interface, with a main BAM interface screen which displays the record information.  A record menu and buttons on the main BAM interface screen allow the user to perform file management tasks as well as browsing and searching operations.  BAM also allows for the use of a command line argument to specify a particular BAM file to open when the program is started.

 

At startup, BAM displays a splash screen indicating the name of the program, the programmer’s contact information and the version of the BAM system.  The splash screen is cleared when the user left-clicks on the window.  The main interface screen is then displayed.   If the user did not specify a BAM file as a command line parameter, all of the display fields are blank.  The user can open a file for viewing either by selecting the File menu’s Open option or by pressing ctrl+o.  BAM then queries the user for the name of a BAM file to open for viewing by displaying a modal dialog box with a text field to allow her to indicate the name of the file to open.  If she does not specify a file name by pressing the Cancel button, or she specifies a file name that cannot be opened by the program, BAM indicates that no file was opened in an on-screen message area.  If the file specified by the user is successfullly opened by BAM, the first game record’s data is displayed in the display fields of the main interface screen.  The user can iterate through the game records by using the Game menu’s Prev and Next options, clicking the Prev and Next buttons, or by pressing ctrl+2 for Prev and ctrl+3 for Next.  The user can move to the first record in the file by using the Game menu’s First option or by pressing ctrl+1, and she can change the current record to the last record in the file by using the Game menu’s Last option or by pressing ctrl+4.  If the user is on the last record in the file and attempts to move to the Next record, or if the first record in the file is the current record and the user attempts to move to the previous record, BAM displays an error message in the on-screen message area and sounds a beep.

Once a file has been successfully opened, the user can search for records with specific values in the file.  To find records with a specific Alley value, the user can choose the Search menu’s Alley... option or press ctrl+l to invoke a dialog box that will prompt her for the string to match the Alley name of the desired record with.  The system then attempts to locate a record with a matching Alley name in the list of game records; if that search succeeds, the current record displayed in the window becomes the matching record found by the search.  Similarly, to find records with a specific Event value, the user can use the Search menu’s Event... option or press ctrl+e to invoke a dialog box to prompt her for the title of the Event to search each game record for.  If the search succeeds, the current record displayed in the window becomes the record returned by the search.  To find records with a specific Date value, the user can use the Search menu'’ Date... option or press ctrl+d to invoke a dialog box to prompt  her for the game Date to search each game record for.  If the search finds a matching record, that record becomes the current record displayed in the window.

The user can save the data in an existing file as another file with the File menu’s SaveAs command, or by pressing ctrl+a.  She is then prompted by a dialog box for the name of the file she would like the current data saved as.  If she cancels the dialog box, the data is not saved into a new file.  If she specifies a  file name and presses OK, a new BAM file is created using the same data that was in the file opened last in the BAM program.  If a file with the same name already exists, it will be overwritten by BAM without warning.

If the user wishes to stop viewing the current file, choosing the File menu’s Close command or pressing ctrl+w will cause BAM to blank all display fields and empty all of the record linked-lists structures currently stored in memory.  No searching or browsing options are available again until she opens another file.

The user can view the startup splash screen at any time by choosing the Help menu’s About BAM command.  The splash screen will be displayed and is cleared by left clicking on the window.  To close BAM, the user can either select the File menu’s Quit command or press ctrl+q, triggering a dialog box to ask if she really wants to quit BAM.  If she answers affirmatively, BAM exits.