Sunteți pe pagina 1din 76

Abstract

Teleconferencing or Chatting is a method of using technology to bring people and ideas together despite of the geographical barriers. The technology has been available for years but the acceptance it was quit recent. There are so many messengers already developed and performing well for the Internet. In order to use messengers of this type a user always has to

connect to the internet, which may cost many and time. If the users in organizations want to pass the messages or chat with in the organization they cant use Internet always which may cause security problems. So they should use a messenger, which may send the messages with in the network and Internet.

Our project is entitled as Java Messanger. It is made up of two applications the client application, which runs on the users Pc and server application, which runs on any Pc on the network. To start chatting client should get connected to server where they can practice two kinds of chatting, public one (message is broadcasted to all connected users) and private one (between any 2 users only) and during the last one security measures were taken. We can use messenger either in Intranet or in Internet. Users can chat with their colleagues with in the organization and with others in the Internet. If it is used with in the LAN it will not distribute the messages to the Internet.

As a matter of fact there are several varieties of chatting. The simplest computer chatting is a method of sending, receiving, and storing typed messages with a network of users. This network could be WAN (Wide Area Network) or LAN(Local Area Network). Our chatting system is made up of two applications one runs on the server side (any computer on the network you choose it to be the server) while the other is delivered and executed on the client PC. Every time the client wants to chat he runs the client application, enter his user name, host

name where the server application is running, and hits the connect button and start chatting. The system is many-to-many arrangement; everyone is able to talk to anyone else. Messages may be broadcasted to all receivers (recipients are automatically notified of incoming messages) or sent to special individuals (private chatting through server). This Java Messenger project is to provide a chatting through out the world. IRC(Internet Relay Chat) is a multi user chat system, where people meet on channels (rooms, virtual places, usually with a certain topic of conversion) to talk in groups, or privately, There is no restriction on the number of people that can participate in a given discussion , or number of channels that can be formed on IRC. An IRC client reads in the commands and text that you supply to it.

Organization Profile:

Table of Contents
S.No 1. 1.1 1.2 1.3 2. 2.1 2.2 2.3 2.4 2.5 Topic Introduction Description of the Project Scope of the Project Introduction to Modules System Analysis Introduction Problem Statement Proposed System Feasibility Study Requirements Specification 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 3. 3.1 3.2 3.3 4. 4.1 4.2 4.3 5. Introduction Functional requirements Performance requirements Software and Hardware Specification Language Used Use Case Diagrams Page No.

System Design Introduction Design Methodology UML Diagrams System Implementation Introduction Organization Impact User Management Assessment System Testing

6. 7. 8. 9.

System Maintenance Output Screens Conclusion Bibliography

1. Introduction:
1.1 Description of the Project
Teleconferencing or Chatting is a method of using technology to bring people and ideas together despite of the geographical barriers. The technology has been available for years but the acceptance it was quit recent. There are so many messengers already developed and performing well for the Internet. In order to use messengers of this type a user always has to connect to the internet, which may cost many and time. If the users in organizations want to pass the messages or chat with in the organization they cant use Internet always which may cause security problems. So they should use a messenger, which may send the messages with in the network and Internet. Our project is entitled as Java Messanger. It is made up of 2 applications the client application, which runs on the users Pc and server application, which runs on any Pc on the network. To start chatting client should get connected to server where they can practice two kinds of chatting, public one (message is broadcasted to all connected users) and private one (between any 2 users only) and during the last one security measures were taken. We can use messenger either in Intranet or in Internet. Users can chat with their colleagues with in the organization and with others in the Internet. If it is used with in the LAN it will not distribute the messages to the Internet.

1.2

Scope of the Project


As a matter of fact there are several varieties of chatting. The

simplest computer chatting is a method of sending, receiving, and storing typed messages with a network of users. This network could be WAN (Wide Area Network) or LAN(Local Area Network). Our chatting system is made up of two applications one runs on the server side (any computer on the network you choose it to be the server) while the other is delivered and executed on the client PC. Every time the client wants to chat he runs the client application, enter his user name, host name where the server application is running, and hits the connect button and start chatting. The system is many-to-many arrangement; everyone is able to talk to anyone else. Messages may be broadcasted to all receivers (recipients are automatically notified of incoming messages) or sent to special individuals (private chatting through server). This Java Messenger project is to provide a chatting through out the world. IRC(Internet Relay Chat) is a multi user chat system, where people meet on channels (rooms, virtual places, usually with a certain topic of conversion) to talk in groups, or privately, There is no restriction on the number of people that can participate in a given discussion , or number of channels that can be formed on IRC. An IRC client reads in the commands and text that you supply to it.

1.3

Introduction to Modules The following are the modules in Multi User Chat

System : 2. 3. 4. 5. Server Module. Clients Module. Public Chatting. Private Chatting.

The following are the functions of Multi User Chat System : 1. Start the Server: First start the server, then only clients login to chat rooms. 2. Client Login: in this clients enter into chat rooms by entering the nick name server Name and server port number. 3. See all Online People: When ever we entered into chat room then we can see the all the people who are online. 4. Send Public Message: We can send the messages to all the on line people. 5. Send Private Messages: We want to send messages to only a particular user then we change the room from general room. 6. Sending Emote Icons: By Using this Users sending not only text message but also sending emotion icons. They express user feeling very clearly. 7. Ignore Users: we does into want to chat with particular user then user ignores messages send by that user. 8. Allow Users: We allow all Ignored Users by clicking the allow user button. 9. Log out: If Users does into want to chat with any person then sign out from messenger. It is also providing security from unauthorized persons. Features of the Multi User Chat System:

It is very useful to chat peoples with in the network area. We can express out feelings very easily by sending Emoticons.

Login: In this, user have to registe their information for chatting. In this the user has to enter login id and password. Create Rooms: In this module we have to provide a option for creating for chatting in the form of groups for the members who wants discuss about the topic online. For this they have to enter into a room depending on the topic. Chatting: In this module any user can send their messages to any person in that server. User can type the message and has to press the send key to send the message. Using this module user can send different emotional image icons. Send Direct Message: Using these module two users in the network can directly send the messages privately which cant be broadcasted to other users.

Show Status: This module shows the status of the every user who connected to the server.

6. System Analysis
6.1 Introduction
Requirement Analysis is done in order to understand the problem the software system is to solve. The problem could be automating an existing manual process, developing a new automated system, or a combination of the two. For large systems that have many feature, The emphasis in and that need to perform many different tasks, understanding the requirement of the system is a major task. system, not how the system will achieve its goals. There are two major activities in this phase: problem In the requirements analysis is on identifying what is needed from the

understanding or analysis and requirements specification. context.

problem analysis, the analyst has to understand the problem and its Such analysis, typically requires a through understand is needed of the important data entities in the system, major centers where action is taken the purpose of the different actions that are performed, and the inputs and outputs.

Understanding the existing system is usually just the starting activity in problem analysis, and it is relatively simple. The goal of this activity is to understand the requirements of the new system that is to be developed. Understanding the properties of system that does not exist is more difficult and requires creative thinking. Once the problem is analyzed and the essential understood, the requirements must be specified in the requirement specification.

6.2

Problem Statement
Teleconferencing or Chatting is a method of using technology to bring people and ideas together despite of the geographical barriers. The technology has been available for years but the acceptance it was quit recent. There are so many messengers already developed and performing well for the Internet. In order to use messengers of this type a user always has to connect to the internet, which may cost many and time. If the users in organizations want to pass the messages or chat with in the organization they cant use Internet always which may cause security problems. So they should use a messenger, which may send the messages with in the network and Internet.

6.3

Proposed System
This project is an example of a messenger. It is made up of 2

applications the client application, which runs on the users Pc and server application, which runs on any Pc on the network. To start chatting client should get connected to server where they can practice two kinds of chatting, public one (message is broadcasted to all

connected users) and private one (between any 2 users only) and during the last one security measures were taken. We can use messenger either in Intranet or in Internet. Users can chat with their colleagues with in the organization and with others in the Internet. If it is used with in the LAN it will not distribute the messages to the Internet. To develop Java Messenger we used java as front end. Java is a powerful, object-oriented language that supports much functionality, including client/server communication through socket programming, windows-based programming, console programming, database connectivity, image, and sound programming. Java is mainly designed for Internet programming and to create small applications that can be embedded inside an HTML page, known as Applets. AWT-based, JDK 1.1 compliant client applet - you don't need to use any JavaPlugin to start working with messenger! Custom set of user interface elements such as rich text, image buttons, etc. Colorful textarea capable of displaying images, different font styles, different colors, emotions are displayed as pictures. Emotion list - predefined emotions Custom message and nick colors Messages in separate window

Ability to ignore users Auto-raise messenger window when new message comes Blinks in taskbar when new message comes You have more control on messenger, and can get the list of online users, send them messages, and even kick users from your administration interface! Totally customizable outlook. Seamless integration with your web site. You have total control over the user interface elements, the look and feel, company logo, colors, icons etc. Stand-alone Java server, accepting connection on userdefined port

Low traffic usage Works through all proxies/firewalls "Paid user" feature - allow you to control which users can start chat sessions with other users. Configurable displaying of user information in online list Easy, seamless integration with profile on your site

2.4 Feasibility Study


Feasibility study refers to a process of evaluating alternative systems through cost/benefit analysis so that the most feasible and desirable system can be selected for development. Due to drawbacks in the existing manual system requisition for a computerized system was made. Hence a decision to develop and in-house package was taken. A preliminary investigation had been carried out to know more about the problem and also to examine the usefulness if the system to be developed. The feasibility study of this system is undertaken from three angles. Technical, Economical and Operational feasibility.

Requirements of Feasibility Study


What the problem is Is there any path to reach the ultimate goal The resources available Decisions on the cost/benefit analysis Recommendations by the system analyst

Steps in Feasibility Study:

i)

Form a project team and appoint a project leader. Hence the leader should have good experience, communicating and programming skills

ii)

Prepare a system flow chart with inputs, outputs and various data flows of the existing system

iii)

Enumerate potential candidate system for transforming logical design into physical design. This requires resources like hardware and software as per project requirements

iv)

Describe and identify the characteristics of a candidate system. The staff must be managed for easy development and all the

characteristics must be listed out so that the design will be easier. v) Determine and evaluate performance and cost effectiveness in each candidate system. The highest performance is measured and the most subjective components are selected. vi) Select the best candidate system. This is done in terms of accuracy, Processing, maintenance time etc. Experience in project scheduling plays important role in the team; vii) viii) Weight the system performance and cost data. Prepare the final project report and submit to the management a. Provide a Cover letter b. Table of contents c. Overview of the project d. Fact-findings e. Economic justification by cost/ benefit analysis

f. Recommendations and conclusions g. Manuals and appendix

TECHNICAL FEASIBILITY It is concerned with hardware and software. Technically, existing company has Intel Pentium Systems. Hence the proposed system is feasible with expected computer hardware. Hence the proposed system is feasible with expected computer software. The proposed equipment has the technical capacity to hold the data required using the proposed system. The proposed system provides adequate response to inquire, regardless the number of users. This can be expanded if developed. There are technical guarantees of accuracy, reliability, ease of access and data security.

OPERATIONAL FEASIBILITY

It is mainly related to human organizational and political aspects. In our application front end is developed using JAVA Swings. So it is very easy to the customer to use this application. The points to be considered are: what changes will be brought with the system? what organizational structures are distributed? what new skills will be required? Do the existing staff members

have these skills? If not, can they be trained in due course of time? Generally project will not be rejected simply because of operational unfeasibility, but such considerations are likely to, critically affect the nature

and scope of the eventual recommendations This feasibility study is carried out by a small group of people who are familiar with information system techniques, who understand the parts of the business that are relevant to the project and are system analysis and design process. ECONOMIC FEASIBILITY Economic Analysis includes an evaluation of all the incremental costs and benefits expected if a proposed system is implemented. The financial and economic factors are considered in this stage. Thus considering all the above facts the management felt that the project passed in all the tests of feasibility.

2.5 Requirements Specification 2.5.1 Introduction


Purpose: The main purpose for preparing this document is to give a general insight into the analysis and requirements of the existing system or situation and for determining the operational characteristics of the system. Scope: This Document plays a vital role in the Software Development Life Cycle (SDLC) as it describes the complete requirements of the system. It is meant for use by the developers and will be the basis for testing the system. Any changes made to the requirements in the future will have to go through formal change approval process. Developers Responsibilities Overview: The developer is responsible for: 1) Developing the system, which meets the SRS and solving all the requirements of the system? 2) Demonstrating the system and installing the system at client's location after the acceptance testing is successful. 3) Submitting the required user manual describing the system interfaces to work on it and also the documents of the system.

4) Conducting any user training that might be needed for using the system. 5) Maintaining the system for a period of one year after installation.

2.5.2 Functional Requirements:


Inputs: The major inputs for the JAVA MESSENGER is the can be categorized module-wise. Basically the input is set of messages typed by the users . In order to access this tool one has to produce one's identity by entering a User-Id and Password.

Outputs: The major outputs of the system are also set of messages. messages may be some times icon images.

These

2.5.3 Performance Requirements:

Performance is measured in terms of the clients that are handled by the server at a time. The server can handle number of clients at a time and maintain their states for each and every client. The performance is also measured in terms of the Client performance. How the client module is handling different GUI components. Since it provides GUI it should generate and perform all the events as specified.

2.5.4 Hardware and Software Requirements:

Hardware Requirements RAM HARD DISK PROCESSOR : : : 256MB 20GB Pentium

Software Requirements Operating System Front End : : WindowsXP Java AWT and Swings

2.5.4 Language Used:

To develop Java Messenger we used java as front end. Java is a powerful, object-oriented language that supports much functionality, including client/server communication through socket programming, windows-based programming, console programming, database connectivity, image, and sound programming. Java is mainly designed for Internet programming and to create small applications that can be embedded inside an HTML page, known as Applets. Before coming to the actual coding of the program, some important terms need to be defined so that the concept becomes clear. The purpose of a broadcast messenger is to create a server that is responsible for receiving and responding to messages that are received from the clients to all the clients available on the network. This is called as Broadcasting (to send the packet or message to all the hosts). The server/client architecture is basically applied here because one of the computers will act as a Server responding to client messages, while all other computers will behave as Clients that only send requests to the server to perform some task. Sockets are logical connections that are created to connect the computers to each other. A port number and a host IP address/host name is required to create a socket. Multithreading means that many threads of a process can be run on a single processor assigning them an equal time slice and priority, each feeling that it is the only process running. Because here, many clients connect to the same port to the server, multithreading is implemented. Threads are that pieces of a

process or program that are assigned some resources, such as file, I/O, and so forth, and are able to run individually.

JAVA OVERVIEW Java is loosely based on C++ syntax, and is meant to be Object oriented. It however differs from C++ in many ways. Structure of Java is widely between an interpreted and compiled language. Java programs are compiled by the Java compiler into Bytecode, which are secure and portable across different platforms. The technique of having intermediate code i.e., Bytecode solves both the security and the portability problems. Bytecode is highly optimized set of instructions designed to be executed by virtual machine that the Java run-time system emulates. That is the Java run time system is an interpreter for Bytecode .

These Bytecodes are essentially instructions encapsulated in a single byte, to what is known as Java Virtual Machine (JVM), which resides in standard browser, any application can have JVM built-in .JVM, which verifies these Bytecodes into machine specific instruction at run time.

Why JAVA is important to the Internet The Internet helped catapult Java to the forefront of programming, and Java, in turn, has had a profound effect on the Internet.

The reason for this is quit simple: Java expands the universe of objects that can move about freely in cyberspace. In a network, two very broad categories of objects are transmitted between the server and your personal computer: passive information and dynamic, active programs. For example, when you read your e-mail, you are viewing passive data. Even when you download a program, the programs code is still only passive data until you execute it. However, a second type of object can be transmitted to your

computer, yet is initiated by program. For example, a program might be provided by the server to display properly the data that the server is sending. As desirable as dynamic, networked programs are, they also present serious problems in the areas of security and portability. Prior to Java, cyberspace was effectively closed to half the entities that now live there. Java addresses those concerns and, by doing so, has opened the door to an exciting new form of program: the applet.

The Applet No go-to. No operator overloading. No automatic coercion {casting}. No garbage collection. Some Special Features of JAVA The fundamental forces that necessitated the invention of Java are portability and security. There are other factors that played an important role in modeling the final form of the language. The Java team is as follows added up the key considerations and features. Java was designed to be easy for professional programmer to learn and use effectively. Java is completely object-oriented so if we are sell versed with OOPS learning Java another attribute that makes it easy to learn it makes an effort not have surprising Features. In Java, there are a small number of clearly defined ways to accomplish a given task. Although influenced by its predecessor, Java was not designed to be source code compatible with any other languages. This allowed Java team the freedom to design with a blank slate. One out come of this was a clean usable programmatic approach to objects.

Borrowing liberally from any seminal object software environment of the last few decades. Java manages to strike a balance purists everything is an object paradigm, and the pragmatists stay out of my way model. The object model in Java is simple and easy to extent, while simple types, such as integers are kept as high performance non-objects. Java is Portable: One of the biggest advantages Java offers is that it is portable. An application written in Java will run on all the major platforms. Any computer with a Java based browser can run the applications or applets written in the Java programming language. A programmer no longer has to write one program to run on a Macintosh, another program to run on a Windows machine, still another to run on a Unix machine and so on. In other words, with Java, developers write their programs only once. The virtual machine is what gives Java a cross platform capabilities. Rather than being complied into machine language, which is different for each operating systems and computer architecture, Java code is compiled into byte codes. With other languages, the program code is complied into a language that the computer can understand. The problem is that other computers with different machine instruction set cannot understand that language. Java code, on the other hand is complied into byte codes rather than a machine language. These byte codes go to the Java virtual machine, which executes them directly or translates them into the language that is understood by the machine running it. In summary, these means that with the JDBC API extending Java, a programmer writing Java code can access all the major relational databases on any platform that supports the Java virtual machine. Java is Object Oriented: Java is Object Oriented, which makes program design focus on what you are dealing with rather than on how you are going to do something. This makes

it more useful for programming in sophisticated projects because one can break the things down into understandable components. A big benefit is that these components can then be reused.

Object oriented languages use the paradigm of classes. In simplest term, a class includes both the data and the functions to operate on the data. You can create an instance of a class, also called an object, which will have all the data members and functionality of its class. Because of this, you can think of a class as being like template, with each object being a specific instance of a particular type of class. The class paradigm allows one to encapsulate data so that specific data values are those using the data cannot see function implementation. Encapsulation makes it possible to make the changes in code without breaking other programs that use that code. If for example the implementation of a

function is changed, the change is invisible to another programmer who invokes that function, and it does not affect his/her program, except hopefully to improve it. Java includes inheritance, or that ability to derive new classes from existing classes. The derived class, also called subclass, inherits all the data and the function of the existing class, referred to as the parent class. A subclass can add new data members to those inherited form the parent class. As far as methods are concerned, the subclass can reuse the inherited methods, as it is, or change them, or even add its own new methods.

Java Makes It Easy: In addition to being portable and object oriented, Java facilitates writing correct code. Programmers spend less time writing Java code and a lot less time debugging it. In fact, developers have reported slashing development time by as much as two thirds.

Java automatically takes care of allocating and the reallocating memory, a huge potential source of errors. If an object is no longer being used (has no reference to it), then it is automatically removed from memory, or Garbage Collected by a low priority daemon thread called Garbage Collector. Javas no pointer support eliminates big source errors. By using object references instead of memory pointers, problems with pointer arithmetic are eliminated, and problems with inadvertently accessing the wrong memory address are greatly reduced. Javas strong typing cuts down on runtime errors, because Java enforces strong type checking, many errors are caught when code is complied. Dynamic binding is possible and often very useful, but static binding with strict type checking is used when possible. Java keeps code simple by having just one way to do something instead of having several alternatives, as in some languages. Java also stays lean by not including multiple inheritance, which eliminates the errors and ambiguity that arise when you create a subclass that inherits from two or more classes. To replace capabilities, multiple inheritance provides, Java lets you add functionality to a class throw the use of interfaces.

Java is Extensible: A big plus for Java is the fact it can be extended. It was purposely written to be lean with the emphasis on doing what it does very well, instead of tying to do everything from the beginning, it was return so that extending it is very easy. The java platform includes an extensive class library so that programmers can use already existing classes, as it is, create subclasses to modify existing classes, or implement to augment the capabilities of classes.

Java is Secure: It is important that a programmer not be able to write subversive code for applications or applets. This is especially true with the Internet being used more and more extensively for services such as electronic commerce and electronic distribution of software and multimedia content. The way memory is allocated and laid out. In java an objects location in memory is not determined until the runtime, as opposed to C and C++. As the result, a programmer cannot look at a class definition and figure out how it might be laid out in memory. Also since, Java has no pointers, a programmer cannot forge pointers to memory. The Java Virtual Machine (JVM) doesnt trust any incoming code and subjects it to what is called Byte Code Verification. The byte code verifier, part if the virtual machine, checks that The format of incoming code is correct Incoming code doesnt forge pointers. It doesnt violate access restrictions. It access objects as what they are

The Java byte code loader, another part of the JVM, checks whether classes loaded during program execution are local of from across a network. Imported classes cannot be substituted for built in classes, and built in classes cannot accidentally reference classes bring in over a network.

The Java Security manager allows user to restrict entrusted Java applets so that they cannot access the local network, local files and other resources.

Java Performs Well: Java performance is better than one might expect. Javas many

advantages, such as having built in security and being interpreted as well as complied, do have a cost attached to them. However, various optimizations have been built, in, and the byte code interpreter can run very fast the cost it doesnt to do any checking. As a result, Java has done quite respectably in performance tests. Its performance numbers for interpreted byte codes are usually more than adequate to run interactive graphical end user applications.

For situations that require unusually high performance, byte codes can be translated on the fly generating the final machine code for the particular CPU on which the application is running at run time. Java offers good performance with the advantages of high-level languages but without the disadvantages of C and C++. In the world of design trade-off, you can think of Java as providing a very attractive middle ground. Java is Robust: The multiplatformed environment of the WEB places extraordinary demands on a program, because it must execute reliably in a variety of systems. Thus the ability to create robust programs was given a high priority in the design of Java. To gain reliability, Java restricts you in a few key areas to force you to find your mistakes early in program developments. At the same time, Java frees you from having to worry about many of the most common causes of programming errors. Because Java is strictly typed language, it checks your code at compile time. However, it also checks your code at run time. In fact, many hard to track down bugs that often turn up in hard to reproduce runtime situations are simply impossible to create in Java. Knowing that what you have written will behave in a predictable way under diverse conditions is a key feature of Java.

Java is Multithreaded: Multithreading is simply the ability of a program to do more than one thing at a time. For example an application could be faxing a document at the same time it is printing another document. Or a program could process new inventory figures while it maintains a feed for current prices. Multithreading is particularly important in multimedia: a multimedia program might often be running a movie, running a audio track and display in text all at the same time.

SWING
What is Swing? Swing can be described as a set of customizable graphical components whose look-and-feel (L&F) can be dictated at runtime. In reality, however, Swing is much more than this. Swing is the next-generation GUI toolkit that Sun Microsystems created to enable enterprise development in Java. By enterprise development, we mean that programmers can use Swing to create large-scale Java applications with a wide array of powerful components. In addition, we can easily extend or modify these components to control their appearance and behavior. Swing is not an acronym. The name represents the collaborative choice of its designers when the project was kicked off in late 1996. Swing is actually part of a larger family of Java products known as the Java Foundation Classes (JFC), which incorporate many of the features of Netscapes Internet Foundation Classes (IFC) as well as design aspects from IBMs Taligent division and Lighthouse Design. Swing has been in active development since the beta period of the Java Development Kit (JDK) 1.1, circa spring of 1997. The Swing APIs entered beta in the latter half of 1997 and were initially released in March 1998. When released, the Swing 1.0 libraries contained nearly 250 classes and 80

interfaces. Growth has continued since then: at press time, Swing 1.4 contains 85 public interfaces and 451 public classes.

Although Swing was developed separately from the core Java Development Kit, it does require at least JDK 1.1.5 to run. Swing builds on the event model introduced in the 1.1 series of JDKs; you cannot use the Swing libraries with the older JDK 1.0.2. In addition, you must have a 1.1-enabled browser to support Swing applets. The Java 2 SDK 1.4 release includes many updated Swing classes and a few new features. Awing is fully integrated into both the developers kit and the runtime environment of all Java 2 releases (SDK 1.2 and higher), including the Java Plug-In.

What are the Java Foundation Classes?


The FC is a suite of libraries designed to assist programmers in creating enterprise applications with Java. The Swing API is only one of five libraries that make up the JFC. The JFC also consists of the Abstract Window Toolkit (AWT), the Accessibility API, the 2D API, and enhanced support for Drag and Drop capabilities. A brief introduction to the elements in the JFC:

AWT
The Abstract Window Toolkit is the basic GUI toolkit shipped with all versions of the Java Development Kit. While Swing does not reuse any of the older AWT components, it does build on the lightweight component facilities introduced in AWT 1.1.

Accessibility
The accessibility package provides assistance to users who have trouble with traditional user interfaces. Accessibility tools can be used in conjunction with devices such as audible text readers or braille keywords to allow direct access to the Swing components. Accessibility is split into two parts: the Accessibility API, which is shipped with the Swing distribution, and the Accessibility Utilities API, which is distributed separately. All Swing components support accessibility.

2D API
The 2d API contains classes for implementing various painting styles, complex shapes, fonts, and colors. This Java package is loosely based on APIs that were licensed from IBMs Taligent division. The 2D API classes are not part of Swing.

Drag and Drop


Drag and Drop (DnD) is one of the more common metaphors used in graphical interfaces today. The user is allowed to click and hold a GUI object, moving it to another window or frame in the desktop with predictable results. The DnD API allows implementing droppable elements that transfer information between Java applications and native applications. Although DnD is not part of Swing, it is crucial to a commercial-quality applications

Below Figure enumerates the various components of the Java Foundation Classes. Because part of Accessibility API is shipped with the Swing distribution, we show it overlapping Swing.

Java Foundation Classes

AWT

Swing

Accessibility

Java 2D

Drag and Drop

Is Swing a Replacement for AWT?


No. Swing is actually built on top of the core AWT libraries. Because Swing does not contain any platform-specific (native) code, you can deploy the Swing distribution on any platform that implements the Java 1.1.5 or above virtual machine. In fact, if you have JDK 1.2 or higher on your platform, then Swing classes are already available, and theres nothing further to download. Below figure shows the relationship between Swing, AWT, and the Java Development Kit in the 1.1 and higher JDKs. In JDK 1.1, the Swing classes must be downloaded separately an included as an archive file on the classpath (swingall.jar). JDK 1.2 (and higher) comes with a Swing distribution.

AWT classes

AWT classes

JDK
Swing classes

CLASSPATH
Swingall.jar Swing Classes

JFC

JDK 1.1

JDK 1.2 and higher

Swing

contains

many more

graphical components

that its

immediate

predecessor, AWT 1.1. Many are components that were scribbled on programmer wishlists since Java first debuted-including tables, trees, internal frames, and a plethora of advanced text components. In addition, Swing contains

many design advances over AWT. For example, Swing introduced an Action class that makes it easier to coordinate GUI components with their functionality. Youll also find that a much cleaner design prevails throughout Swing: this cuts down on the number of unexpected surprises that youre likely to face while coding. Swing depends extensively on the event-handling mechanism of AWT 1.1, although it does not define a comparatively large amount of events for itself. Each Swing component also contains a variable number of exportable properties. This combination of properties and events in the design was no accidents. Each of the Swing components, like the AWT 1.1 components before them, adheres to the popular JavaBeans specifications. This means that you can import all of the Swing components into various GUI builder tools, which is useful for powerful visual programming.

Swing Features
Swing provides many features for writing large-scale applications in Java. Here is an overview of some of the more popular features. Pluggable Look-and-Feels One of the most exciting aspects of the Swing classes is the ability to dictate the L&F of each of the components, even resetting the L&Fs have become an important issues in GUI development over the past 10 years. Many users are familiar with the Motif style of user interface, which was common in Windows 3.1 and is still in wide use on Unix platforms. Microsoft created a more optimized L&F in their Windows 95/98/NT/2000 operating systems. In addition, the Macintosh computer system has its own carefully designed L&F, which most Applet users feel comfortable with. Swing is capable of emulating several L&Fs and currently supports the Windows, Unix Motif, and native Java Metal L&Fs, Mac OS X comes with full support for its own L&F based on Apples Aqua Human Interface Guidelines,

although you can still access Metal if you prefer. In addition, Swing allows the user to switch L&Fs at runtime without having to close the application. This way, the user can experiment to see which L&F is best for her with instantaneous feedback. components. The Metal L&F combines some of the best Graphical elements in todays L&Fs and even adds a few surprises of its own. All Swing L&Fs are built from a set of base classes called the Basic L&F. Users can create they own L&F for each one of the Swing

Lightweight Components
Most Swing components are lightweight. In the purest sense, this means that components are not dependent on native peers to render themselves. Instead, they use simplified graphics primitives to paint themselves on the screen and can even allow portions to be transparent.

The ability to create lightweight components first emerged in JDK 1.1, although the majority of AWT components did not take advantage of it. Prior to that, Java programmers had no choice but to subclass java.awt.Canvas or java.awt.Panel if they wished to create their own components. With both classes, Java allocated an opaque peer object from underlying operating systems to represent the component, forcing each component to behave as if were its own window, thereby taking on a rectangular, solid shape. Hence, these components earned the name heavyweight because they frequently held extra baggage at the native level that Java did not use.

Heavyweight components were unwieldy for two reasons: Equivalent components on different platforms dont

necessarily act alike. A list component on one platform, for example, may work differently than a list component on another. Trying to coordinate and manage the differences between components was a formidable task.

The L&F of each component was tied to the host operating system and could not be changed. Programming your own L&F can get pretty complex; in fact, the source code for an entire L&F would far exceed the size of ordinary program.

Swing Packages and Classes


Here is a short description of each package in the Swing libraries: javax.accessibility Contains classes and interfaces that can be used to allow assistive technologies to interact with Swing components. Assistive technologies cover a broad range of items, from audible text readers to screen magnification. Although the accessibility classes are technically not part of Swing, they are used extensively throughout the Swing components.

javax.swing
Contains the core Swing components, including most of the model interfaces and support classes.

javax.swing.border
Contains the definitions for the abstract borders class as well as eight predefined borders. Borders are not components; instead, they are special graphical elements that Swing treats as properties and places around components in place of their insets. If you wish to create your own border, you can subclass one of the existing borders in this package, or you can code a new one from scratch. javax.swing.colorchooser Contains support for the JColorChooser component. javax.swing.event Defines several new listeners and events that Swing components use to communicate asynchronous information between the classes. To create your own events, you can subclass various events in this package or write your own event class. javax.swing.filechooser Contains support for the JFileChooser component.

javax.swing.plaf
Defines the unique elements that make up the pluggable L&F for each Swing components. Its various subpackages are devoted to rendering the individual L&Fs for each component on a platform-by-platform basis.

javax.swing.table Provides models and view for the table components, which allows you to arrange various information in a grid format with an appearance similar to a spreadsheet. Using the lower-level classes, you can manipulate how tables are viewed and selected, as well as how they display their information in each cell.

javax.swing.text Provides score of text-bases classes and interfaces supporting a common design known as document/view. The text classes are among the more advanced Swing classes.

javax.swing.text.html
Used specifically for reading and formatting HTML text through an ancillary editor kit.

javax.swing.text.html.parser
Contains support for parsing HTML.

javax.swing.text.rtf
Used specifically for reading and formatting Rich Text Format (RTF) text through ancillary editor kit.

javax.swing.tree
Defines models and views for hierarchal tree component, which may represent a file structure or a series of properties.

javax.swing.undo Contains the necessary functionality for implementing undoable functions. The most widely used package is javax.swing. In fact, almost all the Swing components, as well as several utility classes, are located inside this package. The only exceptions are borders and support classes for the tree, tables, and text-based components. Because the latter components are much more extensible and often have many more classes to work with, these classes have been divided into separate package.

Class Hierarchy
Below figure shows a detailed overview of the Swing class hierarchy as it appears in the 1.4 SDK. At first glance, the class hierarchy looks very similar to AWT. Each Swing component with an AWT equivalent shares the same name, except that the Swing class is preceded by a capital J. In most cases, if a Swing component supersedes an AWT component, it can be used as a drop-in replacement.

Top-level Components

JApplet

JDialog

JFrame

JWindow

JComponent

JComboBox JPanel JTable JProgressBar JSplitPane JViewPort

JLabel JPopupMenu JTree JRootPane JTabbedPane JColorChooser JLayeredPane JDesktopPane

JList JScrollBar JInternalFrame JSeparator JToolBar


JTextComponent

JMenuBar JScrollPane JOptionPane JSlider JToolTip JSpinner (1.4) JTextArea

JFileChooser JTableHeader

JEditorPane JTextPane

JTextField JPasswordField JFormattedTextField

Abstract Button

JCheckBox JToggleButton JRadioButton JMenu JButton JRadioButtonMenuItem JMenuItem

Appendix II

JCheckButtonMenuItem

Network Programming
Network Application Network application exchange data between physically separated machines. For this to occur the machines must be connected by a transmission media. There are many different types of communication links and new ones continue to be developed. Coaxial cables, phone lines, digital phone lines, fiber optic cable, satellite beam, and infrared waves are all used as transmission media for exchange data between computers. A network includes a group of computers connected by a physical link allowing data to be exchanged between them. A local are network on LAN is a network of computers in close physical proximity, usually a single building, but can be a group of adjacent buildings. Over the last decades LANs have become an important component of the computer workplace.

Protocol Stacks

Very Early in the history of computer network development the concept of separating the problem into multiple levels was adapted. With a multilevel architecture each layer can handle a different aspect of networking and provide that functionality to the above layer. TCP/IP is a specific implementation of a multi level network architecture. In both, the first and second chapter, we are always repeating the same sentence, which is TCP/IP protocol. It is now the time to dissect this sentence.

TCP

TCP (the Transmission Control Protocol ) has the responsibility for breaking up the message into datagrams, reassembling them at the other end, resending anything that gets lost, and putting things back in the right order. It may seem that TCP is doing all the work. And in small network it is true. With TCP, there is no maximum message length. When a message is passed to the TCP protocol, if it is too large to be sent in one peace, the message is broken up into chunks or packets and sent one at a time to the destination address. The TCP packet contains the addressing information. The TCP message also contains a packet number and total number of packets. Because of the nature of the TCP/IP protocol, the packet may travel different paths and may arrive in a different order than sent. TCP reassemble the packets in the proper order and requests the retransmission of any missing or corrupted packets. TCP enables you to create and maintain a connection to a remote computer. By using the connection, both computers can stream data between each other.

IP As the number of computers networked become larger, a system becomes necessary to give remote computers the capability to recognize other remote computers; thus the IP addressing method was born. Therefore, simply an IP address uniquely identifies any computer connected to a network. This address is made up of 32 bits divided into 4 four bytes. But since the number of connected computers is too large and since it is difficult to remember all their IP addresses, the Domain Name Service (DNS) was designed. It has the job of transforming the unique computer names (host name) into an IP address. There for, whenever in our project we run the client application and enter the host name, this means that we are writing the IP address of the remote computer we want to connect to indirectly. In general, TCP/IP is a set of protocols developed to allow cooperating computers to share resources across the network.

Service Port

Till now, we have seen that TCP/IP forms the backbone for communication between computers, but do you know how these computers speak to each other? The answer is Ports. A port is a special location in the computers memory that exists when two computers are communicating via TCP/IP. Application uses a port number to communicate and the sending and receiving computers use this same port to exchange data. To make the job of communication easier, some port numbers have been standardized, ex, (www Port 80, Ftp Port 20, 21, Etc). Our application uses a constant named IPechoport = 7.

Sockets The world is defining itself as a largely Intel-processor, windows-based set desktops communicating with back end servers of various types. Hardware and software technology advances are pushing PCs into the role of every where communications devices. For software applications to take advantage of increasingly sophisticated and feature-rich communications technology, they require an Application Programming Interface (API) which provides a simple and uniform access to this technology. WinSock has been this interface for TCP/IP on windows systems for the last 3 years. It is now set to become the definitive applications interface for all windows-based communication-capable applications.

UMLDIAGRAMS

UML is a notation that resulted from the unification Of Object Modeling Technique and Object Oriented Software Technology .UML has been designed for broad range of application. Hence, it provides constructs for a broad range of systems and activities.

AN OVERVIEW OF UML IN FIVE NOTATIONS

1.USE CASE DIAGRAMS Use cases are used during requirements elicitation and analysis To represent the functionality of the system. Use cases focus on the behaviour of the system from the external point of view. The actor is Outside the boundary of the system, whereas the use cases are inside the boundary of the system.

2.CLASS DIAGRAMS Class diagrams to describe the structure of the system. Classes Are abstraction that specify the common structure and behaviour of a set Of objects. Class diagrams describe the system in terms of objects, classes, attributes, operations and their associations.

3.SEQUENCE DIAGRAMS Sequence diagrams are used to formalize the behaviour of the system and to visualize the communication among objects. They are useful for identifying additional objects that participate in the use cases. A Sequence diagram represents the interaction that take place among these objects. 4.STATECHART DIAGRAMS

State chart diagrams describe the behaviour of an individual object as a number of states and transitions between these states. A state represents a particular set of values for an object. The sequence diagram focuses on the messages exchanged between objects, the state chart diagrams focuses on the transition between states .

5.ACTIVITY DIAGRAMS

An activity diagram describes a system in terms of activities. Activities are states that represent the execution of a set of operations. Activity diagrams are similar to flowchart diagram and data flow.

2.5.6 Use Case Diagrams

Use Case for Server:

Use Case for Clients:

Sequence Diagram:

Activity Diagram:

State Chart Diagram:

3. System Design:
3.1 Introduction:
The purpose of the design phase is to plan a solution of the problem specified by the requirement document. This phase is the first step in moving from the problem domain to the solution domain. In other words, starting with what is needed, design takes us toward how to satisfy the needs. The design of a system is perhaps the most critical factor affection the quality of the software; it has a major impact on the later phases, particularly testing, maintenance. The output of this phase is the design document. This document is similar to a blueprint for the solution and is used later during implementation, testing and maintenance. The design activity is often divided into two separate phases System Design & Detailed Design.

System Design also called top-level design aims to identify the modules that should be in the system, the specifications of these modules, and how they interact with each other to produce the desired results. At the end of the

system design all the major data structures, file formats, output formats, and the major modules in the system and their specifications are decided.

During, Detailed Design, the internal logic of each of the modules specified in system design is decided. During this phase, the details of the data structures and algorithmic design of each of the modules is specified. The logic of a module is usually specified in a high-level design description language, which is independent of the target language in which the software will eventually be implemented.

In system design the focus is on identifying the modules, whereas during detailed design the focus is on designing the logic for each of the modules. In other words, in system design the attention is on what components are needed, while in detailed design how the components can be implemented in software is the issue.

3.2 Design Methodology:


The two basic modern design strategies employed in software design are 1. 2. Top Down Design Bottom Up Design

Top Down Design is basically a decomposition process, which focuses on the flow of control. At later stages it concern itself with the code production. The first step is to study the overall aspects of the tasks at hand and to break it into a number of independent modules. The second step is to break each one of these modules further into independent sub-modules. The process is Repeated one to obtain modules, which are small enough to group mentally and to code in a straightforward manner. One important feature is that

at each level the details of the design at the lower level are hidden. Only the necessary data and control that must be called back and forth over the interface are defined. In a bottom-up design one first identifies and investigates parts of design that are most difficult and necessary designed decision are made the reminder of the design is tailored to fit around the design already chose for crucial part. It vaguely represents a synthesis process explained in previous section. One storage point of the top-down method is that it postpones details of the decision until the last stage of the decision. It allows making small design changes when the design is half way through. There is danger that the

specifications will be incompatible and this will not be discovered until late in the design process. By contrast the bottom-up strategy first focuses on the crucial part so that feasibility of the design is tested at early stage. In mixing top-down and bottom-up design it often appears that we start in the middle of the problem and work our way both up and down there. In a complex problem, it is often difficult to decide how to modularize the various procedures in such cases one might consider a list of system inputs and decide what functions are necessary to process these inputs. This is called back to front design. Similarly one can start with the required outputs and work backwards evolving so called front-back design. We have applied both the top down and bottom up approach in our design approach.

3.3Data Flow Diagrams for Java Messenger


Context Level Diagram

User

Client

Server

Client

User

Level I Data Flow Diagram for Java Messengers Server

Client

Authenticate

Create Chat Rooms

Add to Users List

Intimate to the Clients

Client

Server Process

4. System Implementation:
4.1 Introduction
A crucial phase in the system life cycle is the successful implementation of the new system design. Implementation includes all those activities that take place to convert from the old system to the new one. The new system may be completely new, replacing an exiting manual or automated system or it may be major modification to the exiting system. In either case, proper implementation becomes necessary so that a reliable system based on the requirements of the organization can be provided. Successful implementation may not guarantee improvement in the organization using the new system. It has been observed that even the best system cannot show good result if the analyst managing the implementation do not attend to every important details. This is an area where the system analysts need to work with utmost care.

This discusses the aspects of the implementation: Testing Implementation

IMPLEMENTATION:

Implementation is the process of having systems personnel check out and put new equipment into use, train users, install the new app Depending on the size of the organization that will be involved in using the application and the risk associated with its use, systems developers may choose to test the operation in only one area of the firm, say in one department or with only one or two persons. Sometimes they will run the old and new systems together to compare the

results. In still other situation, developers will stop using the old system one-day and begin using the new one the next. As we will see, each implementation strategy has its merits, depending on the business situation in which it is considered. Regardless of the implementation strategy used, developers strive to ensure that the systems initial use in trouble-free. Once installed, applications are often used for many years. However, both the organization and the users will change, and the environment will be different over weeks and months. Therefore, the application will undoubtedly have to be maintained; modifications and changes will be made to the software, files, or procedures to meet emerging user requirements. Since organization systems and the business environment undergo continual change, the information systems should keep pace. In this sense, implementation is ongoing process. Evaluation of the system is performed to identify its strengths and weakness. The actual evaluation can occur along any of the following dimensions. Operational Evaluation: assessment of the manner in which the system functions, including ease of use, response time, suitability of information formats, overall reliability, and level of utilization. Organization Impact: Identification and measurement of benefits to the organization in such areas as financial concerns operational efficiency, and competitive impact. Includes impact on internal and external information flows. User Manager Assessment: Evaluation of the attitudes of senior and user mangers within the organization, as well as end-users.

Development Performance: Evaluation of the development process in accordance with such yardsticks as overall development time and effort, conformance to budgets and standards, and other project management criteria. Includes assessment of development methods and tools. Unfortunately system evaluation does not always receive the attention it merits. Where properly managed however, it provides a great deal of information that can improve the effectiveness of subsequent application efforts.

4.2 Organization Impact:

Identification and measurement of benefits to the organization in such areas as financial concerns operational efficiency, and competitive impact. Includes impact on the internal and external information flows.

4.3 User Manager Assessment:

Evaluation of the development process in accordance with such yardsticks as overall development time and effort, conformance to budgets and standards, and other project management criteria. Includes assessment of development and tools. Unfortunately system evaluation does not always receive the attention it merits. Where properly managed. However, it provides a great deal of information that can improve the effectiveness of subsequent application efforts.

5. System Testing
5.1 Introduction:

The testing phase is an important part of software development .It is the process of finding process and missing operations verification to determine requirement are satisfied. and also a complete

whether the objectives are met and the user

Software testing is carried out in three steps :

The first includes unit testing, where in each module is tested to provide its correctness, validity and also determine any missing operations and to verify whether the objectives have been met. Errors are noted down and corrected immediately. Unit testing is the important and major part of the project , So errors are rectified easily in particular module and program clarity is increased. In this project entire system is divided into several modules and is developed individually, So unit testing is conducted to individual modules .

The second step includes Integration testing .It need to be case, the software whose modules when run individually and showing perfect results, will also show perfect results when run as a whole. The individual modules are clipped under this major module and tested again and verified the results. This is due to poor interfacing, which may results in data being lost across the interface .A module can have inadvertent, adverse effect on any other or on the global data structures, causing serious problems .

The final step involves validation and testing which determines which the software functions as the user expected. Here are some modifications were . In the completion of the project it is satisfied fully by the end user .

5.2 Software Testing Techniques:


Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, designing and coding .

Testing Objectives

1. Testing is process of executing a program with the intent of finding an error. 2. A good test case design is one that has a probability of finding an as yet undiscovered error. 3. A successful test is one that uncovers an as yet undiscovered error.

These above objectives imply a dramatic change in view port. Testing cannot show the absence no defects, it can only show that software errors are present.

TEST CASE DESIGN

Any Engineering product can be tested in one of two ways .

1. White Box Testing : This testing is also called a Glass Box Testing. In this testing, by knowing the specified function that a product has been designed to perform the test can be conducted that demonstrates each function is fully operation at the same time searching for errors in each function. It is a test case design method that uses the control structure of the procedural design to derive test cases. Basis path testing is a white box testing.

Basis Path Testing :

1. Flow Graph Notation 2. Cyclamatic Complexity 3. Deriving Test Cases 4. Graph matrices.

Control Structure Testing : ondition Testing Data flow Testing oop testing . L

2. Black Box Testing : In this testing by knowing the internal operation of a product, tests can be conducted to ensure that all gears mesh , that is the internal operation performs according to specification and all internal components have been adequately exercised.It fundamentally focuses on the functional requirements of the software.

The steps involved in black box testing case design are Graph based testing methods Equivalence partitioning Boundary value Analysis Comparison testing

5.3 Software Testing Strategies:


A software testing strategy provides a road map for the software and

developer.Testing is a set of activities that can be planned in advance

conducted systematically .For this reason a template for software testing a set of steps into which we can place specific test case design methods should be designed for software engineering process. Any software testing should have the fallowing characteristics. 10. Testing begins at the module level and works outward toward the strategy

integration of the entire computer based system. 11. Different testing techniques are appropriate at different points in time.

12. The developer of the software and an independent test group conducts testing. 13. Testing and Debugging are different activities but debugging must be accommodated in any testing strategy.

Unit Testing :

Unit testing design(module)

focuses verification

efforts

is smallest unit in software

1. .Unit test considerations. 2. Unit test procedures.

Integration Testing :

Integration testing is a systematic technique for constructing the program structure while conducting tests to uncover errors assosciated with interfacing. There are two types of integration testing .

1.Top-Down Integration : Top down Integration is an Incremental approach to construction of program structures. Modules are integrated by moving downwards throw the control hierarchy beginning with the main control module..

1.Bottom-Up Integration : Bottom up integration as its name implies , begins construction and testing with automatic modules.

2.Regression Testing : In this contest of an integration test strategy , regression testing is the re execution of some subset of test that have already been conducted to ensure that changes have not

propogate unintended side effects.

5.4 Validation Testing:


At the culmination of integration testing , software is completely assembled as a package; interfacing errors have been uncovered and corrected , and a final series of software tests validation testing may begin .validation can be fine d in many ways . but a simple application is that

validation succeeds when software functions in a manner that can be reasonably expected by the customer .

Reasonable expectation

is defined

in the software

requirement

specification a document that describes all user visible attributes of the software .The specification contains a section called a Validation Critera . Information contained in that section forms the basis for a validation testing approach.

Validation Test Criteria:

Software validation is achieved through a series of Black-Box tests that demonstrate conformity with requirement .A test plan outlines the classes of tests to be conducted , and a test procedure defines specific test cases that will be used in an attempt to uncover errors in conformity with requirements .Both the plan and procedure are designed to ensure that all functional

requirements are satisfied ; all performances

requirements are achieved ;

documentation is correct and human engineered ; and other requirements are met . After each validation test case has been conducted , one of the two possible

conditions exist : (!) The function or performance characteristics conform to specification and are accepted . or (2) a deviation from specification in

uncovered and a deficiency list is created . Deviation or Error discovered at this stage in a project can rarely be corrected prior to scheduled completion . It is often necessary to negotiate with the customer to establish a method for

resolving deficiencies .

Configuration Review:

An important element of the validation process is a configuration review. The intent of the review is to ensure that all elements of the software

configuration have been properly developed . , are to be catalogued , and have the necessary detail to support. the maintenance phase of the software

cycle..The configuration review sometimes called an audit.

Alpha and Beta Testing:

It is virtually impossible for a software developer to for see how the customer will really use a program. Instructions may use may be misinterpreted , strange combination of data may be regularly used ; and output that seemed clear to the tester may be uintelligible to a user in the field .

When custom software is built for one customer , a series of acceptance tests are conducted to enable the customer to validate all requirements. Conducted by the end user rather thann the system developer , an acceptance test can range from an informal test drive to a planned and systematically executed series of tests . In fact , acceptance testing can be conducted over a

period of weeks , months , thereby uncovering cumulative errors that might degrade the system overtime .

If software is developed as a product to be used by many customers, it is impractical to perform formal acceptance tests with each one. most software product builders may use a process called alpha and beta testing to uncover errors that only the end user seems to be able to find.

A customer conducts the alpha test at the developers site . The software is used in a natural setting with the developer looing over the shoulder of the user and recording error and usage problems. Aplha tests are conducted in controlled environments .

The beta test is conducted at one or more customer sites at the end of the user of the software . Unlike alpha testing , the developer is generally more present. Therefore the beta test is a live application of the software in an environment that cannot be controlled by the developer. The customer records all the problems that are encountered during the beta testing and reports these to developer at regular intervals. As a result of problems reported during beta tests , the software developer make s modification and then prepares for the release of the software product to the entire customer base.

6.System Maintenance
As the number of computer-based systems, grieve libraries of computer software began to expand. In the house of developed projects produced tones of thousand software program statements. Software products purchased from the outside added hundreds and thousands of new statements. A dark cloud appeared on the horizon. All of these programs, all of these source statements had to be corrected when false were detected, modified as user requirements changed, or adapted to new hardware that was purchased. These activities were collectively called software maintenance.

The Maintenance phase focuses on change that is associated with error correction, adaptations required as the software environment evolves, and changes due to enhancements brought by changing user requirements. Four type of changes are encountered during maintenance phase.

Correction Adaptation Enhancement Prevention

Correction:

Even with the best quality assurance activities is lightly that the user will uncover defects in the software. Corrective maintenance changes the software to correct defects.

Maintenance is a set of Software Engineering activities that occur after software has been delivered to the user and put into operation. Software

Configuration Management is a set of tracking and control activities that began when a software project begins and terminates only when the software is taken out of the operation.

We may define maintenance by describing four activities that are undertaken after a program is released for use.

Corrective maintenance Adaptive Maintenance Perfective Maintenance or Enhancement Preventive Maintenance or Re-engineering . Only about 20 percent of all maintenance work are spent fixing mistakes The maintenance 80 percent are spent adapting existing systems to changes in their external environment, making enhancements requested by users , and reengineering an application for use .

Adaptation

Over time, the original environment (E > G, CPU, operating system, business rules, external product characteristics) for which the software was developed is likely to change. Adaptive maintenance results in modification of the software to accommodate change to its external environment.

Enhancement

As software is used, the user will recognize additional functions that will provide benefit. Perceptive maintenance extends the software beyond the original functional requirements.

Prevention

Computer Software deteriorates due to change , and because of this , preventive maintenance , often called Software Engineering , must be conducted to enable the software to serve the needs of its end users . In essence , preventive maintenance makes changes to computer diagrams so that they can be more easily corrected, adapted , and enhanced . Software configuration Management (SCM) is an umberella activity that is applied throughput the software process. SCM activities are developed to

Identify Change . Control chug. Ensure that change is being properly implemented . Report change to others that may have an interest.

7. Output Screens

Start the Server Screen:

Client Login Screen:

Four peoples are in online Screen:

In general only 2 members(Room Name=General):

Two members are chance room general to music(Room name=Music):

Stop the Server Screen

8.Conclusion
It is important for the developer to give conclusions or state the results of his work. To conclude we can say that this application will fulfill all the needs of the users by providing all the functionalities that are provided by a Java Messanger and it will perform with good quality and high performance.

Thus the project work allotted to me is completed successfully by satisfying all the needs with good quality and high performance. Any further suggestions, comments are always welcome.

9. Bibliography

1. The Complete Reference Java 2, Fifth Edition by Patrick Naughton and Herbert Schildt. 2. Software Engineering: A Practitioners Approach, Fourth Edition by Pressman R.S. 3. Software Engineering Concepts by Richard E Fairely.

4. Java Swing by Marc Loy, Robert Eckstein, Dave Wood, James Elliot and Brian Cole. 5. Core JAVA Volume II Advanced Features by Cay S. Horstmann, Gary Cornell.

S-ar putea să vă placă și