You are on page 1of 32

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 1.2 1.3 1.4 Preamble Objective Scope Organization of the report

Chapter 2 Literature Survey/Conceptual Framework

Chapter 3 Analysis 3.1 3.2 3.3 3.4 Feasibility Study Requirements Analysis & Specifications Functional Description Information Flow Representation 3.4.1 Data Flow Diagram

3.4.2 3.4.3 3.5

Control Flow Diagram Use Case Diagram

Behavioral Description 3.5.1 State Transition Diagram

Chapter 4 Planning 4.1 4.2 Software Project Estimation scheduling 4.2.1 4.2.2 4.3 4.4 Time line (Gantt) Chart Project Schedule Table

Team Organization Resource Planning 4.4.1 4.4.2 Hardware Requirements Software Requirements

Chapter 5 Design

5.1 5.2 5.3

Architectural Design Data Design Interface Design

Chapter 6 Implementation 6.1 6.2 6.3 Coding Testing Result Set

Chapter 7 Conclusion 7.1 7.2 7.3 Conclusion Limitations 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) ii) iii) iv) v) vi) vii)

Platform Independence. The Write-Once-Run-Anywhere. Provide security. Object oriented language. Introduced the concept of classes.
Automatic garbage collection - memory management handled by JVM 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 its features are following: 1) 2) 3) 4) 5) Java supported Provide GUI interface designing facility Drag and drop facility Event handling 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 User

Queue

Link List

Tree

Graph

Operations

File System

Modi fica tion

Seac hing

So rting

Insert Dele t

Help

Contact Infom ation

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
Sub class Super class Responsibility: 1. Select data structures 2. Perform operations

User
Nil Nil Collaborator: 1. Select ds 2. Operation

2) Select data structure:

Class name
Sub class Super class Responsibility: 1. Select data structures

Select data structure


Nil Nil Collaborator: 1. Select ds 2. User

3)

Operation:

Class name
Sub class

Operation
Nil

Super class Responsibility: 1. Perform operations

Nil Collaborator: 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 ii. Experience iii. Programmer capability iv. Storage v. Programming language experience vi. Development schedule

Low Very low Very low Very low Very low Very low

0.65 1.11 1.17 1.10 1.13

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 1nov ID 1 2 3 4 5 6 8 NAME Requirement Analysis Conceptual Design Logical Design Physical Design Implementation Testing Presentation 11 dec 15sep 30sep 15oct 30 oct

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 Structure

View Contact 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 notdiscovered 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. Kruse, tondo, leung Data Structure And programming in c , Pearson Education. H. Sahni Fundamentals of Computer Algorithms Galgotia.

2.

3.

You might also like