0 ratings0% found this document useful (0 votes) 624 views114 pagesSoftware Engineering
Software book pdf,
Diploma 4th sem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
TABLE OF CONTENTS
a
Chapter -1 Software Development Process
(1-1) to (1-16)
1.1 Definition of Software and Software Enginee
1
1.2. Software as Layered Approach es
1.3. Characteristics of Software Enginecring
14 Types of Software
LS Software Development Framework 1
1.6 Software Process Framework 14
1.7 Process Model
7.1 Perspective Process Model
174.4 Waterfall Mod 1-5
1.74.2 RAD Model (Incremental Model)... 1-6
1.7.13 Spiral Model 1-7
1.72. Specialized Process Model 1-9
1.72.1 Component Based Development... 1-9
1.72.2 Formal Methods Model 1-9
1.8 Agile Software Development, 1-10
1.8.1. Agile Process and its Importance 1-10
182. Extreme Programming iu
183 Adaptive Software Development 12
184 SCRUM. 12
L8S_ Dynamic System Development Method
(sp) ear)
18.6 Crystal 14
1.9 Selection Criteria for Software Process Model 1 - 15
Litas
Chapter-2 Software Requirement
Engineering (2-1) to (2-18)
Part I: Software Engineering Practices
ware Engineering Practices and its Importance.
22
23
25
26
27
29
210
au
212
Core Principles 2-1
Communication Practices.
Planning Practices
Modeling Practices
Construction Practices 2.4
Software Deployment 2-3
Part Il: Requirement Engineering
1 Gathering and Analysis s
2.8.1 Inception. 2-6
2.82 Elicitation 2-6
2.83 Elaboration 2-6
2.84 Negotiation 2-6
285. Specification 2-6
2.86 Validation. 2-6
2.87 Requirement Management 2-7
Types of Requirements
2.9.1 Functional Requirements
29.1.1 Problems Associated with Requirements,
2.92 Non Functional Requirements
29.2.1 Types of Non Funetional Requirements
2-8
Domain Requirements 2-9
2.93 Difference between Functional and Non
Functional Requirements
liciting Requirements
2.10.1 Collaborative Requirements Gathering .. 2-10
2.10.2 Quality Function Deployment 2-1
2.10.3 Usage Scenarios
2.10.4 Elicitation Work Product.
Developing Use Cases
Building Requirement Models
2.121 Overall Objectives24:
Definition of Software Requirement
Specification (SRS).
2.14 Need for SRS 16
215 Format 16
2.16 Characteristics 18
Part ill: Software Requirement Specification
Lista 14
Chapter -3 Software Modelling and Design
(3-1) to (3-24)
Translating Requirement Model into
Design Model 3-1
3.1.1 Data Model 3-2
3.11.1 Data Object, Attributes and Relatia
3-2
3.1.2 Cardinality and Modality 3
3.2 Analysis Modeling 3-3
32.1 Elements of Analysis Mode!
3.3 Design Modeling 3
33.1 Fundamental Design Concept 3-4
34 Design Notations, 3-6
3.4.1 Data Flow Diagram (DED) 3-6
3.41.1 Data Flow Diagram 3-6
342. Structured Flow Chart 15
343 Decision Tables 3
38° Testing 3-18
3.5.1 Meaning and Purpose 3-18
35.2 Black Box and White Box Test
353° Leveloof Testing
3.53.1 Unit Testing
354 Test Documenta
3.54.1 Test Case Template 3-21
3.542 Test Plan
3.54.3 Introduction to Defect Report... 3-23
3.54.4 Test Summary Report 2
Chapter -4 Software Project Estimation
(4-1) to (4-20)
T
41 Management Spectrum 4s
4.1.1 The People 4-1
4.1.2 The Product 4.1
4.1.3 The Process 4
4.1.4 Project 4
42. Metrics for Size Estimation 4-2
4.2.1 LOC hased Estimation 4-2
4.2.2 Function Points, 403
43 Project Cost Estimation Approach 4-5
43.1 Overview of Heuristic Technique 4-6
432 Analytica and Empirical Estimation. .... 4-6
43.2.1 Halstead’s Sofware Science 4-6
44 COCOMO. 4-8
48 cocoMon 4-1
46° Risk Management 4e1s
4.6.1 Software Risks 4e1s
4.62 Risk Identification 4-16
4.6.3 Risk Projection 4.17
4.64 Risk Assessment a0
4.6.5 Risk Containment 4-18
4.66 RMMM Strategy 4-18
Chapter-5 Software Quality Assurance and
Security (5-1) to (5-14)
SL Project Scheduli s-1
5.1 Basic Principle s-1
5.1.2 Work Breakdown Structure s-1
$.1.3 Activity Network and Critical Path Method $ - 2
5.14. Scheduling Techniques 5-4
52 Project Tracking, 4.8
5.2.1. Time Line Chart (Gantt Chart) 5-5
5.22 Eamed Value Analysis 5-6
53 Software Quality Management Vs.
Software Quality Assurance 5-7
54 Phases of Software Quality Assurance 5-8
SS Software Quality Control. 5-9
6 Quality Evaluation Standards 5-9
56.1 Six Sigma 5-95.62. 180 for Software, -5-10
363 CMMI : c se
5.7 Software Security. ....... ; 5-12
58 Introduction to DEVOPs $12
$9 Secure Software Engineering... 5.13
Solved Sample Test Papers (S - 1) to (S -2)
Solved Sample Question Paper
(8-3) to(S -4)
T TEOMA PURIEATONT Ang atUNIT-1
Software Development Process
41] Definition of Software and Software
Eapinenring
Software : Software is nothing but a collection of
computer programs and related documents that are
intended to provide desired features, functionalities
and better performance.
Software Engineering : "Software engineering is a
discipline in which theories, methods and tools are
applied to develop professional software product.”
Attributes of Good Software
‘essential attributes of good software and those are
There are some
(1) Maintainability : Sometimes there is a need to
make some modifications in the existing
software. A good software is a software which
can be easily modified in order to meet the
changing needs of the customer.
2) Usability : It is the ability of the software being
useful. For making the software useful it is
necessary that it should have proper GUI and
documentation.
o
: The dependability is a property
that includes reliability, security and safety of
software. In other words the developed software
product should be reliable and safe to use; it
should not cause any damage ar destruction
() Efficiency + The software should be efficient in
its performance and it should not waste the
memory
Board Question
1. State any four attributes of a good software:
1.2 | Software as Layered Approach
+ Software engineering is a layered technology. Any
software can be developed using these layered
approaches, Various layers on which the technology
is based aw quality focus layer, process layer,
methods layer, tools layer.
+A disciplined quality management is a backbone of
software engineering technology.
+Process layer is a foundation of software
engineering, Basically, process defines the
framework for timely delivery of software
In method layer the actual method of,
implementation is carried out with the help of
requirement analysis, designing, coding using.
desired programming constructs and testing.
+Software tools are used to bring automation in
software development process
+Thus software engineering is a combination of
pmcess, methods, and tools for development of
quality software.
Fig. 1.24,
Board Questions
1, Explain software enginevring as a layered
technology approach.
2. Explain software engineering asa layered
technology approach with neat diagram.
CooSaltwareEaghewing
Lia] characteristics of Software Engineering
+ Software is engineered, not manufactured
1) Software development and hardware
development are two different activities
2) A good design is a backbone for both the
activities
3) Quality problems that in hardware
manufacturing phase cannot be removed easily
On the other hand, during software development
process such problems can be rectified.
4) In both the activities, developers are responsible
for producing qualitative product.
+ Software does not ware out
1) In early stage of hardware development process
the failure rate is very high because of
manufacturing defects. But after correcting such
defects the failure rate gets reduced.
2). The failure rate remains constant for some period
of time and again it starts increasing because of
environmental maladies (extreme temperature,
dusts, and vibrations).
3) On the other hand software does not get affected
from such environmental maladies. Hence ideally
it should have an “idealized curve". But due to
some undiscovered errors the failure rate is high
and drops down as soon as the errors get
corrected. Hence in failure rating of software the
“actual curve" is as shown below
Fame ane
ean ti eves
12
Software Development Process
6) Thus the failure curve looks like a spike. Thus
frequent changes in software cause it to
deteriorate,
7) Another issue with software is that there are no
spare parts for software. If hardware component
wears out it can be replaced by another
component but it is not possible in case of
software
8) Therefore software maintenance is more difficult
than the hardware maintenaneé
+ Most software is custom built rather than being.
assembled from components
1) While developing any hardware product firstly
the circuit design with desired functioning,
properties is created. Then required hardware
components such as ICs, capacitors and registers
are assembled according to the design, but this is
not done while developing software product.
2) Most of the software is custom built.
3) However, mow the software development
approach is getting changed and we look for
reusability of software components.
4) It is practiced to reuse algorithms and data
structures,
5) Today software industry is trying to make library
of reusable components, For example : In today’s
software, GUI is built using the reusable
components such as message windows, pull
down menus and many more such components.
6) The approach is getting developed to use in-built
components in the software, This stream of
software is popularly known as component
Fig. 1.3.4
4) During the life of software if any change is
made, some defects may get introduced. This
causes failuwe rate to be high,
5) Before the curve can retum to original steady
state another change is requested and again the
failure rate becomes high.
Board Questions
1. Describe the characteristics of software.
2. Define softunre. State three characteristics. of
software.
3. Explain changing nature of software.
4. What is softoare ? What are its characteristics ?
Elaborate the software characteristic
does not wear out
“Software
.
TECONICAL PUBLICATIONS” Anup rat romaSoftware Engheeting
[iw] apebaacnss
COS
Based on changing nature of software, various types
of software are defined as follows
1. System software -
© It is collection of programs written to service
other programs.
© Typical programs in this category are compiler,
editors and assemblers.
© The purpose of the system software is to
establish a communication with the hardware.
2. Application software -
© It consists of standalone programs that are
developed for specific business need,
© This software may be supported by database
systems,
3. Engineering / Scientific software -
© This softwar category has a wide range of
programs from astronomy to valcanology, from
automatic stress analysis to space shuttle orbital
dynamics and from molecular biology to
automated manufacturing.
© This software is based on complex numeric
‘computations.
4. Embedded software -
© This category consists of program that can
side within a product or system.
© Such software can be used to implement and
control features and functions for the end-user
and for the system itself
5. Web applications -
© Web application software consists of various
web pages that can be retrieved by a browser,
© The web pages can be developed using
programming languages like JAVA, PERL, CG,
HIML, DHTML
Artificial inteligence software -
© This kind of software is based on knowledge
based expert systems.
© ‘Typically, this software is useful in robotics,
expert systems, image and voice recognition,
artifical neural networks, theorem proving and
‘game playing,
Software Development Process
Board Questions
1. State and explain any four types of software.
2. Describe any four categories of sofware.
3. What is software ? What is embedded software ?
4. Elatorate any six types of software considering the
Mie ATT
5 | Software Development Framework
+ The Software Development Life Cycle (SDLC) is the
logical process of developing any system.
+Using SDLC one can develop a system which
Satisfies customer needs, can be developed within
the predefined schedule and cost
+ Normally the system analyst makes use of software
development life cycle for developing the
information systems.
‘* The SDLC is a linear of sequential model in which
‘output of previous phase is given as input to next
subsequent stage.
++ Various phases of software development life cyde
are - (Refer Fig, 15.1)
1. Feasibility study : It is initial phase of software
development framework In this phase, it is
decided whether to built the system or no
2 Requirement gathering and analysis : The basic
requirements of the software project are
identified and analysed in this phase.
Fig. 1.5.1 Phases in SDLC
T TEOMA PURIEATONT Ang atSoftware Engheering
Software Development Process
3. Design : The model of the software system is
prepared in this phase.
4. Coding or implementation : Using the software
design the coding, is done in this phase. Thus the
implementation model is prepared.
5. Testing and maintenance : The code is tested and
modified if required,
[1] ‘eters Fimnass Panos
COL
Sau sacl camo toga loca
eae
# As shown in Fig. 16.1, the software process. is
characterized by process framework activities, task
sets and umbrella activities
Fig. 1.6.1 Software process framework
Process framework activities
+ Communication
© By communicating customer
gathering is done.
Planning - Establishes engineering work plan,
describes technical risks, lists resource requirements,
work products produced and defines work
schedule.
+ Modeling - The software model is prepared by :
Analysis of requirements
Design
requirement
‘*Construction - The software design is mapped into
a code by :
© Code generation
«Testing
Deployment - The software delivered for customer
evaluation and feedback is obtained.
‘Task sets - The task set defines the actual work done
in onder to achieve the software objective. The task
set is used to adopt the framework activities and
project team requirements using
‘© Collection of software engineering, work tasks
‘© Project milestones
‘© Software quality assurance points
Umbrella activities - The umbrella activities occur
throughout the process. They focus an project
management, tracking and control. The umbrella
activities are
1. Software project tracking and control - This is
an activity in which software team can assess
Progress and take corrective action to maintain
schedule.
2 Risk management - The risks that may affect
project outcomes or quality can be analyzed.
3 Software quality assurance ~ These are activities
required to maintain software quality
4. Formal technical reviews - It is required to
assess engineering work products to uncover
and remove errors before they propagate to next
activity.
5. Software configuration management - Managing,
of configuration process when any change in the
software occurs,
6 Work product preparation and production - The
activities to create models, documents, logs,
forms and lists are carried out,
7. Reusability management - It defines criteria for
work product reuse.
8 Measurement - In this activity, the process can
be defined and collected. Also project and
Product measures are used to assist the software
team in delivering the required software,
T TEOMA AMLEATONT AnSoftware Engheering
Board Questions:
1, What do you mean by process framework ?
Explain with suitable diagram.
2. Explain the basic process framework activities.
re
+ Definition of process model : The process model
‘can be defined as the abstract representation of
process. The appropriate process model can be
chosen based on abstract representation of process.
+The software process model is also known as
Software Development Life Cycle (SDLC) model oF
software paradigm.
+ Various types of process models are -
Fig. 1.7.1 Types of process models
Perspective Process Model
17.1.1] Waterfall Mode!
+The waterfall model is also called as
‘inear-sequential model’ or ‘classic life eyele moder
Software Development Process
‘The software development starts with requirements
‘gathering phase. Then progwsses through analysis,
design, coding, testing and maintenance.
‘*Fig, 172 illustrates waterfall model.
‘+n requirement gathering and analysis phase the
basic requirements of the system must be
understood by software engineer.
*The design is an intermediate step between
requirements analysis and coding. Design focuses
‘on program attributes such as -i) Data structure
li) Software architecture
iv) Algorithmic details.
+ Coding is a step in which design is translated into
machine-readable form, Programs are created in this
phase.
Interface representation
‘Testing begins when coding is done. The purpose
of testing is to uncover errors, fix the bugs and
meet the customer requirements
‘+ Maintenance is the longest life cycle phase. When
the system is installed and put in practical use then
error may get introduced, correcting such errors and
putting it in use is the majr purpose of
maintenance activity. Similarly, enhancing system's
services as new requirements are discovered is
again maintenance of the system.
Advantages of watertall model
1. The waterfall model is simple to implement.
2. For implementation of small systems waterfall
‘model is useful
Fig. 1.7.2 Waterfall model
TECONICAL PUBLICATIONS" Anup rat romaSoftware Engheering
Disadvantages of waterfall model
1. It is difficult to follow the sequential flow in
software development process. If some changes
are made at some phases then it may eause some
confusion.
2 The requirement analysis is done initially and
sometimes it is not possible to state all the
requirements explicitly in the beginning. This
‘causes difficulty in the project.
3. The customer can see the working model of the
project only at the end. After reviewing of the
working model; if the customer gets dissatisf
then it causes serious problems.
1.7.12] RAD Model (incremental Mode)
+The RAD Model is a type of incremental process
model in which there is extremely short
development cycle.
+ When the requirements are fully understood and
the component based construction approach is
adopted then the RAD model is used.
# Using the RAD model the fully functional system
‘can be developed within 60 to 90 days.
+ Various phases in RAD are Requirements Gathering,
Analysis and Planning, Design, Build or
‘Construction and finally Deployment.
Software Development Process
‘+Multiple teams work on developing the software
system using RAD model parallely.
© In the requirements gathering phase the
developers communicate with the users of the
system and understand the business process
and requirements of the software system.
© During analysis and planning phase, the
analysis on the gathered requirements is made
and a planning for various software
development activities is done,
© During the design phase various models are
created. Those models are business model, data
‘model and process model.
© The build is an activity in which working code
is generated. This code is well tested by its
team. The functionalities developed by all the
teams are integrated to form a whole.
© Finally the deployment of all the software
components (created by various teams working
con the project) is carried out. (Refer Fig, 173)
Advantages of RAD Mode!
(1) Faster development cycle.
2) Visualization of related routines periodically.
3) Encourages user involvement.
(4) Low maintenance cost
(
\ 201090 days poiod —$§$a} J
Fig. 1.7.3 RAD model
T TEOMA ALARM AnSoftware Engheering 17
Software Development Process
Disadvantages of RAD Model |
(2) It has reduced scalability.
(2) Not appropriate when technical risks are high.
@) This model requires heavily committed developer
and customers. If commitment is lacking then
RAD projects will fail.
Difference _ between
Incremental Model
seniegiene ie
wecenty defeed_ [Ee
2 | There is ro customer
‘ita exh nce
interaction until the customer can take.
last of the of the
icmrage _ merel ingen
neal
Mele re Less human resource is
oe ee
47.4.3] Spiral Mode!
‘This model possess the iterative nature of
prototyping model and controlled and systematic
approaches of the linear sequential model.
‘This model gives efficient development of
incremental versions of software. In this model, the
software is developed in series of increments.
‘The sprial model is divided into a number of
framework activities. These framework activities are
denoted by task regions.
‘+ Usually there are six tasks regions, The spiral
model is as shown in Fig. 1.7.4.
‘*Spiral model is realistic approach to development of
large-scale systems and software. Because customer
and developer better understand the problem
statement at each evolutionary level. Also risks can
bbe identified or rectified at each such level.
‘sn the initial pass, product specification is built and
in subsequent passes around the spiral the
prototype gets developed and then more improved
versions of software gets developed.
Fig. 1.7.4 Spiral model
TECHNICAL PUBLICATIONS. An pir howeSoftware Engheering fe
Solteare Development Process
‘= During planning phase, the cast and schedule of
software can be planned and adjusted based on
feedback obtained from customer evaluation.
‘+n spital model, project entry point axis is defined,
This axis represents starting point for different
types of projects
‘+ For instance, concept development project will start
at core of spiral and will continue along the spiral
path. If the concept has to be developed into actual
project then at entry point 2 the product
development process starts. Hence entry point 2 is
«alled product development project entry point. The
development of the project can be carried out in
iterations.
‘+ The task regions can be described as :
i) Customer communication - In this region, it is
suggested to establish customer communication,
fi) Planning - All planning activities are carried out
in order to define resources time line and other
project related activities.
fii) Risk analysis - The tasks required to calculate
technical and management risks are carried out.
iv) Engineering - In this task region, tasks required
to build one or more representations of
applications are carried out.
VW) Construct and release - All the necessary tasks
‘required to construct, test, install the application
are conducted. Some tasks that are required to
provide user support are also carried out in this
task region.
vi) Customer evaluation = Customer's feedback is
cbiained and based on customer evaluation
required tasks are performed and implemented at
installation stage.
‘+n each region, number of work tasks are carried
‘out depending upon the characteristics of project.
For a small project relatively small number of work
tasks are adopted but for a complex project large
‘number of work tasks can be cartied out.
‘+n spiral model the software engineering team
moves around the spiral in a clockwise direction
beginning at the core.
Advantages of spiral model
1, This model has iterative nature. Hence
requirements can be identified at new iteration,
2 Requirement changes can be made at every stage
‘of new version,
3. Risks can be identified and reduced before they
Bet problematic.
4. The working model is available to the customer
at certain stage of iteration.
Disadvantages of spiral mode!
1, This model is based on customer communication,
If the communication is not proper then the
Product being developed is not up to the mark.
It demands considerable risk assessment. If the
risk assessment is done properly then only
successful product can be obtained.
T
TECHNICAL PUBLICATIONS. An ip Birt howindgeSoftware Engheering 19 Software Development Process
7.2 | Specialized Process Model
17.21] Component Based Development
«The commercial off-the-shelves components that are developed by the vendors aw used during the
software built,
+ These components have specialized targeted functionalities and well defined interfaces. Hence it is
easy to integrate these components into the existing software.
‘+ The component based development model makes use of various characteristics of spiral model. This
model is evolutionary in nature. That means the necessary changes can be made in the software
during the each iteration of software development cycle.
‘+ Before beginning the modeling and construction activity of software development the candidate
component must be searched and analyzed. The compenents can be simple functions or can be object
oriented classes or methods.
+ Following steps are applied for component based development -
‘Identify the component based products and analyze them for fitting in the existing application
domain,
+ Analyze the component integration issues.
+ Design the software architecture to accommodate the components
« Integrate the components into the software architecture
+ Conduct comprehensive testing for the developed software.
+ Software reusability is the major advantage of component based development,
+ The reusability reduces the development cycle time and overall cost.
17.22] Formal Methods Model
+= This model consists of the set of activities in which the formal mathematical specification is used
# The software engineers specify, develop and test the computer based systems using the mathematical
notations. The notations are specified within the formal methods,
+ Cleanroom software engineering makes use of the formal method approach.
+ The advantage of using formal methods modd is that it overcomes many problems that we encounter
in traditional software process models. Ambiguity, incompleteness and inconsistency are those
problems that can be overcome if we use formal methods model,
oy
oe
Fig. 1.7.5 Formal methods model
‘+The formal methods model offers defect-free software. However there are some drawbacks of this
model which resists it from getting used widely. These drawbacks are
+ The formal methods model is time consuming and expensive.
T TEOMA AMLCATONT Ap reSoftware Engheering 110
+ For using this model, the developers need the
strong mathematical background or some extensive
training,
If this model is chosen for development then the
‘communication with customer becomes very
difficult
Board Questions
1. Differentiate between waterfall madel and
incremental model
2. Write four drawback of RAD model
3. In which situation RAD model is applicatte ?
Give its advantages and disadvantages.
4. Explain spiral model with neat diagram.
5. With neat diagram, explain RAD model with its
advantages and disadoantages. (2 exch)
6. Explain the waterfall model.
Draw the neat labeled diagram of spiral model and
list two disadvantages of spiral model
Agile Sofware Development
+The agile processes are the light-weight methods
are people-based rather than plan-based methods.
+ The agile process forces the development team to
focus on software itself rather than design and
documentation.
+ The agile process make use of iterative method.
# The aim of agile process is to deliver the working
model of software quickly to the customer.
Agile Principles
+ There are famous 12 principles used as agility
principles -
1. Satisfy the customer by early and continuous
delivery of valuable software,
2 The changes in the requirements must be
accommodated. Even though the changes occur
Software Development Process
late in the software development process, the
agile process should help to accommodate them,
Deliver working software quite often, Within the
shorter time span deliver the working unit.
4. Business people and developers. must work
together throughput the project.
5. Motivate the people who are building the
projects. Provide the environment and support to
the development team and trust them for the job
to be done,
6 The working softwane is the primary measure of
the progress of the software development.
7. The agile software development approach
Promote the constant project development The
constant speed for the development of the
product must be maintained
& To enhance the agility there should be
continuous technical excellence.
9 Proper attention to be given to technical
excellence and good design.
10, Simplicity must be maintained while developing,
the project using this approach.
11. The teams must be the self-organizing team for
getting best architecture, requirements and
design.
12. At regular intervals the team thinks over the
issue of becoming effective. After the careful
review the team members adjusts their behavior
accordingly
1.8.1 | Agile Process and its Importance
Agile process is based on following assumptions
about software projects
1. It is difficult to predict the software requirements
in advance. Similarly the customer priority often
‘get changed.
2. It is difficult to predict how much design is
necessary before the implementation.
3, All the software development activities such as
analysis, design, construction and testing are just
difficult to predict.
T TENA PURIEATONT Ang Wa iSoftware Engen
Characteristics of agile process are -
1. Agile processes must be adaptable to technical
and environmental changes. That means if any
technological changes occur, then the agile
process must accommodate it.
2 The development of agile processes must be
incremental. That means, in each development
the increment should contain some functionality
that can be tested and verified by customer.
3. The customer feedback must be used to create
the next increment of the process.
4. The software increment must be delivered in
short span of time,
5. It must be iterative, so that each inerement can
be evaluated regularly.
Features of agile process
‘The features of agile process models
The key features of an agile process model can be
summarised as follows
+ The software itself is the important measure of the
team’s progress, rather than documentation,
+The development team has autonomy to
determine how to structure and handle the
development work.
* Changes can be easily adapted.
+ Customers can more easily examine the software
and provide feedback
Merits :
1) Customer satisfaction can be attained by rapid
and continuous delivery of useful software.
2) Customer, developer and tester interact with each
‘other during software development process.
3) Continuous attention can be given for excellent
technical design and software quality.
4) Even late changes in requirements canbe
accommodated
Demerits :
1) There is lack of emphasis on necessary designing
and documentation during software development
process.
Software Development Process
2) The project can easily get off the track if customer
is not clear about his requirements.
Difference between Prescriptive Process Model
and Agile Process Model
1s product rirted It people oriented
procs model ‘model
Process Models
‘There are various agile process models -
1, Extreme Programming
Adaptive Software Development
Dynamic System Development Method(DSDM)
Scrum
Crystal
1.8.2 | Extreme Programming
Extreme Programming (XP) is one of the best known,
agile methods. The extreme programming approach
was suggested by Kent Beck in 2000. The extreme
programming process is explained as follows -
sp RP
T TEOMA PURIEATONT Ang atSoftware Engheering 1
Software Development Process
+Customer specifies and priorities the system
requirements. Customer becomes one of the
important members of development team. The
developer and customer together prepare a
story-card in which customer needs are mentioned.
+The developer team then aims to implement the
scenarias in the story-card
* After developing the story-card the development
team breaks down the total work in small tasks.
‘The efforts and the estimated resources required for
these tasks are estimated.
+The customer priorities the stories for
implementation. If the requirement changes then
sometimes unimplemented stories have to be
discarded. Then release the complete software in
‘small and frequent releases.
+ For accommodating new changes, new story-card
must be developed.
+ Evaluate the system along with the customer,
‘This process is demonstrated by the following,
Fig. 18.1,
= Pare] mae
c= = =
Fig. 1.8.1 Extreme programming release cycle
1.8.3 | Adaptive Software Development
+The adaptive software development approach was
proposed by Jim Highsmith. This approach is useful
in building the complex software systems using
iterative apporach
+The focus of this method is on working in
collaboration and team self organization.
“eal
‘The life cycle of ASD consists of three phases of
software development and those are -
1, Speculation 2. Collaboration 3. Learning.
1. Speculation: This is an initial phase of the
adaptive software development process. In this
phase the adaptive eycle planning is conducted,
In this cycle planning mainly the types of
information is used such as - Customer's mission
statement, project constraints (delivery date, user
description, budgets and soon) and basic
requirements of the project.
2 Collaboration: The motivated people work in
collaboration to develop the desired. software
Product. In this phase collaboration among the
members of development team is a key factor.
For successful collaboration and coordination it is
necessary to have following qualities in every
individual -
© Assist each other without resentment
© Work hard.
© Posses the required skill set.
© Communicate problems and
help each other to accomplish
the given task
© Criticize without any hate
3. Learning : As the team members go on
developing the components, the emphasize is on
earning new skills and techniques. There are
three ways by which the team members learn -
© Focus groups : The feedback from the end-users
is obtained about the software component being
developed. Thus direct feedback about the
developed component can be obtained.
© Formal technical review : This review for
software components is conducted for better
quality
© Postmortems : The team analyses its own.
performance and makes appropriate
improvements.
= =|
==
Fig. 1.8.2 Adaptive software development life cyclo
1.8.4 | SCRUM
+ SCRUM is an agile process model which is used
for developing the complex software systems.
T TEOMA AMLEATONT AnSoftware Engheering 1
a
Software Development Process
+ It is a lightweight process framework that can be
used to manage and control the software
development using iterative and incremental
approach. Here the term lightweight means the
‘overhead of the process is kept as small as possible
in order to maximize productive time.
+ This model is developed by Jeff Sutherland and Ken
Schwaber in 1995,
Principles:
+ Various principles using which the SCRUM works
are as given below ~
1, There are small working teams on the software
development projects. Due to this there is
maximum — communication and minimum
overhead.
2 The tasks of people must be partitioned into
‘small and clean packets or pastitions.
3. The process must accommodate the technical oF
business changes if they occur.
4. The process should produce software
increments. These increments must be inspected,
tested, documented and built on.
5. During the product building the constant testing
and documentation must be conducted.
6 ‘The SCRUM process must produce the working,
model of the product whenever demanded oF
Development Activities
In SCRUM emphasize is on software process pattern.
‘The software process pattern defines a set of
development activities. Refer Fig. 183.
Various development activities in SCRUM are -
1, Backlog : It is basically a list of project
requirements or features that must be provided
to the customer. The items can be included in the
backlog list at any time. The product manager
analyses this list and updates the priorities as per
the requirements.
2 Sprint : These are the work units that are
needed to achieve the requirements mentioned in
the backlogs. Typically the sprints have fixed
duration or time-box (typically of 2 to 4 weeks).
‘Thus sprints allow the team members to work in
stable and short-term environment.
3. Meetings : These are 15 minutes daily meetings
to report the completed activities, obstacles and
plan for next activities. Following aw three
questions that are mainly discussed during. the
meetings
i) What are the tasks done since last meeting, ?
4) What are the issues (obstacles) that team is
facing ?
) What are the next activities that are planned ?
4 Demo : During this phase, the software
increment is delivered to the customer. The
required. implemented functionality which is demonstrated
+ Various development activities (requirements 0 the customer: Note at denn Scams orr'only
analysis, design, evolution and delivery) are guided implemented functionalities and not all the
by SCRUM principles. planned functionalities (and yet to get
implemented) of the software product.
“anew
2006
im =
Pine =,
Pree mae =
ore }
Fig. 1.8.3 SCRUM workflow activites
TECONICAL PUBLICATIONS" Anup rat romaSoftware Engineering
Roles :
1. Scrum Master = The Scrum master leads the
meeting and analyses the response of each team
member. The potential problems are discussed
and solved in the meeting with the help of
master.
2. Team Members - These are the persons working
in a team to develop the software solutions.
Advantages and Disadvantages :
Advantage:
1. SCRUM model brings transparency in project
development status.
2. It provides flexibility towards the changes.
3 There iS improved communication, minimum
‘overhead in development process
4. The productivity can be improved.
Disadvantages :
1. Some decisions are hard to track in fixed time
span.
2 There are problems to deal with non-functional
requirements of the system,
Dynamic System Development Method
ijosom)
In this agile method, the project deadline is met using,
the incremental prototyping approach. This is an
ative development process.
The Dynamic System Development Method (DSDM)
consortium has defined an agile process moda called
DSDM life cycle.
Various phases in this life cycle model aw as
follows -
1. Feasibility study : By analyzing the business
requirements and constraints the viability of thee
application is determined in this phase.
2 Business study : ‘The functional and.
informational requirements are identified and
then the business value of the application is
determined. The basic application architecture is
decided in this phase.
Software Developnent Process
3. Functional model iteration ; The incremental
approach is adopted for development. The basic
functionalities are demonstrated to the customer
by building the suitable increments. The intention
of iterative cycle is to gather additional
requirements by eliciting the requirements from
the customer as each prototype is being
developed.
4. Design and build iteration : Each prototype is
revisited during the functional model iteration to
ensure that the business requirements are
satisfied by each software component. Sometimes
if possible, the design and build activities can be
carried out in parallel.
5. Implementation : In this phase, the software
increment is placed in the working environment,
If changes are suggested oF if the end-user feels
it incomplete then the increment is placed in
iteration for further improvement.
‘The DSDM ean be combined with XP method or ASD
concepts to ereate a combination model.
1.86 | Crystal
*Cockburn and Highsmith suggested the crystal
family of agile methods,
+The primary goal of this method is to deliver useful
and working software
‘ln this model, a set of methodologies are defined
Which contains the core elements that are common
to all. These methodologies also contain rales,
process patterns, work products and practice that
are unique to each,
‘Thus the crystal family is actually a set of agile
processes that are useful for different types of
projects. The agile team has to select the memebers
‘of the enustal family that is most approapriate for
their ongoing project and environment.
Board Questions:
1. Describe Agile process madels in detail
LE s Semeser2s, Rares 4 9
2. Explain the features of Agile software development
“approach.
T TEOMA PURIEATONT Ane at ritSoftware Engheeting Las
Software Development Process
3. Differentiate bet
‘and Agile Process Model (any four points)
CE
4 Explain the ten scun, PTs
5 Whet sogile proces? TT
veen Prescriptive Process Model
1.9 | Selection Criteria for Software Process:
‘Model
Following table
particular process model can be used
shows the situations in which
Suggested model
‘© Ifa small project is to be
‘implemented.
ME the mguimments of the
wien
Waterfall model
+ Eiatng manual oyster hm be
sumed
‘If there is no need for customer
4¢ When project nsquirements are not
clear.
'¢ The system will be operated by
novice users,
‘¢ The GUL of the project is very
important.
'* Delivery of the project is expected
within a short period of time.
«The risk of long project is not
affordable.
‘» Requirements are not known and
will be knoven only with time.
«2 Project is of large size.
‘¢ When the requirements are not
properly known:
‘+ For the systems in which customer
involvement is must.
‘© The GUI of propet is important.
1 Quick delivery ofthe product is
Board Question
1. What is Waterfall Model ? State the practical
situations in which it can be used.
goo
T TEMA PUMiCARONE
(Ane frat riaSoftware Engheering 116 Software Development Process
T TEOMA AMLCATONT AnUNIT
Software Requirement
Engineering
2.1 | Software Engineering Practices and its
Importance
Definition : Software engineering practices includes
concepts, principles, methods and tools that must be
considered for planning and development of software
system.
Importance
1) By following software
every concerned entity gets involved in software
development process,
engineering practices,
2) The software engineering practices
detailed insight for
process
provide
software development
3) It acknowledges the software engineer about the
Principles that must be used during the software
development
Essence of Software Engineering Practice :
+ The problem solving activity is normally based on
following four steps
1. Understanding of the problem (Communication
and requirement analysis)
Planning for possible solution (Modelling and
design).
3. Execute the plan (Code generation),
4. Check the accuracy of the solution (Testing and
‘quality assurance),
[22] core Principles
+ David Hooker proposed seven com principles for
software engineering practice. These are as follows
Principle 1. Reason it all Exists: The software
system that you are going to develop must give
If your development is not going
to add any value to its users then don't develop such
value to its users.
system.
Principle 2. Keep it Simple, Stupid (KISS) : The
software design must be simple, easy for
understanding and easy to maintain,
Principle 3. Maintain the Vision: There should be
dlear vision for the software system to be built. The
clear vision about the system helps to develop it
without any ambiguity.
Principle 4. What you will Produce, others will
Consume : ‘The software system that ' you develop
be used by designers,
programmers, testers and so on. So whenever you
develop the system, develop in such a way that your
job will be easier for them to handle.
will users, software
Principle 5. Be Open to the Future: Develop a
system in such a way that it will have longer life
time. Develop the system in such a manner that it
will adapt any changes comfortably. Never design
the system for specific problems only, rather create it
for general purposes
has
The
Principle 6. Plan ahead for Reuse : Reusability
got vital importance in software industry
reusability can be achieved using the approaches like
‘object oriented programming. The software must be
developed and documented in such a way that
reusability can be easier one,
Principle 7. Think :
are going to develop and acquire the required
Think about the system that youSoftware Engheering 2-2
knowledge. Thoughtfully, apply above six principles
during the software development process.
Board Questions
1. State and describe various core principles of
software engineering.
[sere winter i516, nar 8)
2. List come principle of Softoare Engineering.
[23] communication Practices
CA
& carried out in order to
understand the customer requirements. Fallowing
are the principles that are used to make the
communication effective -
+ Communication
Principle 1 Listen; It is important to listen the
carefully. Ask for the
appropriately. Never interrupt hinvher annoyingly
during the narration,
customer clarifications.
Principle 2 - Prepare for communication : Do
research to understand the business domain, If you
are conducting the meeting then prepare the agenda
before the meeting,
Principle 3 - Have facilitator for communication :
The facilitator or a lender is required for the
communication for three reasons. Firstly to move the
conversation in productive direction, secondly to
resolve any conilicts and thirdly to ensure that the
designated principles and standards are being
followed.
Principle 4 - Have face-to-face communication : The
face to face communication is important to have
‘effective communication,
Principle 5 - Take notes and document the
decisions : It is important to. note down the
important points and decisions made during. the
communication
Principle 6 - Strive for collaborations : The collective
Knowledge of the members of the team is combined
to understand the system.
collaboration which help the team members in
This makes a small
Software Requtemeat Engineering
deciding the goals of the software system being
developed.
Principle 7 - Stay focused : During the
‘communication and discussion, it is possible to
switch frequently from one topic to another. The
leader o facilitator of the communication must keep
the communication focused and must make every
topic modular. The modular discussion means leave
‘one topic only after resolving the issues within in it
and then only switch to another topic.
Principle 8 - Make pictorial representation : If
something is unclear, then make a drawing or sketch
of it for understanding
Principle 9 - Move on: During the communication
just_move on by resolving the issues and by
understanding the things.
Principle 10 - Negotiate
developers and custo
There are times when the
need to negotiate on some
fof the issues such as some functionalities, delivery
date, features priorities and so on.
Board Questions
1. Briefly describe the principles of cmetunication
State and describe six principles of commumication
praaives. Co
3, What are commiction principles? Espn
their meaning.
[24] Ptanning Practices
PSST Suns is 75 nah 8]
Planning is an activity that inchides the set of
management and technical practices that software
has to follow in definite
Ptinciples of planning are -
direction. Various
Principle 1 - Understand the scope of the project :
The scope of the project help the software team what
is the goal of development.
.
TECONICAL PUBLICATIONS” Anup Wat romaSoftware Engheering
Principle 2 - Make the planning by involving the
customer : Customers specify what they exactly
want from the software system. The developer can
negotiate order of delivery,
functionalities, cost and so on, Hence customers
involvement in the project is must
some unwalistic
Principle 3 - Planning activity should be iterative :
erations help the developer to accommodate the
changes in the system plan.
Principle 4 - Make estimation based on the
knowledge : Estimation of the project represents the
efforts, and duration based on
understanding of the work. But it is always vague.
Principle 5 - Consider risk while defining the plan :
The project pln must be flexible enough to
accommodate one or more risks
Principle 6 - Be realistic : Software development can
not be 100 % perfect, there can be more or less
ambiguities and omissions, budgets and schedule
may vary, developers may make mistakes and so on.
Such things might occur during the planning of the
system,
Principle 7 - Adjust granularity according to plan :
Granularity means how much detailed is your project
plan, The fine granularity plan provides more work
plan details planed relatively short time increment.
‘On the other hand, the coarse granular plan provide
broader work task planed over long period, The plan
must be flexible enough for making the adjustments
about the granularity of the project.
Principle 8 - Ensure the quality : The plan
help the software team to induce quality in their
development.
Principle 9 - Describe the accommodated changes
The plan must help the software team to induce
required changes in their development.
Principle 10 - Track the plan frequently and make
the changes as per the requirements : The — project
plan must be adjusted frequently.
Software Requtemeat Engineering
Board Questions
1, Describe eight principles of good planning.
ho
2. Explain principles of planing
software engineering (any four)
CT
[25] Modeling Practices AIS
+Models are created for understanding, the system.
During software development, there are two kinds
‘of models that are developed - analysis model and
design model,
(1) Analysis Modeling Principles
Following are analysis modeling principles -
1. The information domain of the problem must
be represented and understood: The
information domain represents the data that
flows in and out of the system. For designing the
analysis model it is necessary to understand this,
data flow
2 The functionality of the software must be
performed : There are various types off the
functionality that must be present in the system.
Some functions can be directly beneficial to the
user. Some functions are control functions, some
functions are for transforming the data and so
3. The behavior of the software must be
represented by the model : By crating
appropriate model the behavior of the computer
system for the input submitted by the user,
interaction of the system with the external system
are represented by the software.
4. The model should be created in such a way that
it represents the details of the software in
layered or hierarchical manner : Software
systems are usually created to solve the complex
problems. The large and camplex problems are
solved using divide and conquer strategy. These
sub-problems are relatively easy to understand.
This process of dividing the problems into
smaller sub-problems is called partitioning.
5. The analysis task must move from basic
information to the implementation of the
concept : Before creating the analysis model the
information gathered is from users’ point of
practices in
.
TECONICAL PUBLICATIONS” Anup Wat romaSoftware Engheering
view. This information should be transformed in
such a way that the implementation of the
concept using the computer based system.
(2) Design Modeling Principles
Following are design modeling principles -
Analysis model must be used to create design
model : The analysis model describes the
information domain, system behavior, user
visible functionalities and so on. The design
model translates this information into the system.
architecture, Hence the elements of design model
should be traceable to analysis model
2 Consider the architecture of the system to be
built : The skeleton of the system should be
prepared before creating the actual design of the
system. For creating such architecture the
information present in the analysis model is
used,
3. Design of data is an important activity : The
data design is an important element of the
architectural design. It represents the flow of
information
4. Interfaces must be designed carefully : The
interfaces are important for communication of
two components and communication with the
extemal environment. Hence these need to be
designed carefully.
User interface designs must be as per the
needs : User interfaces basically assist the users
to interact with the system via user interfaces
Hence the design of user interface must be by
considering the users needs.
6 Component level design must be functionally
independent : Functional independence is a
‘quality that indicates the single mindedness of
software component. Ideally every component
must focus on one functionality at a time, This is
called cohesiveness of the components, During,
component level design high cohesiveness
(functionally independence) is required.
7. Components must be loosely coupled : If the
components are tightly coupled then err
propagation might get increased. The maintaining
such systems become difficult. This denotes low
coupling property of design,
Design representations must be easy to
tendemtand : The software design te used to
fetes Ob Sick, Hace inowt be ay bo
‘understand so that implementation of the system
can be effectively done.
9, Design development must be iterative : The
iterative development of the design model will
refine the work and errors can be corrected in
each iteration. But each after each iteration it
becomes difficult to keep the software design
i
Board Question
1. Explain modeling pact fv ste engineering
with princes CATES
26 | Construction Practices
+The construction practices. are based on -
Preparation principles, coding principles and
validation. principles.
(1) Proparation principles
‘These are some important principles that software
developers must follow before writing the code.
1. Firstly, understand the problem for which the
system is designed.
Know the basic design principles and concepts.
Choose appropriate programming language for
coding.
4. Select such a programming environment which is
convenient to work.
5. Prepare the set of unit tests for each component
of the code.
(2) Coding principles
‘These are some important principles that software
developers must follow while writing the code.
1. Adopt structured or modular programming
approach for the algorithm,
2 Choose the appropriate data structures.
T TEOMA AMLEATONT AnSoftware Engheering
3. By understanding the system architecture, create
appropriate intertaces,
4. Keep conditional logic very simple.
Create the nested loop in such a way that they
‘ean be tested easily
6. Give meaningful variable names.
Make the code documented by
appropriate comment statements within i
adding
& Make use of indentation and blank lines in
between the code so that appropriate visual
layout of the code can be created.
(3) Validation principles
These are some important principles that software
developers must follow after completion of writing
the code.
1. Review the code thoroughly
2. Perform unit tests and correct the errors.
3. Refactor the code.
Board Question
1, What is software coding ? State thre principles of
cade vatidation. STATE
[22] sonware Deployment
OEE A
Poiskg lg hie Tecaeos Team
tau catia cong Sartcl ous coh Dane
Supp! and 8h Redhace
fini he ie A jehtle Ualke We
iad tabs apne’ ng Bios
i; Mategl oc PSM es emi pene 4
tsi can consent eaped bs Soon oe ts
caivead nllfars podae 16 shal abbasea
areal 9A festa
So bach of ee prods
2. The delivery package must be assembled and
well tested : Provide CD-ROM or other media
to the customer containing all the executables of
the software components.
3. The support service must be ready before
delivery of the software system : Assist the
user to handle the software system
Software Requtemeat Engineering
approptiately. Moreover, if any problem or
query occurs then help the end-user to solve it
4. Appropriate instructional material must be
given to the end user : P:
instruction manuals, help material, training aids,
demo and so on for handl
properly
5. Do not deliver erroneous software : Never
rrovide the user with
1g the system
provide the low quality or erroneous software
to the customers,
Board Questions
1. Explain deployment principle
2. What is Software deployment ? State the
principles to be followed while preparing to deliver
oo ATT
3. What is meant by software deployment ?
the software
2.8 | Requirement Gathering and Analysis
+Requirement engineering is the process of
establishing the services that the customer requires
from a system. And the constraints under which it
‘operates and is developed.
Requirement Engineering Tasks
+ Requirement engineering isthe
characterized for achieving following goals -
‘© Understanding customer requirements and their
process
needs
‘© Analyzing the feasibility of the requirement
‘© Negotiating the reasonable solutions
‘© Specification of an unambiguous solution,
‘© Managing all the requirements of the project
‘© Finally transforming the requirements into the
‘operational systems
+ Requirement
following seven distinct functions -
engineering process performs
T TEOMA PURIEATONT Ang a4.
Software Engheering Sofware Reguremeat Engineering
[———— meweton 2.8.3 | Elaboration
e + Elaboration is an activity in which the information
Sees about the mquirements is expanded and
tebe ‘This information is gained dusing inception and
elicitation.
ecurement
(migineerng ——e} > Negation
| > speatncaton
}__—> vasaation
|___ rrtremant managamesd
Fig. 2.8:1 Requirement engineering tasks
Let us now discuss these tasks in detail -
2.8.1 | Inception
* The inception means specifying the beginning of
the software project. Most of the software projects
{get started due to business requirements. There may
be potential demand from the market for a
particular product and then the specific software
project needs to be developed.
+ There exist several stakeholders who define the
business ideas. Stakeholders mean an entity that
takes active participation in project development. In
software project development, the stakeholders that
are responsible for defining the ideas are business
managers, marketing people, product managers and
so on. Their role is to do rough feasibility study
and to identify the scope of the project.
+ During the inception a set of context free questions
is discussed. The purpose of inception is to -
1. Establish the basic understanding of the project
2. Find out all possible solutions and to identify
the nature of the solution.
3, Establish an effective communication between
developer and the customer,
2.8.2 | Elicitation
* Before the requirements can be analyzed and
modelled they must undergo through the process of
elicitation process. Requirements elicitation means
requirements discovery. Requirements elicitation is
very difficult task
‘= The goal of elaboration activity is to prepare a
technical model of software functions, features and
constraints.
2.8.4 | Negotiation
‘*Sometimes customer may demand for more than
that is achieved or there are certain situations in
which customer demands for something which
cannot be achieved in limited business resources.
To handle such situations requirement engineers
must convince the customers or end users by
solving various conflicts. For that purpose,
requirement engineers must ask the customers and
stakeholders to rank their requirements and then
Priority of these requirements is decided. Using
iterative approach some requirements are
liminated, combined or modified. This process
continues until the users’ satisfaction is achieved.
2.855 | Specification
+A. specification can be a written document,
mathematical or graphical model, collection of use
case scenarios or may be the prototypes.
‘+ Thewe is a need to develop a standard specification
in which requirements are presented in consistent
and understandable manner.
‘For a large system it is always better to develop the
specification using natural language and in a
waitten document form. The use of graphical
models is more useful for specifying the
requirements.
‘*Specification is the final work product of
requirement engineering process. It describes the
functions, constraints and performance of computer
based systems,
2.866 | Validation
‘+Requirement Validation is an activity in which
requirement specification is analyzed in order to
ensure that the requirements are specified
unambiguously. If any inconsistencies, omissions
T TEOMA AMLEATONT AnSoftware Engheering 2.7
and errors are identified then those are corrected oF
modified during the validation,
+The most commonly used requirement validation
mechanism is Formal Technical Review (FTR). In
FIR, the review team validates the software
requirements. The review consists of
rexjuirement engineers, customers, end users,
marketing person and so on. This review team
basically identifies conflicting requirements,
inconstandes or unrealistic requirements
2.8.7 | Requirement Management
Definition : Requirements management is the process
‘of managing changing requirements during the
team
requirements engineering process and system
development.
‘Why requirements get change 7
+ Requirements are always incomplete and
inconsistent. New requirements occur during the
process as business needs change and a better
understanding of the system is developed
+ System customers may specify the requirements
from business perspective that can conflict with end
User requirements.
+ During the development of the system, its business
and the technical environment may get changed.
| Board Questions:
1. List seven task of requirement engineering.
2. Wh reference to reguirement engineering, explain
2 Inception andi) Elication
Prserr iats na)
3. Explain flouting rquirementsengnering tasks
1 Negotiation W) Specification
4, What ane major tasks of requirement engineering ?
Prssre wat7 nas 8|
5 Explain following requtements of enginering
tua : 0 Negotiation i) Vallation
Software Requtemeat Engineering
2.9 | Types of Requirements
Functional and Non-Functional Requirements.
+Software system requirements can be dassified as
functional and non functional requirements.
2.9.1 | Functional Requirements
‘= Purpose : Functional requirements should describe
all the requived functionality or system services.
‘The customer should provide statement of service
It should be clear how the system should react to
particular inputs and how a particular system
should behave in particular situation,
‘*Functional requirements are heavily dependent
upon the type of software, expected users and the
type of system where the software is used.
‘+Functional user requirements may be high-level
statements of what the system should do but
functional system requirements should describe the
system services in detail.
+For example : Consider a library system in which
there is a single interface provided to multiple
databases. These databases are collection of articles
from different libraries. A user can search for,
download and print these articles for a personal
study.
‘+From this example we can obtain functional
requirements as,
1, The user shall be able to search either all of the
initial set of databases or select a subset from it
2. The system shall provide appropriate viewers
for the user to read documents in the document
store.
3. A unique identifier (ORDER ID) should be
allocated to every onder. This identifier can be
copied by the user to the account's permanent
storage area.
293.1] Problems Associated with Requirements
+ Requirements imprecision
1, Problems arise when rajuirements are not
precisely stated.
2. Ambiguous requirements may be interpreted in
different ways by developers and users
3. Consider meaning of term ‘appropriate viewers’
TECONICAL PUBLICATIONS” Anup Wat romaSoftware Engheering
‘Sofware Reguremeat Engieriy
‘+ User intention - Special purpose viewer for each
different document type:
+ Developer interpretation - Provide a text viewer
that shows the contents of the document,
+ Requirements completeness and consistency -
‘The requirements should be both complete and
consistent. Complete means they should include
descriptions of all facilities required. Consistent
means there should be no conflicts or
contradictions in the descriptions of the system
facilities.
Actually in practice, it is impossible to produce a
‘complete and consistent requirements document.
2.9.2 | Non Functional Requirements
+ Purpose : The non functional requirements define
‘system properties and constraints.
Various properties of a system can be : Reliability,
response time, storage requirements. And
‘constraints of the system can be : Input and output
device capability, system representations ete.
+ Process requirements may also specify programming
language or development method.
+ Non functional quirements aw more critical than
functional requirements. If the non functional
requirements do not meet then the complete system
is of no use.
292.1] Types of Non Functional Requirements
‘The classification of non functional requirements is
as given in Fig. 29.1
Product requirements
+ These requirements specify how a delivered product
should behave ina particular way. For instance:
execution speed, reliability.
Organizational requirements.
‘+The requirements which are consequences of
‘organizational policies and procedures come under
this category. For instance : Process standards used
implementation requirements,
External requirements
+ These requirements arise due to the factors that are
external to the system and its development process.
For instance : Interoperability requirements,
legislative requirements.
Performance requirements
#These requirements specify the performance or
durability of its functioning. For instance : Response
to various events at particular instance.
‘+n short, non functional requirements arise through
) User needs
li) Because of budget constraints
iit) Organizational policies
iv) The need for interoperability with other
software or hardware systems
/
\
Fig. 2.9.1 Types of non functional requirement
T TEOMA AMLCATONT AnSoftware Engheering
Software Requtemeat Engineering
¥) Because of external factors such as safety
regulations.
+ Metrics used for specifying the non functional
requirements
‘Speed Events per response time proceed
tranaations prr second
Sze Kilobytes
Reliability Mean time to failure. Rate of failure.
a ‘Occurrence availability.
“Robustness Time to restart after failure. Probability of
events causing fllure,
[Number of target statements
Ex 291: Enlist various functional and now functional
requirements for the Bank ATM system.
Sol. : Functional requirements
1. ‘There should be the facility for the customer to
insert a card.
‘The system should first validate card and PIN.
3. The system should allow the customer to deposit
amount in the bank.
4. The system should dispense the cash on
withdrawal.
5. The system should provide the printout for the
transaction.
6 The system should make the record of the
transactions made by particular customer,
7. On invalid PIN entry for three times the cant
should be retained by the system.
& The cash withdrawal is allowed in multiple of
100.
9 The cash deposition is allowed in multiple of
100.
‘The customer is allowed to transfer amount
between the two accounts.
‘The customer is allowed to know the balance
enquiry.
‘The customer is allowed to get the printout for
desired transaction.
10,
2,
13, The system should be efficient,
Non functional requirements,
1. Each of the transaction should be made within 60)
seconds. If the time limit is exceeded, then cancel
the transaction automaticaly.
If there is no response from the bank computer
after request is made within the minutes then the
card is rected with error message.
3. The bank dispenses money only after the
processing of withdrawal from the bank. That
means if sufficient fund is available in user's
account then only the withdrawal request is
processed.
4. Each bank should process the transactions from
several ATM centers at the same time.
5. The machine should be loaded with sufficient
fund in it
Domain Requirements
‘*Domain requirements are derived from the
application domain of the system instead of specific
user needs.
These requirements make use of domain
terminologies specific to the existing domain
concept
‘The domain requirements may be in the form of
new functional requirements, constraints on existing,
functional requirement or guidance on how to carry
‘out certain computation.
‘These are the specialised requirements and hence
software engineers find it difficult to corelate the
domain requirements with the system requirements.
‘It is important to specify the domain requirements
otherwise the system will not work properly.
+Example : Domain requirements for the library
system.
‘*There should be user interface for handling the
databases. These interfaces should be according to
some intemational standard.
‘If there is copyright restriction on some document
then it should get printed locally on the server. The
copies of such document should not get created.
rT
TECHNICAL PUBLICATIONS. An ip Birt howindge