Software Requirements Specification
for
Automated
Railway Reservation System
Huitang Li
Vahid Keshmiri
Yasin Esmail
Zaida M. Morales
Natasha Dunaeva
Rehan Khan
November 7, 2000
Version
|
Changes Made |
Date |
1.0 |
First Pass for Review |
10/24/2000 |
2.0 |
Second Pass for Review |
11/07/2000 |
|
|
|
|
1. Introduction.
1.1
Purpose.
This document describes the
software requirements for the Automated Railroad Reservation System built for
the Chinese Railway Ministry (CRM).
1.2
Scope.
The CRM is requesting proposals to build a prototype of an Automated Railroad Reservation System (ARRS) for their current system. This new ARRS needs to be scalable enough so that it can accommodate the increase in reservations caused by new railroad building in China.
The system will be designed to provide an electronic version of the railway passenger reservation system in China. The system will have a user-friendly graphical interface and will be more cost effective compared to the current non-electronic version of the reservation system.
The objectives of this development effort are:
· To provide existing clerks with a new environment in which to make reservations for railroad travel.
· To provide an avenue for customers to get their tickets in a more convenient way.
· To regain control of the railway ticket sales to avoid scalping and overselling of tickets.
· To implement a prototype of a scaled down version of the final system to test the solution and further develop requirements.
· To collect statistics in a more efficient manner for future railroad development and construction.
· To increase efficiency of railroads.
1.3
Definitions, Acronyms, and Abbreviations.
APPM AsiaPac Marketing Manager
ARRS Automated Railroad Reservation System
CASE Computer Aided Software Engineering
CITS China International Travel Agency
CRM Chinese Railroad Ministry
PP - Project Plan
SDD - Software Design Description
SRS - Software Requirement Specification
SDS Software Design Specification
SPMP - Software Project Management Plan
GUI Graphical User Interface
QAM Quality Assurance Manager
PDM Project Development Manager
PMP Project Management Professional
TBD To be determined
UML Unified Modeling Language
1.4 References.
·
Introduction Chinese Railway
Passenger Reservation System Prototype
http://www.cs.swt.edu/~donshafer/project_documents/5391_Case.html
·
Situation Update
Chinese Railway Passenger Reservation System
http://www.cs.swt.edu/~donshafer/Marketing
Update(1).html
·
China 2000
· Pressman, Roger S., Software Engineering: A Practitioners Approach, McGraw-Hill Companies, Inc., 1997.
1.5 Overview.
Chapter 2 of the SRS is a brief description of the characteristics of the software to be built, its functions, its users, its constraints and its dependencies.
Chapter 3 is about specific requirements, such as functional requirements, external interface requirements, performance requirements, and also design constraints and quality characteristics.
Finally, chapter 4 includes all the supporting information, such as the Table of Contents, the Appendices, and the Index.
2. The General
Description.
This section describes the general factors that affect the product and its requirements. This section consists of five subsections that follow. This section does not state specific requirements. Each of the subsections makes those requirements easier to understand, it does not specify design or express specific requirements. Such detail is provided in section 3.
2.1 Product Perspective.
The Automated Railway Reservation System diagram showing the overview of the systems modules and the relationship
of the system to external interfaces is presented in Figure 2.1.
Functions of System Components:
Database:
· Stores data
· Creates reports
· Provides access to data
· Updates information
Server:
· Provides access to the database
· Authenticates users
· Processes reservations
· Performs backups
· Produces reports
External Interfaces:
Terminal
· Users use terminals to access the server
· Passengers and travel agents use terminals to reserve the tickets and to get information about the available seats on particular trains.
· Railroad administration may use terminals to see the reports generated by the database software.
Personal Computers
· Users (passengers, travel agents, and railroad administration) may use personal computers to obtain a remote access to the server and the reservation database via the Internet.
Cell Phones
· Server as a medium of accessing the server and the reservation database.
· Passengers may use cell phones and the latest telecommunication technologies to access the server and the reservation database via Internet, or they may use cell phones to call travel agents to inquire about railroad and ticket information.
Computer Hardware and Peripheral Equipment to be used:
· 32 workstations, which include CPUs, monitors, keyboards, and mice
· Printers
· Network
· Terminals
· Cell phones to test connection to the server via remote access
2.2 Product Functions.
Provide a summary of the functions that the software will perform. Sometimes the function summary that is necessary
for this part can be taken directly from the section of the higher-level specification (if one exists) that allocates
particular functions to the software product. The functions should be organized in a way that makes the list of
functions understandable to the customer or to anyone else reading the document for the first time. Block diagrams
showing the different functions and their relationships can be helpful. Such a diagram is not a requirement on the
design of a product itself; it is simply an effective explanatory tool.
2.3 User Characteristics.
The main users of the system will be the passengers buying train tickets, the travel agents that process reservations for passengers, and the CRM administration that access the reports generated by the system. The users are not required to have knowledge in the computer field. The graphical interface provides an easy way of using the ARRS system with minimum of training.
2.4 General Constraints.
The constraints for the project are:
·
The number of
trains from city Guangzhou to Shanghai and from Shanghai to Guangzhou is
limited to 5 trains.
·
The number of
passengers that can be taking a train at once is limited to 1080 passengers.
·
Two of the trains traveling from Guangzhou or Shanghai
stop at Nanjing each day and one of the trains traveling from Guangzhou or
Shanghai stops at Nanjing each day. No
trains originate Nanjing.
·
The functional
prototype should be available after 30 days upon the arrival of the management
team to China. This may prove to be a
serious time constraint on the development of a successful prototype.
· Communication with the Chinese team members may prove to be difficult since some Chinese developers do not speak English and the management team does not speak Chinese. Even with the presence of a translator, communication may be difficult. Absence of the translator may severely affect project development.
· Team members are restricted from bringing their own equipment, and insufficient equipment supply may hinder project development.
· Team members are restricted to bringing only the analysts of the team to China. This might affect the project development if more people are needed or the required skills are not available.
· The majority of the Chinese population does not have or have a limited access to the Internet.
2.5 Assumptions and Dependencies.
The assumptions for the project are:
·
Ten trains transport the passengers between three
cities known as Guangzhou, Shanghai and Nanjing. These trains originate only in
cities Guangzhou and Shanghai, and they make a stop at Nanjing before arriving
to their destination.
·
Five trains travel from city Guangzhou or Shanghai each
day and five travel from city Guangzhou or Shanghai each day. Two of the trains traveling from Guangzhou
or Shanghai stop at Nanjing each day and one of the trains traveling from
Guangzhou or Shanghai stops at Nanjing each day. No trains originate Nanjing.
·
There are five classes of tickets as listed below
§
Sleeping (soft) - compartment style coaches - 4
passenger per compartment
§
Sleeping (hard) - compartment style coaches - 6
passenger per compartment
§
Sitting (soft) - typical first class coach
§
Sitting (hard) - tourist class couch
§
Standing (hard and soft sitting coaches only)
·
Reservation can be made up to one month before a
particular trip.
·
Seats are assigned during reservation.
·
Phone reservation involves tickets being purchased
within 24 hours after making the reservation.
Otherwise, the reservation will be cancelled.
·
No reservations can be made 48 hours prior to the
trip. Rather, it will be done on a
first come first serve basis from that point on.
·
Passenger lists will be provided for conductors at each
stop.
·
The trains will be assumed to be of a constant size
that accommodates 1080 passengers at a time.
They will consist of:
§
2 soft-sleeping coaches (12 compartments each)
§
2 hard-sleeping coaches (12 compartments)
§
2 soft-seating coaches (60 seats)
§
9 hard-sitting coaches (80 seats each)
·
The following management reports will be available:
§
Number of reservations made for each departure
date/train
§
Number of customers turned away because of full trains
for each departure/train
§
Number of no-shows for each departure
§
Number and names of people who show up without
reservation for each departure
§
List of high buyers of train tickets.
·
The expected reservations during test period may amount
to approximately 25,000 per day. This
volume varies by hour, day, and season.
·
Chinese Ministry will provide us with information about
identification process used in China, so that it can be applied to the
reservation system and scalping of tickets is avoided.
·
Network connection will always remain established.
The dependencies, or external events, for the
project are:
·
CRM trains
occasionally may become non-operational.
In that case, a new train will be dispatched, but a delay of up to a few
days could occur.
·
Scalping of tickets is a popular activity in China, and
CRM wants to discourage such practices.
·
26 developers will be provided by the CRM.
§ 1
development manager who speaks and writes good English.
§
3 analysts, who have had extensive experience in
developing applications, none speak English, all read English, and all have a fair
ability to write in English.
§
1 Programmer/Analyst who has extensive
telecommunications skills and communicates fairly well in English.
§
11 Programmers with 5 or more years experience in
developing extensive applications. 3 of
this group have excellent English communication skills.
§
10 Programmers with less than 5 years experience. The Ministry is extremely interested in
these people receiving on-the-job training so they must be used. Only 2 of this group can communicate in
English.
·
A facilitator from CRM to help make arrangements with
government authorities, make travel arrangements, and serve as a host to our
country.
·
Three analysts in the Bangalore software development
center.
·
Australian design center manager
·
Two documentation specialists from company.
·
Three field applications mangers from the Taiwan office.
3. Specific
Requirements.
This section of the SRS should contain all the details the software developer needs to create a design. This is
typically the largest and most important part of the SRS.
(1) The details within it should be defined as individual specific requirements, following the guidelines for sound
requirements (verifiable,
unambiguous, etc.)
(2) Specific requirements should be organized in a logical and readable fashion.
(3) Each requirement should be stated such that its achievement can be objectively verified by a prescribed
method.
(4) Sources of a requirement should be identified where that is useful in understanding the requirement.
(5) One way to classify the specific requirements is as follows:
(a) Functional Requirements
(b) Performance Requirements
(c) Design Constraints
(d) Attributes
(e) External Interface Requirements
The best organization for this section depends on the application area and the nature of the software product being
specified. Tables 1 through 4 at the end of this template show four possible organizations.
(1) In Table 1, all the Functional Requirements are specified, then the four types of interface requirements are
specified, and then the rest of the requirements are specified.
(2) Table 2 shows the four classes of interface requirements applied to each individual Functional Requirement.
This is followed by the specification of the rest of the requirements.
(3) In Table 3, all of the issues addressed by the Functional Requirements are specified, then the other
requirements that apply to them are specified. This pattern is then repeated for each of the External Interface
Requirement Classifications.
(4) In Table 4, the interface requirements and the rest of the requirements are specified as they pertain to each
Functional Requirement.
The organization of this section of the SRS should be chosen with the goal of properly specifying the requirements in
the most readable manner. The template outline that follows uses an organization like Table 1.
3.1 Functional
Requirements.
This subsection of the SRS should specify what is to be done by the product, to what level or specific requirement,
what inputs should be transformed to what outputs (not how this is done), what specific operations are required.
Where the rationale for a requirement is not obvious, provide an explanation. Where issues need to be resolved, cite
those.
For each function, specify requirements on inputs, processing, and outputs. These are usually organized with these
four subparagraphs:
(1) Purpose of the function: Provide rationale to clarify the intent of the function.
(2) Inputs: sources, valid ranges of values, any timing concerns, operator requirements, special interfaces
(3) Operations to be performed: validity checks, responses to abnormal conditions, types of processing required
(4) Outputs: destinations, valid ranges of values, timing concerns, handling of illegal values, error messages,
interfaces required
For example, the following might be an example specification. Depending on the level of tracking required by the
project, one might trace each of the components of 3.1.1 as separate requirements, or one might trace just 3.1.1. Note
that the level of detail here tells what needs to be accomplished against what specific goals, but it does not specify
how that is to be done.
3.1. Provider Terminal (PT) Functional Requirements
3.1.1. Signature Verification
Purpose: The PT shall have a signature recognition system that can be used to authenticate users of the ChocAn
membership services.
Inputs: Members sign their name once when applying for membership. Each authentication effort done when a
service is requested should take no more than one signature by the member.
Processing: Handling of the authorization should take no more than 5 seconds.
Outputs: If the match is successful, a positive acknowledgment must come to the member at the signature capture
device as well as to the PT. If the match is unsuccessful, an appropriate message to that effect must be
provided to both the capture device and the PT.
3.2. External Interface Requirements
3.2.1 User Interfaces.
This should specify:
(1) The characteristics that the software must support for each human interface to the software product. For
example, if the user of the system operates through a display terminal, the following should be specified:
(a) Required screen formats
(b) Page layout and content of any reports or menus
(c) Relative timing of inputs and outputs
(d) Availability of some form of programmable function keys.
(2) All the aspects of optimizing the interface with the person who must use the system. This may simply
comprise a list of do's and don'ts on how the system will appear to the user.
3.2.2 Hardware Interfaces.
Specify the logical characteristics of each interface between the software product and the hardware components of
the system. Include such matters as what devices are to be supported, how they are to be supported, and protocols.
3.2.3 Software Interfaces.
Specify the use of other required software products (for example, a data management system, an operating system, or a mathematical package), and interfaces with other application systems .
For each required software product, the following should be provided:
(1) Name
(2) Mnemonic
(3) Specification Number
(4) Version number
(5) Source
For each interface:
(1) Discuss the purpose of the interfacing software as related to this software product.
(2) Define the interface in terms of message content and format. It is not necessary to detail any well-documented
interface, but a reference to the document defining the interface is required.
3.2.4
Communications Interfaces.
Specify the various interfaces to communications such as local network protocols, etc.
3.3 Performance
Requirements.
This subsection should specify both the static and the dynamic numerical requirements placed on the software or on
human interaction with the software, as a whole.
(1) Static numerical requirements may include:
(a) The number of terminals to be supported
(b) The number of simultaneous users to be supported
(c) Number of files and records to be handled
(d) Sizes of tables and files
Static numerical requirements are sometimes identified under a separate section entitled capacity.
(2) Dynamic numerical requirements may include, for example, the numbers of transactions and tasks and the
amount of data to be processed within certain time periods for both normal and peak workload conditions.
All of these requirements should be stated in measurable terms, for example, 95% of the transactions shall be
processed in less than 1 s, rather than, operator shall not have to wait for the transaction to complete.
Note: Numerical limits applied to one specific function are normally specified as part of the processing
subparagraph description of that function.
3.4 Design Constraints.
Design constraints can be imposed by other standards, hardware limitations, etc.
3.4.1 Standards Compliance.
Specify the requirements derived from existing standards or regulations. They might include:
(1) Report format
(2) Data naming
(3) Accounting procedures
(4) Audit Tracing. For example, this could specify the requirement for software to trace processing activity.
Such traces are needed for some applications to meet minimum government or financial standards. An audit
trace requirement might, for example, state that all changes to a payroll data base must be recorded in a trace
file with before and after values.
3.4.2 Hardware
Limitations.
Identify the requirements for the software to operate inside various hardware constraints.
3.5 Quality
Characteristics.
There are a number of quality characteristics that can apply to software. Pick the ones most important to this product
and develop a section for each one. Definitions of the quality characteristics follow.
Correctness - extent to which program satisfies specifications, fulfills users mission objectives
Efficiency - amount of computing resources and code required to perform function
Flexibility - effort needed to modify operational program
Integrity/security - extent to which access to software or data by unauthorized people can be controlled
Interoperability - effort needed to couple one system with another
Maintainability - effort required to locate and fix an error during operation
Portability - effort needed to transfer from one h/w or s/w environment to another
Reliability - extent to which program performs with required precision
Reusability - extent to which it can be reused in another application
Testability - effort needed to test to ensure performs as intended
Usability - effort required to learn, operate, prepare input, interpret output
3.5.1 xxx
Describe the rationale for including this characteristic for this product.
Describe how the presence, absence, or level of this characteristic will be measured; identify ways to test the
characteristic once the product is complete.
3.5.2 yyy.
etc.
3.6 Other Requirements.
Certain requirements may, due to the nature of the software, the user organization, etc., be placed in separate
categories such as those below.
3.6.1 Data Base.
This could specify the requirements for any data base that is to be developed as part of the product. This might
include:
(1) Types of information
(2) Frequency of use
(3) Accessing capabilities
(4) Data element and file descriptions
(5) Relationship of data elements, records and files
(6) Static and dynamic organization
(7) Retention requirements for data
Note: If an existing data base package is to be used, this package should be named under Interfaces to Software and details of using it specified there.
3.6.2 Operations.
This could specify the normal and special operations required by the user such as:
(1) The various modes of operations in the user organization; for example, user-initiated operations
(2) Periods of interactive operations and periods of unattended operations
(3) Data processing support functions
(4) Backup and recovery operations
Note: This is sometimes specified as part of the User Interfaces section.
3.6.3 Site Adaptation Requirements.
This could:
(1) Define the requirements for any data or initialization sequences that are specific to a given site, mission, or
operational mode, for example, safety limits.
(2) Specify features that should be modified to adapt the software to an installation.
4. Supporting
Information.
The supporting information; that is, the Table of Contents, the Appendices, and the Index, make the SRS easier to use.
The Appendices are not always considered part of the actual requirements specification and are not always
necessary. They might include:
(a) Sample I/O formats, descriptions of cost analysis studies, results of user surveys.
(b) Supporting or background information that can help the readers of the SRS.
(c) A description of the problems to be solved by the software.
(d) The history, background, experience and operational characteristics of the organization to be supported.
(e) A cross-reference list, arranged by milestone, of those incomplete software requirements that are to be
completed by specified milestones.
(f) Special packaging instructions for the code and the media to meet security, export, initial loading, or other
requirements.
(3) When Appendices are included, the SRS should explicitly state whether or not the Appendices are to be
considered part of the requirements.