SRS Example
Overview of a Software Specification Document (SRS)
1. INTRODUCTION
States the goals and objectives of the software, describing it in the context of the computer-based system.
A. System Reference
B. Overall Description
C. Software Project Constraints
Introduction (cont’d)
• System Reference for an Inventory Control Subsystem:
“ The Inventory Control System (ICS) will work in the existing Enterprise Planning System (ERP) system. It will interface with the Purchasing, Manufacturing, Customer Order Entry/Shipping, and subsystems.
It will be invoked mainly when: – purchased goods arrive from vendors,– goods are returned to the vendor for various reasons,
– stock is issued to/from manufacturing, – finished goods are entered in the Finished Goods Warehouse
– finished goods are shipped to the customer,– sales persons wish to check the availability of products.
System Reference for the Inventory Control Subsystem (cont’d):
• Interface with Purchasing:
When an order from a vendor arrives, our Purchase Order Number on the vendor’s invoice will be used to locate the the PO and other related documents, such as vendor proposals, price lists, product specifications.
These will then be forwarded to Quality Control to be used in the inspection of the goods.
An interface will be worked out with Purchasing subsystem currently running on Server PS1 so that ICS can find all documents related to the current purchase.
System Reference for the Inventory Control Subsystem:
(cont’d)
• Interface with Manufacturing:
Mfg requests materials Mfg wants to store finished goods
• Interface with Customer Order Entry/Shipping:
COES wants to ship goodsCOES wants to store returned goods
•..........
Deployment Diagram
ICS
Cust.OrderEntry
Manufacturing
Purchasing
Shipping
Overall Description of ICS
ICS’s main objective is to keep track of all the parts and finished goods in the warehouses and all the transactions involving these parts and goods.
An automatic purchase order generation when the stock levels of parts falls below the minimum has been contemplated but postponed to a future date.
Overall Description of ICS (cont’d)
The main functions of ICS are:• Entering new parts into the inventory
(see “Interface with Purchasing”)
• Issuing parts to Manufacturing(see “Interface with Manufacturing”)
• Entering finished goods to the inventory(see “Interface with Manufacturing”)
Overall Description of ICS (cont’d-2)
• Providing Sales personnel with inventory information
• Issuing goods to/from COES for shipping, entering returned goods (see “Interface with Customer Order Entry/Shipping”)
• Assisting IC Department with reconciliation of results of physical inventories and machine records (internal).
• Providing IC Department Manager and the Vice President of Manufacturing with management reports about our inventories (internal).
Overall Description of ICS (cont’d-3)
ICS should:
• Provide a user interface consistent with the other subsystems
• Verify user identities and access rights
• Do error checking on all inputs
• Permit users to add customized reports
USE CASE DIAGRAMS
Use Case 1: ICS Dept
Chk Parts Inventory
Chk/verify Mfg Schedule
Create Purchase Requsts
Delete cancelled part records..
Add new part records
Reconcile machine and physical inventories
ICS
ICS Manager
Create reports required by mgmt
Use Case 2: Customer Order EntrySalesperson(COES)
Chk Goods Availability
ChkAvail
ICSSales Prog.
View
ICS
Use Case 3 - Manufacturing
Collect Mfg Requests
Create Mfg Schedule
Get/order parts.
Chk mfg. progress
Update finished goods inventory
Manufacturing Manager
Get/order parts
Mfg. Prog.
ICS
View/update
Use Case 4 - PurchasingAnalyze purchasing requests
Analyze vendors
Get bids.
Order parts
Enter arriving parts
Purchasing Manager
Purchase parts
Purch. Prog.
ICS
View/update
Enter arriving parts
Return defective parts to vendor
Use Case 5 - Shipping
Get finished orders
Ship to customer
Shipping Manager
(COES)
Ship Order
Shipping Prog.
ICS
View/update
Software Project Constraints
• Compatibility– ICS software should run compatibly (i.e. under the same operating system,
database and networking capabilities) with the other subsystems software it works together with.
– It should allow an Administrator to enroll new users and give them access rights required by their duties.
• Reliability and Availability– Since it interfaces with Purchasing, Customer Order Entry and Manufacturing, it
should be available as a minimum when any one of these subsystems are available.
– It should permit 1 hour per day for maintenance and backup activities with minimal disruption to users.
– Any failure should cause no more than 10-minute downtime, with the average not exceding 2 minutes.
– Backup should spot-tested to ensure they are reliable.• Performance
– It should allow up to 10 users to logon simultaneously and receive an average response time not exceeding 3 seconds.
– Parts received should be in the recorded in the system in no more than 2 hours, with the average under 30 minutes.
Software Requirements Specification
18
2. INFORMATION DESCRIPTION
• Detailed description of the problem the software must solve
• Information content, relationships, flow and structure
• Hardware, software and human interfaces are described for external system elements and internal software functions
Software Requirements Specification
19
ICS Information Description
ICS will use the following data from other subsystems. See Class Diagrams for details. The formats can be found in the Design Documents of the related systems.
1. Vendor Order Master File - Purchasing2. Vendor Order Detail File - Purchasing
3. Customer Order Master File – Customer Order Entry4. Customer Order Detail File – Customer Order Entry
5. Manufacturing Requests – Manufacturing6. Manufacturing Schedule– Manufacturing
INFORMATION DESCRIPTION (cont’d)
• ICS will create and maintain, as a minimum, the following files:
1. Part Transaction File
2. Part Master File
3. Part Detail File
4. Part Inventory File
Data Flow Diagrams(DFD Level 0)
Vendor Order Master File
Vendor Order Detail File
Customer Order Master File
Cust. Order Detail File
Manufacturing Requests
Manufacturing Schedule
ICS
Part Transaction File
Part Master File
Part Detail File
Part Inventory File
INFORMATION DESCRIPTION (cont’d-3)
• Transactions to be provided by ICS:
– Create New Part or Product Master Record(“Note:Part and Product Record formats can be obtained from Manufacturing Subsystem, File: prd_rec_fmt” )
– Edit/Delete Part or Product Master Record– Edit/Delete Part or Product Record– Enter New Part or Product– Enter Returned Part or Product– Issue Part or Product– Re-issue Part or Product– View Part or Product ......
DFD Level 1
Create New Part or Product Master Record
Edit/Delete Part or Product Master Record
Enter New Part or Product
Edit/Delete Part or Product
Enter Returned Part or Product
Issue Part or Product
Re-issue Part or Product
View Part or Product
Vendor Order Master File
Vendor Order Detail File
Cust. Order Detail File
Customer Order Master File
Manufacturing Requests
Manufacturing Schedule
All
Part Transaction File
Part Master File
Part Detail File
Part Inventory File
INFORMATION DESCRIPTION (cont’d-4)
• List of transactions should be expanded and details should be given as required.
• The transactions will use the classes described below as required
• Data flow and Control flow diagrams should be supplied.
(do not have to be very detailed at this stage. Will be discussed in more detailed later.)
CLASS DESCRIPTIONS
• It will list details of all parts entry and parts issue transactions, using the Transaction ID as the Primary Key. May be used with the Part ID to display all transactions for a given part. • It will be searchable by the various portions of the Part ID, date of the transaction, person making the transaction, and the transaction type indicating the reason for the transaction. It will allow a joker character (?) to match any character in that position.
• The outputs can be routed to the display, a file or the printer.
Part Transaction Class
Data Elements• Trans ID (*)• Trans type: View Part • Trans start time• User ID• Part ID• View type: Detail• Amount on Reserve
(may be more than one field)• Status: • Completion time
Methods in class• getPartDetail• displayPrint PartDetail• getPartSummary• displayPrint PartSummary• recordStartTime• getUserId• recordUserId• getReservations• displayPrintReservations• updateStatus• recordCompletionTime
Part Transaction Class (cont’d)(note: Data elements are stored in DB)
Part Inventory Class
This class will allow viewing the inventory of parts by part ID or part name. It will update fields as required.
This file will be searchable by Part ID in ways similar to to the preceding file. Its output can be directed to the display, a file or a printer. Its contents should be verified periodically by complete or partial physical inventories.
Part Inventory Class (cont’d)
(note: Data elements are stored in DB) Data Elements• partId (*)• totalInStock• totalOnReserve• amountOnOrder
(can be one or more fields)
• amtExpectedByDate(can be one or more fields)
• lastEntryTransId• lastIssueTransId
Methods in Class• getPartInvRec• updatePartInvRec• displayPrintPartInvrec
Part Master Class
(note: Data elements are stored in DB) Data Elements• partId (*)• partName
Methods in Class• getPartDetailById• getPartDetailByName• createNewPart• deletePart• updatePartMaster• displayPrintPartMaster
Part Detail Class
(note: Data elements are stored in DB) Data Elements• partId (*)• partName• partDrawingNo• height• width• weight• price
Methods in Class• getPartDetailById• updatePartDetailById• displayPrintPartDetail
Software Requirements Specification
32
3. FUNCTIONAL DESCRIPTION
• Each function is described in detail.A. Functional Partitioning - None
B. Functional Description
1. Processing Narrative
2. Functional Constraints
3. Performance Requirements
4. Design Constraints
5. Supporting Diagrams
TRANSACTION DESCRIPTIONS
“Create New Part or Product” Transaction
Narrative: Creates a new part or product type. After the type has been created, part or product instances can be entered. Permits user to enter a new type code and its description. The type code should be selected according to the “Part/product Type Code Guidelines” document. Uses PartMaster Class and PartDetail Class.
Constraints: Requires “Product Administrator” rights for use.
Performance constraintsPerformance constraints: Since it locks PartMaster, the transaction should time-out after 15 seconds and backout all changes.
Design Constraints: Must check type code for compliance with Guidelines
Supporting Diagrams: See Class diagram for PartMaster and Part Detail classes.
“Edit/Delete Part or Product” Transaction
Permits user to edit the description of a part or product or delete it. If there are any instances of the part or product, it can not be deleted. Uses PartMaster Class, PartDetail Class and PartInventory Class.
Constraints: Requires “Product Administrator” rights for use.
Performance constraintsPerformance constraints: Since it locks PartMaster, PartDetail and PartInventory Classes, the transaction should time-out after 15 seconds and backout all changes.
Design Constraints: Must check type code for compliance with Guidelines. Any instances of the part or product are in existence, only certain fields may be edited.
Supporting Diagrams: See Class diagram for PartMaster and Part Detail classes.
Other transactions supported by ICS
• enterNewPart,
• enterReturnedPartProduct
• issuePartProduct
• re-issuePartProduct
• viewPartProduct
(described similarly)
Software Requirements Specification
37
4. Behavioural Description
• Operation as a result of external events and internal conditions
A. System States
B. Events and Actions
Software Requirements Specification
38
5. Validation Criteria
• How do we recognize a successful implementation? What classes of tests must be conducted to validate function, performance and constraints?
A. Performance boundsB. Classes of tests C. Test to be performed and expected software
responseD. Special considerations
Software Requirements Specification
39
6. Bibliography
• List of references used (books, reports, papers, web sites/pages). Make reference as specific as possible, including chapter/page for paper pubs and detailed URL for Web.
Software Requirements Specification
40
7. Appendices (Ekler)
• An executable prototype
• A paper prototype
• Preliminary user manual.(Represents software as a black-box. Emphasis is on input and output.)