Table of contents
Let’s have a look at how to conduct software requirement analysis through this post.
What is analysis? Analysis is an activity concerned with exploring, clarifying, understanding and documenting the functions, features and behaviour of the system. The output of this activity is an understanding of business requirements, user requirements, system requirements, technical requirements and quality assurance requirements. The output of this activity has to be documented so that it can be used as the foundation for further development of the software product.
What is the importance of Software Requirement Analysis?
The purpose of requirements analysis is to produce information that will be used by the designers to create the desired software system. This means that the output of this activity has to include all functional and non-functional requirements that are needed in order to create a functioning software product.
A functional requirement describes what functionality users should be able to use in order to solve their problems or complete tasks. A non-functional requirement describes any kind of non-functional aspect that the users expect from the software system e.g. availability, performance, etc.
Requirements can be divided into two types: business requirements and user requirements. Business requirements are usually developed using business goals, goals statements, etc.
a) User requirements
“User requirements” describe what the users of a software system need to do in order to use the system. The output of this activity is a list of functional and non-functional requirements that will be included in the software product.
Let’s have a look at an example of a user requirement.
User says: “I would like to be able to do X”. A more detailed and comprehensive requirement can be: “Firstly, I would like to enter X and then I would like it to display Y”. This means that a user requirement includes information about how the user wants the desired action to take place.
In order to produce a complete list of user requirements, it is necessary to interact with the users. The interaction can take many forms, for example face-to-face interviews, group discussions, questionnaires, etc. The aim of this activity is to understand the users’ needs and requirements completely and in detail. After each interview or discussion, it should be possible to add at least one new requirement into the system description.
b) Business requirements
“Business requirements” describe what functional and non-functional functionality a business (or an organisation) needs from its software system in order to be able to achieve its goals. Business goals are the goals that an organisation wants or intends to achieve by using a software system e.g. increasing the productivity of its staff, etc.”.The output of this activity is a list or a statement of business requirements necessary in order to achieve a specific business goal.
“Business analysis” is a detailed investigation of the business domain to discover what needs must be met by the software system. Business analysts are expected to have detailed knowledge of the business, its goals and objectives; the objectives of each department; and the skills, responsibilities, qualifications and competencies which are required to perform certain jobs. Therefore, it is not surprising that many consider this as one of the most challenging activities in software development.
The main goal of this activity is to understand what each part of an organisation does for its objectives; how different departments interact with each other; who their customers or users are; what major internal or external problems they face; what information they need in order to make decisions etc. The output of this activity is a description of the business domain.
During the investigation, the analyst needs to formulate business requirements based on what he discovers. The most important thing here is to understand what functional and non-functional aspects of the software system are necessary in order for the organisation to be able to achieve its goals. For example, if an organisation wants to improve its productivity then it has to decide whether it needs a software system that will be able to decrease the time required for performing some tasks or increase accuracy etc.
The most important non-functional aspect of a software product is its reliability which includes availability, responsiveness, security, etc. Older computers were not very reliable and when they started to lose their power they would often freeze and this made it impossible for people to continue using the systems so the software developers had to add some kind of mechanism or protection mechanism in order to avoid such things from happening. I.e. reliability is an aspect of a software system that depends on both its functional and non-functional aspects.
Creating a software design after analysis
In order to design a software system. A “design” product is created from all the information gathered during the analysis of the business domain and using this information it is possible to create a complete description of the desired software system. A design document describes what the software product should do.
The aim of software design is to create a product that will meet the most important business requirements and the desired functionality that users need in order for them to be able use it most effectively etc.
After software requirement analysis, a software requirement document(SRS) is usually created as part of the output of the analysis.
After a software analysis has been completed, it is usually important to produce a list of all the business requirements that can be derived from that analysis in order for further development and construction of the software product.