In: Computer Science
“Progressive refinement of details” is the right approach when developing software requirements. Describe in 2-3 paragraphs or visually portray a good requirement development framework that will take this progressive refinement into account.
Include the following in your answer:
Definition: Requirements define the capabilities that a system must have (functional) or properties of that system (non-functional) that meet the users' needs to perform a specific set of tasks (within a defined scope).
Analyzing, Refining & Decomposing requirements include the following eleven (11) steps:
Requirement Engineering phases:
Requirement Engineering is the process of defining, documenting and maintaining the requirements. It is a process of gathering and defining service provided by the system. Requirements Engineering Process consists of the following main activities:
Requirements Elicitation:
It is related to the various ways used to gain knowledge about the
project domain and requirements. The various sources of domain
knowledge include customers, business manuals, the existing
software of same type, standards and other stakeholders of the
project.
The techniques used for requirements elicitation include
interviews, brainstorming, task analysis, Delphi technique,
prototyping, etc. Some of these are discussed here. Elicitation
does not produce formal models of the requirements understood.
Instead, it widens the domain knowledge of the analyst and thus
helps in providing input to the next stage.
Requirements specification:
This activity is used to produce formal software requirement
models. All the requirements including the functional as well as
the non-functional requirements and the constraints are specified
by these models in totality. During specification, more knowledge
about the problem may be required which can again trigger the
elicitation process.
The models used at this stage include ER diagrams, data flow
diagrams(DFDs), function decomposition diagrams(FDDs), data
dictionaries, etc.
Requirements verification and validation:
Verification: It refers to the set of tasks that
ensures that the software correctly implements a specific
function.
Validation: It refers to a different set of tasks
that ensures that the software that has been built is traceable to
customer requirements.
If requirements are not validated, errors in the requirement
definitions would propagate to the successive stages resulting in a
lot of modification and rework.
The main steps for this process include:
Requirements management:
Requirement management is the process of analyzing, documenting,
tracking, prioritizing and agreeing on the requirement and
controlling the communication to relevant stakeholders. This stage
takes care of the changing nature of requirements. It should be
ensured that the SRS is as modifiable as possible so as to
incorporate changes in requirements specified by the end users at
later stages too. Being able to modify the software as per
requirements in a systematic and controlled manner is an extremely
important part of the requirements engineering process
Validation to specification for rewrite
Design of real-time/concurrent systems requires formal approaches in order to facilitate verification and validation at each step. Methods based on formal logic have been previously suggested but they often work only in a specific domain and are generally only possible with specialized users. In an attempt to overcome these two restrictions, this paper proposes a method based on rewriting logic with user-friendly tools to increase software reliability. Different tools are proposed to support this approach: a graphical editor for the specification of the structure and the behaviour of objects, a prototype generator, and an inference engine for rule validation based on rewriting logic decidability.
Validation to analysis for re-evaluate some of the requirement
Check If The Requirements Are Related To The Project Goal
Sometimes stakeholders have their own expertise, which they expect to come in the system under development. They don’t even think whether that requirement would be relevant to the project in hand. Make sure to identify such requirements. Try to avoid all irrelevant requirements during the first phase of the project development cycle.
In short, the Requirements Specification (SRS) doc should address the following: