SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
1
1. INTRODUCTION
File splitter basically used to split the large files which are not possible to upload or
download, when we have to file size restrictions imposed by the application. For example, if
we need to upload a file say 30 MB using Gmail, than it might not be possible as Gmail
restrict the file size less than 30MB, so if we use our tool we can split the file and send the
splitted parts by uploading it and can retain the original file by joining the splitted parts.
Likewise we can use our application in other fields as well; where we need the file (can be
audio, video, text, rar etc). Using our tool, which is a windows application, one need to
decide size for each segments, than need to split the original file. On joining he/she need to
select the first and should click on join to get the original file.
Existing System
In the existing system, splitting of file will be limited only to some file formats.
Proposed system
In the proposed system, splitting of file will be for all types of files like text,
document, image, audio, video, pdf, etc. The advantage of splitting the file is that, we can
upload or download the splitted file easily, when there is a restriction in size of the file to be
uploaded or downloaded.
Overall description
By using our tool file splitter one can easily split the file into smaller segments, which
in turn can be joined to retrieve the original file. Will have three modules one for
segmentation, other for splitted the file into segments and other for joining the splitted parts
to obtain the original file. In the segmentation we need to decide the how many segments we
need to have for a file , and will have split and join option, using split we can divide the file
into required segments and than can join the segments to obtain the original file.
Modules of the Product Segmentation:
This module basically deals with segmenting the original file into the number of
segments based on the size specified for each segment. For example if file size is 4000kb,
and if each segment size (in kb/mb) specified is 400, than 10(4000/400) segments will be
generated.
2
File Splitter Module:
This module take care of splitting the file into segments specified in the segmentation
module. Based on of segments to be generated, this module splits the original file into
segments.
File Joining Module:
It is used to join the files which are splitted into the segments in the above module.
FEASIBILITY STUDY
TECHINICAL FEASIBILITY:
Evaluating the technical feasibility is the trickiest part of a feasibility study. This is
because, at this point in time, not too many detailed design of the system, making it difficult
to access issues like performance, costs on (on account of the kind of technology to be
deployed) etc.
A number of issues have to be considered while doing a technical analysis.
1. Understand the different technologies involved in the proposed system:
Before commencing the project, we have to be very clear about what are the
Technologies that are to be required for the development of the new system.
2. Find out whether the organization currently possesses the required technologies:
Is the required technology available with the organization?
If so is the capacity sufficient?
For instance –
―Will the current printer be able to handle the new reports and forms required for the
new system?‖
OPERATIONAL FEASIBILITY:
Proposed projects are beneficial only if they can be turned into information systems
that will meet the organizations operating requirements. Simply stated, this test of feasibility
asks if the system will work when it is developed and installed. Are there major barriers to
Implementation? Here are questions that will help test the operational feasibility of a project:
 Is there sufficient support for the project from management from users? If
The current system is well liked and used to the extent that persons will not be
Able to see reasons for change, there may be resistance.
 Are the current business methods acceptable to the user? If they are not,
3
Users may welcome a change that will bring about a more operational and useful
systems.
 Have the user been involved in the planning and development of the project?
Early involvement reduces the chances of resistance to the system and in
General and increases the likelihood of successful project.
Since the proposed system was to help reduce the hardships encountered
In the existing manual system, the new system was considered to be operational feasible.
ECONOMIC FEASIBILITY:
Economic feasibility attempts 2 weigh the costs of developing and implementing a
new system, against the benefits that would accrue from having the new system in place.
This feasibility study gives the top management the economic justification for the new
system. A simple economic analysis which gives the actual comparison of costs and benefits
are much more meaningful in this case. In addition, this proves to be a useful point of
reference to compare actual costs as the project progresses. There could be various types of
intangible benefits on account of automation. These could include increased customer
satisfaction, improvement in product quality better decision making timeliness of
information, expediting activities, improved accuracy of operations, better documentation
and record keeping, faster retrieval of information, better employee morale.
4
2. PROBLEM DEFINATION AND SCOPE OF THE PROJECT
2.1 Purpose
The purpose of developing our tool is to splits the larger files which can’t be
uploaded or downloaded using some application like Gmail, yahoo mail, etc as per file size
restrictions imposed by this application. In order to support larger file uploads and downloads
we will use our tool, using which one can easily upload or download splitted files.
2.2 Scope
We can use our application or tool to split the files types such as audio, video, text,
rar etc. so that splitted files can be uploaded or downloaded easily.
2.3 Goals:
The main aim of the project is to design software for splitting of any type of files into
segments and reassembling them. The project provides compression of file before splitting
and compressed file is used for splitting. In already existing software they provide only some
file types. We design software to split all types of files like text, document, image, audio,
video, pdf etc. The files splitted portion will be in non-readable format and parts can be
joined back to get the original file.
2.4 Features of our project (Advantages)
1) Our project assists to the users in splitting the larger files into smaller splitted files, which
can easily be uploaded or downloaded.
2) Our project or tool is more user friendly, and can be used easily for file splitting and
joining and Our tool can be used for splitting of video files, audio files, rar files which may
not available in existing system.
2.5 TECHNOLOGIES:
2.5.1 .net description:
The .NET Framework is a new computing platform that simplifies application
development in the highly distributed environment of the Internet. The .NET Framework is
designed to fulfill the following objectives:
 To provide a consistent object-oriented programming environment whether object
code is stored and executed locally, executed locally but Internet-distributed, or
executed remotely.
5
 To provide a code-execution environment that minimizes software deployment and
versioning conflicts.
Fig 2.5.1: .NET Frame work
To provide a code-execution environment that guarantees safe execution of code, including
code created by an unknown or semi-trusted third party.
 To provide a code-execution environment that eliminates the performance problems
of scripted or interpreted environments.
 To make the developer experience consistent across widely varying types of
applications, such as Windows-based applications and Web-based applications.
 To build all communication on industry standards to ensure that code based on the
.NET Framework can integrate with any other code.
The .NET Framework has two main components: the common language runtime and
the .NET Framework class library. The common language runtime is the foundation of the
.NET Framework. You can think of the runtime as an agent that manages code at execution
time, providing core services such as memory management, thread management, and
remoting, while also enforcing strict type safety and other forms of code accuracy that ensure
security and robustness. In fact, the concept of code management is a fundamental principle
of the runtime. Code that targets the runtime is known as managed code, while code that does
6
not target the runtime is known as unmanaged code. The class library, the other main
component of the .NET Framework, is a comprehensive, object-oriented collection of
reusable types that you can use to develop applications ranging from traditional command-
line or graphical user interface (GUI) applications to applications based on the latest
innovations provided by ASP.NET, such as Web Forms and XML Web services.
The .NET Framework can be hosted by unmanaged components that load the
common language runtime into their processes and initiate the execution of managed code,
thereby creating a software environment that can exploit both managed and unmanaged
features. The .NET Framework not only provides several runtime hosts, but also supports the
development of third-party runtime hosts. For example, ASP.NET hosts the runtime to
provide a scalable, server-side environment for managed code. ASP.NET works directly with
the runtime to enable Web Forms applications and XML Web services, both of which are
discussed later in this topic.
Internet Explorer is an example of an unmanaged application that hosts the runtime
(in the form of a MIME type extension). Using Internet Explorer to host the runtime enables
you to embed managed components or Windows Forms controls in HTML documents.
Hosting the runtime in this way makes managed mobile code (similar to Microsoft®
ActiveX® controls) possible, but with significant improvements that only managed code can
offer, such as semi-trusted execution and secure isolated file storage.
The following illustration shows the relationship of the common language runtime
and the class library to your applications and to the overall system. The illustration also
shows how managed code operates within a larger architecture.
Features of the Common Language Runtime
The common language runtime manages memory, thread execution, code execution,
code safety verification, compilation, and other system services. These features are intrinsic
to the managed code that runs on the common language runtime. With regards to security,
managed components are awarded varying degrees of trust, depending on a number of factors
that include their origin (such as the Internet, enterprise network, or local computer). This
means that a managed component might or might not be able to perform file-access
operations, registry-access operations, or other sensitive functions, even if it is being used in
the same active application.
7
The runtime enforces code access security. For example, users can trust that an
executable embedded in a Web page can play an animation on screen or sing a song, but
cannot access their personal data, file system, or network. The security features of the
runtime thus enable legitimate Internet-deployed software to be exceptionally feature rich.
The runtime also enforces code robustness by implementing a strict type- and code-
verification infrastructure called the common type system (CTS). The CTS ensures that all
managed code is self-describing. The various Microsoft and third-party language compilers
generate managed code that conforms to the CTS. This means that managed code can
consume other managed types and instances, while strictly enforcing type fidelity and type
safety. In addition, the managed environment of the runtime eliminates many common
software issues. For example, the runtime automatically handles object layout and manages
references to objects, releasing them when they are no longer being used. This automatic
memory management resolves the two most common application errors, memory leaks and
invalid memory references.
The runtime also accelerates developer productivity. For example, programmers can
write applications in their development language of choice, yet take full advantage of the
runtime, the class library, and components written in other languages by other developers.
Any compiler vendor who chooses to target the runtime can do so. Language compilers that
target the .NET Framework make the features of the .NET Framework available to existing
code written in that language, greatly easing the migration process for existing applications.
While the runtime is designed for the software of the future, it also supports software of
today and yesterday. Interoperability between managed and unmanaged code enables
developers to continue to use necessary COM components and DLLs.
The runtime is designed to enhance performance. Although the common language
runtime provides many standard runtime services, managed code is never interpreted. A
feature called just-in-time (JIT) compiling enables all managed code to run in the native
machine language of the system on which it is executing. Meanwhile, the memory manager
removes the possibilities of fragmented memory and increases memory locality-of-reference
to further increase performance. Finally, the runtime can be hosted by high-performance,
server-side applications, such as Microsoft® SQL Server™ and Internet Information
Services (IIS). This infrastructure enables you to use managed code to write your business
8
logic, while still enjoying the superior performance of the industry's best enterprise servers
that support runtime hosting.
.NET Framework Class Library
The .NET Framework class library is a collection of reusable types that tightly
integrate with the common language runtime. The class library is object oriented, providing
types from which your own managed code can derive functionality. This not only makes the
.NET Framework types easy to use, but also reduces the time associated with learning new
features of the .NET Framework. In addition, third-party components can integrate
seamlessly with classes in the .NET Framework. For example, the .NET Framework
collection classes implement a set of interfaces that you can use to develop your own
collection classes. Your collection classes will blend seamlessly with the classes in the .NET
Framework. As you would expect from an object-oriented class library, the .NET Framework
types enable you to accomplish a range of common programming tasks, including tasks such
as string management, data collection, database connectivity, and file access. In addition to
these common tasks, the class library includes types that support a variety of specialized
development scenarios. For example, you can use the .NET Framework to develop the
following types of applications and services:
 Console applications.
 Scripted or hosted applications.
 Windows GUI applications (Windows Forms).
 ASP.NET applications.
 XML Web services.
 Windows services.
For example, the Windows Forms classes are a comprehensive set of reusable types that
vastly simplify Windows GUI development. If you write an ASP.NET Web Form
application, you can use the Web Forms classes.
Client Application Development
Client applications are the closest to a traditional style of application in Windows-
based programming. These are the types of applications that display windows or forms on the
desktop, enabling a user to perform a task. Client applications include applications such as
word processors and spreadsheets, as well as custom business applications such as data-entry
9
tools, reporting tools, and so on. Client applications usually employ windows, menus,
buttons, and other GUI elements, and they likely access local resources such as the file
system and peripherals such as printers. Another kind of client application is the traditional
ActiveX control (now replaced by the managed Windows Forms control) deployed over the
Internet as a Web page. This application is much like other client applications: it is executed
natively, has access to local resources, and includes graphical elements.
In the past, developers created such applications using C/C++ in conjunction with the
Microsoft Foundation Classes (MFC) or with a rapid application development (RAD)
environment such as Microsoft® Visual Basic®. The .NET Framework incorporates aspects
of these existing products into a single, consistent development environment that drastically
simplifies the development of client applications.
The Windows Forms classes contained in the .NET Framework are designed to be
used for GUI development. You can easily create command windows, buttons, menus,
toolbars, and other screen elements with the flexibility necessary to accommodate shifting
business needs. For example, the .NET Framework provides simple properties to adjust
visual attributes associated with forms. In some cases the underlying operating system does
not support changing these attributes directly, and in these cases the .NET Framework
automatically recreates the forms. This is one of many ways in which the .NET Framework
integrates the developer interface, making coding simpler and more consistent.
Unlike ActiveX controls, Windows Forms controls have semi-trusted access to a user's
computer. This means that binary or natively executing code can access some of the
resources on the user's system (such as GUI elements and limited file access) without being
able to access or compromise other resources. Because of code access security, many
applications that once needed to be installed on a user's system can now be safely deployed
through the Web. Your applications can implement the features of a local application while
being deployed like a Web page.
Server Application Development
Server-side applications in the managed world are implemented through runtime
hosts. Unmanaged applications host the common language runtime, which allows your
custom managed code to control the behavior of the server. This model provides you with all
10
the features of the common language runtime and class library while gaining the performance
and scalability of the host server.
The following illustration shows a basic network schema with managed code running
in different server environments. Servers such as IIS and SQL Server can perform standard
operations while your application logic executes through the managed code.
Server-side managed code
ASP.NET is the hosting environment that enables developers to use the .NET
Framework to target Web-based applications. However, ASP.NET is more than just a
runtime host; it is a complete architecture for developing Web sites and Internet-distributed
objects using managed code. Both Web Forms and XML Web services use IIS and ASP.NET
as the publishing mechanism for applications, and both have a collection of supporting
classes in the .NET Framework. XML Web services, an important evolution in Web-based
technology, are distributed, server-side application components similar to common Web
sites. However, unlike Web-based applications, XML Web services components have no UI
and are not targeted for browsers such as Internet Explorer and Netscape Navigator. Instead,
XML Web services consist of reusable software components designed to be consumed by
other applications, such as traditional client applications, Web-based applications, or even
other XML Web services. As a result, XML Web services technology is rapidly moving
application development and deployment into the highly distributed environment of the
Internet. If you have used earlier versions of ASP technology, you will immediately notice
the improvements that ASP.NET and Web Forms offers. For example, you can develop Web
Forms pages in any language that supports the .NET Framework. In addition, your code no
longer needs to share the same file with your HTTP text (although it can continue to do so if
you prefer). Web Forms pages execute in native machine language because, like any other
managed application, they take full advantage of the runtime. In contrast, unmanaged ASP
pages are always scripted and interpreted. ASP.NET pages are faster, more functional, and
easier to develop than unmanaged ASP pages because they interact with the runtime like any
managed application.
The .NET Framework also provides a collection of classes and tools to aid in
development and consumption of XML Web services applications. XML Web services are
built on standards such as SOAP (a remote procedure-call protocol), XML (an extensible
11
data format), and WSDL ( the Web Services Description Language). The .NET Framework is
built on these standards to promote interoperability with non-Microsoft solutions.
For example, the Web Services Description Language tool included with the .NET
Framework SDK can query an XML Web service published on the Web, parse its WSDL
description, and produce C# or Visual Basic source code that your application can use to
become a client of the XML Web service. The source code can create classes derived from
classes in the class library that handle all the underlying communication using SOAP and
XML parsing. Although you can use the class library to consume XML Web services
directly, the Web Services Description Language tool and the other tools contained in the
SDK facilitate your development efforts with the .NET Framework.
If you develop and publish your own XML Web service, the .NET Framework
provides a set of classes that conform to all the underlying communication standards, such as
SOAP, WSDL, and XML. Using those classes enables you to focus on the logic of your
service, without concerning yourself with the communications infrastructure required by
distributed software development. Finally, like Web Forms pages in the managed
environment, your XML Web service will run with the speed of native machine language
using the scalable communication of IIS.
2.5.2 Active Server Pages.NET
ASP.NET is a programming framework built on the common language runtime that
can be used on a server to build powerful Web applications. ASP.NET offers several
important advantages over previous Web development models:
Enhanced Performance.
ASP.NET is compiled common language runtime code running on the server. Unlike
its interpreted predecessors, ASP.NET can take advantage of early binding, just-in-time
compilation, native optimization, and caching services right out of the box. This amounts to
dramatically better performance before you ever write a line of code.
World-Class Tool Support.
The ASP.NET framework is complemented by a rich toolbox and designer in the
Visual Studio integrated development environment. WYSIWYG editing, drag-and-drop
server controls, and automatic deployment are just a few of the features this powerful tool
provides.
12
Power and Flexibility.
Because ASP.NET is based on the common language runtime, the power and
flexibility of that entire platform is available to Web application developers. The .NET
Framework class library, Messaging, and Data Access solutions are all seamlessly accessible
from the Web. ASP.NET is also language-independent, so you can choose the language that
best applies to your application or partition your application across many languages. Further,
common language runtime interoperability guarantees that your existing investment in COM-
based development is preserved when migrating to ASP.NET.
Simplicity.
ASP.NET makes it easy to perform common tasks, from simple form submission and
client authentication to deployment and site configuration. For example, the ASP.NET page
framework allows you to build user interfaces that cleanly separate application logic from
presentation code and to handle events in a simple, Visual Basic - like forms processing
model. Additionally, the common language runtime simplifies development, with managed
code services such as automatic reference counting and garbage collection.
Manageability.
ASP.NET employs a text-based, hierarchical configuration system, which simplifies
applying settings to your server environment and Web applications. Because configuration
information is stored as plain text, new settings may be applied without the aid of local
administration tools. This "zero local administration" philosophy extends to deploying
ASP.NET Framework applications as well. An ASP.NET Framework application is deployed
to a server simply by copying the necessary files to the server. No server restart is required,
even to deploy or replace running compiled code.
Scalability and Availability.
ASP.NET has been designed with scalability in mind, with features specifically
tailored to improve performance in clustered and multiprocessor environments. Further,
processes are closely monitored and managed by the ASP.NET runtime, so that if one
misbehaves (leaks, deadlocks), a new process can be created in its place, which helps keep
your application constantly available to handle requests.
13
Customizability and Extensibility.
ASP.NET delivers a well-factored architecture that allows developers to "plug-in"
their code at the appropriate level. In fact, it is possible to extend or replace any
subcomponent of the ASP.NET runtime with your own custom-written component.
Implementing custom authentication or state services has never been easier.
Security.
With built in Windows authentication and per-application configuration, you can be
assured that your applications are secure.
Language Support
The Microsoft .NET Platform currently offers built-in support for three languages:
C#, Visual Basic, and JScript.
14
2.5.3 ACTIVE X DATA OBJECTS.NET
ADO.NET ARCHITECHTURE
Fig2.5.3: Ado.net Architecture
DATA STORE
ADO.NET is an extension of the ADO data access model which consist of only the
connected architecture. The Microsoft organization has realized the data related operations
and have studied and analyzed different data related technologies among which they found
ADO to be interesting , later on they extended the features of the ADO and defined own data
related technology by refining the ADO and hence given the name as ADO.Net. The
Microsoft organization, grouped some set of namespaces which can operates on data, and put
together into technology called ADO.NET. The ADO.Net technology enhances the features
DATASETDATA PROVIDER
CONNECTION
COMMAND
DATA READER
DATA
ADAPTER
ORACLE ACEESSMSSQL
DataTable1
DataRow/DataColumn
D
DATA RELATION
DataTable2
XML
OUTPUT
DATAVIEW
DATAVIEW
15
of the ADO, which consist of only connected architecture where as in ADO.NET they have
introduces a disconnected architecture.
The connected architecture important feature is the data provider, which consists of
the four important objects namely connection, command, data reader and data adapter.
The connection object provides the connection to the data store nothing but to the back end
database servers. The connection class consists of default constructors and parameterized
constructors. The constructor takes arguments, which provides the connection to the back end
servers. The arguments that the connection class constructors takes are Data Source ,
Database and security.
The first parameter Data Source represents the server name to which our application
needs to be connected. That’s means from the available servers we need to select the
particular data base server which can be done through the data source parameter. The second
parameter indicates the database to which we are going to connect, that’s means in that
particular database server, to which data base we want to connect can be done through the
data base parameter. The third parameter security indicates, the security provided for the
database server. If the server is running under windows authentication mode , than will use
integrated security to be true that’s means no need to specify the user name and password
explicitly why because the system will takes the prebuilt username and password which has
been set for the system. On the other hand if the back end server is running under sql
authentication mode that will specify the username and password which has be set during the
installation of the server, using the security parameter we can connect to the backend
database server.
Also sqlconnection class consists of the methods such as open and close. The open
method is used to open the connection to the database server. Whereas the close method is
used to disconnect the connection from the server. Once the connection is opened while in
the application use, the connection should be closed when the application terminates.
Another object of the data provider is the command object, using which one can write the
queries in order to manipulate data in the database. Once the connection is opened, the
sqlcommand class makes use of the connection and will operate on the database. The
sqlcommand class will do manipulation using the queries or the stored procedures. Which
has to be decided by the programmers whether they want to use the queries or the stored
16
procedures using the method command type? If we want to use queries than we need to
select the text query or else we need to select stored procedure option from the command
type method.
Command object consists of three methods namely execute non query, execute reader and
execute scalar. The execute non query will returns the integer values as an output which
indicates how many records have been updated, or modified etc. the second method execute
reader returns the complete records been affected by the operations , whereas execute scalar
returns the first row first column value remaining will be neglected. The third object in the
connected architecture is the data reader, which reads the data in a forward only mode, that’s
means, its retrieves the data from the data base server and forwards it to the application.
The object is the data adapter which acts like an interface or bridge between the
connected architecture and disconnected architecture. In the disconnected architecture the
important feature is the dataset. It’s a collection of data tables and data rows and the data
tables will be linked using the data relations. When the dataset need to be filled, its request to
the data adapter which in turn fills the dataset by making use of fill method of data adapter.
Features of ADO.NET are as follows:
 ADO.NET is the next evolution of ADO for the .Net Framework.
 ADO.NET was created with n-Tier, statelessness and XML in the forefront. Two new
objects, the Dataset and Data Adapter, are provided for these scenarios.
 ADO.NET can be used to get data from a stream, or to store data in a cache for
updates.
 There is a lot more information about ADO.NET in the documentation.
 Remember, you can execute a command directly against the database in order to do
inserts, updates, and deletes. You don't need to first put data into a Dataset in order to
insert, update, or delete it.
 Also, you can use a Dataset to bind to the data, move through the data, and navigate
data relationships
17
2.5.4 Sql server description:
Microsoft SQL Server is a Structured Query Language (SQL) based, client/server
relational database. Each of these terms describes a fundamental part of the architecture of
SQL Server.
Database
A database is similar to a data file in that it is a storage place for data. Like a data file,
a database does not present information directly to a user; the user runs an application that
accesses data from the database and presents it to the user in an understandable format.
 A database typically has two components: the files holding the physical database and
the database management system (DBMS) software that applications use to access
data. The DBMS is responsible for enforcing the database structure, including:
 Maintaining the relationships between data in the database.
 Ensuring that data is stored correctly and that the rules defining data relationships are
not violated.
 Recovering all data to a point of known consistency in case of system failures.
Client/Server
In a client/server system, the server is a relatively large computer in a central location that
manages a resource used by many people. When individuals need to use the resource, they
connect over the network from their computers, or clients, to the server. Examples of servers
are: In a client/server database architecture, the database files and DBMS software reside on
a server. A communications component is provided so applications can run on separate
clients and communicate to the database server over a network. The SQL Server
communication component also allows communication between an application running on
the server and SQL Server.
Server applications are usually capable of working with several clients at the same
time. SQL Server can work with thousands of client applications simultaneously. The server
has features to prevent the logical problems that occur if a user tries to read or modify data
currently being used by others. While SQL Server is designed to work as a server in a
client/server network, it is also capable of working as a stand-alone database directly on the
client. The scalability and ease-of-use features of SQL Server allow it to work efficiently on
a client without consuming too many resources.
18
2.5.5 Structured Query Language (SQL)
To work with data in a database, you must use a set of commands and statements
(language) defined by the DBMS software. There are several different languages that can be
used with relational databases; the most common is SQL. Both the American National
Standards Institute (ANSI) and the International Standards Organization (ISO) have defined
standards for SQL. Most modern DBMS products support the Entry Level of SQL-92, the
latest SQL standard (published in 1992).
SQL Server Features
Microsoft SQL Server supports a set of features that result in the following benefits:
Ease of installation, deployment, and use
SQL Server includes a set of administrative and development tools that improve your
ability to install, deploy, manage, and use SQL Server across several sites.
Scalability
The same database engine can be used across platforms ranging from laptop
computers running Microsoft Windows® 95/98 to large, multiprocessor servers running
Microsoft Windows NT®, Enterprise Edition.
Data warehousing
SQL Server includes tools for extracting and analyzing summary data for online
analytical processing (OLAP). SQL Server also includes tools for visually designing
databases and analyzing data using English-based questions.
System integration with other server software
SQL Server integrates with e-mail, the Internet, and Windows.
Databases
A database in Microsoft SQL Server consists of a collection of tables that contain
data, and other objects, such as views, indexes, stored procedures, and triggers, defined to
support activities performed with the data. The data stored in a database is usually related to
a particular subject or process, such as inventory information for a manufacturing warehouse.
SQL Server can support many databases, and each database can store either interrelated
data or data unrelated to that in the other databases. For example, a server can have one
database that stores personnel data and another that stores product-related data. Alternatively,
one database can store current customer order data, and another; related database can store
19
historical customer orders that are used for yearly reporting. Before you create a database, it
is important to understand the parts of a database and how to design these parts to ensure that
the database performs well after it is implemented.
Entity Integrity Constraint:
Entity Integrity Constraints are of two types:
 Unique Constraints
 Primary Key Constraints
The unique constraints designate a column or a group of columns as a unique key.
The constraint allows only unique values to be stored in the column Sql Server rejects
duplication of records when the unique key constraint is used.
The primary key constraint is similar to the unique key constraint. The primary key
constraint just like the former avoids duplication of values. Its needs it best felt when a
relation has to be set between tables, because in addition to prevent in duplication it also does
not allow null values.
Referential Integrity Constraint:
The Referential Integrity Constraint enforces relationship between tables. It
designates a column or a combination of columns as a foreign key. The foreign key
establishes a relationship with a specified primary or unique key in another table, called the
referenced key. In this relationship, the table containing the foreign key is called a child
table and the table containing the referenced key is called the parent table.
20
3. SOFTWARE PROJECT MANAGEMENT PLAN (SPMP)
3.1 Development Methodologies-Process Model
When we defining and constructing credit card validation systems will uncover many
requirements that may be difficult at outset. Instead knowledge of the system and
requirements will grow as work progress the whole software engineering process is designed
to uncover details and incompatibilities in the requirements that may not be obvious to
customer and bankers at outset.
Several cases or increments of software development additional increases will be
build and delivered in successive increment system normally involves as are deliver
successive new versions, the development of first version from sketch called green field
development is special case of incremental development the development of first increment
is an important activity series we establish the architectural base that must last for the entire
system’s life time.
3.2 Project Development Life Cycle
3.2.1 WATERFALL LIFECYCLE MODEL:
Waterfall model states that the phases (analysis, design, and coding, testing, support)
are systematized in a linear order and each phase should accomplished entirely earlier of the
next phase begins. In this way the step by step phase initially analyzing phase is completed
and that output takes place at the end of analyze phase after that output will be given as input
for the design phase, depending on the inputs it generates all design steps, like ways all
phases processed and produced all successful outputs, And will to find out whether the
project is pursuing on the exact path or not. If not the project may be discard or any other
action takes place to continue. The model is the most commonly used and also known as
linear sequential lifecycle model.
ADVANTAGES:
1. This model is very easy to use and implement.
2. Each phase is completed at a time and processed.
3. This model better works for smaller projects if only the requirements are well
understood.
4. In each phase have deliverables and that must be reviewed.
21
DISADVANTAGES:
1. If the requirements are gathered are inaccurate then the final product is inaccurate and
the error is known in the final phase of the model. Any sort of errors that cannot be
detected in any previous phase.
2. For long, object-oriented, complex and ongoing projects it’s a poor model.
3. This model has high risks.
Fig3.2.1: Waterfall Lifecycle Model
22
4. SYSTEM AND SOFTWARE REQUIREMENT SPECIFICATIONS
4.1 Software interfaces :
Operating Systems: Windows 2003 Server / Windows XP
MS- VS – 2005 or above
C#, .NET 2.0 or above
4.2 Hardware interfaces :
Pentium 4 with 3GHz
RAM: 2 GB
Hard Disk: 20 GB
4.3 Communications interfaces : Not applicable
23
5. SOFTWARE DESIGN DESCRIPTION
5.1 Design Overview
The design phase begins with the requirements specification for the software to be
developed. Design is the first step to moving from the problem domain towards the solution
domain. Design is essentially the bridge between requirement specification and the final
solution for satisfying the requirements. It is the most critical factor affecting the quality of
the software.
The design process for software system has two levels.
 System Design or Top level design
 Detailed Design or Logical Design
System Design:
In the system design the focus on the deciding which modules are needed for the
system, the specification of these modules and how these modules should be interconnected.
Detailed Design:
In detailed design the interconnection of the modules or how the specifications of the
modules can be satisfied is decided. Some properties for a software system design are
 Verifiability
 Completeness
 Consistency
 Traceability
 Simplicity / Understandability
24
1) Application Architecture:
Fig 5.1: Application Architecture
The application which we are developing is using One-Tier or single Tier application.
Within the same tier we are going to include the business functionalities as well the data
access functionalities. The frontend which we are going to develop is using the windows
form application. We will develop all the front end windows forms or User interface forms
using Windows application of .NET environment. Once after developing the user interfaces
we need to write the code behind in order to specify the business logic as well the data access
logic. This coding will be done using In our application will use necessary functionalities
such as splitting the original file into segments, joining the file into segments. The C#
language in our application, where will write all the necessary business logic code and in our
application will use necessary functionalities such as splitting the original file into segments,
joining the file into segments. Data access code in order to access the backend database
server. In our application we are not going to use backend end database server that is MS
SQL server 2005. In our application will use necessary functionalities such as splitting the
original file into segments, joining the file into segments. In the above application diagram ,
in the User Interface block will include all the necessary front end screens and in the BAL
block will include all the necessary business logic required for any business functionalities
whereas in the DAL block will include all the necessary data access functionalities , such as
User Interface
BAL
DAL
Database
25
establishing the connection to the data base server, than after connecting successfully will use
the data manipulation commands such as insert , delete, update ,select operations depending
upon the needs of the application. In order to use the ADO.NET objects in our application we
need to include the respective namespace provided by the ADO.NET. That’s in order to
connect to the MS SQL server2005; we need to include the System.sqlclient namespace in
our application. The namespace sqlclient is to connect to the MS SQL server database. If we
want to connect to oracle database server we need to include oracle client namespace, if we
want to connect to ACCESS database server we need to include odbc namespace in our
application. But in our application we are not using backend data base server so need to have
data base connection.
2) Software Architecture:
Fig 5.2: Software Architecture
In this software architecture, the users block consists of end user or users of our
application. Will design all the forms necessary for the our application. So that when user
wants to split and join the file, he can do by using the GUI feature provided by our
application.
Users
Segmentation
File splitter Database
File Joiner
26
In the business logic if we have any validations relating in our application than we
have to verify that all the validations are satisfied thoroughly. Once after all the validations
are evaluated to be true, will move with the data access logic.
In the data access logic, will connect to the necessary database server by including the
required namespace. I.e. System.sqlclient if the database server we are using is MS SQL
SERVER2005.But we don’t have database server, so no need to establish the connection.
5.2 UML Design:
Modeling is an activity that has been carried out over the years in software
development. When writing applications by using the simplest languages to the most
powerful and complex languages, you still need to model. Modeling can be as
straightforward as drawing a flowchart listing the steps carried out by an application.
Why do we use modeling?
Defining a model makes it easier to break up a complex application or a huge system
into simple, discrete pieces that can be individually studied. We can focus more easily on the
smaller parts of a system and then understand the "big picture." Hence, the reasons behind
modeling can be summed up in two words:
 Readability
 Reusability
Readability
Brings clarity—ease of understanding. Understanding a system is the first step in
either building or enhancing a system. This involves knowing what a system is made up of,
how it behaves, and so forth. Modeling a system ensures that it becomes readable and, most
importantly, easy to document. Depicting a system to make it readable involves capturing the
structure of a system and the behavior of the system.
Reusability
Is the byproduct of making a system readable. After a system has been modeled to
make it easy to understand, we tend to identify similarities or redundancy, be they in terms of
functionality, features, or structure. The Unified Modeling Language, or UML, as it is
popularly known by its TLA (three-letter acronym!), is the language that can be used to
model systems and make them readable. This essentially means that UML provides the
ability to capture the characteristics of a system by using notations. UML provides a wide
27
array of simple, easy to understand notations for documenting systems based on the object-
oriented design principles. These notations are called the nine diagrams of UML.
Different languages have been used for depicting systems using object-oriented
methodology. The prominent among these were the Rumbaing methodology, the Brooch
methodology, and the Jacobson methodology. The problem was that, although each
methodology had its advantages, they were essentially disparate. Hence, if you had to work
on different projects that used any of these methodologies, you had to be well versed with
each of these methodologies. A very tall order indeed! The Unified Modeling Language is
just that. It "unifies" the design principles of each of these methodologies into a single,
standard, language that can be easily applied across the board for all object-oriented systems.
But, unlike the different methodologies that tended more to the design and detailed design of
systems, UML spans the realm of requirements, analysis, and design and, uniquely,
implementation as well. The beauty of UML lies in the fact that any of the nine diagrams of
UML can be used on an incremental basis as the need arises. Considering all these reasons, it
is no wonder that UML is considered "the" language of choice. UML does not have any
dependencies with respect to any technologies or languages. This implies that you can use
UML to model applications and systems based on either of the current hot technologies; for
example, J2EE and .NET. Every effort has been made to keep UML as a clear and concise
modeling language without being tied down to any technologies.
INTRODUCTION TO UML:
The Unified Modeling Language (UML) is a standard language for specifying,
visualizing, constructing, and documenting the artifacts of software systems, as well as for
business modeling and other non-software systems. The UML represents a collection of best
engineering practices that have proven successful in the modeling of large and complex
systems. The UML is a very important part of developing objects oriented software and the
software development process. The UML uses mostly graphical notations to express the
design of software projects. Using the UML helps project teams communicate, explore
potential designs, and validate the architectural design of the software.
28
Goals of UML
The primary goals in the design of the UML were:
 Provide users with a ready-to-use, expressive visual modeling language so they
can develop and exchange meaningful models.
 Provide extensibility and specialization mechanisms to extend the core concepts.
 Be independent of particular programming languages and development processes.
 Provide a formal basis for understanding the modeling language.
 Encourage the growth of the OO tools market.
 Support higher-level development concepts such as collaborations, frameworks,
patterns and components.
 Integrate best practices.
Why we use UML?
As the strategic value of software increases for many companies, the industry looks
for techniques to automate the production of software and to improve quality and reduce cost
and time-to-market. These techniques include component technology, visual programming,
patterns and frameworks. Businesses also seek techniques to manage the complexity of
systems as they increase in scope and scale. In particular, they recognize the need to solve
recurring architectural problems, such as physical distribution, concurrency, replication,
security, load balancing and fault tolerance. Additionally, the development for the World
Wide Web, while making some things simpler, has exacerbated these architectural problems.
The Unified Modeling Language (UML) was designed to respond to these needs.
UML Diagrams
The underlying premise of UML is that no one diagram can capture the different
elements of a system in its entirety. Hence, UML is made up of nine diagrams that can be
used to model a system at different points of time in the software life cycle of a system.
29
The nine UML diagrams are:
Use case diagram:
The use case diagram is used to identify the primary elements and processes that form
the system. The primary elements are termed as "actors" and the processes are called "use
cases." The use case diagram shows which actors interact with each use case.
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 Apart from this, each class may have certain
"attributes" that uniquely identify the class. 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. Apart from this, each class may have certain "attributes" that uniquely identify the
class.
Object diagram:
The object diagram is a special kind of class diagram. An object is an instance of a
class. This essentially means that an object represents the state of a class at a given point of
time while the system is running. The object diagram captures the state of different classes in
the system and their relationships or associations at a given point of time.
State diagram:
A state diagram, as the name suggests, represents the different states that objects in
the system undergo during their life cycle. Objects in the system change states in response to
events. In addition to this, a state diagram also captures the transition of the object's state
from an initial state to a final state in response to events affecting the system
Activity diagram:
The process flows in the system are captured in the activity diagram. Similar to a state
diagram, an activity diagram also consists of activities, actions, transitions, initial and final
states, and guard conditions.
Sequence diagram:
A sequence diagram represents the interaction between different objects in the
system. The important aspect of a sequence diagram is that it is time-ordered. This means
30
that the exact sequence of the interactions between the objects is represented step by step.
Different objects in the sequence diagram interact with each other by passing "messages".
Collaboration diagram:
A collaboration diagram groups together the interactions between different objects.
The interactions are listed as numbered interactions that help to trace the sequence of the
interactions. The collaboration diagram helps to identify all the possible interactions that
each object has with other objects.
Component diagram:
The component diagram represents the high-level parts that make up the system. This
diagram depicts, at a high level, what components form part of the system and how they are
interrelated. A component diagram depicts the components culled after the system has
undergone the development or construction phase.
Deployment diagram:
The deployment diagram captures the configuration of the runtime elements of the
application. This diagram is by far most useful when a system is built and ready to be
deployed. Now that we have an idea of the different UML diagrams, let us see if we can
somehow group together these diagrams to enable us to further understand how to use
them.
UML Diagram Classification—Static, Dynamic, and Implementation
A software system can be said to have two distinct characteristics: a structural,
"static" part and a behavioral, "dynamic" part. In addition to these two characteristics, an
additional characteristic that a software system possesses is related to implementation. Before
we categorize UML diagrams into each of these three characteristics, let us take a quick look
at exactly what these characteristics are.
Static:
The static characteristic of a system is essentially the structural aspect of the system.
The static characteristics define what parts the system is made up of.
Dynamic:
The behavioral features of a system; for example, the ways a system behaves in
response to certain events or actions are the dynamic characteristics of a system.
31
Implementation:
The implementation characteristic of a system is an entirely new feature that
describes the different elements required for deploying a system.
The UML diagrams that fall under each of these categories are:
 Static
 Use case diagram
 Class diagram
 Dynamic
 Object diagram
 State diagram
 Activity diagram
 Sequence diagram
 Collaboration diagram
 Implementation
 Component diagram
 Deployment diagram
Finally, let us take a look at the 4+1 view of UML diagrams.
Views of UML Diagrams
Considering that the UML diagrams can be used in different stages in the life cycle of
a system, let us take a look at the "4+1 view" of UML diagrams. The 4+1 view offers a
different perspective to classify and apply UML diagrams. The 4+1 view is essentially how a
system can be Each of these views represents how a system can be modeled. This will enable
us to understand where exactly the UML diagrams fit in and their applicability. viewed from
a software life cycle perspective. Each of these views represents how a system can be
modeled. This will enable us to understand where exactly the UML diagrams fit in and their
applicability.
The different views are:
Design View:
The design view of a system is the structural view of the system. This gives an idea of
what a given system is made up of. Class diagrams and object diagrams form the design view
of the system.
32
Process View:
The dynamic behavior of a system can be seen using the process view. The different
diagrams such as the state diagram, activity diagram, sequence diagram, and collaboration
diagram are used in this view.
Component View:
Component view shows the grouped modules of a given system modeled using the
component diagram.
Deployment View:
The deployment diagram of UML is used to identify the deployment modules for a
given system.
Use case View:
Finally, we have the use case view. Use case diagrams of UML are used to view a
system from this perspective as a set of discrete activities or transactions.
5.2.1 CLASS DIAGRAM:
The Class Diagram Represent the three Classes.
Login
Varchar username
Varchar password
Login()
Segmentation
Varchar segmentSize
varhcar Filepath
CalculateSegments()
FileSplitter
varchar filesSplitted
Varchar Filepath
SplitFiles()
FileJoiner
Varchar filesjoined
varchar Filepath
JoinFiles()
Fig 5.2.1: Class Diagram
33
5.2.2 USECASE DIAGRAM:
The Use Case Diagrams Represent the After Login the user was Select segments with
size and type and Split the file. After split the files join the file.
Segmentation
FileSplitter
FileJoiner
Select the size of segments
Select the size type
kilobytes or megabytes
Split the files
into segments
Join the files using
splitted files
User
Login
Fig 5.2.2: Use case Diagram
34
5.2.3 SEQUENCE DIAGRAM:
The Diagram Represents the sequence of actions.
Login Segmentation FileSplitter FileJoiner ApplicationUser
Send username
and password
Verify Username and password
Validate Username and passwordValid login or Invalid
Request for segmentation
Send size of each segments
Calcute the segments
Response for segmentation
of particular file
Request for FileSplitting
Split file based on segmentation
Split the File into Segmentation
Response for splitting
Request for file joining
Use segmentation
Join the segmentsResponse of Joining the segments
Fig 5.2.3: Sequence Diagram
35
5.2.4 Activity Diagram:
The Diagram represents the control flow of the information.
Login
Segmentation
FileSplitter FileJoiner
Validate Username
and Password
Fig 5.2.4: Activity Diagram
36
5.2.5 Data Flow Diagram Design:
Level 0
Level 1
Fig 5.2.5: Data Flow Diagrams
5.3 Database Design:
The data pertaining to proposed system is voluminous that a careful design of the
database must proceed before storing the data in the database. A database management
system provides flexibility in the storage and retrieval of data bad production of information.
The DBMS is a bridge between the application program, which determines what data are
needed and how they are processed, and the operating system of the computer, which is
responsible for placing data on the magnetic storage devices. A schema defines the database
and a subschema defines the portion of the database that a specific program will use.
Data Model:
The organization of the data is represented by a data model and identifies the logical
organization of data. In a model of real world similar things are usually grouped into classes
of object called object types.
A data model is a pattern according to which data are logically organized. It consists
of the named logical units of data and expresses the relationships among the data as
determined by the interpretation of the model of real world.
The relational data model is a formal model for representing relationships among
attributes of an entity set and the association between entity sets. In the relational data model
USER
Segmentation
USER
Segmentation
File Splitter
File Joiner
37
all attribute relationships and all associations are represented as relations. There is no
distinction even at the model level, between the different kinds or relations. Syntactically all
the relations are the same. The data model does not produce the introduction of additional
semantic information to distinguish different relations according to their properties of models
namely:
 Network Model
 Hierarchical data model
 Relational Data model
Relational data Model
The relational data model is a formal model for representing relationships among
attributes of an entity set and the association between entity sets. In the relational data model
all attribute relationships and all associations are represented as relations. There is no
distinction even at the model level, between the different kinds or relations. Syntactically all
the relations are the same. The data model does not produce the introduction of additional
semantic information to distinguish different relations according to their properties.
NORMALIZATION
Normalization theory is built around the concept of normal forms. A relation is said
to be in particular normal form if it satisfies a certain specified set of constraints.
FIRST NORMALFORM:
A relation R is in first normal form if and only if all underlying domains contained
atomic values only.
SECOND NORMALFORM:
A relation R is said to be in second normal form if and only if it is in first normal
form and every non-key attribute is fully dependent on the primary key.
THIRD NORMALFORM:
A relation R is said to be in third normal form if and only if it is in second normal
form and every non key attribute is non transitively depend on the primary key.
38
6. SCREEN SHOTS AND SAMPLE CODING
6.1 Login form
Fig 6.1: Login Form
39
6.2 Main form
Fig 6.2: Main Form
40
6.3Split form
Fig 6.3: Spilt Form
41
6.4Join form
Fig 6.4: Join Form
42
6.5: Login Validate Form
Fig 6.5: Login Validate Form
43
6.6: Main Segments validate Form
Fig 6.6: Main Segments validate Form
44
6.3 SAMPLE CODE
FileSplitter
class FileSplitter2{
private static long m_segmentSize = 600 * 1024 * 1024;
private static int blockSize = 1024;
public int SplitFile(string fileName){
FileStream fsIn = new FileStream(fileName, FileMode.Open, FileAccess.Read);
string basePath = System.IO.Path.GetDirectoryName(fileName);
int fileSize = (int) fsIn.Length;
int segments = (int) (fileSize / m_segmentSize);
int remainder = (int) (fileSize % m_segmentSize);
if (remainder > 0) segments++;
byte[] buffer = new byte[blockSize];
for (int i = 0; i < segments; i++){
FileStrea fsOut = new FileStream(fileName + "." + i, FileMode.Create,FileAccess.Write);
int blocks = (int) (m_segmentSize / blockSize);
if ( remainder > 0 && i < segments - 1){
for ( int j = 0; j < blocks ; j++){
fsIn.Read(buffer, 0, blockSize);
fsOut.Write(buffer, 0, blockSize);
}
}
else{
int finalBlocks = (int) (remainder / blockSize);
int lastBlock = (int) (remainder % blockSize);
for (int k = 0; k < finalBlocks; k++){
fsIn.Read(buffer, 0, blockSize);
fsOut.Write(buffer,0,blockSize);
}
fsIn.Read(buffer, 0, lastBlock);
fsOut.Write(buffer, 0, lastBlock);
45
}
fsOut.Flush();
fsOut.Close();
}
fsIn.Close();
return (int) segments;
}
}
FileJoiner
public class FileJoiner{
private int m_blockSize = 4096; //arbitrary
private bool m_beenCleaned = false;
public event ProgressNotifyHandler ProgressNotify;
static void Main ( string[] args ){
//TestCase2();
TestCase1();
}
public void JoinFile ( string fileName ){
this.JoinFile( fileName, null );
}
public void JoinFile ( string fileName, string outFile ){
string basePath = System.IO.Path.GetDirectoryName( fileName );
string baseFileName = Path.GetFileNameWithoutExtension( fileName );
int baseFileNumber = Utilities.GetFileNumber ( fileName );
if ( baseFileNumber != 0 ) {
throw new ArgumentException ( "Invalid starting file name - must end in '0'", "fileName");
}
ArrayList fileList = new ArrayList(System.IO.Directory.GetFiles( basePath, baseFileName
+ @".*" ));
CleanArrayList(fileList);
46
if ( outFile == null ) outFile = basePath + @"" + baseFileName;
JoinFile( (string[]) fileList.ToArray( typeof(string) ), outFile );
}
public void JoinFile ( string[] fileList, string outFile ){
fileList = CleanArrayList ( fileList );
FileInfo[] fileInfo = new FileInfo[fileList.Length];
for ( int i = 0; i < fileList.Length; i++ ){
fileInfo[i] = new FileInfo( fileList[i] );
if ( ! fileInfo[i].Exists )
throw new IOException( String.Format("file {0} doesn't exist", fileList[i] ) );
}
//open outfile exclusively
FileStream fsOut = null;
try {
fsOut = File.Open( outFile, FileMode.Create, FileAccess.Write, FileShare.None);
int bytesRead = 0;
byte[] buffer = new byte[m_blockSize];
for ( int i = 0; i < fileList.Length; i++ ){
FileStream fsIn = null;
try {
fsIn = File.Open( fileInfo[i].FullName, FileMode.Open, FileAccess.Read, FileShare.Read);
while ( 0 < (bytesRead = fsIn.Read( buffer, 0, m_blockSize )) ){
fsOut.Write( buffer, 0, bytesRead );
}
OnProgessNotify( Utilities.GetPercentComplete ( i, fileList.Length ));
}
finally {
if ( fsIn != null ) fsIn.Close();
}
}
47
fsOut.Flush();
}
finally {
if ( fsOut != null ) fsOut.Close();
OnProgessNotify( 100 );
}
}
private void CleanArrayList ( ArrayList arrList ){
if ( ! m_beenCleaned ){
for ( int i = 0; i < arrList.Count; i++) {
if ( Utilities.GetFileNumber ( (string) arrList[i] ) == -1 ) {
arrList.Remove( arrList[i] );
}
}
arrList.Sort( new FileListComparer() );
}
m_beenCleaned = true;
}
private string[] CleanArrayList ( string[] fileList ){
ArrayList arrList = new ArrayList( fileList );
CleanArrayList ( arrList );
return (string[]) arrList.ToArray( typeof(string) );
}
protected virtual void OnProgessNotify( int i){
if ( ProgressNotify != null ){
try {
ProgressNotify( i );
}
catch {}//catch & sqaush the exceptions...
}
48
}
#region Tests
static void TestCase1 (){
FileJoiner fj = new FileJoiner();
string[] files = new string[12];
files[0] = @"c:tempm.zip.0";
files[1] = @"c:tempm.zip.7";
files[2] = @"c:tempm.zip.2";
files[3] = @"c:tempm.zip.3";
files[4] = @"c:tempm.zip.1";
files[5] = @"c:tempm.zip.4";
files[6] = @"c:tempm.zip.5";
files[7] = @"c:tempm.zip.6";
files[8] = @"c:tempm.zip.8";
files[9] = @"c:tempm.zip.9";
files[10] = @"c:tempm.zip.10";
files[11] = @"c:tempm.zip.11";
string resultFile = @"c:tempout.zip";
fj.JoinFile( files, resultFile );
}
static void TestCase2 (){
FileJoiner fj = new FileJoiner();
fj.JoinFile( @"c:tempm.zip.0");
}
#endregion
}
class FileListComparer : IComparer{
#region IComparer Members
public int Compare(object x, object y){
if ( Utilities.GetFileNumber( (string)x) < Utilities.GetFileNumber( (string)y) )
49
return -1;
if ( Utilities.GetFileNumber( (string)x) > Utilities.GetFileNumber( (string)y) )
return 1;
return 0;
}
#endregion
}
50
7. TESTING
7.1 Introduction
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. The increasing visibility of software as a
system element and attendant costs associated with a software failure are motivating factors
for we planned, through testing. Testing is the process of executing a program with the intent
of finding an error. The design of tests for software and other engineered products can be as
challenging as the initial design of the product itself.
There of basically two types of testing approaches.
One is Black-Box testing – the specified function that a product has been
designed to perform, tests can be conducted that demonstrate each function is fully
operated. The other is White-Box testing – knowing the internal workings of the
product ,tests can be conducted to ensure that the internal operation of the product
performs according to specifications and all internal components have been adequately
exercised. White box and Black box testing methods have been used to test this
package. All the loop constructs have been tested for their boundary and intermediate
conditions. The test data was designed with a view to check for all the
conditions and logical decisions. Error handling has been taken care of by the use of
exception handlers.
Strategies:
Testing is a set of activities that can be planned in advanced and conducted
systematically. A strategy for software testing must accommodation low-level tests that are
necessary to verify that a small source code segment has been correctly implemented as well
as high-level tests that validate major system functions against customer requirements.
Software testing is one element of verification and validation. Verification refers to the set
of activities that ensure that software correctly implements as specific function. Validation
refers to a different set of activities that ensure that the software that has been built is
traceable to customer requirements. The objective of software testing to uncover errors. To
fulfill this objective, a series of test steps unit, integration, validation and system tests are
planned and executed. Each test step is accomplished through a series of systematic test
51
technique that assist in the design of test cases. With each testing step, the level of
abstraction with which software is considered is broadened.
7.2 Unit Testing:
Unit testing focuses verification effort on the smallest unit of software design – the
module. The unit test is always white box oriented. The tests that occur as part of unit
testing are testing the module interface, examining the local data structures, testing the
boundary conditions, executing all the independent paths and testing error-handling paths.
7.3 Integration Testing:
Integration testing is a systematic technique for constructing the program structure
while at the same time conducting tests to uncover errors associated with interfacing. Scope
of testing summarizes the specific functional, performance, and internal design
characteristics that are to be tested. It employs top-down testing and bottom-up testing
methods for this case.
7.4 White Box Testing:
The purpose of any security testing method is to ensure the robustness of a system in
the face of malicious attacks or regular software failures. White box testing is performed
based on the knowledge of how the system is implemented. White box testing includes
analyzing data flow, control flow, information flow, coding practices, and exception and
error handling within the system, to test the intended and unintended software behavior.
White box testing can be performed to validate whether code implementation follows
intended design, to validate implemented security functionality, and to uncover exploitable
vulnerabilities. White box testing requires access to the source code. Though white box
testing can be performed any time in the life cycle after the code is developed, it is a good
practice to perform white box testing during the unit testing phase.
White box testing requires knowing what makes software secure or insecure, how to
think like an attacker, and how to use different testing tools and techniques. The first step in
white box testing is to comprehend and analyze source code, so knowing what makes
software secure is a fundamental requirement. Second, to create tests that exploit software, a
tester must think like an attacker. Third, to perform testing effectively, testers need to know
the different tools and techniques available for white box testing. The three requirements do
not work in isolation, but together.
52
7.5 Black Box Testing:
Also known as functional testing. A software testing technique whereby the internal
workings of the item being tested are not known by the tester. For example, in a black box
test on software design the tester only knows the inputs and what the expected outcomes
should be and not how the program arrives at those outputs. The tester does not ever examine
the programming code and does not need any further knowledge of the program other than its
specifications.
The advantages of this type of testing include:
 The test is unbiased because the designer and the tester are independent of each other.
 The tester does not need knowledge of any specific programming languages.
 The test is done from the point of view of the user, not the designer.
 Test cases can be designed as soon as the specifications are complete.
7.6 System Testing:
System testing validates software once it has been incorporated into a larger system.
Software is incorporated with other system elements and a series of system integration and
validation tests are conducted. System testing is actually a series of different test whose
primary purpose is to fully exercise the computer- based system. Once the system has been
developed it has to be tested. In the present system we have to take care of valid property
and assessment numbers i.e. there should not exist any duplicate number in each case. Care
should be taken that the appropriate data is retrieved in response to the queries.
VALIDATION:
The terms verification and validations are used interchangeably we will describe both
these methods. Verification is the process of determining whether or not the products of
given phase of software development fulfill the specifications established in the previous
phase. These activities include proving and reviews. Validation is the process of evaluating
the software at the end of software development process, we find how well the software
satisfies the requirement specifications.
The requirement of the software starts with requirement document and requirement
specifications without errors and specifying client’s requirements correctly. The validation
process of evaluating the developed system at the end is to ensure that it must satisfy all the
53
necessary requirement specification. Requirement verification also checks the factors as
completeness, consistency and testability of the requirements.
As we all know that testing plays a crucial role in evaluation of the system. That is in
order to know whether the system working properly or not. In other words we can say that in
order to know whether the system which we have developed will give the expected output or
not can be know by doing the testing. Testing phase comes after coding phase. Usually
organizations or the software developing companies use different types of testing strategies
in order to evaluate the performance of a system. Also it gives the output which provides
clear information regarding the project or system, whether the project which we have
developed will going to give the expected output or not , that is whether the system fails or
succeed in the market.
We have many types of testing such as unit testing, integration testing, system testing,
black box testing, white box testing and regression analysis testing and so on. In our project
Secure Cryptographic messaging we are using unit testing, integration testing, and system
testing. Unit testing is the one in which each entity or objects in the module will be tested.
Once the entity is evaluated to be tested successfully than will move further with the another
kind of testing. That’s is once unit testing is done with all modules, than integration testing
will be done, on the every module or on group of two or three modules. Finally system
testing will be done , in which all the modules of a system will be tested at once , there by
getting the overall performance of a system that means we can conclude the result on the
entire system whether our system is working as per our requirements or as per our
expectations or not. The advantage of developing or testing modules wise is that, we can
reduce the effort, cost and time. Because if we are testing module wise than we can know
clearly which module is working fine and which module is not working, thereby the module
which is not working perfectly can be evaluated once again by going necessary modifications
unlike the system being tested on a whole, where if any errors comes in than the entire
system need to be tested or evaluated which consumes more effort, time and cost.
54
7.7 Test Cases:
Test Case 1:
FUNCTION EXPECTED
RESULTS
ACTUAL
RESULTS
LOW
PRIORITY
HIGH
PRIOTY
Segmentation
Should get the
file size,
depending upon
which will
decide the no of
segments.
Success -------- yes
Table7.7.1: Test Case1
Test Case 2:
FUNCTION EXPECTED
RESULTS
ACTUAL
RESULTS
LOW
PRIORITY
HIGH
PRIOTY
File Splitter
If we select file
splitter, we need
to split the
original files
based on
segmentation.
Success --------- Yes
File Joiner
The splitted files
can be re joined
again to obtain
the original file.
The operation
executed success.
Yes
Table7.7.2: Test Case2
55
8. Implementation
8.1 Running Application:
In order to run the web application the steps we need to follow are listed below:
1) Open the visual studio IDE (Integrated Development Environment) that is Visual
Studio2008 or other version.
Fig8.1: Running Application
56
2) Click on file -> open -> browse the folder in which the project is there then select the
Solution file of the project.
Fig 8.2: Open Application Project
57
3) Click on open option. Than in the solution explorer you will find all the forms and classes
that are related to the project.
Fig 8.3: View Project
58
4) Run the application by pressing F5 or debugging button.
Fig 8.4: Running Project
59
CONCLUSION
Using our application, splitting of file will be for all types of files like text, document,
image, audio, video, pdf, etc. The advantage of splitting the file is that, we can upload or
download the splitted file easily, when there is a restriction in size of the file to be uploaded
or downloaded.
 Small and lightweight, less than a megabyte in size, works fast.
 Splits large files at adjustable sizes, enter value in KB or MB.
 Files can also be joined, uses the .001, .002, .003 format.
 Can be portable, run it from the USB flash drive and split files.
60
FUTURE ENHANCEMENT
All most process of the proposed system has been completed. Each and Every phase
in this project is developed keeping the goals in mind as per as an concerned. Every project
has its own limitations. Similarly this project also has own limitations and when can be
upgraded.
The future enhancement of our project is we can split very large files which of TB
size. We can also use conversions from one file format to another file format (Ex: Mp3 to
WAV) converter. We can also provide option for splitting multiple documents.
create one shortcut (a class or a shell script or an xml descriptive file) after a
split to allows to do the join in one click and checksum verification, keep name of original
file, etc.
 Add a zip command to prepare backup of multiple files or directory.
 Add web start links to this page.
 Allows saving directly on disks.
 Command line execution.
61
REFERENCES
The following books were referred during the analysis and execution phase of the project:
SOFTWARE ENGINEERING
 By Roger S. Pressman,
 MSDN 2002,
 By Microsoft.
 Jeff Poise (2002). Programming Microsoft .NET. Microsoft Press.

Contenu connexe

Tendances

Tools for Software Verification and Validation
Tools for Software Verification and ValidationTools for Software Verification and Validation
Tools for Software Verification and Validation
aliraza786
 
Online examination system
Online examination systemOnline examination system
Online examination system
Rahul Khanwani
 
15.project attendence managemnt system
15.project attendence managemnt system15.project attendence managemnt system
15.project attendence managemnt system
Haseeb Nasir
 

Tendances (20)

Tools for Software Verification and Validation
Tools for Software Verification and ValidationTools for Software Verification and Validation
Tools for Software Verification and Validation
 
Chat Application - Requirements Analysis & Design
Chat Application - Requirements Analysis & DesignChat Application - Requirements Analysis & Design
Chat Application - Requirements Analysis & Design
 
Logical Design and Conceptual Database Design
Logical Design and Conceptual Database DesignLogical Design and Conceptual Database Design
Logical Design and Conceptual Database Design
 
Student portal system application -Project Book
Student portal system application -Project BookStudent portal system application -Project Book
Student portal system application -Project Book
 
Quiz app (android) Documentation
Quiz app (android) DocumentationQuiz app (android) Documentation
Quiz app (android) Documentation
 
Library Management System SRS
Library Management System SRSLibrary Management System SRS
Library Management System SRS
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
Online quiz system
Online quiz systemOnline quiz system
Online quiz system
 
Student Registration in a University
Student Registration in a UniversityStudent Registration in a University
Student Registration in a University
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Airline Analysis of Data Using Hadoop
Airline Analysis of Data Using HadoopAirline Analysis of Data Using Hadoop
Airline Analysis of Data Using Hadoop
 
e-learning project
e-learning projecte-learning project
e-learning project
 
15.project attendence managemnt system
15.project attendence managemnt system15.project attendence managemnt system
15.project attendence managemnt system
 
A Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For BeginerA Simple Introduction To CMMI For Beginer
A Simple Introduction To CMMI For Beginer
 
Capella Days 2021 | How I pack my suitcase
Capella Days 2021 | How I pack my suitcaseCapella Days 2021 | How I pack my suitcase
Capella Days 2021 | How I pack my suitcase
 
Blood bank ppt
Blood bank pptBlood bank ppt
Blood bank ppt
 
Social Networking Site Documentation
Social Networking Site Documentation Social Networking Site Documentation
Social Networking Site Documentation
 
Online Attendance System
Online Attendance SystemOnline Attendance System
Online Attendance System
 
Timetable management system(chapter 3)
Timetable management system(chapter 3)Timetable management system(chapter 3)
Timetable management system(chapter 3)
 
Online Library Mangement System
Online Library Mangement SystemOnline Library Mangement System
Online Library Mangement System
 

En vedette (8)

File splitter and joiner
File splitter and joinerFile splitter and joiner
File splitter and joiner
 
File Splitter Table of contents
File Splitter Table of contents File Splitter Table of contents
File Splitter Table of contents
 
Mobile GPS Tracking
Mobile GPS TrackingMobile GPS Tracking
Mobile GPS Tracking
 
Data security using advanced encryption standard aes in reconfigurable hard...
Data security using advanced encryption standard  aes  in reconfigurable hard...Data security using advanced encryption standard  aes  in reconfigurable hard...
Data security using advanced encryption standard aes in reconfigurable hard...
 
Online shopping
Online shoppingOnline shopping
Online shopping
 
Online shopping report-6 month project
Online shopping report-6 month projectOnline shopping report-6 month project
Online shopping report-6 month project
 
Ns 2 Network Simulator An Introduction
Ns 2 Network Simulator An IntroductionNs 2 Network Simulator An Introduction
Ns 2 Network Simulator An Introduction
 
Library mangement system project srs documentation.doc
Library mangement system project srs documentation.docLibrary mangement system project srs documentation.doc
Library mangement system project srs documentation.doc
 

Similaire à FILE SPLITTER AND JOINER

CESSI Digital Library Case Study Eng
CESSI Digital Library Case Study EngCESSI Digital Library Case Study Eng
CESSI Digital Library Case Study Eng
atolomei
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
Amit Kulkarni
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
Amit Kulkarni
 
File compression sunzip (huffman algorithm)
File compression sunzip (huffman algorithm)File compression sunzip (huffman algorithm)
File compression sunzip (huffman algorithm)
mini_61
 
Exercises portfolio-Digital Curation Tools (IS40620)
Exercises portfolio-Digital Curation Tools (IS40620)Exercises portfolio-Digital Curation Tools (IS40620)
Exercises portfolio-Digital Curation Tools (IS40620)
softwaresatish
 
Assessment item 1 File Systems and Advanced Scripting .docx
Assessment item 1 File Systems and Advanced Scripting .docxAssessment item 1 File Systems and Advanced Scripting .docx
Assessment item 1 File Systems and Advanced Scripting .docx
davezstarr61655
 
WatsonBruce Ikadega sample 2
WatsonBruce Ikadega sample 2WatsonBruce Ikadega sample 2
WatsonBruce Ikadega sample 2
Bruce Watson
 
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docxISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
christiandean12115
 

Similaire à FILE SPLITTER AND JOINER (20)

Google File System
Google File SystemGoogle File System
Google File System
 
CESSI Digital Library Case Study Eng
CESSI Digital Library Case Study EngCESSI Digital Library Case Study Eng
CESSI Digital Library Case Study Eng
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
 
Online job portal management system..pdf
Online job portal management system..pdfOnline job portal management system..pdf
Online job portal management system..pdf
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in c
 
191
191191
191
 
File compression sunzip (huffman algorithm)
File compression sunzip (huffman algorithm)File compression sunzip (huffman algorithm)
File compression sunzip (huffman algorithm)
 
Exercises portfolio-Digital Curation Tools (IS40620)
Exercises portfolio-Digital Curation Tools (IS40620)Exercises portfolio-Digital Curation Tools (IS40620)
Exercises portfolio-Digital Curation Tools (IS40620)
 
Documentation
DocumentationDocumentation
Documentation
 
Document Repository Management
Document Repository ManagementDocument Repository Management
Document Repository Management
 
Lesson 2
Lesson 2Lesson 2
Lesson 2
 
Lab 2 software
Lab 2   softwareLab 2   software
Lab 2 software
 
Document Management System: Redesign Proposal
Document Management System: Redesign ProposalDocument Management System: Redesign Proposal
Document Management System: Redesign Proposal
 
Cloud Storage System like Dropbox
Cloud Storage System like DropboxCloud Storage System like Dropbox
Cloud Storage System like Dropbox
 
Assessment item 1 File Systems and Advanced Scripting .docx
Assessment item 1 File Systems and Advanced Scripting .docxAssessment item 1 File Systems and Advanced Scripting .docx
Assessment item 1 File Systems and Advanced Scripting .docx
 
WatsonBruce Ikadega sample 2
WatsonBruce Ikadega sample 2WatsonBruce Ikadega sample 2
WatsonBruce Ikadega sample 2
 
ESG - HDS HCP Anywhere Easy, Secure, On-Premises File Sharing
ESG - HDS HCP Anywhere Easy, Secure, On-Premises File SharingESG - HDS HCP Anywhere Easy, Secure, On-Premises File Sharing
ESG - HDS HCP Anywhere Easy, Secure, On-Premises File Sharing
 
Syncitall
SyncitallSyncitall
Syncitall
 
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docxISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
ISSC340_Presentation_Ronald_Averion.pptxNAME Ronald Averi.docx
 

Plus de Rajesh Roky

INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILEINTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
Rajesh Roky
 
The main purpose of the project is to manage the supermarket efficiently (rep...
The main purpose of the project is to manage the supermarket efficiently (rep...The main purpose of the project is to manage the supermarket efficiently (rep...
The main purpose of the project is to manage the supermarket efficiently (rep...
Rajesh Roky
 
Rainbow technology-ppt
Rainbow technology-pptRainbow technology-ppt
Rainbow technology-ppt
Rajesh Roky
 

Plus de Rajesh Roky (6)

11. jdbc
11. jdbc11. jdbc
11. jdbc
 
Servlet
ServletServlet
Servlet
 
wrapper classes
wrapper classeswrapper classes
wrapper classes
 
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILEINTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
 
The main purpose of the project is to manage the supermarket efficiently (rep...
The main purpose of the project is to manage the supermarket efficiently (rep...The main purpose of the project is to manage the supermarket efficiently (rep...
The main purpose of the project is to manage the supermarket efficiently (rep...
 
Rainbow technology-ppt
Rainbow technology-pptRainbow technology-ppt
Rainbow technology-ppt
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 

FILE SPLITTER AND JOINER

  • 1. 1 1. INTRODUCTION File splitter basically used to split the large files which are not possible to upload or download, when we have to file size restrictions imposed by the application. For example, if we need to upload a file say 30 MB using Gmail, than it might not be possible as Gmail restrict the file size less than 30MB, so if we use our tool we can split the file and send the splitted parts by uploading it and can retain the original file by joining the splitted parts. Likewise we can use our application in other fields as well; where we need the file (can be audio, video, text, rar etc). Using our tool, which is a windows application, one need to decide size for each segments, than need to split the original file. On joining he/she need to select the first and should click on join to get the original file. Existing System In the existing system, splitting of file will be limited only to some file formats. Proposed system In the proposed system, splitting of file will be for all types of files like text, document, image, audio, video, pdf, etc. The advantage of splitting the file is that, we can upload or download the splitted file easily, when there is a restriction in size of the file to be uploaded or downloaded. Overall description By using our tool file splitter one can easily split the file into smaller segments, which in turn can be joined to retrieve the original file. Will have three modules one for segmentation, other for splitted the file into segments and other for joining the splitted parts to obtain the original file. In the segmentation we need to decide the how many segments we need to have for a file , and will have split and join option, using split we can divide the file into required segments and than can join the segments to obtain the original file. Modules of the Product Segmentation: This module basically deals with segmenting the original file into the number of segments based on the size specified for each segment. For example if file size is 4000kb, and if each segment size (in kb/mb) specified is 400, than 10(4000/400) segments will be generated.
  • 2. 2 File Splitter Module: This module take care of splitting the file into segments specified in the segmentation module. Based on of segments to be generated, this module splits the original file into segments. File Joining Module: It is used to join the files which are splitted into the segments in the above module. FEASIBILITY STUDY TECHINICAL FEASIBILITY: Evaluating the technical feasibility is the trickiest part of a feasibility study. This is because, at this point in time, not too many detailed design of the system, making it difficult to access issues like performance, costs on (on account of the kind of technology to be deployed) etc. A number of issues have to be considered while doing a technical analysis. 1. Understand the different technologies involved in the proposed system: Before commencing the project, we have to be very clear about what are the Technologies that are to be required for the development of the new system. 2. Find out whether the organization currently possesses the required technologies: Is the required technology available with the organization? If so is the capacity sufficient? For instance – ―Will the current printer be able to handle the new reports and forms required for the new system?‖ OPERATIONAL FEASIBILITY: Proposed projects are beneficial only if they can be turned into information systems that will meet the organizations operating requirements. Simply stated, this test of feasibility asks if the system will work when it is developed and installed. Are there major barriers to Implementation? Here are questions that will help test the operational feasibility of a project:  Is there sufficient support for the project from management from users? If The current system is well liked and used to the extent that persons will not be Able to see reasons for change, there may be resistance.  Are the current business methods acceptable to the user? If they are not,
  • 3. 3 Users may welcome a change that will bring about a more operational and useful systems.  Have the user been involved in the planning and development of the project? Early involvement reduces the chances of resistance to the system and in General and increases the likelihood of successful project. Since the proposed system was to help reduce the hardships encountered In the existing manual system, the new system was considered to be operational feasible. ECONOMIC FEASIBILITY: Economic feasibility attempts 2 weigh the costs of developing and implementing a new system, against the benefits that would accrue from having the new system in place. This feasibility study gives the top management the economic justification for the new system. A simple economic analysis which gives the actual comparison of costs and benefits are much more meaningful in this case. In addition, this proves to be a useful point of reference to compare actual costs as the project progresses. There could be various types of intangible benefits on account of automation. These could include increased customer satisfaction, improvement in product quality better decision making timeliness of information, expediting activities, improved accuracy of operations, better documentation and record keeping, faster retrieval of information, better employee morale.
  • 4. 4 2. PROBLEM DEFINATION AND SCOPE OF THE PROJECT 2.1 Purpose The purpose of developing our tool is to splits the larger files which can’t be uploaded or downloaded using some application like Gmail, yahoo mail, etc as per file size restrictions imposed by this application. In order to support larger file uploads and downloads we will use our tool, using which one can easily upload or download splitted files. 2.2 Scope We can use our application or tool to split the files types such as audio, video, text, rar etc. so that splitted files can be uploaded or downloaded easily. 2.3 Goals: The main aim of the project is to design software for splitting of any type of files into segments and reassembling them. The project provides compression of file before splitting and compressed file is used for splitting. In already existing software they provide only some file types. We design software to split all types of files like text, document, image, audio, video, pdf etc. The files splitted portion will be in non-readable format and parts can be joined back to get the original file. 2.4 Features of our project (Advantages) 1) Our project assists to the users in splitting the larger files into smaller splitted files, which can easily be uploaded or downloaded. 2) Our project or tool is more user friendly, and can be used easily for file splitting and joining and Our tool can be used for splitting of video files, audio files, rar files which may not available in existing system. 2.5 TECHNOLOGIES: 2.5.1 .net description: The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The .NET Framework is designed to fulfill the following objectives:  To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.
  • 5. 5  To provide a code-execution environment that minimizes software deployment and versioning conflicts. Fig 2.5.1: .NET Frame work To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party.  To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.  To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.  To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code. The .NET Framework has two main components: the common language runtime and the .NET Framework class library. The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does
  • 6. 6 not target the runtime is known as unmanaged code. The class library, the other main component of the .NET Framework, is a comprehensive, object-oriented collection of reusable types that you can use to develop applications ranging from traditional command- line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services. The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts. For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET works directly with the runtime to enable Web Forms applications and XML Web services, both of which are discussed later in this topic. Internet Explorer is an example of an unmanaged application that hosts the runtime (in the form of a MIME type extension). Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Hosting the runtime in this way makes managed mobile code (similar to Microsoft® ActiveX® controls) possible, but with significant improvements that only managed code can offer, such as semi-trusted execution and secure isolated file storage. The following illustration shows the relationship of the common language runtime and the class library to your applications and to the overall system. The illustration also shows how managed code operates within a larger architecture. Features of the Common Language Runtime The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime. With regards to security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it is being used in the same active application.
  • 7. 7 The runtime enforces code access security. For example, users can trust that an executable embedded in a Web page can play an animation on screen or sing a song, but cannot access their personal data, file system, or network. The security features of the runtime thus enable legitimate Internet-deployed software to be exceptionally feature rich. The runtime also enforces code robustness by implementing a strict type- and code- verification infrastructure called the common type system (CTS). The CTS ensures that all managed code is self-describing. The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety. In addition, the managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common application errors, memory leaks and invalid memory references. The runtime also accelerates developer productivity. For example, programmers can write applications in their development language of choice, yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing applications. While the runtime is designed for the software of the future, it also supports software of today and yesterday. Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs. The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it is executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance. Finally, the runtime can be hosted by high-performance, server-side applications, such as Microsoft® SQL Server™ and Internet Information Services (IIS). This infrastructure enables you to use managed code to write your business
  • 8. 8 logic, while still enjoying the superior performance of the industry's best enterprise servers that support runtime hosting. .NET Framework Class Library The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code can derive functionality. This not only makes the .NET Framework types easy to use, but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components can integrate seamlessly with classes in the .NET Framework. For example, the .NET Framework collection classes implement a set of interfaces that you can use to develop your own collection classes. Your collection classes will blend seamlessly with the classes in the .NET Framework. As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. For example, you can use the .NET Framework to develop the following types of applications and services:  Console applications.  Scripted or hosted applications.  Windows GUI applications (Windows Forms).  ASP.NET applications.  XML Web services.  Windows services. For example, the Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. If you write an ASP.NET Web Form application, you can use the Web Forms classes. Client Application Development Client applications are the closest to a traditional style of application in Windows- based programming. These are the types of applications that display windows or forms on the desktop, enabling a user to perform a task. Client applications include applications such as word processors and spreadsheets, as well as custom business applications such as data-entry
  • 9. 9 tools, reporting tools, and so on. Client applications usually employ windows, menus, buttons, and other GUI elements, and they likely access local resources such as the file system and peripherals such as printers. Another kind of client application is the traditional ActiveX control (now replaced by the managed Windows Forms control) deployed over the Internet as a Web page. This application is much like other client applications: it is executed natively, has access to local resources, and includes graphical elements. In the past, developers created such applications using C/C++ in conjunction with the Microsoft Foundation Classes (MFC) or with a rapid application development (RAD) environment such as Microsoft® Visual Basic®. The .NET Framework incorporates aspects of these existing products into a single, consistent development environment that drastically simplifies the development of client applications. The Windows Forms classes contained in the .NET Framework are designed to be used for GUI development. You can easily create command windows, buttons, menus, toolbars, and other screen elements with the flexibility necessary to accommodate shifting business needs. For example, the .NET Framework provides simple properties to adjust visual attributes associated with forms. In some cases the underlying operating system does not support changing these attributes directly, and in these cases the .NET Framework automatically recreates the forms. This is one of many ways in which the .NET Framework integrates the developer interface, making coding simpler and more consistent. Unlike ActiveX controls, Windows Forms controls have semi-trusted access to a user's computer. This means that binary or natively executing code can access some of the resources on the user's system (such as GUI elements and limited file access) without being able to access or compromise other resources. Because of code access security, many applications that once needed to be installed on a user's system can now be safely deployed through the Web. Your applications can implement the features of a local application while being deployed like a Web page. Server Application Development Server-side applications in the managed world are implemented through runtime hosts. Unmanaged applications host the common language runtime, which allows your custom managed code to control the behavior of the server. This model provides you with all
  • 10. 10 the features of the common language runtime and class library while gaining the performance and scalability of the host server. The following illustration shows a basic network schema with managed code running in different server environments. Servers such as IIS and SQL Server can perform standard operations while your application logic executes through the managed code. Server-side managed code ASP.NET is the hosting environment that enables developers to use the .NET Framework to target Web-based applications. However, ASP.NET is more than just a runtime host; it is a complete architecture for developing Web sites and Internet-distributed objects using managed code. Both Web Forms and XML Web services use IIS and ASP.NET as the publishing mechanism for applications, and both have a collection of supporting classes in the .NET Framework. XML Web services, an important evolution in Web-based technology, are distributed, server-side application components similar to common Web sites. However, unlike Web-based applications, XML Web services components have no UI and are not targeted for browsers such as Internet Explorer and Netscape Navigator. Instead, XML Web services consist of reusable software components designed to be consumed by other applications, such as traditional client applications, Web-based applications, or even other XML Web services. As a result, XML Web services technology is rapidly moving application development and deployment into the highly distributed environment of the Internet. If you have used earlier versions of ASP technology, you will immediately notice the improvements that ASP.NET and Web Forms offers. For example, you can develop Web Forms pages in any language that supports the .NET Framework. In addition, your code no longer needs to share the same file with your HTTP text (although it can continue to do so if you prefer). Web Forms pages execute in native machine language because, like any other managed application, they take full advantage of the runtime. In contrast, unmanaged ASP pages are always scripted and interpreted. ASP.NET pages are faster, more functional, and easier to develop than unmanaged ASP pages because they interact with the runtime like any managed application. The .NET Framework also provides a collection of classes and tools to aid in development and consumption of XML Web services applications. XML Web services are built on standards such as SOAP (a remote procedure-call protocol), XML (an extensible
  • 11. 11 data format), and WSDL ( the Web Services Description Language). The .NET Framework is built on these standards to promote interoperability with non-Microsoft solutions. For example, the Web Services Description Language tool included with the .NET Framework SDK can query an XML Web service published on the Web, parse its WSDL description, and produce C# or Visual Basic source code that your application can use to become a client of the XML Web service. The source code can create classes derived from classes in the class library that handle all the underlying communication using SOAP and XML parsing. Although you can use the class library to consume XML Web services directly, the Web Services Description Language tool and the other tools contained in the SDK facilitate your development efforts with the .NET Framework. If you develop and publish your own XML Web service, the .NET Framework provides a set of classes that conform to all the underlying communication standards, such as SOAP, WSDL, and XML. Using those classes enables you to focus on the logic of your service, without concerning yourself with the communications infrastructure required by distributed software development. Finally, like Web Forms pages in the managed environment, your XML Web service will run with the speed of native machine language using the scalable communication of IIS. 2.5.2 Active Server Pages.NET ASP.NET is a programming framework built on the common language runtime that can be used on a server to build powerful Web applications. ASP.NET offers several important advantages over previous Web development models: Enhanced Performance. ASP.NET is compiled common language runtime code running on the server. Unlike its interpreted predecessors, ASP.NET can take advantage of early binding, just-in-time compilation, native optimization, and caching services right out of the box. This amounts to dramatically better performance before you ever write a line of code. World-Class Tool Support. The ASP.NET framework is complemented by a rich toolbox and designer in the Visual Studio integrated development environment. WYSIWYG editing, drag-and-drop server controls, and automatic deployment are just a few of the features this powerful tool provides.
  • 12. 12 Power and Flexibility. Because ASP.NET is based on the common language runtime, the power and flexibility of that entire platform is available to Web application developers. The .NET Framework class library, Messaging, and Data Access solutions are all seamlessly accessible from the Web. ASP.NET is also language-independent, so you can choose the language that best applies to your application or partition your application across many languages. Further, common language runtime interoperability guarantees that your existing investment in COM- based development is preserved when migrating to ASP.NET. Simplicity. ASP.NET makes it easy to perform common tasks, from simple form submission and client authentication to deployment and site configuration. For example, the ASP.NET page framework allows you to build user interfaces that cleanly separate application logic from presentation code and to handle events in a simple, Visual Basic - like forms processing model. Additionally, the common language runtime simplifies development, with managed code services such as automatic reference counting and garbage collection. Manageability. ASP.NET employs a text-based, hierarchical configuration system, which simplifies applying settings to your server environment and Web applications. Because configuration information is stored as plain text, new settings may be applied without the aid of local administration tools. This "zero local administration" philosophy extends to deploying ASP.NET Framework applications as well. An ASP.NET Framework application is deployed to a server simply by copying the necessary files to the server. No server restart is required, even to deploy or replace running compiled code. Scalability and Availability. ASP.NET has been designed with scalability in mind, with features specifically tailored to improve performance in clustered and multiprocessor environments. Further, processes are closely monitored and managed by the ASP.NET runtime, so that if one misbehaves (leaks, deadlocks), a new process can be created in its place, which helps keep your application constantly available to handle requests.
  • 13. 13 Customizability and Extensibility. ASP.NET delivers a well-factored architecture that allows developers to "plug-in" their code at the appropriate level. In fact, it is possible to extend or replace any subcomponent of the ASP.NET runtime with your own custom-written component. Implementing custom authentication or state services has never been easier. Security. With built in Windows authentication and per-application configuration, you can be assured that your applications are secure. Language Support The Microsoft .NET Platform currently offers built-in support for three languages: C#, Visual Basic, and JScript.
  • 14. 14 2.5.3 ACTIVE X DATA OBJECTS.NET ADO.NET ARCHITECHTURE Fig2.5.3: Ado.net Architecture DATA STORE ADO.NET is an extension of the ADO data access model which consist of only the connected architecture. The Microsoft organization has realized the data related operations and have studied and analyzed different data related technologies among which they found ADO to be interesting , later on they extended the features of the ADO and defined own data related technology by refining the ADO and hence given the name as ADO.Net. The Microsoft organization, grouped some set of namespaces which can operates on data, and put together into technology called ADO.NET. The ADO.Net technology enhances the features DATASETDATA PROVIDER CONNECTION COMMAND DATA READER DATA ADAPTER ORACLE ACEESSMSSQL DataTable1 DataRow/DataColumn D DATA RELATION DataTable2 XML OUTPUT DATAVIEW DATAVIEW
  • 15. 15 of the ADO, which consist of only connected architecture where as in ADO.NET they have introduces a disconnected architecture. The connected architecture important feature is the data provider, which consists of the four important objects namely connection, command, data reader and data adapter. The connection object provides the connection to the data store nothing but to the back end database servers. The connection class consists of default constructors and parameterized constructors. The constructor takes arguments, which provides the connection to the back end servers. The arguments that the connection class constructors takes are Data Source , Database and security. The first parameter Data Source represents the server name to which our application needs to be connected. That’s means from the available servers we need to select the particular data base server which can be done through the data source parameter. The second parameter indicates the database to which we are going to connect, that’s means in that particular database server, to which data base we want to connect can be done through the data base parameter. The third parameter security indicates, the security provided for the database server. If the server is running under windows authentication mode , than will use integrated security to be true that’s means no need to specify the user name and password explicitly why because the system will takes the prebuilt username and password which has been set for the system. On the other hand if the back end server is running under sql authentication mode that will specify the username and password which has be set during the installation of the server, using the security parameter we can connect to the backend database server. Also sqlconnection class consists of the methods such as open and close. The open method is used to open the connection to the database server. Whereas the close method is used to disconnect the connection from the server. Once the connection is opened while in the application use, the connection should be closed when the application terminates. Another object of the data provider is the command object, using which one can write the queries in order to manipulate data in the database. Once the connection is opened, the sqlcommand class makes use of the connection and will operate on the database. The sqlcommand class will do manipulation using the queries or the stored procedures. Which has to be decided by the programmers whether they want to use the queries or the stored
  • 16. 16 procedures using the method command type? If we want to use queries than we need to select the text query or else we need to select stored procedure option from the command type method. Command object consists of three methods namely execute non query, execute reader and execute scalar. The execute non query will returns the integer values as an output which indicates how many records have been updated, or modified etc. the second method execute reader returns the complete records been affected by the operations , whereas execute scalar returns the first row first column value remaining will be neglected. The third object in the connected architecture is the data reader, which reads the data in a forward only mode, that’s means, its retrieves the data from the data base server and forwards it to the application. The object is the data adapter which acts like an interface or bridge between the connected architecture and disconnected architecture. In the disconnected architecture the important feature is the dataset. It’s a collection of data tables and data rows and the data tables will be linked using the data relations. When the dataset need to be filled, its request to the data adapter which in turn fills the dataset by making use of fill method of data adapter. Features of ADO.NET are as follows:  ADO.NET is the next evolution of ADO for the .Net Framework.  ADO.NET was created with n-Tier, statelessness and XML in the forefront. Two new objects, the Dataset and Data Adapter, are provided for these scenarios.  ADO.NET can be used to get data from a stream, or to store data in a cache for updates.  There is a lot more information about ADO.NET in the documentation.  Remember, you can execute a command directly against the database in order to do inserts, updates, and deletes. You don't need to first put data into a Dataset in order to insert, update, or delete it.  Also, you can use a Dataset to bind to the data, move through the data, and navigate data relationships
  • 17. 17 2.5.4 Sql server description: Microsoft SQL Server is a Structured Query Language (SQL) based, client/server relational database. Each of these terms describes a fundamental part of the architecture of SQL Server. Database A database is similar to a data file in that it is a storage place for data. Like a data file, a database does not present information directly to a user; the user runs an application that accesses data from the database and presents it to the user in an understandable format.  A database typically has two components: the files holding the physical database and the database management system (DBMS) software that applications use to access data. The DBMS is responsible for enforcing the database structure, including:  Maintaining the relationships between data in the database.  Ensuring that data is stored correctly and that the rules defining data relationships are not violated.  Recovering all data to a point of known consistency in case of system failures. Client/Server In a client/server system, the server is a relatively large computer in a central location that manages a resource used by many people. When individuals need to use the resource, they connect over the network from their computers, or clients, to the server. Examples of servers are: In a client/server database architecture, the database files and DBMS software reside on a server. A communications component is provided so applications can run on separate clients and communicate to the database server over a network. The SQL Server communication component also allows communication between an application running on the server and SQL Server. Server applications are usually capable of working with several clients at the same time. SQL Server can work with thousands of client applications simultaneously. The server has features to prevent the logical problems that occur if a user tries to read or modify data currently being used by others. While SQL Server is designed to work as a server in a client/server network, it is also capable of working as a stand-alone database directly on the client. The scalability and ease-of-use features of SQL Server allow it to work efficiently on a client without consuming too many resources.
  • 18. 18 2.5.5 Structured Query Language (SQL) To work with data in a database, you must use a set of commands and statements (language) defined by the DBMS software. There are several different languages that can be used with relational databases; the most common is SQL. Both the American National Standards Institute (ANSI) and the International Standards Organization (ISO) have defined standards for SQL. Most modern DBMS products support the Entry Level of SQL-92, the latest SQL standard (published in 1992). SQL Server Features Microsoft SQL Server supports a set of features that result in the following benefits: Ease of installation, deployment, and use SQL Server includes a set of administrative and development tools that improve your ability to install, deploy, manage, and use SQL Server across several sites. Scalability The same database engine can be used across platforms ranging from laptop computers running Microsoft Windows® 95/98 to large, multiprocessor servers running Microsoft Windows NT®, Enterprise Edition. Data warehousing SQL Server includes tools for extracting and analyzing summary data for online analytical processing (OLAP). SQL Server also includes tools for visually designing databases and analyzing data using English-based questions. System integration with other server software SQL Server integrates with e-mail, the Internet, and Windows. Databases A database in Microsoft SQL Server consists of a collection of tables that contain data, and other objects, such as views, indexes, stored procedures, and triggers, defined to support activities performed with the data. The data stored in a database is usually related to a particular subject or process, such as inventory information for a manufacturing warehouse. SQL Server can support many databases, and each database can store either interrelated data or data unrelated to that in the other databases. For example, a server can have one database that stores personnel data and another that stores product-related data. Alternatively, one database can store current customer order data, and another; related database can store
  • 19. 19 historical customer orders that are used for yearly reporting. Before you create a database, it is important to understand the parts of a database and how to design these parts to ensure that the database performs well after it is implemented. Entity Integrity Constraint: Entity Integrity Constraints are of two types:  Unique Constraints  Primary Key Constraints The unique constraints designate a column or a group of columns as a unique key. The constraint allows only unique values to be stored in the column Sql Server rejects duplication of records when the unique key constraint is used. The primary key constraint is similar to the unique key constraint. The primary key constraint just like the former avoids duplication of values. Its needs it best felt when a relation has to be set between tables, because in addition to prevent in duplication it also does not allow null values. Referential Integrity Constraint: The Referential Integrity Constraint enforces relationship between tables. It designates a column or a combination of columns as a foreign key. The foreign key establishes a relationship with a specified primary or unique key in another table, called the referenced key. In this relationship, the table containing the foreign key is called a child table and the table containing the referenced key is called the parent table.
  • 20. 20 3. SOFTWARE PROJECT MANAGEMENT PLAN (SPMP) 3.1 Development Methodologies-Process Model When we defining and constructing credit card validation systems will uncover many requirements that may be difficult at outset. Instead knowledge of the system and requirements will grow as work progress the whole software engineering process is designed to uncover details and incompatibilities in the requirements that may not be obvious to customer and bankers at outset. Several cases or increments of software development additional increases will be build and delivered in successive increment system normally involves as are deliver successive new versions, the development of first version from sketch called green field development is special case of incremental development the development of first increment is an important activity series we establish the architectural base that must last for the entire system’s life time. 3.2 Project Development Life Cycle 3.2.1 WATERFALL LIFECYCLE MODEL: Waterfall model states that the phases (analysis, design, and coding, testing, support) are systematized in a linear order and each phase should accomplished entirely earlier of the next phase begins. In this way the step by step phase initially analyzing phase is completed and that output takes place at the end of analyze phase after that output will be given as input for the design phase, depending on the inputs it generates all design steps, like ways all phases processed and produced all successful outputs, And will to find out whether the project is pursuing on the exact path or not. If not the project may be discard or any other action takes place to continue. The model is the most commonly used and also known as linear sequential lifecycle model. ADVANTAGES: 1. This model is very easy to use and implement. 2. Each phase is completed at a time and processed. 3. This model better works for smaller projects if only the requirements are well understood. 4. In each phase have deliverables and that must be reviewed.
  • 21. 21 DISADVANTAGES: 1. If the requirements are gathered are inaccurate then the final product is inaccurate and the error is known in the final phase of the model. Any sort of errors that cannot be detected in any previous phase. 2. For long, object-oriented, complex and ongoing projects it’s a poor model. 3. This model has high risks. Fig3.2.1: Waterfall Lifecycle Model
  • 22. 22 4. SYSTEM AND SOFTWARE REQUIREMENT SPECIFICATIONS 4.1 Software interfaces : Operating Systems: Windows 2003 Server / Windows XP MS- VS – 2005 or above C#, .NET 2.0 or above 4.2 Hardware interfaces : Pentium 4 with 3GHz RAM: 2 GB Hard Disk: 20 GB 4.3 Communications interfaces : Not applicable
  • 23. 23 5. SOFTWARE DESIGN DESCRIPTION 5.1 Design Overview The design phase begins with the requirements specification for the software to be developed. Design is the first step to moving from the problem domain towards the solution domain. Design is essentially the bridge between requirement specification and the final solution for satisfying the requirements. It is the most critical factor affecting the quality of the software. The design process for software system has two levels.  System Design or Top level design  Detailed Design or Logical Design System Design: In the system design the focus on the deciding which modules are needed for the system, the specification of these modules and how these modules should be interconnected. Detailed Design: In detailed design the interconnection of the modules or how the specifications of the modules can be satisfied is decided. Some properties for a software system design are  Verifiability  Completeness  Consistency  Traceability  Simplicity / Understandability
  • 24. 24 1) Application Architecture: Fig 5.1: Application Architecture The application which we are developing is using One-Tier or single Tier application. Within the same tier we are going to include the business functionalities as well the data access functionalities. The frontend which we are going to develop is using the windows form application. We will develop all the front end windows forms or User interface forms using Windows application of .NET environment. Once after developing the user interfaces we need to write the code behind in order to specify the business logic as well the data access logic. This coding will be done using In our application will use necessary functionalities such as splitting the original file into segments, joining the file into segments. The C# language in our application, where will write all the necessary business logic code and in our application will use necessary functionalities such as splitting the original file into segments, joining the file into segments. Data access code in order to access the backend database server. In our application we are not going to use backend end database server that is MS SQL server 2005. In our application will use necessary functionalities such as splitting the original file into segments, joining the file into segments. In the above application diagram , in the User Interface block will include all the necessary front end screens and in the BAL block will include all the necessary business logic required for any business functionalities whereas in the DAL block will include all the necessary data access functionalities , such as User Interface BAL DAL Database
  • 25. 25 establishing the connection to the data base server, than after connecting successfully will use the data manipulation commands such as insert , delete, update ,select operations depending upon the needs of the application. In order to use the ADO.NET objects in our application we need to include the respective namespace provided by the ADO.NET. That’s in order to connect to the MS SQL server2005; we need to include the System.sqlclient namespace in our application. The namespace sqlclient is to connect to the MS SQL server database. If we want to connect to oracle database server we need to include oracle client namespace, if we want to connect to ACCESS database server we need to include odbc namespace in our application. But in our application we are not using backend data base server so need to have data base connection. 2) Software Architecture: Fig 5.2: Software Architecture In this software architecture, the users block consists of end user or users of our application. Will design all the forms necessary for the our application. So that when user wants to split and join the file, he can do by using the GUI feature provided by our application. Users Segmentation File splitter Database File Joiner
  • 26. 26 In the business logic if we have any validations relating in our application than we have to verify that all the validations are satisfied thoroughly. Once after all the validations are evaluated to be true, will move with the data access logic. In the data access logic, will connect to the necessary database server by including the required namespace. I.e. System.sqlclient if the database server we are using is MS SQL SERVER2005.But we don’t have database server, so no need to establish the connection. 5.2 UML Design: Modeling is an activity that has been carried out over the years in software development. When writing applications by using the simplest languages to the most powerful and complex languages, you still need to model. Modeling can be as straightforward as drawing a flowchart listing the steps carried out by an application. Why do we use modeling? Defining a model makes it easier to break up a complex application or a huge system into simple, discrete pieces that can be individually studied. We can focus more easily on the smaller parts of a system and then understand the "big picture." Hence, the reasons behind modeling can be summed up in two words:  Readability  Reusability Readability Brings clarity—ease of understanding. Understanding a system is the first step in either building or enhancing a system. This involves knowing what a system is made up of, how it behaves, and so forth. Modeling a system ensures that it becomes readable and, most importantly, easy to document. Depicting a system to make it readable involves capturing the structure of a system and the behavior of the system. Reusability Is the byproduct of making a system readable. After a system has been modeled to make it easy to understand, we tend to identify similarities or redundancy, be they in terms of functionality, features, or structure. The Unified Modeling Language, or UML, as it is popularly known by its TLA (three-letter acronym!), is the language that can be used to model systems and make them readable. This essentially means that UML provides the ability to capture the characteristics of a system by using notations. UML provides a wide
  • 27. 27 array of simple, easy to understand notations for documenting systems based on the object- oriented design principles. These notations are called the nine diagrams of UML. Different languages have been used for depicting systems using object-oriented methodology. The prominent among these were the Rumbaing methodology, the Brooch methodology, and the Jacobson methodology. The problem was that, although each methodology had its advantages, they were essentially disparate. Hence, if you had to work on different projects that used any of these methodologies, you had to be well versed with each of these methodologies. A very tall order indeed! The Unified Modeling Language is just that. It "unifies" the design principles of each of these methodologies into a single, standard, language that can be easily applied across the board for all object-oriented systems. But, unlike the different methodologies that tended more to the design and detailed design of systems, UML spans the realm of requirements, analysis, and design and, uniquely, implementation as well. The beauty of UML lies in the fact that any of the nine diagrams of UML can be used on an incremental basis as the need arises. Considering all these reasons, it is no wonder that UML is considered "the" language of choice. UML does not have any dependencies with respect to any technologies or languages. This implies that you can use UML to model applications and systems based on either of the current hot technologies; for example, J2EE and .NET. Every effort has been made to keep UML as a clear and concise modeling language without being tied down to any technologies. INTRODUCTION TO UML: The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing objects oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software.
  • 28. 28 Goals of UML The primary goals in the design of the UML were:  Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.  Provide extensibility and specialization mechanisms to extend the core concepts.  Be independent of particular programming languages and development processes.  Provide a formal basis for understanding the modeling language.  Encourage the growth of the OO tools market.  Support higher-level development concepts such as collaborations, frameworks, patterns and components.  Integrate best practices. Why we use UML? As the strategic value of software increases for many companies, the industry looks for techniques to automate the production of software and to improve quality and reduce cost and time-to-market. These techniques include component technology, visual programming, patterns and frameworks. Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance. Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs. UML Diagrams The underlying premise of UML is that no one diagram can capture the different elements of a system in its entirety. Hence, UML is made up of nine diagrams that can be used to model a system at different points of time in the software life cycle of a system.
  • 29. 29 The nine UML diagrams are: Use case diagram: The use case diagram is used to identify the primary elements and processes that form the system. The primary elements are termed as "actors" and the processes are called "use cases." The use case diagram shows which actors interact with each use case. 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 Apart from this, each class may have certain "attributes" that uniquely identify the class. 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. Apart from this, each class may have certain "attributes" that uniquely identify the class. Object diagram: The object diagram is a special kind of class diagram. An object is an instance of a class. This essentially means that an object represents the state of a class at a given point of time while the system is running. The object diagram captures the state of different classes in the system and their relationships or associations at a given point of time. State diagram: A state diagram, as the name suggests, represents the different states that objects in the system undergo during their life cycle. Objects in the system change states in response to events. In addition to this, a state diagram also captures the transition of the object's state from an initial state to a final state in response to events affecting the system Activity diagram: The process flows in the system are captured in the activity diagram. Similar to a state diagram, an activity diagram also consists of activities, actions, transitions, initial and final states, and guard conditions. Sequence diagram: A sequence diagram represents the interaction between different objects in the system. The important aspect of a sequence diagram is that it is time-ordered. This means
  • 30. 30 that the exact sequence of the interactions between the objects is represented step by step. Different objects in the sequence diagram interact with each other by passing "messages". Collaboration diagram: A collaboration diagram groups together the interactions between different objects. The interactions are listed as numbered interactions that help to trace the sequence of the interactions. The collaboration diagram helps to identify all the possible interactions that each object has with other objects. Component diagram: The component diagram represents the high-level parts that make up the system. This diagram depicts, at a high level, what components form part of the system and how they are interrelated. A component diagram depicts the components culled after the system has undergone the development or construction phase. Deployment diagram: The deployment diagram captures the configuration of the runtime elements of the application. This diagram is by far most useful when a system is built and ready to be deployed. Now that we have an idea of the different UML diagrams, let us see if we can somehow group together these diagrams to enable us to further understand how to use them. UML Diagram Classification—Static, Dynamic, and Implementation A software system can be said to have two distinct characteristics: a structural, "static" part and a behavioral, "dynamic" part. In addition to these two characteristics, an additional characteristic that a software system possesses is related to implementation. Before we categorize UML diagrams into each of these three characteristics, let us take a quick look at exactly what these characteristics are. Static: The static characteristic of a system is essentially the structural aspect of the system. The static characteristics define what parts the system is made up of. Dynamic: The behavioral features of a system; for example, the ways a system behaves in response to certain events or actions are the dynamic characteristics of a system.
  • 31. 31 Implementation: The implementation characteristic of a system is an entirely new feature that describes the different elements required for deploying a system. The UML diagrams that fall under each of these categories are:  Static  Use case diagram  Class diagram  Dynamic  Object diagram  State diagram  Activity diagram  Sequence diagram  Collaboration diagram  Implementation  Component diagram  Deployment diagram Finally, let us take a look at the 4+1 view of UML diagrams. Views of UML Diagrams Considering that the UML diagrams can be used in different stages in the life cycle of a system, let us take a look at the "4+1 view" of UML diagrams. The 4+1 view offers a different perspective to classify and apply UML diagrams. The 4+1 view is essentially how a system can be Each of these views represents how a system can be modeled. This will enable us to understand where exactly the UML diagrams fit in and their applicability. viewed from a software life cycle perspective. Each of these views represents how a system can be modeled. This will enable us to understand where exactly the UML diagrams fit in and their applicability. The different views are: Design View: The design view of a system is the structural view of the system. This gives an idea of what a given system is made up of. Class diagrams and object diagrams form the design view of the system.
  • 32. 32 Process View: The dynamic behavior of a system can be seen using the process view. The different diagrams such as the state diagram, activity diagram, sequence diagram, and collaboration diagram are used in this view. Component View: Component view shows the grouped modules of a given system modeled using the component diagram. Deployment View: The deployment diagram of UML is used to identify the deployment modules for a given system. Use case View: Finally, we have the use case view. Use case diagrams of UML are used to view a system from this perspective as a set of discrete activities or transactions. 5.2.1 CLASS DIAGRAM: The Class Diagram Represent the three Classes. Login Varchar username Varchar password Login() Segmentation Varchar segmentSize varhcar Filepath CalculateSegments() FileSplitter varchar filesSplitted Varchar Filepath SplitFiles() FileJoiner Varchar filesjoined varchar Filepath JoinFiles() Fig 5.2.1: Class Diagram
  • 33. 33 5.2.2 USECASE DIAGRAM: The Use Case Diagrams Represent the After Login the user was Select segments with size and type and Split the file. After split the files join the file. Segmentation FileSplitter FileJoiner Select the size of segments Select the size type kilobytes or megabytes Split the files into segments Join the files using splitted files User Login Fig 5.2.2: Use case Diagram
  • 34. 34 5.2.3 SEQUENCE DIAGRAM: The Diagram Represents the sequence of actions. Login Segmentation FileSplitter FileJoiner ApplicationUser Send username and password Verify Username and password Validate Username and passwordValid login or Invalid Request for segmentation Send size of each segments Calcute the segments Response for segmentation of particular file Request for FileSplitting Split file based on segmentation Split the File into Segmentation Response for splitting Request for file joining Use segmentation Join the segmentsResponse of Joining the segments Fig 5.2.3: Sequence Diagram
  • 35. 35 5.2.4 Activity Diagram: The Diagram represents the control flow of the information. Login Segmentation FileSplitter FileJoiner Validate Username and Password Fig 5.2.4: Activity Diagram
  • 36. 36 5.2.5 Data Flow Diagram Design: Level 0 Level 1 Fig 5.2.5: Data Flow Diagrams 5.3 Database Design: The data pertaining to proposed system is voluminous that a careful design of the database must proceed before storing the data in the database. A database management system provides flexibility in the storage and retrieval of data bad production of information. The DBMS is a bridge between the application program, which determines what data are needed and how they are processed, and the operating system of the computer, which is responsible for placing data on the magnetic storage devices. A schema defines the database and a subschema defines the portion of the database that a specific program will use. Data Model: The organization of the data is represented by a data model and identifies the logical organization of data. In a model of real world similar things are usually grouped into classes of object called object types. A data model is a pattern according to which data are logically organized. It consists of the named logical units of data and expresses the relationships among the data as determined by the interpretation of the model of real world. The relational data model is a formal model for representing relationships among attributes of an entity set and the association between entity sets. In the relational data model USER Segmentation USER Segmentation File Splitter File Joiner
  • 37. 37 all attribute relationships and all associations are represented as relations. There is no distinction even at the model level, between the different kinds or relations. Syntactically all the relations are the same. The data model does not produce the introduction of additional semantic information to distinguish different relations according to their properties of models namely:  Network Model  Hierarchical data model  Relational Data model Relational data Model The relational data model is a formal model for representing relationships among attributes of an entity set and the association between entity sets. In the relational data model all attribute relationships and all associations are represented as relations. There is no distinction even at the model level, between the different kinds or relations. Syntactically all the relations are the same. The data model does not produce the introduction of additional semantic information to distinguish different relations according to their properties. NORMALIZATION Normalization theory is built around the concept of normal forms. A relation is said to be in particular normal form if it satisfies a certain specified set of constraints. FIRST NORMALFORM: A relation R is in first normal form if and only if all underlying domains contained atomic values only. SECOND NORMALFORM: A relation R is said to be in second normal form if and only if it is in first normal form and every non-key attribute is fully dependent on the primary key. THIRD NORMALFORM: A relation R is said to be in third normal form if and only if it is in second normal form and every non key attribute is non transitively depend on the primary key.
  • 38. 38 6. SCREEN SHOTS AND SAMPLE CODING 6.1 Login form Fig 6.1: Login Form
  • 39. 39 6.2 Main form Fig 6.2: Main Form
  • 42. 42 6.5: Login Validate Form Fig 6.5: Login Validate Form
  • 43. 43 6.6: Main Segments validate Form Fig 6.6: Main Segments validate Form
  • 44. 44 6.3 SAMPLE CODE FileSplitter class FileSplitter2{ private static long m_segmentSize = 600 * 1024 * 1024; private static int blockSize = 1024; public int SplitFile(string fileName){ FileStream fsIn = new FileStream(fileName, FileMode.Open, FileAccess.Read); string basePath = System.IO.Path.GetDirectoryName(fileName); int fileSize = (int) fsIn.Length; int segments = (int) (fileSize / m_segmentSize); int remainder = (int) (fileSize % m_segmentSize); if (remainder > 0) segments++; byte[] buffer = new byte[blockSize]; for (int i = 0; i < segments; i++){ FileStrea fsOut = new FileStream(fileName + "." + i, FileMode.Create,FileAccess.Write); int blocks = (int) (m_segmentSize / blockSize); if ( remainder > 0 && i < segments - 1){ for ( int j = 0; j < blocks ; j++){ fsIn.Read(buffer, 0, blockSize); fsOut.Write(buffer, 0, blockSize); } } else{ int finalBlocks = (int) (remainder / blockSize); int lastBlock = (int) (remainder % blockSize); for (int k = 0; k < finalBlocks; k++){ fsIn.Read(buffer, 0, blockSize); fsOut.Write(buffer,0,blockSize); } fsIn.Read(buffer, 0, lastBlock); fsOut.Write(buffer, 0, lastBlock);
  • 45. 45 } fsOut.Flush(); fsOut.Close(); } fsIn.Close(); return (int) segments; } } FileJoiner public class FileJoiner{ private int m_blockSize = 4096; //arbitrary private bool m_beenCleaned = false; public event ProgressNotifyHandler ProgressNotify; static void Main ( string[] args ){ //TestCase2(); TestCase1(); } public void JoinFile ( string fileName ){ this.JoinFile( fileName, null ); } public void JoinFile ( string fileName, string outFile ){ string basePath = System.IO.Path.GetDirectoryName( fileName ); string baseFileName = Path.GetFileNameWithoutExtension( fileName ); int baseFileNumber = Utilities.GetFileNumber ( fileName ); if ( baseFileNumber != 0 ) { throw new ArgumentException ( "Invalid starting file name - must end in '0'", "fileName"); } ArrayList fileList = new ArrayList(System.IO.Directory.GetFiles( basePath, baseFileName + @".*" )); CleanArrayList(fileList);
  • 46. 46 if ( outFile == null ) outFile = basePath + @"" + baseFileName; JoinFile( (string[]) fileList.ToArray( typeof(string) ), outFile ); } public void JoinFile ( string[] fileList, string outFile ){ fileList = CleanArrayList ( fileList ); FileInfo[] fileInfo = new FileInfo[fileList.Length]; for ( int i = 0; i < fileList.Length; i++ ){ fileInfo[i] = new FileInfo( fileList[i] ); if ( ! fileInfo[i].Exists ) throw new IOException( String.Format("file {0} doesn't exist", fileList[i] ) ); } //open outfile exclusively FileStream fsOut = null; try { fsOut = File.Open( outFile, FileMode.Create, FileAccess.Write, FileShare.None); int bytesRead = 0; byte[] buffer = new byte[m_blockSize]; for ( int i = 0; i < fileList.Length; i++ ){ FileStream fsIn = null; try { fsIn = File.Open( fileInfo[i].FullName, FileMode.Open, FileAccess.Read, FileShare.Read); while ( 0 < (bytesRead = fsIn.Read( buffer, 0, m_blockSize )) ){ fsOut.Write( buffer, 0, bytesRead ); } OnProgessNotify( Utilities.GetPercentComplete ( i, fileList.Length )); } finally { if ( fsIn != null ) fsIn.Close(); } }
  • 47. 47 fsOut.Flush(); } finally { if ( fsOut != null ) fsOut.Close(); OnProgessNotify( 100 ); } } private void CleanArrayList ( ArrayList arrList ){ if ( ! m_beenCleaned ){ for ( int i = 0; i < arrList.Count; i++) { if ( Utilities.GetFileNumber ( (string) arrList[i] ) == -1 ) { arrList.Remove( arrList[i] ); } } arrList.Sort( new FileListComparer() ); } m_beenCleaned = true; } private string[] CleanArrayList ( string[] fileList ){ ArrayList arrList = new ArrayList( fileList ); CleanArrayList ( arrList ); return (string[]) arrList.ToArray( typeof(string) ); } protected virtual void OnProgessNotify( int i){ if ( ProgressNotify != null ){ try { ProgressNotify( i ); } catch {}//catch & sqaush the exceptions... }
  • 48. 48 } #region Tests static void TestCase1 (){ FileJoiner fj = new FileJoiner(); string[] files = new string[12]; files[0] = @"c:tempm.zip.0"; files[1] = @"c:tempm.zip.7"; files[2] = @"c:tempm.zip.2"; files[3] = @"c:tempm.zip.3"; files[4] = @"c:tempm.zip.1"; files[5] = @"c:tempm.zip.4"; files[6] = @"c:tempm.zip.5"; files[7] = @"c:tempm.zip.6"; files[8] = @"c:tempm.zip.8"; files[9] = @"c:tempm.zip.9"; files[10] = @"c:tempm.zip.10"; files[11] = @"c:tempm.zip.11"; string resultFile = @"c:tempout.zip"; fj.JoinFile( files, resultFile ); } static void TestCase2 (){ FileJoiner fj = new FileJoiner(); fj.JoinFile( @"c:tempm.zip.0"); } #endregion } class FileListComparer : IComparer{ #region IComparer Members public int Compare(object x, object y){ if ( Utilities.GetFileNumber( (string)x) < Utilities.GetFileNumber( (string)y) )
  • 49. 49 return -1; if ( Utilities.GetFileNumber( (string)x) > Utilities.GetFileNumber( (string)y) ) return 1; return 0; } #endregion }
  • 50. 50 7. TESTING 7.1 Introduction Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. The increasing visibility of software as a system element and attendant costs associated with a software failure are motivating factors for we planned, through testing. Testing is the process of executing a program with the intent of finding an error. The design of tests for software and other engineered products can be as challenging as the initial design of the product itself. There of basically two types of testing approaches. One is Black-Box testing – the specified function that a product has been designed to perform, tests can be conducted that demonstrate each function is fully operated. The other is White-Box testing – knowing the internal workings of the product ,tests can be conducted to ensure that the internal operation of the product performs according to specifications and all internal components have been adequately exercised. White box and Black box testing methods have been used to test this package. All the loop constructs have been tested for their boundary and intermediate conditions. The test data was designed with a view to check for all the conditions and logical decisions. Error handling has been taken care of by the use of exception handlers. Strategies: Testing is a set of activities that can be planned in advanced and conducted systematically. A strategy for software testing must accommodation low-level tests that are necessary to verify that a small source code segment has been correctly implemented as well as high-level tests that validate major system functions against customer requirements. Software testing is one element of verification and validation. Verification refers to the set of activities that ensure that software correctly implements as specific function. Validation refers to a different set of activities that ensure that the software that has been built is traceable to customer requirements. The objective of software testing to uncover errors. To fulfill this objective, a series of test steps unit, integration, validation and system tests are planned and executed. Each test step is accomplished through a series of systematic test
  • 51. 51 technique that assist in the design of test cases. With each testing step, the level of abstraction with which software is considered is broadened. 7.2 Unit Testing: Unit testing focuses verification effort on the smallest unit of software design – the module. The unit test is always white box oriented. The tests that occur as part of unit testing are testing the module interface, examining the local data structures, testing the boundary conditions, executing all the independent paths and testing error-handling paths. 7.3 Integration Testing: Integration testing is a systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. Scope of testing summarizes the specific functional, performance, and internal design characteristics that are to be tested. It employs top-down testing and bottom-up testing methods for this case. 7.4 White Box Testing: The purpose of any security testing method is to ensure the robustness of a system in the face of malicious attacks or regular software failures. White box testing is performed based on the knowledge of how the system is implemented. White box testing includes analyzing data flow, control flow, information flow, coding practices, and exception and error handling within the system, to test the intended and unintended software behavior. White box testing can be performed to validate whether code implementation follows intended design, to validate implemented security functionality, and to uncover exploitable vulnerabilities. White box testing requires access to the source code. Though white box testing can be performed any time in the life cycle after the code is developed, it is a good practice to perform white box testing during the unit testing phase. White box testing requires knowing what makes software secure or insecure, how to think like an attacker, and how to use different testing tools and techniques. The first step in white box testing is to comprehend and analyze source code, so knowing what makes software secure is a fundamental requirement. Second, to create tests that exploit software, a tester must think like an attacker. Third, to perform testing effectively, testers need to know the different tools and techniques available for white box testing. The three requirements do not work in isolation, but together.
  • 52. 52 7.5 Black Box Testing: Also known as functional testing. A software testing technique whereby the internal workings of the item being tested are not known by the tester. For example, in a black box test on software design the tester only knows the inputs and what the expected outcomes should be and not how the program arrives at those outputs. The tester does not ever examine the programming code and does not need any further knowledge of the program other than its specifications. The advantages of this type of testing include:  The test is unbiased because the designer and the tester are independent of each other.  The tester does not need knowledge of any specific programming languages.  The test is done from the point of view of the user, not the designer.  Test cases can be designed as soon as the specifications are complete. 7.6 System Testing: System testing validates software once it has been incorporated into a larger system. Software is incorporated with other system elements and a series of system integration and validation tests are conducted. System testing is actually a series of different test whose primary purpose is to fully exercise the computer- based system. Once the system has been developed it has to be tested. In the present system we have to take care of valid property and assessment numbers i.e. there should not exist any duplicate number in each case. Care should be taken that the appropriate data is retrieved in response to the queries. VALIDATION: The terms verification and validations are used interchangeably we will describe both these methods. Verification is the process of determining whether or not the products of given phase of software development fulfill the specifications established in the previous phase. These activities include proving and reviews. Validation is the process of evaluating the software at the end of software development process, we find how well the software satisfies the requirement specifications. The requirement of the software starts with requirement document and requirement specifications without errors and specifying client’s requirements correctly. The validation process of evaluating the developed system at the end is to ensure that it must satisfy all the
  • 53. 53 necessary requirement specification. Requirement verification also checks the factors as completeness, consistency and testability of the requirements. As we all know that testing plays a crucial role in evaluation of the system. That is in order to know whether the system working properly or not. In other words we can say that in order to know whether the system which we have developed will give the expected output or not can be know by doing the testing. Testing phase comes after coding phase. Usually organizations or the software developing companies use different types of testing strategies in order to evaluate the performance of a system. Also it gives the output which provides clear information regarding the project or system, whether the project which we have developed will going to give the expected output or not , that is whether the system fails or succeed in the market. We have many types of testing such as unit testing, integration testing, system testing, black box testing, white box testing and regression analysis testing and so on. In our project Secure Cryptographic messaging we are using unit testing, integration testing, and system testing. Unit testing is the one in which each entity or objects in the module will be tested. Once the entity is evaluated to be tested successfully than will move further with the another kind of testing. That’s is once unit testing is done with all modules, than integration testing will be done, on the every module or on group of two or three modules. Finally system testing will be done , in which all the modules of a system will be tested at once , there by getting the overall performance of a system that means we can conclude the result on the entire system whether our system is working as per our requirements or as per our expectations or not. The advantage of developing or testing modules wise is that, we can reduce the effort, cost and time. Because if we are testing module wise than we can know clearly which module is working fine and which module is not working, thereby the module which is not working perfectly can be evaluated once again by going necessary modifications unlike the system being tested on a whole, where if any errors comes in than the entire system need to be tested or evaluated which consumes more effort, time and cost.
  • 54. 54 7.7 Test Cases: Test Case 1: FUNCTION EXPECTED RESULTS ACTUAL RESULTS LOW PRIORITY HIGH PRIOTY Segmentation Should get the file size, depending upon which will decide the no of segments. Success -------- yes Table7.7.1: Test Case1 Test Case 2: FUNCTION EXPECTED RESULTS ACTUAL RESULTS LOW PRIORITY HIGH PRIOTY File Splitter If we select file splitter, we need to split the original files based on segmentation. Success --------- Yes File Joiner The splitted files can be re joined again to obtain the original file. The operation executed success. Yes Table7.7.2: Test Case2
  • 55. 55 8. Implementation 8.1 Running Application: In order to run the web application the steps we need to follow are listed below: 1) Open the visual studio IDE (Integrated Development Environment) that is Visual Studio2008 or other version. Fig8.1: Running Application
  • 56. 56 2) Click on file -> open -> browse the folder in which the project is there then select the Solution file of the project. Fig 8.2: Open Application Project
  • 57. 57 3) Click on open option. Than in the solution explorer you will find all the forms and classes that are related to the project. Fig 8.3: View Project
  • 58. 58 4) Run the application by pressing F5 or debugging button. Fig 8.4: Running Project
  • 59. 59 CONCLUSION Using our application, splitting of file will be for all types of files like text, document, image, audio, video, pdf, etc. The advantage of splitting the file is that, we can upload or download the splitted file easily, when there is a restriction in size of the file to be uploaded or downloaded.  Small and lightweight, less than a megabyte in size, works fast.  Splits large files at adjustable sizes, enter value in KB or MB.  Files can also be joined, uses the .001, .002, .003 format.  Can be portable, run it from the USB flash drive and split files.
  • 60. 60 FUTURE ENHANCEMENT All most process of the proposed system has been completed. Each and Every phase in this project is developed keeping the goals in mind as per as an concerned. Every project has its own limitations. Similarly this project also has own limitations and when can be upgraded. The future enhancement of our project is we can split very large files which of TB size. We can also use conversions from one file format to another file format (Ex: Mp3 to WAV) converter. We can also provide option for splitting multiple documents. create one shortcut (a class or a shell script or an xml descriptive file) after a split to allows to do the join in one click and checksum verification, keep name of original file, etc.  Add a zip command to prepare backup of multiple files or directory.  Add web start links to this page.  Allows saving directly on disks.  Command line execution.
  • 61. 61 REFERENCES The following books were referred during the analysis and execution phase of the project: SOFTWARE ENGINEERING  By Roger S. Pressman,  MSDN 2002,  By Microsoft.  Jeff Poise (2002). Programming Microsoft .NET. Microsoft Press.