Software Requirements Specification
Process impact: The SRS precisely defines the software product that will be built. Decisions made in writing the SRS are based on information in the project proposal and user needs documents.
- More detailed information about usability can be found within the user-needs document.
- Because the game is a network-based game, reliability issues are equivalent to performance issues. However, the game should not corrupt server data or character data as a result of its actions. In order to meet this goal, KoLmafia will make its own decisions without player direction if and only if character data remains unaffected by these actions. In all other cases, the KoLmafia client must act on behalf of the player.
- Safety is not a concern for this project.
- Security is not a concern for this project. No efforts will be made to encrypt communication, as the Kingdom of Loathing's servers are unable to decrypt the communications.
- Because KoLmafia interfaces with the Kingdom of Loathing, performance of the program is heavily impacted by performance of the Kingdom of Loathing servers. If the server is heavily lagged, KoLmafia should not arbitrarily crash without an error message, though abnormal hang times are acceptable, as the user can simply close the window to rectify the situation. Communication should be optimized as far as possible, however, using locally cached information rather than network and/or remote database requests wherever possible in order to save bandwidth.
- Maintainability and Upgradability
- We will concentrate on following good design methods and maintain good documentation to allow anyone who is interested to work on this project without having to sift through code in order to determine what is going on with the project. The provided mailing lists and the discussion forum features will also be useful in meeting these ends.
- Supportability is not a concern for this project.
- System hardware requirements
- Any user of the system must satisfy the following system hardware requirements:
- A reasonably high-speed computer (500+ MHz) with reasonable internet connectivity (dialup/ISDN)
- A monitor capable of handling 1024×768 screen resolutions
- System software requirements
- Any user of any aspect of the system must run a current implementation of the Java Virtual Machine. All code is intended to be Java 1.5.0 compliant and may use features not available prior to the release of Java 1.5.0.
- Programmatic interfaces provided
- Because the program will be written in Java, we will utilize the standard Java 5 Platform API, and expect that the API will be provided on the systems on which KoLmafia will run.
- Data import and export
- Specifically, we will use the standard Properties class to store and retrieve user-specific data and tabbed-format text files for all data which is intended to be transparent to the user (item databases, etc).