Informal Science Education II

Software Requirement Specifications

EEL 5881 - Software Engineering, Fall 2000

Modification history:

VersionDateWhoComment
Version 0.0 August 15, 2000 G. H. Walton Template
Version 1.0Jeffrey MillerOctober 18, 2000 Initial version
Version 2.0Michael Wales November 20, 2000More specific requirements
Version 3.0Michael Wales December 10, 2000Final version

Team Name: Miles Computer Engineering

Team Members:


Contents of this Document

Introduction

Definition, Acronyms, and Abbreviations

Product Overview

Specific Requirements

Supporting Material


SECTION 1: Introduction

Software to be Produced:

Reference Documents:

Applicable Standards:

Definitions, Acronyms, and Abbreviations:


SECTION 2: Product Overview

Assumptions:

Stakeholders:

Event Table:

Event NameExternal StimuliExternal Responses Internal data and state
User starts CA SimulatorUser has either executed a .bat file or typed in: java CASim.Application starts execution and the editor window is displayed.Program loads all default data structures, initializes the GUI, and displays editor.
User loads a previous simulation setupUser goes to file menu, selects open from menu.Editor clears window and displays the data loaded from the simulation file.Program opens the file selection dialog, and gets the file to load. The program dereferences all the old data (so the garbage collector will deallocate it from memory), the new data is loaded, and the GUI is updated.
User edits the simulation transition propertiesUser selects Edit simulation transitions from transitions menu and a new window pops up to edit the transitions in. The user then can specify which states have priorities over other states, and modify up to five different types of transitions. We will include some basic types of transitions, and these can later be recoded to more complex transitions.The program will respond to the user by displaying the transition editing window. Here the user can alter all the transition variables, and click OK to go back to the main simulation window.The program opens a new GUI window with many different components to change the transition settings. Each class will have a set of text strings that will display and a few text fields that can be edited by the user. When the user clicks OK, the program goes back to the main editor window.
User saves simulation stateUser selects Save simulation state... and then specifies the filename and path.After the user clicks Save simulation state... the file selection dialog box appears for the user to specify the save location. The program displays the file selection dialog box for the user to specify the save location. The program then saves all simulation parameters to disk before going back to the editing window.
User edits the source code of the transitions to create a more complex transition conditionThe user would look up the included documentation on how the transition class is to set up. The user can then set up the algorithm, recompile the class, and then run the CASim program and use the new conditions.The program really doesn't have a response for this condition. The coding documentation will be included with the CASim program.Again, the program really isn't doing much in the case of this event.

Use Case Diagram:

Use Case Diagram for Version 1.0

Use Case Descriptions:

Use Case: Loading Past Simulations

  1. User click on Load... from the file menu
  2. User is prompted with the file selection dialog window
  3. User picks path and file, then clicks open
  4. Program dereferences the old data structures and loads the new data structures.
  5. User is brought back to main editor window
Alternative: File not found

Use Case: Saving current simulation

  1. User click on Save... from the file menu
  2. User is prompted with the file selection dialog window
  3. User picks path and file, then clicks save
  4. Program saves the current state of the map, and the current time parameters
  5. User is brought back to main editor window

Use Case: Edit transition properties

  1. User clicks on Edit properties... from the transition menu on the main editing window
  2. Program brings up new window with all the transition properties: list of state order dominance, 5 different transition methods (and their corresponding parameters), and 5 checkboxes (one for each of the transition methods
  3. User fills out and edits the parameters of their choice
  4. User clicks OK when finished
  5. User is brought back to main simulation window

Use Case: Simulation

  1. User clicks on Start simulation from the simulation menu on the main editing window
  2. A window pops up asking the user to tell it how long to simulate for
  3. The program goes through and calculates how the simulation map will change in the next clock cycle
  4. After each clock cycle, the map is redrawn and all the changes are shown for the user to see as the computer processes the next set of changes
  5. Steps 3 and 4 repeat until the simulation reaches the specified time duration
  6. The simulation stops, and the user is simply at the main editor window with the map after the simulation concludes

Use Case: Reprogram Transition Algorithm

  1. User looks up and reads included documentation on the source code and how to edit it
  2. User can edit the code simply with MS-DOS edit or a Java IDE.
  3. Transition classes are recompiled
  4. Program is run, tested, and debugged until the algorithm works the way it should


SECTION 3: Specific Requirements

Requirement No: 1
Statement: CA tool will have a graphical environment for changing the initial conditions of the simulation. Should have a look and feel similar to a graphics editting program like MS Paint.
Source: Meeting #1
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation method: Functionality
Revision History: Version 2.0
Status: Requirement has been met. The editor also has the ability to set large areas of cells to a certain state by dragging a rectangular area with the mouse.

Requirement No: 2
Statement: Simulator will have 5 different edittable transition rules. Each rule will have two user inputs that they can vary during experiments.
Source: Email
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation method: Functionality
Revision History: Version 2.0
Status: Requirement has been met

Requirement No: 3
Statement: The CA tool must have a simulation mode that can be reconfigured through the transition parameters. The simulator must also have a mode that the simulation will save the state at a specified interval so that a researcher can start the simulation, leave, and then come back and view the results of the simulation very quickly.
Source: Meeting #2
Dependency: Requirement #1
Conflicts: None
Supporting Materials: None
Evaluation method: Functionality
Revision History: Version 1.0
Status: Requirement partially met. The simulation's typically don't last more than a few minutes. The requirement to specify the simulation time were therefore not put into the product. The customer accepted the product in this condition also.

Requirement No: 4
Statement: The CA tool must be able to save the simulation state and the transition parameters so that users can load the settings again without having to remember how they were set up for past simulations.
Source: Meeting #2
Dependency: Requirement #1
Conflicts: None
Supporting Materials: None
Evaluation method: Functionality
Revision History: Version 1.0
Status: Requirement met.

Requirement No: 5
Statement: Each of the transition rules will have source code that is well documented and can be easily editted so that a user who is skilled in Java programming can create their own unique and complex transitioning rules.
Source: Meeting #2
Dependency: Requirement #2
Conflicts: None
Evaluation method: Functionality and robustness. Will need to be tested with a variety of different transition rules to make sure that the interface works 100% between the simulator and the transition rule.
Revision History: New in Version 2.0. Derived from Requirment #2.
Status: Requirement met.

Requirement No: 6
Statement: The simulator must provide an interface where the user can add states to the simulation. The interface should be set up so that if the user chooses an invalid image for the simulator, it will prompt the user and not cause any harmful effects.
Source: Email
Dependency: Requirements #3 and #2
Conflicts: None
Evaluation method: The interface will be tested with a variety of invalid inputs to make sure the system handles everything in an acceptable manner.
Revision History: Missing from Version 1.0, new in Version 2.0
Status: Requirement met.

Requirement No: 7
Statement: The simulator will provide an interface to assign a list of precedence of the states. This precedence is required to avoid random results during the actual simulation.
Source: Email
Dependency: Requirements #2, #3, and #6
Conflicts: When it was realized that there could be possible multiple results from the simulation, we realized we needed this requirement to avoid it. Some emails were with Dr. Moshell regarding how this should be implemented.
Evaluation method: The interface will be extensively tested for robustness and functionality. The states precedences can be reversed to ensure that simulation results change.
Revision History: New in Version 2.0
Status: Requirement met.

3.1 Functional Requirements:

In addition to the main actions listed above, the software will also be required to be well-behaved. Our program will check inputs for validity before processing them. Our program will also handle file exceptions so that the program doesn't simply crash if it can't find a program.

3.2 Interface Requirements:

Our software may interface with an internet browser for the online help system, but the details of the interface have not been investigated. The software isn't expected to interface with anything else.

3.3Physical Environment Requirements:

3.4 Users and Human Factors Requirements:

User describtions and their constraints

3.5 Documentation Requirements:

Documentation Required:

3.6 Data Requirements:

3.7 Resource Requirements:

The system will be most easily set up by a user with above average computer experience, and a little bit of programming experience. If the computer does not have the JRE installed the JDK will have to be downloaded, installed, and tested before installing the CASim application. That process will have to be completed by a more advanced user. Simply running the application can be accomplished by a less experienced user. And as mentioned before, if a user wishes to change the algorithm used for the transition properties, that user will need to have good knowledge of Java programming and object-oriented design.

This program will run on most modern desktop computers. The minimum PC requirements would be an Intel 486 processor (or equivalent), atleast 16MB of RAM, a VGA monitor, 600MB of hard drive space, Windows 95, Netscape Navigator or Internet Explorer, CD-ROM, and a mouse. Most of the above requirements are ball park estimates of what Windows 95, the JRE, and the application would need to run effectively. Any system that can support the JRE for Java 2 V1.3 can support our application. There is no support for Java with MS-DOS. Faster CPUs and more RAM could significantly improve performance on most machines.

Software and Hardware Requirements:

3.8 Security Requirements:

There are no security requirements for this program. If backup copies are to be made of the files, the simulation states and transition parameter files should be stored together to properly restore the simulation. If the code is recompiled with new transition classes, the old simulation files on that system will not work in the same manner as before. The user should consider making a new installation of the software in a separate directory when modifying the source code for future simulations.

3.9 Quality Assurance Requirements:

We will work to make sure that the final program is a quality product and that it doesn't have any faults through a very intense debugging and testing process after the software is developed.

One the final code is delivered, the user must work to make sure that any future code modifications are free of errors and bugs. The user should also take care when mixing simulation files from different compilations of the program because they will probably will not simulate in the same manner.

SECTION 4: Supporting Material

NONE


Template created by G. Walton (GWalton@mail.ucf.edu) on Aug 30, 1999 and last updated Aug 15, 2000

This page last modified by Michael Wales (Mag7Rule@aol.com) on December 10, 2000