Source and Sink Analysis Presentation Transcript:
1.Source and sink analysis
Once requirements are documented, an independent verification is needed to verify completeness and consistency of requirements captured through these models.
The process of verifying requirements involves careful analysis of sources as well as the sinks of information.
Sources of requirements are the origins from where the corresponding business process is initiated.
By this concept, one has to trace from a requirement back to its origins to see who is involved in its initiation.
Be it a person, an organization or an external entity that initiate some action and system responds back by completing that action.
Sink is the consumer of certain information.
It is that entity which provides a logical end to a business process.
Thus, ‘sinks of requirements’ is a concept that helps in identifying persons, organizations or external systems that gets certain functionality from the system.
These are logical ends of requirements, or where all the requirements are consumed
4.For example, we may consider a user of a software application that retrieves a report from the system.
In this case, user when reviews the report, becomes the sink of that report.
Thus when analyzing the sink of the requirement of implementing a report, the analyst would naturally point towards the user who would get that report.
5.Source and Sink Analysis
In source and sink analysis the analyst determines all the sources of requirements and where do these requirements consume (sinks).
Now evaluate a report which displays certain information, the source of this report is the data (and who enters it) that is input to be retrieved later in the form of the report.
Similarly, whoever needs this report become the sink of the report.
6.In a similar manner, at times we gather data in our application that is not used anywhere.
So the question really is what to do with that kind of unused data or the missing requirement.
Is it really redundant or is something really missing from these requirements? How to figure it out?
7.For example, we are having certain inputs (sources) to a process against which we do not know about the corresponding outputs (sinks). Such inputs are redundant if there is found no corresponding outputs. Thus these inputs can be removed as redundant.
If we probe out corresponding outputs, which could not be recorded initially, that mean these inputs were not redundant rather a few (output related) requirements were missing that we discovered during the sink analysis.
8.A stakeholder may have required the development team to develop certain report for his use.
It means we are sure of its use (sink) but not about its sources, from where the required information will be provided?
Who will input that information and using what mechanism?
9.A requirement statement that describe the report but do not list down its sources, will be an incomplete statement
The software engineer who is involved in validating such requirements, should identify all the sources against sinks or vice versa to determine complete end-to-end requirements.