Major Project Report

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 19

CHAPTER 1

BACKGROUND
1.1 Abstract
AShare is an application to transfer files that is; Ashare is a File sharing Software. File sharing
lets users connect easily with other people to get access to digital files that they might otherwise
have trouble finding, such as a rare video clip or a concert recording. Old friends and scattered
family members can connect to share pictures and videos online. File sharing can also be a good
way to meet new people who share the same interests. Lasting friend-ships can develop over filesharing networks, though it is always best to be careful about sharing personal information with
strangers online.
Users can use AShare to transfer files including photos, videos, music, contacts, apps and any
other files. It is a free application that allows Windows devices to transfer files directly by ad-hoc
Wi-Fi connections or by using Wired Crossover Cable connections. It is currently available in
single language i.e. English
It is non-centralized so it cannot be easily shut down and it supports segmented file-transfer (also
known as multisource file-transfer or swarming file-transfer). AShare uses encryption to hide the
identity of who is transferring or what they are transferring. All files are transferred encrypted so
they must be decrypted upon download completion. In the meantime they are stored in encrypted
form in a "Cache" folder. This folder is also used to allow recently downloaded files to be shared
among the network based on priorities.
Once the applications or documents to be shared and whom they are to be shared with have been
determined, there are generally two types of access that can be granted to remote users.
1. Control access the host user allows remote users to actually control, edit, and manipulate the
shared content; most application sharing software allows the host to revoke control access at any
time. During the remote control session, keyboard and mouse are remotely controlled. Usually a
hot key is provided to revoke access.
2. View access the host user only allows remote users to passively view the shared content;
remote users have no ability to edit or effect change in the shared content whatsoever.
In present scenario, Ashare works only on View Access that is a user of one device was able to
access files of other device after some authorization, but the user was not able to make changes
on it.

1.2 Problem Statement


The problem is to automate the wired and wireless data connection between the two computing
devices without requiring the explicit knowledge of underlying network layer protocols, by
providing a simple graphical user interface. The user will be able to perform following tasks on
his device using this software:1. Will be able to share any kind of file irrespective of its extension and type.
2. Will be transfer file using any kind of connection
3. Will be able to access the shared data of two devices.

4. Will be able to view any data of the other devices


5. Will be able to connect different devices parallel, depending upon number of connection its
device was able to develop that is if device support Ethernet and wireless connectivity then user
will be able to send and retrieve files from those entire device which are connected through this
network.

1.3 Algorithm and ideas


Various algorithms such as fair queuing (an example of a max-min fair packet scheduling
algorithm), sorting algorithm (to sort files based on types and recent share), algorithm to create a
hotspot/Wi-Fi network, etc will be used for the creation of desired software. These algorithms
will make easy for the user to search a particular file from the group of files and enable them to
share this with others.
When a user searches for a file, the program will search the hard drive for every file of that name
and the search list appears so that user choose the file to send. The WIFI or wired connection was
created after that and the user will be able to transfer file to other devices in the best possible
ways.

1.4 Scope of the project


The project, more precisely the program, can be used as an alternative over any other
conventional file searching programs when efficiency in terms of time is required.
1. The program is implemented on windows as well as linux platforms.
2. Sharing medium is both wired and wireless.
3. Data sharing is achieved only in desktops or laptops working on above given platforms.
4. Data sharing is achieved only in same kind of devices.

1.4.1 Future Scope


Following scope may be appearing in future:1. The software was always OS and hardware dependent.
2. Security issues arrived due to changes in protocols of IEEE 802.11 WLAN and IEEE 802.32012 40.8.2 Crossover Ethernet Cables.
3. Number of connection of a device was depend upon the number of WLAN Adapters, number
of Ethernet ports as well as USB ports

1.5 Definition and abbreviations


1.5.1 Sorting
The SORTING has 3 senses:
1. An operation that segregates items into groups according to a specified criterion.
2. The basic cognitive process of arranging into classes or categories.
3. Grouping by class or kind or size.

Sorting is any process of arranging items according to a certain sequence or in different sets, and
therefore, it has two common, yet distinct meanings:
Ordering: Arranging items of the same kind, class or nature, in some ordered sequence,
Categorizing: Grouping and labeling items with similar properties together (by sorts).
The main purpose of sorting information is to optimize its usefulness for specific tasks. In
general, there are two ways of grouping information: by category e.g. a shopping catalogue
where items are compiled together under headings such as 'home', 'sport & leisure', 'women's
clothes' etc. (nominal scale) and by the intensity of some property, such as price, e.g. from the
cheapest to most expensive (original scale).

1.5.2 Max min fairness


In communication networks, multiplexing and the division of scarce resources, max-min fairness
is said to be achieved by an allocation if and only if the allocation is feasible and an attempt to
increase the allocation of any participant necessarily results in the decrease in the allocation of
some other participant with an equal or smaller allocation. Comparison with other policies for
resource sharing
Generally, policies for sharing resources that are characterized by low level of fairness (see
fairness measures) provide high average throughput but low stability in the service quality,
meaning that the achieved service quality is varying in time depending on the behavior of other
users. If this instability is severe, it may result in unhappy users that will choose another more
stable communication service.
Max-min fair resource sharing results in higher average throughput (or system spectral efficiency
in wireless networks) and better utilization of the resources than a work-conserving equal sharing
policy of the resources.[further explanation needed] In equal sharing, some dataflows may not be
able to utilize their "fair share" of the resources. A policy for equal sharing would prevent a
dataflow from obtaining more resources than any other flow, and from utilizing free resources in
the network.

1.5.3 Technology used


1.5.3.1 Language used: - JAVA

Java is a programming language originally developed by James Gosling et


al at Sun Microsystems (which has since merged into Oracle Corporation) and
Released in 1995 as a core component of Sun Microsystems' Java platform.
Java is a general-purpose, concurrent, class-based, object-oriented language
That is specifically designed to have as few implementation dependencies as
Possible.
1.5.3.2 Operating system used:-Windows XP and above
Windows XP is an operating system produced by Microsoft for use on personal

Computers, including home and business desktops, laptops and media centers. First
released to computer manufacturers on August 24, 2001, it is the second most
Popular version of Windows, based on installed user base.

1.6 Objective
Our project deals with the creation of an interactive file transferring mechanisms that has also
enable access to all the parts of the hard drive of other devices and to perform his defined tasks
using interactive interface.
The main Objective of the File Assay is the followings:1) Provide single software to transfer files with any type of connection
2) Advanced Querying
3) At the end, the goals are simple: safety and security

1.7 Future goal


Extending the search to other type format files and adding advanced search options.
Searching based on indexing is faster compared to non-index based search. So we want to design
a desktop application which will search file content based on indexing.
1. The data sharing will be enhanced to different or heterogeneous devices.
2. Supporting platforms will be extended to android devices also.
3. Wired data sharing will also be done via USB ports.
4. Provide Control Access to modify the data of the connected devices.
5. Develop a secure private network so that two distanced devices connect themselves using
internet.

CHAPTER 2
General Description
2.1 Functional Requirement

1) Connection Establishment
Input: Network name and password
Output: Connected devices
Processing: Connecting different devices

2) Wired Connection Establishment


Input: Network name and password
Output:-Connected devices
Processing: Connecting devices through Ethernet cable

3) Wireless Connection Establishment


Input: Network name and password
Output: Connected devices
Processing: Connecting devices through wireless connection

4) Troubleshoot
Input: Connected devices
Output:-Solution of any connection problem
Processing:-Solving any connection issues

5) Application Sharing
Input: Chosen application to be transferred
Output: Application is transferred
Processing: Transferring application from one device to another

6) Receiving Application
Input: Application sent by sender
Output: File is stored on receiver side
Processing:-Receiving file from sender device

7) Closing Connection

Input: Connected devices


Output: Destroyed network
Processing: Closing connection

2.2 Non Functional Requirement

1) Portability: Windows, Linux/Unix and Mac OS X platforms should be supported


2) Extensibility: Easy integration with existing instant messaging and Voice over IP
system
3) Easiness of use: Network should be easily established, publishing and downloading
should be as simple as possible.
4) Privacy: Ability to work in Virtual Private Network established.
5) Legal issues: Some programmers are prohibited in certain countries due to the fact
that they assault on copyrights.
6) No spyware/adware: Some Network systems that have closed source code may have
some spyware or adware.
7) User interface: A well defined and graphical user interface should be provided so that
user can easily interact with the system.
8) Non-functional requirements, typical for file sharing systems, such as the speed of file
transfers in network or share ratio are not crucial for this project. Our system objective is
to support e-learning and sizes of Learning Objects files are expected to be
Small.

2.3 Requirement Gathering Table

Requirement table contains requirement related to projects. Generally it has five fields that are
requirement id, requirement name, type of requirement (whether essential or desirable),
description of the requirement and why it is necessary.

Requirement
Id

Requirement
Name

Essential or
Desirable

Description

Necessity

Connection
Establishment

Essential

Essential

Establishing
wired
connection
Establishing
wireless
connection
File sharing

Receiving file

Essential

Troubleshoot

Desirable

Dealing with
network issues

Necessary for
secure
transmission

Closing
connection

Essential

Closing
created
network

Necessary for
devices

Essential

Essential

Establishes
connection
between
devices
Establishes
wired
connection
Establishes
wireless
connection
Sharing files
between
devices
Receiving file
from sender
side

Necessary
before file
transfer
Necessary for
file transfer
Necessary for
file transfer
Necessary for
file transfer
Necessary for
receiving file

Figure-1

2.4 Block Diagram


A block diagram is a diagram of a system in which the principal parts or functions are
represented by blocks connected by lines that show the relationships of the blocks. They are
typically used for higher level, less detailed description that are intended to clarify overall
concept without concern for the details of the implementation.

Receiver side

Sender side

Connection
establishment

Choosing requested
file

File sharing

Requesting file

Receiving file
Close connection

Figure-2

CHAPTER 3
Design
3.1 High Level Design
Design is a meaningful activity needed to create a quality product. Design is the only way by
which we can accurately translate the customers requirements into a finished software product
or system. Thus design serves as the basis for all the software engineering steps. After analyzing
and specifying all the requirements the process of design begins.

3.1.1 Flowchart
Flowchart is a graphical representation of an algorithm. With the help of different symbols
logical flow of the program can be depicted. Here in our program we have used three different
flowcharts to easily depicting the concept and algorithm of the program.

3.1.1.1 Overall flowchart


The first flowchart shows how the entire program works. The first thing that is to be done is to
establish connection among number of devices. After that user whether it is sender or receiver
have to choose between wired or wireless connection medium transfers. Both connection are set
up at the time, if sender unable to send files from one medium then it can use another medium
for transmission. After that file sharing and file receiving activity is performed respectively.

3.1.1.2 Flowchart for file sharing


For file sharing activity, the user that wants to share the file can click the file sharing button and
chooses the file to be shared. A progress bar is displayed while the file sharing activity takes
place.

3.1.1.3 Flowchart for file receiving


For file receiving activity, the user that wants to receive the file must prepare its device in a
ready mode and receive incoming files. A progress bar is displayed while the file receiving
activity takes place.

Start

Device Initialization

Troubleshoot

Yes

Is wired connection chosen

No
Is wireless connection chosen?

Yes
Troubleshoot

File sharing activity

Is file sharing selected

Is file receive selected

No

Did user want to exit?

Yes
End

10

File receive
activity

Start

File sharing activity

Choose file to be shared

Chosen file name is displayed

Chosen file is sent out in


broadcast form

Progress bar is displayed while the


file is sent out

Yes

Does the user want to share another file?

No
End

Figure-4 Flowchart for file sharing activity

11

Start

File receive activity

Prepare device to be in ready mode to


receive incoming files

Progress bar is displayed while the device is


receiving incoming files

No

Does the user want to proceed in receiving the


incoming files?

Yes

File receiving is completed

Yes

Does the user want to receive another file?

No

End
Figure-5 Flowchart for file receive activity

12

3.2 Use Case Diagram


Use case diagram represents the overall scenario of the system. A scenario is nothing but a
sequence of steps describing an interaction between a user and a system.

Establish connection

Wired connection

Wireless connection

Choose between wirelesses or wired

Troubleshoot

Sender

Request for File

File sharing

File receiving

Close connection

Figure-6 Use case diagram

13

Receiver

3.3 Activity Diagram


The activity diagram is a graphical representation for representing the flow of interaction within
specific scenarios. It is similar to flowchart in which various activities that can be performed are
depicted.

Connection
Establishment

Establish Wired
Connection

Establish Wireless
Connection

Troubleshoot

File Sharing

File Receiving

Close Connection

14

3.4 Sequence Diagram


In the sequence diagram how the objects interacts with the other object is shown. There are
sequence of events that are represented by sequence diagram.

Sender

Connection

Application

Establish connection
Establish Connection

Choosing between

Wired or wireless

choosing between wired or wireless

Request for
Application
Application sharing

Receiving
Application

Close connection

Close connection

Figure-8 Sequence diagram

15

Receiver

3.5 Software Model


Incremental development slices the system functionality into increments (portions). In each
increment, a slice of functionality is delivered through cross discipline work, from the
requirements to the deployment. The unified process groups increments/iterations into phases:
inception, elaboration, construction, and transition.

Inception identifies project scope, requirements (functional and non-functional) and risks
at a high level but in enough detail that work can be estimated.

Elaboration delivers a working architecture that mitigates the top risks and fulfills the
non-functional requirements.

Construction incrementally fills-in the architecture with production-ready code produced


from analysis, design, implementation, and testing of the functional requirements.

Transition delivers the system into the production operating environment.

Each of the phases may be divided into 1 or more iterations, which are usually time-boxed rather
than feature-boxed. Architects and analysts work one iteration ahead of developers and testers to
keep their work-product backlog full
The problems with the Waterfall Model created a demand for a new method of developing
systems which could provide faster results , require less up-front information, and offer greater
flexibility. With Iterative Development, the project is divided into small parts. This allows the
development team to demonstrate results earlier on in the process and obtain valuable feedback
from system users.
Often, each iteration is actually a mini-Waterfall process with the feedback from one phase
providing vital information for the design of the next phase. In a variation of this model, the
software products, which are produced at the end of each step (or series of steps), can go into
production immediately as incremental releases.

16

Figure-9 Iterative Model

CHAPTER 4
Testing
It brings all the pieces together into a special testing environment, then checks for errors, bugs
and interoperability. Software testing is the process of testing the software product. Effective
software testing will contribute to the delivery of higher quality software products, more satisfied
users, lower maintenance costs, more accurate, and reliable results. However, ineffective testing
will lead to the opposite results; low quality products, unhappy users, increased maintenance
costs, unreliable and inaccurate results.
Errors are present within the software under test. This cannot be the aim of
Software designers they must have designed the software with the aim of producing
it with zero errors.
Unit testing: A module is tested separately and is often performed by the coder himself
simultaneously along with the coding of the module. The purpose is to exercise the different
parts of the modules code to detect coding errors.
Integration Testing: The modules are gradually integrated into subsystems, which are then
integrated to eventually from the entire system. Integration testing is performed to detect design
errors by focusing on testing the interconnection between modules.
System Testing: After the system is put together, it is performed. The system is tested against the
system requirement to see if the entire requirements are met and if the system performs as
specified by the requirement.
Acceptance Testing: The final stage of initial development, where the software is put into
production and runs actual business. It is performed to demonstrate to the client, on the real life
data of the client, the operation of the system.

17

Unit Testing

Integration Testing

System Testing

Test
case id

Test case
name

Description

Acceptance Testing
Testing steps
Testing step

Testing
connection

Testing
wired
connection

Testing
wireless
connection

Testing file
transfer
4

Expected

Checking
proper
connection
between
devices

Send message
From one
Device to
another

Message transfer
successfully

Checking
proper wired
connection

Send message
From one
Device to
another

message transfer
successfully

Checking
proper
wireless
connection

Send message
From one
Device to
another

message transfer
successfully

Checking file
is transferred
properly or not

Send file from


One device to
another

File transfer
successfully

18

Actual

Statu
s
(pass/
fail)

Test
prior
ity

Test
severit
y

Testing
closed
connection

Checking
connection is
closed after
file transfer or
not

Send file from


One device to
another

Testing file
receive
activity

Checking file
is received or
not

Send file from


One device to
another

file is not
transferred

file transfer
successfully

Figure-11 Test case

CHAPTER 5
REFERENCE

19

You might also like