PROJECT REPORT ON
IMPLEMENTATION OF MULTIPLE
SPANNING TREE PROTOCOL IN
TELECOMMUNICATION NETWORK
Project report submitted in partial fulfillment for the requirement of
award of B. Tech Degree in
Information and Communication Technology
by
G. APARNA (011014013)
R. BRINDA (011014025)
V. PAVITHRA (011014087)
Under the Guidance of
Mrs. M. LAVANYA SARAVANAN
Assistant Professor-1, Information Technology
SCHOOL OF COMPUTING
SHANMUGHA
ARTS, SCIENCE, TECHNOLOGY & RESEARCH ACADEMY
(SASTRA UNIVERSITY)
(A University Established under section 3 of the UGC Act, 1956)
TIRUMALAISAMUDRAM
THANJAVUR – 613401
May 2010
i
SHANMUGHA
ARTS, SCIENCE, TECHNOLOGY & RESEARCH ACADEMY
SASTRA UNIVERSITY
(A University Established under section 3 of the UGC Act, 1956)
TIRUMALAISAMUDRAM
THANJAVUR – 613401
SCHOOL OF COMPUTING
BONAFIDE CERTIFICATE
This is to certify that the Project entitled
IMPLEMENTATION OF MULTIPLE SPANNING TREE PROTOCOL IN
TELECOMMUNICATION NETWORK
is a work done by
G. APARNA (011014013)
R. BRINDA (011014025)
V. PAVITHRA (011014087)
BACHELOR OF TECHNOLOGY
IN
INFORMATION AND COMMUNICATION TECHNOLOGY
OF SASTRA UNIVERSITY, Thanjavur during the year 2009-2010
Internal Guide Dean, School of Computing
Submitted for the University examination held on:
Internal Examiner External Examiner
ii
ACKNOWLEDGEMENT
It is a great pleasure for me to present this project. I would like to thank each
and everyone who had a role to play in giving a shape to my humble effort and making
it eventually a deserved success.
I would like to thank our Vice Chancellor, Professor (Col.) R. Sethuraman, for
providing me an opportunity and the necessary infrastructure for carrying out this
project as a part of my curriculum.
I extend my heartfelt thanks to the Registrar, Prof. S. N. Srivatsava, and The
Dean, School of Computing, Prof. P. Kalyanaraman, for the motivation and support
offered by them in materializing this project.
I express my profound gratitude to our Associate Dean of Research, Dr.
V.Vaithiyanathan, who lent his helping hand and encouragement with his valuable
and experienced guidance for processing my project and my sincere thanks to the
Head, Department of Information and Communication Technology, Dr. K.S.
Ravichandran for his valuable suggestions throughout the project.
I thank my internal guide, Assistant Professor-1, Mrs. M. Lavanya Saravanan
for her vision and sustained guidance to make this project a successful one.
I owe my deep gratitude to BHEL, Trichy for providing me with excellent
facilities and support for doing the project. My sincere and grateful thanks to my
external guide Mr S. Thyagarajan, Senior Manager, Informatics Centre, BHEL,
Trichy for his very able guidance, support and encouragement throughout the project. I
also like to thank Mrs. V. Priscilla, Senior Engineer, Informatics Centre, BHEL,
Trichy for her useful guidance and suggestions in carrying out the work.
I gratefully acknowledge the assistance and contributions of a large number of
individuals, encouragement from my family and friends in successfully completing this
project.
ii
SYNOPSIS
A topology-aware network is a dynamic network in which the nodes can detect
whether local topology changes occur. Many modern networks are topology-aware.
We present a distributed algorithm for computing and maintaining an arbitrary
spanning tree in such a topology-aware network.
A spanning tree of a connected graph is a connected acyclic subgraph that
contains all the nodes of the graph. However, most of these algorithms consider the
computation of the more specific minimum spanning trees. A minimum spanning tree
of a connected weighted graph is a minimum-weight spanning tree of the graph. In
many applications, it is sufficient to consider the weaker arbitrary spanning trees.
The limitations with existing systems are telecommunication networks suffer
from service disruption due to heavy traffic. Algorithms used to implement spanning
tree are more centralized in nature. We present a distributed algorithm for computing
and maintaining an arbitrary spanning tree in a topology-aware network in which each
node has a unique identity.
Construction of fragments of spanning tree every few seconds so as to avoid
loops. Detection of periodical changes in the topology and to maintain a spanning tree
for the same.
ii
TABLE OF CONTENTS
CHAPTER TITLE PAGE NO.
1.0 INTRODUCTION
1.1 About the Company
1.2 Background of the project
2.0 SOFTWARE PROJECT PLAN
2.1 Existing system
2.2 Proposed system
3.0 SOFTWARE REQUIREMENTS SPECIFICATION
3.1 Non-Functional requirements
3.1.1 Performance requirements
3.1.2 Interface requirements
3.2.1 Operational requirements
3.2.2 Resources requirements
3.2.3 Security requirements
3.2.4 Quality and reliability
requirements
4.0 SYSTEM ANALYSIS
4.1 System flow diagram
5.0 SYSTEM DESIGN
5.1 Front End Design
ii
5.2 Interface Design
5.3 Module Definition
5.4 Module Explanation
6.0 CODING
6.1 Algorithm
6.2 Sample codes
7 .0 TESTING
7.1 Unit testing
7.2 Integration testing
7.3 Validation testing
8.0 IMPLEMENTATION
8.1 Problems faced
8.2 Lessons learnt
9.0 FUTURE ENHANCEMENTS
10.0 REFERENCES AND BIBLIOGRAPHY
CHAPTER 1.0
ii
INTRODUCTION
1.1 Introduction to BHEL
Bharat Heavy Electricals Limited (BHEL) BHEL is the largest engineering and
manufacturing enterprise in India in the energy-related/infrastructure sector, today.
BHEL was established more than 40 years ago, ushering in the indigenous Heavy
Electrical Equipment industry in India - a dream that has been more than realized with
a well-recognized track record of performance.
BHEL's Tiruchirapalli Complex is one of the leading boiler manufacturers in the world
and India's largest engineering and manufacturing enterprises providing total boiler
island solutions for utility, industrial, captive power and heat recovery applications . It
also manufactures Valves for Power and Industrial applications, Soot Blowers and
Seamless Steel Tubes . BHEL's manufacturing facilities are comparable with the best
in the world with modern design, engineering, material preparation, fabrication,
welding, heat treatment, handling, testing and shipping facilities.
BHEL TIRUCHIRAPPALLI COMPLEX Turnover crosses Rs.10,000 crore for the
first time.
“BHEL is committed to ensure Integrity, Confidentiality, Availability and Security of
its Information at all times for serving the needs of the Organisation in line with its
Vision, Mission and Values while meeting all regulatory requirements.”
Informatics Centre is to enable / empower the company become a World-class
Engineering Enterprise by providing the required information transparently to all
stake-holders with authentication and control, anywhere, anytime, through suitable
deployment of Information technology in a Cost effective manner.
ii
Looks after the Information Technology needs of the unit. Houses major servers and
system groups.
Computer Operation and Software Development
As the business and engineering applications provide information for the daily
operations of BHEL, Tiruchirappalli, computer services are becoming mission critical.
Computer services support all functions of our operations, from accepting a order from
a customer to the final cash collection.
The state of art computers like IBM’s P570 Enterprise servers with Enterprise Disk
Storage are running round-the-clock and the computing resources are optimally used.
The ERP servers administration, Unix servers administration and Oracle Database
administration are done with efficient backup system for easy restoration of data.
In house software developments are carried out to meet our company business needs
using latest software technology like C++, Visual Basic, HTML, and Java etc.
WEB servers are installed and maintained in Informatics Centre to Publish Internet and
Intranet web applications of various departments.
To integrate 40 Intranet sites presently running
Better web administration compared to open source
Reduce Development cycle time
More user friendly tools with less coding
To better integrate with Customers, Vendors and Corporate.
Communication and Networking
ii
MPLS ( Multi Protocol Label Switching ) VPN
Multiple protocol supported
Connects all BHEL units and Sites
Single gate way for Corporate–wide Internet access possible
Supports Quality of Service
IP Telephony supported within a VPN
10 Gbps Network
Buildings 78, 2&4, 24,79,53 are connected with 10 Gbps
Other building connected with 1 Gbps bandwidth
Core Switches & 7 Distribution Switches deployed
Edge Switches connect PCs and peripherals
SAP Servers operates at 1Gbps.
Informatics Centre has provided data connectivity throughout the campus, using a
155Mbps ATM fiber-optic backbone. Data connectivity for PC’s and terminals spread
across various buildings within the campus, is done using various hardware like
routers, switches, hubs, HDSL bridges, terminal servers, multiplexers and modems.
Internet connectivity has been established using a 4 Mbps-leased line. Browsing
facility has been given to around 80 users in various departments.
Email communication has been established using a Mail server, which caters to around
900 users, In addition, a local email facility has been extended to all the executives
within the campus.
ii
The fiber optic backbone will also be used in the proposed ‘Distributed Telephone
Exchange System. The data network will also cater to the ‘Computerised Attendance
System.
BHEL has
Installed equipment for over 90,000 MW of power generation -- for Utilities, Captive
and Industrial users.
Supplied over 2,25,000 MVA transformer capacity and other equipment operating in
Transmission & Distribution network up to 400 kV (AC & DC).
Supplied over 25,000 Motors with Drive Control System to Power projects,
Petrochemicals, Refineries, Steel, Aluminum, Fertilizer, Cement plants, etc.
Supplied Traction electrics and AC/DC locos to power over 12,000 kms Railway
network.
Supplied over one million Valves to Power Plants and other Industries.
1.2 About the Project
The main aim of the proposed project is to implement a spanning tree in topology
aware network. Initially we create a connected graph following which the spanning
ii
tree is generated for it. To compute the spanning tree, every few seconds each bridge
broadcasts its unique identity.
One bridge is elected as the root of the tree, namely the bridge with the minimal
identity. Then the tree is constructed by including for each bridge a shortest path to the
root.
The nodes in a topology-aware network can detect whether locally topology
changes occur, i.e. additions or removals of connected edges. Each node eventually
detects such topology changes between the node and any other node, but independently
of that other node, and before the node uses the edge (if any) between
them for communication.
Our algorithm mainly consists of two parts: a basic algorithm and a removal
algorithm. The basic algorithm is a (relatively simple) local algorithm that maintains
a spanning forest as long as the topology changes are restricted to the addition
of edges. Upon removal of an edge, the removal algorithm intervenes such
that afterwards the basic algorithm can again behave correctly.
CHAPTER 2.0
SOFTWARE PROJECT PLAN
2.1 Existing System
ii
Telecommunication networks suffer from service disruption due to heavy
traffic.
Link load is high.
Algorithms used to implement spanning tree are more centralized in nature. Re-
routing is requires if the network fails.
Bridge loops result in flooding of the networks
2.2 Proposed System
Construction of fragments of spanning tree every few seconds so as to avoid
loops.
Detection of periodical changes in the topology and to maintain a spanning tree
for the same.
Arbitrary spanning trees are maintained to as to employ them in many inter-
connecting networks.
The nature of algorithm used are distributed in nature.
Amount of memory per bridge is independent of LAN size.
Any topology change in the network is dynamically detected.
CHAPTER 3.0
SOFTWARE REQUIREMENTS SPECIFICATION
ii
3.1 Nonfunctional Requirements
3.2.1 Performance Requirements:
We need an adjacency matrix to find out the immediate nodes.
We need a spanning tree algorithm to compute the spanning tree for the
connected graph.
We need a bandwidth between 100Mbps and 1Gbps.
3.2.2 Interface Requirements:
The graphical user interface (GUI) (sometimes pronounced gooey) is a
type of user interface item that allows people to interact with programs in more ways
than typing such as computers; hand-held devices such as MP3 Players, Portable Media
Players or Gaming devices; household appliances and office equipment with images
rather than text commands. It helps us to create spanning tree and maintain it.
3.2.3 Operational Requirements
The requirements specification is a technical specification of requirements
for the software products. It is the first step in the requirements analysis process it lists
the requirements of a particular software system including functional, performance and
security requirements. The requirements also provide usage scenarios from a user, an
operational and an administrative perspective. The purpose of software requirements
specification is to provide a detailed overview of the software project, its parameters
and goals.
3.2.4 Resources Requirements
Software Requirements:
ii
. Operating System : Windows 2000/XP
Documentation Tool : Ms word 20007
Hardware Requirements:
Hard Disk: 40GB and above.
RAM: 512MB and above.
Processor: Pentium4 and above.
3.2.5 Security Requirements
Do not block the some available ports through the windows
firewall to execute the server and also ensure that security of the application is
not restricted to one particular user.
3.2.6 Quality and Reliability Requirements
Functionality: are the required functions available, including interoperability
and security
Reliability: maturity, fault tolerance and recoverability
Usability: how easy it is to understand, learn, and operate the software system
Efficiency: performance and resource behavior.
Maintainability: Maintaining the software.
Portability: can the software easily be transferred to another environment,
including install ability
CHAPTER 4.0
SYSTEM ANALYSIS
ii
4.1 System flow Diagram
CREATION OF CONNECTED
GRAPH
CREATING SPANNING TREE FOR
THE ABOVE GRAPH
IMPLEMENTING BASIC IMPLEMENTING REMOVAL
ALGORITHM ALGORITHM
REMOVAL OF EDGES
ADDITION OF EDGES TO
FROM THE CONNECTED
THE CONNECTED GRAPH
GRAPH
TOPOLOGY CHANGE
CHAPTER 5.0
ii
SYSTEM DESIGN
5.1 Front End Design:
Java (jdk1.6)
It is a Platform Independent. Java is an object-oriented programming language
developed initially by James Gosling and colleagues at Sun Microsystems. The
language, initially called Oak (named after the oak trees outside Gosling's office),
was intended to replace C++, although the feature set better resembles that of
Objective C. UNIX users will appreciate the theory behind such a stream, as it is
actually standard output. For those who are instead used to the Wintel platform, it
will write the string passed to it to the user’s program. One characteristic of Java
is portability, which means that computer programs written in the Java language
must run similarly on any supported hardware/operating-system platform. This is
achieved by compiling the Java language code to an intermediate representation
Called java byte code, instead of directly to platform-specific machine code.
Java byte code instructions are analogous to machine code, but are intended to be
interpreted by a virtual machine (VM) written specifically for the host hardware.
End users commonly use a Java Runtime Environment (JRE) installed on their
own machine for standalone Java applications, or in a Web browser for Java
applets Standardized libraries provide a generic way to access host-specific
features such as graphics, threading and networking. A major benefit of using
byte code is porting. However, the overhead of interpretation means that
interpreted programs almost always run more slowly than programs compiled to
native executables would, and Java suffered a reputation for poor performance.
This gap has been narrowed by a number of optimization techniques introduced
in the more recent JVM implementations. The important feature JAVA
ii
EXCEPTION is thrown whenever an exception occurs. The JAVA GUI(graphic
user interface) is also implemented.
5.2Interface Design
Graphic user interface
The graphical user interface (GUI) (sometimes pronounced gooey) is a type of user
interface item that allows people to interact with programs in more ways than typing
such as computers; hand-held devices such as MP3 Players, Portable Media Players or
Gaming devices; household appliances and office equipment with images rather than
text commands. A GUI offers graphical icons, and visual indicators, as opposed to text-
based interfaces, typed command labels or text navigation to fully represent the
information and actions available to a user. The actions are usually performed through
direct manipulation of the graphical elements.
A GUI uses a combination of technologies and devices to provide a platform the user
can interact with, for the tasks of gathering and producing information.
A series of elements conforming a visual language have evolved to represent
information stored in computers. This makes it easier for people with few computer
skills to work with and use computer software.
ii
5.3 Module Definition
The modules present in this project are:
Creation of a connected graph.
Generation of spanning tree for the connected graph
Basic algorithm
Removal algorithm
5.3Modules Explanation
Creation of a connected graph
A connected graph is created with minimum of five nodes. The
weight values should be in the range of 1 -10 according to the bandwidth
requirements. The bandwidth was kept in the range of 100Mbps -1Gbps.The edges
are the connections between the nodes. Connected graph is the first step in the
creation of spanning tree.
Generation of spanning tree for the connected graph
Given a connected, undirected graph, a spanning tree of that
graph is a sub graph which is a tree and connects all the vertices together. A single
graph can have many different spanning trees. We can also assign a weight to each
edge, which is a number representing how unfavorable it is, and use this to assign a
weight to a spanning tree by computing the sum of the weights of the edges in that
spanning tree. A minimum spanning tree (MST) or minimum weight spanning tree is
then a spanning tree with weight less than or equal to the weight of every other
spanning tree.
ii
Basic algorithm
Connected graph is given as input to the basic algorithm. Fragments of
spanning tree is created for the given input. Topology of the resulting spanning
tree is noted. An edge is added to the existing graph and spanning tree is build
again. The resulting topology change is observed.
Removal algorithm
Connected graph is given as input to the basic algorithm. Fragments of
spanning tree is created for the given input. Topology of the resulting spanning
tree is noted. An edge is removed from the existing graph and spanning tree is
build again. The resulting topology change is observed.
CHAPTER 6.0
ii
CODING
6.1Algorithm
• Priority queue is used to store the weights.
• Key: weight
• Element: edge
• At the end of the algorithm
• We are left with Minimum Spanning Tree
Pseudocode
• Algorithm MST(G)
• for each vertex v in G do
• Define an elementary W(v)←{v}
• Initialized a priority queue Q to contain all edges in G, using the weight as
keys.
• Define a tree T ←φ
ii
• while T has fewer than n-1 edges do
• (u,v)←Q.removeMin()
• Let GRAPH(v) be the Graph containing v, and let GRAPH(u) be the Graph
containing u.
• if GRAPH(v) ≠ GRAPH(u) then
• Add edge (v, u) to T
• return tree T
6.2 Sample Codes
Once the design aspect of the system is finalizes the system enters into the coding and
testing phase. The coding phase brings the actual system into action by converting the
design of the system into the code in a given programming language. Therefore, a good
coding style has to be taken whenever changes are required it easily screwed into the
system. Coding standards are guidelines to programming that focuses on the physical
structure and appearance of the program. They make the code easier to read,
understand and maintain. This phase of the system actually implements the blueprint
developed during the design phase. The coding specification should be in such a way
that any programmer must be able to understand the code and can bring about changes
whenever felt necessary.
ii
Some of the standard needed to achieve the above-mentioned objectives are as follows:
Program should be simple, clear and easy to understand.
Naming conventions
Value conventions
Script and comment procedure
Message box formatException and error handling
Node and Edge creation
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.net.URL;
class Node {
int x;
int y;
int delta_plus; /* edge starts from this node */
delta_minus; /* edge terminates at this node */
int dist; /* distance from the start node */
ii
int prev; /* previous node of the shortest path */
int succ,pred; /* node in Sbar with finite dist.* /
int w;
int h;
int pw;
int dx;
int dy;
String name;
class Edge {
int rndd_plus; /* initial vertex of this edge */
int rndd_minus; /* terminal vertex of this edge */
int delta_plus; /* edge starts from rndd_plus */
int delta_minus; /* edge terminates at rndd_minus *
int len; /* length */
String name;
public class SpanningTree extends Applet implements MouseListener {
int n,m;
int u,snode; /* start node */
int pre_s_first, pre_s_last;
Boolean isdigraph;
Int iteration, step;
Node v[] = new Node[100];
Edge e[] = new Edge[200];
int findNode(String name)
ii
{
for (int i=0; i<n; i++)
if (v[i].name.equals(name))
return i;
return -1;
void input_graph(InputStream is) throws IOException
int x,y,l;
String s
Reader r = new BufferedReader(new InputStreamReader(is));
StreamTokenizer st = new StreamTokenizer(r);
st.commentChar('#');
st.nextToken();
n = (int)st.nval;
st.nextToken();
m = (int)st.nval;
st.nextToken();
s = st.sval;
isdigraph = "digraph".equals(s);
ii
for (int i = 0; i<n; i++)
Node node = new Node();
st.nextToken();
node.name = st.sval;
st.nextToken();
node.x = (int)st.nval;
st.nextToken();
node.y = (int)st.nval;
v[i] = node;
Spanning tree generation
void input_graph(InputStream is) throws IOException
int x,y,l;
String s;
Reader r = new BufferedReader(new InputStreamReader(is));
StreamTokenizer st = new StreamTokenizer(r);
st.commentChar('#');
st.nextToken();
n = (int)st.nval;
ii
st.nextToken();
m = (int)st.nval;
st.nextToken();
s = st.sval;
for (int i = 0; i<n; i++)
Node node = new Node();
st.nextToken();
node.name = st.sval;
st.nextToken();
node.x = (int)st.nval;
st.nextToken();
node.y = (int)st.nval;
v[i] = node;
for (int i = 0; i<m; i++)
Edge edge = new Edge();
st.nextToken();
edge.name = st.sval;
switch (st.nextToken())
ii
{
case StreamTokenizer.TT_NUMBER:
edge.rndd_plus = (int)st.nval;
break;
case StreamTokenizer.TT_WORD:
edge.rndd_plus = findNode(st.sval);
break;
default:
break;
switch (st.nextToken())
case StreamTokenizer.TT_NUMBER:
edge.rndd_minus = (int)st.nval;
break;
case StreamTokenizer.TT_WORD:
edge.rndd_minus = findNode(st.sval);
break;
default:
break;
ii
st.nextToken();
edge.len = (int)st.nval;
e[i] = edge;
for (int i=0; i<m; i++)
e[i].select = -1;
den = 0;
num = 128;
for (int i=0; i<m; i++)
if (e[i].len>den)
den = e[i].len;
step1();
Krsub p = (Krsub)getAppletContext().getApplet("krsub");
if (p!=null)
p.set(1,n,m,num,den,v,e,idx);
step = 2;
ii
Addition of node (To the connected graph)
void append_pre_s(int i)
v[i].succ = v[i].pred = -1;
if (pre_s_first<0)
pre_s_first = i;
else
v[pre_s_last].succ = i;
v[i].pred = pre_s_last;
pre_s_last = i;
Deletion of node (From the connected graph)
void remove_pre_s(int i)
Int succ = v[i].succ;
Int pred = v[i].pred;
if (succ>=0)
v[succ].pred = pred;
ii
else
pre_s_last = pred;
if (pred>=0)
v[pred].succ = succ;
else
pre_s_first = succ;
ii
CHAPTER 7.0
7.1 TESTING
Testing is a process of executing a program with the intent of finding an error. A
good test case is one that has a high probability of finding an as-yet –undiscovered
error. A successful test is one that uncovers an as-yet- undiscovered error. System
testing is the stage of implementation, which is aimed at ensuring that the system
works accurately and efficiently as expected before live operation commences. It
verifies that the whole set of programs hang together. System testing requires a test
consists of several key activities and steps for run program, string, system and is
important in adopting a successful new system. This is the last chance to detect and
correct errors before the system is installed for user acceptance testing.
The software testing process commences once the program is created and the
documentation and related data structures are designed. Software testing is essential for
correcting errors. Otherwise the program or the project is not said to be complete.
Software testing is the critical element of software quality assurance and represents the
ultimate the review of specification design and coding. Testing is the process of
executing the program with the intent of finding the error. A good test case design is
one that as a probability of finding an yet undiscovered error. A successful test is one
that uncovers an yet undiscovered error. Any engineering product can be tested in one
of the two ways:
WHITE BOX TESTING
ii
This testing is also called as Glass box testing. In this testing, by knowing
the specific functions that a product has been design to perform test can be conducted
that demonstrate each function is fully operational at the same time searching for errors
in each function. It is a test case design method that uses the control structure of the
procedural design to derive test cases. Basis path testing is a white box testing.
Basis path testing:
Flow graph notation
Cyclometric complexity
Deriving test cases
Graph matrices Control
BLACK BOX TESTING
In this testing by knowing the internal operation of a product, test
can be conducted to ensure that “all gears mesh”, that is the internal operation performs
according to specification and all internal components have been adequately exercised.
It fundamentally focuses on the functional requirements of the software.
The steps involved in black box test case design are:
Graph based testing methods
Equivalence partitioning
Boundary value analysis
Comparison testing
ii
7.1.1 Unit testing
Unit testing is conducted to verify the functional performance of each modular
component of the software. Unit testing focuses on the smallest unit of the software
design (i.e.), the module. The white-box testing techniques were heavily employed for
unit testing. Testing is performed to identify errors. It is used for quality assurance.
Testing is an integral part of the entire development and maintenance process. The goal
of the testing during phase is to verify that the specification has been accurately and
completely incorporated into the design, as well as to ensure the correctness of the
design itself. For example the design must not have any logic faults in the design is
detected before coding commences, otherwise the cost of fixing the faults will be
considerably higher as reflected. Detection of design faults can be achieved by means
of inspection as well as walkthrough.
Testing is one of the important steps in the software development phase. Testing
checks for the errors, as a whole of the project testing involves the following test cases:
Static analysis is used to investigate the structural properties of the
Source code.
Dynamic testing is used to investigate the behavior of the source code by
executing the program on the test data.
ii
7.1.2 Integration Testing
Integration testing is a systematic technique for construction the program structure
while at the same time conducting tests to uncover errors associated with interfacing.
i.e., integration testing is the complete testing of the set of modules which makes up the
product. The objective is to take untested modules and build a program structure tester
should identify critical modules. Critical modules should be tested as early as possible.
One approach is to wait until all the units have passed testing, and then combine them
and then tested. This approach is evolved from unstructured testing of small programs.
Another strategy is to construct the product in increments of tested units. A small set of
modules are integrated together and tested, to which another module is added and
tested in combination. And so on. The advantages of this approach are that, interface
dispenses can be easily found and corrected.
The major error that was faced during the project is linking error. When all
the modules are combined the link is not set properly with all support files. Then we
checked out for interconnection and the links. Errors are localized to the new module
and its intercommunications. The product development can be staged, and modules
integrated in as they complete unit testing. Testing is completed when the last module
is integrated and tested. Integration testing is a systematic technique for constructing
the program structure while at the same time conducting tests to uncover errors
associated with. Individual modules, which are highly prone to interface errors, should
not be assumed to work instantly when we put them together. The problem of course, is
“putting them together”- interfacing. There may be the chances of data lost across on
ii
another’s sub functions, when combined may not produce the desired major function;
individually acceptable impression may be magnified to unacceptable levels; global
data structures can present problems.
The logical and syntax errors have been pointed out by program testing. A syntax error
is an error in a program statement that in violates one or more rules of the language in
which it is written. An improperly defined field dimension or omitted keywords are
common syntax error. These errors are shown through error messages generated by the
computer. A logic error on the other hand deals with the incorrect data fields, out-off-
range items and invalid combinations. Since the compiler s will not deduct logical
error, the programmer must examine the output. Condition testing exercises the logical
conditions contained in a module. The possible types of elements in a condition include
a Boolean operator, Boolean variable, a pair of Boolean parentheses A relational
operator or on arithmetic expression. Condition testing method focuses on testing each
condition in the program the purpose of condition test is to deduct not only errors in
the condition of a program but also other a errors in the program.
A software testing strategy provides a road map for the software developer. Testing is a
set activity that can be planned in advance and conducted systematically. For this
reason a template for software testing a set of steps into which we can place specific
ii
test case design methods should be strategy should have the following characteristics:
Testing begins at the module level and works “outward” toward the
integration of the entire computer based system.
Different testing techniques are appropriate at different points in time.
The developer of the software and an independent test group conducts
testing.
Testing and Debugging are different activities but debugging must be accommodated
in any testing strategy.
7.1.3 Validation testing
At the culmination of integration testing, software is completely assembled as a
package. Interfacing errors have been uncovered and corrected and a final series of
software test-validation testing begins. Validation testing can be defined in many ways,
but a simple definition is that validation succeeds when the software functions in
manner that is reasonably expected by the customer. Software validation is achieved
through a series of black box tests that demonstrate conformity with requirement. After
ii
validation test has been conducted, one of two conditions exists.
The function or performance characteristics confirm to specifications
and are accepted.
A validation from specification is uncovered and a deficiency created.
Deviation or errors discovered at this step in this project is corrected prior to
completion of the project with the help of the user by negotiating to establish a method
for resolving deficiencies. Thus the proposed system under consideration has been
tested by using validation testing and found to be working satisfactorily. Though there
were deficiencies in the system they were not catastrophic reasons.
User acceptance of the system is key factor for the success of any system. The system
under consideration is tested for user acceptance by constantly keeping in touch with
prospective system and user at the time of developing and making changes whenever
required. This is done in regarding to the following points.
Input screen design.
Output screen design.
Security testing attempts to verify the protection mechanisms built in to a system well,
in fact, protect it from improper penetration. The system security must be tested for
invulnerability from frontal attack must also be tested for invulnerability from rear
attack. During security, the tester places the role of individual who desires to penetrate
system .It determines the amount of execution time spent in various parts of the unit,
program throughput, and response time and device utilization by the program unit.
ii
Screen shots
Creation of connected graph
ii
Spanning tree for the connected graph
ii
Basic algorithm
Addition of a node
ii
Spanning tree for basic algorithm
ii
Removal algorithm
Deletion of a node
ii
Spanning tree for removal algorithm
ii
CHAPTER 8.0
IMPLEMENTATION
8.1 Problems Faced:
Constraints in Analysis
Constraints as Informal Text
Constraints as Operational Restrictions
Constraints Integrated in Existing Model Concepts
Constraints as a Separate Concept
Constraints Implied by the Model Structure
Constraints in Design
Determination of the Involved Classes
Determination of the Involved Objects
Determination of the Involved Actions
Determination of the Require Clauses
Global actions and Constraint Realization
ii
Constraints in Implementation
A hierarchical structuring of relations may result in more classes
and a more complicated structure to implement. Therefore it is advisable to transform
the hierarchical relation structure to a simpler structure such as a classical flat one. It
is rather straightforward to transform the developed hierarchical model into a
bipartite, flat model, consisting of classes on the one hand and flat relations on the
other. Flat relations are preferred at the design level for reasons of simplicity and
implementation ease. There is no identity or functionality associated with a flat
relation. A flat relation corresponds with the relation concept of entity-relationship
modeling and many object oriented methods.
8.2 Lessons Learnt:
Scalability of the number of nodes:
The larger the number of nodes, larger is the time required for designing the
nodes .
ii
CHAPTER 9.0
FUTURE ENHANCEMENTS
A number of assumptions are made about the topology changes in the network.
For example, a recently added edge may not be used for communication by
a node until the node has handled all topology changes. A topic for further work
is to investigate whether these assumptions can be weakened. We expect that the
algorithm can at least easily be extended for dealing with self-loops and multiple
edges.
ii
CHAPTER 10.0
REFERENCES AND BIBLIOGRAPHY
1. Langevelde, I.v., Romijn, J., Goga, N.: Founding FireWire Bridges through Promela
Prototyping. In: Proceedings Formal Methods for Parallel Programming: Theory and
Applications, IEEE Computer Society Press (2003)
2. Mooij, A.J.,Wesselink, W.: A formal analysis of a dynamic distributed spanning tree
algorithm. Computer science report, Technische Universiteit Eindhoven, Eindhoven
(2003) To appear.
3. Bertsekas, D.P., Gallager, R.G.: Data Networks. Prentice-Hall International,
Englewood Cliffs (1992)
4. Gallager, R.G., Humblet, P.A., Spira, P.M.: A distributed algorithm for minimum
weight spanning trees. ACM Transactions on Programming Languages and Systems
(TOPLAS) 5 (1983) 66–77
ii
5. Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to algorithms. MIT Press,
USA (1990)
6. Cheng, C., Cimet, I.A., Kumar, S.P.R.: A protocol to maintain a minimum spanning
tree in a dynamic topology. In: Symposium proceedings on Communications
architectures and protocols, ACM Press (1988) 330–337.
7. Afek, Y., Kutten, S., Yung, M.: The local detection paradigm and its applications
to self-stabilization. Theoretical Computer Science 186 (1997) 199–229
8. Perlman, R.: An algorithm for distributed computation of a spanning tree in an
extended LAN. ACM SIGCOMM Computer Communication Review 15 (1985) 44–
53
9. Perlman, R.: Interconnections: bridges, routers, switches, and internetworking
protocols.Addison-Wesley, Amsterdam (2000)
10. Arora, A., Gouda, M.G.: Distributed reset. IEEE Transactions on Computers 43
(1994) 1026–1039
11. Hart, J.: Extending the IEEE 802.1 MAC bridge standard to remote bridge. IEEE
Network Magazine (1988)
12. Afek, Y., Awerbuch, B., Gafni, E.: Applying static network protocols to dynamic
networks. In: 28th Annual Symposium on Foundations of Computer Science, IEEE
(1987) 358–370
13. Feijen, W.H.J., Gasteren, A.J.M.v.: On a method of multiprogramming. Springer-
Verlag (1999)
ii
ii