< Free Open Study > |
Building the SRSRequirements definition is the most crucial part of the project. The SRS is the mechanism for capturing and containing the project requirements. Incorrect, inaccurate, or excessive definition of requirements will necessarily result in schedule delays, wasted resources, or customer dissatisfaction. Any discussion of requirements analysis methods will quickly become specific to the type of project effort. Many industry areas have specific, proven techniques for obtaining thorough and accurate definition of requirements. Sometimes it is useful to write a draft user's manual as a way to define requirements. While the methods may differ, the principles remain the same across all types and sizes of projects. The requirements analysis should cover the whole scope of the project. It must be comprehensive and thorough. It must consider the views and needs of all the project stakeholders. It is easy to leave scope out of requirements analysis or to omit necessary clarity or detail thereby making the requirements definition ambiguous. The completed requirements analysis should be reviewed and approved by the customer or project sponsor before work continues. On large projects, the first formal design review is actually a requirements review. The SRS can take on any reasonable form for specific project needs. It needs to embody the quality characteristics previously described. The following template is based on IEEE 830-1998 with modifications from extensive experience with software project definition. It is a basic SRS outline that accommodates the three views of the project problem domain and is a vehicle for capturing and maintaining project requirements. Title PageIdentify the document as the software requirements specification, and list the project name and author(s). Place the version/revision control table on either the title page or the following page with the enumeration of the releases of the SRS and other comments as determined by the configuration management process. Table of ContentsSimply use whatever automated table of contents generator is available with the project documentation tool. Section 1. IntroductionThe following subsections of the SRS should provide an overview of the entire SRS. By itself, Section 1 should stand alone as an executive summary. 1.1 PurposeIdentify the purpose of the SRS and its intended audience. Identify why it has been developed at this point in the product life. 1.2 ScopeIn this subsection:
1.3 Assumptions and DependenciesList and describe each of the factors that affect the requirements stated in the SRS. These factors are not design constraints on the software but any changes to them can affect the requirements in the SRS. It is critical that these be enumerated at the front of the SRS. Many times managers and executives read only the introduction (executive summary). Because their job is to facilitate the successful execution of this project, if they are aware of all assumptions and dependencies, they can aid in making the project a success. An assumption might be that a specific operating system will be available on the hardware designated for the software product. If, in fact, the operating system was not available, the SRS would have to change. Major dependencies like this must be brought to management's attention. 1.4 Overview of the SRSDescribe the rest of the SRS and how it is organized. Section 2. The General DescriptionDescribe the general factors that affect the product and its requirements. This section does not state specific requirements. Each of the five subsections makes the requirements easier to understand; they do not specify design or express specific requirements. Such detail is provided in Section 3. 2.1 Product PerspectiveThis subsection of the SRS relates the product to other products or projects.
A block diagram showing the major components of the larger system or project, interconnections, and external interfaces is essential for understanding the domain in which this product operates. 2.2 Product FunctionsProvide a summary of the functions that the software will perform. Sometimes the function summary can be taken directly from the system specification section 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 are essential as an effective explanatory tool. 2.3 User CharacteristicsDescribe those general characteristics of the eventual users of the product that will affect the specific requirements. Many people interact with a system during the operation and maintenance phase of the software life cycle. Some of these people are users, operators, and maintenance and systems personnel. Certain characteristics of these people, such as educational level, experience, and technical expertise impose important constraints on the system's operating environment. This is the audience for the application's user's manual. It is never too early to begin writing the end-user documentation. By the time the SRS is complete, there should be an understanding of how the user interacts with the system. If the user's manual cannot be written at this time, it is an indication of missing requirements. 2.4 General ConstraintsProvide a general description of any other items that will limit the developer's options for designing the system. These can include:
Section 3. Specific RequirementsThis 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. It is the section where the three views of the problem domain will be described (please refer to Figure 17-3), along with diagrams and models representing the requirements.
The best organization for this section depends on the application area and the nature of the software product being specified. There are four general classes that the organization can assume:
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 Figure 17-5. 3.1 Functional RequirementsThis subsection specifies what the product will do, and to what level or requirement it will do it, what inputs should be transformed to what outputs (not how this is done), and what operations are required. Where the rationale for a requirement is not obvious, provide an explanation. Cite any issues that need to be resolved. For each function, specify requirements on inputs, processing, and outputs. These are usually organized with these four subparagraphs:
3.2 External Interface RequirementsThis section of the SRS contains all of the information that the designer needs to adequately develop the interfaces to entities outside of the software being specified. Of critical importance is the specification of the requirements for how the end-user will interact with the software system. Where required, specific interfaces to hardware, other software applications, and communication systems are specified in this subsection. 3.2.1 User InterfacesThis should specify:
3.2.2 Hardware InterfacesSpecify 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. A block diagram showing the relationship among the hardware blocks and the software functions hosted in each block is essential here. 3.2.3 Software InterfacesSpecify 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:
For each interface:
3.2.4 Communications InterfacesSpecify the various interfaces to communications, such as local network protocols. 3.3 Performance RequirementsThis 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.
All of these requirements should be stated in measurable terms, for example, "95 percent of the transactions shall be processed in less than 1 second," 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 ConstraintsDesign constraints can be imposed by other standards, hardware limitations, and the operating environment. 3.4.1 Standards ComplianceSpecify the requirements derived from existing standards or regulations. These might include:
3.4.2 Hardware LimitationsIdentify requirements for the software to operate inside various hardware constraints. 3.5 Quality CharacteristicsThere are a number of quality characteristics that can apply to software. Pick those most important to the product and develop a section for each one. Figure 17-9 has the definitions of the quality characteristics. Figure 17-9. Quality Characteristics3.5.1 EfficiencyDescribe the rationale for including the efficiency 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.n UsabilityAs stated in the instructions, there could be several quality characteristics described in these subsections. Usability is numbered with an "n" prefix to reference the possibility of one or more characteristics. Describe the rationale for including the usability 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.6 Other RequirementsCertain requirements may, due to the nature of the software, the user organization, and so on, be placed in separate categories such as those below. 3.6.1 DatabaseThis subsection could specify the requirements for any database that is to be developed as part of the product. These might include:
If an existing database package is to be used, this package should be named under Subsection 3.2.3., Software Interfaces, and the details of its use specified there. 3.6.2 OperationsThis is sometimes specified as part of the User Interfaces section. It could specify the normal and special operations required by the user such as:
3.6.3 Site Adaptation RequirementsThis section could:
Section 4. Supporting InformationThe supporting information adds to the completeness of the SRS. This section should always be considered part of the formal requirements specification. The SRS remains a "living document" throughout the life cycle of the product, not just its development. Information contained in the document is maintained and placed under version control. It is a critical part of the validation testing and all subsequent regression test suites. 4.1 Definitions, Acronyms, and AbbreviationsProvide the definitions of all terms, acronyms, and abbreviations required to properly interpret the SRS. This information may be provided by reference to an appendix or other document(s). 4.2 ReferencesIn this subsection:
The traceability matrix is one of the key deliverables from the requirements phase and a tool that will be used throughout the life cycle of the product. It is an outgrowth of the numbering scheme for the SRS requirements section and takes on the topology of the layout used. Table 17-1 shows an example of a requirements traceability matrix with the hardware module in which the requirement is hosted. Traceability matrices can be developed to show any information dimension. Some commonly used ones are:
4.3 AppendicesThe appendices are considered part of the actual requirements specification, although they may not always be necessary. They might include:
4.4 IndexAs with the table of contents, simply use the project documentation tool to automatically generate an index for the SRS.
|
< Free Open Study > |
No comments:
Post a Comment