For a new service or new product to be created in an organization, there must be a need for that particular product or service. However, mistakes are still being made between having a product to be made (required product) and making the product (final product), despite a huge time spent on development. Also, these organizations have a problem of sharing the vision of a final product with the final consumers. This problem creates a need for a detailed and focused requirements analysis at the start of a project to avoid problems going forward. Requirements analysis is regarded as the most important part of a business analyst job, as it helps to determine the actual needs of the stakeholders. It also enhances communication between the business analyst and the stakeholders. These communication techniques can be in the form of models, charts, flow-charts, and so on. In this tutorial, we will be looking at Requirements analysis and the techniques involved. So without further ado. Let’s begin.
Requirements Analysis can be defined as the process of defining the needs and expectations of the consumers for an application or product that is to be created or modified. In software engineering, Requirements analysis focuses on the activities that determine the conditions and needs required to meet a new or modified project or product.
Requirement analysis is a critical aspect that must be done for a system or software project to succeed. It involves all the activities that should be conducted to identify the needs of the stakeholders involved. Therefore, these requirements (both system and software) must be documented, analyzed, validated, and managed properly. A requirements analysis of high-quality is measurable, actionable, traceable, testable, and helps to identify opportunities in business.
Characteristics of Requirement Analysis
Requirements analysis is characterized by the following:
- It has a specific input.
- It has a specific output.
- It makes use of resources.
- It may affect other organization units.
- It has a specific goal.
- It creates some kind of value for the end-user.
- It performs activities in some order.
Process Involved in Requirements Analysis
There are steps involved in the requirements analysis process. These steps include:
- Identify the key stakeholders and also the key consumers: This is the first step in requirements analysis. The key stakeholders need to be found because they are the main sponsors of the project. They are also the ones to conclude on what is included in the project. Also, the key customers have to be identified because the main reason why the product is to be created is to satisfy the needs of the final consumers.
- Capturing the Requirements: This is the second step in the requirements analysis process. In this step, the requirements needed for the new product are collected from both the stakeholders and the final consumers. Some of the ways by which the requirements are collected are:
- By organizing focus groups: Group interviews are conducted to understand how information flows between the stakeholders and the final consumers. This will create a platform where there is no conflict of interest between the two parties as the project progresses.
- By having personal interviews with the stakeholders and the final consumers. This will help in gathering specific requirements of both parties.
- By creating prototypes: A prototype can provide the final consumer with a sample of the final product. This helps in addressing feasibility problems and also it helps in identifying problems ahead of time.
- By utilizing use cases: Use cases help in providing a step-by-step process of the whole product seen through the eyes of the final consumer. This technique helps in visualizing how the product will work.
- Categorizing the requirements: This is the third step in requirements analysis. There are different types of requirements. It is therefore easy for them to be grouped to avoid confusion.
- Interpreting and recording the requirements: This is the fourth step in requirements analysis. After categorizing the requirements, the requirements that can be achieved are determined and documented. Some of the ways by which these requirements are interpreted and analyzed are:
- By precisely defining the requirements, that is, making sure that the requirements are properly detailed, clearly worded, and related to the needs of the key user.
- By prioritizing the requirements, that is, by ranking the requirements from the ones that are most critical to the least critical ones.
- By carrying out an impact analysis. This is to make sure the consequences of the requirements are well understood.
- By having a meeting with the key stakeholders to resolve conflicting requirements. Scenario analysis could also be performed to see how the requirements would work given different possible scenarios.
- By analyzing the feasibility of the project: To do this, a detailed analysis of the project is performed to determine the reliability and also to identify any major problems. A detailed, well-written document should be created and circulated among the key stakeholders, development teams, and the final consumers.
- Sign Off: This is the final step in requirements analysis. After a final decision must have been made regarding the requirements, a signed agreement must be gotten from the key stakeholders. This is to ensure that no uncontrolled growth or changes are occurring during the scope of the project.
Types of Requirements Analysis
There are many types of requirements analysis, based on the nature of the organization. But these requirements can be grouped into four main categories. These categories are:
- Technical Requirements: These are requirements that involve technical issues that are to be considered for the product to be implemented successfully.
- Operational Requirements: These are requirements needed for operations to be carried out so that the product can function properly.
- Functional Requirements: These are requirements that include functions needed for the product to perform well.
- Transitional Requirements: These are requirements that include steps needed for smooth implementation of the product.
Techniques in Requirements Analysis
These techniques are used mainly to map the workflows of the business. This makes it easy to understand, analyze and make necessary changes to the process or workflow. The various requirements analysis techniques are:
- Unified Modeling Language (UML): Unified Modeling Language is a language that is primarily used for development, documenting, specification, documenting, and visualizing software systems. The UML provides objects like a Class diagram, Object, State, and Activity to capture important business artifacts and processes. Fourteen (14) UML diagrams are useful in modeling. Some of these diagrams include sequence diagrams, interaction diagrams, component diagrams, class diagrams, use case diagrams, and so on. The requirements tool can serve as a direct input to a UML- based business The Information Technology (IT) section uses the UML models because it serves as a medium of communication between all the stakeholders. A UML diagram is of two types namely the Structural model and the Behavioral model. A structural model gives what the system is made of while a behavioral model tries to provide information about what the system can do.
- Data flow diagram: Data flow diagrams give information about how the data is processed by a given system in terms of outputs and inputs. There are four components of a data flow diagram namely Flow, Process, Terminator and Store. There are also two types of data flow diagram namely physical data flow diagram and logical data flow diagram. The physical data flow diagram shows the infrastructure of a system while the logical data flow diagram shows the activities of the system. It can be designed early in the process of requirement elicitation within the Software Development Life Cycle (SDLC) to define the scope of the project. It can also be divided into sub-processes known as ‘levelled data flow diagram DFD’ for easy analysis.
- Business process modeling and notation (BPMN): This is a graphical representation of a business using objects that are simple and easy to understand. This facilitates standard communication in an organization. There are various objects used in BPMN and they are: Connecting objects, Artifacts, Flow objects and Swim lanes. One characteristic of a well designed BPMN model is that it should be able to provide the details about the tasks carried out during the process. Also, some questions should be answered when using BPMN. These questions include:
- Who is the performer of these tasks?
- What data elements are required for these tasks?
The best part of using BPMN is in its ability to share its output.
- Gantt Charts: A Gantt chart is known as a graphical representation of a schedule which helps in planning, coordinating and tracking specific tasks in a project. It shows the list of all the activities to be performed on the vertical axis while it represents the name of the person allocated to the task or the list of estimated task duration on the horizontal axis. The Gantt chart also shows the total duration of the project which is broken down into increments. One chart can represent many tasks in a Gantt chart.
- Flow chart: A flowchart is a visual representation showing the control logic and sequential flow of a set of related actions or activities. Various formats are available for flowcharts. These formats are Top-down, Linear and Cross-functional (or swim lanes) flowcharts. Many tasks can be performed using the flowchart which include system interaction operations and representing data flows. The merits of using flowchart is easy understanding for non-technical members. The flowchart can also show the critical characteristics and parallel function of a process.
- Role Activity Diagrams (RAD): This diagram is similar to the flowchart notation. In the case of Role Activity Diagram, role instances also participate in the process which consist of start and end state. A deep knowledge of the organization or process is required in RAD to identify the roles. The three components of RAD are States, External events and Activities. States are helpful in mapping activities of a role as it goes from state to state. It also indicates that a particular goal has been reached when its particular state is attained. External events are the points where the changes take place. The function of the Roles is to group activities into units of responsibility. An activity can occur in isolation with a role and it may also require coordination with other activities in other roles. One benefit of RAD is that it supports communication because it is easy to present a detailed view of the activities in parallel.
- Workflow Technique: This is a visual diagram that represents one or more business processes for the purpose of making process improvement recommendations or clarifying the process. This technique is a popular and old technique. Business analysts make use of this technique for taking notes during requirements elicitation. The workflow technique is divided into four stages which are;
- Gathering information.
- Modeling the workflow.
- Modeling the business process.
- Verification, Implementation and Execution.
- Colored Petri Nets (CPN): These are graphically oriented languages used for verification, simulation, specification and design of objects. CPN combines both text and graphics. It has three main components namely Transitions, Places and Arcs. Objects used in Colored Petri Nets possess specific inscriptions.
- Transition: it possesses inscription like .Guard ( a Boolean expression that consists of some variables) and .Name (used for identification).
- Places: Places possess inscription like .Color Set, .Name, .Initial Marking and so on.
- Arcs possess inscription like .Arc. When the arc expression is used, it results in multi-sets of token colours.
- Object Oriented methods: The modeling method makes use of object-oriented modeling language and paradigm to design the system. The object-oriented method places emphasis on describing and finding the object in the problem domain. This method is mainly applied to a system with dynamic requirements, that is, requirements that change frequently. The object-oriented process involves getting activity flow, use cases and events flow used for the system. The analysis of the object-oriented method can be done through vision document, communication with stakeholders and textual needs. The purpose of the object-oriented method is:
- To identify the various relevant objects.
- To analyze the requirements and their implications.
- To help characterize the system.
- To know how to model a problem so as to create an effective design.
- Integrated Definition for Function Modeling (IDEF): this is commonly referred to classes of various enterprise modeling languages. There are about sixteen (16) versions/methods used for IDEF. The most common and most used of them all are the IDEF0 and the IDEF3 versions. The IDEF is mainly used for modeling tasks which are necessary to support system design, analysis and integration.
- Gap Analysis: This is the technique that is used to effectively determine the difference between the current state and the proposed state for any business organization and also its functionalities. Questions answered by using this technique include:
- Where do we want to be as an organization?
- What is the current state of the project undertaken?
There are various stages involves in Gap Analysis and they include:
- System Review.
- Developing the requirements.
- Comparing the requirements
- Implications of using the requirements.
Tools Involved in Requirements Analysis
Some of the popular tools used in requirements analysis are:
- Visual Requirements
- IBM Engineering Requirements Management DOORS Next
- Modern Requirements
- Perforce Helix RM
For a project to be successful, it is very important to analyze the project requirements throughout the duration of the project. A good requirements analysis process will produce a software that performs the objectives of the business.