Requirements Specification Section Five Version: 1.0 Mehr 1386 Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 1 What is SRS? What • The Software Requirements Specification (SRS) captures the software requirements for the complete system, or a portion of that system. • The SRS focuses on the collection and organization of all requirements surrounding your project. • The SRS package controls the evolution of the system throughout the development phase of the project, as new features are added or modified to the Vision document, they are elaborated within the SRS Package. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 2 What is SRS? What • The SRS Package is not a frozen tome, it is an active, living artifact. • It serves as a basis of communication between all parties - i.e., between the developers themselves, and between the developers and the external groups (users and other stakeholders) with whom they must communicate. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 3 SRS Standards What • Several recommended guides and standards exist to help define the structure of requirements documentation. Include • IEEE P1233/D3 • IEEE Std. 1233 • IEEE Std. 830-1998 • ISO/IEC 12119-1994 • IEEE Std. 1362 1998 Concept of Operations Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 4 SRS Outline (Based on RUP) What Introduction Overall Description Specific Requirements – Functionality – Usability – Reliability – Performance – Supportability – Design Constraints – Online User Documentation and Help System Requirements – Purchased Components – Interfaces – Licensing Requirements – Legal, Copyright and Other Notices – Applicable Standards Supporting Information Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 5 Who Uses SRS? Who The following people use the Software Requirements Specification: • The system analyst creates and maintains the Vision and Supplementary Specifications, which serves as input to the SRS and are the communication medium between the system analyst, the customer, and other developers. •The requirements specifier creates and maintains the individual use case and other components of the SRS package, •Designers use the SRS Package as a reference when defining responsibilities, operations, and attributes on classes, and when adjusting classes to the implementation environment. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 6 Who Uses SRS? (con.) Who • Implementers refer to the SRS Package for input when implementing classes. • The Project Manager refers to the SRS Package for input when planning iterations. • Testers use the SRS Package to verify system compliance. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 7 Vision What • Defines the stakeholders view of the product to be developed, specified in terms of the stakeholders key needs and features. • The Vision provides a high-level, sometimes contractual, basis for the more detailed technical requirements. • It captures the "essence" of the envisaged solution in the form of high-level requirements and design constraints that give the reader an overview of the system to be developed from a behavioral requirements perspective. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 8 Supplementary Specification What • The Supplementary Specification artifact capture system requirements that are not readily captured in behavioral requirements artifacts such as use-case specifications. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 9 From Vision to SRS How • The SRS Package is obviously related to the Vision document. • Vision document serves as the input to the SRS. But the two artifacts serve different needs and are written by different authors. • In SRS the focus of the document moves from the broad statement of user needs, goals and objectives, target markets and features of the system to the details of how these features are going to be implemented in the solution. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 10 Requirements identification How • It is essential for requirements management that every requirement should have a unique identification • The most common approach is requirements numbering based on chapter/section in the requirements document. • Problems with this are: – Numbers cannot be unambiguously assigned until the document is complete – Assigning chapter/section numbers is an implicit classification of the requirement. This can mislead readers of the document into thinking that the most important relationships are with requirements in the same section Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 11 Requirements identification techniques How • Dynamic renumbering – Some word processing systems allow for automatic renumbering of paragraphs and the inclusion of cross-references. • Database record identification – When a requirement is identified it is entered in a requirements database and a database record identifier is assigned. This database identifier is used in all subsequent references to the requirement • Symbolic identification – Giving each requirement a symbolic name. For example, EFF-1, EFF-2, EFF-3 for system efficiency requirements Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 12 Storing requirements How • Requirements have to be stored in such a way that they can be accessed easily and related to other system requirements • Possible storage techniques are – In one or more word processor files requirements are stored in the requirements document – In a specially designed requirements database Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 13 Word processor documents • Advantages – – – • How Requirements are all stored in the same place Requirements may be accessed by anyone with the right word processor It is easy to produce the final requirements document Disadvantages – – – – – Requirements dependencies must be externally maintained Search facilities are limited Not possible to link requirements with proposed requirements changes Not possible to have version control on individual requirements No automated navigation from one requirement to another Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 14 Requirements database How • Each requirement is represented as one or more database entities • Database query language is used to access requirements • Advantages – Good query and navigation facilities – Support for change and version management • Disadvantages – Readers may not have the software/skills to access the requirements database – The link between the database and the requirements document must be maintained Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 15 Object classes for requirements DB SYS_MODELS Model: MODEL Description: TEXT Next: MODEL | NULL REQ_LIST Req: REQUIREMENT Description: TEXT Next: REQUIREMENT | NULL REQUIREMENT Identifier: TEXT Statement: TEXT | GRAPHIC Date_entered: DATE Date_changed:DATE Sources: SOURCE_LIST Rationale: REQ_RATIONALE Status: STATUS Dependents: REQ_LIST Is_dependent_on: REQ_LIST Model_links: SYS_MODELS Comments: TEXT What SOURCE_LIST People: TEXT Documents: TEXT Reqs: REQ_LIST REQ_RATIONALE Rationale: TEXT Diagrams: GRAPHIC Photos: PICTURE Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 16 Requirements DB - choice factors What • The statement of requirements – If there is a need to store more than just simple text, a database with multimedia capabilities may have to be used. • The number of requirements – Larger systems usually need a database which is designed to manage a very large volume of data running on a specialised database server. • Teamwork, team distribution and computer support – If the requirements are developed by a distributed team of people, perhaps from different organisations, you need a database which provides for remote, multi-site access. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 17 Database choice factors What • CASE tool use – The database should be the same as or compatible with CASE tool databases. However, this can be a problem with some CASE tools which use their own proprietary database • Existing database usage – If a database for software engineering support is already in use, this should be used for requirements management. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 18 A Sample Documentation Tool What • SoDA is a flexible, powerful documentation tool that can help you publish project documents by retrieving information from your project software tools. • SoDA is an acronym for Software Documentation Automation. • SoDA is a report generation tool that supports reporting and formal documentation requirements for defining custom reports and documents. • The primary function of SoDA is to retrieve information from various sources and use it to generate a document or report according to a template. • SoDA comes with several predefined templates, or you can use its template-building component to build templates for your specific needs. Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 19 SoDA for Word What • Adds document generation to the capabilities of Microsoft Word • Performs incremental document regeneration to reduce turnaround time • Preserves data entered directly into the document from generation to generation • Enables extraction of data from multiple information sources, such as Rational Rose and Rational RequisitePro, to create a single document • Maintains consistency between documents and information sources Amirkabir University of Technology, Computer Engineering Faculty , Intelligent Systems Laboratory 20