Page 50 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 50
Principles of Software Engineering
Notes Introduction
Before starting to design a software product, it is extremely important to understand the precise
requirements of the customer and to document them properly. In the past, many projects have
suffered because the developers started implementing something ‘without determining whether
they were building what the customer exactly wanted. Starting development activities with
improperly documented requirements is possibly the biggest mistake that one can commit
during a product development. Improperly documented requirements increase the number of
iterative changes required during the life cycle phases, and thereby push up the development
costs tremendously. They also set the ground for bitter customer-developer disputes and
protracted legal battles. Therefore, requirements analysis and specification is considered to be a
very important phase of software development and has to be undertaken with utmost care. Even
experienced analysts take considerable time to understand the exact requirements of the customer
and to document them. They know that without a clear understanding of proper documentation
of the problem, it is impossible to develop a satisfactory solution. The requirements analysis and
specification phase starts once the feasibility study phase is complete and the project is found to be
financially sound and technically feasible. The goal of the requirements analysis and specification
phase is to clearly understand the customer requirements and to systematically organize these
requirements in a specification document. This phase consists of the following two activities:
• Requirements gathering and analysis.
• Requirements specification.
To carry out the requirements gathering and analysis activity, a few members of the development
team usually visit the customer site. The engineers who gather and analyze customer requirements
and write the requirements specification document are known as System analysts in the software
industry parlance. System analysts collect data pertaining to the product to be developed
and analyze these data to conceptualize what exactly needs to be done. He then proceeds to
write the Software Requirements Specification (SRS) document. The SRS document the final
output of the requirements analysis and specification phase. Once the SRS document is ready,
it is first reviewed internally by the project team ensure that it is understandable, consistent,
unambiguous, and complete. The SRS document is then given to the customer for review.
After the customer has reviewed the document and approved it, the same forms the basis for
all future development activities also serves as a contract document between the customer and
the development organization. With this brief introduction to the requirements analysis and
specification phase, let examine the various activities performed in this phase in greater depth.
3.1 Problem Analysis
As basic aspire of problem analysis is to obtain a clear sympathetic of the needs of the clients
and the users, regularly the client and the users do not understand or know all their needs,
because the potential of the new system is often not fully appreciated. The analysts have to
ensure that the real needs of the clients and the users are uncovered, even if they do not know
them clearly. That is, the analysts are not just collecting and organizing information about the
client’s organization and its processes, but they also act as consultants who play an active role
of helping the clients and users identify their needs. For solving larger problems, the basic
principle is the time-tested principle of “divide and conquer”. For software design, partition the
problem into sub problems and then try to understand each sub problem and its relationship
to other sub problems in an effort to understand the total problem. That is goal is to divide the
problem into manageably small pieces that can be solved separately, because the cost of solving
the entire problem is more than the sum of the cost of solving all the pieces. The different pieces
cannot be entirely independent of each other, as they together form the system. The different
44 LOVELY PROFESSIONAL UNIVERSITY