Before you start documenting the requirements you might want to be sure if you have captured all the required information. once you know "What information needs to be gathered?" you need to look at "What are the methods which can be used to gather this information?". Let us try and answer this question here.
There are various ways and means by which requirements for software development projects can be gathered and documented.
Methods for Gathering Requirements
- One-on-one interviews
- Group interviews
- Facilitated sessions
- Joint application development (JAD)
- Following people’s work routine / work flow
Techniques for Documenting Requirements
- Diagrams - Flow charts, Block Diagrams, Sequence Diagrams
A pictorial representation is always helps. It gives information rather quickly and better understanding. One diagram may give information for which 100's of words might not be enough.
We will not cover details about each of the diagramming technique, it would take several pages to describe them. Through this whitepaper let us just understand the techniques available for documenting requirements.
- Process Modelling & domain models
- Use cases
- Mind mapping
The process model shows the flow of information through a system. Each process transforms inputs into outputs.
A domain model is a conceptual model of a solution you are trying to build which describes the various entities involved in that system and their relationships. The domain model is created in order to document the key concepts, and the domain-vocabulary of the system being modelled. he domain model provides a structural view of the system that can be complemented by other dynamic views in Use Case models. In UML, a class diagram is used to represent the domain model.
There are templates available for making the documentation easier. One such template is a Functional Specification (FS) or systems requiement specification (SRS) document template.
Use Cases is an UML technique for documenting the interaction between the initiator of the interaction (Actor) and the system. Use Case represents a sequence of steps an Actor would take in using the system and what is the result of the particular action he takes. Actors are something or someone existing outside the system under consideration. They may be end users, other systems, or hardware devices.
Creating a Prototypes is to model a real thing. If you are trying to build a car the company would first create a prototype of the car before it is manufactured. Similarly in software development projects Prototypes usually show the look and feel of the application or screen as seen by the users (graphical user interface - GUI). Prototypes are usually created as images, html pages, psuedo coded screens.
A mind map is a diagram used to represent words, ideas, tasks etc. around a central key word or idea. Mind maps are used to generate, visualize, structure, and classify ideas, and as an aid in study, organization, problem solving, decision making, and writing.
We have covered - What information to gather and in this article how to gather requirements and documeting the requirements.