Summary : This is the article defining what are the software requirements where we can use these requirements and how to extract the requirements from the user conversation.
Requirement: Means something needed something which we want for some special purpose is called requirements.
Software Requirements: Means the requirements in the software i.e. a complete description of what the software system will do.
Note: Should be kept into the mind that there is a difference between what we want and what is needed and during the whole software requirements gathering process this difference should remain into the mind.
Key points of the Software Requirements:
- Requirements represent the external behavior of the system
- Software requirements are also work as statements of the services which we provide into the system and constraints which we will provide on to the functions of the system.
- Software requirements can also become the part of the technical documents
- We can also use these requirements to serve as contractual document between the two parties.
From where we get the requirements:
We can get requirements from the random sources most of the sources are those which got affected by the implementation of newly developed software.
Some of these are
- Stakeholder – Those who are investing for the software most of the time.
- Existing System – The system which is already in use by the organization gave the lots of requirements of the organization so getting involved into that system someone can extract the requirements from that system.
- Domain- The business are where the actually system going to work can gave the lots of requirements.
-One of the most difficult parts into the software development is deciding what to develop. If the requirements are clear we can easily sort out this problem and from the requirements we get the answer.
Example of requirements: Let me define the requirement by example to clarify the concept of what the software requirements are how we gather these requirements and all of the above define things because the practical examples can make things more understandable.
“ —Suppose a person (Owner of a library) visit to a software firm and ask for a software for his library he said I want a software which should work in a browser and maintain the all records of Books, Magazines, newspapers and all audio/video informative clips and the software should have facility to search any book and the searching system should be flexible if someone know the Name of the book he should be able to search via name, if someone know the Serial number of the book he should be able to search via serial number same like this if someone know the Author name of the book he should be able to search via author name. He also told that I wish the software interface should be decorated with book wallpaper and should not be complicated. ”
Now this is what the library owner asked to develop. This is the responsibility of Software requirements engineers to extract the proper requirements from all of his sayings and make difference between what is the needed and what are the wishes first fulfill the needs and then come to the wishes.
Now if we try to extract the proper requirements what we will get from this? Take a look
- System should store all the records of the available Books, Magazines, and Newspapers & Audio/Video Clips.
- System should facilitate end user in searching via providing the options
- Search via Book Name
- Search via Author Name
- Search via Book Serial Number
- Interface should not be complicated
- Use wallpaper of book and library environment in the backgrounds of Software.
Now first the engineers will focus on the requirements and then they will focus on the wishes after the requirements.
Requirements are further categorized into
- Functional requirements
- Non-Functional requirements
- Inverse Requirements
- Domain Requirements
- Design & Implementation Constraints
In next articles we will take a look at these all types in details.