Download - Online Notepad
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
1
1. INTRODUCTION
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
2
INTRODUCTION:
The OnLine Notepad is a shared database of notes. With OnLine Notepad, you can capture
information that falls outside the scope of business application screens. You can share that
information across a workgroup, a department or an enterprise, and you can analyze the
information to improve quality and service in your business.
The OnLine Notepad gives you the ability to manage business events more effectively. All the
people who have contact with a customer have quick access to relevant information. With better
information, customer calls can be handled in less time, with fewer mistakes.
Notes can be collected online or can be imported from external sources. Applications can write
notes to log actions taken. People can write notes as they handle business events. Notes can be
used to keep a diary of customer contacts, to store comments or information that doesn’t fit any
field on your screen, to post reminders, to follow up on customer-related problems, or to keep an
audit trail of critical activities.
Notes are attached to a field on an application screen. Each time a note is created about a new
subject or record, OnLine Notepad generates a background topic whose title is the field content.
Examples of topics would be customer name, policy number, account number, product code,
company name, etc. In this guided tour, we'll show you how to create Note Forms. We'll show
you how to create notes and search a Notepad for information. We'll also show you how to read
background information topics from the OnLine Notepad.
ONLINE NOTEPAD is like a cloud computing. Cloud computing describes computation,
software, data access, and storage services that do not require end-user knowledge of the
physical location and configuration of the system that delivers the services. Cloud computing
describes a new supplement, consumption, and delivery model for IT services based on Internet
protocols, and it typically involves provisioning of dynamically scalable and often virtualized
resources. It is a by-product and consequence of the ease-of-access to remote computing sites
provided by the Internet. This frequently takes the form of web-based tools or applications that
users can access and use through a web browser as if it was a program installed locally on their
own computer.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
3
The National Institute of Standards and Technology (NIST) provide a somewhat more objective
and specific definition:
"Cloud computing is a model for enabling convenient, on-demand network access to a shared
pool of configurable computing resources (e.g., networks, servers, storage, applications, and
services) that can be rapidly provisioned and released with minimal management effort or
service provider interaction."
In ONLINE NOTEPAD there are services like online file creation, save, save as and previous
files, user can manage his/her directories like create, delete and rename. This application also
provides feature like user can select java files and compile it, after compilation user can view
where the errors in the java program are or user can get class file of the java program after
successfully compilation. This application consists of Applet and Servlet. Applet is used to make
Notepad. This notepad includes some services such as create, open his/her file, open public file,
save or save as the file. User also gets the some facilities such as undo cut, copy, past, word
wrap, find, find next. This web application provides manage online files up to 2 MBs hard disk
space for each user.
Some web applications available but some of those provide online storage with limited services
and some applications provide compilation of java programs. Currently user has to install java
development tool kit to compile java files and there is java runtime environment also installed on
his/her system to run the java programs. This web application provides online storage of files and
online java compiler to compile user files.
1.1 PROBLEM STATEMENT
Some web applications available but some of those provide online storage with limited services
and some applications provide compilation of java programs. Currently user has to install java
development tool kit to compile java files and there is java runtime environment also installed on
his/her system to run the java programs. This web application provides online storage of files and
online java compiler to compile user files.
1.2 OBJECTIVE
Now a day’s people use the web application more and more. The concept of cloud application
provides online store, access and shares the data, online computation on data and in cloud
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
4
computing end users don’t need to require knowledge of configurable computing resources.
Notepad provides some services such as create new note (files), open existing files, save and
save as on the disk but the in cloud computing application we require an online notepad which is
used to manage online files and directories. The ONLINE NOTEPAD fulfills the need of online
file management by creating and saving online files.
1.3 SCOPE
This is an application for managing online data and compiles java classes; I have seen many
web applications such as:
1. http://www.innovation.ch/java/java_compile.html: This is a remote compiling service for those
who would either like to develop applications and/or applets but aren't fortunate enough to have
access to one of the platforms to which the JDK has been ported, or who just don't want to go
through the hassle of installing the complete JDK. In addition to compiling you can view any
compiled applets directly without having to download them to your site first; this should speed
up debugging applets a bit.
2. http://ideone.com/: Ideone is something more than a pastebin; it's an online compiler and
debugging tool which allows compiling and running code online in more than 40 programming
languages.
3. http://notepub.com/: Use NotePub to save, share, and search your notes and emails. In brief,
NotePub provides real time sharing and searching of notes with read/write permissions set for
each note and user. NotePub is very straightforward, yet it lets you do most things you could
with other types of software such as blogs, wikis, forums, email, chat, and social networks. You
can see the latest public notes here.
Above there are some existing examples, but some of those has facility to store and manage
online data or some of those has facility to compile java file. But in the ONLINE NOTEPAD
web application we can store online data up to 2MBs for each user and user can compile its java
file and manage its directories.
1.41.4 PLATEFORM SPECIFICATION PLATEFORM SPECIFICATION
The software requirement specification is produced at the culmination of the analysis task. The
function and performance allocated to software as part of system engineering are refined by
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
5
establishing a complete information description, a detailed function description, a representation
of system behavior, an indication of performance requirements and design constraints,
appropriate validation criteria, and other information pertinent to requirement.
The application can run on any Operating System as platform.
User needs JVM on his/her machine who wants to use this application.
Web Browser is required to run this application at user end.
There is a web server required on which it hosts.
Application Server has database table for maintaining user account details in My SQL
Server.
1.4.1 Hardware SpecificationTo run this project no additional hardware are necessary only a internet connection on PC and higher configuration of RAM to increase the system performance.
1.4.2 Software Specification
To implement and run this project following software are necessary.
End User Supported Platforms and Browsers
The support for the APPLET tag in Java Plug-in is intended for use on the following operating systems:
Windows 95 Windows 98 (1st and 2nd editions) Windows ME Windows NT 4.0 Windows 2000 Windows XP Unix Linux
Hardware SpecificationRam 64 MB
Internet 64 Kbps
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
6
Java Plug-in provides support for the APPLET tag on the following web browsers:
Internet Explorer 4.0 (4.01 recommended), 5.0 (5.01 recommended), 5.5 (Service Pack 2 recommended), 6.0
Netscape 6.0, 6.1 Firefox Safari
1.4.3 Implementation Language
Tools(Software) Version and descriptionDeveloper Java Jdk1.6 is an SDK for java
Editor NetBeans6.8 is IDE for rapid developmentWeb Server apache-tomcat-6.0.18Backend(database) MySQL Server 5.0Reporting PS UML, MS-OfficeOperating System Windows XP SP2
User Runtime Environment Jre1.6.x
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
7
2 SYSTEM ANALYSES
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
8
2.1 IDENTIFICATION OF NEED
In the world we are growing for globalization day by day with the development in IT resources
and advancement, by using latest technologies every organization wants to beat its competitors
and want to grow. Enterprise Resourceful Planning is the need of today’s organization. Survival
on manual system is difficult so, that’s why organization of the corporate world wants to
computerize their departments. The modules should be complete database driven and interactive
that should provide the proper information about the Placement and Training Organization.
Success of any system depends up to a large extent on how accurately a problem is defined,
thoroughly investigated and properly carried out to the choice of solution. Analysis is the only
phase in which the requirements for the new system are identified. System analysis is a detailed
study of the various operations performed by a system and their relationship within and outside
of the system. The question is: what must be done to solve the problem? One aspect of analysis
is defining the boundaries of the system and determining whether or not a candidate system
should consider other related system. During analysis data are collected on the available files,
decision points and transactions handled by the parent system. Data flow diagram, interviews,
onsite observations, questionnaires are used as a logical system model and tools to perform the
analysis.
2.2 PRELIMINARY INVESTIGATION
Requirement analysis is a software engineering task that bridges the gap between system level
requirement engineering and software design. Requirement engineering activates result in the
specification of software’s operational characteristics (functional, data, and behavior), indicates
software’s interface with other system elements, and establish constraints that software must
meet. Requirement analysis provides the software designer with a representation of information,
function, and behavior that can be translated to data, architectural, interface, and component-
level designs.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
9
3 Feasibility Study
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
10
FESEABLITY STUDY
A feasibility study is conducted to select the best system that meets performance requirement.
This entails an identification description, an evaluation of candidate system and the selection of
best system for he job. The system required performance is defined by a statement of constraints,
the identification of specific system objective and a description of outputs.
The key considerations in feasibility analysis are:
1. Technical Feasibility
2. Economic Feasibility
3. Operational Feasibility
3.1 Technical Feasibility
It is a measure of the practically of a specific technical solution and the availability of technical
resources and expertise
The proposed system uses Java as front-end and MySql as back-end tool.
Oracle is a popular tool used to design and develop database objects such as table
views, indexes.
The above tools are readily available, easy to work with and widely used for
developing commercial application. Hardware used in this project are- p4 processor
2.4GHz, 128 MB RAM, 40 GB hard disk, floppy drive. This hardware was already
available on the existing computer system. The software like Oracle 8i, Web logic Server,
Thin Driver, JDK, JSDK, J2EE and operating system WINDOWS-XP’ used were already
installed On the existing computer system. So no additional hardware and software were
required to purchase and it is technically feasible. The technical feasibility is in
employing computers to the organization. The organization is equipped with enough
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
11
computers so that it is easier for updating. Hence the organization has not technical
difficulty in adding this system.
Tools Used :
1) JAVA Library
2) J2SDK 2.0
3) JDK 1.2
4) Apache Tomcat server
5) MySql
Duration of Project:-
3.2 Economical feasibility
It looks at the financial aspects of the project. It determines whether the management has enough
resources and budget to invest in the proposed system and the estimated time for the recovery of
cost incurred. It also determines whether it is worthwhile to invest the money in the proposed
project. Economic feasibility is determines by the means of cost benefit analysis. The proposed
system is economically feasible because the cost involved in purchasing the hardware and the
software are within approachable. The personal cost like salaries of employees hired are also
nominal, because working in this system need not required a highly qualified professional. The
Time Duration
For study 25 days
Designing 20 days
For development 25 days
Testing 15 days
Total time 85 days
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
12
operating-environment costs are marginal. The less time involved also helped in its economical
feasibility. It was observed that the organization has already using computers for other purpose,
so that there is no additional cost to be incurred for adding this system to its computers.
The backend required for storing other details is also the same database that is Sql. The
computers in the organization are highly sophisticated and don’t needs extra components to load
the software. Hence the organization can implement the new system without any additional
expenditure. Hence, it is economically feasible.
Software Cost :
3.3 Operational Feasibility
The system will be used if it is developed well then be resistance for users that
undetermined
No major training and new skills are required as it is based on DBMS
model.
It will help in the time saving and fast processing and dispersal of user
request and applications.
New product will provide all the benefits of present system with better
performance.
Improved information, better management and collection of the reports.
User support.
User involvement in the building of present system is sought to keep in
mind the user specific requirement and needs.
User will have control over their own information. Important information
such as pay-slip can be generated at the click of a button.
Apache Tomcat : Free
MySql : Free
J2EE Kit : Free
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
13
Faster and systematic processing of user application approval, allocation
of IDs, payments, etc. used had greater chances of error due to wrong
information entered by mistake.
4 Literature Survey
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
14
LITERATURE SURVEY
The text editor that comes with Windows. It is a very elementary utility. Notepad is a very basic
generic text editor included with Microsoft Windows that enables someone to open and read
plain text files. If the file contains special formatting or is not a plain text file, Notepad will not
be able to be read its contents.
With the Online Notepad you can make memos every time and everywhere you want to and
revisit them later. You can share your memo with other people and let them edit it if you wish to.
Just share your access data.
4.1 Work Done By Other
This is an application for managing online data and compiles java classes; I have seen many web
applications such as:
http://www.innovation.ch/java/java_compile.html: This is a remote compiling service for those
who would either like to develop applications and/or applets but aren't fortunate enough to have
access to one of the platforms to which the JDK has been ported, or who just don't want to go
through the hassle of installing the complete JDK. In addition to compiling you can view any
compiled applets directly without having to download them to your site first; this should speed
up debugging applets a bit.
http://ideone.com/: Ideone is something more than a pastebin; it's an online compiler and
debugging tool which allows compiling and running code online in more than 40 programming
languages.
http://notepub.com/: Use NotePub to save, share, and search your notes and emails. In brief,
NotePub provides real time sharing and searching of notes with read/write permissions set for
each note and user. NotePub is very straightforward, yet it lets you do most things you could
with other types of software such as blogs, wikis, forums, email, chat, and social networks. You
can see the latest public notes here.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
15
Above there are some existing examples, but some of those has facility to store and manage
online data or some of those has facility to compile java file. But in the ONLINE NOTEPAD
web application we can store online data up to 2MBs for each user and user can compile its java
file and manage its directories.
4.2 Benefits
A small program written in Java and included in a HTML page. It is independent of the operating
system on which it runs a small computer program that can be transmitted from a server to a
client computer and executed on the client.
A small program that can be sent along with a Web page to a user. Java applets can perform
interactive animations, immediate calculations, or other simple tasks without having to send a
user.
Request back to the server
4.3 Proposed Solution
Data modeling answers a set of specific questions that are revel vent to any data processing
application. What are primary data object to be proposed by the system? What is the composition
of each data object and what attributes describe the object? Here do the object currently reside?
What are the relationship between each object and other object? What are the relationship
between the object and the processes that transform them?
To answer this all problems different type of data modeling methods make use of the entity
relationship model and dataflow diagram show the data flow.
4.4 Technology Used
This is a web application which is developed in Java’s Applet and Servlet technology.
A Servlet’s Job
• Read explicit data sent by client (form data)
• Read implicit data sent by client
(request headers)
• Generate the results
• Send the explicit data back to client (HTML)
• Send the implicit data to client
(status codes and response headers)
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
16
APPLET SERVLET COMMUNICATION
Applet-Servlet Communication with HTTP GET and POST
In the previous version the HTML form was used to submit the student's data to the servlet.
Accessing the form data on the server side was simple and straightforward. This was
accomplished by calling the method HttpRequest.getParameter(<form field name>), which is
available in the Java servlet API.
Following image shows where this application was started:
Secure Applet servlet communication possible by the cryptography. for that I have studied some
research paper.
1. A Hybrid Encryption Algorithm Based on DES and RSA in Bluetooth Communication,
Zhiqian Miao, College of Computer and Information Engineering Zhejiang Gongshang
University Hangzhou, China, [email protected], 2010 Second International Conference
on Modeling, Simulation and Visualization Methods
2. Data Safe Transmission Mechanism Based on Integrated Encryption Algorithm
Kui-He Yang, Shi-Jin Niu College of Information, Hebei University of Science and Technology,
Shijiazhuang 050018, China [email protected]
This application also include java class translator which means by this service user can give a
java file to the applet and servlet compile it server side if there are error in java program it
informs the user where and what are the errors in the given java program. This facility also
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
17
available in the some web sites such as in http://www.innovation.ch/java/java_compile.html
which provides facility to compile our java files (optional with jar files) and this website also has
a feature to run applet programs. One more website is also available which compiles java
program and run also (except user’s input and package programs).
5 Technical Parts
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
18
5.1 System Flow Diagram
As information moves through software it is modified by a series of transformations. A System
flow diagram is a graphical representation that depicts information flow and the transforms that
are applied as data move from input to output. The basic of a data flow diagram also known as a
data flow graph or bubble chart.
The data flow may be used to represent a system or software at any level of abstraction. In fact
DFDs may be partitioned into levels that represent the entire software elements a s single bubble
with input and output data indicated by incoming and outgoing arrows respectively.
5.2 Sequence Diagram
It shows the interaction between classes arranged in the time sequence or message exchanges that
take place between classes for specific purpose. A sequence diagram presents an interaction
which is a set of messages between Classifier Roles with in Collaboration, or an Interaction
Instance Set which is a set of stimuli between Instances with in a Collaboration Instance Set to
effect a desired operation or result.
A sequence diagram has two dimensions: the vertical represents time, and the horizontal
dimension represents different instances. Normally time proceeds down the page. The
dimensions may be reversed, if desired. Usually only time sequences are important, but in real
time applications the time axis could be actual metric.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
19
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
20
5.3 Subsystem Class Design
Class diagram describes the static structure of the various classes of the system and their
association but the classes declared with the system, which does not declare how the
class, behaves when they act economically.
A class diagram is a graph of classifier elements connected by their various static relationships. A “class”
diagram may also contain interfaces, packages, relationships and even instances, such as objects and
links. Perhaps a better name would be “static structural diagram” but “class diagram” is shorter and well
established. A class diagram is a graphic view of the static structural model. The individual class
diagrams do not represents divisions in the underlying model. A class diagram is a collection of static
model elements, such as classes, interfaces and their relationships, connected as a graph to each other and
to their contents. Class diagrams may be organized into packages either with their underlying models or
separate packages that build upon the underlying model packages.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
21
6 Software Engineering Approach
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
22
6.1 Software Engineering Paradigm Applied
Software Engineering is the establishment and use of sound engineering principles in order to
obtain economically software that is both reliable and works efficiently on real systems. To solve
actual problems in an industry / organizations setting, such as Central or State Govt. Sectors,
Public / private Sectors, Colleges, Schools, etc., a Software Engineer or a team of engineers must
incorporate a development strategy that encompasses the process, methods, tools layers, and the
generic phases. This strategy is referred to as a Process Model or a Software Engineering
Paradigm.
Models used for system development in project “Customer Relationship Management and Sales
Force Automation”, is Prototyping. Descriptions of these models are as following
6.1.1 Description
The waterfall model is a sequential design process, often used in software development
processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the
phases of Conception, Initiation, Analysis, Design, Construction, Testing,
Production/Implementation and Maintenance.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
23
6.1.2 Advantage and Disadvantage
The waterfall model is the oldest and most widely used model in the field of software
development. There are certain advantages of the waterfall model, which causes it to be the most
widely used model as yet. Some of them can be listed as under.
Needless to mention, it is a linear model and of course, linear models are the most simple
to be implemented.
The amount of resources required to implement this model is very minimal.
One great advantage of the waterfall model is that documentation is produced at every
stage of the waterfall model development. This makes the understanding of the product
designing procedure simpler.
After every major stage of software coding, testing is done to check the correct running
of the code.
Disadvantages of Waterfall Model
The question that must be bothering you now is that with so many advantages at hand, what
could be the possible disadvantages of the waterfall model. Well, there are some disadvantages
of this widely accepted model too. Let us look at a few of them.
Ironically, the biggest disadvantage of the waterfall model is one of its greatest
advantage. You cannot go back, if the design phase has gone wrong, things can get very
complicated in the implementation phase.
Many a times, it happens that the client is not very clear of what he exactly wants from
the software. Any changes that he mentions in between may cause a lot of confusion.
Small changes or errors that arise in the completed software may cause a lot of problem.
The greatest disadvantage of the waterfall model is that until the final stage of the
development cycle is complete, a working model of the software does not lie in the hands
of the client. Thus, he is hardly in a position to mention if what has been designed is
exactly what he had asked for
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
24
6.1.3 Reason for use
The most important aspect of the waterfall model is that none of the stages can be started off
with before the preceding stage is complete. The software life cycle has to follow the sequence.
The original waterfall model designed by Royce consisted of the following seven stages:
Specification of Requirements Design Construction Integration Testing and Debugging Installation Maintenance
However, various modifications were brought over to this waterfall model as and when required.
Here, in this article, we will try to understand a simple waterfall model, broken into six stages.
There is a seventh stage which is same as that of the first stage, requirements, but it follows the
last stage and is referred to as updated maintenance.
6.2.1 Software Requirement Specification
The software requirement specification is produced at the culmination of the analysis task. The
function and performance allocated to software as part of system engineering are refined by
establishing a complete information description, a detailed function description, a representation
of system behavior, an indication of performance requirements and design constraints,
appropriate validation criteria, and other information pertinent to requirement.
The application can run on any Operating System as platform.
We need JVM on user’s machine who wants to use this application.
Web Browser is required to run this application at user end.
There is a web server required on which it hosts.
We have database table for maintaining user account details in My SQL Server
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
25
To implement and run this project following software are necessary.
Tools(Software) Version and descriptionDeveloper Java Jdk1.6 is an SDK for java
Editor NetBeans6.8 is IDE for rapid developmentWeb Server apache-tomcat-6.0.18Backend(database) MySQL Server 5.0Reporting PS UML, MS-OfficeOperating System Windows XP SP2
User Runtime Environment Jre1.6.x
6.2.1.2 Use case Model
A use case specifies the behaviour of the system or a part of system and is a description of set of
sequence of actions including variant that a system performs to yield an observable result of
value to an actor. Use case help to serve validate the architecture and to verify our system as it
involves during development.
A use case describe a set of sequences in which it sequence represents the interaction of the
things outside the system with the system itself .This behavior are in effect system level function
that use to visualize, specify ,construct and document the intended behavior of our system during
the requirement capture and analysis.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
26
6.2.1.3 Conceptual Level Activity diagram
Activity diagram is one of the five diagrams in the UML for modeling the dynamic aspect of the
system. An activity diagram is essentially a flow chart showing flow of control from activity to
activity.
With an activity diagram we can also model the flow of an object as it moves from state to state
at different points in flow of control. Activity diagram may extend along to visualize, specify,
construct and document the dynamic of society of objects or they may be use to model the flow
of control of an operation.
FIG: ACTIVITY DIAGRAM
6.3 Planning Managerial Issues
Software project management begins with set of activities that are collectively called project
planning. Before the project can begin, the manager and the software team must estimate the
work to be done, the resources that will be that will be required, and the time that will elapse
from start to finish. The objective of software project planning is to provide a framework that
enables the software manager to make reasonable estimates of resources, cost and schedule.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
27
These estimates are made within a limited time frame at the beginning of a software project and
should be updated regularly as the project progresses.
Software Scope
The first activity in software project planning is the determination of software scope. Function
and performance allocated to software during system engineering should be accessed to establish
a project scope that is unambiguous and understandable at the management and technical levels.
Resources
The second software planning task is estimation of the resources required to accomplish the
software development effort. Figure shows development resources as pyramid. The development
environment Hardware and software tools sit at the foundation of the resource pyramid and
provides the infrastructure to support the development effort. Software building locks that
dramatically reduce development cost and accelerate delivery.
Figure –Project Resources
1. Human Resources
The planner begins by evaluating scope and selecting the skills required to complete
development. Both organizational poison and specially are specified. For relatively small
People
H/W and S/W tools
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
28
projects, a single individual may perform all software engineering tasks consulting with
specialties required.
2. Reusable software Resources
Component based software engineering emphasis reusability that is the creation and reuse of
software building blocks. Such building blocks often called component must be catalogued for
easy reference standardized for easy application and validated for easy integration.
Off the shelf component
Existing software that can be acquired from a third party or hat has been developed internally
for a past project. Components are purchased from a third party are ready for use on the current
project and have been fully validated.
Full experience component
Existing specification, design, code or test data developed for past projects that are similar to the
software to be built for current project. members of the current software team have had full
experience in the application area represent by these components.
Partial experience component
Existing specification, design, code or test data developed for past project that are related to the
software to be built for the current project but will require substantial modification.
New component
Software component that must be build by software team specifically for the needs of the current
project.
1. Environmental resource
The environmental that support the software project often called the software engineering
environment, incorporates a hardware and software. Hardware provides a platform that support
the tools required to produce the work product that is an outcome of good software engineering
practice. Because most software organization has multiple consultancies that require access to
the software engineering environment, a project planner must prescribe the time window
required for hardware and software and verify these resources will be available.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
29
6.3.3 Team organizationTeam organization
Our Team Structure is Democratic Decentralized.
In Democratic Decentralized team structures following features are observed:
It has no team leader. All players are at the same level.
Problem solving is done in-groups.
It has high degree of sociability.
It is generally employed for small projects.
The team structure can be specified as Democratic Decentralized (DD). The team working to
build this software comprises of two members under the guidance of a project guide and co-
guide. Our software engineering team has no permanent leader. Rather, “task coordinators are
appointed for short durations and then replaced by others who may coordinate different tasks.”
Group makes decisions on problems and approach.
onsensus and are taken democratically. Communication among team members is horizontal.
Books and Internet Books and Internet
Developer:
Kumar Umang Gupta
Developer:
Kumar Umang Gupta
Developer:
Kumar Umang Gupta
Developer:
Kumar Umang Gupta
Guides:
Mrs Maya Ingle
Guides:
Mrs Maya Ingle
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
30
6.3.4 Project Scheduling
Timeline (Gantt) charts enable software planners to determine what tasks will be need to be
conducted at a given point in time (based on estimates for effort, start time, and duration for each
task). Timeline chart can either be developed for the entire project or separate charts can be
developed for each project function or for each individual working on the project. All project
tasks are listed in the left hand column. The horizontal bars indicate the duration of each task.
When multiple bars occur at the same time on the calendar, task concurrency is implied. The
diamonds indicate milestones.
One column represents three week.
Gantt chart
Work tasksWeek
1, 2,
3
Week
4, 5,
6
Week
7, 8,
9,10
Week
11,
12 ,
13
Week
14,
15,
16
Week
17,18
, 19
Week
20,
21,
22
Week
23,
24,25
,26
Week
22,
28,
29
Week
30,
31,
32
1.1.1 Meeting the client
1.1.2 Gathering the user requirements
Milestone: Requirements gathered
1.2.1 Study of gathered requirements
1.2.2 Breaking the requirements
Milestone: Requirements analyzed.
2.1.1 Comparison of available tools.
2.1.2 Evaluate the selected tool.
Milestone: Tool decided.
2.2.1 Separation module-wise info.
2.2.2 Modularizing the software.
Milestone: modularization.
2.3.1 Analysis the
Connect module
2.3.2 Analysis Remote
Operation module
2.3.3 Analysis
Encryption/Decryption
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
31
module
2.3.4 Analysis chatting
Module
2.3.5. Analysis Message
Passing Module
2.3.6. Analysis My
Browser module
Milestone: Analysis of
Module completed.
3.1.1 Assessing the front-end tools.
3.1.2 Choosing a tool for
GUI.
Milestone: Front-end tool decided.
3.2.1 Deciding the best possible layout
3.2.2 Designing of GUI.
Milestone: GUI designed.
5.1.1 Compiling the source code.
5.1.2 Checking for no runtime errors.
Milestone: Software
tested.
5.2.1 Testing the input and output file
5.2.2 Error free retrieval of data
Milestone: Output tested.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
32
Schedule Chart
Work Tasks Planned
Start
Actual
Start
Planned
Complete
Actual
Complete
1. Identify needs and benefits
Meet with customer.
Establish product statement.
Milestone: Product stat. Defined.
Wk1 d1
Wk1 d2
Wk1 d5
Wk1 d5
Wk1 d1
Wk1 d2
Wk1 d5
Wk1 d5
Wk1 d1
Wk1 d4
Wk1 d6
Wk1 d6
Wk1 d1
Wk1 d4
Wk1 d7
Wk1 d7
2. Identify & define scope of actors
Milestone: Use-cases identified. Wk2 d1
Wk2 d3
Wk2 d5
Wk2 d5
Wk2 d1
Wk2 d4
Wk2 d5
Wk2 d5
Wk2 d2
Wk2 d5
Wk2 d6
Wk2 d6
Wk2 d3
Wk2 d5
Wk2 d7
Wk2 d7
3. Define function/behavior
Define function
Milestone: functionality definition
complete.
Wk3 d1
Wk3 d2
Wk3 d4
Wk3 d6
Wk3 d6
Wk3 d1
Wk3 d3
Wk3 d4
Wk3 d6
Wk3 d6
Wk3 d2
Wk3 d3
Wk3 d5
Wk3 d7
Wk3 d7
Wk3 d2
Wk3 d4
Wk3 d6
Wk3 d7
Wk3 d7
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
33
5. Design Interfaces
Meet with customers
Update interfaces
Milestone: Interfaces designing complete
Wk4 d6
Wk5 d2
Wk5 d4
Wk5 d5
Wk5 d5
Wk4 d6
Wk5 d2
Wk5 d4
Wk5 d5
Wk5 d5
Wk5 d1
Wk5 d3
Wk5 d4
Wk5 d6
Wk5 d6
Wk5 d1
Wk5 d3
Wk5 d4
Wk5 d7
Wk5 d7
6. Coding Wk6 d1 Wk6 d1 Wk7 d2 Wk7 d4
7. Testing Wk7 d2 Wk7 d4 Wk7 d4 Wk7 d6
Before developing the software it is necessary to make a framework & planning strategies so the
implementation gets easier & we come to know whether we are going in right direction. An
implementation planning is the pre planning before the development of the project, under which
all aspects decided. Planning may include the modules of the project-which helps a developer to
work in a direction & complete the module under the required time period. Secondly a planning
may have the form designing- A form designing help to a user, whether it is of his choice or he
want something more.
6.3.5 EstimationEstimation
Cost of currently available software: If a product is totally new then it’s a different matter
otherwise we always have a product working on the given problem so first check it out “what is
the cost of currently existing software”? Now if the cost of our product is higher than that one
check why it is so? Whether we are providing some extra or better facilities or any other reason.
If the cost of our system is low than also find out why it is so? When we go through this process
for our system we find out that the cost of the software is really very high as compared to our
product as it has high cost of development.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
34
Cost of resources:
As during the development of the system we are going to engage a number of resources so we
have to also think about their cost like Cost of computers, Cost of electric power, Cost of
workplace etc.
Cost of installation:
In the development of the system the cost of installation also matters a lot. It includes of: Cost of
software if not installed, Cost of electric cables, Cost of networking etc. In our project we have to
keep in mind the Cost of software and hardware i.e. Servers and hosts.
Cost of maintenance:
Feasibility Analysis related to economics also includes the cost of maintenance as after
installation of the software the developer has to provide a maintenance service to the customer
for a long time so it is also included in the cost of the system.
Cost of development:
In the early days of computing, software cost constituted a small percentage of the overall
computer based system cost. An order of magnitude error in estimates of software cost had
relatively little impact. Today software is the most expensive element. For complex, custom
systems, a large cost estimation error can make the difference between profit and loss. Cost
overrun can be disastrous for the developer.
Software project estimation can be done in systematic steps that provide estimate with
acceptable risks. To achieve reliable cost estimates we will go through the followings:
LOC based estimation.
FP based estimation.
Empirical estimation using COCOMO model II
LOC (Line of Code) Based Estimation:
For our purpose, we assume that refinement can be done in the underlined way and the major
software functions have been identified as:
User interface and control facilities (UICF)
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
35
Functional Code (FC)
Error control (EC)
Estimation table for LOC method
Function Estimated LOC
User interface and control facilities(UICF) 600
Functional Code (FC) 400
Error control (EC) 350
Total 1350
A review of old data indicates that the productivity for this kind of systems are generally 1000
lines/month. Based on the labor rate of 30000 Rs. Per month, the cost of per line will be 30 Rs.
And the overall cost of the project will be 30*1350=40500 Rs.
Empirical Estimation using COCOMO model II:
The name COCOMO model stands for Constructive Cost Model. The original COCOMO model
became one of the most widely used and discussed software cost estimation model in the
industries. It has evolved into a more comprehensive estimation model; called COCOMO II. It
requires sizing information. Three different sizing operations are available
Object point, function points and line of source code. COCOMO II uses object points for the
estimation. Like function points the object point is an indirect software measure that is computed
using counts of the number of screens (at the user interface), reports, and components likely to be
required to build the application. Each object instance is classified into 3 complexity levels. Once
complexity is determined the number of screens, reports, and components are weighted.
Object
Type
Simple Medium Difficult
Screen 5 11 7
Other Component
3 5 8
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
36
Number of simple screens = 5
Number of medium screens = 11
Number of difficult screens = 7
Number of simple components = 3
Number of medium components =5
Number of difficult components = 8
Total object point count =39
6.3.6 Risk Analysis
A risk is any unfavorable event or circumstance that can occur while a project is underway. If a
risk becomes true, it can hamper the successful and timely completion of a project. Therefore, it
is necessary to anticipate and identify different risks that a project is susceptible to, so that a
contingency plan may be prepared in advance to contain the effects of each risk. Risk
management aims at dealing with all kinds of risks that might affect a project. We quantify the
level of uncertainty and the degree of loss associated with each risk, when we analyze the
different categories of risks that are considered.
Types of Risks
The main types of risks are:
Project Risks
Project risks threaten the Project Plan. For example, if a project risk occurs in reality, then it is
likely that the project schedule will slip and that the costs will increase. Project risks identify
potential budgetary, schedule, personnel, resource, customer, and requirement problems and their
impact on a software project.
Technical Risks
Technical risks threaten the quality and timeliness of the software to be produced. A technical
risk makes implementation difficult or at times, impossible. Technical risks identify the potential
design, implementation, interfacing, maintenance, and verification problems.
Business Risks
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
37
Business risks threaten the viability of the software to be built. Business risks often jeopardize
the product or project. This risk occurs when:
A product or a system is built correctly but is not wanted in the market (known as
Market Risk)
A product is built without keeping the overall business strategy of the company in
mind (known as Strategic Risk)
A product does not fetch the price in the market it is expected to (known as Sell
Risk)
The team members do not work cohesively towards completing the product
(known as Management Risk) the cost of the product exceeds the budgetary
allocation (known as Budget Risk).
Known Risks
Known risks are those risks that are previously known to the developers. These risks include the
delays related to the delivery date of the project.
Predictable Risks
Predictable risks are risks that can be foretold based on experience gained in developing past
projects, or in developing previous segments of the current project. For example, a risk ignored
in the analysis phase is likely to cause a risk in the design phase.
Unpredictable Risk
Unpredictable risks are undesirable events that occur unexpectedly. This type of risk covers such
situations like the one where the user changes his requirements during the development of the
project.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
38
S No Risk Category Probability ImpactRisk
Exposure
1.Application designed
becomes outdatedBI 40% 2 0.8
2.Inexperienced
DevelopersSE 60% 2 1.2
3.Delivery Date
tightenedBI 50% 2 1.0
4. Cost Exceeds Budget BI 25% 3 0.75
5.Change in
RequirementPS 10% 4 0.4
6.Technology will not
meet expectationsTE 60% 1 0.6
7.Design Problems and
BugsSE 20% 2 0.4
8.Insufficient Time for
TestingTE 20% 2 0.4
9.Lack of Training on
ToolsDE 80% 2 1.6
Risk Table
A risk table is a technique for Risk Projection. Risk Projection is an attempt to delineate the
effects of risk based on two factors – the probability that the risk is real, and the consequences
associated with the occurrence of the risk, should the risk occur.
Where
BI = Business Impact
SE = Staff Size and Experience
PS = Product Size
TE = Technology to be Built
DE = Development Environment
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
39
And
Risk Impact categories-
1. Catastrophic
2. Critical
3. Marginal
4. Negligible
Risk Prioritization
Based on the impact of the individual risks, we can prioritize them in the order of their removal
as follows:
Design does not meet requirements.
Size of Project becomes large.
Delivery Deadline will be tightened.
Insufficient Time for Testing
Larger Number Of user than Planned.
Customer changes the requirements.
Lack of Training on Development Tools.
Technology does not meet requirements.
End users resist system.
Project Loss due to Hard Disk Failure.
6.4 Design
The design of object oriented software requires the definition of multilayered software
architecture, the specification of subsystem that performs required function and provide
infrastructure support, a description of object (classes) that form the building blocks of
the systems, and a description of the communication mechanism that allow data to flow
in the system.
6.4.1 Design Concepts
Control hierarchy or program structure - represents the module organization and implies a
control hierarchy, but does not represent the procedural aspects of the software (e.g. event
sequences)
Dec
reasing Priorit
y
Dec
reasing Priorit
y
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
40
Structural partitioning - horizontal partitioning defines three partitions (input, data
transformations, and output); vertical partitioning (factoring) distributes control in a top-
down manner (control decisions in top level modules and processing work in the lower
level modules)
Data structure - representation of the logical relationship among individual data elements
(requires at least as much attention as algorithm design)
Software procedure - precise specification of processing (event sequences, decision
points, repetitive operations, data organization/structure)
Information hiding - information (data and procedure) contained within a module is
inaccessible to modules that have no need for such information
ER DIAGRAM
An entity-relationship (ER) diagram is a specialized graphic that illustrates the interrelationships
between entities in a database. ER diagrams often use symbols to represent three different types
of information. Boxes are commonly used to represent entities. Diamonds are normally used to
represent relationships and ovals are used to represent attributes.
6.4.2 Design Technique
The way in software is to be designed is guided by design technique. Five techniques
have already been suggested:
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
41
1. Step wise refinement. It is a top down technique for decomposing a system from
high-level specifications into more elementary levels.
2. Levels of abstraction. It is decomposing decisions into abstract ideas so that
independent programmers can develop them.
3. Structured design. It uses structured diagrams.
4. Top-down development. It shows how the modules get called in top-down approach.
5. Bottom-up design technique.
5.4.3 Modeling
Data modeling answers a set of specific questions that are revel vent to any data processing
application. What are primary data object to be proposed by the system? What is the composition
of each data object and what attributes describe the object? Here do the object currently reside?
What are the relationship between each object and other object? What are the relationship
between the object and the processes that transform them?
To answer this all problems different type of data modeling methods make use of the entity
relationship model and dataflow diagram show the data flow.
6.4.3.1 State Diagram
A state diagram is a type of diagram used in computer science and related fields to describe the
behavior of systems. State diagrams require that the system described is composed of a finite
number of states; sometimes, this is indeed the case, while at other times this is a
reasonable abstraction. There are many forms of state diagrams, which differ slightly and have
different semantics.
6.4.3.1 Activity Diagram
Activity diagram is one of the five diagrams in the UML for modeling the dynamic
aspect of the system. An activity diagram is essentially a flow chart showing flow of
control from activity to activity.
With an activity diagram we can also model the flow of an object as it moves from state
to state at different points in flow of control. Activity diagram may extend along to
visualize, specify, construct and document the dynamic of society of objects or they may
be use to model the flow of control of an operation.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
42
6.4.3.3 Data Flow Diagram
As information moves through software it is modified by a series of transformations. A data flow
diagram is a graphical representation that depicts information flow and the transforms that are
applied as data move from input to output. The basic of a data flow diagram also known as a data
flow graph or bubble chart.
The data flow may be used to represent a system or software at any level of abstraction. In fact
DFDs may be partitioned into levels that represent the entire software elements a s single bubble
with input and output data indicated by incoming and outgoing arrows respectively.
DFD LEVEL 0DFD LEVEL 0
A level 0 DFD also called fundamental system model or a context model, represents the entire
software elements as a single bubble with input and output data indicted by incoming and
outgoing arrow, respectively. Additional processes and information flow paths are represented as
the level 0 is portioned in detail.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
43
Fig. DFD-0
DFD 1 FOR LOGIN DFD 1 FOR LOGIN
DFD 1 shows the details of the system. In ONLINE NOTEPAD system Database is used
to store the web client user’s ID, name, password, security question, answer. In this
application database is used for login, registration, and forgot password so we are
prepared a figure DFD 1 for login.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
44
Figure – DFD 1
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
45
6.5.1 Language Used Characteristics
JAVA
In this project I frequently used JAVA as front end.
The reason behind choosing java is as follow:-
Ten Most Popular Web Sites (Alexa.com, Fall 2008)
1. Google– Custom technology, some Java
2. Yahoo- PHP and Java
3. MySpace- ColdFusion (Java “under the hood”)
4. YouTube- Flash, Python, Java
5. Facebook – PHP
6. Windows Live Search – .NET
7. MSN (Microsoft Network) – .NET
8. Wikipedia – PHP
9. Ebay – Java
10. AOL- Java
It enables us to build platform independent programs that can execute in a wide variety of
hardware and software. The ONLINE NOTEPAD is developed in java’s applet and servlet
technology.
Java applets are one of four kinds of Java programs:
An application is a standalone program that can be invoked from the command
line.
An applet is a program that runs in the context of a browser session.
A servlet is a program that is invoked on a server program, and it runs in the
context of a web server process.
Applets are programs stored on a web server, similar to web pages.
When an applet is referred to in a web page that has been fetched and processed by a
browser, the browser generates a request to fetch (or download) the applet program, then
executes the applet program in the browser’s execution context on the client host.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
46
Applet Security
For security reasons, applets that are loaded over the network have several restrictions.
an applet cannot ordinarily read or write files on the computer that it's executing on.
an applet cannot make network connections except to the host that it came
from.
Servlet: A Servlet’s Job
• Read explicit data sent by client (form data)
• Read implicit data sent by client (request headers)
• Generate the results
• Send the explicit data back to client (HTML)
• Send the implicit data to client (status codes and response headers)
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
47
Servlet is used to make dynamic web pages. The Web page is based on data submitted by
the user
– E.g., results page from search engines and orderconfirmation pages at on-line stores
• The Web page is derived from data that changes frequently
– E.g., a weather report or news headlines page
• The Web page uses information from databases or other server-side sources
– E.g., an e-commerce site could use a servlet to build a Web page that lists the current price and
availability of each item that is for sale.
The Advantages of Servlets Over “Traditional” CGI
• Efficient– Threads instead of OS processes, one servlet copy
• Convenient– Lots of high-level utilities
• Powerful– Sharing data, pooling, persistence
• Portable– Run on virtually all operating systems and servers
• Inexpensive– There are plenty of free and low-cost servers
• Secure– No shell escapes, no buffer overflows
• Popular: – The single most common use of Java technology
The leading technology for medium/large Web applications
• Google reports over 500 million Web pages using JSP
• Supported by:– Apache, Oracle, IBM, Sybase, BEA, Macromedia, Caucho, Sun/iPlanet, New
Atlanta, ATG, Fujitsu, Lutris, Silverstream, the World Wide Web Consortium (W3C), and many
others – Plugins for IIS and Zeus.
• Runs on: – Windows, Unix/Linux, MacOS, VMS, and IBM mainframe OSs
• Used for: – Airline companies, hotels, e-commerce sites, search engines, banks, financial sites,
etc., etc., etc.
APPLET SERVLET COMMUNICATION
Applet-Servlet Communication with HTTP GET and POST
In the previous version the HTML form was used to submit the student's data to the servlet.
Accessing the form data on the server side was simple and straightforward. This was
accomplished by calling the method HttpRequest.getParameter(<form field name>), which is
available in the Java servlet API.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
48
We are now using an applet front end and we need a mechanism for the applet to communicate
with the servlet. We need to capture the information a student enters and somehow pass it to the
servlet. Since servlets support the HTTP/CGI interface, we can communicate with the servlet
over HTTP socket connections. The applet simply opens a connection to the specified servlet
URL. Once this connection is made, the applet can get an output or input stream on the servlet.
The applet can send data to the applet by using a GET or a POST method. If a GET method is
used, the applet must URL-encode the name/value pair parameters into the actual URL string.
For example, if we wanted to send the name/value pair of LastName=Jones, our servlet URL
would resemble:
http://www.foo.com/servlet/
TestServlet?LastName=Jones
If you have additional name/value pairs, they are separated by an ampersand (&). If we add a
name/value pair of FirstName=Joe, our revised servlet URL would resemble:
http://www.foo.com/servlet/
TestServlet?LastName=Jones&FirstName=Joe
We would have to URL-encode each name/value pair for the student's contact information. To
send a GET method to a servlet, the applet can use the java.net.URLConnection class. The code
fragment below shows you how.
String location = "http://www.foo.com/servlet/TestServlet?LastName=Jones";
URL testServlet = new URL( location );
URLConnection servletConnection = testServlet.openConnection();
inputStreamFromServlet = servletConnection.getInputStream();
// Read the input from the servlet.
. . .
Sending Objects from an Applet to a Servlet
With the information presented so far, we can send a Java object to a servlet. In our Student
Tracking application the applet sends a Student object to the servlet when a new student is
registered. Figure 3 displays the object interaction between the servlet and the applet.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
49
The code fragment shown in Listing 3 is used by the applet to send the Student object to the
servlet. The applet is actually sending a POST method to the servlet. This client-side code
fragment opens a URL connection to the servlet URL. We inform the servlet connection that
we're sending output data over the connection and receiving input. Other methods are called so
the connection will not use cached versions of the URL. An important call in this code fragment
is setRequestProperty(). This method sets the content type in the HTTP request header to the
MIME-type application/octet-stream, which allows us to send binary data, in this case our
serialized Student object. The next couple of statements create an ObjectOutputStream that
actually writes the object to the connection stream.
We're not finished yet. Recall that our application is in the process of registering a new student.
The servlet has to read this student object and update the database accordingly. Thus we need
code on the server side to receive a serialized Student object.
The code fragment in Listing 4 displays the servlet code for reading a Student object from an
applet. The servlet handles POST methods by implementing the doPost() method and acquires an
ObjectInputStream from the requesting applet. From there it is simply a matter of reading the
Student object from the stream. At this point the Student object is loaded and available for
registration in the database. Please note the small number of statements on the server side for
reading in a serialized object. You have to agree it's quite simple and straightforward.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
50
Sending Objects from a Servlet to an Applet
The servlet in our Student Tracking application is now capable of receiving a student object and
registering it in the database. Now the servlet has to return an updated list of registered students
that is then returned as a vector of student objects. This interaction is also illustrated in Figure 3.
When the servlet returns the vector, there's no need to iterate through the vector and serialize
each Student object individually. The servlet can serialize the entire vector in one step since the
class java.util.Vector also implements the java.io.Serializable interface.
The code fragment shown in Listing 5 is used by the servlet to send a vector of Student objects to
the applet. The sendStudentList() method is passed to an HttpResponse parameter and a vector of
Student objects. Since the applet initiated the HttpRequest, the servlet can respond to the applet
by using the HttpResponse parameter. Thus an ObjectOutputStream to the applet is created based
on the HttpResponse object. The student vector is actually serialized and sent to the vector with a
call to outputToApplet.writeObject(studentVector).
As we've seen before, code is needed by the applet to handle the data sent from the servlet. The
applet uses the code fragment shown in Listing 6 to read in a vector the Student objects from the
servlet. The applet opens a URL connection to the servlet's location. Appropriate methods are
called to ensure that the applet doesn't use cached versions of the URL connection. Next, an
ObjectInputStream is created based on the servlet's input stream socket connection. All the
switches have been flipped now and we can easily read in our vector of Student objects. Again,
remember that we have to cast the object to the appropriate type.
Congratulations! You've successfully read in a vector of student objects. This vector is now
available for refreshing the AWT List component.
Java was designed to be easy for the professional programmer to learn and use effectively.
Assuming that you have some programming experience, you will not find Java hard to master. If
you already understand the basic concepts of object-oriented programming, learning Java will be
even easier.
Java provides a large API for making our application such as:
java.security
javax.crypto: Mac is class in this package.
javax.crypto.interfaces
javax.crypto.spec
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
51
java.io
java.net
java.awt
java.swing
The first challenge of building a secure application is authentication. Authentication is
tremendously important in computer applications. The program or person you communicate with
may be in the next room or on another continent; you have none of the usual visual or aural clues
that are helpful in everyday transactions. Public key cryptography offers some powerful tools for
proving identity.
A message digest takes an arbitrary amount of input data and produces a short, digested version
of the data. The Java Cryptography Architecture (JCA) makes it very easy to use message
digests. The java .security.MessageDigest class encapsulates a cryptographic message digest.
Encryption is a tool you can use to protect secrets. You might encrypt files on your hard drive so
that the loss or theft of your computer would not compromise your data. You might also want to
encrypt your network communications, especially the ones to your bank, or your doctor, or your
friends. A cipher encrypts or decrypts data.
6.5.2 Coding
6.5.2.1 Efficient Coding
The efficient coding was proposed by Horace Barlow in 1961 as a theoretical model of sensory
coding in the brain. Within the brain, neurons often communicate with one another by sending
electrical impulses referred to as action potentials or spikes. One goal of sensory neuroscience is
to decipher the meaning of these spikes in order to understand how the brain represents and
processes information about the outside world. Barlow hypothesized that the spikes in the
sensory system formed a neural code for efficiently representing sensory information. By
efficient Barlow meant that the code minimized the number of spikes needed to transmit a given
signal. This is somewhat analogous to transmitting information across the internet, where
different file formats can be used to transmit a given image. Different file formats require
different number of bits for representing the same image at given distortion level, and some are
better suited for representing certain classes of images than others. According to this model, the
brain is thought to use a code which is suited for representing visual and audio information
representative of an organism's natural environment.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
52
6.5.2.2 Validation Checks
In computer science, data validation is the process of ensuring that a program operates on clean,
correct and useful data. It uses routines, often called "validation rules" or "check routines", that
check for correctness, meaningfulness, and security of data that are input to the system. The rules
may be implemented through the automated facilities of a data dictionary, or by the inclusion of
explicit application program validation logic.
Data type checksChecks the data type of the input and give an error message if the input data does not match with
the chosen data type, e.g., In an input box accepting numeric data, if the letter 'O' was typed
instead of the number zero, an error message would appear.
File existence checkChecks that a file with a specified name exists. This check is essential for programs that use file
handling.
Format or picture checkChecks that the data is in a specified format (template), e.g., dates have to be in the format
DD/MM/YYYY.
Regular expressions should be considered for this type of validation.
Hash totalsThis is just a batch total done on one or more numeric fields which appears in every record. This
is a meaningless total, e.g., add the Telephone Numbers together for a number of Customers.
Limit checkUnlike range checks, data is checked for one limit only, upper OR lower, e.g., data should not be
greater than 2 (<=2).
Logic checkChecks that an input does not yield a logical error, e.g., an input value should not be 0 when
there will be a number that divides it somewhere in a program.
Presence checkChecks that important data are actually present and have not been missed out, e.g., customers
may be required to have their telephone numbers listed.
Range checkChecks that the data lie within a specified range of values, e.g., the month of a person's date of
birth should lie between 1 and 12.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
53
6.6 Testing
5.6.1 TESTING OBJECTIVE
There are number of rules that can be serving well as testing objectives.
Testing is the process of executing a program with the intent of finding an error.
A good test case is one that has a high probability of finding an as-yet-undiscovered error.
A successful test is one that uncovers as- yet undiscovered error.
If testing is conducted successfully, it will uncover error into software as a secondary benefit
testing demonstrates that software function appear to working according to the specifications,
that behavioral and performance requirements appear to have been met.
5.6.2 Testing methods and strategies used along with test data and the error listed for each5.6.2 Testing methods and strategies used along with test data and the error listed for each test casetest case
Software testing is a critical element of software quality assurance and represents the ultimate
review of specification’s design, and coding. The point was kept in mind throughout the software
development activity and a conscious effort was made to test the system as thoroughly as
possible. The objective behind this was to systematically uncover different classes of errors with
a minimum amount of time and effort.
Tests were conducted on entire software as a whole, and on each of modules independently in
two ways:
1. The software and individual module were tested foe there logical correctness, and for
syntactical correctness of their code.
2. The entire software and the individual module were tested to see if desire functions were
being performed satisfactorily or not.
These two tests activities were carried out as complement to each other and can be desire in
details as under.
WHITE BOX TESTING
The first testing method described above is called white box testing in the software engineering
language. The exploits the control structure of the software to test for any as yet undiscovered
errors. In this technique:
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
54
1. All independents paths with in a module or exercised at least once.
2. All logical decisions are exercised on their true and false sides.
3. All loops are executed at the boundaries are with their operational bounds.
4. The internal data structure is exercised for their validity.
In this project, instead of conducting tests at the end of software development, it was done in the
parallel with the development activity. As each module was finished, it was tested thoroughly for
their synthetic and logical correctness using basic path testing later on the entire path from the
main module to this module was tested thoroughly using same technique.
This having being done for each module separately broke the testing activity in to small and
manageable parts. This was a more convenient and practical approach then testing the entire
software after all of it has been developed which would have been a cumbersome task.
The whole software was, of course tests after integrating all the modules together, but the
complexity of this task was a greatly reduced because all the modules have been tested at least
once.
BLACK BOX TESTING
Black box testing concentrates on testing the functional requirements fulfillment by the software,
and ignores its control structure .it attempt to find errors in the following categories:
1. Incorrect or missing functions.
2. Interface errors
3. Errors and data structures or external database access.
4. Performances errors.
5. Initialization and termination errors
Again this is done as previous case as each module was finished and tested to white box testing,
it was also tested was its functional requirement fulfillment by applying black box testing .it was
tested to see if it perform all the desire functions in the desire manner.
Methods applied for black box testing was “equivalence partitioning method “. This method
divides the input domain of a program in to classes of data for which test cases may be derived.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
55
This “parallel with development approach “to testing was made possible due to the adherence to
the design criteria of modularity. Since care was taken too developed a modular software test
could be easily applied to individual modules. All the output and reports were checked and
verified for their accuracy and reliability.
TEST PLAN SPECIFICATION
Modules are integrated by moving through control hierarchy, beginning from main module.
Main module is tested as per driver sub-modules are tested as per detail specification given
below. Sub-modules testing are done by depth first method
SPECIFICATION FOR SUB-MODULES
Checklist for sub-module:
Number of input parameter equal to the number of arguments.
Unit and order of parameter, arguments match.
Transmission of arguments to modules, a function is correct.
Global variables are defined across modules.
Checklist for logical data structure testing
Improper or incorrect typing.
Incorrect variable names (misspelled/truncated).
Data type mismatch.
TESTING PROCEDURES USED
The following methods for testing where carried out to the correctness & reliability of the leaves
processing system.
UNIT TESTING
During the implementation for the system, each module was tested separately to uncover errors
within its boundaries.
INTERFACE TESTING
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
56
To assure that information properly flows out the program unit under test.
THE INDEPENDENT PATH TEST
All independent paths through the module were executed at least once to assure that executes
perfectly.
BOUNDARY TEST
To assure that the module operates at the boundaries. Establishment to limit or restrict
processing.
INTEGRATION TESTING
It is systematic technique for constructing the program structure while at the same time
conduction the test errors associate interfacing. Top-down integration approach was carried out
to leave processing system. Some of them carried out as follows:
VALIDATION TESTING
To uncover function errors i.e. to check were functional characteristics confirm to specification
or not.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
57
7 conclusion and Discussion
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
58
7.1. CONCLUSION AND DISCUSSION
This application provides no. of facilities to its web client such as online text file storage and
online management by maintaining directories such as create, delete and rename. This online
storage includes security. The application includes a solution to the network security problems
that is secure data transmission. Security is provided by using encryption and decryption and
message authentication code. Securities apply on both side web client and web server using
3DES algorithm and message authentication code. By this web application user can create simple
text file and java programs and compile it through web server’s compiler.
7.1.1 LIMITATION OF PROJECT
Although this application provides many services but it has some limitations:
It’s supported only text file.
This type application can’t run user input programs.
User can use up to 2MBs server space.
7.1.2 Difficulties Encountered
The application includes a solution to the network security problems that is secure data transmission.
Security is provided by using encryption and decryption and message authentication code. These are
some difficulties encountered during code.
7.1.3 SUGGESTION FOR FUTURE ENHANCEMENTS
The Online Notepad is an ideal tool to keep records, save to-do lists, share them with others or
simply record a side note. This application provides such services. There are some services
which should be included in this project like:
o Application depends on Java Runtime Environment (JRE) for running Applet at
client side, so this type application can be implemented without of JRE.
o Note can be shared with URL.
o Although there is facility to store and make notes public and private there should
be facility protected sharing.
o There should be facility of online IDE.
o This application can be made for no. of language not only just for Java.
o In this application should have StylePad or WordPad.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
59
8 Bibliography and References
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
60
8.1.1 REFERENCE BOOKS
1. Java2: Complete Referencea. Edition : 5th,b. Author : Herbert Schildt,c. Published by : McGraw-Hill
2. Cryptography and Network Security Principles and Practices:a. Edition : 4th,b. Author : William Stallings. c. Published by : Pearson Prentice Hall.
3. Author O’Reilly,”Java Networking Programming”,Second Edition
4. Author Michael Toot & Kelly.L.Murdock, “JAVA Script in an Instant”
5. Ramesh Bangia , “Learning HTML 4”
8.1.2. OTHER DOCUMENTATION AND RESOURCES
1. www.google.com
2. www.oreilly.com
3. www.osborne.com
4. www.w3c.org
5. www.java.sun.com 6. www.java2s.com
Papers:1. KUI-HE YANG, SHI-JIN NIU- Data Safe Transmission Mechanism Based on Integrated
Encryption Algorithm- the science and technology research program of Hebei province 03/2009.
2. Wuling Ren, Zhiqian Miao-A Hybrid Encryption Algorithm Based on DES and RSA in
Bluetooth Communication- 2010 Second International Conference on Modeling, Simulation
and Visualization Methods.