This essay will discuss the importance of Requirements Analysis (RA) and Systems Analysis (SA) in successful development of software. The relationship between RA and SA will be explored to understand how each element plays its own role in contributing to the outcome of a successful software program.
Software development is the creation of a software product. It can also be referred to as ‘platform development,’ ‘application development’ or software design.’ The term "software development" can be used to refer to computer programming, which is the process of creating and maintaining the code behind the program.
In the development of a system, it will be necessary to define the elements within it. Requirements Analysis comprises all the tasks that help define the conditions to meet to complete a product, taking into account conflicting requirements and affected stakeholders, such as users or any other party that may be affected.
Systems Analysis is a phase of the systems lifecycle, where a data model is assessed. It is the methodical study of the data-processing needs of a business or department, together with recommendations for specific hardware and software installations. As a tool for problem solving, it can take a system and break it up into its constituent parts.
Whilst it can be argued that RA and SA are not mutually exclusive, they should be considered as necessarily complementary activities in the systems lifecycle. This is because SA is dependant on the completion of RA, so the requirements must be written properly. To create a successful software program, it is essential to have robust processes in both RA and SA. The 2004 Standish CHAOS Report entitled “CHAOS Chronicles,” stated that 71% of I.T. projects either failed or were late, over-budget, or lacking in expected features. In monetary terms, the report concluded that $55 billion was lost out of a total project spending of $255 billion.
The purpose of RA is to translate the defined end-user requirements into the necessary technical and more detailed requirements that help the creation of the system. Additionally, the requirements of other stakeholders involved in the development are taken into consideration. RA is one of the most critical processes, as it composes an important base for the whole development of the system. As a result, poor analysis of the requirements is one of the biggest factors of failure in software development projects. The reason for this is that the analysis may not be detailed enough for the developer to clearly understand, and therefore, the final product may come up short of the end user needs or aspirations. Also, more often than not, the client doesn’t actually know what they want at the end of the project, or even understand what a system could do for them. If a client does not know or realise what a system can do for him, it may in turn make defining a requirement more complex. Getting client requirements defined early on is extremely important. Firstly, this will help the system developer, as they can develop the system to a brief and build in the set of requirements. It is much simpler to work in accordance with a set of guidelines. Secondly, it permits the client to refine or change their requirements throughout the process. As a general rule, approximately 9 out of 10 clients don’t know precisely what they want. This makes it very hard for the developer to create something to the client’s needs and understand exactly what they want.
Throughout the process, some requirements get prioritized over others, as they become more important. Less important requirements may end up being dropped from the project, or put off for a later date. The outcome of RA should be a list of objectives that can be split up into measurable tasks that can determine the