Requirements analysis Guide, Meaning , Facts, Information and Description
Requirements Analysis is an important part of the software engineering project process. It is the process by which business analysts or software developers identify the needs or requirements of a client. Having identified these requirements they are then in a position to design a solution. For most of the history of software engineering it has been considered to be a relatively easy part of the process. However, in the last decade or so, it has become recognised as an vital part of the process, and is often the cause of project failure or overrun. If the requirements are wrongly identified in the first place, it makes it highly unlikely that the finished piece of software will suit the needs of the client.
| Table of contents |
|
2 Problems 3 Techniques |
The main issue of requirements analysis is to truly find out what the person wants, and find it out in detail. Only this way can a system that truly meets their needs be made.
Typical problems caused by software developers are:
Modern techniques introduced in the 1990s like UML, use cases, and Agile software development seem closer to resolving the dilemma.
Such workshops are ideally carried out off site, so that the stakeholders are not distracted. They usually have a facilitator to keep the process focused, a scribe to document the discussion, and usually make use of a projector and diagramming software. Often multiple workshops are required to bring the process to a successful conclusion.
Requirements workshops are considered to be a very useful technique which can save significant time. However, it can be hard to get all the required stakeholders together at one time.
While they are an excellent technique for modelling the existing system, they are not so useful for gaining agreement on the nature of the solution.Introduction
If you imagine a scenario, a person approaches a company and asks them to build a system to carry out some task, or automate some task for them. This is all very well, but what do they require the system to do?Problems
The problems involved with requirements analysis are increasingly well known.
Steve McConnell, in his book Rapid Development, details a number of ways users can inhibit requirements gathering:
One of the solutions to this problem has been recognising that requirements analysis is a specialist field best carried out by experts. Business or system analysts, who could bridge the gap between the business and IT worlds were seen as the answer. However, while this has helped, this has by no means solved the problem, because the techniques used to analyse requirements have not proved sufficiently effective. Techniques
Requirements Analysis can be a long and arduous process. Analysts can employ serveral techniques to get the requirements from the customer. Historically this has included such things as holding interviews, or holding focus groups (more aptly named in this context as requirements workshops), creating requirements lists and prototyping. Hopefully, through a process employing many of these methods, exactly what the user needs will be established, so that a system which meets their needs may be produced.User Interviews
User interviews are obviously necessary in requirement specification. However, in any large system a number of individuals need to be interviewed, which increases the time and cost; but more importantly almost always this reveals major discrepancies with regard to how the existing business procees works and how it should work in the future. Also different users might have differing or even contradictory requirements.Requirement workshops
Therefore where systems are complex the usual method is to use requirement workshops, where the analyst brings the main stakeholders in the system together in order to analyse the system and develop the solution.
