Appendix 1 Sample of Software Requirement Specifications (SRS)
Appendix 1 Sample of Software Requirement Specifications (SRS)
Appendix 1 Sample of Software Requirement Specifications (SRS)
APPENDIX 1
SAMPLE OF SOFTWARE REQUIREMENT
SPECIFICATIONS (SRS)
1. INTRODUCTION
1.1. Purpose
1.2. Scope
1.4 Distribution
2. SYNOPSIS
3. GETTING STARTED
4. SYSTEM REQUIREMENTS
4.1 Requirements
Processor : Pentium 4
Ram capacity : At least 512 MB
Clock speed : 400MHZ
Hard disk drive : 40GB
Floppy disk drive : 3 ½ inch
Keyboard : 104 keys
Mouse : PS/2 mouse
Monitor : SVGA color monitor
Network adapter card : Ethernet Card
5. PROJECT STATEMENT
6. DESIGN PHASE
a) New User
b) Customer
d) Duration
e) Set Distance
f) Post Office
g) Delivery
7. Database
APPENDIX 2
VER 2.0
1. INTRODUCTION
This document describes the design for the Post Office will help in
automating functions of the administration department. It helps in reducing the
time spent in record keeping and the work can be carried out effectively. The
searching of records in future will also become easy. The redundancy in the
data due to manual data will also be tackled. The Post office will be able to
access the personal information of each customer easily.
2. MODULE DESCRIPTION
The First module is named as the Login Form in which only the
administrator, staff and customer are authenticated. When the users are
authenticated they enter into the next module the Main Menu. This varies based
on the type of user as only the admin is allowed to make updations and the staff
and customers are restricted to certain areas.
In common all can view the charges set for various factors like weight,
duration/ days, type of delivery, distance etc…
Each one can view and edit his own profile and also edit it. They can
also log out.
4. DATABASE DESIGN
Username nvarchar(20)
Password nvarchar(10)
UserType nvarchar(20)
Secretquestion nvarchar(100)
Secretanswer nvarchar(100)
Dob varchar(35)
Id int
231
2. Table: Customer
Name nvarchar(20)
Phno bigint
Address nvarchar(30)
City nvarchar(15)
State nvarchar(20)
Country nvarchar(30)
Pin bigint
Userid bigint
Cid nvarchar(10)
Id int
Type nvarchar(25)
Charges bigint
4. Table: Weight
Weightfrom Bigint
Weightto bigint
Charges bigint
5. Table: Distance
Distancefrom Bigint
Distanceto bigint
Charges bigint
232
6. Table: Duration
Daysfrom Int
Daysto Int
Charges bigint
7. Table: PostOffice
Poname nvarchar(20)
Address nvarchar(50)
Poid nvarchar(10)
Id Int
8. Table: SetDistance
FromPlace nvarchar(20)
ToPlace nvarchar(20)
Distance bigint
9. Table: Delivery
Cid nvarchar(10)
Toname nvarchar(20)
Toadd nvarchar(25)
Tocity nvarchar (20)
Tostate nvarchar(30)
Topin bigint
Toph bigint
Typeofdeli nvarchar(25)
233
APPENDIX 3
-----------------------------------------------------------------------------------------------
APPENDIX 4
Review Report
(RR/CWT) No. : 01 Date : 14/11/2008
Department Code : RL Start Time : 10:30 AM
Project Name : POMS End Time : 12:00 PM
Total Man Hours
Review On : 14/11/2008 : 1:30 Mins
Kumaravel Trimentus
Reviewer(s) : KV Venue : Technologies
No of Problems : 3 Reference Docs*: SRS 1.0
Problem Closing
High : 1 Date :
Medium : 1 Verifier** :
Low : 1
Findings List
Attempt
S. Severity Corrective
Problem Description Root Cause & Remarks
No. (H/M/L) Action
Status
1 "Loading" takes time L Requirements Updated Open
Separate code is
required for row
editing, updating,
2 deleting etc M Requirements Corrected Open
Problems with
windows and server
authentication
3 connections. H Coding Updated Open
236
Note:
1. Format of 'RR No.' is RR or CWT/Total No of Review or CWT/No of
review in a particular doc/No of Problems. For Eg 1. RR/21/03/07 out of
which 07 is the number of problems, 2. CWT/37/01/03.
2. 'Review On' is the Document name if it is Review or Form name(should
be with Module Name) if it is CWT
3. ' Reviewer(s)' is All reviewers names
4. On or Before the Problem Closing date all findings should be closed
5. Severity High is for Major errors which effect the whole project,
Medium is Minor error which can be rectified easily, & Low is
Cosmetic error which will not affect the project
6. 'Attempt & Status' is how many times the Fixed part of the problem is
Verified by the Verifier & its status (C for Closed, P for Under Process,
R for Resolved & O for Open) . Eg. 2 & O means 2 times it is verified
& still it is open
7. If no finding is there then also this form should be filled up stating NIL
in the 'Finding List'
APPENDIX 5
ABC Development
Project Plan
238
Purpose
Objectives
Amendment Record
Project Planning
Design
Coding
System /Acceptance
Release
Dependencies
Availability
S.No Dependency Responsibility
(date)
1. Test equipment Customer DD/mm/yy
2. Interface Modules ,,
3. Documentation on ABCXX ,,
4. Enhanced XXXXX ABC Product Team
product Representative
240
Software Tools
Name of the
Tool
S. Version/ User Tools Re-
(including Usage
No. Release Licenses Database Validation
development
tools)
1. Visual 7.0 Software Enterpris Demo,
Source Safe Configuration e license Help and
(VSS) Management validation
report
dated ….
Risk Management
Contingency Plan
Risk Tracking
Project Schedule
Activity No. of
Start Date End Date Responsibility
Reviews
Software dd Month dd Month Person designated by
Requirement yyyy yyyy Project Co-ordinator
Specifications but not the author,
review Customer
Design Review dd Month dd Month Person designated by
yyyy yyyy project coordinator,
but not the author
Code Review dd Month dd Month Person designated by
yyyy yyyy Project Co-ordinator
but not the author
System test plan dd Month dd Month Person designated by
and cases review yyyy yyyy Project Co-ordinator
but not the author
System testing dd Month dd Month Team member
yyyy yyyy designated by project
coordinator
(Unit/Integration/ dd Month dd Month Person designated by
System) Test yyyy yyyy Project Co-ordinator
results review but not the tester
TOTAL NUMBER OF REVIEWS
PLANNED
242
Configuration Library
The version identification scheme followed for source files, header files,
make files and documents is x.y. The version identification scheme followed
for releases is x.y.z.p.
Source files, header files and make files will be assigned filenames in
accordance with the Coding Guidelines.
Backups
Introduction
Scope
Pre-review checklist
Practical considerations
Statutory Compliance
1. Are all file names less than or equal to 8.3 characters in length ?
2. Are portable files identified as separate from core protocol files ?
3. Is the file/module grouping clear ?
247
File Organisation
Reviewing a routine
Functional
1. Does the comment in the header explain the routine and its function
clearly ?
2. Are there relevant comments in the code body explaining the code ?
3. Does the routine have a name which clearly defines its purpose and
describes everything the routine does ?
4. Is the routine required ? Is its job/function clearly defined ? Does it fit in
neatly with the overall architecture ?
5. Have all parts of the routine which would benefit from being put into
routines of their own, been put into routines of their own ? Have
relatively independent groups of statements been moved into their own
routines ?
6. Does the routine have functional cohesion - doing only 1 thing and
doing it well ?
7. Is the routine loosely coupled with the rest of the code ?
Recursion
1. Do you have a list of data types used along with their descriptions ?
2. Does the code use a different type for each kind of data that might
change ?
3. Does the code avoid redefining predefined types ?
4. Are the data structures simple so that they minimise complexity ?
Declaration
Initialization
Names
1. Does the name fully and accurately describe what the variable
represents?
2. Is the name oriented towards a real-world entity represented rather than
a program type ?
3. Do names of types/pointers have a prefix which indicates a type/pointer
?
4. Does the name conflict with a name used in any standard library ?
5. Does the code avoid arbitrary/mis-leading/similar-sounding names ?
6. Do all variable names have prefixes which indicate their size in bytes ?
Usage
Conditionals
If statements
1. Is the conditional check and the resultant path through the code clear ?
2. Could there be a third possibility other than the if and the else ?
3. Are the if and else clauses used correctly - not reversed ?
4. Does the normal case follow the if rather than the else ?
5. Are any complicated tests encapsulated in (boolean) function calls ?
6. Have the number of decision counts been kept to the minimum required?
7. If the number of decision counts is large (6 or more) would it be simpler
to have a nested if chain ?
8. Are numbers, characters and pointers compared to 0/NULL/FALSE
explicitly ?
9. Are boolean expressions stated positively ?
If-Then-ElseIf chains
Case statements
goto
1. Is the goto used only as a last resort to make the code more
readable/maintainable ?
2. If used for efficiency, has the gain in efficiency been measured and
documented ?
3. Are gotos limited to one per routine ?
4. Does the goto go forward, not backward ?
Loops
13. Are the nesting levels 3 (or fewer) in number ? Has the nesting been
kept to the minimum required ?
Input/Output
Comments
1. Is there a short description which gives an overall view of how the code
is organised ?
2. Is the purpose of each file/module explained ?
3. Is the source code listing self-explanatory ?
4. Can someone pick up the source code listing and immediately start to
understand it ?
5. Do comments explain, instead of simply repeat, the code ?
6. Are comments clear and correct ?
7. Do comments prepare the reader for the code to follow ?
8. Are all assumptions/limitations commented ?
9. Are the ends of long or complex control structures been commented ?
End-of-review checklist
Comment rules
Comments should not be cryptic and should not have flavor of the language
Formatting rules
Guidelines
C++
Comment rules
1. Single line comment should use // style
2. Multi line comment should use /* */ style
3. Multi line comments should be of the following format
Example:
/*constant - Use this
used in file name declaration */
const MAX_WIDTH = 35;
/*constant used in file name - Don’t use this
declaration */const MAX_WIDTH = 35;
const MAX_WIDTH = 35; /* constant - Don’t use this
used in file name declaration */
257
Format:
Coding Rules
1. The type int should never be used as its size is machine dependent. use
long, short or char instead.
2. All variables should be in a finite state before use. It is expected that
each variable is initialised at declaration either explicitly or via
constructor.
Example:
short shtCounter; - Don’t use this
short shtCounter = 0; - Use this const strings should be declared as
arrays and not as pointers
Example:
const char FILENAME[] = “x.x” - Use this
const char* FILENAME = “x.x” - Don’t use this
3. Do not use hard coded values in the source code, even as array
dimensions. Instead use defined consts or STL containers.
4. Functions should have only r-value or void as return type
l-values should be returned through function Parameters
5. Function parameters , whose values should not be modified within the
function, should be declared as const
6. Do not allocate memory for parameters within the function and delete it
outside or vice-versa
7. Inline member functions should be defined in the class declaration
8. Base class Destructors should be virtual
Guidelines
Specific to C++
Have public, protected and private members of a class grouped and placed in
order as follows
Example:
class cEmployee {
public: // all public members here
cEmployee();
virtual ~cEmployee();
HRESULT Get_Name(char *po_pchrName);
protected: // all protected members here
cEmployee(const char *pi_pchrName, const char *pi_pchrID);