You are on page 1of 17

Software Requirements Specification

TABLE OF CONTENTS
TABLE OF CONTENTS.....................................................................................................................................2 1. INTRODUCTION.............................................................................................................................................3 1.1 PURPOSE OF THE SYSTEM .............................................................................................................................3 1.2 SCOPE OF THE DOCUMENT............................................................................................................................3 1.3 INTENDED AUDIENCE...................................................................................................................................3 1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS..............................................................................................4 1.5 REFERENCE................................................................................................................................................4 2. TEAM ARCHITECTURE...............................................................................................................................5 3. OVERALL DESCRIPTION............................................................................................................................7 3.1 PRODUCT FUNCTION...................................................................................................................................7 3.2 ASSUMPTIONS AND DEPENDENCIES................................................................................................................9 4. SPECIFIC REQUIREMENTS......................................................................................................................10 4.1 EXTERNAL INTERFACE REQUIREMENTS........................................................................................................10 4.1.1 User Interface...............................................................................................................................10 4.1.2 Hardware Interface......................................................................................................................11 4.1.3 Software Interface.........................................................................................................................12 4.1.4 Communication Interface.............................................................................................................12 4.2 PERFORMANCE REQUIREMENTS..................................................................................................................14 4. NON-FUNCTIONAL REQUIREMENTS................................................................................................................15 5. SOFTWARE SYSTEM ATTRIBUTES.......................................................................................................16

1. Introduction 1.1 Purpose of the system The purpose of the system is to architect a simple KWIC software system and implement it, which later will be used for a web based search engine. 1.2 Scope of the document The task of developing the document was distributed amongst the team members. The team divided itself into various worlds present in the Requirements Engineering scenario and thus played their part. The team was responsible for gathering the requirements and represents them in the required format. The main constraint placed on the process was the time constraint. For every phase of project a specific deadline was set which had to be met by the development team. The team was scheduled to work in the given time frame and produce the result. 1.3 Intended audience The expected audience of this document is the users of the KWIC system and the developers.

1.4 Definitions, Acronyms and Abbreviations KWIC: Key Word In Context Circular Shift: Removing the first word of a sentence and appending it at the end of the sentence

1.5 Reference IEEE standard 830: Software Requirements Specifications Other information from Web sites: Yahoo and Google

2. Team Architecture The team consists of 3 members: XXX YYY ZZZ The work is broken down as follows:

YYY: Responsible for the development of the user interface. This includes all aspects of interaction between the user and the system. He will decide the 'look' and 'feel' and overall structure of the interface. This includes the color schemes, menu layout, fonts, location of option boxes and text etc.

ZZZ: All testing of the user interface will be carried out by him. This will entail ensuring that the user the interface has full functionality and meets an acceptable standard as decided by the user. A recognized evaluation checklist will be used for this purpose.

XXX: He is responsible for development of the system, which accepts the input, processes it and produces the output. Also, he will be responsible for interface

between the front end and the back end. This comprises the interface between the database (if any) and the user interface. Further breakdown is as follows: Role played System World: Product Manager Project Manager Responsibility Design Development Change control Reusability Traceability Subject World: Development Consultants Time Customer Reliability Client Company Maintainability Manager User world: Response Time Potential End Reliability User User Interface Team Member XXX

YYY ZZZ

3. Overall Description A simple KWIC system has to be architected which will later be used as a search engine. The project will use Object-Oriented architectural style, and build a Java applet, which will be accessible through a web page. The KWIC index shall accept an ordered set of lines, where each line is ordered set of words, and each word is an ordered set of characters. Any line shall be circularly shifted by repeatedly removing the first word and appending it at the end of the line. The KWIC system shall output a listing of all circular shifts of all lines in ascending alphabetical order. 3.1 Product Function This section describes the general functionality of the system being developed which will be discussed in detail in the coming sections. The functionalities to be satisfied by the system can be broadly classified in the following ways: Accept Input In this function, the user will be able to enter a series of strings separated by $. The input will be through an applet which will contain a text area for the same.

String Processing This task is to be carried out once the user has entered his/her input. The strings are taken, separated based on $ and then processing is performed as per the requirement. First, all the lines are circularly shifted and then, once all the lines are shifted, they are arranged in ascending alphabetical order. Output Once the string processing is complete, the output is displayed to the user in the same applet. The output will show the circularly shifted lines along with the ascending alphabetical order.

3.2 Assumptions and Dependencies 1. Input: The user enters the lines separated by $, else it will be taken as one single statement. 2. Processing: The sorting of the lines is dependent on the circularly shifting module. 3. Output: The output is displayed to the user. The user will not be able to edit the output.

4. Specific Requirements 4.1 External Interface Requirements The interfaces in this section are specified by documenting: the name and description of each item, source or input, destination or output, ranges, accuracy and tolerances, units of measure, timing, display formats and organization, and data formats. 4.1.1 User Interface The user interface required to be developed for the system should be user friendly and attractive. The interface between the user and the system will be WIMP (Windows, Icons, Menu, Pointers) keeping in mind that the system is to be run through web browser. All operations will be of point and click nature with all navigations performed through windows of the system specifically buttons and menus: Buttons: The button is activated when the user will click with the left click of the mouse within the bounds of the button. And thus the action associated with it will be carried out. Menu: All the operations will be arranged.

4.1.2 Hardware Interface Here's What You Need to Use the KWIC system: PC with 300 megahertz or higher processor clock speed recommended; 233 MHz minimum required (single or dual processor system);* Intel Pentium/Celeron family, or AMD K6/Athlon/Duron family, or compatible processor recommended 128 megabytes (MB) of RAM or higher recommended (64 MB minimum supported; may limit performance and some features) 200 megabytes (MB) of available hard disk space Super VGA (800 x 600) or higher-resolution video adapter and monitor Keyboard and Microsoft Mouse or compatible pointing device

Additional Items or Services Required to Use Certain SDMS features For Internet access: Some Internet functionality may require Internet access, a Microsoft .NET Passport account, and payment of a separate fee to a service provider; local and/or long-distance telephone toll charges may apply 14.4 kilobits per second (Kbps) or higher-speed modem 4.1.3 Software Interface Netscape Navigator 4.6 or 4.7 or Internet Explorer 5.5. Must be JavaScript-enabled. Windows 95, 98, 2000, XP or Macintosh Windows XP PDF compatible word processing software Microsoft Word or WordPerfect Suite

4.1.4 Communication Interface The KWIC system is three-tier architecture. The client is a thin client who just displays the HTML pages and forms to the user of the system. The database tier stores all the information (characters, lines, etc) in a table. The middle tier does all the transactions and processing of the system. It does the communication between the thin client and the database.

4.2 Performance Requirements The system will process incoming data and send relevant feedback within a few milliseconds of receiving it. Web users may not be able to have such a fast response as this however, because of bandwidth limitations, especially during peak usage times. The system will also be capable of dealing with large number of users (approx. 1000) simultaneously. Given that expanding nature of the World Wide Web, the above scenario would not be uncommon. The system will be able to maintain response times that are within the normal expectations of a user even during periods of heavy usage. For these reasons, the volume of data in KWIC pages (including graphics) will be kept as small as possible (without compromising the quality of the interface), so that the interface will load quickly to a remote server. The KWIC system will maintain up time greater than 99%. That is the period that the KWIC is running correctly as percentage of total time, will equate to a percentage greater than 99.

4. Non-functional Requirements Performance Criteria: Time The elapsed time between the submission of a search request and the processing of string and displaying the desired output should be as minimal as possible Similarly, there is be a minimal gap between the circular shifting of the strings and sorting of all the created strings. User friendly: System should be easy to use by experts as well as non-experts. The user interface should be kept simple and uncluttered. Flexibility: It should be modular so that later requirement changes can be accommodated. It should be able to accommodate the

Extensibility:

variations like: -- Different string separator -- User Interaction after entering input -- Noise Elimination

Portable: The system should be portable on any platform. It should run on systems having java installed. Reusable: The system will be modular, so those modules can be reused if the system requirements changes or if these modules are to be used in some other similar system. 5. Software System Attributes Reliability: \The KWIC system will be released after thoroughly tested. Situations in which a request and response run unexpectedly shall be very minimal. It will be written in a modular structure to make modification as easy as possible. Availability: The system should be available 24 hours a day, 7 days a week. The availability can be measured in terms of MTTR(Mean Time To Repair) and MTBF(Mean Time Between failures). The system will be available to the user whenever the user needs it.

Maintainability: The system should be easy to maintain by administrators. After certain of time, the system should be added new function, new features so that it can provide user good qualities.

You might also like