Unit 2
Unit 2
UNIT 2
Feasibility study
• The main focus of the feasibility study stage is to determine
whether it would be financially and technically feasible to
develop the software.
– Development of an overall understanding of the problem: It is
necessary to first develop an overall understanding of what the
customer requires to be developed.
– Formulation of the various possible strategies for solving the
problem:
– Evaluation of the different solution strategies: The different
identified solution schemes are analysed to evaluate their benefits
and shortcomings.
• The outcome of the feasibility study phase is that other than
deciding whether to take up a project or not, at this stage very
high-level decisions regarding the solution strategy is defined.
REQUIREMENTS ANALYSIS AND SPECIFICATION
• Task analysis: Task analysis helps the analyst to understand the nitty-gritty of
various user tasks and to represent each task as a hierarchy of subtasks
• For example:
suppose one office clerk described the following
requirement: during the final grade computation, if any
student scores a sufficiently low grade in a semester, then his
parents would need to be informed. This is clearly an
ambiguous requirement as it lacks any well defined criterion
as to what can be considered as a “sufficiently low grade”.
Inconsistency
• Two requirements are said to be inconsistent, if one of the
requirements contradicts the other.
• For example:
suppose one of the clerks gave the following
requirement— a student securing fail grades in three or more
subjects must repeat the courses over an entire semester,
and he cannot credit any other courses while repeating the
courses. Suppose another clerk expressed the following
requirement—there is no provision for any student to repeat
a semester; the student should clear the subject by taking it
as an extra subject in any later semester. There is a clear
inconsistency between the requirements given by the two
stakeholders.
Incompleteness
• An incomplete set of requirements is one in which some
requirements have been overlooked. The lack of these features
would be felt by the customer much later, possibly while using the
software.
• For Example
Suppose for the case study 4.1, one of the clerks expressed
the following—If a student secures a grade point average (GPA) of
less than 6, then the parents of the student must be intimated
about the regrettable performance through a (postal) letter as well
as through e-mail. However, on an examination of all requirements,
it was found that there is no provision by which either the postal or
e-mail address of the parents of the students can be entered into
the system. The feature that would allow entering the e-mail ids
and postal addresses of the parents of the students was missing,
thereby making the requirements incomplete.
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
• After the analyst has gathered all the required information regarding
the software to be developed, and has removed all incompleteness,
inconsistencies, and anomalies from the specification, he starts to
systematically organize the requirements in the form of an SRS
document. The SRS document usually contains all the user
requirements in a structured though an informal form.
• The high-level functions would be split into smaller sub-requirements. Each high-level
function is an instance of use of the system (use case) by the user in some way.
• Each high-level requirement typically involves accepting some data from the user
through a user interface, transforming it to the required response, and then
displaying the system response in proper format.
• The generated system response can be in several forms, e.g., display on the terminal,
a print out, some data transferred to the other systems, etc.
Non-functional requirements
• Purpose:
– This section should describe where the software would be
deployed and how the software would be used.
• Project scope:
– This section should briefly describe the overall context within
which the software is being developed. For example, the parts
of a problem that are being automated and the parts that
would need to be automated during future evolution of the
software.
• Environmental characteristics:
– This section should briefly outline the environment (hardware
and other software) with which the software will interact.
Overall description of organization of SRS document
• Product perspective: This section needs to briefly state as to whether the software
is intended to be a replacement for a certain existing systems, or it is a new
software.
• Product features: This section should summarize the major ways in which the
software would be used.
• User classes: Various user classes that are expected to use this software are
identified and described here.
• Operating environment: This section should discuss in some detail the hardware
platform on which the software would run, the operating system, and other
application software with which the developed software would interact.
• Design and implementation constraints: corporate or regulatory policies;
hardware limitations (timing requirements, memory requirements); interfaces to
other applications; specific technologies, tools, and databases to be used; specific
programming language to be used; specific communication protocols to be used;
security considerations; design conventions or programming standards.
• User documentation: This section should list out the types of user documentation,
such as user manuals, on-line help, and trouble-shooting manuals that will be
delivered to the customer along with the software.
Functional requirements for organization of SRS document
Association Relationship
• The Association Relationship represents a
communication or interaction between an actor and a
use case. It is depicted by a line connecting the actor
to the use case
Types of Association
Include Relationship
• The Include Relationship indicates that a use case includes the
functionality of another use case. It is denoted by a dashed arrow
pointing from the including use case to the included use case. This
relationship promotes modular and reusable design.
Types of Association
Extend Relationship
• The Extend Relationship illustrates that a use case can be extended by another
use case under specific conditions. It is represented by a dashed arrow with
the keyword “extend.” This relationship is useful for handling optional or
exceptional behavior.
Types of Association
Generalization Relationship
• The Generalization Relationship establishes an “is-a” connection
between two use cases, indicating that one use case is a
specialized version of another. It is represented by an arrow
pointing from the specialized use case to the general use case
Data Flow Diagrams(CO2)