The Dynamic Nature Of Software Requirements

May 4, 2018

In any project, once you obtain what you have to do and start doing it, there are always going to be new things added. Big or small, all projects undergo changes during the process the whole process of completing the project. As much as we would want for requirements to stay the same, the truth is it changes. This can be for various reasons but the important thing is to be one step ahead of the potential changes so you can prepare.

In software projects, this fact is also true. We can have various changes throughout the software project's lifecycle that can affect the process of completing the project or even the end product. This can be errors and flaws in the design or requirements, maybe there was a new understanding of the requirements that needs to be addressed, maybe new users were identified that are going to utilize the software you are developing; anyway you put it, you are going to have to handle these changes accordingly to ensure your end product is complete. To ensure you can support changes in your requirements, you must have traceability management. Being traceable means you know where it comes from, why it's there, what will it be used for and how it will be used. Basically you want to be able to identify, document and retrieve the reason and the impact of your requirements.

To achieve traceability, you must first define a traceability policy. This is done to find the optimal cost-benefit trade-off for guiding the next steps. Afterwards, you need to establish traceability links; which means verifying what things need to be traced and what types of links you are going to use to model these relationships. This is usually done with traceability graphs. After establishing these links, you must exploit them. This is to retrieve the items along the paths of the aformentioned traceability graph to analyse the requirements. Finally, after all that work is complete, you have to keep updating your graph after any requirements changes. This way, you ensure that you are ready for any changes in requirements that will probably happen.