Software Requirements Specification

Release Information

Project: KoLmafia
Related Documents:

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.

The SRS sets requirements that must be satisfied by the system design. The SRS is verified and validated by activities outlined in the QA plan.


Functional Requirements


Non-Functional Requirements

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.

Environmental Requirements

System hardware requirements
Any user of the system must satisfy the following system hardware requirements:
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).
Copyright © 2003 Jason Robbins. All rights reserved. License terms. Retain this copyright statement whenever this file is used as a template.