Software Eng - Module 2
Software Eng - Module 2
Objectives
After studying this unit, you should be able to:
z Understand the requirement Engineering process
z Learn the concept of Feasibility Study
z Identify the Elicitation Techniques
z Role of Requirements Documentation
3.1 Introduction
In the software development process, requirements phase is the first software
engineering activity, which translates the ideas or views into a requirements document.
This phase is user-dominated phase. Defining and documenting the user requirements
in a concise and unambiguous manner is the first major step to achieve a high quality
product. Requirements phase encompasses a set of tasks, which helps to specify the
impact of the software on the organisation, customers’ needs, and how users will
interact with the developed software. The requirements are the basis of system design.
If requirements are not correct the end product will also contain errors. Note that
requirement activity like all other software engineering activities should be adapted to
the needs of the process, the project, the product, and the people involved in the
Notes activity. Also, the requirements should be specified at different levels of detail. This is
because requirements are meant for (such as users, managers, system engineers, and
so on). For example, managers may be interested in knowing how the system is
implemented rather than knowing the detailed features of the system. Similarly, end-
users are interested in knowing whether the specified requirements meet their desired
needs or not.
Usability requirements: Describe the ease with which users are able to operate
the software. For example, software should be able to provide access to
Notes functionality with fewer keystrokes and mouse clicks.
z Organizational requirements: These requirements are derived from the policies
and procedures of an organization. Organizational requirements comprise of the
following:
Delivery requirements: Specify when software and its documentation are to be
delivered to the user.
Implementation requirements: Describe requirements, such as programming
language and design method.
Standards requirements: Describe the process standards to be used during
software development. For example, software should be developed using
standards specified by ISO (International Organization for Standardization) and
IEEE standards.
z External requirements: These requirements include all the requirements that
affect the software or its development process externally. External requirements
comprise of the following:
Interoperability requirements: Define the way in which different computer-based
systems interact with each other in one or more organizations.
Ethical requirements: Specify the rules and regulations of the software so that
they are acceptable to users.
Legislative requirements: Ensure that software operates within the legal
jurisdiction. For example, pirated software should not be sold.
In Figure 3.4, analysis model connects system description and design model.
System description provides information about the entire functionality of system, which
is achieved by implementing software, hardware, and data. In addition, analysis model
specifies the software design, in the form of design model, which provides information
about software’s architecture, user interface, and component level structure. The
guidelines followed while creating an analysis model are listed below:
z The model should concentrate on requirements that are present within the problem
with detailed information about the problem domain. However, an analysis model
should not describe the procedure to accomplish requirements in the system.
z Every element of analysis model should help in understanding the software
requirements. This model should also describe the information domain, function and
behaviour of the system.
z The analysis model should be useful to all stakeholders because every stakeholder
uses this model in their own manner. For example, business stakeholders use this
model to validate requirements whereas software designers view this model as a
basis for design.
steps are required to refine the information. The objective of DFD is to provide an
overview of the transformations that occur to the input data within the system in
Notes order to produce an output.
DFD should not be confused with a flowchart. A DFD represents the flow of data
whereas flowchart depicts the flow of control. Also, a DFD does not depict the
information about the procedure to be used for accomplishing the task. Hence,
while making DFD, procedural details about the processes should not be shown.
DFD helps a software designer to describe the transformations taking place in the
path of data from input to output DFD comprises of four basic notations (symbols),
which help to depict information in a system. These notations are listed in Table 3.2.
Table 3.2: DFD Notations
While creating a DFD, certain guidelines are followed to depict the data flow of
system requirements effectively. These guidelines help to create DFD in an
understandable manner. The commonly followed guidelines for creating DFD are
listed below:
DFD notations should be given meaningful names. For example, verb should be
used for naming a process whereas nouns should be used for naming external
entity, data store, and data flow.
Abbreviations should be avoided in DFD notations.
Each process should be numbered uniquely but the numbering should be
consistent.
DFD should be created in an organized manner so that it is easily
understandable.
Unnecessary notations should be avoided in DFD in order to avoid complexity.
DFD should be logically consistent. For this, processes without any input or
output and any input without output should be avoided.
There should be no loops in DFD.
DFD should be refined until each process performs a simple function so that it
can be easily represented as a program component.
DFD should be organized in a series of levels so that each level provides more
detail than the previous level.
The name of a process should be carried to the next level of DFD.
Each DFD should not have more than six processes and related data stores.
The data store should be depicted at the context level where it first describes an
interface between two or more processes. Then, the data store should be
depicted again in the next level of DFD that describes the related processes.
Notes
entire requirements are elicited and analyzed. Software requirement specification (SRS)
is a formal document, which acts as a representation of software that enables the users
Notes to review whether it (SRS) is according to their requirements or not. In addition, the
requirements document includes user requirement for a system as well as detailed
specification of the system requirement.
IEEE defines software requirement specification as “a document that clearly and
precisely describes each of the essential requirements (functions, performance, design
constraints, and quality attributes) of the software and the external interfaces. Each
requirement is defined in such a way that its achievement can be objectively verified by
a prescribed method, for example, inspection, demonstration, analysis, or test.” Note
that requirement specification can be in the form of a written document, a mathematical
model, a collection of graphical models, a prototype, and so on.
Essentially, what passes from requirement analysis activity to the specification
activity is the knowledge acquired about the system. The need for maintaining
requirements document is that the modelling activity essentially focuses on the problem
structure and not its structural behaviour. While in SRS, performance constraints,
design constraints, standard compliance recovery are clearly specified in the
requirements document. This information helps in properly developed design of a
system. Various other purposes served by SRS are listed below:
z Feedback: Provides a feedback, which ensures to the user that the organization
which develops the software) understands the issues or problems to be solved and
the software behaviour necessary to address those problems.
z Decompose problem into components: Organises the information and divides
the problem into its component parts in an orderly manner.
z Validation: Uses validation strategies, applied to the requirements to acknowledge
that requirements are stated properly.
z Input to design: Contains sufficient detail in the functional system requirements to
devise a design solution.
z Basis for agreement between user and organization: Provides a complete
description of the functions to be performed by the system. In addition, it helps the
users to determine whether the specified requirements are accomplished or not.
z Reduce the development effort: Enables developers to consider user
requirements before the designing of the system commences. As a result, ‘rework’
and inconsistencies in the later stages can be reduced.
z Estimating costs and schedules: Determines the requirements of the system and
thus enable the developer to have a ‘rough’ estimate of the total cost and the
schedule of the project.
Requirements document is used by various individuals in the organization As
shown in Figure 3.7, system customers needs SRS to specify and verify whether
requirements meet the desired needs or not. In addition, SRS enables the managers to
plan for the system development processes. System engineers need requirements
document to understand what system is to be developed. These engineers also require
this document to develop validation test for the required system. Lastly, requirements
document is required by system maintenance engineers to use the requirement and the
relationship between its parts.
Requirements document has diverse users, therefore along with communicating the
requirements to the users it also has to define the requirements in precise detail for
developers and testers. In addition it should also include information about possible
changes in the system, which can help system designers to avoid restricted decisions
on design. SRS also helps maintenance engineers to adapt the system to new
requirements.
Notes
review team consists of software engineers, users, and other stakeholders who
examine the specification to ensure that the problems associated with consistency,
Notes omissions and errors detected and corrected. In addition, the review team checks
whether the work products produced during requirements phase conform to standards
specified for the process, project and the product or not.
In review meeting, each participant goes over the requirements before the meeting
starts and marks the items, which are dubious or they feel need for further clarification.
Checklists are often used for identifying such items. Checklists ensure that no source of
errors whether major or minor are overlooked by the reviewers. A ‘good’ checklist
consists of the following:
z Is the initial state of the system defined?
z Does a conflict between one requirement and the other exist?
z Are all requirements specified at the appropriate level of abstraction?
z Is the requirement necessary or does it represent an add-on feature that may not be
essentially implemented?
z Is the requirement bounded and have a clear defined meaning?
z Is each requirement feasible in the technical environment where the product or
system is to be used?
z Is testing possible, once requirement is implemented?
z Are requirements associated with performance, behaviour, and operational
characteristics clearly stated?
z Are requirement pattern used to simplify the requirements model?
z Are the requirements consistent with overall objective specified for the
system/product?
z Have all hardware resources been defined?
z Is provision for possible future modifications specified?
z Are functions included as desired by the user (and stakeholder)?
z Can the requirements be implemented in the available budget and technology?
z Are the resources of requirements or any system model (created) stated clearly?
The checklists ensure that the requirements reflect users needs and that
requirements provide ‘groundwork’ for design. Using checklist, the participants specify
the list of potential errors they have uncovered. Lastly, the requirement analyst either
agrees to the presence of errors or clarifies that no errors exist.
3.8 Summary
A requirement is defined as (1) a condition or capability needed by a user to solve a
problem or achieve an objective. (2) A condition or capability that must be met or
possessed by a system or system component to satisfy a contract, standard,
specification, or other formally imposed documents. (3) A documented representation of
a condition or capability as in (1) or (2). Guidelines act as an efficient method of
expressing requirements, which also provide a basis for software development, system
testing, and user satisfaction. Various requirements considered before starting software
development are generally classified into three categories, namely, functional
requirements, non-functional requirements, and domain requirements. The functional
requirements, also known as behavioural requirements, describe the functionality or
services that software should provide. For this, functional requirements describe the
interaction of software with its environment and specify the inputs, outputs, external
interfaces and sometimes, the functions that should not be included in the software.
The non-functional requirements, also known as quality requirements, relate to
system attributes, such as reliability and response time. Different types of non-functional
requirements. Domain requirements are derived from the application domain of a
system, instead from the needs of the users. These requirements may be new
functional requirements or specify a method to perform some particular computations.
The requirements engineering process is a series of activities that are performed in
requirements phase in order to express requirements in software requirements
specification (SRS) document. This process focuses on understanding the requirement
and its type so that an appropriate technique is determined to carry out the
requirements engineering process. Various steps of requirements engineering process
include feasibility study, requirements elicitation, requirements analysis, requirements
specification, requirements validation, and requirements management. Feasibility refers
to the evaluation of the software process, design, procedure, or plan in order to
determine whether they can be successfully accomplished in the software in the allotted
time or not. To evaluate feasibility, a feasibility study is performed, which determines
whether the solution considered to accomplish the requirements is practically workable
in the software or not. The commonly considered types of feasibility include technical
feasibility, operational feasibility, and economic feasibility. Technical feasibility assesses
the current resources (such as hardware and software) and technology, which are
required to accomplish user requirements in the software within the allocated time and
budget. Operational feasibility assesses the extent to which the required software
performs series of steps to solve business problems and user requirements. Economic
feasibility determines whether the required software is capable of generating economic
benefits for an organization or not.
A
BC University wants to automate its admission and examination system for the two
years course of masters in business administration (MBA). The main objective of
developing this software is to help the university to manage the database of
students efficiently. This software will maintain the electronic record related to personal
and academic data of each student.
1. Problem Statement
The problem statement provides an outline of the system from user’s perspective. ABC
University offers IV-semester MBA programme. This statement has three modules,
namely, registration module, examination module, and result generation module.
z Registration module: To be a part of the university, an applicant must be registered,
for which the applicant should pay the required registration fee. This fee can be paid
through demand draft or cheque drawn from a nationalized bank. After successful
registration an enrolment number is allotted to each student, which makes the student
eligible to appear in the examination.
z Examination module: The examination of the MBA programme comprises of
assignments, theory papers, practical papers, and a project.
¾ Assignments: Each subject has an associated assignment, which is compulsory
and should be submitted by the student before a specified date. Each
assignment carries 20 marks where student obtaining 40% or more (>= 8 marks)
is said to have passed.
¾ Theory papers: The theory papers can be core or elective. Core papers are
mandatory papers, while in elective papers, students have a choice to select two
out of three papers. Note that in first three semesters there are four core papers
and three elective papers out of which two papers are to be chosen. Also, the
student is required to prepare a project in the IVth semester. Each theory paper
carries 50 marks where student obtaining 40% or more (>= 20 marks) is said to
have passed.
¾ Practical papers: The practical papers are mandatory and every semester has
three of them. Each practical paper carries 30 marks where student obtaining
40% or more (>= 12 marks) is said to have passed.
¾ Project: Students need to submit a project in the IVth semester. This project
carries 100 marks where student obtaining 50% or more (>= 50 marks) is said to
have passed. Also, students are required to appear for a viva-voce session,
which will be related to the project.
z Result generation module: The result is declared on the university’s website. This
website contains mark sheets of the students who have appeared in the examination
of the said semester (for which registration fee has been paid). Note that to view the
result student can use enrolment number as password.
2. Data Flow Diagrams
The data flow diagrams of various levels are shown as follows:
Notes
Notes