You are on page 1of 28

Acknowledgement

The feeling of acknowledge and expressing it in words are two things apart. It is
weakness, but we honestly admit when we truely wish to express our warm
gratitude and indebtedness towards somebody, we are always at loss of word.

The project could not have completed without support extends to us by Mrs.
Anuradha Purohit, she guided us in preparation of the project and every time
when we reached with difficulties, she welcomed them which helped us to
successfully complete the project. We express our heartfelt gratitude with great
pleasure and a sense of obligation to Mrs. Anuradha Purohit , our project in
charge for her timely support and supervision.

We would also like to thank Ms. Sunita Verma , our Head of department. She was
always there with her support and those wonderful insights whenever eagerly
needed.

We would also like to thank Dr. S.S.Bhadoriya Honorable director of our college
whose continued cooperation and support top the department of Computer
Technology & Application was pivotal force in making this project a success.

And, finally a word of gratitude to our family and friends who were always there
with their support and encouragement.
Abstract
Data structure is an important subject for every student who is studying
engineering. It deals with storing data efficiently to improve performance. It also
deals with efficient use of memory space. But it may not be possible to study and
understand various parts of this very important subject in short time. To understand
a topic clearly, visualization plays a big part. By means of visualization, even a
relatively complex topic can be understood easily.
Our project is a data structure simulation. With the help of this
simulator, the user will be able to visualize different elements of data structure
(like stack, queue, linked list and most importantly different sorting techniques).
In this project we have done simulation of data structure (stack ,queue,linked
list,binary tree and graph and sorting in link list and we can also comput shortest
path in graph) It is being targeted at the students learning data structure first time.
They will be immensely benefited by this simulation.
Table of Contents
Chapter 1
Introduction
1.1 Preamble
1.2 Objective
1.3 Scope
1.4 Organization of the report

Chapter 2
Literature Survey/Conceptual Framework

Chapter 3
Analysis
3.1 Feasibility Study
3.2 Requirements Analysis & Specifications
3.3 Functional Description
3.4 Information Flow Representation
3.4.1 Data Flow Diagram
3.4.2 Control Flow Diagram
3.4.3 Use Case Diagram
3.5 Behavioral Description
3.5.1 State Transition Diagram

Chapter 4
Planning
4.1 Software Project Estimation
4.2 scheduling
4.2.1 Time line (Gantt) Chart
4.2.2 Project Schedule Table
4.3 Team Organization
4.4 Resource Planning
4.4.1 Hardware Requirements
4.4.2 Software Requirements

Chapter 5
Design
5.1 Architectural Design
5.2 Data Design
5.3 Interface Design

Chapter 6
Implementation
6.1 Coding
6.2 Testing
6.3 Result Set

Chapter 7
Conclusion
7.1 Conclusion
7.2 Limitations
7.3 Difficulties Encountered

References
Chapter 1
Introduction
1.1 Preamble

Data Structures are use for storing data , searching and retrieving data , you must
understand that what is data structure and how it works. If we understand the Data
Structure then we can reduce the access time of data and increases the performance
of our system by working of data structure. So we understand it by graphical
representation. Graphical representation describe the working of different available
data structures.

1.2 Objective

The aim of this project is to implement an automated system for processing and
generating results for storing and retrieving data in a graphical way . we can easily
understand the working of data structures.

1.3 Scope

The Software can be used to:

 Understand different operation on data structures

 Understand different structure for storing data

 Understand working of data structure

The benefits of this software are:

 Implemented using latest technology(Java)

 Can upload results direct on web so reduces paper work


 An interactive user interface

 Plate form independent

1.4 Organization of Report

In Introduction we have provided the information what our project is doing along
with objective and scope is also being given.

In literature survey/conceptual framework we have explained the basic concepts


to understand the project and the technology, which we have to accomplish our
project.

Analysis describes what different stuff we have studied during our software
development, which also includes use case and CRC.

Planning includes the time span, which we have divided to complete the project,
which has Gantt chart and project schedule.

Design describes the consulting architecture of our project which we have used to
develop the software. Along with UML tools like class Diagram and sequence
Diagram.

In Implementation we have explained how our software implemented and testing


strategies that are used to test the software and check how the user is using the
software.
In conclusion limitation and difficulties, which we have, came across during the
development of the project along with some future enhancement, which could be
made to the project.

Chapter 2
Literature Survey/Conceptual Framework

2.1 java

1) Java a powerful and popular programming language, it has the following


features:

i) Platform Independence.
ii) The Write-Once-Run-Anywhere.
iii) Provide security.
iv) Object oriented language.
v) Introduced the concept of classes.

vi) Automatic garbage collection - memory management handled by JVM


vii) Object oriented throughout - no coding outside of class definitions,
including main().

After that we arrive at the point of description of our project feature in this
we implement The stack , queue ,tree, list and graph.

We study all the operation which can we perform at those data structures
and implement this as a user friendly way in graphical representation.

2) Net beans is java supported GUI application it’s features are


following:

1) Java supported

2) Provide GUI interface designing facility

3) Drag and drop facility

4) Event handling

5) Templates and Sample Applications

We have used some features of java and netbeans in our project according requirement

Chapter 3
Analysis

Feasibility study
After request clarification, analyst proposes some solutions. After that for each
solution it is checked whether it is practical to implement that solution. this is done
through feasibility study. In this various feasibility aspects are analyzed depending
on the context of the system. The outcome of the feasibility study should be very
clear.

(i) Technical feasibility


In technical feasibility the following issues are taken into consideration.
Whether the required technology is available or not?
The system does not have any rigid hard-ware and software requirements
and there is availability of the people who can perform the software
engineering activities required for the development of the system.
Hence, the system is technically feasible.
(i) Operational feasibility
Operational feasibility is mainly concerned with issues like whether the
system will be used if it is developed and implemented. Thus question
arises whether there will be resistance from users that will affect the
possible application benefits? The answer to these question is: yes, as the
system is developed for convenience of knowing the working of different
data structure.

3.2 Requirement Analysis & Specification

The requirement the complex structure of storing data .so it is need the
understand the structure of data store .and how we can access that easily.
3.3 Information Flow Representation

Information is transformed as it flows through a computer-based


system accepts input in a variety of form. We can create a flow model
for any computer based system, regardless of size and complexity.

3.3.1 Use Case Diagram

This models the system from the end users point of view. They are
created during requirement elicitation. The fig. 3.1 shows the UseCase
Diagram for Simulation of Data Structures.
Data Stucture

Stack Queue Link List Tree Graph


User

Operations

File System

Modification Seaching Sorting

Insert
Delet

Help

Contact Infomation

Fig 3.1 usecase diagram of the system


3.3.2 Use Case Specification:

1) User select data structure and then .


2) perform operation on that data structure.
3) User can view help for performing operation on the data structure.
4) Can contact if problem is occur during operation .

3.3.3 CRC Cards:

1) User-

Class name User


Sub class Nil
Super class Nil
Responsibility: Collaborator:
1. Select data structures 1. Select ds
2. Perform operations 2. Operation

2) Select data structure:


Class name Select data structure
Sub class Nil
Super class Nil
Responsibility: Collaborator:
1. Select data structures 1. Select ds
2. User

3) Operation:

Class name Operation


Sub class Nil
Super class Nil
Responsibility: Collaborator:
1. Perform operations 1. Select ds
2. User

User CRC Card -: precondition (1) user need to know the type of data structure.

Post condition (1) user can not save result of operation of data structure.
Chapter 4
Planning

Planning includes the time span, which we have divided to complete the project,
which has Gantt chart and project schedule.

4.1 Software Project Estimation

An model for software uses empirically derived formulas to predict effort as a


function of LOC or FP. The empirical data that supports most estimation models
are derived from limited sample of projects.

Our software requires 2 main modules. The sizes of major module are:

(i) Interface 0.4KDLOC


(ii) Algorithms 0.4KDLOC
The different cost driver attribute are:

COST DRIVER RATING (MULTIPLYING


FACTOR)
i. Complexity Low 0.65
ii. Experience Very low 1.11
iii. Programmer Very low 1.17
capability Very low -
iv. Storage Very low 1.10
v. Programming Very low 1.13
language
experience
vi. Development
schedule

All the factor had nominal rating.Now the effort adjustment factor

EAF=multiplication of all factors

EAF=0.65*1.11*1.17*1.10*1.13 =1.04

Now our project is categorized into embedded project, because we have little
experience and requirements are stringent.

So value of constant
a=2.8
b=1.2

The initial effort

Ei=a*( KDLOC)b

Ei=2.8*(1.00)1.2

=2.8 programmer month(PM)

Final estimation

E=EAF*Ei

=1.04*2.8
=2.9PM

4.2 SCHEDULING

GANTT CHART
20aug 15sep 30sep 15oct 30 oct 1nov 11 dec

ID NAME

1 Requirement Analysis

2 Conceptual Design

3 Logical Design

4 Physical Design

5 Implementation

6 Testing

8 Presentation

Fig 4.2.1: gantt chart of scheduling

4.3 TEAM ORGANIZATION:

There are almost as many human organizational structures for software


development as there is organization that develop software. The best team
structure depends on the management style, of an organization , the no of
people who will populate the team and the overall problem difficulty.

There 3 generic team organizations:

 Democratic Decentralization(DD)
 Controlled Decentralization(CD)
 Controlled Centralized(CC)

Democratic Decentralized(DD)

In our project we are using Democratic Decentralized team. This


software team has no permanent leader. Rather “task coordinators are
appointed for short durations and then replaced by others who may
coordinate different task.” Decisions on problems and approaches are made
by group consensus. Communication among team member is horizontal. The
DD team organization is best applied to the problems with low modularity
because of higher volume of communication is needed.

Controlled Decentralized(CD)

This software engineering team has defined leader who coordinate


specific task and secondary leaders that have responsibility for the sub-task.
Problem solving remains a group activity, but implementation of solutions is
partitioned among subgroups by team leader. Communication among
subgroups may be vertical or horizontal

Controlled Centralized(CC)

Top level problem solving and internal team coordination are


managed by a team leader. Communication between the team leaders and
the team members is vertical. Thus our software team is Democratic and
Decentralized as there is no leader all of give the innovative idea and the
best is chosen to be implemented. Decision is a group activity, and both
being an integral part of it. Communication among the team is horizontal.
4.4 RESOURCE PLANNING:

A variety of different resources are available to an OO system or


product and many instances , subsystems complete for these resources at the
same time. Global system resources can be external entities or abstraction.

Hardware Requirement

 Processor: Pentium Dual core or newer version


 RAM: 1GB or above
 Disk space: 80GB or above
 Monitor: color

Software Requirement

 Windows operating system


 JAVA
 NET BEANS
Chapter 5
Design

Design describes the consulting architecture of our project which we


have used to develop the software. Along with UML tools like class
Diagram and sequence Diagram.

5.1 Architectural design

The architectural design defines the relationship between major structural

Elements of the software, the “design patterns “ that can be used to achieve
the requirements that have been defined for the system.

5.1.1 Class Diagram

The class diagram is used to refine the use case diagram and define a
detailed design of the system. The class diagram classifies the actors defined
in the use case diagram into a set of interrelated classes. The relationship or
association between the classes can be either an “is-a” or “has-a”
relationship. Each class in the class diagram may be capable of providing
certain functionalities. These functionalities provided by the class are termed
“methods” of the class. The figure shows the class diagram
Class Diagram

Fig 5.1: class diagram


5.1.2 Activity Diagram

Activity diagram provides a view of the behavior of a system by


describing the sequence of action in a process. Activity diagrams are similar
to flowchart because they show the flow between the actions in an activity.
Activity diagram

Select Menu

View Help Select Data View Contact


Structure Information

Stack Queue Linked list Tree Graph

Select Operation

Insert Delete Search Sort

View Simulation

Fig 5.2: activity diagam


Chapter 6
Implementation

In Implementation we have explained how our software


implemented and testing strategies that are used to test the software and
check how the user is using the software.

6.1 Coding

The whole code is compiled and the class files are generated ,Due
to the features of java.

public class STACK extends javax.swing.JFrame {

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {

SELECT_DS DS=new SELECT_DS();

DS.setVisible(true);

this.setVisible(false);

Comments

Proper comments are placed within the code everywhere related to


the functioning of java various modules within each of the java files . This
makes the maintenance of the code easier as comments make the code more
reliable . another user other than the developer can easily understand the
code with the help of comment In case of any modifications.

/** we can give comment using it*/


Naming

Each entity, variable , function other modules the code are


named such as directly reflect their functioning . This makes the code easy
to understand and more manageable.

public STACK()

SELECT_DS DS=new SELECT_DS();

Here we create object of select_ds class for accessing method of this


class

Declaration

All the declaration in java files are written with in the deceleration tags
of the Java.

int top=-1;

int Max=7;

Integer stack[]=new Integer[7];

Expression and Statement

As the technology used is java , all the expression and statement


according to the java syntax within the appropriate tags.
Memory Management

Science application handling very large arrays so far efficient


execution with minimum memory ,all variables were taken carefully.

Error Handling and Exception

All the errors and exceptions are handled using block .all the code
that can generate any type of errors /exceptions is placed within the try catch
block .

6.2 Portability

The product is build using java /technology and therefore can be run
on any platform as java provides platforms independence .java makes the
software portable to any platform including windows Linux.

6.3 Testing
Testing is the set of activities that are conducted to find error in the
development software.

Following are the objective of testing:

1) Testing is the process of executing program with intent of finding an


error. A good test case one that has a high portability of finding a yet –not-
discovered error.
2) A successful test is one that uncovers a yet-not-error. Software testability is
simply how easily a system can be tested.
For testing your system we have used the four step strategies proposed for
real time systems:

1. Verification and validation


2. Unit testing\
3. Integration testing

Chapter 7
Conclusion

In conclusion limitation and difficulties, which we have, came across


during the development of the project along with some future enhancement,
which could be made to the project.

7.1 Technical Achievements

Easy to use graphics user interface:- this objective has been met. The
java swing s allow for better interface design. This GUI designed to look
and feel like a standard windows application.
Scales well to larger strings :- our software efficiently handle the very large
strings

7.2 Limitation :

The software is meeting all the necessary requirements and as such


there is no limitation from its part according to user requirements. By
technically there do seem some limitation to the software solution, which is
in case the following .

 It will support only single user


 Only one operation can perform at a time
 Select only single data structure at a time
 We can not store data

7.3 Difficulties Encountered

New platform: as this project is based on GUI. So we need to


learn “netbean” technology. We had to devote some time to learn swings
component

References:-
1. Langston, Augestine,Tannenbaum, “Data Structure using c and c++”
,Pearson Education.

2. Kruse, tondo, leung “Data Structure And programming in c” , Pearson


Education.

3. H. Sahni “ Fundamentals of Computer Algorithms” Galgotia.

You might also like