86
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore 1 1. 1. INTRODUCTION

Online Notepad

Embed Size (px)

Citation preview

Page 1: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

1

1. INTRODUCTION

Page 2: Online Notepad

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.

Page 3: Online Notepad

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

Page 4: Online Notepad

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

Page 5: Online Notepad

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

Page 6: Online Notepad

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

Page 7: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

7

2 SYSTEM ANALYSES

Page 8: Online Notepad

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.

Page 9: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

9

3 Feasibility Study

Page 10: Online Notepad

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

Page 11: Online Notepad

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

Page 12: Online Notepad

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

Page 13: Online Notepad

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

Page 14: Online Notepad

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.

Page 15: Online Notepad

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)

Page 16: Online Notepad

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

Page 17: Online Notepad

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

Page 18: Online Notepad

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.

Page 19: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

19

Page 20: Online Notepad

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.

Page 21: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

21

6 Software Engineering Approach

Page 22: Online Notepad

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.

Page 23: Online Notepad

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

Page 24: Online Notepad

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

Page 25: Online Notepad

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.

Page 26: Online Notepad

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.

Page 27: Online Notepad

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

Page 28: Online Notepad

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.

Page 29: Online Notepad

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

Page 30: Online Notepad

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

Page 31: Online Notepad

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.

Page 32: Online Notepad

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

Page 33: Online Notepad

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.

Page 34: Online Notepad

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)

Page 35: Online Notepad

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

Page 36: Online Notepad

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

Page 37: Online Notepad

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.

Page 38: Online Notepad

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

Page 39: Online Notepad

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

Page 40: Online Notepad

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:

Page 41: Online Notepad

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.

Page 42: Online Notepad

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.

Page 43: Online Notepad

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.

Page 44: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

44

Figure – DFD 1

Page 45: Online Notepad

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.

Page 46: Online Notepad

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)

Page 47: Online Notepad

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.

Page 48: Online Notepad

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.

Page 49: Online Notepad

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.

Page 50: Online Notepad

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

Page 51: Online Notepad

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.

Page 52: Online Notepad

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.

Page 53: Online Notepad

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:

Page 54: Online Notepad

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.

Page 55: Online Notepad

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

Page 56: Online Notepad

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.

Page 57: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

57

7 conclusion and Discussion

Page 58: Online Notepad

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.

Page 59: Online Notepad

Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore

59

8 Bibliography and References

Page 60: Online Notepad

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.