Page 51 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 51
Unit 3: Software Requirements
pieces have to cooperate and communicate to solve the larger problem. Problem partitioning Notes
also aids design verification. The concepts of state and projection can sometimes also be used
effectively in the partitioning process.
1. A state of a system represents some conditions about the system. This approach is
sometimes used in real-time software or process-control software.
2. Projections, different viewpoints of the system are defined and the system is then analyzed
from these different perspectives. The different “projections” obtained are combined
to form the analysis for the complete system. Analyzing the system from the different
perspectives is often easier, as it limits and focuses the scope of the study.
Informal Approach
1. The informal approach to analysis is one where no defined methodology is used.
2. The information about the system is obtained by interaction with the client, end users,
questionnaires, study of existing documents, brainstorming etc.
3. The informal approach to analysis is used widely and can be quite useful because conceptual
modelling based approaches frequently do not model all aspects of the problem and are
not always well suited for all the problems.
4. As the SRS is to be validated and the feedback from the validation activity may require
further analysis or specification.
5. Choosing an informal approach to analysis is not very risky the errors that may be
introduced are not necessarily going to slip by the requirements phase. Hence such
approaches may be the most practical approach to analysis in some situations.
6. Various fact finding methods are used to collect detailed information about every aspect
of an existing system.
Shadowing
1. Shadowing is a technique in which we observe a user performing the tasks in the actual
work environment and ask the user any questions related to the task.
2. We typically follow the user as the user performs tasks.
3. The information obtained by using this technique was firsthand and in context.
3.2 Data Flow
Software testing is “the process of analyzing a software item to detect the differences between
existing and required conditions (that is, bugs) and to evaluate the features of the software
items”. The main goals of software testing are to reveal bugs and to ensure that the system
being developed complies with the customer’s requirements. To make testing effective, it is
recommended that test planning/development begin at the onset of the project. Software testing
techniques can be divided into two kinds: black box and white box techniques.
Black box testing is mainly a validation technique that checks to see if the product meets the
customer requirements. However, white box testing is a verification technique which uses
the source code to guide the selection of test data. Data-flow testing is a white box testing
technique that can be used to detect improper use of data values due to coding errors. Errors are
inadvertently introduced in a program by programmers. For instance, a software programmer
might use a variable without defining it. Additionally, he/she may define a variable, but not
initialize it and then use that variable in a predicate.
LOVELY PROFESSIONAL UNIVERSITY 45