You are on page 1of 234

2 Agile Development

Syllabus
Agility and agile process model,
Extreme programming, Other process models ofagile developmert
and 1ools.

Contents
Model.. Summer-2018, 2019,
2.1 Agility and Agile Process
Winter-2018, . . Marks 4
. 7
2.2 Extreme Programming .. Winter-2019,
2.3 Other Process Models of Agile Development.. Summer-2016, 2018, -. - - Marks 7
... Witer-2017, 2018,
2.4 Tools for Agile Process
Software Engineering 2-2
Agile Developme
2.1 Agility and Agile Process Model prnen
GTU: Summer-2018 2019,
In 1980's the heavy weight, plan based software development apDroat
Winter-2018,Malks
h was used
software product. In this many things are d
approach too
develop any
not directly related to software product being produced. This approach done wrich were
means if requirements get changed, then rework was essential. Henco
was rigid. Tha
were proposed in 1990's which are known as agile processes. new metho
The agile processes are the light-weight methods are people-based
plan-based methods. The agile process forces the development team torather than
software itself rather than design and documentation. The agile procese ocus on
iterative method. The aim of agile process is to deliver the working model o

quickly to the customer. sotwate


For example : Extreme programming is the best known of agile process.

Conventional Software Development Methodology


A s the software project makes the progress, the cost of the changes increases
non
linearly.
I t is easy to accommodate changes during the requirement gathering stage. At thi
scenarios are modified, list of funcio
stage to accommodate the changes usage
can be extended, or written specification
be edited.
As the progresses and if the customer suggest the changes during the testing

phase of the software development life cycle then to accommodate these changs
these changes wil
the architectural design needs to be modified and ultimately
affect other phases of software development cycle. These changes are actually

costly to execute.

Agile Methodology
The agile method proponents claim that if the software development is carried ou

the agile approach then it will allow the software team to accommocat
using
changes late in a software project without dramatic cost and time impact
Such
I n other words, if the incremental delivery is combined with agile pracices
as continuous unit testing and pair programming then the cost of changes

controlled. has a

The following graph represents the how the software development approa
strong influence on the development cost due to changes suggested.

TECHNICAL PUBLICATIONSs - An up thrust for knowledge


Software Engineening 2-3 Agile Development

|Cost of changes
due to conventional
software process

Cost of changes
due to agile process

Time
Fig. 2.1.1 Influence of software development approach on agile process

2.1.1 Agility 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 late in the software development process, the agile process should help to
accommodate them.

quite often. Within the shorter time span deliver the


3. Deliver working software
working unit.
the project.
4. Business people and developers must work together throughput
and
the projects. Provide the environment
5. Motivate the people who are building
to be done.
trust them for the job
support to the development team and
measure of the progress of the software
6. The working software is the primary
development.
the constant project
7. The agile software development approach promote must be
The constant speed for the development
of the product
development.
maintained.
continuous technical excellence
8. To enhance the agility there should be
be given to technical
excellence and good design.
9. The proper attention to this
maintained while developing the project using
10. The simplicity must be

approach. best architecture,


team for getting
11. The teams must be the self-organizing
requirements and design.

TECHNICAL PUBLICATIONS An up thrust for krnowledge


2-4
Software Engineering Aglle
nvolopma
intervals the team thinks over
the issue of becoming effective
12. At regular
their behavior accordingly.
After the
careful review the team members adjusts

2.1.2 Concept of Agile Process


about software projects
Agile process is based on following assumptions
requirements in advance. Similarly the
predict
is difficult to the software
1.It
customer priority often get changed.
before the implementation
2. It is difficult to predict how much design is necessary
activities such as analysis,
design, construction anid and

3. All the software development


are just difficult to predict.
testing
Characteristics of are
Agile process
and environmental changes. Tha
processes must be adaptable to technical
1. Agile occur, then the agile process must
must
means if any technological changes
accommodate it.
in each
in each
be incremental. That
means,
2. The development of agile processes must that can be tested
should contain some functionality
development the increment
and verified by customer.
be used to create the next increment of the process.
3. The customer feedback must

increment must be
delivered in short span of time.
4. The software
increment can be evaluated regularly.
that each
5. It must be iterative, so

Review Questions
used in agility software development.
1. Discuss agility principles
2. Discuss the concept of agility.
GTU: Summer-2018, 2019, Marks 4
and explain any one with suitable examvle.
different agile process model
3. List the
GTU Winter-2018, Marks 4

2 . 2 Extreme Programming GTU: Winter-2019, Marks 7


is one or tne DEt OWn
agile process. It is
Evtreme Programming (XP) suggested hy

2000.
Kent Beck in

2 . 2 . 1 XP Values

values serve as
that
lsuos that serve as aa basis far
toOr the
the set of five work
Beck defined performed in
XP. These
values are -

UUCAL PUALICATIONS. Ar
Software Engineerning 2-6 Agile Devlopnent

1 Communication : The effective communication must be established between


software developers and stakeholders in order to convey the important concepts
and to get the important feedback.
2. Simplicity: XP focuses on the current needs instead of futures needs to
incorporate in the design. Hence the XP believes that the Software design should
be simple.
3.Feedback: The feedback for the software product can be obtained from the
developers of the software, customers, and other software team members.
adherence to certain XP practices require courage. The agile XP
4. Courage : The strict
to design the system today, recognize the future
team must be disciplined
the demand.
requirements and make the changes dramatically per
as

the above states XP values the agile team can win the
5.Respect: By following
respect of stakeholders.

2.2.2 Process

The extreme programming process is explained as follows -


Customer becomes one
Customer specifies priorities the system requirements.
and
and customer
members of development team. The developer
of the important
needs are mentioned.
story-card in which customer
together prepare a

scenarios in the story-card.


then aims to implement the
The developer team
work
team breaks down the total
After developing the story-card
the development
these tasks are
required for
efforts and the estimated
resources
in small tasks. The
estimated.
implementation. If the requirement
changes
stories for
.The customer priorities the discarded. Then release
the
stories have to be
then sometimes unimplemented
software in small and frequent releases.
complete developed.
F o r accommodating
new changes, new story-card must be
with the customer.
Evaluate, the system along 2.2.1.
This process is
demonstrated by the following Fig.
Design
Planning

Refactoring9

Coding
Testing

Release or
increment
XP process
Fig. 2.21

PUBLICATIONS
An up thrust for knowledge
TECHNICAL
Software Engineering 2-6
Agile
Various rules and practices used in extreme programming are as given
en below -
Developmen
XP Principle Descrlption
User story-cards Instead of creating a
large requirement docum.
stories are written by the customer in
need is mentioned.
which .User
us sursstts** **********************************
***************************
************** .. thev
Release planning A release plan for overall project is
the iteration plan can be prepared
prepared fromm which
iteration.
for individ
******** **
************** ****************
* * * * * *****
.

Planning Small releases The developer breaks down the user stories inta
to
releases and a plan for releasing the small
is prepared. functionaliSmall
Iterative process Divide the development work into small iterations
the iteration of nearly constant
length. Keep
Iterative
development helps in quick agile development.
wwww
or
www

wwwwwwwww.wwwwwwm
Stand up meetings The stand up meetings must be conducted for the
outcomes of the project. Current
****

*******::******* *******************************
****************************sn
********

Simple design Simple design always takes less time than the
compler
design. It is always good to keep the things simple to
meet the current requirements.
wwww ww*. *
wwwwawwwwmwww
www. w ws

Spike solution F answering the tough technical problems create the


Designing spike solutions. The goal of these solutions should be to
reduce the technical risks.
***************** ********************** ****
*********

Refactoring Refactoring means


redundancy, reductions in the
elimination of unused functionalities, redesignt
obsolete designs. This will improve the
project.
quality of the
***************************************
****u*noaomane
****************************************** ** * ******at

Customer The most essential


requirement of the XP is availability
availability of the customer. In Extreme
programming the customer
not only helps the developer team but it should be the
part of the project.
******************************************
*****************

Paired All the code to be


Coding included in the project must be code
programming by groups of two people working at the same compu
Ihis will increase the
*****
************************************ sma quality of coding
*************************************t*****i***ra****.************************

Collective code By having collective the


ownership app code Pproach

ownership everyone contributes new ideas and not any single can

person becomes the bottleneck of the project. Anyone


change any line of code to fix a bug or to refactor.
Sofwee Enginesng 2.7 hgie evelnerd

Unit testing The test-first devekopment is done in XP. The test


framework that contaíns the automated test case suite is
used to test the code. All the code must be tested using
unit testing before its release.

Continuous As soon as one task is finished integate it into the whole


Testing integration systern. Again after such integration unit testirg must be
Conducted
No overtime Working overtime lose the spirit and motivation of the
team Conduct the release planning meeting to change
the project scope or to reschedule the project.

As mentioned earlier in Extreme Programming instead of creating large requirement


is prepared. For example If a project is for creating a
douments the user story-card
software then the sample story card can be prepared as follows
banking
1. Customer makes the balance enquiry.

withdraws some amount.


2 Customer
some amount.
3. Customer deposits
Banking software checking balance, depositing and withdrawing

When the check the balance then he just enters his


customer wants to
in his account is
account number and the total amount present
displayed to him.
account. The limit
Then customer can withdraw some amount from his
If the customer crosses
of amount to be withdrawn must be specified.
amount withdrawn must be
that limit then he must be warned. The
deducted from the available balance.
in his account. The
The customer can deposit the desired amount
amount must be added to the available
balance.
deposited

various tasks and simple classes must be


Note that, the user story is broken into
clear that the useful class in the project
created for these tasks. From above example it is
customer name, address,
could be 'account'. Various data attributes can be account_n0,
check_balancel).
balance and the useful functions can be deposit(), withdraw),
Each task can be separately tested using the automated test cases.

2.2.3 Industrial XP
evolution of XP. It is
The industrial XP (XP) can be defined as the organic
and advanced technical
customer centric. It has expanded role for customers

practices

TECHNICAL PUBLICATIONS - An up thrust for knowledge


2-8

Software Engineering
to XP XP to ecreate IXP, are as folows.
to
appended

that
are
following issu
following issues are
new
practices
In this
a s s e s s m e n t ,

XP.
assessed
vailable to support
. V a r i o u s

A s s e s s n m e n t :

avai.
R e a d i n e s s
must
be
1. environment
and skilled
stakh.
older
Proper appropriate

i. contain Dro

Team
should
should
support quality
quality
programs and
contimrn
ii.
organization

The
ii.
i m p r o v e m e n t .

culture
ould
shou support new values of agile team.
u s t ho
people mnust be choser
o r g a n i z a t i o n a l

iv. The and


efficient
the agjle
2. Project
Community
:
Skilled

ss of the
of project.
the project.
The team is
is considered. The
referred as the
commAmunih
project communi
success

members
for the approach
is

when
extreme
programming

customers,
and other
stakeholders who play the vit
consists of
technologies,
The role of the community members must
success
of the project.
for the
explicitly defined.

chartering
means assessing the jusi.cation
Chartering: Project the XP team
team assess whether
3.Project business application.
That means,
as a organization.
project of the
and objectives
satisfies the goals
project the state of the proiect andd its progas
For assessing
Driven management:
4. Test measurable criteria.
In test driven driven management t
the industrial needs some XP measurable criteria.
tested with the help of these
project is reri
software increment, the specialized
After delivering the
5. Retrospectives: The intention of retrospectives is
is called as retrospective.
conducted which
industrial XP process.
improve the
The team members are inspired
and encouraged tolem
6. Continuous learning:
that can improve the quality
of the product.
new methods and techniques

Review Questions
1. Discuss XP values and XP process.
GTU:Winter-2019,Marks
Extreme Programming (XP) in detail.
2 Explain

2.3 Other Process Models of Agile Development


Winter-2017, 2018, Mars
GTU: Summer-2016, 2018, are
Various other agile process models apart from extreme programming
1. Adaptive Software Development
2. Dynamic System Development Method

3. Scrum
4. Feature Driven Development

5. Agile Modeling
TECHNICAL PUBLICATIONS An up thrust for knowledge
Sofware Engineering 2-9 Agile Development

us disctuss
them in detail.
Let

23.1 Adaptive Software Development (ASD)

.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.

The life cycle of ASD consists of three


phases of software
are
development and those

1. Speculation 2. Collaboration 3. Learning. (Refer Fig. 2.3.1)


Speculation

Release
or
software Collaboration
increment

Learning
Fig. 2.3.1 Adaptive software development life cycle
1. Speculation: This is initial
phase of the adaptive software development process.
an
In this phase the
adaptive cycle planning is conducted. In this cycle planning
mainly three types of information is used such as Customer's mission
project constraints (delivery date, user description, budgets and so on) statement,
and basic
requirements of the project.
2. Collaboration: The motivated people work collaboration to develop the desired
in
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.
O Posses the required skill set.
O Communicate problems and help each other to accomplish the given task.
o Criticize without any hate.

TECHNICAL PUBLICATIONS An up thrust for knowledge


Software Engineering 2-10
Agite Development
3. Learning: As the team members go on develoni

learning new skills and the


emphasize is on techniques, There are components, the
the team members learn - three
ways by which
groups: The feedback from
o Focus the end-t6ors
is
software component being developed. Thus obtained
direct feedback about the
developed componernt can be obtained,
about the
o Formal technical revieW This
review for
conducted for better quality. software
components
o Postmortems The team analyses its own
appropriate improvements. performance and mak
2.3.2 Dynamic System Development Method(DSDM
In this agile method, the project
met aeaaine 1s
using the the incromes
prototyping approach. This is an iterative development process. menta
The Dvnamic System Development Method (DSDM) consortium has defined an
an arile
process model called DSDM life cycle.

Various phases in this life cycle model are as follows -


1, Feasibility study: By analyzing the business
requirements and constraints
the
viability of thee
application determined in this phase.
is

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.
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 satistied 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 or if the end-user feels it incomplete then
the increment is placed in iteration for further improvement.
The DSDM can be combined with XP method or ASD concepts to create a
combination model.

TECHNICAL PUBLICATIONS An up thrust for knowledge


Software Engineering
2-11 Agile Development

2.3.3 Scrum

SCRUM is an agile process model which is used for developing the complex
software systems.
. I t is a lightweight process framework that can be used to manage and control the
iterative and incremental approach. Here the term
software development using
of the process is kept as small as possible in
lightweight means the overhead
order to maximize productive time.
in 1995.
.This model is developed by Jeff Sutherland and Ken Schwaber

Principles below
SCRUM works given are as
. Variousprinciples using which the Due to
teams on the software developmernt projects.
1. There are small working
minimum overhead.and
maximum communication
this there is
clean packets or
people must be partitioned into small and
2. The tasks of
partitions.
business changes if they occur.
must accommodate the technical or
3. The process
increments must be
software increments. These
4. The process should produce
documented and built on.
tested,
inspected, documentation must be
the constant testing and
5.
5. During the product building
conducted.
model of the product
SCRUM process
must produce the working
6 The
whenever demanded or required. and
activities (requirements analysis, design, evolution
Various development
SCRUM principles
delivery) are guided by
Development Activities software process pattern
software process pattern. The
is on
In SCRUM emphasize
activities. Refer Fig. 2.3.2.
defines a set of development
SCRUM are
-

activities in must be
Various development or
features that
requirements
list of project backlog list at any
It is basically
a
in the
1. Backlog : The items can be included
as per the
customer. the priorities
provided to the this list and updates
manager analyses
time. The product
the requirements
achieve
requirements. needed to time-box
units that are
duration o r
These the work
are have fixed
the sprints work in stable
2. Sprint: the backlogs. Typically team
members to
m e n t i o n e d in allow the
Thus sprints
of 2 to 4 weeks).
(typically
a n d s h o r t - t e r m environment.

d a tn thrust forknowiedge
Sovare Engineemy 2-12

Agialle Developmas
155 min dalih
.Whatmeetinarge
24 Hour
2.NetObsacitavcdteemesaite
plan?
30 Days

Sprint backlog
Product backlog Software
iwithnctement
Specific
Fig. 2.3.2 SCRUM workflow activities
functionalty
3. Meetings: These are 15 minutes daily
meetings to
report
obstacles and plan for next activities. Following are three the completed.
discussed during the meetings questions that

i) What are the tasks done since last meeting ?


i) What are the issues (obstacles) that team is facing?
ii) What are the next activities that are
planned?
4. Demo: During this phase, the software increment is delivered to
implemented functionality which is demonstrated to the customer.
the custome Ihe
focuses
Note that de
on only implemented functionalities and not all the
planned functionali
(and yet to get implemented) of the software product.
Roles
1. Scrum Master The Scrum master leads the
each team member. The
meeting and analyses the response o
potential problems are discussed and solved in t
meeting with the help of master.
2. Team Members These are the
persons working in a team to develop the softwa:
solutions.
Advantages and Disadvantages
Advantages
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 oCess

pl
4. The productivity can be improved.

TECHNIGAL PUBLICATIONSs - An up thrust for knowledge


Software Engineering 2113
Agile Osveoprriart

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.

2.3.4 Feature Drlven Development (FDD)


. Originally Peter Coad suggested this approach for object oriented software
engineering
Stephen Palmer and John Flesing has extended and enhanced Coad's work.
I n FDD, the feature means client valued function. It is an iterative and
incremental software development process
In FDD, the collaborative activities are carried out. These activities are called as
process as shown in Fig. 2.3.3.

Develop Build Plan Design Build

H
an a by by by
Overall feature feature feature feature
model list

List of Development Design Client valued


features plan package functionality

Fig. 2.3.3 Feature driven development life cycle

Various phases in the FDD life cycle are


1. Develop overall model: In this phase the high-level walkthrough of scope and
detailed domain walkthroughs are conducted. Later on peer reviews and
discussions are carried out on these walkthroughs and domain area models are
created. These domain area models are then merged into the overall models.
2. Build features list: Initially the list of features is created. The domain is

functionally decomposed into various subject areas. These subject areas contain the
business activities. The steps within business activity forms the categorized feature
list. Features are basically the client valued functions and can be expressed in the
form.
action> <result> <by|for| of|to> <object>

TECHNICAL PUBLICATIONS- An up thust for knowiedge


2-14
Sotwere Engineening Agile Development
For example
of the produot
"Display product-specifications
<result> cot> <object>
<Action
3. Plan by feature: After completing the building of feature list
list #hthe developr
are assigned as classes and are chi
plan is created. The features
the class owner is assigned
with appropriate classes. ammer
4. Design by feature: A design package was produced for each fa
ure.
small group of features and these featuresAcAchiuet
programmer selects
a
feature the sequence diacram
developed within two weeks. For each
5. Build by feature : Finally a complete client valued function is da.
each feature. The class owners develop the actual code for their clae eloped
ses and thie
code is promoted to the main build.

Following are some benefits of the features


1. Features represent small block of deliverable functionalities hence
can
better describe, understand and review them.
2 The features can be arranged into hierarchical business related grouping

3. The team can develop every feature within the two weeks.

4. The features are typically smaller in size and therefore can be analyzed
effectively.
5. Project planning, scheduling and tracking can be driven by features.

The FDD can be used to develop complex projects or bigger projects. It can also be
used for the developing the projects having more novice developers

2.3.5 Crystal
Cockburn and Highsmith suggested the crystal family of agile methods
The primary goal of this method is to deliver useful and working software.
I n this model, a set of methodologies are defined which contains the coreeleme
that are common to all. These methodologies also contain roles, process pane
work products and practice that are unique to each.
eful for
Thus the crystal family is actually a set of agile processes that are use
different types of projects. The agile team has to select the memebers or tne
nt.
family that is most approapriate for their ongoing project and environmenl

TECHNICAL PUBLICATIONS An up thrust for knowledge


Sofware Engineering
2-15 Agila Davelopmant

(AM)
2.3.6 Aglle Modellng
The agile modeling can be used for large and complex projects. By adopting agile

modeling techniques the scope and complexity of the project can be understood.

The problems can be partitioned effectively among the group of people. And the
quality of the working model can be assessed at every step of development.
the Agile modeling as "Agile modeling is a collection of
Scott Ambler described
values, principles and practices for modeling the software. Agile Modeling (AM)
is

a practice-based methodology for effective modeling and documentation of


software-based systems. This modeling technique is more effective and light

weight than the traditional modeling technique."


are as follows
Various features suggested by Scott Ambler for agile modeling
-

1. Specify the purpose


for the model: Prior to development of the software
model the goals and objective of the model must be known to the developer
2. Make use of multiple models : Various models can be used to gain the insight
A small
in the software product. Each model can have different perspective.
desired software
amount of set of mnodels can be useful for building the
product.
path: Use only those models that give long term value
so
3. Follow a definite
be
that the work can proceed in definite direction. Every work product must
maintained as changes occur.

not the presentation: The correct


4. Give importance to contents and
information in the model is more important than the flawed representation.

tools: It is necessary to understand


5. Understand the models and supporting
are used and the tools that are
the strengths and weaknesses of the model that
used in development process.
6. Adapt locally: The needs of modeling
team must be satisfied by adopting
appropriate modeling approach.

Review Questions
1. Explain the Scrum agile development process.
2. Write a note on Feature driven dervelopement.
3. List the diferent agile process model and explain any one with suitable example.
GTU: Summer-2016, Marks 7
4. Explain the merits and demerits of SCRUM.
GTU: Winter-2017, Marks 4; Winter-2018, Marks 7
5. Explain adaptive software development process model. GTU: Summer-2018, Marks 7

TECHNICAL PUBLICATIONS An up thrust for knowledge


Sofware Engineering 2- 16 Agile Development
2.4 Tools for Agile Process
The objective of agile development tools is to help in one or more activitiesi
agile development. Due to use of such tools the operational development softwara
can be created rapidly.
The agile tool set consists of automated
support for project planning, use case
development, and requirements gathering, code generation and testing.
The project management tools focus on preparing 'Earned value charts' instead of
preparing the Gnatt charts.
The purpose of agile tools is to enhance the environment.
Examples of various agile tools
1. Actif Extreme This tool is
:
developed by Microtool. It provides the support for
various technical activities.
2. Ideogramic UML : It is develoed by Ideogramic. This tool is used within the
agile
process.
3.Together tool set It is distributed
by Borland. It
technical activities within the XP (Extreme provides the support for the
Programming) and other agile processes.
4- 104 equirements Analysis and
Softwere Engineening
Notes Speificat

5 Software Design

Syllabus
design principal, Architectural design,
Desighriented design, Object oriented design), User interfaceComponent level design
design, applicarion
Web
design
Contents
5.1 Definition of Software Design

6.2 Design Concepts


..Summer-2016, 2019,
Winter-2017, 2018, 2019, Marks 7
5.3 Design Principles
5.4 Design Model

5.5 Architectural Design * ' *

....Summer-2018,2019,
. .

Winter-2017, 2018,.. Marks 7


56 Component Level Design. Summer-2016,2019, Marks 7
57 User Interface Design ..Summer-2012, 2014, 2016,
2018, 2019,
Winter 2017, 2018, 2019, Marks 7

5.8 Web Application Design

TECHNICAL PUBLICATIONS An up thrust


for knowledge (5-1
5-3
5-2 ware Engineering
Software Design
Sofwere Engineering Software Design
The component-level design transforms structural elements of software chitecture
5.1 Definition of Software Design The

into
procedural description of software module. The information used by the
Software design is model of software which translates
the requirements into component design is obtained from class based model, flow based model and
software product in which the details about software data structures, architonished behavioural model.
interfaces and components that are necessary to implement the system are given. ure,
.Software design is important to assess the quality of software. Because design is

only waythat we can accurately translate the user requirements into the
5.1.1 Designing within the Context of Software Engineering the
finished software product.
.Software design is at the core of software engineering and it is applied irrespective Without design unstable system may get developed. Even if some small changes
of any process model are made
then those changes will go fail Jt will become difficult to test the
After analysing and modelling the requirements, software design is done which product.The quality of the software product can not be assessed until late in the
serves as the basis for code generation and testing. software process.

Software process of translating analysis model into the


5.2 Design Concepts GTU:Summer 2016. 2019.Winter-2017, 2018.2019 Marks
designing is a
design
model.
The analysis model is manifested by scenario based, class based, flow oriented and The software design concept provides a framework for implementing the right
behavioural elements and feed the design task.
software
The classes and relationships defined by CRC index cards and other useful class are certain issues that are considered while designing the software
Following
based elements provide the basis for the data or class design.
.The architectural design defines the between major struchural Abstraction Information hiding
relationship
elements of the software. The architectural styles and design patterns can be used Modularity Functional independence
to achieve the requirements defined for the system. Architecture Refactoring
Mapping ofanalysisto deslgn model .Refinement Design dasses
asedelements Class-based
Flow orien
Usecases
Usecase diagram Control fow
Data flow
diagram oriented el men. elements
Flow-orlented
low-oneneu
elements
avioral
Component
level
design
/om
ponent
level
Pattern

Activity diagram dlagram


elements design 5.2.1 Abstraction
Swimiane Processing Scenario-based
narratives elements Intertace complexity. Software design
diagram to cope up with the
Analysis
model FlOW-onented nterface
deslgn The abstraction means an ability software design process levels
Class diagram State elements design at different levels of abstraction.
At each stage of
Analysls diagrams Behavioral
elements Architectural design
curs the software solution.
At the higher level of
abstractions should be applied to refine
Ouen
package
CRC models Olagram Flow-orlented o broad terms and in
the lower level more
ed elementCollaboration
s elements Architectura the solution should be stated in
diagrams Class-based deslgn a0StTaction,
navioral
ele

6iements Data/class diagram detailed description of the solution is given.


abstraction and
Class-based Datal class abstraction the procedural
W different levels of
elements diagram Design model n e moving through
Fig. 5.1.1
Translating analysis model into the data abstraction are created. instructions in the specitic
design model of
.The interface procedural abstraction gives the named sequence its implementation
design describes how software communicates NE mentioned by
with systems. [hese means the functionality of procedure is abstraction in which
systems interacting with each other as well as with the
are hat Search the
record is a procedural
who te det hidden. For example : name of the

design represents the flow of informationhumans


them. Thus interface each
opepe of h
e

hidden (i.e. Enter the name, compare


success! Other
wise
behaviour. The usage scenarios and specihc y entation
details are
found then
declare
and behavioural odelling if a match is
provide the information needed by models of analysis mou 8 a i n s t the
entered one,
the interface design. declare 'name not found)
for knowledge
An up thrust
TECHNICAL PUBLICATIONS An up thrust TECHNICAL PUBLICATIONS
for knowledge
Soñwere Engineering 5-4

In data abstraction the collection of data


objects represented, Ror
sotware Detgn
is
Sotware Engineering 5-5
Software Design

The total cost


procedure search the data abstraction will be record. The
attributes such record ID, name, address and
example for te
The record consists will
lso get
ncreased.

Fig. 5.2.1.
required to develop such software
product is
as
designation. of by following
anious show

shove Fig. 5.2.1 provides usefu guideline for the modularity


and that is
522 Modularity The
dularity or the undermodul while developing the software product must
The software is divided into We should dularize the software but the
separately named and
addressable commo be
avoided.

modularity must remain near


called as modules. denoted by M
the region
.Modularization should be such that the development can be planned easily
Monolithic software is hard to
grasp for the software engineer,
hence it ha software increments can be defined and delivered, changes can be more easily
become a trend
divide the software into number of
to
co-relation between the number of modules and products. But #h ere a
accommodated and long term maintenance can be carried out effectively
overall cost of the , Meyer defines five criteria that enable us to evahate a design method with respect
product. Following argument supports this idea - software
"Suppose there are two problems A and B with to its ability to define an effective modular system :
varying
greater than the complexity of the problemcomplexity.
of problem A is If the comnl
B then . Modular decomposability : A design method provides a systematic mechanism for
required solving the problem A is greater than that of
for obviously the efir decomposing the problem into sub-problems. This reduces the complexcity of the
the time problem
required by the problem A to get solved is more than that B. That also mea
of problem B:"
means problem and the modularity can be achieved.
The overall
sum of
complexity of two problems when they are combined is .Modular composability: A design method enables existing design components to
complexity
and conquer
of the
problems when considered individually. This greater than the be assembled into a new system.
strategy (according to divide and leads to divide
into smaller conquer strategy the problem is Modular understandability : A module can be understood as a standalone unit. It
subproblems and then the solution to these divide will be easier to build and easier to change.
dividing the software problem into subproblems is
obtained). Thug
modularity. It is possible to concludemanageable number of pieces leads to the
that if we subdivide concept of
Modular continuity: Small changes to the system requirements result in changes
effort required to the software to individual modules, rather than system-wide changes.
develop each software component will become
conclusion is invalid because the
indefinitely then
module and its effects
total very smal. But this Modular protection: An aberrant condition occurs within a

required for developing each module also number of modules get increased the efforts are constrained within the module.
with each effort gets increased. That means the cost
gets increased. The associated
effort(cost)required for
integration
these modules 5.2.3 Architecture
Total software
COS
Architecture means representation of overall
structure integrated system. In
of an

structure is used by various


architecture various components interact and the data of the
the
Cost to elements. Architecture provides
These components are called system
M integrate components. that important framework
activities can be
so
DaSic framework for the software system
Total number of Conducted in systematic manner.
modules must be models can be used and these are
within this region n architectural design various system
tis a region of
minimum cost Functioning
Model
this model
Region of under be represented using
Costt module Structural model Overall architecture of the systen can

modularity Region of framework and corresponding


over-modularity Framework model This model shows the
architectural

Number of applicability. the system due to


on
modules reflection of changes
Fig. 5.2.1 model shows the
Modularity and software cost
Dynamic model This
external events.

TECHNICAL
PUBLICATIONS -

An up thrust
for
PUBLICATIONS An up thrust forkowledgo
knowledge TECHNICAL
Sotware Engineening 5-6

Process model The sequence of


Software Desgn S o f n w a r eE n g i n e e n i n g
5-7
processes and their
functoning is represe
model
d in this Softwars Dasign
can make
Functional model The functional hierarchy occurring in the
system is represenh
nother. Similarly
one
changes in the desired module without
model.
by thio
other module.
affecting he
5.2 Functional Independence
524 Refinement
.The functional independence can be
.Refinement is actually a process of elaboration. achieved by
modules with single-minded approach. developing the fhunctional
.Stepwise refinement is a top-down design strategY proposed by functional independence
Niklaus WRTu .1sing functions may be compartmentalized
.The architecture of program is
a
developed by successively refining levolH interfaces are simplified. and
procedural detail. evels of
Tndependent modules are easier to maintain with reduced error
The process of program refinement is propagation
analogous to the
process of refinementand Functional independence is key to good design and design is the to
a
partitioning that is used during requirements analysis. quality.
key software
Abstraction and refinement are
complementary
that i n the abstraction low-level concepts. The major difference , The major benefit of functional independence is in achieving effective
details are suppressed. Refinement helps theis modularity.
designer to elaborate low-level details. . The functional independence is assessed using two qualitative criteria
Cohesion
and coupling.
525 Pattem
5271 Cohesion
According to Brad Appleton the design patern can be defined as With the help of cohesion the information
nugget (something valuable) of insight which It is a named hiding can be done.
conveys the essence of proven solution t A cohesive module performs only "one task" in software procedure with little
a
recurring problem within certain context.
a
interaction with other modules. In other words cohesive module
In other
words, design pattern acts as a performs only
one thing.
occurring in specific domain. Using design design solution for a particular problem
Pattern can be reusable. pattern designer can determine whether Different types of cohesion are:
1. Coincidentally cohesive The modules in which the set of tasks are related
Pattern can be used for current
work. with each other loosely then such modules are called coincidentally cohesive.
.Pattern can be used to solve 2. Logically cohesive - A module that performs the tasks that are logically
similar kind of
problem with different functionality. related with each other is called logically cohesive.
5.2.6 Infomation Hiding 3. Temporal cohesion The module in which the tasks need to be executed in
Information hiding is one of the Some specific time span is called temporal ohesive.
term information important property of effective modular design ne
hiding means the modules 4 Procedural cohesion When processing elements of a module are
related with
information contained in are
designed in such a way
module which does not
one module cannot be
accessible u one another and must be executed in some specific order
then such module is
to the other module
amount of information require this information). Due to information hiding only imuit called procedural cohesive.
can be passed module share
used by other module. to other module or to local ructure
data suru Communicational cohesion When the processing elements of a
any cohesive.
The the data then such module is communicational
advantage of information hiding is h e goal is to achieve high cohesion for modules in the system.
information hiding some data and basically in
testing and maintenanee Due to
another module. This procedures of mfrom
avoids introduction of module can be hiae
one
ultimately errors module from onE module

TECHNICAL PUBLICATIONS -
An up thrust for knowledge TECHNICAL PUBLICATIONS -An up thrust forknowledge
Sotwere Engineering 5-8
5-9
Software Design Sofware Engineening

oftware Design
5272 Coupling are-

Coupling effectively represents how the modules can be Benefits of refactoring


module or with the outside world.
"connected with other ,The
redundancy can be achieved.

Inefficient algorithms can be eliminated or can be replaced by efficient


Coupling is a measure of interconnection among modules in a
program struchs constructed
Poorly constructed or inaccurate data structures can be
one

acture. removed
Coupling depends on the interface complexity between modules. failures can be rectified.
or
replaced.
,Other design
.The goal is to strive for lowest possible coupling among modules The
decision of refactori oring particular component is taken
by the
design. in softMa software system.
designer of the

.The property of good coupling is that it should reduce


or avoid
and ripple effects. It should also reduce the cost in change im act ReviewQuestions
program changes, testing and
maintenance.
1. Explain the following design concepts.
.Various types of coupling are: Modularity ü) Architecture ii) Refinement
i) Data coupling The data What do you understand by refactoring ? Groe the
coupling is possible by parameter passing or importance of refactoring in
improoing the
interaction. data quality of software.
3. What are the characteristics of a well formed design class ?
) Control coupling The modules share related control data
in control 4 Diferentiate between abstraction and refinement.
coupling 5. Explain the dierent design concepts.
i) Common coupling In common
GTU
Summer-2016 Marks 7
- coupling common data 6. Compare coupling and cohesion.
Explain dijferent types of coupling and its efects softuaze
on
shared among the modules. or a
global data is modules. GTU: Winter-2017. Marks 4. Winter- 2018. Marks 7
iv) Content Define coupling and cohesion. What is the diference betwen cohesion andcoupling
coupling Content
data or control information coupling
occurs when
module makes
one
use of GTU: Summer-2019 Marks 1
maintained in another module. 8. Compare coupling and cohesion. GTU Winter-2019. Marks 3
Sr.NNo.
Coupling Cohesion
Coupling represents how the modules 5.3 Design Principles
connected with are In cohesion, the
the outside world.
other modules or with cohesive module Davis suggested a set of principles for software design as :
performs only one thing
With The design process should not suffer from "tunnel vision".
coupling interface
complexity is With
decided. cohesion, data hiding can be done. The design should be traceable to the analysis model.
3. The goal of The design should not reinvent the wheel
coupling is to achieve lowest
The goal of
coupling cohesion is to achieve hign The design should "minimize the intellectual distance" between the software
cohesion.
Various types of and the problem in the real world.
Data
couplings are -

Various types of
Commoncoupling, Control
The design should exhibit uniformity and integration.
Coincidental cohesion, cohesion
are
coupling and Content coupling, Logical
coupling. cohesion
Temporal cohesion, Procedural cohesion The design should be structured to accommodate change.
and Communicational cohesion.
The design should be structured to degrade gently.
5.2.8 Refactoring Design is not coding and coding is not design.

Refactoring is The design should be assessed for quality.


behaviour. Fowlernecessary
for
has defined simplifying the design without design should be reviewed to minimize concepthual
errors.
The
in such a changing the funchonm o
way that the externalrefactoring as "the process of changing a
behaviour of the software
design do not get changed, syst rer
the internal
structure gets Review Question
improved". nowE
TECHNICAL State and explain any four design principles.
PUBLICATIONS -

An up thrust for
knowledge TECHNICAL PUBLICATIONS
An up thrust for knowedge
5- 10 5-11
Sotwere Engineering
Software Design S o f w e r eE n g i n e e r i n g Softwere Design

5.4 Design Model Data Design Element


54.1
.The process dimension denotes that the design model evolutes due t . he data design represents the high level of abstraction. This data represented at
software tasks that get executed as the part of software process. various m level is refined gradually for implementing the computer based system. The
The abstract dimension represents level of details as each element da oreat impact on the architecture of software systerns. Hence structure of data is
element of analysis data has
important factor in software design. Data appears in the form of data structures
model is transformed into design equivalent.
at the program component level. At the applícation level it appears as
In following Fig. 5.4.1 the dashed line shows the boundary between analvsis18 and n algorithms
dhe database and at the business level it appears as data warehouse and data mining,
design model.
Thus data plays an important role in software design.
Class diagrams Use cases
|Class diagraji Requlrements
High Analysis package Use case Analysis package
Constralnts
CRC models
CRC models diagrams
Activity diagram Collaboraion
teroperability
targels aand 5.4.2 Architectural Design Element
dorabon
rarms Swimlanee diagrams configuration
D

CFD
diagram
Collaboration
DFD
CFO Thearchitectural desigm gives the layout for overall view of the software
Processing
naratves
Olagram
State diagram
Processing
narratives Analysis
Architectural model can be built using following sources
Sequence State diagrams model
.Data flow models or class diagrams
diagram Sequence Information obtained from application domain
- diagra
Architectural patterns and styles.
Design class
realzations
Technica
subsysten Interface design
Component
Design Elements
collaboration
diagrams
Navigation deslgn
GUI design
diagrams Deslgn class 5.4.3 Interface
Design classes realization
Activity diagram the software system. In interface
Colfaboraton Interface Design represents design of
the detailed
Sequence dlagram other component of the system is
design how information flows from one component
to
diagram Component
dlagram
Design classes
depicted. Typically there are three types of interfaces-
Design
Refined to: Acivity diagram odel
Component Sequenc
dlagram User interface: By this interface riinteracts
igram
Design classes with the system. For example GUI
-

Activity diagram
Sequence diagram Deployment
grams External Interface : This is the interface of
the
Low components with the extemal entities.
Architecture system
alements nterface
eieS
Component levelDeployment level For example - Networking

Linterfac interface Internal interface: This is an interface which represents


the inter component communicaton of the system. For
Process each other
example- Two classes can communicate with
dimension

Fig. 5.4.1 Dimension of design model by operations or by passing


messages

.In both the


analysisand design models the
same UML
analysis model the UML diagrams are used but Flg.5.4.2
diagrams diagrams are abstract
and in design model
are refined and elaborated.
Moreover in design
tne
implementation specific details are provided. model 5.4.4 Component Level Design Elements
Along the horizontal axis various of the software system along
elements such more detailed design
element, component level elements architecture element, as terface
necomponent level design is describe the internal
details
and level design elements
not
these elements have todeployment level elements are give specifications. The component data
necessary that e
local data objects, required
be level design all the
preliminary architecture design developed First
of all the in sequential In component
manner and
e component.
details and procedural
details are exposed.
component level
design occur in parallel. Theoccurs then interface aes ruchures and algorithmic
after the
completions of complete design model. deployment level design
TECHNICAL An up thrust for knowiede
PUBLICATIONS -
An up thrust for TECHNICAL
PUBLICATIONS
-

knowledge
12 5-13
Sofware Engineening Software Design SoftwereEngineering
Software Desig

that
Component a l of architectural design is to establish the overall structure of software
Fig. 5.4.3 represents The go
of Architectural design represents the ink between design spedification and actual
cornponent order
makes use Interface system. Archited

another component form. design process.

The order is dependent Order TArchitecture is a structure of systems which consists of various components,
Form
form.
upon the component externally visible properties of these components and the inter-relationship among thes
These two objects can be
interfaced with each other. Dependency
relation
Components.

of software archltecture
Fig. 5.4.3 Components ay aab Importance
why the software architecture is important?
There are three reasons
so

5.4.5 Deployment Level Design Elements the


representation of the
computer based system that is
1. Software architecture gives
The deployment level design elements indicate how software functions and software
tothe software development process. This helps in clear specification/understanding
be built. Using this system model even the stakeholders can take active part in
subsystems are assigned to the physical computing environment of the software product
For example web browsers may work in mobile phoned or
they may run on client PC of requirements
or can execute on server machines.
decisions can be taken using software architecture and hence
2. Some early design
and operations remain under control.
system performance
Mobilephone clear cut idea about the computer based system
Client-PC 3. The software architecture gives a

which is to be built.
Web
Web
browser
browser
55.1.1 Structural Partitloning
The program structure can be partitioned horizontally or vertically.

Horizontal partitioning
branches of the modular hierarchy for each
Horizontal partitioning defines separate
Server machine major program function.

Decision maker
Web
browser

Fig. 5.4.4
Deployment diagram
5.5 Architectural Design
GTU: Summer-2018, 2019, Winter-2017,
2018, Marks
5.5.1 Software Architecture
The architectural design is the
up the system and framework design process for
identifying the subsystems mak
for worker
subsystem control and communication.
5.5.1 Hortzontal partioning
Fig.
TECHNICAL PUBLICATIONS An up thrust for PUBLICATIONS
An up thrust for knowledge
knowledge TECHNICAL
Sotware Engineering
5-14 Sofware Engineering 5-15
Software Design Software Desg
Horizontal partitioning can be done by partitioning system into 12 Comparison between Hortzontal and Vertcal Partiton
5512

transformation (processing) and output. input, data


Horlzontal partitioning Vertical partitioning
In horizontal partitioning the design making modules are at the
the ton
top of the partitioning can be done by Vertical
architecture Horizontal
into:
partitioning suggests the control and
partitioning systerm input, data work should be distributed
top-down in
transformation (processing), and output
Advantages of horlzontal partition program structure.

1. These are easy to test, maintain and extend. This kind of partitioning have fewer side Vertical parditioning define separate branches of
Hects in change propagation or error the module hierarchy for each major function.
2. They have fewer side effects in change propagation or error propagation. propagation.
Hence these are easy to maintain the changes.
Disadvantage of horizontal partition
More data has to be passed across module interfaces which complicate the 5.5.2 Architectural Style
overall
control of program flow.
.The architectural model or style is a pattern for creating the system architecture
Vertical parttioning for given problem. However, most of the large systems are heterogeneous and do
Vertical the control and work should be distributed not follow single architectural style.
partitioning suggests top-down in
program structure. .System categories define the architectural style
1. Components: They perform a function.
Function 1 Function 2 Function 3ofal rourve
For example: Database, simple computational modules, clients, servers and filters.
2. Connectors: Enable communications. They define how the components
communicate, co-ordinate and co-operate.

For example: Call, event broadcasting pipes


3. Constraints: Define how the system can be integrated.
determine a system's overall properties from
4. Semantic models: Specify how to
the properties of its parts.
The commonly used architectural styles are
1. Data centered architectures.

2. Data flow architectures.

3. Call and retum architectures.


Fig. 5.5.2 Vertical partitdoning 4. Object oriented architectures
In vertical partitioning
5. Layered architectures
.Define separate branches of the module hierarchy for
.Use control modules to
each major function. 5521 Data Centered Architectures architecture and
co-ordinate communication between functions. the centre of the
the data store lies at operations.
architecture
add, delete and modify
this
Advantages of vertical partition
n

it by performing cient
Sometime the
1. These are other components frequently
access
to central repository.
easy to maintain the The Cent software requests for the data data or

2. They reduce the


changes. central repository
without any change
in

from the
change impact and error propagation. E
ccesses the data
actions
wthout any change in actions of software
for knowledge
PUBLIGATIONS
An up thust
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust
for knowledge
5-16 5- 17
Sotwere Engineering otware Des Soltware Engineenng
Saftware Design

componen to another. These filters work independently without a bothering about


Client Client one
software of neighbouring filter.
software
the working
E the data flow degenerates into a single line of trarnsforms, it is termed as batch

sequential.

Client
software
Data store- Client
software FierFRerFiEF F
Fig. 5.5.5 Batch sequential

Client
In this patterm the transformation is applied on the batch of data
Client
software software
100 Comparison between Data Flow and Data Center Architecture
Fig. 5.5.3 Data centered architecture
Data flow architecture Data centered architecture
Data centered architecture posses the property of interchangeability. In this architecture series of transformations In this architecture the data store lies at the
Interchangeability means any component from the architecture can be replaced by a new
are applied to produce output data. center of the architecture and other
component without affecting the working of other components. components frequently access it by performing
add, delete, and modify operations
In data centered architecture the data can be passed among the
In data
components. In this architecture the set of components are In data centered architecture the components
centered architecture, called filters and are connected by pipes to are the database elements such as tables and
transform data from one component to queries. And the communication among these
Components are : Database elements such as tables, components takes place with the help of
queries. another
Communication are: By relationships relationship.
Constraints are: Client software has to The filters normally work independently The components of this architecture perform
request ocentral data store for information. without bothering about working of with the central repository without affecting
5.5.22 Data Flow Archtectures neighboring filter. the working of other componentss

In this architecture
series of transformations Client Client
The set of
components called filters
are
applied to produce the output ata iterFiterh Software Soware
are connected by pipes to transform the data rom

FiterFiter Fiter Flter

FRerFer Faor F Pipes Fae-Ea


Client
sotware Data store
- Client
software

Client
Client
Fiter sotware Software

Pipes Fiter Fiter


5.5.2.3 Call and Return Architecture
scaled. The program struchure is
modiied
ne
program structure can be easily or

architecture how modules call each


Lilter
5zed into modules within the program. In this
Fig.5.5.4 Pipes and flters er. The program structure decomposes the function
into control hierarchy where a
naun invokes number of components.
TECHNICAL program program
PUBLICATIONs -

An up thrust
for for knowledge
knowledge TECHNICAL PUBLICATIONS An up thnust
5-18
Softwere Engineering Softwere Design Sofware Engineering 5-19
ware Design
hierarchical control tor call and return is represented oriented decomposition is concermed with identifying objects classes, their
In this architecture the The
hiect

Main
and
attribut
the corresponding operations. There is some control
models used to
the object operations.
Fan out co-ordinate
55.25 Layered Architecture
Controller
sub programs The layered architecture is composed
of different
layers. Each layer is intended to
nerform specific operations
machine instruction set can be
so
generated. Various
components in each layer perform specific operations.
Application
sub programs
User interface
layer
cation
ayer

Ulity
ayer

Fan in
Core
ayer

Fig. 5.5.6 Call and return Archltecture


5524 Object Oriented Architecture
In this architecture the system isdecomposed into number of interacting objects.
These objects encapsulate data and the corresponding operations that must be
applied Components
to manipulate the data.
perfoming
vanous operatons

Class name Class name Fig. 5.5.8 Layer architecture of components


A
B
I h e outer layer is responsible for performing the user interface operations while
Attributes
Attributes the components in the inner layer perform operating system interfaces.

Operations Messages The components in intermediate layer perform utility services and application
Operations
software functions.

Messages Review Questions


Messages Messages
(Parameter What is architectural design ? Enlist diferent style and patterns of architecture.
Class name passing) iks 4
Class name GTU: Winter-2017,2018, Marks 7. Summer-20
softriure.
What is software architecture ? Erplain any two architectural styles of
Attributes 201 Marks 4
Attributes GTU: Su
Operations Messages
Operations 5.6 Component Level Design GTU: Summer-2016, 2019. Marks 7
After data,
as procedural design.
5.5.7 Omponent level design is also called
Object oriented architecture architectural and interface design the component
level design occus.

TECHNICAL PUBLICATIONS for knowledge


An up thrust
for knowledge TECHNICAL PUBLICATIONS
-
An up thrust
5-21
Sotware Cesign
Softwere Design
SofwareEngineering
20
Software Engineering

design is to translate el into


design model into operational Name Description
.The goal of component level
software. The primary name of data or control item, the data store or
Graphical, tabular or text based notations are used to create a set of tructured Name external entity.
-

constructs. These structured programming constructs translate each Other name used for the Name
programming
design model. Hence the work of CO
product of component Alias
component into procedural or how is It describes where the data or control item is used. It also
procedural design model.
Where-used
level design is describes how that item is used(that means input to the process,
used output to the process)
.The goal of software design strategy is to organize the program modules in such a
can be changed easily if needed.
that they can be easily developed and
way The used in data dictionary are
software design The notations
commonly used strategies of
are
most
1. Function oriented design 2. Object oriented design Data construct Notation Meaning
s composed of
56.1 Function Oriented Design Composition
And
In function oriented design, the design of the software system is divided into various Sequence
function. Thus is Selection Or
interacting units. Each unit then becomes a system designed from
functional point of view. This approach is more used for developing smaller systems Repetition Repetition for n times
m
But not preferred for larger systems because it is difficult to know what large systems
Optional data
do.
Commented information
Various models that can be created in function oriented design are
i) Data flow diagrams i) Data dictionaries For example
"passenger" can be entered in
ii) Structure charts iv) Pseudo codes. Consider the some reservation system. The data item

i) Data flow diagram the data dictionary as

We have discussed Data flow diagrams in section 4.14.1. passenger


name

ii) Data Dictionaries none


alias:
where used
The data passenger's query (input)
dictionary be defined as an
can
organized collection of all the data elements of te how used :
system with precise and rigorous definitions so that user and system analyst will have a ticket (output)
common
understanding of inputs, outputs, components of stores and intermediate calculations. description passenger_name +

passenger passenger_address

The data models less


are
detail hence there is a need for data
dictionary. passenger_name =
p a s s e n g e r _l a s t _ n a m e

passenger_hrst name +
-

.Data dictionaries are lists of all of


the names used in the
system models.
passenger_middle_iniial

Descriptions of the entities,


relationships and attributes are also included in aae
passenger_address = local_address+
dictionary. community_address

zip_code
Typically, the data dictionaries house number +

and desigm tool


are
implemented as a
part of structured ana local_address =
street n a m e +

.The data (apartment number)


dictionary stores
following type of information community_address =city_name+
state_name | province_namej

TECHNICAL thrust for knowiedge


PUBLICATIONS -
An up thrust
for TECHNICAL PUBLICATIONS
-
An up
knowledge
5-22
Sotware Engineering Software Design SoftwareEngineenng
5-23
Software Design

The data dictionary defines the data items unambiguously


One can give the detailed description
of data items using data dictionary Get
.For large computer based system the size of data dictionary is very huge. I employee Flag going from caller to called
details
complex to maintain such a data dictionary manually. Hence automated
tools can be used to maintain the data dictionary. (CASE) Data going from caller to called
Employee
Name
Advantages Employee Flag going from called to calle
1. Data dictionary support name management and avoid duplication D
Employee 10
of Is validd Data going from called to caller
2. It is a store organisational knowledge linking analysis, designn and
implementation.
ii) Structure Charts Find
employee
The structure chart is a principle tool of structured design. name

The basic element in the structured chart is module. Module is defined


collection of program statement with four attributes.
as a
Flg. 5.6.2 Use of flag
Input and output: What the
module gets from the invoker
The iterations and decisions on a structured chart is as shown in Fig. 5.6.3.
Get student
details Calling module
is called input and what the
receiver gets from the module
is called output. Symbol for
showing decisions
Function The function Symbol for showing

processes the input and


Final student name Issue tickets to iteration
and marks Called module all passengers
produces the output.
Mechanics : The code or the
Fig. 5.6.1 Connector
logic by which the function is
carried out.
Internal data: It is the own
.The two modules can be
workspace.
connected to each other
The module by a connector as shown belo
uses data and
flags. The data is processed by different
flag is used as a control
signal. It can be set or
reset.
Ihe modules. Get Calculate fare
Calculate fare
for second
Print ticket

For example if we forgeneral first


have to modules reservation
one for Ciass passenger
another module is for getting the employee detail(caller) nd details class passenger
will sent the data as finding the
employee name(called). Then the caller ai
employee's ID and n
name of
employee. If the employee ID is using valid
that ID the called
module will fina Fig.5.6.3 Interaction
called module to a caller then that
module. The use of data message will be given the
and flag can
be as shown in r'g.5.6.2

TECHNICAL
PUBLICATIONS An up thrust
for knowledge
for knowledge TECHNICAL PUBLICATIONS
An up thrust
5-224 5- 25
Sotware Engineening Software Design ofware Engineering
Software Design

of structure chart is shown in Fig. 5.6.4. Advantagess


The example a

. This code helps in quick building of programing code.


Get fees from to use.
2. It is simple
all students

Total for one


student
Total for all
students 56.2 Object Oriented Design
Total for one The software product can be designed using structured oriented method or using
Valid student
student
entry made hiect oriented techniques. There are some merits and demerits associated with these
astems which directly affect the software development process.
Calculate total
Calculate fees number of
Calculate total
for one student students
fees Structured analysis Object oriented analysis
Record
Valid student
record
is valid Total numbero
of students Tolal fes The structured analysis is a method in which
focus is on functionality of the system
The object oriented analysis is a technique in
which main emphasis is on objects. Each
object is a combination of data members and
Get valid student| member functiors.
record
PRINT

The Data Flow Diagrams(DFD),Control Flow The use cases, class diagram, sequence
Students
record
Field
Diagrams(CFD) and Entity Relationship diagram, state chart diagram, activity diagram,
Field valid
Diagrams(ERD) can be drawn in structured component diagrams can be drawn in this
method.
analysis.
READ EDIT FIELD In this technique, the overhead of partitioning
This is a simple technique of system analysis.
the structure into modules is involved.

Flg. 5.6.4 Structure chart simple because system


Finding bugs is difficult because focus of this Finding bugs is
functionalities. That structure is modular.
iv) Pseudocode approach is merely on

means the system structure is according to the


Pseudo code is a combination of algorithm written in functionalities.
simple language and
programming language statements. This code is effective building block for actual
program. Advantages of 0OD
to which
real world concepts due
For If we want to find out smallest number
example -

The object oriented techniques focus on


among three variables then the
and the customer becomes easy. This
pseudo code can be written as follows. Communication between system engineer
And proper analysis of the system
1. Read values of a, b, and c variables. as a whole.
helps in understanding the system
2 can be carried out.
modules. This helps in managing
If(a<b) can be partitioned into small
Even if one module
ne complex system Errors can be
identifed efficiently.
IF (a c system. This ultimately
<
Drint "a is small"
ne large complex another
remains unaffected.
module
s o m e extent
Else Oaihed to
reduces the maintenance cost of the project. another
print "c is small" o r in

can be
reused in the same system the
Else if (b <c) Component of the system times because of reusability
reusability. Some
print "b is small" is called
Else yem.This process reduced to a large extent
overall cost of system development
gets
print "c is small"

An up thrust for knowledge


TECHNICAL PUBLICATIONs An TECHNICAL
PUBLICATIONS
up thrust for knowledge
5-27
5-26
S o f h w a r oE n g i n e e n n g

Sofware Design
Sotware Engineering Software Design Class
Addling
Disadvantages of 00D Stoep2: the Class shape and drag it on the page.
1. These very slow. .Clickon
systems are
o t h e name of the class. Right click on the
2. These systems require more memory.
You can cha shape and a Class
window will appear. You can change its name from the name field.
oriented design using UML
The object
add attributes for the lass by clicking Attributes in the right of Class
The object oriented design can be done using Urihed Modeling Language (UMT You can
Properties window. Refer following screen shots for creating class and setting i
Following are diagrams that can be drawnm to represent the object oriented dei
some
1. Class Diagram : Refer section 4.12 esign properties.

2. Use Case Diagram: Refer section 4.11 0rangMcrosolt vsh


.4
3. State Chart Diagram: Refer section 4.15.1
4. Activity Diagram: Refer section 4.11.2 and 4.11.3

5. Sequence Diagram: Refer section 4.15.2

Introduction to MS Visio Tool


The Microsoft Visio tool is commonly used for designing the UML diagrams. Using
Jut Atay (Us
unts)

US unts)
this tool you can draw all kinds of UML diagrams. You can drag and drop different JUt Colaborabca
components of object oriented design and can join them together using appropriate {L5 unks)
JUN Cepirymet
connector. Here are some steps used to create the class diagram in Visio Ju equre
(L5 unts)
Class1
Step 1: Start Visio 2003 or 2007. Then choose the drawing type. Select Software folde,
choose UML-model diagram icon and UML Static Structure Diagram.
Place the mouse over the shapes in UML Static Structure Diagram to view more
details.

JM e Case (US irds)

Medel &xplerer

ab ruture1 Poe

Static Structure-1
Fig. 5.6.6

Flg. 5.6.5 Salect UML Static


Structure Dlagram knowage

thnust
for
An up

TECHNICAL PUBLICATIONS An up thrust


PUBLICATIONS

for knowledge ECHNICAL


Software Engineenng 5-28 5-29
Software Design
Software Design Software Engineering

, Shape DepieyCpos
Gerner pps

Ar ShoEs Ra Procerbs
Sesrch lor p :

Shapes w
r h here
e your se

Trpevou saardhere
CReges: Ja Coneone* end cptiors
AActty (US urds)
Attrbutes: JM tepoa Frndn Second end nan
Abtes
J n Corporert (US urds) EndmpkhesErd naagbley Ed vwebis
Atrbute L IY y Mpky ew
nar rsped prYate
U AZtrikute roperte upkcate
Frtrd Scord end

Abse
orthand: Name
hs d e the sane boe n te
Type expressuon
L N s y docped U
ype Knspeced
L nLCompe EXpressio **

Model Explor
Class1 Class2
Vsbdir 7N Ohange
e Ce US ures)
Medel brplere Tune J a t c Nructure L
TorgetS Cancd Lgh15n Ane D1.

xSt utise- Doumentotxn: Fig. 5.6.8


Class
name in
Step 4: Save the diagram in different formats. You
can copy and paste the diagram
Wish- 12n
ence Word Document.

Fig. 5.6.7 Review Questions


Draw the use case diagram and class diagram for library
h a t 15 object design of a system ? Marks 7
GTU : Summer-2016.
Step 3: Adding Relation management system.
tate the differences between procedural design and object oriented design.Summer-2019. Marks 3
Just cick and drag the GTU
relations such as type of the relation to connect two classes. You
association, aggregation, generalization can ada
u 5.7 User Interface
Design 7
Marks
Double click on the relationship. :May-2012, Summer-2012, 2014,
2016, 2018, Winter-2017, 2018. 2019,
and/or enter role names association to
specify it. You is provided.
in the
column "End
can
give the association a naname interaction of system with
user

Name" interface design the effective functionality.


user rather than its
by its interface sottware
system
Typically system user judges use of the system. Many
interface leads improper
poorly designed of poorly designed
user interface
be used because using graphical
otems can not interact with the systems
Most of the
o t h e users
in business systems
is also usea.
based interfaces
interfaces. However text
Ser (GUI)
Advantages of iraphical User Interfaces
user can
use the system
easily
with the

1. GUls An inexperienced
a r e easy to use.
TECHNICAL graphical user interface.
PUBLICATIONS An up thrust
for thrust
for knowledge
knowiedge TECHNICAL PUBLICATIONS
An up
5-31 Software Design
Sofware Engneenng

Software Engineenng
30 Sotware Design Place
the User
in Control
572.1 during requirement analysis the user often demands
requirement.
easily. He can also interars with
task to another very analysing any and help him to get the things done.
2. The u s e r can switch
from one While which will satisfy user requirements
information remains ie
simultaneously. The application wants to control the computerized system. Following
e in for the system
are
many applications means the user always
for uns
That
that allow user to control the system
its own window. :
principles
possible with user. will be restricted from
3. Fast and full screen interaction is thedesign the interaction
modes in such a way that user

Define actions
unnecessary
User Interface Design Principles doing the current state in which user is working
and being in
5.7.1 Interaction
mode means the
to do the related tasks only
if the user has to
the capability, need and experience of system user user is supposed
While designing the user interface Such a mode
GUI becomes frustrating.
should take into account the people's physical and actions at such time then the
should be considered. The designer perform unnecessary
or in game playing software a child can
mental limitations. For instance a short memory .The
interaction should be flexible Microsoft power point
also be aware of the tact that people make flexible. For example in the
recognize pictures rather than text. He should interaction should be
these mistakes in a
friendly manne The user mouse clicks as well
as using
and the interface should tolerate transition is possible using
slide show the side
mistakes
the as per his comfort
principles are used. allows any user to operate system
Following design keyboard. Such flexibility
Instead of using computer terminology make use of user in u s e r interaction
1. User familiarity of 'undo' or interruption'
Provide the facility whenever necessary
Microsoft Office software, the terms suh to correct himself
oriented terminologies. For example in This is the feature which allows the user
software ike Paint' one
as document, spreadsheet, letter,
folder are used and use of the terms directory, work. For example : In the
without loosing his previous for performing his
'undo' actions
file and identities are avoided.
draw some objects
and perform 'redo' or
can
2. Consistency The appropriate level of consistency should be maintained in the
desired drawing.
the commands or menus should be of same format. interaction
user interface. For example Allow user to customize the need to be done
interface certain actions
3. Minimal surprise - The commands should operate in a known way. This makes while handling user
It is observed that in Macro.
are collected in
a
user to easily predict the interface. For example the in word processing document time if these actions
repeatedly. It s a v e s the
under the tool menu there should be a facility of spelling and grammar checking H i d e technical details from
the user
a w a r e of system
User should not be
essential for a casual user.
provide recovering facility This feature is functions. For example
4. Recoverability The system should to user from his functions or file management
errors so that user can correct those error. For example an undo command should commands, operating system the command for printing
if u s e r
instead of giving
document to
be given so that user can correct his errors, or while deleting something the while printing some
convenient for a casual user
then it becomes
confirmation action must be provided, so that user can think again while deleting clicks on the icon indicating print
something. take the print out. interactive with the user
should be
on the screen
appearing on
5. User guidance The user interface can be effectively used by a novice user if some The objects appearing to adjust the object
should be in position oval or edit the
user
guidance such as help systems, online manuals etc. are supplied. his also means that user
Paint' o n e should
be able to stretch
the
the screen. For example in
6.7.2 Golden Rules text written in the object.
Thao Mandel has proposed three golden rules for user interface design- 6722 Reduce the User's Memory Load remember very less.
In fact the design
1. Place the user in control then user has to it assists the
user interface is good and ultimately
tne for the user
2. Reduce the user's remembers more
suggested by
memory load such that the
Following are the principles
be system
d based systems.
3. Make the interface consistent.
h a n d l e the
computer

Let us discuss each rule in detail a n d e l to reduce the memory


load of the user

thrust for knowledge


- An up
PUBLICATIONS
TECHNICAL

TECHNICAL
PUBLICATIONS -
An up thrust for
knowledge
5-33
5-32 Software Design
Sofrtware Design
SofwareEngineering
Sotwere Engineening

1. Do not force the user to have short term memory Mandel has suggested following principles for consistent interface design.
to direct the current task into meaningful manner
When user isinvolved in complex tasks then he has to remember more. The 1. A l l o user

user
interface should be such that the user need not have to remember past actions This principle suggests that create a user interface with proper indicators on it so
results. And this can be achieved by providing proper visual interface. and
dhat user can understand his current task and how to proceed for new task
2. Establish meaningful defaults across family of product
2. Maintain consistency
Meaningful default options should be available to the user. For exámple in in a packaged manner then every of that
in he f an application
come product
Microsoft word the user can set the default font size as per his choice. Not onh a0plication family should posses the consistent user interface. For example
this, there should be some reset option available to the user in order to get hae
Microsoft Ofice family has several application products such as MS WORD, MS
the original values. Access and so on. The interface of each of these product is
Power Point, MS
3. Use intuitive shortcuts consistent (of course with necessary changes according to its working). That means
as File, Edit, View, Insert, Format,
For quick handling of the system such short cuts are required in the user there is a title bar, menu bar having menus such
interface Tools, Table, Window, Help on every interface. Then tool bars and then design
For example control+S key is for saving the file or control+0 is for
opening the the interface.
file. Hence use of meaningful mnemonics is necessary while designing an
interface layouts are placed on

model of application do not


4. The visual layout of the interface should be realistic 3.1f certain standards are maintained in previous
When certain aspect/feature of the system needs to be highlighted then use of change it until and unless it is necessary
for the user, then do not change
proper visual layout helps a casual user to handle the system with ease. For Certain sequence of operation becomes a standard
becomes habitual with such practices. For instance
example in an online purchase system if pictures of Master card/Visa card are these standards because user
given then it guides the user to understand the payment mode of online control+S is for saving the file then it has become a standard rule now, you if
arnnoying to the user.
different short cut key for saving then it
becomes
purchasing. assign
5. Disclose the information gradually 5.7.3 Interface Design Steps
There should not be
bombarding of information should be presented to
on user. It
actions are identified
the user in a analysis all the tasks and corresponding
systematic manner. For instance one can organize the information in After interface
than
each design process occurs more
hierarchical manner and narrate it to the user. At the Interface design is an iterative process in which
top level of such hierarchical elaborated in m o r e detail Following
are the
structure the information should be in Each time the design step gets
abstract form and at the bottom level more once.
detailed information can be given. commonly used interface design steps
objects and corresponding
define interface
5.7.2.3 Make the Interface Consistent . During the interface analysis step
The user interface should be actions or operations. actions
consistent. This depict the user
levels such as consistency can be maintained at three 2. Define the major events in the interface.
These events

.The visual information Finally model these events.


(all
screen
layouts) should be consistent throughout and ir of view.
should be as per the design standards. like from user's point
. how the interface will look
Analyse information provided
.There should be limited set of interface with the
understands the
input holding the non conflicting information ldentify how the user
The information flow along with it.
transiting from one task to another should be consistent
5.74 User Interface Design Process iterative
can be implemented using
process
The user interface analysis and design
e four framework activihes.
pliral model. It consists of

TECHNICAL for krnowledge


PUBLICATIONS An up thrust
for knowledge TECHNICAL
PUBLICATIONS
An up thrust
Softwere Engineering 5-34 5-35
Softwere Design Sofnware Engineering

Software Design
1. Environment analysis and modelling Review Questions

2. Interface design 1, Explain the Golden rules of user interface design.

3. Implementation What are the interface design steps that cam be applied while designing the interface?
4. Interface validation. Erplain the sigmificance of User Interace (Ul) in a system. Also ezplain the design Model foar Ul
(Hint: For significance refer section 5.7 and for desigm model refer section 5.7.4)
57.1 each of these tasks
As shown in the above Fig can
performed more tha
be
GTU: Summer-2012. Marks 7
once. At each pass around the system more requirements can be elaborated and detail
letailed
design can be performed 4. Explain the user interface concept with suitable example GTU Summer-2014. Marks 7
Environmen 5. What is the importance of user interface ? Explain user interface design rules
Interface
validation analysle ano GTU Summer 2016. Marks 7
modelin 6. Describe golden rules of User Interface Design.
GTU Winter 20 17. 2018 Marks 3

7. Explain user interface design issues. GTU Summer2018 Marks 3


Start of
rocess 8. What is the importance of User Interface ? Exrplain Lser interfuce design rules
GTU: Summer. Winter 2019. Marks 7

Release 5.8 Web Application Design


Release In web engineering, the web design can be of two types it can be generic and it can
Release
be specific.
as a outcome of design
From generic viewpoint various design models get developed translated into the
be
phase. Using these design models the user requirements
can

Implementation inte That the web


executable code form. At the same time design must
be specific. means

attributes of the web application in such a manner that the


Fig.5.7.1 Interface analysis and deslgn process design must address key test it.
and can
web engineer can build the complete web application
Environment analysis and modelling In this
phase three major factors are focused
-

ie. user, task and environment. First of all the


user and to
user profile is
analysed to understand the 5.8.1 Design Pyramid
elicit the
requirements, then the tasks that are required to carry out desired model that contains
the design that leads to a
be defined as
functionality are iderntified and analysed. The analysis is made on user environment he web design can
This mix may vary depending
and technology.
which involves the physical work environment. aPpropriate mix of aesthetic, content Following Fig. 5.8.1 (See
Finally analysis model is created for the the nature and design activities
of the web application.
interface. This model serves pon Each level of
this pyramid
represents the design pyramid.
basis for the design of ser interface.
as a

.8.1 on next page)


Interface design The interface
design is phase in which all the interface objects
and corresponding actions of each task are
a represents the design activities-
defined.
Interface design the
Implementation The implementation
phase involves creation of prototype usng and organisation
of user interface. It includes
which the interface scenarios can be ns kind of defines the structure
interactions and navigation
evaluated. To accomplish the construction of uSer various modes of
interface some automated tools can be used of screen layout,
ahon
Validation The goal of validation is mechanism.
to validate the
interface for its correc
performance. During validation it is tested whether
all the user Aesthetic des ign It inchudes
text
satisfied or not. The purpose of validation
is also to check requirements g the look and feel
of the web applicaton.
decisions.
to learn and whether the interface is ea kind of design defines aesthetic
easy to use. ns color scheme,
text size
and related

graphic design, knowiedge


thrust for
An up
TECHNICAL PUBLICATIONS An up thrust for TECHNICAL
PUBLICATIONS

knowledge
36 5-37
Software Engineening Software Destign Software Engineering

Software Desg
User .Communication

satus of the activity initiateby the user must be defined by the interface
asign. This will help in
proper conversation between the end-user and
web
Interface application.
design
Controlled autonomy
Aesthetic design The user movement must be controled by the interface The conversation of design.
user and web applicaion must lhe within the web application itself.
Content design
.Efficiency
Navigation design The interface desing should be such that the users work efficiency must be
Architecture design optimized. The user need not have to wait for too long. Always look at the users
productivity and not at the computer.
Component design
.Flexibility
The interface should be flexible enough to enable some users to accompish tasks
Technology
Fig. 5.8.1 The web design pyramid directly or in somewhat random fashion.
Focus

Content design The web application interface should stay focused on the user task at hand.

This design defines the layout, structure and outline of the contents present in the
.Fitt'slaw
The time to acquire target is a function of the distance to and the size of the target.
web application.
According to Fitt's law for a online purchase system, if user clicks on buy product
Architecture design then immediately a pull down menu of product category (For example: Laptop,
should not
This defines the Pen Drive, IPod, Digital Camera) must appear. This product category
design hypermedia structure of the web application. of the Because then the time for the
be located somewhere in the comer screen.

Navigation design user to acquire it would be too long.


This design defines the Human interface objects
navigational flow between the content objects. The human
Human interface be seen, heard, touched or perceived.
objects can
should have standard
Component design intertace object must be seen on the GUL
These objects
be understandable, self
This design defines human interface objects should
the processing logic required to implement functional resulting behaviour. The
components. consistent and stable.

5811 Intertece Design Latency reduction intermal operation to complete, the web
Kather than making user to wait for some
with the
The interface allow the user to proceed
design must be easy to use,
easy to learn, easy aPplication should multitasking. This will
consistent, efficient, error free and functional.
navigate, inruuu
to use
The latency reduction
also includes
It should
provide a satisfying experiene work as if the operation has been completed. understand what
the end user. to the
thatuser may
user so
Some kind of acknowledgement bar to indicate
e providing the
clock or progress
Whet are Interfece design principles and nappening. For example immediate action
does not o c c u r
guidelines? some kind of audio
feedback when
Anticipation POCessing8
fill up
The interface design must
anticipate user's next move.
Metaphor to use the web
appication. For example
user can

to Wite the
Consistency the have
aphors assist
u s e r not
list He need
items from the
The GUI navigation controls e torm selecting the
by and use to leam
must be consistent simple
throughout the applicatiol Omplete name of item. Metaphors
are

for knowledge
TECHNICAL An up thrust
PUBLICATIONS An up thrust for TECHNICAL PUBLICATIONS
-

knowledge
5-38
Sofware Engineening Softwe Design 5-39
Software Design
Soware Engineenng

Protect user's work


The work product must be automatically saved so that the contents will 5.812 Aesthetic Design
will not get
lost if some error occurs. Aes ethetic design means the graphical design. In aesthetic design there are two
iSSues that must be focussed
Readability important
All the information presented by the user interface must be readable by
.Visible navigation erybody.
Aesthetic design issues
Avoid invisible navigation. The navigation should be obvious even to the ca
user. The user need not have to search the sCreen to determine how
asual
to link to
other content or services.

What are interaction control mechanisms?


Various interaction control mechanisms are- Layout issues Graphic design
sSues

.Graphic icons
Buttons, switches or graphical images assist user to select some item or to specify
some decision. .Layoutissues
Graphic images -
.Graphics design issues
Some graphical representation is selectable by the user and Let us discuss these issues one by one
may exhibit some
content object web application functionality.
or

Layout issues
Navigation menus
Keyword be There is no absolute rule for defining the screen layout. However following guideline
menus can
presented vertically or horizontally to the user. Using this
menu the user can choose from hierarchy of is used while designing the layout.
is selected.
subtopics when primary menu option
should not be overloaded
1. Don't afraid of white space. In other words the web page
What are the tasks in the interfacee with lot of information.
design?
2. The emphasis should be on content.
Following are some tasks that can be carried out for web
Review and refine the application interface design of the must be arranged from top to bottom and from left to
information present in the analysis model. 3. The layout screen
the upper left comer of the
write. The high priority elements must be placed on
Develop rough sketch of web application interface
layout. web page.
Map user objectives into appropriate interface actions. use of scroll bar is
an
4. As far as avoid usage of scroll bar. Although
possible
.Define the task set associated with each action. users never like to
use scroll bars. Instead,
one can

important element of graphics,


Storyboard screen
images for each interface action. divide the information over the multiple pages.
within the page.
.Refine interface layout using function geographically
aesthetic design. S.
Group navigation, content and browser window size
resolution and
Develop procedural representation for user's 0. Lhe
layout must be designed by considering
interaction.
Develop behavioural representation for the
interface. Graphics design issues In
Interface layout of each state feel of the web application.
must be described in detail. concerned with the look and color
g r a p h i c s design is then the global
Finally review and refine the
interface of all the layout
design
done and
is
application
design model. aesthetic design first other required
aesthetic
elements of an

ypefaces, sizes, styles and


are decided.

TECHNICAL PUBLICATIONS An up thrust


for koanowtedge
An up thrust
for knowledge TECHNICAL
PUBLICATIONS
Sotware Engineering 5-40 5-41
Softwe Deskgn Software Engineening

Software Desig

5813 Cotent Design


Web document
.The content desigm develops the representation for the content objects. t
defines the mechanism required to instantiate the relationship of one also
content. object
with other.

During analysis model, the content objects are identified and the relationh
among these objects defined. onships
.During the content design the content object is more closely aligned with data
object. The content object has attributes that specifies the content specife
information during analysis and implementation specific information
durino
design.
Once all the content objects are modelled the information within each
be authored and then formatted in such a manner that the
object must
customer's need get
satisfied.

5.8.1.4 Architecture Design


The architecture design focuses two of
on
types design architectures
Content architecture
.Web application architecture (c) Linear with diversions
(a) Linear (b) Linear with optional fow
Architecture design Fig.5.8.2 LInear structure

Content architecture
Content
architecturee

The content architecture focuses


on
Web application
architecture

the definition of overall


HH
of web application. Various content architectures are
hypermedia of struchure

1. Linear structures

When there is a
predictable sequence of interactions then linear
example a Web Tutorial
in which the web structure is used. ror
pages appear in a
structure of linear structure architecture
is sequence. 1The
particular
represented by following Fig. 5.8.2.

H
(See Fig. 5.8.2 on next page.)
2. Grid structures

In this structure the


web
more dimensions. application contents can be
organised
It is as shown by Fig. 5.8.3. (Fig. 5.8.3 on categorically in two or
next page.)
Fig. 5.8.3 Grd
structur

TECHNICAL thrust for knowledge


PUBLICATIONS An up thrust TECHNICAL
PUBLICATIONS
An up

for knowledge
Sofware Engineering
5-43 Software Design
42
Sotwere Engineening Software Desig
Web a p p l i c a t i o n a r c h i t e c t u r e

3. Hlerarchical structure
application architecth is useful for achieving the business objectives. It is
used web architecture structure. The contents The
web
This is the most commonly can be
MVC architecture.

arranged in hierarchical manner and the flow of control is only along the vos defined by
Model View Controller (MVO architecture is a kind of infrastructure model that
branches. The

user interface
from web application functionality and informational content.
ples
decon
in three layers Model, View and Controller.
partitioned
Thearchitecture is

all application specific content and processing logic. It includes


The model contains
rontent object, access to external intormation source and all processing functionality.
defines all the interface specific functions.
The view
the access to model and view layers. It also controls the data
The controller manages
flow among them.

architecture be written something like this -

The working of MVC


can

controller. The
User requests for some data. This request is submitted to the
Step 1 for the user request.
controller selects the view object which is appropriate
is transmitted
Once the of request is determined the behavioural request
Step 2 type Sometimes it can access the
model implements the functionality.
to the model. The
Fig. 5.8.4 Hierarchical structure corporatedatabase, if needed.
in the
4. Networked or pure web structure the model must be formatted and organised
Step 3 The data developed by
In this architecture, the achitectural components should be designed in such a appropriate view object.
manner that control can be passed from one
component to every other component. server to the client's
transmitted from application
Step 4 The view object is then form.
information in desired
machine in order to display the required
User request
Controler Behavior
request
W

browser Model
Database

Data Update
Client's machine request
display of View

requested
data
indesired Server's machine
manner
architectun
Model view
Fig. 5.8.6

5.8.1.5 Navigation Design architecture, the navigation pathways


are

web application but the links which


After establishing the pathways are nothing
The navigation
Flg. 5.8.5 Network structure Eined in navigation design.

An up thrust or kowedgo
TECHNICAL PUBLICATIONS

PUBLICATIONS An up thrust
for knowledge
TECHINICAL
44 5 - 45
Sonwere Engineening Sofware Design ofware Engineering

Software Design
the content object and functionalities of the web understand the concept of NSU consider following scenario -
allow the user to
define the navigational
access

pathways designer must do following things.


Pplication. To is tor onine book
for different users of the site
This web application purchasing.
A user can select a desired
book
1. Identify the semantics of navigation an purchase it using on-ine shopping
cart. If he wishes then he can
get a preview
2. Define the mechanism (syntax) or a method tor achieving the navigation. of that book. Thi preview may contain some description such as table of content,
sample pages from the book, author's information, cost and so on.
Navigation semantics

Innavigation design the user hierarchy


and related use cases
se
are considered Navigation syntax
And
each use case is associated with actor. actor use web
each
lication
differently and therefore have different navigational requirements. Secondly, each
may In this section we will see varnous opions of
creating navigation
will define some classes or functionalities.
actor .Navigational links
Using text based links, buton, icons or some graphical images the navigational links
When user interacts with the web application, he may encounter a series
of can be defined.
navigation semantic units (NSU).
.Horizontal navigational bars
Gnaho and Larcher describes the NSU as follows
It consists of major contents containing appropriate links.
The NSU consists of a sub structure called Ways of Navigating (WoN). The WoN .Vertical navigation column
ents
the navigations ways or paths using which the user can accomplish certain goal. The WoN It consists of major contents containing appropriate links. It lists virtually all major
comsists of Navigation Node (NN) which are connected by navigation links. One high le content objects within the web application.
NSU may contain several low level NSUs. Tabs
:S' It is nothing more than variation of navigation bar or column By this navigatiorn link
User goes through the
sample pages all the functional categories on a tab sheet are represented.
Site maps
It consists of all the content objects and functionalities including the table af content
< Navigation link >>
Queries Book user Preview book The links on table of content can display the content object directly
Tor book
wants to looK iNside
In addition to this, the web designer should establish some standard conventions.
links must be
For example Icons, or graphical images representing navigational
mechanism must be
<Navigation link>> clickable. For text based hyperlinks the appropriate color change
return to
<< Navigation link >» main page applied.
view cost

S<
N a v i g a t i oi
nn K <« Navigation link> S.8.1.6 Component Level Design
BookpUrcnasease Show
book details Following are some tasks of modern web applicahon
web contens
1. Perform localized processing for generating the
2. Enhance navigation capability in dynamic order.
Description 3. Provide computation or data processing capability.
Cart
Frovide the mechanism for database query processing and handling
<Navigation link >> Table of
5. Establish data interfaces with external corporate system.
book purchase content
the program
nese tasks can be accomplished by
designing and construcäng
Sample pages software component tor conventional
identical in the form
to
About author ponents that are

software.
Fig. 5.8.7 Creating NSU
An up thrst for knowledge
TECHNICAL PUBLICATIONS -An up thrust for TECHNICAL
PUBLICATIONS
-

knowledge
Sorware Engineening 5-46
Software Desigr
Notes

6 Software Coding and Testing

Syllabus
Coding standard and coding guidelines, Code review, Soffware documentation,
Testing strategies,
Testing techniques and test case, Test suites design, Testing corventional applications, Testing object
oriented applications, Testing web amd mobile applications, Testing tools (Win rumer, Load rmer)

Contents
6.1 Coding Standard and Coding Guidelines Summer-2016, 2018, ..Marks 7
6.2 Code Review . . .

Summer-2018, 2019, Marks 4


6.3 Software Documentation
6.4 Introduction to Software Testing
6.5 Testing Strategies .. .

Summer-2012, 2016,
2018, 2019, WMnter-2019 Marks 7
6.6 Testing Conventional Applications
6.7 White Box Testing Winter-2017, 2018,
. Summer-2012, 2019, Marks 7
6.8 Black-Box Testing Winter-2013, Marks7
6.9 Comparison between Black Box
and White Box .. . Winter-2012, Summer-2015, Marks 7
Testing
6.10 Testing Technique and Test Csse Winter-2019, Marks3
6.11 Test Suites Design
612 Testing ObjectOriented Applicatons
6.13 Object-Orented Testing Sirategies
6.14 Testing Web Applications
6.15 Testing Mobile Applications
6.16 Testing Tools

TECHNICAL PUBLICATIONS (6-1


-
An up thrust for
knowledge
iilii ii ii liiliiE
6-2 Software Coding end Testing 6-3 Software Coding and Testing
Sofnware Engineering Sotwa Engineening
and Coding Guidelines
6.1 Coding Standard GTU: Summer-2016, 2018,
For example
we get a system design which can be
larks while(condition)
whilelcondition)
After detailed system design
implementation model.
The goal coding is to implement the design in the nsíormed
best
into if condition
then
statement
Removing of
f condition then statement
very deeply. The codinPOble
statement f condition hen statemer
testing and maintenance condition then Nesting
manner. Coding affects both
of getting the job of
coding should t
programmer
else if
condition then statement f conditon then statement
done in such a manner that the instead simplified the else if
task of testing and maintenance phase should get simplified.
Various objectives of coding are Fig. 6.1.1
1. Programs developed in coding should be readable. of nesting the code becomes more readable but stil the
Note that after removing
2 They should execute efficiently. can be achieved.
same output
amount of
3. The program should utilize less memory 5. User
defined data types
4. The programs should not be lengthy. allow the user to use defined data types as the
Modern programming languages
If the objectives are clearly specified before the programmers then while coding the Use of user defined data types enhances the readability of the code
enumerated types.
try to achieve the specified objectives. To achieve these objectives some programmine In C we can define the name of the days using enumerated datatype
For example :
principles mustbe followed.
enum Day
6.1.1 Coding Guideline
Sunday
There Monday:
are some commonly used programming practices that help in avoiding the Tuesday
common errors. These are enlisted below Wednesday;
Thursday
1. Control construct
Friday:
The and Saturday
single entry single exit constructs need to be used. The standard control
}workday:
constructs must be used instead of wide variety of controls.
using
enum Day Today=Friday;
2. Use of gotos
6. Module size
large size of the
The goto statements make the module but the
program unstructured and it also imposes overhead about the size of the
There is no standard rule
on
compilation process. Hence avoid use of goto statements as far as possible and another cohesive.
alternative must be thought of. module will not be functionally
3. Information hiding 7. Side effects then it will
the code is changed randomly
Avoid obscure side
effects. If some part of to the function is
Information hiding
should be of parameters passed
functions to the data struchures must be
supported
as far as In that case possible. only access example if number
side effect. For hunction.
made visible and the
cause some
the purpose of that
information present in difficult to understand
must be hidden. changed then it will be
names for specific purpose
4. Nesting 8. Use of Meaningful Variable tor mulbpie purposes.
variable name in temporary loops b e c o m e s easy
Nesting means
defining one structure inside
another.
Never make use of same
n a m e so
that the program
becomes hard If the nesting is too deep then be given some descriptive
to understand the code. Hence as far a c h variable must
the code. as
possible -
avoid deep nesting to understand.
An up thrust
for knowiedge
TECHNICAL PUBLICATIONS
PUBLICATIONS -
An up thrust for
knowledge
TECHNICAL
Sotwere Engineering 6-4 6-5
Software Coding and
soheareEngineoring
Software Coding and
Testing Tasting
9. Well Documentation 4 Statements
The code must be well documented with the help of comment statement
me
There a r e s o m e
guidelines about the declaration and exerutable statements
ents at
appropriate places Declare some related varnables on same line and unrelated variables on
line. another
6.1.2 Coding Standards Class variable should never be declared public.
Any good software development approach suggests to adhere to some well-defn. Make use of only loop control within the for loop
standards or rules for coding. These rules are called coding standards. efined
Avoid make use of break and continue
statements in the loop.
1. Naming Conventions
Avoid complex condiional expressions. Make use of temporary variables
instead.
Following are some
commonly used naming conventions in the coding
Package name and variable names should be in lower case Avoid the use of do..while statement.
Variable names must not begin with numbers.
Advantages of Coding Standards
The type name should be noun and it should start with capital letter.
1. Coding standard brings unitorm appearance in system implementation
Constants must be in upper case (For example Pl, SIZE)
2. The code becomes readable and hence can be understood easily
Method name must be given in lower case.
3. The coding standard helps in adopting good programming practices
oThe variables with large scope must have long name. For
example
count_total, sum, Variables with short scope must have short name.
For example Review Question
ij
The prefix is must be used for Boolean
type of variables. For
example isEmpty or
1. Explain the various coding standad. GTO Siummer-2016 2018 Matkr 7
isFull.
2. Files 6.2 Code Review GTU Sumer 2018 2019 Mark
Reader must get an idea about the purpose of the file The main goal of code inspection is to find out the detect defects in the coding
by its name. In some
programming language like Java -
An inspection is a review of a code by a group of peers following a clearly
The file extension must be defined process.
java.
oThe name of the file and the class defined in the the of the code by finding the defects
file must have the same name
Code inspection technique improve quality
oLine length in the file
must be limited to 80 characters. Following are some characteristics of code inspection process
1. The inspection must be conducted by the technical people for technical people.
3. Commenting/Layout
have definite role
2. It is a structured process in which every participant
Comments are non executable
part of the code. But it is very and not to solve them.
enhances the readability of the code. The important because it . The focus of code inspection is to identify the problems
the program. purpose of the code is to explain the logic of for further improvement.
The review data is recorded and monitored
4 The author of the team is
o
Single line comments must be given by // n e code inspection is by a team of reviewer.
performed
For the names of the variables moderator. is done in a
comments must be that the review
A black of comment given. h e moderator has the overall responsibility
to ensure
must be followed.
enclosed within /* and */. the review process are
PToper manner and all steps in planning
out in different phases such as
he code inspection is carried rework and followup.
review meeting
Preparation and overview, group
TECHNICAL PUBLICATIONS -
An up thrust for
knowledge PUBLICATIONS
An up thrust for knowlecgo
TECHNICAL
Sotware Engineering
6-6 Software Cod g and Testingo
Sofwere Engineering 6-7
oftware Coding and
Testing
Planning for
Review eally, the self eview should be done in
6.2.1 ne
contimuous time span. The
for code review. vecommended time 19 less than two hours.
The objective planning is to prepare
of
that the code is ready for inspection.
.This process ends
when all the reviewers
The moderator ensures prepare their own self review
.The moderator checks the entry criteria for the coding. The entry log,
analysiscriteria for Meeting
and the static Review
coding is that the code is compiled properly static anal tools 623 Group
applied. ATe
The basic purpose of group review
The review team also gets formed in this phase. meeting is to prepare a final defect list based
on the defected
enlisted in the self review
log of all the reviewers. There are
Then the code is distributed to the review team for reviewing, Th ances that new important defects might get discovered
documents, relevant checklists and standards are also provided to design The main outputs of this phase are the
during the meeting.
defect log and the defect
members. With the help of these documents the correctness of coda team summary report.
de can be
ensured. The moderator examines the effort and defect data
in the self
review logs to
conirm that sufficient time and attention has gone into the
6.2.2 Self Review preparation. When
preparation is not adequate, the
group review is deferred until all
I n overview and preparation phase, the code is reviewed by the
fully prepared.
participants are
reviewers
.The moderator may arrange an opening meeting. In this
meeting the author ma .If everything is ready then the meeting is held.
provide a brief overview of the product and any special areas that need to tayh is the
looked at carefully. But the meeting is optional and can be omitted. The moderator in-charge of this meeting
.The main task of this .The meeting is conducted as follows -
phase is that each reviewer has to do self review of the
code. The team member called reader goes through work product line by line. At any line
A reviewer goes through the entire code and logs all the the reviewer may raise some issues or can find new issues while listening to other
in the potential defects he finds reviews. The discussion takes place on these issues. If the issue is a defect then
self-preparation log.
The reviewers also record the time moderator accepts it or otherwise explains why that issue is not a defect.
they spent in the self-review.
.Relevant checklists, guidelines, and standards After the discussion the agreement is reached and a team member called scribe
may be used while reviewing.
.The records all the identified defects in the defect log. At the end of the meeting, the seribe
sample self review log is as shown below
reads out the defects recorded in the defect log for a final review by the team members
Projoct Name: Note that only defects are identified and not the sohution. The final defect log is
Code For: prepared which is the official record of the defects identified in the inspection and may
ID: also be used to track the defects.
Reviewer Name: For analysing the effectiveness of the review the information is summarised and a
Effort Spent(in Hrs): summary report is prepared. The summary report describes the work product, the total
Defect List effort spent, different review process activities, total number of defects found for each
category and size.
Name of defect ** **. *ik*******
Description Location Status The sample summary report is as shown below
(minor, major, critical)
Project Name XYZ
Work Product Code
Name AAA
Size of the product 30 pages
TECHNICAL PUBLICATIONS -
An up thrust for An up thrust for knowledge
knowledge TECHNICAL PUBLICATIONS -
6- 8 Software
Soware Engineering Coding and Testing S o f w a r eE n g i n e e r i n g

9
ftware Coding and Te
Review Team R1,R2,R3,R4,R5 Types o f Documents
of software docum
Effort are two types
There
Preparation 10 hours dternal Documentation: The internal documentation is
part of source code. a
Group Review Meeting 5 hours Inserth

of meaningful
comment statements at
appropriate place in the code, use
o f m e a nin f u l module name and variable
oful
ing
name, use of
Total Effort 15 hours appropriate data types, use
are the techniques of internal documentation.
of e n u m e r a t types,
Defects 2.External Documentation: External documentation can be done by creating various
**
Number of Minor defects
such as
orting documents su SRS, Design Document, Test
10
plan and so on.
se documents are normally created
during the software development life cycle
Number of Major defects
activities.
* ********i*sa
Number of Critical defects 2
eistency is the most important and desired feature of software
C documentation.
Total Number of defects 17
Introduction to Software Testing
Review Status Accepted
64
Definition : Software testing is a critical element of softrware quality assuranc
Recommendation for Next Phase and
epresents the ultimate review of specification, design and coding.
Commenis
*****
The purpose of software testing is to ensure whether the software functions appear to
be working according to specifications and performance requirements.
Review Question
64.1 Testing Objectives
1. Explain the process of code review. GTU:Summer-2018, Marks 4; Summer-2019,
Marks 3 According to Glen Myers the testing objectives are
6.3 Software Documentation 1. Testing is a process of executing a program with the intend of finding an error.
Various kinds of software documents need to 2. A good test case is one that has high probability of finding an undiscovered error.
be
development process. The software document includes sourcedeveloped during software
code, executable files, user 3. A successful test is one that uncovers an as-yet undiscovered error.
manual, Software Requirements
installation manual and so on. Specification(SRS), Design document, test document, The major testing objective is to design tests that systematically uncover types of
errors with minimum time and effort.
Purpose
Good documents are
very useful and serve following
6.4.2 Testing Principles
purpose the
1. Documents enhance the Every software engineer must apply following testing principles while performing
software product.
readability, understandability and maintainability of software testing
2. .All tests should be traceable to customer requirements.
They reduce the effort and time
3.
required for maintenance. 2. Tests should be planned long before testing begins.
They are useful in exploring the
system effectively. testing 80 % of al errors
4. They are used to keep track of the 3.The Pareto principle can be applied to software all program modules.
progress of the project. uncovered during testing will likely be traceable to 20 % of
5. Good documents
also help in
overcoming the toward testing "in the large".
Newcomer lesting should begin "in the small" and progress
quickly grasp the new manpower turnover
easily problem
can and
project. 5. Exhaustive
testing is not possible. third party
conducted by an independent
TECHNICAL PUBLICATIONS -
An up thrust for
O.1o be most testing should be
effective,
knowiedge
TECHNICAL PUBLICATIONS
An up thrust for knowtedge
5--11
SofwaraENgIneenng
Software Coding and Testing
Softwere Engineering 6 10
Software Coding and
Testing
ing
6.4.3 Why Testing Is Important ? Testing
Software
strategie development stages
Generally, testing is a process that requires more efforts than any other
V
engineering activity. ware System
testing System engineering
Testing is a set of activities that can be planned in advance and cond.
systematically Validation
Requirements
If it is conducted haphazardly, then time will be wasted and testing
only more e
worse errors may get introduced.
Integration
This may lead to have many undetected errors in the system
being develoned
testing Design
Hence performing testing by adopting systematic strategies is very much Unit
in during development of software.
essential testing Code
Review Question
1. What is importance of testing practices ? What are the principles of testing practices ?
6.5 Testing Strategies
GTU Summer-2012, 2016, 2018, 2019, Winter-2019, Marks 7
We begin by 'testing-in-the-small' and move toward 'testing-in-the-large'.
Various testing strategies for conventional software are
1. Unit testing Fig.6.5.1 Testing strategy
2 Integration testing
3. Validation testing 6.5.1 Unit Testing
to ensure their
are tested independentdy
4 System testing I n unit testing the individual components
1. Unit testing In this type of testing techniques are applied to detect the errors quality the errors in design and implementation.
from each software component individually. The focus is to uncover
descnbed as below.
unit test are
conducted during the out of the
2. It focuses on issues associated with verification and program T h e various tests
that are flow in and
Integration testing -
tested for proper
information
interfaces are
construction as components begin interacting with one another. 1. Module
maintained
program. is
3.Validation testing It provides assurance that the software validation criteia
Local data are
examined to ensure
that integrity
operates properly
at
(established during requirements analysis) meets all functional, behavioural and 2.
to ensure that the module
are
tested
performance requirements. 3. Boundary
conditions
o r restrict
processing.
in
established to limit that all
statements
boundaries
4. System testing - In system testing all system elements forming the system is tested
are tested for ensuring
(independent) paths
as a whole. All the basis only once.
4 module have
been executed
the tested.
should be
5. All error handling paths
A n up
thnust for knowdedg
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thust for knowledge
6-13 Software Coding
Sofware
EDgineening
and Testing
Software Engineening 6 - 12
Software Coding and
Testing testing is to uncover
of integration
Things to be tested The focus
Design and
construction
ofsoftware architecture
Source program
Integrated functions or operations at subsystem level.
Interfaces Interfaces
and interactions between them.
Module Local data
to be structuresS Generating Resource integration
and/or environment integration.
/arious tested Boundary condition be carried out using two approaches.
modules
Independent path The integration testing can
in program integration
Error handling paths 1. The
non-incremental
Test 2. Incremental integration
cases
Integration testing approach
Fig. 6.5.2 Unit testing
6. Drivers and stub software need to be developed to test incomplete software
The "driver" is a program that accepts the test data and prints the relevant
results. And the "stub" is a subprogram that uses the module interfaces and
performs the minimal data manipulation if required. This is illustrated by
following Fig 6.5.3. Incremental integraton
Non-incremental integration
Top down testing
Big bang Bottom up integration
Driver Interface
Local data structures
Regression testing
Boundary conditions
Independent paths Smoke testing
Module Eror handling paths
Results
approach
6.5.4 Itegration testing
Fig.
approach. Al
Stub Stub by the "big bang"
Test non-incremental integration is given is tested as
a whole.
The entire program
cases advance. The Correction is
combined in whole.
components are tested as a
results. A set
of e r r o r s is the entire
the size of
Fig. 6.5.3 Unit testing envlronment And chaos usually complicated by
of c a u s e s is
continues
because isolation This process
dificult new ones
appear.
corrected
7. The unit testing is simplified when a component with high cohesion (with one these errors are
program. Once
function) is designed. In such a design the number of test cases are less and
one can easily predict or uncover errors.
infinitely. This approach is simple.
Advantage of big-bang:
to debug.
1. It is hard testing
6.5.2 Integration Testing Disadvantages
easy
to isolate
errors
while
results
2. It is not
validate test
A group of dependent components it is not easy to
tested together
their integration unit.
are to ensure their quality of 3. In this
approach
it is impossible
to
performing
testing,
4. After
The objective is to take unit tested
components and build a program structure that form an
integrated system.
has been dictated bysoftware design. thrust for knowedge
An up
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thust
for knowledge
Software Engineening 6-114 6-15
ftware Coding and
Sotware Engineering Software Coding and
Testing
Testing
A n incremental construction
strategy includes Adriver program 1S written to cO-ordinate test case input and output.
Top down integration
whole cluster is tested.
Bottom up integration 3. The
Regression testing are removed and clusters are combined moving upward in the program
4. Drivers
Smoke testing structure.
6321 Top Down Integration Testing For example
.Top down testing is an incremental approach in which modules M1
moving down through the control structure.
are
integrated byh
.Modules subordinate to the main control module are
in either a
depth first breadth first manner.
incorporated into the svsterm
or
yste m
Integration process can be performed using following
1. The main control module is
steps.
used as a test driver and the
for all modules stubs are substituted
directly subordinate to the main control module.
2. Subordinate stubs
are
replaced one
depth first or breadth first method.
at a time with actual modules
using either
3. Tests are conducted as each
module is integrated.
4 On
completion of each set of tests, another stub is
module. replaced with the real
5.
Regression testing is conducted to
prevent the introduction
Cluster 1
of new errors.
For example
In top down
integration if the depth first
approach is adopted then will start we
M1 Cluster 2
integration from module Mi then we will Fig. 6.5.6 Bottom up integration testing9
integrate M2 then M3, M4, M5, M6 and
M7. then First are collected together to form cluster
1 and cluster 2 Then each
components
subordinate the driver module.
If breadth first M2 cluster is testedusing a driver program. The clusters
we will
approach is adopted then Atter the driver is removed and clusters are directly interfaced to the modules.
testing
integrate module M1 first then M2,
M6. Then we will
M5 and integrate module M3, M4, 6.5.2.3 Regression Testng
finally M7. to other modules by
M5 Regression testing is used to check for defects propagated
6.5.2.2 Bottom Up Integration Testing changes made to existing program.
Thus regression testing is used to reduce the
In bottom Fig. 6.5.5 Program structure side effects of the changes.
up integration the modules at involved in regression testing
integration the -
is done by lowest levels are three different classes of test
cases
moving upward through control structure.
the integrated
at first, then There are
test is used to exercise all software
The bottom Representative sample of existing
cases
up integration process can be carried functions.
1. Low-level modules out
using following steps. likely to be affected by the
subfunction.
are
combined into
clusters that Additional test cases focusing software functions
perform a
specific software change.
TECHNICAL Tests that focus on the changed software components.
PUBLICATIONS An up thrust for
cases
knowledge An up thrust for knowfedge
TECHNICAL PUBLICA TIONS
SoftwareEngineering 6-1/ Sofmware Coding and Testing
Softwere Engineering 6- 16
Software Coding and
Testin
sting ,The requirement specifications are derived and the deficiency ist is created. The
After product had been deployed, regression testing would be
after a change has been made to the product an error that can be
necessaru
because deficiencies then can be resolved by establishing the proper communication
discouor with the customer.
and
it should be corrected. Similarly for deployed product addition of
re
may
new fea ,Finally in validation testing a review is taken to ensure that all the elements of
be requested and implemented. For that reason regression
testing is essential configuration are developed as per requirements. This review is called
software
6.5.24 Smoke Testing configuration review or audit.
.The smoke testing is a kind of integration testing technique used 6531 Acceptance Testing
for time
projects wherein the project needs to be assessed on frequent basis. cal
is kind of testing conducted to ensure that the software
The acceptance testing
a
Following activities need to be carried out in smoke testing in the user work envirorment.
1. Software
works correctly
components already translated into code are integrated into a "build be conducted period of weeks or months.
The acceptance testing
can over a
The "build" can be data files, libraries, reusable
modules or program
components. ram The types of acceptance testing are
in which the of complete
2 A series of tests are 1.Alpha test The alpha testing is a testing version
desigmed to expose errors from build so that the "buila This testing
performs its functioning correctly. software is tested by the customer under the supervision of developer.
is performed at developer's site. The
software is used in natural setting in presence
3. The "build" is integrated with the other builds and the entire
tested daily.
product is smoke of developer. This test is conducted in controlled
environment.
The beta testing is a testing in which the version of software is tested by
2. Beta test
Smoke testing benefits performed at
the customer without the developer being present. This testing is
it is not
customer's site. As there is no presence of developer during
1. Integration risk is minimized. testing,
and report them to
2. The quality of the end controlled by developer. The end user records the problems
product is improved. then makes appropriate modification.
3. Error diagnosis and correction are developer. The developer
simplified.
4. Assessment of is Difference between Alpha and Beta Testing
progress easy.
Beta testing8
6.5.3 Validation Testing Alpha testing
austomer without
or by a This testing is done by the
The integrated software is tested This testing is done by a developer interterence of developer and
is done at
based on
requirements to ensure that the desired of developer any
product is obtained. Customer under the supervision customer's place.
n company's premises. tested under this
In is
validation testing the main focus is to uncover tested using The complete product
as free
Sometime full product is
not
testing. Such product usually given
errors in is
functionalities are
System input/output and only core
alpha testing trial version.
tested.
System functions and information data
System interfaces with external
parts 6.5.4 System Testing
- User interfaces the computer based system
conducted to fully
series of tests
The system test is a
System behaviour and performance Various types of system
tests are
.Software validation can be
performed through a series of black box tests. 1. Recovery testing
.
After performing the validation
tests there exists two 2. Security testing
1. The function or conditions.
and are accepted.
performance characteristics are according 3. Stress testing
to the
specifications 4. Performance testing
for knowiedge
thrust
An up
TECHNICAL PUBLICATIONS
TECHNICAL
PUBLICATIONS- An up thrust for
knowledge
6- 18 Software Coding and -19
Sofwere Engineenng Sofwere Engineeringg
Sotware Coding and Testin
Testing
The main focus of such testing is to test
hig sVstems (e.g banking systems) involving many users
connecting to servers
System functions and performance. (eg using internet) pertormance testing is very difficult
System reliability and recoverability (recovery test). Beta testing is useful tor performance testing
System installation (installation test).
.Systembehaviour in the special conditions (stress test). Review Questions
System user operations (acceptance test/alpha test).
1 Explain testing strategy for conventional softrware architecture. Drao the spiral diagram showing
Hardware and software integration and collaboration. testing strategies with phases of softroare development. GTU Summer-2012. Marks 7
Integration of external software and the system. 2. What are the different levles of testing? Exrplain amy one with suitable erample
6.5.4.1 Recovery Testing GTU Summer-2016 Marks 7
is intended to check the 3. Explain integration testing. GTU Summer-2018. 2019. Marks 7
Recovery testing system's ability to recover from failures
I n this 4. What are the different testing strategies ? Explain amy ome with suitable ezample
type of testing the software is forced to fail and then it is verified
whether
the system recovers properly or not. GTU Winter-2019, Marks 7
5. Compare and contrast alpha and beta testing. GTU Summer-2018, Marks 3
For automated recovery then reinitialization, checkpoint mechanisms, data 6. What are the different levels of testing ? Briefiy discuss the goal of each evel.
recovery and restart are verified.
GTU: Summer-2018. Marks 3
6.5.4.2 Security Testing
Security testing verifies that system protection mechanism prevent
6.6 Testing Conventional Applications
penetration or data alteration. improper
I t also verifies that
There are two general approaches for the software testing
protection mechanisms built into the
system prevent intrusion
such as unauthorized internal or external access 1. Black box testing
or willful damage.
The black box testing is used to demonstrate that the software functions are
System design goal is to make the penetration
attempt more costly than the value
of the information that will be obtained. operational. As the name suggests in black box testing it is
tested whether the input is
accepted properly and output is conrectly produced.
6.5.4.3 Stress Testing
The major focus of black box testing is on functions, operations, external interfaces,
Determines breakpoint of a system to establish maximum service level. external data and information.
I n stress
testing the system is executed in a manner that demands
abnormal quantity, frequency or volume. resources in 2. Whlte box testing
this testing the
A variation of stress In white box testing the procedural
details are closely examined. n
testing is a technique called that they operate according to specifications
.The sensitive testing is a sensitivity testing nternals of software are tested to make sure
structures, logic paths,
testing in which it is tried to uncover data from testing is on internal
white box
class of valid data that may cause a
large and
designs. Thus major focus of loops, etc.
structures, conditions,
instability or improper processing. control flows, data flows, internal data
6.54.4 Performance Testing Marks 7
6.7 White Box Testing GTU: Winter-2017, 2018, Summer-2012, 2019,
.
Performance testing evaluates the run time
real time software. performance of the software, especialuy
In 6.7.1 Basis Path Testing
performance testing resource utilization such basis set of execuhon path is tested. This
time, memory usage as CPU load, this method the procedural design
using
can be
measured. throughput, response In
will be tested at least once.
sis set that every execution path
ensures
TECHNICAL PUBLICATIONS -
An up thrust for An up thrust fose
knowledge TECHNICAL PUBLICATIONS
Software Engineering 6-20 Software Coding
and 21
Testing
SofwareEngineering
Sofnware Coding and Testing
6.7.1.1 Flow Graph Notation
Path testing is a structural testing strategy. This method is intended to amole Following program is for searching a number using binary search
exere exercise every
For
flow graph for the same.
independent execution path of a program atleast once. hod. Draw a
Following are the steps that are carried out while performing path testing. (int key, int n, int a [ 1)
od search
Step 1: Design the flow graph for the program or a component.
Step 2: Calculate the nt mid;
cyclomatic complexity. int bottom = 0;
Step 3: Select a basis set of path. 1;
int top
=n-
Step 4:Generate test cases for these paths. 3 while (bottom=top)
( mid = (top + bottom)/2;
Let us discuss each in detail. 4) if (a (mid] = = key)
5)
Step 1: Design the flow graph for the program or a component.
Flow graph is graphical printf (Element is present');
a
representation of logical control flow of the
a
graph consists of circle called flow graph node which basically program. Such
a return;
represents one or }/ end ofif
more
procedural statements and arrow called as edges or links which
control flow. In this flow basically represent else
graph the areas bounded by nodes and edges are
regions. Various notations used in flow graph are (See Fig. 6.7.1) - called
if (a [mid] < key)
8)
bottom = mid + 1;
OStatement 1 else
10) top = mid - 1;
Sequence
OStatement 2 F/end of else
/ end of while
11) }// end ofsearch
True Q alse The flow graph will be
If else
while
botom>toPwhilebottom top
True
False
While
a mid a mid key
==key (6 amid) > key
- afmid key
Casese n
Case
Case
regions
Fig.6.7.2
Fig.6.7.1
TECHNICAL PUBLICATIONS An up thrust
for knowledge An up thnst
or kowdedge
TECHNICAL PUBLICATIONS
w

Test Test Test priority Defect


Test steps everiby
Test Test case Test case case status
name descriptlon Actualstatus (PIF)
ld Step Expected

Set bottom = 0 Initially bottom


Validating Checking the = n
-
1 top will be Design
the list bottom and top
top values for check if true. But during
boundaryy bottom < = top iterations list's
the list of
elements by while loop. length wil be
reduced and if
This condition
defines the entire list gets
length of the Scanned at one
list from which point
the key is (bottom > = top)
searched. will be reached
then return to
main.

Checking Checking if Set mid = (top


Ifalmid]= key
middle + bottom) / 2 value then print
ist
element element of
Design
with key array i equal
Then compare message Element
is present" and
if almid] is
to key value equal to key. return to main.

Set bottom
ifalmid) ís
key value if mid +1 and
The right sublist
almid] is> key
will be searched. Design
then goto The left sublist will
value "while" set top be searched for key
mid +1 and element
go back to
"while" loop
Software Engineering SofvareEngineering
6-25 Software Coding and Testing
6-24 Software Coding and
Testing
Example 6.71 Draw the flow graph for finding maximum of three numbers
testcases using cyclomatic
complexity.
and derive the a>b )o
Solution:T flow graph for given program is -(From Fig. 6.7.3)
redicate
temp a
node temp b
The nodes are
numbered it is shown
in shaded form.
temp a temp b temo
C>temp relum
Predicate
node
tempc temp
R2 Fig.6.74 Flow graph
return
temp c temp Step 3: Add cyclometic complexity.
Fig. 6.7.3 Flow graph for finding maximurm of three numbers
1
23
2-151
1 1
Cyclomatic complexity E - N+2 = 7- 6+2 =3 1-1 =0
1-10
Cyclomatic complexity = P + 1 =2+1 =3
2-11
Cyclomatic complexity = Regions encountered =3
-1 0
Hence cyclomatic complexity of given
program is 3. 213
6.712 Graph Matrices
The resultant value is the cyclomatic
Definition : Graph matrix is a
square matrix whose size is and add 1 to it.
equal to number of nodes the results of each row
of the flow graph. complexity.
For in testing ?
example consider a flow graph - How to extend graph matrix for use
in testing.
graph matrix for
use
The graph matrix will be extend
indicate how to
Following properties nodes get executed.
For between the
computing the cyclomatic complexity. Following steps are
adopted - The number of times of link
Step 1: Create a graph matrix. Mark the corresponding entry as 1 time spent in
traversal ofa link.
if node Ais he processing
connected to node B. required.
i) The number of resources
link
traverse
the
Step 2 Count total number of 1's from each row
and of memory required
to
subtract 1 from each The amount
corresponding row.
Testing
6.7.2 Control Structure
white box testing.
as
sometime called
The
struchural testing is
PUBLICATIONS
A n up
ust
brknowede
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Sotwere Engineering 6-27
6- 26 Software Coding and Testing
Software Coding and
S o f w a r eE n g i n e e n i n g
Testing
In structural testing derivation of test cases is
according to program
2 Nested loops
program is used to identify additional test cases. structur.
Hence knowledge of the ture. be tested as follows.
loop can
The nested
Objective of structural testing is to exercise all
program statements. Testing begins
from
the innermost
6.7.21 Condition Testing loop first. At the same time set all
To loops to minimum values.
test the logical conditions in the the other
program module the condition
This condition can be a Boolean condition or a testing is used. test for innermost
relational expression. The simple looP
The condition is incorrect in loop is done.
following situations.
i) Boolean operator is incorrect, missing or extra. the loop testing for the next
i) Conduct
i) Boolean variable is
incorrect loop by keeping the outer loops at
ii) Boolean parenthesis may be missing, incorrect minimum values and other nested
or extra.
iv) Error in relationaloperator. loops at some specified value.
v) Error in arithmetic This testing process is continued
The
expression. iv)
condition testing focuses on each
The branch testing is a condition
testing condition
testing strategy
in the
program.
in which for a

until all the loops have been tested.


3.Concatenated loops:
O
condition each and every true or false branches are tested.
compound Fig. 6.7.6 Nested loops
The domain testing is a
The concatenated loops can be tested in
testing strategy in which relational
expression can be the same manner as simple loop tests. (Refer Fig. 6.7.7
using three or four tests. tested
4. Unstructured loops:
6.7.2.2 Loop Testing The testing cannot be effectively
conducted for unstructured loops. Hence these types
Loop testing is a white box 6.7.8)
constructs. testing technique which is used to test the
of loops needs to be redesigned. (Refer Fig.
Basically there are four types of
loops. loop
1. Simple loops:
The tests can be
performed for n number of classes.
where
i) n
=0 that means
skip the loop completely.
i) n =
1 that means one
pass through the loop is tested.
i) n =
2 that means two
passes through the loop is
tested.
iv) n m that means
=
testing is done when there are
passes where m < n. m
-
v) Perform the testing when number of
n, n+ 1. passes are n
1,
Fig. 6.7.5 Simple loopP
Fig.6.7.8 Unstructured loops
Concatenated loops
Flg. 6.7.7
TECHNICAL PUBLICATIONS A n up
thrust forknowiedge
An up thust PUBLICATIONS
for knowledge TECHNICAL
Sofhware Engineering 6- 28
Software Coding and
Sofwere Engineering
6-29 Software Coding and Testing
Testing
6.7.23 Data Flow Testing
.The testing based on data flow mechanism
performs testing on
definitions
of variables in the program.
uses and
.In this method of testing, definition and use chain (DU
chain) is required. The Dt
chain is obtained by identifying the def and use
pairs from the program struchie
This of re.
testing is also called as DU testing strategy.
strategy Wile
Set DEF(n) contains variables that are defined at node n.
Set USE(n) contains variables that are read or used at node n.
For example
1. S:=0;
2. a:=0;
3.
4.
while(a<b)
a:= a+2;
. b=b-4;
6. iffatb<20)
7. S=s+atb;
else
8. S:Sta-b;
For above given programming lines the DU chain will be -
DEF(1) = ls} USE(1) = {o%
Fig. 6.7.9 Flow graph
DEF(2) = la) USE(2) = {0}
DEF()= ( USE(3) Review Questions
=
la, b}
Condiion testing iü) Loop testng
DEF(4)= (a} USE(4) = {a) 1. Explain the following: i) flow
? How a t dtermnei for
a
What is ayclomatic complerity
2. What is basis path testing?
DEF(5) =
b} USE(5) =
{b} example
with an
Sraph ? lustrate
module. Justify uwith ezmple.
DEF(6) = (o USE(6) = la, b} statements in a program
covers all
. B a s 1 s path testing
methods.
and lop testing urth ezample
DEF(7) = s} USE(7) = (s, a, b} 4 Explain the graph matrir gruph ?
lastrate
it determined for aflow
Hoo is
is cyclomatic complexity? flow graph usung
the cyclomatic complerity
What
DEF(8) = (s} USE(8) = ls, a, b}
. What is cyclomatic complerity?
Define steps to fnd GTU:Summer-2012,
Marks 7
DEF9) = (o USE(9) = lo Summer-2019,
Marks 7
umple.
GTU : Winter-2017,
bor testing with graph.
am
flow
DEF(10) l0 USE(10) =(0) 7. Explain white
cyclomatic
complez1ty wSung
? Define steps tosrd
3
20O18, Marks
is cyclomatic complerity GTU: Winter-2017.
Identify all DU pairs and construct test cases that cover these pairs. .What
7
Marks
Identify all DU paths That means for each DU pair (n1, n2) for variable a GTU: Winter-2013,
exercise al possible paths nl..n2 that are clear of definitions of a. 6.8 Black-Box Testing testing
Identify all uses That means for each DU pair (nl, n2) for a, exercise behavioural
path n..n2 that is clear of definitions of a. atleast on The black box testing
is also called
as
hrust for k n o w o d g e
An up
PUBLUCATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Software Engineering
- 30 S o f t w a r eE n g i n e e r i n g
6-31 Software Coding and Testing
Software Coding and
Black box Testing
testing methods focus on the functional For example
Test sets are derived that fully exercise all functional
requirements of the software
The black box requirements. Area code Input condition Boolean The area code may or may not be present
testing not an
different class of errors than whitealternative to white box testing and it 700.
Value defined between 200
Input condition, range and
-
box
testing uncovers
Why to perfom black box Dassword: Input condition, Boolean A password may or may not be present
testing ? Seven character
Input condition,
value
string.
-
Black box testing uncovers
1.
following types of errors. Command: Input condition, set Containing commands noted before.
Incorrectmissing functions
or
2. Interface errors
3. Errors in data 6.8.2 Boundary Value Analysis (BVA)
structures
4. Performance errors . Boundary value analysis is done to check boundary conditions
5. Initialization or termination .A boundary analysis is testing technique in which the
value a elements at the
errors the domain selected and tested.
edge of are
6.8.1 Equivalence Partitioning .Using boundary value analysis, instead of focusing om input conditions only, the
Input set
I t is test cases from output domain are also derived.
a
black box technique that divides the that complements
input domain into Boundary value analysis is a test case design technique
classes of data. From this
data test cases can be derived. o oo equivalence partitioning technique.
o o
An ideal test case uncovers .Guidelines for boundary value analysis technique are
a class of errors values x and y, then test
that might require Valid input Invalid input 1. If the input condition specified the range bounded by
to be executed before
many arbitrary test cases
cases should be designed with values x and y. Also test cases should be with the
observed.
a
general error is
values above and below x and y.
should be
In of values then the test cases
equivalence partitioning the equivalence 2. If input condition specifies the number
well as with the values that
are
lasses are evaluated for System and maximum values as
given input designed with minimum should be tested.
condition. maximum and minimum
Equivalence
class Just above and below the
of valid or invalid represents a set the range by x and y, then test
bounded values
states for
input conditions. 3. If the output condition specified should be with the
values x and y. Also
test cases
.Equivalence class guidelines can be as given cases should be designed with
below values above and below x and y.
should be
then the test cases
If input condition specifies condition specifies the number of values with the values that are
range, one a O t output well as
maximum values as
valid and two invalid aesigned with
minimum and
should be tested
are defined.
equivalence classes below the maximum and minimum
Just above and boundaries then the test cases
If structures specify such
an
input condition requires .It the internal program
data
boundaries of data structure can be
value, one valid and
a
specific Output generated
be designed such
that the values
at the
two invalid must
equivalence classes are defined. Fig. 6.8.1
tested.
If an
input condition specifies a
member of
equivalence class is defined. a set, one valid and one invalid For example: condition -2, 10],
with input
If an input
condition is Integer D
is defined. Boolean, one valid and -2, 10, 11,
-
1, 0
one invalid Test values
equivalence class
TECHNICAL PUBLICATIONS An up thrust
for knowledge
An up thrust for PUBLICATIONS
knowledge TECHNICAL
Software Engineering 32 6-3
Softwere Coding and SotwareEngineering
Software Coding S
and t n g
sting
If input condition
specifies a number values, test cases should developed to evo
below this min andercise
the minimum and maximum numbers. Values
Runs
just above and
It denotes the number of rows in the
should be tested. max array. These can be directly translated to the
test cases.
Enumerate data E with input condition {2, 7, 100, 102
Test values 2, 102, -1, 200, 7 Factors
of columns in the array. These can be
t denotes the number directly translated to
6.8.3 Graph based Testing maximum number
of vanables that can be handled by the array.
Graph based testing:
I n the graph Level
based testing,
a
graph of objects present in the
Object Directed link This number denotes the maximum number of values that a single factorfcoumnm) can
system is created. # 1 Object
#2 take.
.The graph is basicallya Node L9 orthogonal array
collection of nodes and links. |Undirected weight
link This array is used to generate the test cases. This array
has a balancingg property.
Each node
represents the object Parallel the test cases generated by
that is
inks That means the testing can be done uniformly by executing
participating in the
Bidirected link the L9 orthogonal array.
software system and
links Object Object
#4
represent the relationship link weight
among these objects.
Example
Fig. 6.8.2 Graph notations application which has three sections top,
Consider that we want to develop an
The node weight represents the bottom and middle.
properties of object and link weight represents the properties or characteristics Associated with each section we will consider one variabie. That means now we
the relationship of the of
objects. have to analyse only three variables
After creating the hence the values can be
graph, important objects and their with Boolean values and
relationships are tested. These variables can be assigned
6.8.4 Orthogonal Array Testing true or false.
then there would be 2
= 8 test cases
f we decide to test it completely
There are many the values to L9 orthogonal array
applications for which very small number of input is needed and orthogonal array testing
method, mapping
values that each input
requires might be bounded. In such a situation the number of By
test is would be
cases
relatively small and can be
increased then it will increase there will bemanageable.
But if the number of actors
input gets factor2
large number of test cases. And factor aise
become impractical or
impossible. Orthogonal array testing is a kind of testing may Run1 false
false
false
false
which can be applied to the
applications in which input domain is testing method
Run2 true true
taise
there could be large number of test
cases.
relatively small but Run3 false talse
true
faulty regions can be tested and thus the numberUsing orthogonal array testing method,
only Run4/false
Vaniable from
of test cases can be reduced. Variable from
third section
Orthogonal arrays are two dimensional arrays of Variable from
second secton
is true SU
interesting quality that by choosing any two columns numbers which possess the
in the 1 section
distribution of all the pair-wise combinations array you receive an even Is true
ofvalues in the levels.
important terminologies used in orthogonal array. Following are some left to all the
the values
are
testing methods -

Thus
would be
Now the test cases
up thrust for knowiedge
TECHNICAL PUBLICATIONS An up TECHNICAL
PUBLICA7ONS
An
thrust for
-
knowledge
SowereEngineering
6-35 Software Coding and Testing
Software Engineering - 34
Software Coding and Testing
The advantage
of conducting black box testing is to uncover following types of
1. Display the application without any section. 2 The
2 Display the application with top section only. errors
i Incorrect or missing functions i. Interface errors
3. Display the application with the middle section only. ii. Errors in external data struchures iv. Performance errors
4. Initialization termination errors
Display the application with the bottom section only. V.
or
Thus there are only four test cases in all and no need to test all the
combinations n
Disadvantages
fact we have considered this test cases by considering the single parameter. be tested.
This kind n 1. All the independent paths within a module cannot
testing is called single
mode fault detection. By considering these test case
the faulh false sides cannot be tested.
can be fixed. 2. Logical decisions along with their true and
and the boundaries of these loops cannot be exercised with black box
Double mode fault detection In this method, two parameters can be considered 3. All the loops
at
a time for determining the number of test cases. testing.
cannot be validated.
4. Internal data structure
Advantage
White box Testing
The orthogonal array testing approach enable the developer to
provide good Advantages and Disadvantages of
test
coverage with very few test cases.
Advantages
The intermal structures, data flows,
Review Question 1. Each procedure can be tested thoroughly.
can be tested in detail
logical paths, conditions and loops
1. What is black box testing? Explain any one technique to carry out black box
testing. 2. It helps in optimizing the code.
GTU: Winter-2013, Marks 7 be easily automated.
3. White box testing can of
it is easy to find out
which type
6.9 Comparison between Black Box and White Box Testing 4. Due to knowledge of internal coding
structure
the application efficiently.
GTU: Winter-2012, Summer-2015, Marks 7 input data can help in testing
Sr. No. Black box testing Disadvantages for the tested. Thus the
White box testing structure and coding is desired
internal
1. The knowledge of this the cost is
testing
1. Black box testing is called behavioural White box testing is called for whitebox testing Due to
testing. glass box skilled tester is required
testing
2 Black box testing9 examines some increased.
of the software and hence
In white box path
fundamental aspect of the testing the procedura difficult to est
each and every
system of
ite regard for intemal logical structurewith
details, all the logical paths, all the 2. Sometimes it is
internal data structures are closey untested.
the software many paths may go ditficult because
it may use specialized
3.
examined white box testing
is very
During black box testing the program White box testing lead to test the 3. Maintaining the tools are required.
cannot be tested 100 and debugging
percent. program thoroughly. tools like code analyzer identiñed.
This type be
of testing is suitable for
large This ype of testing is suitable for small functionality
can not
projects. 4.The missing
projects.
Advantages and Disadvantages of Black box Testing Review Questions GTU: Summer-2015, Marks 7
Advantages: black box and
white box testmg
Black bax and white box testing
.Explain tester"comptre
role of
1. The black box What s the GTU Winter-2012. Marks
testing focuses on fundamental
aspect of system without beng 2. What is software
testing?
concerned for internal logical structure of the
software.
thrust for knowiedge
An up
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Softwere Engineering - 36 6-37 Software Coding and Testing
Software Coding
tware Engineering
and
Testing
6.10 Testing Technique and Test Case GTU: Winter-2019, Marks 3
Precondition
Test cases are used to determine the presence of tault n the Test Test case Test steps Test case Test Defect
program. Sometimea Test
even if there is some fault in our description status priority severity
program the correct output can be obtained for case id
case
some
inputs. Hence it is necessary to exercise those set of name Pass/Fail)
a
for which falta
lts inputs Step Expected Actual
(if any) can be exposed off.
Executing test cases require
money because i) machine time is
execute test cases ii) human efforts are involved in
required to
executing test cases. Hence in
the project testing minimum number of test cases should be there as
far as
possible.
The testing activity should involve two goals
i) Maximize the number of errors detected.
ii) Minimize the number of test cases.
in the testing process. Careful selection
.Test case specification is the major activity
The selection of test case should be such that faulty module or
program segment of test cases will help in conducting proper testing
must be exercised by at least one test case.
specification should be before using
There are two basic r e a s o n s why test
case
Selection of test cases is determined by some criteria which is called tester to reveal as many e r r o r s as
test Firstly it will assist the
as
selection criterion. Hence the test selection criterion T can be defined as the them for testing -
be produced.
set of and secondly the high quality code
can
conditions that must be satisfied by the set of test cases. possible from the program
Testing criterion are based on two fundamental properties Test Case Execution
reliability and 6.10.1
validity. to execute the test cases.
After test case specification the next step is
A test criterion is reliable if all the test cases detect same set of errors. stubs
A test criterion is valid if for any Execution of test cases requires driver and
error in the program there is some
set which procedure is sometimes called as
test procedure
causes error in the The test case execution
required for
program. consists of special requirements
specification. This specification of testing
the format of reports
For testing criteria there is
reliable if
an
important theorem "if testing criterion is valid and
setting up the
test
environment. It also
describes
a set satisfying testing criterion succeeds then that means
program
contains no errors".
results.
is test summary report and
during testing
The most common report produced
Generating test cases to satisfy criteria is complex task. used in
error report. cases and is
executon of entire test
.The test case
specification records the results of the testing, the conditions used for describes the defects encountered
T h e test summary
report the errors
and
testing particular unit. It also specifies the expected test results. It records the The error report specifies
outcome of test project m a n a g e m e r n t .
cases (Pass/Fail). The sample structure of a test case
specification during testing to estimate the test efforts.
mportant
is as
given below execution of test cases
it is in testing activities, and
During the by the t e a m
effort actually spent
is the total is being performed.
Testing effort s u t f i c i e n t testing
whether or
not
indicator of
is an
3
Review Question GTU: Winter-2019. Marks
case
of test
1. Explain concept
An up thnust for know
wiedge
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust for knowledge
Sotware Engineering Software Engineering 6-39 Software Coding and sting
6-38
Software Coding end Testin
6.11 Test Suites Design 6.12 Testing Object Oriented Applications
.Test suite is a collection of various tests that The object oriented architecture is a layered subsystem that contains various
help the tester in
executino aborating classes. The collaborating classes perform various functions to achieve the
reporting the test case execution. and
system r e q u i r e m e n t s .
Various test cases can be added to test suites.
.The test suite In this section we will discuss various object oriented testing methods
can be generated from the test plan. Refer Fig. 6.11.1.
6.12.1 Conventional Test Case Design Methods
Test plan
white box testing: The white box testing methods can be applied to operations
defined within the class. Various testing methods such as loop testing, basis path testing
are useful
in testing every programming statements.
Test The black box testing methods are also useful for 00 system
Sute 1
Test Test Black box testing:
Suite 2 SUite3
testing. The use cases in object oriented design provide the input to the black box testing
method.
6.12.2 Fault based Testing
Test Test Test est Test
case 3 case 1 case 3 of testing method in which plausible
case The fault based testing method is a kind
identified.
Test Test
faults (appearntly valid) are
Test
three types of faults and
those are wrong operation
case 2 case 2 The integration testing detects
case 2 invocation.
incorrect
used, unexpected result,
Fig. 6.11.1 Test suite preperatilon F o r determining the plausible
faults various operations areinvoked.
to data attributes
and operations of the class
The test suite often also contains The integration testing is applied
more detailed instructions or
goals for each
collection of test cases.
6.12.3 Scenario based Testing
The test suit document contains the not focus on
two main areas
fields such as a test case ID, test is that it does
step or
-
order of execution number, related fault based system various
T h e drawback of 2. interactions among
and check boxes for whether the requirement(s), depth, testcategory, author, and those are 1.
What are the
users' requirements
test is manual or and has been automated.
Each test case
represents some scenario. For
subsystems. what the user
wants from the system (users
purchase contain various test cases as - example a test suite for online
Scenario based subsystem
focuses on
Hence test cases
Test Case#1: Login expectations). the scenarios.
are
uncovered by building
interaction errors
Test Caset#2: Search for Product Many based testing are complex
for scenario test.
that are created subsystems using a single
Test Caset3: Add Product to multiple Suppose he
Cart based testing
focuses on
who has a credit card.
Scenario customer
Test Caset#4: Checkout example of
a
customer of that bank, his
us take an
it Being
the
."Test suites Example Let -
bank about
by simply
changing
can
identify gaps in a
testing effort where the successful compleion of lost his credit card.
So informs
in the
banks computer.
Ideally,
available. But many
one test case must occur be stored his history
before you begin the next test case. information
must
of card'
should
make
history 'renewal
has to be entered.
as a
the status of his card of that
customer
information
the complete
ames
An up
hnust
for knowledge
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust for
knowledge
-
ofware Engineening 6-41
Softwere Engineering - 40 Software Coding and
Software Coding and Testing Testing
So if scenario testing would have been done for this test , In use-based testing the Integration testing
scenario this buo independent classes and
have been found well in advance. would
e
dependent classes are
6.13 Object-Oriented Testing Strategies tested. The independent
classes are those classes that Thread based Use-based
The primary objective of testing for
object oriented software is t uncover as much testing testng
errors as possible with uses the server classes and
manageable amount of efforts in realistic time span.
The object oriented testing dependant classes are those
strategy is identical to conventional
The strategy is start testing in small and work testing strateev classes that use the
outward to
basic unit of testing is testing in large. The
class that contains attributes and independent classes. In use Independent
cdlass testing
Dependent
dlass testing
operations. These classes based testing the
integrate to form object oriented architecture. These are called Fig.6.13.1 Integradon testing in O0 context
classes. collaboratine independent classes are
tested at the beginning and
6.13.1 Unit Testing in 00 Context the testing proceeds towards testing of dependent classes.
.Class .Drivers and stub : In 00 context the driver can be used to test operations at
is an encapsulation of data attributes and
corresponding set of operations. lowest level and for testing whole group of classes. The stub can be used in the
The object is an instance of class. Hence
and operations.
a
objects also specify some data attributes situations in which collaborations of the classes is required and one coilaborating
class is not fully implemented.
In object oriented software the focus of unit
testing is considered as classes or The cluster testing is one step in integration testing in 00 context. In this step all
objects the collaborating classes are tested in order to uncover the errors.
However, operations within the classes are also the testable
units. In fact in O0 and Conventdonal Testing
context the operation can not be tested 6.13.3 Difference between 00 Testing Strategy
single isolated unit because one
as
operation can be defined in one particular class and can be used in
Strategy
classes at the same time. For multiple
example consider the conventional software are based on unit testing
operation is defined as super class an at the same time itoperation display0.
can be used
This T h e testing strategies applied to
and system testing But in object oriented
bemultiple derived classes. Hence it is not possible to test the by the can integration testing, validation testing and integration testing changes
some of its meaning
module. operation as single testing, the unit testing loses
Thus class testing for O0 significantly. "test in small
software is
equivalent to unit is also based on the principle
software. In conventional software testing for conventional T h e object oriented testing strategy
flow are units of system, the algorithmic details and data that and then work "in the large". the main focus
testing but in O0 software the class attributes and operations;
encapsulated
lasses and 1. Testing in the small involves
operations (that are encapsulated within the class and state behavior and collaboration within the class.
the unit of of class) are is on
communication
testing. involves a series of regression
tests to uncover errors due
2. Testing in the large classes
6.13.2 Integration Testing in 00 Context to
communication and collaboration among
errors in hulfilling requirements.
to detect
as a whole is tested
.There two
are
strategies Finally, the system
1. Thread based testing
used for integration testing and those are -
2. Use-based testing
.The thread based
testing
Review Questions
event for the integrates all the classes that respond to oriented testing strategies.
system. Each thread is then tested
one
input o 1. Explain the object and comoentional strategy.
individually. 2. Differentiate
betueen 00 testing strategy
PUBLICATIONS
An up thrust for knowtedge
TECHNICAL
TECHNICAL PUBLICATIONS An up thnust
for knowledge
-43
shwereEngineerning
vare Coding and Tes
Software Engineering 6- 42
Software Coding and
Testing Component testng
6.14 Testing Web Applications
onent testing the content and functional units are tested. For web application
n
The process of testing
begins with content testing. Fig. 6.14.1 shows the nit
to the web page (containing web contents,
unit refers
refer
navigation links and
pyramid with associated testing strategies. The testing flow proceeds from left todesien
tern
he it
may be a functional component that provides the services
elements) or
and from top to bottom. right grocessing
p r to the user or it can be intrastructure component. The testing of each functional
direc
is
unit
done in the same manner as an individual module tested in comventional
This testing is mainly of black box testing but sometimes if the processing is
Content testing Interface testing software.
nlex
compl
then the white box testing may also be used. Ater constructing the web
User are used as
srchitecture, the navigation
and component testing test For integration
Navigation architecture is considered. If the web architecture is linear,
testing integration testing,
the web
be integrated and tested
rid or simple hierarchical structure then all the web pages can
Interface manner as a conventional software.
design Component in the same
testing to that side effects occur. Cluster testing
Aesthetic design Regression testing is applied ensure no
web pages and those are tested for uncovering the errors
integrate all the collaborating
Content design Configuration in collaboration.
testing
Navigation design
|Performance
testing
Security Configuration testing
Architecture design testing uncovers the errors particularly from client server environment.
Configuration testing browsers, operating
Component design used in this testing. All probable
A cross reference matrix is used for testing compatibility
communication protocols are
systems, hardware platforms mentioned configuration and
Technolog9y conducted for all the above
the web application. Tests are
Fig. 6.14.1 Testing process errors are uncovered.
Content testing
Security testing in web applications
and its
Content testing is for vulnerabiliies
uncovering the errors from the web document. Such
testing is Ihs testing is useful
to expose the
similar to proof editing of the document. The
in cross
typographical error, grammatical mistakes, environment.
errors
referencing, errors in graphics can be exposed off.
User interface testing Performance testing -
are assessed
things when user
performance testing following web application
In this testing, the interaction mechanism and
aesthetic aspects of the
n
time and reliability of a
are tested.
user interface How is the response
increased ? of
traffic gets tor degradaaon of performance
Poorly implemented interaction mechanisms, inconsistencies and those components
responsible
newly introduces interfaces all such errors are uncovered in user ambiguities caused
W h i c h are
in
? objective and
interface testin8 the web application degradation
on
overall
of performance
Navigation testing What is the impact ?
of web application
Navigation testing is concermed with use cases. The test cases for requirement
are designed to exercise usage scenario
navigation testing Mobile Applications
against navigation design. Navigation 6.15 Testing
which application
mechanisms implemented within the interface B a
proess by
NSUs. In this kind of testing the use cases are layout
testing usability
are tested application unctionality,
against use-cases and or
mobile
devices is
tested tor its
identified correctly and are corrected. Mobile testing
handheld
mobile
for
Software developed thnust or knowiedge
An up
PUBLICATIONS
TECHNICAL PUBLICATIONS
TECHNICAL
An up thrust
for knowledge
Softwere Engineering 6-45
6-44 Software Coding and Testing Software

Engineering
Software Coding and Testing
and 6.16 Testing Tools
consistency. There is change in behavior and usage pattern of mobile
applicaa
Testing mobile application is more complex and fime
traditional desktop and web application.s Hence there areconsuming
as
comparedd to
plications. sting is
omated software testir becoming more and more
important for many software
mobile application testing
some major
challenos
nges in project

in order to automatically verify key functionality.


Various
areas in whi automated testing tools are used are -
Challenges in Mobile Testing
automated testing tools can be used for reviews,
1. There is a . The walkthroughs and inspection.
huge number of mobile devices available ranging from
ipads and wearable tech provides a huge handsets, to
smart phones, to tabs, to The tools can be used tor various activities such as regression testing, defect
environments which the mobile diversity of management, test management and so on for a stable system.
application faces.
2. There is
diversity in mobile network operator such as CDMA, Configuration tools can be used tor contiguration control and version
management.
The mobile GSM and so on
applicatiorn has to work in these diverse on.
environment.
3. A mobile app Advantages of using Automated Testing Tools
can be a native app, a web
app or a hybrid app which has 1. The testing becomes reliable and there is no chance of human error.
contents. Testing of each such both
app type is different than
implementation is another as their
quite different from one another. 2. The testing tools are reusable.
4. There are different operating systems for mobile such as Android, 3. The testing becomes efficient due to use of automated tools.
and so on. Each operating ios, Windows
system has its own limitation. Testing the 4. The cost involved in testing gets reduced due to use of automation.
work on diverse
operating system is real challenge.a application to
5.
Choosing the test method for mobile Disadvantages of using Automated Testing Toois
application can be tested on emulators application
is also one
challenge. The mobile
tested
or on actual
emulators and trying out different
on
devices. Some issues can not be
1. The high investment is needed in training the people to use the tool
types of devices is time 2. The people involvement is required for test preparation
consuming. and cost
3. Many times a lot of testing areas left uncovered.
Criteria used for Mobile
Testing Let us discuss some examples of testing tools
1.
Testing the mobile application to ensure that it is working as per the requirements.
2.
Testing the mobile application to work on 6.16.1 Win Runner
different OS
networking environment. platforms, devices and automation tool It is the most
3. WinRunner is Mercury Interactive's enterprise
Testing the mobile application
notifications, data cable insertionduring
the commonly used automated testing tool
interrupts such as incoming calls, SMS,
removal and so on.
or
4. Testing the mobile application for Features
devices. installation, un-installation, updation user to set up varnious operaions
that
on the Automatic Recovery It is possible for the
will
5.
Testing the mobile event appears. The recovery manager
application for will become activated if an exception
and data security. security i.e. to check for
attacks, will allow you to set up
a scenario for recovery.
authentication 81ve you a wizard that
be set for WinRunner.
installation mode can
2Silent Installation: The unattended
Review Question support for Internet
WinRunner incudes
Environments:
For Various
1. What is mobile . Support 6.x, Windows XP and Sybase 's Power Builder 8, in
testing? Mention the Explorer 6.x and Netscape
challenges in mobile testing. addition to 30+ environments.
and
most powertul, productive
WinRunner provides the
Cost Effective
application hunctionality.
4. :
cost-effective solution for verifying enterprise
TECHNICAL
PUBLICATIONS An up thust
forknowedge
for knowiedge TECHNICAL
PUBLICATIONS
An up
thrust
Software Engineening 6 46 Software Coding and
Testing
5. Support Multiple Data Combination: WinRunner has an ablity to use
umerous
data combinations for one test. The DataDriver Wizard has been
automatic processing of large amounts of data.
desiened
Quality Assurance
6. Multiple Verification: It can
offer checkpoints for
and this will give the testers the ability to compare
outcomes that occur. In addition to this, it is able to find
various objects that are GUI based.

text, URL, GUI and


the expected outcomes
databases
with the
specific problems with
7 and Management
6.16.2 Load Runner
Syllabus
HP Load runner is a software testing tool from Hewlett-Packard. It is used
to test Quality concepts and software quality assurance, Software reviews (Formal
applications, measuring system behaviour and performance under load. HP Load runner Software reliability, The quality standards: IS0 9000, CMM Si sigma SE technical reviews),
can simulate thousands of users
concurrently using application software, recording and - for SQA
plan
lateranalysing the performance of key components of the application. Contents
Features 7.1 Quality Concepts
Summer-2019, . . Marks 3
1. It has excellent and 7.2 Sofware Quality Assurance (SQA)
monitoring analysis interface where tester can see
reports in Winter-2011, 2013, 2018,
easy to understand colored charts and graphics.
2. It uses C as a default
. Summer-2012, 2014,
programming language. However, it also
supports other 2016, 2018, Marks7
languages like Java and Visual Basic. 7.3 Software Reviews
.Winter-2018, 2019,
3. No need to install it on the server under test. It uses native monitors.
Summer-2019, Marks 3
4. It has support for most of the commonly used protocols.
a 7.4 Software Reliability
5. It has GUI
generated scripts which can be modified per the requirements. as 7.5 Quality Standards
Summer-2014,
6. This tool can quickly point out the effect of the .. Winter-2017, 2018,
wide area network (WAN) on Marks7
application reliability, performance, and response time. 7.6 SQA Plan
Review Questions
1. Explain the concept of automated
testing tool along with advantages and disadvantages of it.
2. Write a note on 1) WinRunner 2) LoadRunner.
-
O00
TECHNICAL PUBLICATIONS -
An up thrust for
knowledge
Software Engineening9 - 46
Software Coding and
Testing
5. Support Multiple Data Combination: WinRunner has an
ability to use
numerote
data combinations for one test. The DataDriver Wizard has
been designed fo
automatic processing of large amounts of data.
Quality Assurance
6. Multiple Verification
and this will give the
: It can

testers the ability to


offer checkpoints
outcomes that occur. In addition to this, it is able to find
for
text, URL, GUI and
databases.
compare the expected outcomes with
the
specific problems with
7 and Management
various objects that are GUI based.

6.16.2 Load Runner Syllabus


HP Load software testing tool from Hewlett-Packard. It is used
runner is a Ouality concepts and software qualiy assurance. Software reviews (Formal technical reviews)
to test The quality standards: ISO 9000, CMM, Six sigma for SE, SQA plan
applications, measuring system behaviour and performance under load. HP Load runner Software reliability,
can simulate thousands of users
concurrently using application software, recording and Contents
later analysing the performance of key components of the application.
Featuress 7.1 Quality Concepts Summer-2019, Marks 3
7.2 Software Quality Assurance (SQA) Winter-2011, 2013, 2018.
1. It has excellent
monitoring and
analysis interface where tester can see reports in Summer-2012, 2014,
easy to understand colored charts and graphics. 2016, 2018, Marks 7
2. It uses C default
as a
programming language. However, it also supports other . Winter-2018, 2019,
languages like Java and Visual Basic. 7.3 Software Reviews
Marks 3
3. No need to install it ..Summer-2019,**.
on the server under test. It uses native monitors.
4. It has support for most of the 7.4 Software Reliability
a
commonly used protocols. ...Summer-2014,
5. It has GUI 7.5 Quality Standards
generated scripts which can be modified as per the requirements. Winter-2017, 2018, Marks 7
6. This tool can
quickly point out the effect of the wide area network (WAN) on
application reliability, performance, and response time. 7.6 SQA Plan

Review Questions
1. Explain the concept of automated testing tool along with advantages and disadvantages of it.
2.
Write a note on 1) WinRunner 2) LoadRunner.

O00

7-1)
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Software Engineenng 7-2 Quality Assurance and
Manegement Software Engineering uality Assurance and Mana
7.1 Quality Concepts GTU: Summer-2019, Marks3 1sed throughout the software process. Ihese activifies ensure whether each work
There many definitions of software quality. In simple words, the product is satisfying the requirements imposed on it.
are

means how well the software works'.


software quality
Furthermore we can also state that
the While applying the quality control there should be a feedback loop to the process
variation or differences is the key to
high quality software product. Let uscontrolling
see "what which generates the work product. With the help of such feedback we can hune
software quality ?" is
the process if it does not satisty the requirements. The feedback
loop helps in
minimizing the defects in the software product.
7.1.1 Quality
.The quality control activities can be fully automated or it can be
Software completely
quality can be defined as "the conformance to explicitly stated functional manual or it can be a combination of automated tools and manual procedures
and performance
requirements, explicitly documented development standards
implicit characteristics that are expected of all professionally developed software". and 7.1.3 Quality Assurance

There are two kinds


of quality Definition of quality assurance : It is planned and systematic patern of actroities
necessary to provide a high degree of confidence in the quality of a product. It provides quality
Quality of design
assessment of the quality control activities and determines the validity of the data or procedures
for determining quality.
Quality of conformance
assurance consists of set of reporting and auditing functions
Fig. 7.1.1 The quality
Quality of design is the characteristics of the item which is specified for the designer. These unctions are useful for assessing and controling the effectiverness and
For example, if a temperature control system is designed, then it should display the completeness of quality control activities.

temperature with maximum limit of 100 degree centigrade. This is what the basic is to ensure the management of data which is
The goal of quality a s s u r a n c e
characteristic of that system is, and at the time of design of the product this issue must important for product quality.
be focused.
Compare Quality Control with Quality assurance

Quality of conformance is the degree to which the design specifications are followed Quality Assurance
Sr. No. Quality Control
during manufacturing. I the degree of conformance is more then it indicates higher
This is an activity with the primary goal
quality. 1. This is an activity with the primary goa correct the defects.
as to prevent the defects.
as to identiry and
Thus in software development process quality of design is concerned towards Ihis process is
intended to tocus on
the
2 This process is intended to provide
requirements, specifications and design of the system and quality of confomance is will be quality bein8 requested.
that the quality request
assurance
concerned with implementation. achieved. validation.
This method is for quality
Along with quality of desigrn and quality of conformance, customer's satisfaction the quality
. This method is to manage

is very important factor in any software product. verification.


this method the program
is

of the During
It does not involve executing
According to Robert Glass- an authority in software field, .
executea
programn.
It is a
corrective technique.
5. It is a preventive technique.
User satisfaction =
Compliant product Good quality +Delivery within budget. 6. lt is a proactive
measure
It is a reactive
measure.

phase of software

It involves testing
software development development life cycle
the full
7.1.2 Quality Control t involves correct h e defects
in
is to
life cycle defects in the
It's main goal
Hence it s
more
time

prevent the system.


Quality control is a process in which activities are conducted in order to maintain 8. ts
is
main goall e s
to
activity.
consumng acttvity
time consuming
is
the quality of product. These activities are series of inspections, reviews and tests system. It

An up
thrust for knowiedge
PUBLICATIONS
TECHNICAL PUBLICATIONS An up thrust
for knowledge
TECHNICAL
Software Engineening 7-4 Software Engineering
Quality Assurance and uality Assurance and Manaagement
Management
7.1.4 Cost of Quality 12 Software Quality Assurance (SQA)
The cost of
quality can be defined as the total cost required to obtain the GTU Winter-2011, 2013, 2018. Summer-2012, 2014, 2016, 2018, Marks 7
the product and to conduct the
quality related activities. quality in
We have already discussed the definition of software
The cost of
quality in section 7.1.1 which
quality has various components such as says that quality is the conformance to functional and non functional requirements of the
1. Prevention cost This is the cost of quality product.
required forconducting quality
planning, formal technical reviews, test
equipments and
training. There are three main reasons for why software quality gets failed?
2. Appraisal cost This is the cost of quality required for gaining the 1. Software requirements must be well understood before the software
product. It includes the cost required for in-process and inter insight into the
maintenance and testing. process inspection, development process begins.
2. Similar to explicit requirements it is also essential to understand the impliat
3. Failure cost -

Failure cost means the cost


software
required to remove the defects in the requirements of the software. If the soffware confirms the expliit requirements but
product before delivering it to customer. There are two
types of not satisfying the implicit requirements then surely quality of software being
costs. failure
developed is poor.
a. Internal failure cost Interrnal failure is nothing but
-

the cost of
in the
defects occurred 3. The set of development criteria has to be decided in order to speafy the standards
product before delivering it to customer e.g. repair in of the product. This will ultimately help the software engineer during
repairing of communication network. networking,
development. If such a criteria is not been fixed then definitely the software
b.
External failure cost External failure is the cost of defects
occurred in the product will lack the quality. Software quality assurance is the process in which
product after delivering it to the customer e.g. product repair/replace, conformance to the requirements of the product is made.
complaint processing, warranty work.
(SOA) Activities
7.2.1 Software Quality Assurance
Let us list out the SQA activities conducted by SQA group.
Prevention associated with
Software Quality Assurance (SQA) tasks are

cost
Failure
COst

Appraisal sQA group


COst Software engineers (Responsible for peforming
(Responsible for developing quality assurance planning.
Internal
the product) oversight record keeping.
failure External analysis and reportng)
COst failure

Fig. 7.2.1

1. Create a SQA plan. assurance


activities are
Quality
Fig.7.1.2 Cost of quality A SQA plan is developed while planning the project.
basically
conducted that are indicated in this plan. This plan
Review Question
Identifies evaluations to be performed. for the
be adopted
1. Compare quality control with
standards that should
quality assurance. and reviews to be performed,
GTU : Summer-2019. Marks 3 Audits

project.
and tracking
Procedures for error reporting
for knowledge
thrust
up
TECHNICAL
PUBLICATIONS
PUBLICATIONSAn

An up thrust
for knowledge TECHNICAL
Softwere Engineering twere Engineering 7 7
7-6
Quality Assurance Quelity Assurance and
and
Management Management
I t also 1.3 Software Reviews GTU: Winter-2018, 2019. Summer-2019. Marks
specifies documents to be produced by SQA group. 3
Amount of feedback provided to the software Software reviews are ilter to software
engineering process. Such reviews are appied
project team.
2. Participates in description of software process. us points during software development life cycle. The objective of software
The process selected
Sis to uncover errors and detects that can be rermoved. The software reviews
are
by the software team is reviewed by the SQA group. This
rev
for following reasons
review is for conducted
.Process description to ensure that it follows the Reasons for Revlews
organizational policy.
Internal software standards. Point out needed improvements in the product of a single person or tean.

.Some standards that . Confirm those parts of the product in which improvement is not desired.
are
adopted by the organization.
3. Reviews software engineering activities. Achieve technical work of more uniform quality than can be achieved without

reviews, in order to make technical work more manageable.


The SQA group identifies and documents the
processes. The group also verifies the There are three different ways by which software review can be conducted
correctness of software process.
1. Informal meeting an informal meeting can be conducted outside the working
4. Authenticate designated software work products. environment and an informal discussion of technical issues can be held.
The SOA group performs following tasks - can be conducted for customer, management and
2. Formal presentations
Reviews selected work product technical staff.
sometimes called as walkthrough or
an
ldentifies the process 3. Formal Technical Reviews (FTR)
lot for
of software review. This helps a

Documents them inspection is the most effective way of software.


and to improve the quality
uncovering the software e r r o r s

Tracks deviations or walkthrough


is that e r r o r s can be
discovered in
Benefit of formal technical reviews
Verifies the correctness made in the processes the next release of software.
before become defects in
they
early stage
Regular reporting of results ofits work to the project manager.
7.3.1 Formal Technical Reviews (FTR)
5. Ensure the deviatlons in software work. Document work products
quality assurance activity pertormed by
The deviations in software work are identified from project plan. These processes are Technical Review is a software
Formal
identified and handled according to documented procedure.
software engineer.
6. Identify any noncompliance and reports to senior management.
Objectives of FTR for any
Non compliance items are identified and pursued until they get resolved. The function and implementation
useful to uncover
errors in logic,
. FTR is
periodic reporting about it is done to project manager.
representation of the software. requirements.
software meets
specified
that
FTR is to ensure standards.
Review Questions he purpose of
software is represented
according to predefined
that the
1. List software related activities. GTU: Winter-2011, Marks 7 3. It also ensures
development process
in software
2. Define quality for software. List and explain SQA activities. to review the uniformity
It helps
* manageable. enable
junior
GTU: Summer-2012, 2018, Winter-2018, Marks 7 5. It makes the project more
the purpose
of FTR is to
more closely.
3. Explain importance of sQA. GTU Winter-2013, Marks 7 mentioned objectives, approaches
Besides the above and testing
4. Explain software quality assurance techniques. design, coding
GTU: Summer-2014, Marks BneerS to observe
the analysis,
5. What is the importance of SQA ? Explain the SQA activities. GTU Summer-2016, Marks
knowledge
thrust for
A n up

TECHNICAL
PUBLICA TIONS

TECHNICAL PUBLICATIONS -
An up thrust for knowledge
Software Engineering 7-8 Quality Assurance and Software Engineering
Management 7-9 Quality Assurance and Management
Each FTR is conducted as a
meeting and is considered successful
only if it is
properly planned, controlled and attended. What is a purpose of producing review issues list ?
7.3.1.1 The Revlew Meeting 1. It helps m
identifying problematic areas within the product.
2. From this issue list, check list
Every review meeting should be conducted by considering the
a can be prepared which guides the
following corrections. producer for making the
constraints
o Involvement of people Between 3 and 5 people should be involved
in the The review issue list is
review. normally attached to formal technical
summary report
o Advance preparation Advance
preparation should occur but it should be 7.3.1.3 Revew Guldelines
very short i.e. at the most 2 hours of work for each person can be
spent in Guidelines for the conducting of formal technical reviews
this preparation. must be established in
advance. This guidehine must be distributed to all
o Short duration The duration of the review reviewers, agreed upon, and then
-

meeting should be less than 2 followed. For example Guideline for review
-

hours. may incude following things.


1. Concentrate on work
Rather than attempting to review the entire design, walkthroughs are
product only. That means review the product, not the
for modules conducted producer
or for small groups of modules.
2. Set agenda
an of review and maintain it.
.The focus of the FTR is work
on a
product (a software component to be 3. When certain issues are
reviewed). raised then debate or
arguments should be limited.
Reviews should not ultimately
result in some
The review meeting is attended by the review leader, all reviewers
and the 4. Find out
hard-feelings
producer. problem areas, but don't attenpt to solve every problem noted.
The review leader is 5. Take written notes (it is for the
responsible for evaluating the product for its readiness. The recorder).
copies of product material is then distributed to reviewers. 6. Limit the number of
participants and insist upon advance
preparation.
.The producer organizes a 7.
"walkthrough" the product, explaining the material, Develop a checkist for each product that is likely to be reviewed.
while the reviewers raise issues based on their advance
preparation. 8. Allocate resources and time schedule for FTRs in order to maintain time schedule.
One of the reviewers becomes recorder who records all the important issues raised 9. Conduct meaningful trainings for all reviewers in order to make the reviews
during the review. When errors are discovered, the recorder notes each. effective.
At the end of the review, the attendees decide whether to
accept the product or 10. Review earlier reviews which servers the base for the current review
not, with or without modifications.
as
being
conducted.

7.3.12 Revlew Reporting and Record Keeping


Review Question
Review reporting and FTR summary 1. Explain formal technical revieu. GTU: Winter-2018. 2019. Summer.2019. Marks 3
record keeping report
Review issues list
7.4 Software Reliability
of failure free operation of
Software reliability is defined as the probability
a
Fig. 7.3.1
environment for a specified time.
computer program in a specified
During the FIR, the reviewer actively records all issues that have measured, directed and estimated.
end of been raised. At the The software reliability can be
meeting these all raised issues are consolidated and review issues is list prepared.
Finally, formal
a technical review
summary report is
produced.
TECHNICAL PUBLICATIONS An up thrust for for knowiedge
knowledge TECHNICAL PUBLICATIONS
-
An up thrust
Software Engineenng
7-1
Quality Assurance and
Sofware Engineerin9 7-10 Quality Assurance and Management Management
techniques. The
commonly used
analysis techniques are fault-tree
7.4.1 Measure of Reliability and Availability real-time logic and Petri-net models. These analysis,
of events that can cause hazards. techniques basically predict the chain
Normally there are two measures of software reliability.
1. MTBF : mean-time-between-failure is eteo 3 Once hazards are identifñed, safety related requirements
a
simple measure of software
reliability which can be specified for the
can be calculated as software. This specification basically includes list of undesirable
events and
desired system response. The template for safty related
MTBF = MTTF + MTTR is given below requirement specification

where MTTF means mean-time-to-failure safety related requirement specification


and MTTR stands for
mean-time-to-repair. Identified hazards
Many software researchers feel that MTBF is more useful measure of software
reliability than defects/KLOC or defects/FP.
2. Availability It's another measure of software
reliability software availability is
defined the probability that the program is
as
working according to the
requirements at a given points in tinme. It is measured as

************

Availability =
(MTTF/(MTTF+MITR)* 100 % Name of the event that Severity of hazard Probability of occuencee
can cause hazard1

MTBF is equally sensitive to MTTF and MTR but availability is more sensitive to
MTTR.
2
7.4.2 Software Safety
Software safety is a quality assurance activity in which
potential hazards are
identified and assessed. These hazards may bring the total failure of the
system. If such
hazards are identified and specified in early stage of software
development then such Undesired event Desired system response
hazards can be eliminated or controlled in order to make the software safe.
and analysis process is conducted as a
Modeling
part of software safety.
For example : In a
computer based automobile system software hazards are

1. Uncontrolled acceleration that cannot be


stopped.
2. Does not respond to slow the system when breaks are
applied.
3. Slowly gains the speed. undesirable event is specified.
in managing
owte Finally the role of software
How to handle the system level hazards? Step 4
between software
rellability and software safety?
Following are the steps that be What is the difference related to each other.
However,
can
applied to preserve the software safety. and software safety
a r e closely

S o f t w a r e reliability and not the type.


Step 1: The hazards are identified them lies in degree
the difference between determine the occurrence of
made to
uses
statistical analysis of customer
reliability sinmply
dissatisfaction

Step 2: Analysis techniques are used to assign severity


of these hazards.
Software
will cause

of occurrence of such hazards is also The probability software failure.


These failures

analyzed with the help of analysis TECHNICAL PUBLICATIONS


An up thnust
for knowledge

TECHNICAL PUBLICATIONS An up thrust


for knowledge
Software Engineering - 12
Quality Assurance and Software Engineening
7-13
Management Quality Assura and Management
requirements. But the software
safety examines the ways in which failure results . Perform management reviews
in conditions that can lead
to hazards.
Provide quality resources
Software reliability does not detect the failures in
detects the failures in context of an entire
depth. But the software safety .Provide quality personnel
computer based system.
.Provide quality infrastructure
Review Question
.Provide quality environment
1. Write note
a on -

Software Reliability. Control realization planning


7.5 Quality Standards GTU : Summer-2014, Winter-2017, 2018, Marks 7 .Control customer processes
.Control product development
7.5.1 ISo 9000 .Control purchasing functions
In order to
bring quality in the
product and service, many organizations are Control operational activities
the quality assurance
system. The quality assurance adopting
that are used to systems are the organizational
structures .Control monitoring devices
bring quality in responsibilities, procedures, processes and resources.
Control non
confirming products
ISO 9000 is a family of
quality assurance system. It can be applied to all
organizations. It doesn't matter what size they are or what they types of Analyze quality information
do. It can
product and service oriented help both Make quality improvement
organizations to achieve standards of quality. ISO 9000 is
maintained by ISO, the International
administered by accreditation and certification Organization for Standardization and is The ISO 9000 helps in creating organisational quality manuals. These quality manuals
bodies. In ISO 9000, identify the organisational quality processes. Using these quality manuals, the project
system and operations are scrutinized by company's quality quality Plan can be prepared for every individual project. Thus project quality
standard and effective
third-party auditors for a
complaince to the
operation. This process is called registration to ISO 9000. On management can be done.
successful registration, the This is illustrated by following figure .
company gets a certification from accreditation bodies of ISO.
Such a company is then called "IsO
certified company".
ISO 9000 quality
ISO 9001:2000 is a
quality assurance standard which is applied to software model

engineering systems. It focuses on process flows, customer satisfaction, and the continual Converted to
improvement of quality management systems. ISO 9001:2000
quality system that can be applied to any size or type of specifies requirements for a Organizational Defines Organizational
quality process
steps for ISO 9001:2000 are organization. The guideline
quality manuals

Establish quality management


system Identify and manage the
processes in the Project n Works
quality management system. quality plan
for

Document the quality Creates Project 3


management system quality
plan
Support the quality
Project 2
quality plan
Project quality
management
Satisfy the customers
Project 1
Establish quality policy quaility plan
.Conduct quality planning
Control quality systems
Supports

TECHNICAL PUBLICATIONS An up thrust for PUBLICATIONS


An up thrust for knowledge
knowledge TECHNICAL
Software Engineering Software Engineening
7-15 Quality Assurance and Management
7-14
Quality Assurance and Management
7.5.2 CMM Analy
alyze In this phase detect metnics are analyzed in order to determine the few

.The Software causes

Engineering Institute (SEI) has developed a


meta-model emphasizing process comprehensive process
maturity. It is predicated on a set of system and
f an improvement is needed to an existing software then there are additional two

software capabilities that should be methods insix sigma


present when organizations reach different
levels of process capability and Improve By eliminating the root causes of defects the process can be improved.
maturity.
.The Capability Maturity Model (CMM) is Control The process can be controled in such a way that the causes of defects can
used in assessing how well
organization's processes allow to complete and an not be reintroduced.
manage new software projects.
.Various process maturity levels are can sometimes be referred as DMAIC.
These steps
Level 1: InitialFew processes are defined and individual
efforts are taken. For a newly developing software, some organizations are suggesting following two
Level 2: Repeatable To track cost schedule and
-

management processes are established. Depending functionality basic project alternating steps
similar applications
on earlier successes of
projects with Design- In this step avoid root causes of defects and meet the customer
necessary process discipline can be repeated.
Level 3: Defined requirements.
The process is standardized, documented and requirements
followed. All the Verify To verify the process, avoid
defects and met customer
projects use documented and approved version of software
developing and supporting software. process which is useful in sometimes be referred as DMADV.
These steps can

Level 4 : Managed - Both the software


process and product are
understood and controlled using detailed measures. quantitatively Review Questions
Level 5: Optimizing Establish 1. Explain six sigma method.
mechanisms to plan and
Innovative ideas and
technologies
can be tested.
implement change. 2. Write a note on ISO 9000.

3. Explain different quality standards GTU: Summer-2014, Marks 7


Thus CMM is used for
improving the software
project. one. GTU: 2018, Marks 3
Wiater-2017,

4. List quality standards. Explain amy


7.5.3 Six Sigma
7.6 SQA Plan
Six sigma is
widely used statistical software quality assurance for summarizing
all the SQA
achviies

business driven approach to strategy. It is a The SQA plan is a document created


tasks that can
process improvement, reduced costs and increased the goal and
The word "six profit. software project. The SQA plan specifies
sigma" is derived from six standard deviations 3.4 defects conducted for the
activities. Such plan
should be developed
occurrences. Six Sigma per million order do conduct all the SQA
originated at Motorola in the early 1980s. be performed in EEE standard. The template
this plan is published by
The standard for
by SQA group. below -

Define Measure Analyze


H
Fig. 7.5.1 Six sigma framework
Improve H Control for this plan is as given

sQA Plan

1. Purpose and scope


of the plan

There three core steps


are
in six sigma method 2 Description
of work product
Define The customer
requirements, project goals and deliverables 3. Applicable standards

communicating the customers. are


defined by
4 SQA activities
Measure The existing
process and its output is measured used
current quality performance. in order to determine Tools and
methods/standards

5.

An up
thrust
for knowledge
TECHNICAL PUBLICATIONS An up thust TECHNICAL
PUBLICATIONS

for knowledge
Software Engineering
16
Quality Assurance and Management
6 SCM procedures for managing change
7. Methods for maintaining SQA related
records Software Maintenance and
8.
Organizational
The SQA plan
-

that the specified


roies

is
and

a
responsibilities
document aimed to
requirements will be met and
give confidence
final
to
developers and customers
8 Configuration Management
product will be quality product.
a

Review Question
1. Give the
template for SQA Plan.
Syllabus
Reverse
engineering, Forward engneering. The SCM
Types of software maintenance, Re-engineering,
ldentification of objects in the sofhware configuration, Version control and change control
process,

Contents
8.1 Software Maintenance Summer-2018, Marks7

8.2 Re-Engineering . Summer2016,


Marks7
' ' ' ' ' ' ' ' ' ' ' Winter-2017, 2018,
Summer-2013, 2018, 2019,
8.3 Reverse Engineering
Marks 7
Winter-2017, 2018,
Marks 4
Summer-2019, Winter-2019,
8.4 Forward Engineering
Introduction to Sotware Configuration
Management (SCM)
8.5
Marks 7
Summer-2016, Winter-2018,
Winter-201, Marks 7
8.6 Sofware Configuration ltems
Summer-2013, 2018, 2019,
8.7 SCM Process ' * * ' * * *
Marks7
Winter-2019,

(8-1)
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Software Engineering - 16
Quality Assurance and
Management
SCM procedures for managing change
7. Methods for maintaining SQA related records Software Maintenance and
8.

The
that the
Organizational roles and
responsibilities www

SQA plan is a document aimed to give confidence to


developers
specified requirements will be met and final product will be a
and customers
quality product
8 Configuration Management
Review Question
1. Give the template for SQA Plan. Syllabus
Reverse engineering, Forward engmeering, The SCM
Types of software maintenance, Re-engineering,
process, ldentification of objects
in the soffware configuration, Version control and change control

O00 Contents
. . Summer-2018, Marks 7
8.1 Software Maintenance
. Summer-2016,
8.2 Re-Engineering
... Winter-2017, 2018, Marks 7
8.3 Reverse Engineening Summer-2013, 2018, 2019,
. Winter-2017,2018,ra*Marks 7
Marks 4
Summer-2019, Winter-2019,
8.4 Forward Engineering
8.5 Introduction to Sotware Configuration Management (SCM)
Marks 7
Summer-2016, Winter-2018,
Marks 7
8.6 Software Configuration tems..
.
..Winter-2011,
Summer-2013, 2018, 2019,
8.7 SCM Process
MaKS
Winter-2019,

TECHNICAL PUBLICATIONS 8-1)


An up thrust
for knowledge
Software Engineening
8-2 Software Maintenance and
Configuretion Management Software Engineering 8-3 Software Maintenance and Configuration Management
8.1 Software Maintenance
GTU: Summer-2018, Marks 7
Software maintenance 2. Adaptive maintenance Means maintenance for adapting the change in
is
put into use.
an
activity in which
program is modified after it has environment (different computers or different operating systems).
been
I n software 3.Perfective maintenance Means modifying or enhancing the system to meet the
maintenance usually it is not
changes to system's architecture. preferred to
apply major software new requirements.
Maintenance is a process in which 4. Preventive maintenance Means changes made to improve future maintairnability.
the existing changes are
implemented by either
system's architecture or by adding new modifying
components to the
system. Review Question
8.1.1 Need for Maintenance
1. Explain software maintenance. GTU Summer-2018. Marks 7
The software maintenance
is essential because of following reasorns:
1.
Usually the system requirements are 8.2 Re-Engineering GTU: Summer-2016. Winter 2017. 2018. Marks 7

some changes are changing and to meet these


requirements
incorporated in the system. Software re-engineering means re-structuring re-writing part or all of the software
2. There is a
strong relationship between system and its environment. When engineering system.
is installed in an
environment, it
changes system
that environment. This
a
The software re-engineering is needed for the applications which require frequent
changes the
system requirements. ultimately maintenance.
3. The maintained
system remains useful in their workingg
.Maintenance is applicable to software environment. Advantages of software re-englneering
model. The system developed using software life cycle allows the eliminate certain
changes and hence maintenance must any developer to
1.Reduced risk The re-engineering
be constraints on the system. This helps in reducing the risks of failures
to: performed in order
a) Correct faults. less than the costs
2. Reduced cost The cost of re-engineering is often sigrnificantly
b) Improve the
design. of developing new software.
c) Implement enhancement.
Re-engineering process activities
d) Interface with other
systems.
e) Adoption of environment Source
(different hardware, software, program
Migrate legacy software. system features etc.)
g) Source Reverse Program Modularized Oniginal data
Replacement of old software by new software. code translation engineenng documentation program
I n software maintenance
report four
i) Maintaining control over the key
characteristics should be mentioned.
software's day to day functions.
i) Maintaining control over software modification. Data
ii) Reparing of functions. Program
Re-engineering
iv) Performance Program modulanzation
degradation should be avoided. structure
improvement
8.1.2 Types of Software Maintenance
Various types of software Re-engineered
maintenance are Structured oatd

1. Corrective program
maintenance Means the maintenance for
correcting the software faults.
8.2.1 Re-engineering process
activites

TECHNICAL Fig.
PUBLICATIONS An up thrust
for knowledge for knowiedge
n up thrust
TECHNICAL PUBLICATIONS
Software Engineering 8-4 Software Engineering 8-5 Software Maintenance and Configuration Management
Software Maintenance and
Coniguration Management
Source code translation: In this Reverse Engineering Process
phase the code is converted to
8.3.1
Reverse engineering: Under this
activity the program is
a new
language. Initially the dirty source code or unstructured source code is taken and processed and
thoroughly. analysed and understood the code is restructured. After restructuring process the source code becomes clean. The
Program structure improvement: Restructure core to reverse engineering is an activity called extract abstractions.
automatically for understandability.
Program modularization: The program structure is reorganized. In extract abstraction activity, the engineer must evaluate older programs and extract
Data re-engineering: Finally clean-up information about procedures, interfaces, data structures or databases used.
and restructure
system data.
Review Questions
1. Dirty source code
Explain the software re-engineering activities.
2. Exrplain softroare re-engineering process model.
3. Write short notes GTU: Summer-2016, Marks 7 Restructure code
on
re-engineering. GTU: Winter-2017, 2018, Marks 3
8.3 Reverse Engineering Clean source code
Process
GTU: Summer-2013, 2018, 2019, Winter-2017,
Reverse engineering
2018, Marks 7 Extract abstractions Interface
is the
process of design recovery. In reverse
data, architectural and
procedural information is extracted from a sourceengineering
code.
the
Initial documentation Database
There three
are
important issues in reverse
engineering
1. Abstraction level : This level Refine and simplify
source code. It is
helps in obtaining the design information from the
expected that abstraction level should be
engineering. High abstraction level helps the software high in reverse Final specification
program. engineer to understand the
Flg. 8.3.1 Reverse engineering
2. Completeness level: The
completeness means detailing of abstract level. The The output of reverse engineering process is a clear, unambiguous final specification
completeness decreases as abstraction level increases.
obtained from unstructured source code. This final specification helps in easy
For example From -

given source code


a

procedural design representation. But it islisting


one can
easily develop complete a understanding of source code.
very difficult
diagrams or entity relationship diagram. The develop complete set of
data flow to
Reverse Engineering
Difference between Software Engineering and
engineering develops the interactivity. The term completeness in reverse
which the human is interactivity means the
integrated with automated toos to create effectivedegree
to Reverse engineering
St. No. Software engineering
engineering process. As the abstraction level increases the reverse
engineering IS a process in
which
increase to bring the
completeness. interactivity must 1. Software engineering is a discipline
which theories, methods and tools are
in Reverse
the dirty or unstructured code is taken,
3.
Directionality level Directionality means
:
applied to develop a professional processed and it is restructured

code and give


it to software
extracting the information from source software product.
engineer. The
directionality can be code is available
way. The one way one
way or two A dirty or unstructured

code and give it to software


directionality means
extracting all the information from
source
Initially only user requirements are
software engineering initially.
available for
engineer. The
information taken from source code is fed two way
directionality means the process.
to a the
restrcture or
regenerate old
programs.
re-engineering tool that attempts to This process starts by
understanding user This process starts
existing unstructured code.
by understandirng
3.
requirements.

An up thrust for knowledge


TECHNICAL PUBLICATIONS An up thrust TECHNICAL PUBLICATIONS
for knowledge
Software Engineening9
8-6 Software Maintenance and Sofnware Engineering 8-7 Software Maintenance and Configuration
Configuration Management Manegement
The software engineering is conducted
using, requirement The reverse 3 The database functionalities are handed over to servers
design, gathering, analysis, engineering
using restructuring conductedis
implementation and testing. the code,
cleaning it,
by extracting the abstractions.
4. The responsibility of some
specialized functionality can also be handled by
refinement and After Servers.
final code gets simnplification of the code
t
ready. 5. New communication
is
simple and
straightforward It is
techniques are incorporated in the architecture.
approach. complex because cleaning the 6. New
or
unstructured code
requires
dirty security mechanisms are also established both at client and server side.
efforts. more
.The forward
Documentation or specification engineering for mainframe to client server architecture requires both
product is useful to the end-user of the Documentation or speification business and software re-engineering activities.
of the
product is useful to the The database transactions and
developer queries are handled by server applications. At the
Review Questions same time these transactions must be controlled within the context of business
rules.
1. Write short note on: Reverse engineering That means, make sure that these transactions are executed in consistent
2. Write short notes on reverse
GTU: Summer-2013, Marks 7 such that all updates are performed by authorized users.
manner

engimeering
GTU: Winter-2017, 2018, Summer-2019, During forward engineering, there exists a business layer present at both client
3.
Explain the
following term in brief 1) Marks 4 and server. The task of this layer is to control and coordinate the tasks of
Re-Engineering,
-

2) Reverse
Engineering. transactions and query The communication
handling among desktop applications
GTU: Summer-2018, Marks 4 is controlled by business rules layer.
8.4 Forward Engineering There is client applications layer which implements the business functions that
GTU: Summer-2019, Winter-2019, Marks 4 are required by specific group of end users.
If the
poorly designed and implemented code is to be
alternatives can be adopted modified then
following 8.4.2 Forward Engineering for Object Oriented Architectures
1. Make lot of
modifications to implement the
2. Understand inner necessary changes. Forward engineering is a process of re-engineering conventional software into the
workings of the program in order to make the
object oriented implementation.
modifications. necessary Following are the steps that can be applied for forward engineering the
3.
Redesign, recode and
small modules of software that
test conventional software
4.
Completely redesign, recode and test the entire program require modifications. 1. Existing software is reverse engineered in order to create data, functional, and
behavioral models.
Definition: Forward using re-engineering tool.
engineering is a process that makes use of software 2. f existing system extends the functionality of original application then use
principles, concepts and methods to recreate an engineering cases can be created.
re-developed program extends the capabilities of old existing application. This
programs. 3. The data models created in this process are used to create the base for classes.
8.4.1 Forward Engineering for Client Server 4. Class Hierarchies, object-relationship models, object
behavioral models, and
Architectures subsystems are defined.
During re-engineering process, many mainframe this forward engineering process, algorithms
and data structures are

accommodate applications During


the client server architecture.
are
modified to reused from existing conventional application.
.Following are the features of this Reverse Engineering
application functionalityre-engineering
1. The process Difference between Forward and
for specific purpose.
is transferred to of constructing a system
each client Forward engineering is a process
centralized resources. computer from a system in order to extend the
2. Reverse engineering is a process of de-constructing
The new GUI the working of the system.
are
developed for each client
workstation. functionalities or in order to
understand

TECHNICAL PUBLICATIONS An up thrust An up thrust for knowledge


for knowledge TECHNICAL
PUBLICATIONS-
Software Engineering 9
8-8 Software Maintenance and Sofware Engineering Sofware Maintenance and Configuration Management
Configuration Management
Review Questions Documents describing the programs
1.
Diference between reverse
engineering and foruard engineering.
- Technical manual

2. Write short note


GTU Summer-2019, Marks 4 Users manual
on - Forward Engineering GTU Winter-2019, Data
Marks 4
8.5 Introduction to Software Configuration Management (SCM) Program components or functions
GTU: Summer-2016, Winter-2018, Marks 7 External data
Definition : Software
configuration management is a set of activities carried for
- File structure

identifying organizing and controlling changes throughout the


out
For each type of item, there may be a large number of different individual items
software. lifecycle of computer
produced. For instance there may be many documents fora software specification such
During the
development of software change must be as project plan, quality plan, test plan, design documents, programs,
test reports, review
order to improve quality and reduce error. managed and controlled in
reports.

8.5.1 Need for SCM These SCI or items will be produced during the project, stored, retrieved, changed,
stored again, and so on.
The software specification
configuration management is concerned with
the managing Each configuration item must have a unique name, and a description or

the evolving software. If the changes are not controlled at all then this changes in
stream of which distinguishes it from other items of the same type.
uncontrolled change can cause the
well-running software project into chaos. Hence it is
essential to perform following activities Review Question
i) Identify these changes What is meant by softuare configuration
1. What do you mean by software configuration?
i) Control the changes
management?
GTU Winter 2011. Marks 7
ii) Ensure that the changes are properly
implemented and
8.7 SCM Process GTU Summer-2013, 2018, 2019. Winter-2019. Marks 7
iv) Report these changes to others.
The software (SCM) are -

configuration management may be Software Configuration Management process


seen as part of quality management The primary objectives of software
process.
ldentification : the items that define the
ldentify
1. Configuration
Review Questions configuration.
2. Change Control: Manage
changes to one
or more items.
1. Explain software configuration management. of the application.
GTU
'

Summer-2016, Marks create different versions


Facilitate to
2. Discuss softrware configuration management in detail. 3. Version Control: of the software is
GTU : Winter-2018, Marks 7
Authentication : To ensure that the quality
4. Configuration the time.
evolves over
8.6 Software Configuration tems GTU: Winter-2011. Marks 7 maintained as the configuration
the software team must
such a way that
must be developed in
A Software Configuration Item (SCI) is information that is created as part of the softrware
The SCM process
of questions
the following set configuration
items?
engineering process. answer
team identify thesoftware and
the software before
1. How does
software
in the
Examples of Software Configuration Items are control the changes
software team
2. How does the
Computer programs after delivering
it to the customer?
Source programs
Executable programs
An up
thrust for knowledge
PUBLICATIONS
TECHNICAL

TECHNICAL PUBLICATIONS An up thrust


for knowledge
Software Engineering
8- 10
Software Maintenance and Sofhtware Engineering 8-11 Software Maintenance and Configuration Mansgement
Configuration Management
3 How does the software team 8.7.2 Change Control
software package ? manage the versions of the
programs in the
4. How does team in any software Sometimes, introducing small changes
get ensured that the Changes projects are vital. in
5. Who is
changes are made properly ? he system may lead to big problems in product. Stmilarly, introducing some changes
responsible for approving the changes in the software? may enhance the capabilities of the system. According to James Bach too litle changes
The answers to these
questions lead the definition
are
Identification, change control, version control andof five tasks of SCM and those may create some problems and too big changes may create another problems
reporting. configuration audit and status For a large software engineering project, uncontrolled change creates lot of chaos. For

8.7.1 ldentification of Objects in Software managing such changes, human procedures or automated tools can be used.
The software
Configuration The change control process is shown by following Fig. 8.7.1. (See Fig 8.7.1 on next

object.
configuration items must be separately named and identified page.)
as
These Step 1 First of all there arises a need for the change.
objects must be arranged using object oriented
There are wo approach.
categories of objects basic objects and
-

Step 2 The change request is then submitted by the user

The basic aggregate objects.


object is unit of information created evaluate this request to assess technical merits, potential side
design, coding or testing. For example basic during requirements analysis, Step 3: Developers
on system functions and cost of the project.
object can be part of source code. effects, and overall impact
Aggregate object is collection of basic objects and other
a

example SRS or data model can be aggregate aggregate objects. For Step 4 A change report is then generated and presented to the Change Control

Each object can be


object. Authority (CCA).
uniquely identified because it has got who makes
1. Name: The
name of the Step 5: The change control authority is a person
or a group of people a

object is
characters(string) or some text. It is unique. nothing but
the collection of final decision on status or priority of the change.

is generated when the change gets


2. Description For describing the Step 6: An Engineering Change Order (EC0)
This
object, the object description can be given. In ECO the change is described,
the restrictions and criteria for review and
description contains document, program or some other approved.
project identifier or version information. description such as audit are mentioned.

database.
needs to be changed is checked out of the project
3. that
List of resources: The resources
are the entities that are used for Step 7: The object
accessing, the corresponding object and appropriate
SQA
referencing and processing of objects. The data types and
fhunctionalities can Step 8 The changes are then made
on

serve as a resource.
activities are then applied.
version
4. Realization the database and appropriate
identification: It is pointer to object.
or is then checked in to
Step 9 The changed object
The configuration object identification create new version.
can also consider control is made to
between the named objects. relationships that exist
checked out
mechanisms require two importantelements-
The checked in and
If a
change is made to one
configuration object it is Access control
configuration objects in the repository are affectedpossible
to determine which
other
by the change. Synchronization control to the software engineer to access

.Basically object evolve throughout the software process. gives the authority
mechanism control mechanism
The access control object. The
synchronization

object identification the evolution of


the During process of configuring different people
without

objects along with its process must be and modify the specific or the changes
made by two
identified. make parallel changes
allows to
work.
each other's
Major modifications in the object must be noted. overwriting
An up thrust forknowledge
PUBLICATIONS
TECHNICAL PUBLICATIONS An up thrust
TECHNICAL

for knowledge
Sonware Engineening 8- 12 Sofware Engineening 8- 13 Software Maintenance and Confiquration
Software Meintenance
and Confguration Management Management
8.7.3 Version Control
Need for change
Version is an instance of a which is
system functionally distinct in some way from
other system instances.
Change request
Version control works to help manage different versions of
during the development process.
configuration items

Evaluation of request
The configuration management allows a user to
specify the alternative configurations
of the software system by selecting
appropriate version.
Generation of change report Certain attributes are associated with each software version. These attributes are
useful in identifying the version. For example The attribute can be "date', 'creator,
Decision of CCA for 'customer, 'status'.
change
In practice the version needs an associated name for easy reference.
Different versions of a system can be shown by an evolution graph as
Denial of change request Each version of software system is
Change request accepted a collection of software configurationitems
and ECO generatedd

Intimate user about denial


Assign individuals to
configuration object

Check out configuration


objects
---O
Make changes, review them
Fig. 8.7.2 Version numbering in evolution graph
(212)
Check in the object 8.7.4 Configuration Audit
that have been changed

. I n order to ensure that the change has been properly implemented or not two

Perform SAA and activities are carried out.


testing
activities 1. Formal Technical Review (FTR)

2. Configuration Audit
Software
Promote changes in next is identified
the correctness of configuration object
I n Formal Technical Review,
release technical reviewer.
and corrected. It is conducted by
audit assess the configuration object for the
The software configuration
Rebuilt appropriate version formal technical review. It is conducted by
characteristics that are not reviewed in

group.
software quality assurance audit
during configuration
-

Distribute the new version that are asked


Following are some primary questions
Flg.8.7.1 Change control process conducted to assess the technical correctness?

1. Whether FTR is
made ?
ECO has been
2. Whether or not the change specified by
PUBLICATIONS
An up thnust forknowledge
TECHNICAL PUBLICATIONS -
An up thrust for
TECHNICAL

knowledge
Software Engineering 8- 14
Sotware Maintenence and
Configuration Management
3. If additional changes need to be made or not ?
4. Whether the software
engineering standards are
properly followed ?
5. Do the attributes of
6.

7.
Whether all the
Whether the SCM
configuration objects reflect
SCI are updated

configuration audit and status reporting)


properly ?
process(object identification, change
thechange?

and version
control,
9 DevOps
The above
are
properly followed ?
questions can be asked as a
part of formal technical review.
8.7.5 Status Reporting Syllabus
The status Product lifetime :
Independent product Vs. contimues,
reporting focuses on communication of changes to all architecture Improvement, Software as a service, Saas
organization that involve with changes. people in an

During status
reporting following type of questions were asked. Contents
1. What
happened ?: What are the changes that are 9.1 Overview
2. Who did it ?: Who will be
required ?
handling these changes ? 9.2 Problem Case Definition
3. When did it
happen The time at which these changes are arised.
?: 9.3 Benefts of Fixing
Application Development Challenges
4. What else will be affected ?: 9.4
The objects or
part of the software Devops Adoption Approach through Assessment
reflected due to these that might be
changes. 9.5 Solution Dimensions

Review Questions 9.6 What is DevOps?


9.7 DevOps Importance and Benefits
1.
Define softrware configuration management.
control management.
Explain change control
management and version 9.8 DevOps Principles and Practices
Explain software 9.9 The 7 Cs of DevOpsLifecycle for Business Agiity
configuration management and change control management in detail.
Explain "How to
manage the different versions that get 9.10 DevOps and Continuous
created and how
to maintain the
Testing
code under
changing conditions?". quality of 9.11 How to Choose Right
GTU: Summer-2013, Marks 7 DevOps Tools
4 Explain version and change control 9.12 Challenges with DevOps Implementation
management.
GTU : Summer-2018, 2019, Winter-2019, Marks 4 9.13 Must Do Things for DevOps
5. Explain SCM process in details.
GTU: Summer-2019, Marks 7 9.14 Mapping My App to DevOps
9.15 Assessment, Definition, Implementation, Measure and Feedback

O00

TECHNICAL PUBLICATIONS An up thrust


for knowledge (9-1)
Sotware Engineering
8-14 Software Maintenance and
Configuration Management
3. If
additional changes need to be made or not ?
4.Whether the
software engineering standards are properly followed?
5. Do the attributes of
configuration objects reflect the change ?
6.

7.
Whether all the SCI
Whether the SCM
are
updated properly ? DevOps
process(object identification, change and version control,
configuration audit and status
reporting) are
properly
followed ?
The above questions can be asked as a
part of formal technical review.
8.7.5 Status Reporting Syllabus
Product lifetime : Independent product Vs. contimues,
The status
reporting focuses on communication of architecture. Improvement, Sofhware asa service. SaaS
organization that involve with changes. changes to all people in an

During status
reporting following type of
questions were asked. Contents
1.
What happened ?: What are the changes that are required ? 9.1 Overview
2. Who did it ?: Who
will be handling these changes ? 9.2 Problem Case Definition
3. When did it 9.3 Benefts of Fixing Application
happen ?: The time at which these changes are arised. Development Challenges
4. What else will be 9.4
affected ? The objects or : DevOps Adoption Approach through Assessment
reflected due to these part of the software that might be
changes. 9.5 Solution Dimensions

9.6 What is DevOps?


Review Questions
9.7 DevOps Importance and Benefts
1. Define software configuration management. Explain
control management.
change control management and version 9.8 DevOps Principles and Practices

2. 9.9 The 7 C's of DevOps Lifecycle for Business Agility


Explain software configuration management and change control
3. management in detail. 9.10 DevOps Continuous Testing
Explain "How to manage the diferent versions that get created and how to and

code under hanging conditions ?".


maintain the quality of
9.11 How to Choose Right DovOps Tools
GTU: Summer-2013, Marks
4.
Explain version and change control management. 9.12 Challenges with DevOps Implementation

GTU: Summer-2018, 2019, Winter-2019,Marks 4 9.13 Must Do Things for DevOps


5. Explain SCM process in details. 9.14 Mapping My App to DevOps
GTU: Summer-2019, Marks
9.15 Assessment, Definition, Implementation, Measure and Feedback

O00

TECHNICAL PUBLICATIONS An up thrust 9-1)


for knowledge
Software Engineering 9-2 Sofwere Engineening
DevOps 9-3
9.1 Overview DevOps
Agile development teams, may choose
use certain automation tools. But there are Devops absolutely depends automated
DevOps encourages the development, IT operations, quality engineering and no
specific tools developmentand to make
on

team. required
for an
agile everything happen
security activities to be performed in coordination and collaboration to produce stnoothly reliably. Certain tools are
better, more reliable products. By adopting a DevOps culture along with 10.
an
integral part of
devops.
DevOps Agile is less fexible.
practices and tools, teams gain the ability to better respond to customer needs,
11.
Devops is more flexible.
increase confidence in the applications they build and achieve business goals Agile has limited
scope
faster. Devops has broader
scope
DevOps is a culture which promotes collaboration between Development and Review Question
Operations Team to deploy code to production faster in an automated and 1.
Differentiate between DevOps and agile
repeatable way. Development.
Teams that adopt DevOps culture, practices and tools become
high-performing,
9.2 Problem Case Definition
building better products faster for greater customer satisfaction.
In this section we will consider some real world
9.1.1 Difference between DevOps and Agile development. Suppose we want to design online problem for application
share trading application. This
application can be developed using following stages
Sr. No. Agile Devops
1. The idea in agile is to develop software in Devops is to deliver technology to Requirement gathering
and analysis
Testng
small iterations and be thus able to adapt business units in a timely fashion and Coding integration
to the changing customer needs. ensure the technology runs without Capture Design (esing
Prepare source
interruption or disruption. requirements
Model he cOde Deploymen
system Functional
2 It adopts rapid development approach This is not a
rapid development Analyse Review he tesdng
Deployment and
requirements
approach. Code monitong
Documentation User acceptance
The Requirement Perform unit esting
3.
focus of agile development is merely
on software development and release.
The focus of Devops is not only on
software development, its release but on
specification testing
it safest deployment in working Performance
testing
environment.
. In agile development, every team member Devops, on the other hand, assumes there Fig. 9.2.1 Application development Life Cycle
has a skill of design, development and will be development tea ms nd
Consider that the
coding Any available team member operational teams, the two will be agile process is adopted as a
delivery by the
should be able to do what's required for separate. These teams can communicate tram.
process development
progress. between themselves on frequent and
regular basis. 1. Requirement analysis During this
:
phase, the
requirements of the system are

5. identified. Both the functional and functional requirements


non
Communication in
agile development
informal and in the forn of
is In Devops communication, specifications, analyzed and presented to the development team in specific format.
are
gathered,
are involved and it is formal
daily documents
It does not occur on daily basis.
meetings. 2. Design : Design is an activity to outline the processes to be conducted. The
using
6. The team is small in nature. Large team size and multiple teams are diagrammatic representation, the activities are modeled.
required in Devops.
3. Coding: Once the design of the system is dorne, the coding process starts. With the
Agile is about software development. Devops is about software development
and management. help of suitable programming language, the codes are writen, and reviewed by the
8. Documentation is not much important in
development team. Some testing is also performed with the coding This type of
agile development.
Documentation is very much important in testing is usually unit testing
devops.

TECHNICAL PUBLICATIONS An up thrust


for knowledge TECHNICAL PUBLICATIONS An up thnust for knowiedge
Software Engineering
9- 4 Sofware Engineening 9-5
DevOps DevOps
4.
Testing: Before deploying the product in the working system, four types There are five steps to be followed
are carried out - of testing These steps are -
to
identify and fix the
application challenges
1) Integration testing 1: Assess to
2) Functional testing Step Identify Gaps: This step identifies the gap in process,
3) Useracceptance testing 4) Performance testing tools and automation in software
development process. technology,
Multiple teams perform Step 2: Define Solution: In this step, the solution are created for the
testing. The operational team ensures that identified in the step 1. The solutions are prepared as the issues that are
working accurately in working environment. product is
per DevOps strategy
5. Deployment Step 3: Implement Solution: The solution is
This is a stage in which the
product is
packaged, deployed and benefit. implemernted by taking mai1mum
monitored for correct
functioning. Step 4:Measure Benefit : The benefit is measured understand the effectiveness of
9.2.1 Challenges in
Application Development
the adopted strategy.

The challenges Step 5: Feedback Benefits and Challenges: The feedback is important to refine the
during application development life cycle are- solution the solution with better quality and in few iterations.
1) For execution of certain activities,
during application development there exists total
dependency on individuals in the team.
Define
2) Quality is important concerm during development stages.
an solution

3) For testing the application, the provision of working environment must be made. It
may cause delay in testing process. Assess to
ldentity Implementation
4) Tracing the requirements during the gap
development stage is a tedious job.
5) Testing can be costly, if repeated testing is
required.
9.3 Benefits of Fixing Application Development Challenges
Following are the key benefits of fixing application development challenges Feedback |
Measure
benefits
1) Time User requirements are changing many times. The ability of IT system to
align with the business creates huge impact.
Fig. 9.4.1
2) Cost Cost of the software is an important factor. The software cost can be 9.5 Solution Dimensions
reduced by reducing waste in the development process.
dimensions that can be used to solve issues in the application
3) Quality: By fixing the application development challenge the product quality can There are three key
be improved. The delivery team should be able to development in an integrated way.
quantify the product quality in development is
early stage of development. 1) requirements gathering the methodology of
Process: After
waterfall model, spiral model, agile development
process
decided. This method can be methods must be reviewed to
suitable process model. These process
Review Question model any other
or
development.
fix the issues in applicaion to automate the
What are the challenges in application development development process
Tools: The tools are used in application tools and the manner
2) on effectiveness
of the
solution must focus
9.4 DevOps Adoption Approach through Assessment manual activities. The
must identify if
additional toolset is required

tool can be used. The solution


in which the
Definition of Assessment The process of reviewing the application and related
or not.
processes to identify the status of DevOps challenges is called assessment or maturity
assessment.
An up thrust for
knowledge
PUBLICATIONS
TECHNICAL
TECHNICAL PUBLICATIONS An up thrust for knowledge
Sofwere Engineenng 9-6 Software Engineering 9-7
DevOps
3)
DevOps
Architecture and technology: The solution must evaluate Bringing the two teams
It must be checed if
underlying architecture. together centralizes the
the automated
parallel processing is possible or not. It must also be evaluated if and not specific individuals working. responsibility on the entire team
processes can be executed on this architecture or not.
.Devops is more than just a tool or a

Review Question organizational culture shift. process change It inherently


requires an
.This cultural change is
1. What is solution Dimension in
solving the issues of typical application development pTOcess. espedally difficult, because of the
departmental roles: conflicting nature of
9.6 What is DevOps? 1. Operations seeks organizational stability;
Definition Devops is a practice in which development and operation engineers 2. Developers seek change;
participate together in entire lifecycle activities of system development from design, Testers seek risk reduction.
3. -

implementation to product support


.The
Adoption of Devops is driven by various factors. These factors
term Devops is derived from "Software DEVelopment
"
and "information 1. Demand for an increased rate of
are

technology OPerationS". business unit stakeholders. production releases from application and

Devops promotes set of


a
processes and methods from the three department 2. Increased
usage of data center automation and
Development, IT operations and Quality assurance that communicate and
3. Use of agile and other
configuration management tools
collaborate together for development of software system. development processes and methods.
4. Increased focus on test automation
and continuous
integration methods
5. Wide availability of virtualized and
cloud infrastructure
Development Quality Benefits
assurance
Various benefits of
Devops are

Technical benefits
1. Continuous software delivery is possible
2. There is less
complexity to manage the project.
Devops 3. The problems in the project
gets resolved faster
.Cultural benefits
Operations 1. The productivity of teams get increased.
2. There is higher employee engagement.
3. There arise greater professional development
Fig. 9.6.1 opportunities.
Review Question Business benefits
1. The faster delivery of the product is possible.
1.
What is DevOps? 2. The operating environment becomes stable.

9.7 DevOps Importance and Benefits 3. The communication and collaboration gets improved among the teams members
and customer.
Importance and maintaining.
4. More time is available for innovation rather
than fixing
Devops enhances the organization's performance, the
improves productivity and
efficiency of development and operations teams.

TECHNICAL PUBLICATIONS -
An up thrust for knowledge TECHNICAL PUBLICATIONS An up thrust for knowledge
Software Engineering 9 8 Software Engineening 9-9
DevOps
Review Question DevOps
9.9 The 7 C's of DevOps Lifecycle for Business Agility
1.
Explain the importance and benefits of DevOps. The 7Cs of DevOps are as
follows
9.8 DevOps Principles and Practices 1) Continuous business planning During
: this phase the planning for
DevOps principles and skills, resources
required and outcome is made. identifying
practices are enlisted as
given below 2) Continuous
development: In this phase, development sketch plan
Principles
programming techniques are identified. Before continuous integration, prepared and
is

1) Customer centric action : development


Continuous feedback of end user or real teams would write a bunch of code for three
to four
should get reflected in all the
development
customer
activities. The product and services must be merge their code in order to release it. months. Then those teams would
developed in such a manner that the customer satisfaction is
always protected. 3) Continuous
integration Continuous integration is the practice
integrating newly developed code with the main body of code that to beof quickly
2) Focus on end result: The
developers and engineers must work by keeping the
complete picture of the end product in mind. Continuous integration saves lot of time when the team
a
released is

3) End-to-End ready to release the code. is

responsibility : All the services required to develop, maintain and The continuous integration
process from
monitor must be done by the same team. This DevOps perspective involves checking
a

helps in improving the quality of end your code in, compiling it into usable (often binary executable) code and
product. basic validation testing. running some

4) Cross functional autonomous


teams:If same team works on all the 4 Continuous deployment : It is the
development, maintenance and monitoring then it helps in improving thephases of
as
such practice of deploying all the way into
end product. The members of team quality production without any human intervention. Teams that utilize continuous delivery
having multiple skill set on various technologies and don't deploy untested code; instead, newly created code runs
through automated testing
use of
variety testing tools help to make the team self-sufficient.
of before it gets pushed out to
production. The code release typically only goes to a small
5) Continuous improvement: The continuous percentage of users and there's an automated feedback loop that monitors quality and
improvement is normally done for usage before the code is propagated further.
optimizing the speed of processing, reduced cost and minimized waste. The objective of
continuous improvement is to bring best 5) Continuous testing
quality product. Continuous testing (CT) is the process of executing
6) Use of automated tools and automated test cases as part of the software delivery pipeline. Its goal is to obtain
techniques The use of automated tools :

improving the speed and reducing the development efforts. Hence automate thehelp
in immediate and continuous feedback on the business risks associated with a software
wherever possible. things release candidate.
6) Continuous delivery and monitoring: With continuous delivery, every code
Practices change is built, tested, and then pushed to a non-production testing or staging
1) Perspective consideration: The difference between the environment. There can be multiple, parallel test stages before a production deployment.
perspective must be considered.
developers and participants
Continuous monitoring is a process of monitoring the applicaton continuously to
2) Flexibility: The organization must have check its service, and security. The continuous monitoring can be done
performance
flexibility to switch between the delivery involves generation of reports.
of the product using DevOps values and without using different tools. This monitoring process
DevOps values.
for immediate respornse
process which allows
an
3) Integrate changes : It must be possible to accommodate the 7) Continuous feedback: This is a

the system.
required changes in customers for your product and its features and helps you modify
from your
4) Agility: The process as well as tool selection needs to be accordingly.
agile according the
project needs
Review Question
5) Transparency There must be transparency about the
goals, delivery plan and
1. Erplain 7 C's of DevOps lifecycle for
business aguity
activities between developers and operational engineers.

TECHNICAL PUBLICATIONS An up thrust


for knowledge TECHNICAL PUBLICATIONS
An up thnust for knowledge
ftware Enginesnng 9-11
Sotware Engineening 9-10
DevOps DevOps
.Then goes to the
'Acceptance testing' which
9.10 DevOps and Continuous Testing acceptance test cases and then
basically includes the automated site
finally on to the User
Acceptance Testing' which
Continuous testing could be a manual execution and includes end-user
is an
important aspect in DevOps. tests and participation to carry out the
a this will be a kind of final
Definition of continuous testing: Continuous testing is defined as software sign off on the product or feature,
a

testing that involves the process of testing early, testing frequently and automate Here the continuous
testing would be mainly running the automated test
the test. automatically with a trigger. cases

Test automation is a mandatory step in continuous testing


Continuous testing is vital aspect
9.10.2 Advantages of Continuous Testing
a
that bridges continuous integration and
1)
continuous delivery. Quality of the
product gets improved.
2) Speed of execution gets increased by involvement of automated
9.10.1 Continuous Testing Process in DevOps testing techniques
3) Faster feedback on code.
I n DevOps processes the a software change is continuously moving from
4) The continuous testing process boosts the confidence of the team and
developmernt to testing to deployment. That means the code is continuously them to encourages
developed, delivered, tested and then deployed.
improve continuously.

During continuous there is an execution of various types


testing, of tests, 9.10.3 Challenges in Continuous Testing
continuously on the code base and on different environments that it gets deployed
1) Tool early stage testing: Early testing is
on to, as predefined and designed in the continuous delivery pipeline. normally done at requirements analysis
phase. In this phase requirements can get changed. There may be lack of test case
Integration System testing coverage or there can be multiple overlapping test cases. Poorly defined or
On Cl server environment environment incomplete
requirements can not be tested completely in this phase.
Source code Unit tests, Integration System tests 2) Test data
security tests tests management: Another challenge in continuous delivery is locating
proper test data. Hence proper test data
management must be done consistently.
Following are the difficultes in test data
management
Release to User Performance| (i) extraction of test data spread across multiple databases
acceptance
Acceptance and load
production tests
tests
tests (i) limited access to production systems
Pre-production environment Production (in) maintenance of multiple dataset versions for different tests
testing
environment (iv) creating test data without copying the production data
Fig. 9.10.1 Continuous testing architecture in DevOps 3) Availability of testing environment: Within continuous delivery, tests run in

The unit tests happen on the Continuous Integration(CI) server itself, which tests parallel in the development phase and integration phase. Because of that, the team needs
to have many environments available for different purposes. The lack of test
each unit of the system in isolation. environments is one of the biggest challenges to achieve continuous testing.
Integration tests happen on Integration ernvironment which basically verifies the 4) Lack of availability of proper automated testing tool: Most of the legacy testing
components integrated together. tools are unfit for testing in DevOps, hence use of appropriate
continuous automated

System tests in the system testing environment where the BIG system with all the life cycle is a big challenge
tools at every stage of development
integrated components and interfaces are tested through system-level scenarios in
a system testing environment and so on. Review Question
And the depth of testing often progresses as the simulation of environment gets continuouS integration process
in
DeoOps.
1. Explain
closer to production.
TECHNICAL
PUBLICATIONS An up thrust for knowledge
TECHNICAL PUBLICATIONS An up thrust for knowiedge
Sofware Engineening
9-112 Software Engineening 9-13
DevOps DevOps
9.11 How to Choose
Right DevOps Tools Step 7: Ensure continuous feedback between the teams
Following are the 7 steps to be followed to choose right There must be feedback loops to automate
communication between tests that
DevOps tools
issues, and tests that process needs to be spot
Step 1:Understand the
collaboration and shared tools strategy supported by your chosen tool. Hence tools
that monitor software in production,
DevOps teams need identify issues in software in an automated or
to come up with a commorn tools manual way, link the issues to deployable
collaborate strategy that lets them components.
across
development, testing, and deployment. The common
on strategy is based 9.12 Challenges with DevOps Implementation
Processes
1) Cultural change: Any organization must promote the collaborative culture for
Communications and collaboration planning effectiveimplementation of DevOps. The leaders should bring transparency the work in
Continuous development tools process. There must be positive
atmosphere in an organization
Continuous integration tools 2) Bringing silos and sectors together: There
tendency of maintaining silos and
is a

Continuous testing tools


.
sectors within the team. While
developers are constantly writing pieces of code in order
to build a system, testers
Continuous deployment tools perform a thorough analysis to ensure product stability before
the final delivery to the customer. Due to this
Step 2: Use tools to capture all the practice, there lies a big gap between
requests teams. Both Dev and Ops work in silos, leading to a lack of
transparency and poor
DevOps tooling should capture every request for new teamwork
provides the ability to automate the acceptance of changed software. DevOps
or

change that come in either 3) Giving up legacy systems Organizations must give up the old or outdated
from the business from other parts of the
or
requests
systems and must adopt modern and efficient systems. Handling new systems along
DevOps teams.
with the old existing systems in the organization can be challenging many hmes.
Step 3 Use
agile Kanban project management for automation
4) Tool selection confusion: There are number of tools available n the market
Kanban is a framework used to
amount of work in
implement agile development that matches the which tempt the DevOp developers to choose different tools. This leads to changing and
progress to the team's capacity. It gives teams more flexible updating the tools frequentdy. Changing and updating the tools becomes difficult with
options, faster output, clear focus, and transparency planning
Kanban tools throughout the development cycle. change in strategy. Hence instead of using ever changing tools and increasing the cost,
provide the ability to see all the items in context with each
other. the team should adopt well organized long term strategy to use specific tool
Step 4: Use tools to log metrics
on both manual and
automated processes
5) Different metrics: During product development process each team measure their

Select tools at can performance using different metrics. When the projects is to be implemented using
help you understand the productivity of your
both automated and manual. DevOps processes, DevOps technology, there must be a common metric to be used to measure the
performance. Accepting a common measure of performance is sometimes challenging for
Step 5: Implement test automation and different teams.
test data provisioning tooling the
With DevOps, testing must be 6) Resistance to change : The teams are normally unwilling to accept changes.
continuous. There can be thousands of
test cases open up the
need to be executed
during application development. Thus test automation and that They are resistance to change their preferred working style. They
do not

data provision tools are essential. test other teams to work and may create an
silos to other teams. This makes it difficult to
unhealthy environment.
Step 6:Perform acceptance tests for each deployment tooling does not define specific rules toimplement
7) Process challenges : DevOps strategy
For the tool set selected, those the tools. The only restriction
is to follow the project goal.
charged
with DevOps
testing processes the process or to use

acceptance tests, and ensuring that the tests meet should to


it
to use innovative methodologies,
spend time defining the Although this gives lot of flexibility and chances
acceptance criteria selected. These tests
may be changed at any time by
with the situations like confusion
and disputes among the team members

development or may lead to challenging


operations. of some strategies.
TECHNICAL PUBLICATIONS An up thrust An up thrust for knowledge
for knowledge TECHNICAL PUBLICATIONS
Software Engineening 9- 14
DevOps Software Engineening 15
DevOps
9.13 Must Do Things for DevOps 4) Measurement
Following is a list of
things that are most required for DevOps to implement. 5) Feedback
1) Find DevOps driver: A DevOps driver is a resource, process
will help to stay focused in software development activities,
or
condition that
management. security and data Definition

2) Adopt with DevOps culture


DevOps :
Adopting culture means instead of
traditional software
development approach,the team should work in
having
the other teams.It should have collaboration with Assessment Implementation
an involvement in all the
activities from
deployment of the
product and chase for the development to
quality in work.
3) Move in
right direction: For moving the team in right direction
Agile and DevOps help the team members to embrace the coaching in both Feedback Measurement
changes
practices. Team members should also be trained to use new tools and
in culture and

4) Make the customer techniques. Fig. 9.14.1


happy : By creating user friendly product and
service within the high quality
stipulated time- makes your customer happy. DevOps strategy can be adopted to the entire end-to-end development process or it

5) Follow certain can be applied to particular life cycle stage (For instance- coding).
principles:
Some of the commornly followed principles are
i) Automate repetitive tasks.
9.15 Assessment, Definition, Implementation, Measure and Feedback
(i) Keep it simple
1) Assessment :
ii) Every must be responsible. This is the first step of mapping an application to DevOps.
(iv) Get continuous feedback and work DevOps maturity
accordingly. This step is basically called as assessment.

6) Ensure security: There are a set of parameters to be measured at every stage of DevOps Matunty
Adopting DevOps practices introduce
implementing standard security practices. Team must think about complications for Model to confirm an organization's level of DevOps maturity
and service more secure. making the product such as
Assessment the Devops matunty is based on the vanous parameters
7) Make of and reporting
use
right tools : No tool is
perfect. But the team should process, people, tools, culture, measurement

organized long term strategy to use specific tool. adopt well


terms of Crawl, Walk, Run and Sprint or
is measured in
The DevOps capability
8) Use key technologies: DevOps equivalent levels measuring maturity increasing order
in

continuous
implementation require frequent deployment and
feedback. Due to which new features are sessions with different
getting added frequently. Hence .Method of assessment is arranging brain-storming
make of key stakeholders put their views and
use
technologies and instead ofpractices making use of traditional, stakeholders. This is an iterative achvity in which
monolithic development. is refined further.
ideas and the application
is prepared for measuring the maturity
9.14 Mapping My App to DevOps .Typically of predefined questionnaire
set
of development lifecycle.
of application in activity
Mapping My Application to DevOps is called
adoption of DevOps. maturity is prepared.
The DevOps detailed report about DevOps
adoption is continuous iterative process.
a
It consists of
following steps -
Finally a
1) Assessment 2) Definition is detined.
That means the actions
in which souhion
Definition is the second phase next level of maturity
2) Definition to reach to
identfied which help the application from
are of the project 2) findings
3) Implementation are 1) Objechves
The input to definition phase strategy
Enterprise DevOps
assessment phase and 3)
TECHNICAL PUBLICATIONS An up thrust thrust
for knowledge
for knowledge TECHNICAL
PUBLICATIONS
An up
Softwere Engineening9 16
Softwere Engineering 9-17
DevOps
DevOps
Enterprise DevOps Note that during the use of automated tools at various stages of development life
strategy consists of set of guidelines for
about adopting DevOps strategy. For instance the guideline individual project
-
cycle makes the things simplified. For instance at the coding phase, code review can be
of may consists of
list possible by the tool 'SonarQube, and for unit testing one can use the tool such as Junit
approved tools for the project.
Similarly different tools can be used at testing and deployment phases.
Enterprise DevOps strategy must be flexible enough by
accepting
from individual
project, even if it is not implemented earlier in the contributions 4) Measure and Feedback
Hence Enterprise organization.
DevOps strategy must be evolving for betterment. This is a final important step in which the success of the project is
measured
. At the end of definition
phase, blue print of project of DevOps is
a
After implementation deployment
and application
of the the working in
action items that are obtained in assessment
prepared with
report. environment, this step must appear so that the quality of implemented application
3) Implementation : can be judged.
.This is a phase in which the items which the Performer Indicators(KPD that the benefits of
are identified during the Following are Key measures
are implemented. definition phase tools and process implementation
Due to Failure rate : What is the frequency of occurring failures in the operations?
adoption of DevOps strategy, use of automated tools saves lot of
during each phase of development resources
life cycle. This enhances the Deployment time: Does the duration of deployment time get shorten?
application development process. of efficiency Mean time to recovery How quickly the application can recover from
Following Fig. 9.15.1 and 9.15.2 illustrates the difference between failure?
implementation and post DevOps implementation
pre DevOps . I n addition to these KPls, the dashboards can be provided to measure the success
of the These dashboards are provided by the tooiss to
application implementation.
Requirement gathering lestng monitor the individual tools parameters. Hence
it is possible to measure testing
and analysis
Coding
Integration time, productivity and so on.
Ca
equiure Design Prepare source testing is to reduce the
requirements Model the
system
Code
unctional
Deployment
T h u s the ultimate goal mapping the application to DevOps
of
overall cost of the implementation and to enhance the quality of project
Analyse Review the testng
Deployment and
requirements code monitonng
DOCumentation User acceptance
Requirement
Specitication
Perform unit Tesung Review Question
testing Feedback DevOps.
Mensure and in
Pertormance
testing
1. Explain Assessment, Definition, Implementation,

Fig. 9.15.1 Pre DevOps development

Requirement gathering
and analysis
Testing
Coding Integration
Capture Design testing
requirements Prepare source
Code Deployment
Model ne
system Functional
Analyse estng
requirements
Review the
CO06
Deployment and
monitorin
o
Documentaton |User acceptance
|Requirement testing
Perform unit
specihication testing
Performance
testing

Fig. 9.15.2 Post DevOps implementation


PUBLICATIONS
An up thrust for knowiedge
TECHNICAL

TECHNICAL PUBLICATIONS An up thrust


for knowledge
>owere Engineenn
9 18
Notes Devops
Advanced Topics in
10 Software Engineering
Syllabus
Component-based software engineering. Client/Server sofware engineering. Keb engineering,
Reenfineering, Computer-aided software engineering. Sofhware process improvement, Emerging
trends in software engineering
Contents
10.1 Component Based Software Engineering (CBSE)
10.2 Client Server Software Engineering. Summer-2018, Winter-2019, Marks 3
10.3 Web Engineening
Summer-2018, Marks 7
10.4 Computer Aided Software Engineering (CASE)
Winter-2012, 2013, 2014, 2017, 2019,
Summer-2011, 2014, 2015, 2016, Marks 7
10.5 Software Process Improvement. .Summer-2013, 2016,
Winter-2018, Marks 7
10.6 Emerging Trends in Software Engineering
TECHNICAL PUBLICATIONS- An up thrust for knowledgee (10 1 )
Software Engineenng
10 2
Advanced Topics in Software 10-3 Advanced Topics Software Engineerng
Engineering Software Engineenng in
10.1 Component Based Software Engineering
(CBSE)
Definition The CBSE is 5.Documented: The component must be fhuly documented so that any user can
defining, an
approach of
implementing, integrating loosely decide whether particular component is useful to meet the system requirements.
coupled independent components into system.
CBSE is basically a reuse based approach. 10.1.2 Component Models
Benefits
The component model specifies how interfaces should be defined, what are the
1. By CBSE, it becomes easy to construct elements to be included in an interface definition.
understandable and maintainable software.
2.
Components are
independent entities and Examples of component model are-
componente's operation they do not interfere in other
1. EJB Model
3.
Compornent implementation is hidden. 2. COM Model
4. Communication among the
components is
through well defined interfaces. 3. CORBA Model
5.
Component platform can be shared and
development ultimately it reduces the cost of 10.1.3 CBSE Process
Drawbacks Component composition the process of 'wiring' components together to create a
have to consider required functionality,
1. It is difficult to verify the trustworthiness of system. When choosing compositions, you
the component without source code. non-functional requirements and system evolution.
2. The
quality of
component can not be verified. follows
steps for CBSE process
-
The are as
3. It is not
possible predict the emergent properties of component
to
4. It is difficult to make compositions.
the trade-offs between the
features of various
components. Gather requirements
and identify the Search component Select component Validate component
10.1.1 Component and Component Models component
According to Council and Heinmann
"Software component Fig. 10.1.1 CBSE Process
is a software element conforms to a
be
independently deployed component model and can one can
and composedwithout modification Because, using complete set of requirements
according to a 1. Gather the user requirements.
composition standard." as possible for reuse.
identify as many components
Various characteristics of component are - of component. f user
upon the availability
2. Refine the requirements depending then sometimes the
1. Standardized : The components confirms to some be satisfied from available components,
standardized component model. requirements can not component is
made.
These standards are for modified or search for appropriate
to be
defining component interfaces, metadata, composition, requirements need is integrated with
deployment and documentation. process,the discovered component
3. During the development
2. Independent: The component must not
depend upon other
software being developed.
In this process
deploymernt is made. component while validation process
is carried out.
must behave as
4. Then the component tested. The selected component
the interfaces is
3. compatibility with a set of test
cases
Deployable : The component must have an
ability to operate standalone validation involves developing
and it should be self-contained.
as a
entity Component
requirement.
per the
4. for component.
Composable : For a compornent to be composable, all extermal interactions must
take
place through publicly defined interfaces.
An up thnust for knowledge
TECHNICAL PUBLICATIONS An up thrust
for knowiedge TECHNICAL
PUBLICATIONS
Softwere Engineering
10 4 Advanced Topics in Soñwere
Engineering Softwere Engineering 10-5 Advanced Topics in Saftware Engineeing
10.2 Client Server Software
Engineering 2 Fat client model
GTU: Summer-2018, Winter-2019,Marks3
The client-server architecture In this model, the server is responsible for
only data management. The application
models the logic and presentation software is executed on the client itself.
application in such a
way that the server consists of a
Example
set of services which
demanded by the clients.
are
That
a Client
process The
(ATM) is
automatic
an example
teller
of
machine
fat client

ATM
Account server
means clients demand for the
services and model. Teleprocessing Accounts
servers
provide thesse Network ATM monitor database
services to the clients. The The ATM is connected to the
clients
and servers Server
processes. The
are the
separate
architecture is as (c6 processs
server. User operates the ATMs and
the information is processed at the
shown in the Fig. 10.2.1.
(C7 client side. The data management part ATM
is handled by the server.
Fig. 10.2.2 ATM system (Fat client model)
10.2.1 Two Tier Architecture Fig. 10.2.1 Clientserver archtecture Advantages
This model makes a proper utilization of power computing devices by executing
In client-server architecture, on the clients. Thus processing is distributed effectively in fat
one server
might be connected more than one client. The
application logic
simplest client-server architecture is called two-tier
client
client model.
the
server architecture in which
application executes on two layers client layer and server layer. The two-tier
.The apPplication functionality is spread across many computers and thereby
architecture is of following types of the overall system gets increased.
efficiency
1. Thin cllent model Disadvantages
I n this model, the system management is more complex.
In this model the data
management and application logic is implemented the then this involves reinstallation of
application software has to be changed
on
server and the client is I fthethe
responsible for
running the presentation software. software in every client. This process becomes costly.
Example
The 10.2.2 Three Tier Architecture
compiler application makes use of thin client model.
In this architecture, the presentation, Application Dataoase
Advantage and data server server
application processing
This model is used in
simple applications. management are logically separate Presentation Application Data management
different tier processing tier tier
Disadvantages processes
and execute on
as shown
architecture is tier architecture
There is a heavy load on both the server and the processors. The Fig. 10.2.3 Three
network. The server is
in Fig. 10.2.3.
responsible for all the computations. This ultimately results in heavy network
traffic between client and server.
Example architecture. In this application
the
There is a lot of three tier
processing available in modern computing devices. Executing Internet banking is
an example of
for banking
transaction (This is presentation
simply the presentation software on clients mean not utilizing the power of these web page and requests database s e r v e r
c o m m u n i c a t e s the
cient browses the
the request and
computing devices processes
tier). Then the applicationt r a n s a c t i o n . (This is application processing
tier). The
database
to the request for
verify
An up thnust for knowledge
TECHNICAL PUBLICATIONS- An up thrust
for knowledge TECHNICAL
PUBLICATIONS
Software Engineering 7 Advanced Topics in Schware
10-6 Advanced Topics in Engineering
Software
Sotware Engineening
Engineering 6. Data driven
server stores the bank database and executes the queries. The results of these queries
are The primary contents on any web application are text, graphics, sound and video.
retumed to the application server.
Some web applications may present information to its user using the databases and
such databases might be on remote machines.
Review Question
7. Content sensitivity
1. Explain client / server software engineering. GTU: Summer-2018, Winter-2019, Marks 3 It is an important aspect of any web application. The information present of the
web application must be authentic. Similarlty the contents must be neatly aranged
10.3 Web Engineeringg GTU: Summer-2018, Marks 7
on the web page. The quality ot web application is
dependant upon this attribute.
Murugesan has defined web engineering as -
ww.ad
8. Continuous evolution
Definition: Web engineering is sound scientific, engineering and management principles
a
Web applications evolve continuously. There
are some web applications that evolve
and disciplines. It is also systematic and
disciplined approaches to the successful development, continuously minute to minute. For example web systems showing the share
deployment and maintemance of high quality web based systems and applications. market position.
10.3.1 Attributes of Web Based 9. Security
Applications demand for any web application Sometimes the
The strong security is the topmost
Web applications to limited number of users. In such case
are
evolving continuously. Hence attributes of web applications are sensitive informatiorn must be conveyed
based on the nature of it.
Following attributes are encountered in
majority of strong security measure must be applied.
applications
10. Immediacy
1. Concurrency
web engineers must us
Building a web application quickly is today's need. Hence
Large number of users can access the same web methods for planning, analysis, design, implementation and testing
for preparing
Sometimes pattern of usage of these web application concurrently. the target web application within given schedule.
applications among the users
may vary
greatly 11. Aesthetics
2. Performance
Aesthetic is ane of he
Aesthetic means something related to the look and feel.
If has look and feel of any web
important attribute of web application. That means the
a user to wait for a
long time to access the desired web
loose the interest in page then he may application should be sophisticated and appealing
3. Network intensiveness
accessing it.
The
particular web
application may be residing on the internet or it 10.3.2 Design Model for Web Based Applications
present on intranet or may be onthe extranet. That means may be discussed the Web Engineering design model in section 5.8.
which the web the environment in We have already
application is residing may vary.
4. Unpredictable load
Review Questions
The load for
accessing particular web
application varies term web engineering. What
are the attr1butes of web based applications?
day 10 users might be accessing the web
greatly. That means, some 1. Define the Marks 7
application and GTU Sumner-2018,
day 10000 users may access the same.
immediately
on the next 2. Explain web engineering
5. Availability
100 %
availability of particular web application is
application which is used very frequently just impossible. But the
the time. should be available to its
user almost all
TECHNICAL
PUBLICATIONS An up
thnust
for knowledgo
TECHNICAL PUBLICATIONS An up thrust
for knowledge
Softwere Engineering 10-8 Advanced Topics in Software Software Engineering 10-9 Advanced Topics in Software Engineering
Engineering
10.4 Computer Aided Software Engineering (CASE)
Case Tools
GTU: Winter-2012, 2013, 2014, 2017, 2019, Summer-2011. 2014, 2015, 2016, Marks 7
Importance of CASE Tools Integration
Environment
The Computer Aided Software Engineering (CASE) tools automate the project
management activities, manage all the work products. The CASE tools assist to Probabilty Services
perform various activities such as analysis, design, coding and testing.
Operating System
Software engineers and project managers make use of CASE tools.
The use of CASE tools in the software development process reduces the Hardware Platform
significant
amount of efforts.
Environment Architecture
CASE is used in conjunction with the process model that is chosen.
CASE tools help software engineer to produce the high quality software efficiently. Fig. 104.1 Building block for CASE Tools
Use of CASE tool automates particular task of software
development activity. But can be used, or a
it is useful to use a set of CASE tools instead of using a single CASE tool. of manner. A single CASE tool
always CASE tools can exist in variety
The CASE tools
If different CASE tools are not exists which acts as some package.
integrated then the data generated by one tool will collection of CASE tools may
be an input to other tools. This may also serve as a bridge
between other tools.
require a format conversions, as tools may
developed by different vendors may use different formatting. There are chances,
that many tools do not allow
exporting data and maintain data in proprietary 10.4.1.1 Taxonomy of CASE Tools be
various categonies of tools can
formats. T o create an effective CASE environment,
developed.
10.4.1 Building Blocks of CASE CASE tools can be classified by
The CASE tools function
may exist as a single tools or a collection of multiple tools. These 1. by or use
tools must communicate with various elements such as tester), or
hardware, database, 2. by user type (e-g. manager,
test)
people, network, operating system and This communication creates an
so process (e.g. requirements,
3. by stage in software engineering
on.
integrated environment. is as given below.
T h e taxonomy of CASE tools
Fig. 10.4.1 represents the building block for CASE. The bottom most layer consists tools
of environment architecture and Business process engineering
hardware platform. The environment architecture 1) business data
information flow. It represents
consists of collection of model the business
system
software and human work This tool is used to between different
business areas
pattern that is applied their relationships and
how data objects flow
during the software engineering process. objects,
A set of within a company.
probability services connects the CASE tools with the
framework. integration and management tools
2) Process modeling need to be
understood then anly
it
The integration framework is a collection of specialized First the processes it is
programs which allows It models software processes. the processes. Hence
the CASE tools to communicate with the the key elements of
database and This tool represents
to create same look and could be modelled.
feel for the end-user. Using work tasks efficiently
the cross platform elements.
probability services CASE tools communicate with can possible to carry out
tools and CPM. The
A t the top of this
building block collection of CASE tools exist. CASE tools
a 3) Project planning schedule projects. Examples
a r e PERT
to plan and bottlenecks in the projects.
basically assist the software engineer in developing These tools help and eliminating
complex component.
a
tool is finding parallelism
objective of this
PUBLICATIONS An up thrust for knowledge
TECHNICALL PUBLICATIONS An up thrust TECHNICAL
for knowledge
10-10 Advenced Topics in Sofwere
Sofware Engineenng Engineerh Software Engineering 10-111 Advanced Topics in Sotware Engineering
tools
4) Risk analysls 13) Analysis and design tools
risks. Ihese tooIs are useful for building the ie
It helps in identifying potential tab It creates models of the system. Some create formal models. Others
detailed guidance in idenihication and analysis of riska t construct data
and thereby providing
this tool one can categorize
the risks as catastrophic, critical, marginal, or neglioihla flow
models These
models contain representation of data, function and behavior
tools helps in architectural, component level and Interface design
Such
cost is associated with each risk which can be caluculated at each stage of develonmment.
14) PRO/SIM tools
tools
5) Project management
These tools are extension to the These are prototyping and simulation tools. They can help predict real time system
These track the progress of the project.
project response and allow mockups of such systems to be fashioned.
tools and the use of these tools is to update plans
and schedules.
planning
6) Requirements tracing tools 15) Interface design and development tools
The objective of these tools is to provide a systematic approach to isolate custom These tools are used in developing user interface. It inctudes vanious components
omer
requirements and then to trace these requirements in each stage of development. such as menu, icons, buttons, scrolling mechanisms etc. For example JAVA, Visual
Studio.
7) Metrics and management tools
These tools assist to capture specific metrics that provide an overall 16) Prototyping tools
measure of
quality. These tools are indetended to focus on process and product characteristics. For These tools support to define screen layout rapidly for interactive applications
example "defects per function point", "LOC/person-month".
17) Programming tools
8) Documentation tools
The programming tool category include the programs that support most of the
Most of the software
development organizations spend lot of time in developing the conventional programming languages. For example compilers, debuggers, editors,
documents. For this reason the documentation tools
provide a
way to develop database query languages.
documents efficiently. For example
word processors that give
templates for the
organization process documents. 18) Web development tools
9) System software tools These tools help in developing the web based appications. The various components
of these tools are text, graphics, form, scripts, and applets.
These tools provide services to network
distributed component support. For
system software, object management and
example e-mail, bulletin boards, and www access.
-
19) Integration and testing tools
10) Quality assurance tools These tools include various category of tools such as data acquisition tools, static
These measurement, dynamic measurement, simulation, cross functional tools
are
actually metrics tools that audit source code to insure
language standards. compliance with
20) Static analysis tools
11) Database management tool The static testing tools are used for deriving the test cases. There are three types of
It
provides consistent interfaces for the
static testing tools.
configuration objects are primary repository elements. project for all data, in
particular the
i. Code based testing tools These tools take source code as input and generate test
12) Software cases.
configuration management tools
It assists with i .Specialized testing larnguage Using this language the detailed test specification
identification, version control, change control,
accounting auditing, and starus can be written for each test case.
These tools designing the
ii.Requirement-based testing tools help in test cases as
per user requirements.
TECHNICAL PUBLICATIONs An up thrust TECHNICAL PUBLICATIONS An up thrust for knowledge
for knowledge
Softwere Engineering 10-12 Advanced Topics in Software Engineerng Software Engineering 10-13 Advanced Topics n Software Engineenng
21) Dynamic analysis tools
These interact with an executing program, checking path coverage, and User Interface Layer
testing
assertions Intrusive tools insert code in the tested program. Non intrusive tools use a (Interface tool kit, Presentation Protocol)
separate hardware processor.
Tool Management Layer
22) Test management tools
These tools manage and co-ordinate regression testing perform comparisons of
output, and act as test drivers CASE CASE CASE CASE CASE CASECASE CASE CASE CASE
Tools Tools Tools Tools Tools Tools Toois Tocls Toou
23) Client/server testing tools
Object Management Layer
The client server tools are used in client server environment to exercise the GUI and
network communication requirements for client and server. (Integration services, configuratton management services)
24) Reengineering tools
Shared Repository Layer
These tools performs a set of maintenance activities. These tools
perform various
functions such as
(CASE database, Access control functions)
Reverse engineering to specification tools.
.Coderestructuring.
Fig. 10.4.2 Model for integrated CASE environment
On-line system re-engineering
10.4.2 Integrated CASE Environment The next layer is Object management Layer (OML). It performs the configuration
CASE tools create a pool
of software engineering information. The integrated management. The services of this layer allows the identhcation of all the
CASE environment allows a transfer of information into and out configuration objects. So that the case tool can be plugged into the integrated
of this pool. For
such transfer there is a need for some architectural CASE environment.
are
components. These components
The bottom most layers is shared repository layer. It consists of CASE database
oDatabase for storing the information
and access control functions. These access control functions help the object
oObject management system. Because using the objects information can be
management layer to access the CASE Database.
transferred in the information
pool.
o Control mechanism.
Review Questions
o User interface
The Fig. 10.4.2 shows the
1. Describe integrated CASE emvironment. GTU Summer 2011.Winter-2013. Marks 7
simple model for integrated CASE environment. This 2. What does CASE stand for ? Explain all CASE components. GTU Winter-2014. Marks 7
environment consists of various levels.
3. Explain CASE and building blocks of CASE. GTU Summer-2014. Marks
.The user interface layer consists of interface tool kit and
The interface tool kit consists of
collection of software
presentation protocols. 4. Explain CASE tools and its useimportance m software enguneerng
management and display objects. The
required for interface GTU Winter-2012. Summer-2015. Marks 7
look and feel of the presentation protocol decides a common 5. Write a short note on : CASE. GTU Summer 2016, Winter-2019. Marks 7
presentation
interface.
.Then 6. Explain CASE tools amd is use in software engineering GTU Winter-2017. Marks 3
comes a tools layer. IT consists of set of tools
management services (TMS).
TECHNICAL PUBLICATIONS -
An up thrust for TECHNICAL PUBLICATIONS An up thrust for knowiedge
knowledge
10-14 Advanced Topics in Software Engineerng
Sofware Engineering 10 15 Advenced Topics
Software Engineering
in Sofware Engineering
10.5 Software Process Improvement
GTU: Summer-2013, 2016, Winter-2018, Marks 7 Review Questions
Process improvement means understanding the existing process and changing 1. Explain software proCess improoement. Explatn various elements of SPI framework md maturity
these processes to increase the product quality, to reduce the cost and/or to reduce model. G0 Summer.2013. Marks 7
the development time in order to accelerate the project. with Darious elements of SPI framenwork.
2. Explain software prTOCess improvement
Following are process attributes focusing on the concept of process improvement GTU Summer-2016. Winter.2018, Marks 7
1. Understandability: "Is the process definition easy to understand ?" This aspect is Trends in Software Engineering
focused for understandability. 10.6 Emerging
stream. Software Intensive systems
2. Visibility: "Do the
process activities haPpen in such a manner that the progress of Software engineering is a continuously changing
technology. The software must be
process is visible ?" This aspect is focused for visibility. have become foundation of virtually every modern
systems will as evolve.
3. Reliability: "Is the
process design in such a manner that the process errors are demonstrably safe, secure and reliable. Requirements emerge
software. Hence new technriques
avoided before getting introduced in the
product as the product error ?" This Thus the word is demanding for better, more reliable
few emerging trends in
-
aspect is focused for reliability. and trends used in software engineering. Let us leam
are
4. software engineering
Supportability: "To what extent the CASE tools
support the process activities "
-
This aspect is focused.
10.6.1 Process Trends
5. Robustness "Will the system continue to work even if some
occur?" This focused.
unexpected errors
The fundamental unit of business, organizational
and cultural trends is process.
aspect is
follows
suggested by Conradi and Fuggetta
are as
6. The six process trends
Acceptability: "Is the desired process acceptable for
product ?" This aspect is focused. producing the software
goals that have
development the focus will be on short
term
1. In a rapid software
7. Rapidity: "How fast the product innovation.
processes can be delivered into the ?"
aspect is focused. system -
This that where the process is weak. Therefore
2. Software engineers have a good sense
8. the process change will be driven by this knowledge.
Maintainability: "Can the process evolve if any changes or modifications
the system ?" This occur in within those processes which
-
aspect focused.
is 3. Automation software process technology is used only
most by such automation.
10.5.1 SPI Model will get benefited
be returm of investment of software
4. Emphasis of process development wil
on
Process Measure
improvement is the crucial development activities.
activity and involves following stages- will understand that the software
5. As time passes the software community
1) Process
Improvement: Current project development has a greater impact on sociology
and anthropology.
attributes are measured. Then identify 6. New modes of learming will facilitate the effective software processes
the process that needs to be Change
improved. Analysis
2) Process
Analysis : The identified 10.6.2 Collaborative Development
process is
analysed to obtain the and
bottlenecks and weaknesses. the international boundaries,
Today, software engineers collaborate
across
information.
3) Process Change After every one of them shares the
analysis phase
:
methods and tools that
some
processed need to get changed. In this The challenges over next decade will be to develop
incorporated in the process. phase the
required changes facilitate the collaboration for software development.
are
efforts are -
that lead to successful collaborative
TECHNICAL PUBLICATIONS An up
Number of success factors
thrust for
knowledge
An up thrust for knowledge
TECHNICAL PUBLICATIONS
Softwere Engineering 17 Advanced Topics in Software
10 -16 Advanced Topics in Software
Engineering
Software Engineerin9
Engineerng
1. Shared Goals The project goals
must be clearly specified and all the
stakeholders must understand and agree with them.
Add a test
2. Shared Culture The cultural difference should be clearly defined and proper
communication and educational
approach
must be adopted. Succeeds
3. Shared Process : Process is the basic unit of est
collaborative project. All the team
members work on it to create a successful ails
system.working
4. Shared
Responsibilities Every team member must
recognize the needs
of the Fails
customer and should work to
give best possible solution.
Write some
10.6.3 Model Driven Development production/corection
Code
During the software design phase, architectural and component level abstractions Testing failisRun
of the system are
represented and assessed. all tests
. I n the
subsequent phases of software
development, these design components must All tests
be translated into
programming language representations. Thus high level SuCceed
abstractiorn is transformed into low level Cleanup code and
abstractions. This low level abstract proceed with it
modelshould work in
specific computing environment.
a
Model driven software Repeat if necessary
development is approach of software development in
an
which Domain
Specific Modeling Language (DSML) is combined with Fig. 10.6.1 Test driven development cycle
transformation engines and
generators in such a
way that high level abstraction is
Run tests
converted into low level abstraction.
Execute the test for existing code. If the tests succeed then
Domain specific modeling iteratively add new test.
language represents the application structure, .Write correcting code
and
requirements within particular application domain. behavior If the tests fail then correct the
existing code and send it for testing. This will increase
The domain the confidence in the code.
specific modeling language describes the
domains, their semantics and the constraints associated relationships among various Run automated tests
with these domains.
If all the test cases
pass in this manner then programmer can be confñdent that code
10.6.4 Test Driven
Development meets all the tested requirements.
Test Driven software .Repeat
Development is software development technique in which there
occurs
very short development cycle followed Startng with another new test case the cycle will be repeated to push forward the
(TFD) approach is adopted in TDD. That means,bytherepetitive tests. A Test First Design functionality.
If test is first step is
always to add the test.
passed then add another test. But if test is failed then make some corrections in
Finally the code can be cleaned up. By re-running the test cases the developer is
the code, the automated test until all the
run
tests get success. re-factoring the code, testing is without affecting the its functionality
The test driven
development cycle Review Questions
Following are the basic steps followed
in TDD
cycle.
Add a Test . Explain various emerging trends in softuare engineering
2. Write a short note on Test driven development.
In the test driven
write these tests,
development the
development cycle begins by writing
developer must understand the feature and
a test. To
requirements clearly.
TECHNICAL PUBLICATIONS An up thrust for knowiedge
An up thrust for TECHNICAL PUBLICATIONS
knowledge
10-18 Advanced Topics in Software Enginee
Software Engineering
Notes
TECHNICAL PUBLICATIONS An up thrust
for knowledge

You might also like