You are on page 1of 49

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

You might also like