SE Technical
SE Technical
SE Technical
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
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.
|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
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
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
the above states XP values the agile team can win the
5.Respect: By following
respect of stakeholders.
2.2.2 Process
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
ownership everyone contributes new ideas and not any single can
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
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
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
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
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.
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
pl
4. The productivity can be improved.
Disadvantages:
H
an a by by by
Overall feature feature feature feature
model list
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>
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
(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
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
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
....Summer-2018,2019,
. .
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.
Fig. 5.2.1.
required to develop such software
product is
as
designation. of by following
anious show
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
TECHNICAL
PUBLICATIONS -
An up thrust
for
PUBLICATIONS An up thrust forkowledgo
knowledge TECHNICAL
Sotware Engineening 5-6
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-
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
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.
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
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
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
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
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
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.
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
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
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
Client
Client
Fiter sotware Software
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
Operations Messages The components in intermediate layer perform utility services and application
Operations
software functions.
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
passenger passenger_address
passenger_hrst name +
-
zip_code
Typically, the data dictionaries house number +
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
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.
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"
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.
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.
Medel &xplerer
ab ruture1 Poe
Static Structure-1
Fig. 5.6.6
thnust
for
An up
, 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.
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
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
Software Design
1. Environment analysis and modelling Review Questions
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
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.
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
.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
Software Desig
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.
Content architecture
Content
architecturee
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
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
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
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
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
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-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
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
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
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
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
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
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
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 -
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
Fig. 7.2.1
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
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
-
************
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
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
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
sQA Plan
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
-
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-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
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,
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 -
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
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 -
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
-
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
object is
characters(string) or some text. It is unique. nothing but
the collection of final decision on status or priority of the change.
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
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
. I n order to ensure that the change has been properly implemented or not two
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
-
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
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
O00
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
O00
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
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
technology OPerationS". business unit stakeholders. production releases from application and
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
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
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.
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
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
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
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
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,
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
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