An SRS is basically an organization's understanding (in writing) of a customer or potential client's system requirements and dependencies at a particular point in time (usually) prior to any actual design or development work. It's a two-way insurance policy that assures that both the client and the organization understand the other's requirements from that perspective at a given point in time. The SRS document itself states in precise and explicit language those functions and capabilities a software system (i. e., a software application, an eCommerce Web site, and so on) must provide, as well as states any required constraints by which the system must abide.
The SRS also functions as a blueprint for completing a project with as little cost growth as possible. The SRS is often referred to as the "parent" document because all subsequent project management documents, such as design specific
...ations, statements of work, software architecture specifications, testing and validation plans, and documentation plans, are related to it.
It's important to note that an SRS contains functional and nonfunctional requirements only; it doesn't offer design suggestions, possible solutions to technology or business issues, or any other information other than what the development team understands the customer's system requirements to be. A well-designed, well-written SRS accomplishes four major goals:
- It provides feedback to the customer. An SRS is the customer's assurance that the development organization understands the issues or problems to be solved and the software behavior necessary to address those problems. Therefore, the SRS should be written in natural language (versus a formal language, explained later in this article), in an unambiguous manner that may also includ
charts, tables, data flow diagrams, decision tables, and so on.
Functionality. What is the software supposed to do? External interfaces. How does the software interact with people, the system’s hardware, other hardware, and other software? Performance. What is the speed, availability, response time, recovery time of various software functions, etc.? Attributes. What are the portability, correctness, maintainability, security,
etc. considerations? Design constraints imposed on an implementation. Are there any required standards in effect, implementation language, policies for database integrity, resource limits, operating environment(s) etc.? Chracteristics of a good SRS An SRS should be
- Correct
- Unambiguous
- Complete
- Consistent
- Ranked for importance and/or stability
- Verifiable g) Modifiable
- Traceable Correct - This is like motherhood and apple pie. Of course you want the specification to be correct.
No one writes a specification that they know is incorrect. We like to say - "Correct and Ever Correcting. " The discipline is keeping the specification up to date when you find things that are not correct. Unambiguous - An SRS is unambiguous if, and only if, every requirement stated therein has only one interpretation. Again, easier said than done.
Spending time on this area prior to releasing the SRS can be a waste of time. But as you find ambiguities - fix them. Complete - A simple judge of this is that is should be all that is needed by the software designers to create the software. Consistent - The SRS should be consistent within itself and consistent to its reference documents. If you call an input "Start and Stop" in one place, don't call it "Start/Stop" in another. Ranked for Importance - Very often a new system has requirements that are really marketing wish lists. Some may not be achievable. It is useful provide this information in the SRS.
Verifiable - Don't put in requirements like - "It should provide the user a fast response. " Another of my favorites
is - "The system should never crash. " Instead, provide a quantitative requirement like: "Every key stroke should provide a user response within 100 milliseconds. " Modifiable - Having the same requirement in more than one place may not be wrong - but tends to make the document not maintainable. Traceable - Often, this is not important in a non-politicized environment. However, in most organizations, it is sometimes useful to connect the requirements in the SRS to a higher level document.
- Leadership and Management essays
- Change Management essays
- Project Management essays
- Knowledge Management essays
- Operations Management essays
- Quality Management essays
- Risk Management essays
- Scientific Management essays
- supply chain management essays
- Performance Management essays
- Time Management essays
- Brand Management essays
- Total Quality Management essays
- Risk essays
- Manager essays
- Leadership essays
- Business Ethics essays
- Board Of Directors essays
- Product Management essays
- Comparative Analysis essays
- Decision Making essays
- Dispute Resolution essays
- Stress Management essays
- Business Management essays
- Brand Equity essays
- Branding essays
- Nike, Inc. essays
- Market share essays
- Razor essays
- Being A Leader essays
- Servant Leadership essays
- Leadership Experience essays
- Leadership Qualities essays
- Incentive essays
- Android essays
- Application Software essays
- Benchmark essays
- Computer Network essays
- Computer Programming essays
- Computer Security essays
- Computer Software essays
- Cryptography essays
- Data collection essays
- Data Mining essays
- Graphic Design essays
- Information Systems essays
- Internet essays
- Network Security essays
- Website essays
- World Wide Web essays