Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Software Requirements Specification

For any large software project (i.e. one that requires more than a few scripts performing a one-off task) and for every project that was initiated by a customer request, it is useful to precisely define the requirements before starting to write any code. This might be painful at times and slow down the coding fun, but it should avoid a lot of frustration on either side in the end.

Here is a short summary of what Software Requirements Specification (SRS) (IEEE 830) are, how to write them, what they are good for.

SRS is a complete description of the behavior of a system to be developed, including use cases.

The benefits of writing specifications when planning a software project are:

  • Establish the basis for agreement between the customers and the suppliers on what the software product is to do.
  • Reduce the development effort by avoiding redesign, recoding, and retesting and revealing omissions, misunderstandings, and inconsistencies early in the development cycle.
  • Provide a basis for estimating costs and schedules.
  • Provide a baseline for validation (comparison against what the customer needs) and verification (comparison with the formal specifications).
  • Facilitate transfer to new users or new machines.
  • Serve as a basis for enhancement.

Key points to address:

  • Required functionality.
  • External interfaces.
  • Performance.
  • Attributes.
  • Design constraints imposed on an implementation.

Avoid design details and coding details in the specs. Hardware requirements etc. go into general System Specifications, not SRS. The content and language of the document should fit the description with the following key words:

Complete, Consistent, Accurate, Modifiable, Ranked, Testable, Traceable, Unambiguous, Valid, Verifiable

Descriptions of “use cases”, mock-up GUI components and other visual aids are extremely useful to communicate with the parties involved.

Sources:
Wikipedia
www.microtoolsinc.com
www.techwr-l.com