Professional Documents
Culture Documents
1. INTRODUCTION
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
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 doesnt 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.2 OBJECTIVE
Now a days 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 computing end users dont need to require knowledge of configurable computing resources.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
4 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.4 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 establishing a complete information description, a detailed function description, a representation of
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
5 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 Specification To run this project no additional hardware are necessary only a internet connection on PC and higher configuration of RAM to increase the system performance. Hardware Ram Internet Specification 64 MB 64 Kbps
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
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
Developer
Tools(Software) Java Editor Web Server Backend(database) Reporting Operating System Runtime Environment
Version and description Jdk1.6 is an SDK for java NetBeans6.8 is IDE for rapid development apache-tomcat-6.0.18 MySQL Server 5.0 PS UML, MS-Office Windows XP SP2 Jre1.6.x
User
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
2 SYSTEM ANALYSES
8 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 todays organization. Survival on manual system is difficult so, thats 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 softwares operational characteristics (functional, data, and behavior), indicates softwares 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
3 Feasibility Study
FESEABLITY STUDY
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
10 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. 2. 3. Technical Feasibility Economic Feasibility 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 The above tools are readily available, easy to work with and widely used for
views, indexes. 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 computers so that it is easier for updating. Hence the organization has not technical difficulty in adding this system. Tools Used :
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
11 1) JAVA Library 2) J2SDK 2.0 3) JDK 1.2 4) Apache Tomcat server 5) MySql
Total time
3.2 Economical feasibility
85 days
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 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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
12 The backend required for storing other details is also the same database that is Sql. The computers in the organization are highly sophisticated and dont 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
:
Apache Tomcat MySql J2EE Kit : Free : Free
: Free
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. 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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
13
4 Literature Survey
LITERATURE SURVEY
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
14
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. 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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
15 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 Javas Applet and Servlet technology. A Servlets 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) 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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
16 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, miaozq@pop.zjgsu.edu.cn, 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 niushijin24@yahoo.com.cn 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 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 users input and package programs).
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
17
5 Technical Parts
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
18
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
19
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
20
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
21
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
22
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
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
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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
25
To implement and run this project following software are necessary. Tools(Software) Java Editor Web Server Backend(database) Reporting Operating System Runtime Environment Version and description Jdk1.6 is an SDK for java NetBeans6.8 is IDE for rapid development apache-tomcat-6.0.18 MySQL Server 5.0 PS UML, MS-Office Windows XP SP2 Jre1.6.x
Developer
User
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
26
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
27
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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
28 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.
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 projects, a single individual may perform all software engineering tasks consulting with specialties required.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
29 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.
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.
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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
30 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. Guides: Mrs Maya Ingle Books and Internet
31
Week Week 4, 5, 6 Week 7, 9,10 8, 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
Work tasks
1, 2, 3
2.3.1
Analysis
the
Connect module 2.3.2 Analysis Remote Operation module 2.3.3 Analysis Encryption/Decryption module 2.3.4 Analysis chatting Module 2.3.5. Analysis Message Passing Module 2.3.6. Analysis My
Milestone: tested.
Software
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
32
5.2.2 Error free retrieval of data
Schedule Chart Work Tasks Planned Start 1. Identify needs and benefits Meet with customer. Establish product statement. Milestone: Product stat. Defined. Wk1 d1 Wk1 d2 Wk1 d5 Wk1 d5 2. Identify & define scope of actors Milestone: Use-cases identified. Wk2 d1 Wk2 d3 Wk2 d5 Wk2 d5 3. Define function/behavior Wk2 d1 Wk2 d4 Wk2 d5 Wk2 d5 Wk2 d2 Wk2 d5 Wk2 d6 Wk2 d6 Wk2 d3 Wk2 d5 Wk2 d7 Wk2 d7 Wk1 d1 Wk1 d2 Wk1 d5 Wk1 d5 Wk1 d1 Wk1 d4 Wk1 d6 Wk1 d6 Wk1 d1 Wk1 d4 Wk1 d7 Wk1 d7 Actual Start Planned Complete Actual Complete
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
33 Define function Milestone: functionality definition complete. Wk3 d1 Wk3 d2 Wk3 d4 Wk3 d6 Wk3 d6 5. Design Interfaces Meet with customers Update interfaces Milestone: Interfaces designing complete Wk4 d6 Wk5 d2 Wk5 d4 Wk5 d5 Wk5 d5 6. Coding 7. Testing Wk6 d1 Wk7 d2 Wk4 d6 Wk5 d2 Wk5 d4 Wk5 d5 Wk5 d5 Wk6 d1 Wk7 d4 Wk5 d1 Wk5 d3 Wk5 d4 Wk5 d6 Wk5 d6 Wk7 d2 Wk7 d4 Wk5 d1 Wk5 d3 Wk5 d4 Wk5 d7 Wk5 d7 Wk7 d4 Wk7 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
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 Estimation
Cost of currently available software: If a product is totally new then its 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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
34 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.
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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
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
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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
37
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
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
Risk Table
Risk S No 1. 2. 3. 4. 5. 6. 7. 8. 9. Risk Application designed becomes outdated Inexperienced Developers Delivery Date tightened Cost Exceeds Budget Change in Requirement Technology will not meet expectations Design Problems and Bugs Insufficient Time for Testing Lack of Training on Tools Category BI SE BI BI PS TE SE TE DE Probability 40% 60% 50% 25% 10% 60% 20% 20% 80% Impact 2 2 2 3 4 1 2 2 2 Exposure 0.8 1.2 1.0 0.75 0.4 0.6 0.4 0.4 1.6
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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
39 PS = Product Size TE = Technology to be Built DE = Development Environment And Risk Impact categories1. 2. 3. 4. Catastrophic Critical Marginal 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.
Decreasing Priority
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
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
40 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) Structural partitioning - horizontal partitioning defines three partitions (input, data transformations, and output); vertical partitioning (factoring) distributes control in a topdown 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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
41 The way in software is to be designed is guided by design technique. Five techniques have already been suggested: 1. Step wise refinement. It is a top down technique for decomposing a system from highlevel 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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
42 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.
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 0
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
43 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.
Fig. DFD-0
DFD 1 FOR LOGIN DFD 1 shows the details of the system. In ONLINE NOTEPAD system Database is used to store the web client users 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
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 javas 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 browsers execution context on the client host.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
46
s e r v e r
h o s t b r o w s e r
s e r
h o s t
e b
s e r v e r m q re e u s t f o r y W e b P a g e . h m y W e b P a g e . h t m t mH
b r o w l el l l o W
y W
e b P
a g e . h
t m
<
. . . a p p . . .
H
o r l d . c l a s s
l e H t e c l o l od W = <o /r a l dp .p c l l e a t s > s H e e l l o W o r l d . c l a s s H
r e q u e s t f o r e l l o W o r l d c l a s s e l l o W o r l d . c l a s s
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 Servlets 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 MIMEtype 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. 6.5.2.2 Validation Checks
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
52 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 checks Checks 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 check Checks that a file with a specified name exists. This check is essential for programs that use file handling. Format or picture check Checks 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 totals This 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 check Unlike range checks, data is checked for one limit only, upper OR lower, e.g., data should not be greater than 2 (<=2). Logic check Checks 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 check Checks 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 check Checks 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.
6.6 Testing
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
53 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 each test case Software testing is a critical element of software quality assurance and represents the ultimate review of specifications 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.
54 2. 3. 4. All logical decisions are exercised on their true and false sides. All loops are executed at the boundaries are with their operational bounds. 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.
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.
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.
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.1.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
58 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 servers compiler. 7.1.1 LIMITATION OF PROJECT
Although this application provides many services but it has some limitations: Its supported only text file. This type application cant 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. Note can be shared with URL. Although there is facility to store and make notes public and private there should be facility protected sharing. There should be facility of online IDE. This application can be made for no. of language not only just for Java. In this application should have StylePad or WordPad.
o o
o o o
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
59
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore
60 1. Java2: Complete Reference a. 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 OReilly,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.
Department of Information Technology, Shri Vaishnav Institute of Technology & science, Indore