hrms by veeranki.munindra



1.    INTRODUCTION                                 2
      1.1 About the project                        2

      2.1 Definition of the problem                3
      2.2 Feasibility study                        5

3.    SYSTEM ANALYSIS                              6
      3.1  Hardware and Software Specifications    6
      3.2  Software Requirements Specifications    59
           3.2.1 Formal Description                59

4.    SYSTEM DESIGN                                62
      4.1  Data Design                             62
           4.1.1 Database Tables                   64
           4.1.2 Data Dictionary                   65
      4.2  Functional Design                        67

5.    STRUCTURAL ANALYSIS                          70
      5.1 Use case Diagrams                        70
      5.2 Class Diagram                            74
      5.3 Activity Diagrams                        75
      5.4 Sequence Diagrams                        83

6.    SCREEN SHOTS                                 89

7.    TESTING                                      95
      7.1  Unit Testing                            96
      7.2   Integration Testing                    96
      7.3   System testing                         96
      7.4   Acceptance testing                     97
      7.5   Implementation                         97

8.    MAINTAINENCE                                 98
      7.1 CONCLUSION                               101
      7.2 FORESEEABLE ENHANCEMENTS                 101

10.   BIBLIOGRAPHY                                 102

         1. INTRODUCTION

    1.1 About the project:

         Human Resources Management System is online system with Personal and
general administration activities fully automated, like Recruitment, Employee
establishment and personal information, Medical Reimbursement, Leave and Attendance,
Payroll, Training etc...

    2.       Problem definition and feasibility analysis

2.1 Definition of the problem
            No proper dynamic search method is available to immediately
             access a particular record.

            Fast retrieval of required data is not possible thus causing delay
             and unnecessary search of the entire list.

            FoxPro under Novel NetWare version is not a graphical user
             interface based application.

            User interactionwith the system is minimized because of the DOS
             environment, unlike the windows environment where the user
             interaction with the system is high.

            Handling of large data bases effectively is not possible with the
             above software.

            Creating dynamic queries is difficult in FoxPro, So dynamic report
             generation is not possible.

            Security feature which is very important aspect of NFCL is already
             existing but needs to be enhanced and need to be foolproof.

            Online reports and graphical representation of reports do not exist
2.2 Feasibility study

       ·To automate selection process.
       To facilitate high graphical user interface to the user.
       To provide better functioning and accurate information in time.
       To provide data maintenance features.
       To improve the efficiency and to reduce the overload of work.
       To generate appropriate and concerned information to the user using dynamic
       · To generate appropriate reports.
· To provide security.

   3.      System analysis

   3.1 Hardware and software specifications
 Software specifications:
       Operating system           : Windows 2000,Windows XP
       Backend                     : SQL Server 2005
       Language                    :C#.NET,ASP.NET, HTML
       Browser                     : Internet explorer 4.0

Description of technologies:
Client Server
        With the varied topic in existence in the fields of computers, Client Server is one,
which has generated more heat than light, and also more hype than reality. This
technology has acquired a certain critical mass attention with its dedication conferences
and magazines. Major computer vendors such as IBM and DEC, have declared that
Client Servers is their main future market. A survey of DBMS magazine reveled that
76% of its readers were actively looking at the client server solution. The growth in the
client server development tools from $200 million in 1992 to more than $1.2 billion in
        Client server implementations are complex but the underlying concept is simple
and powerful. A client is an application running with local resources but able to request
the database and relate the services from separate remote server. The software mediating
this client server interaction is often referred to as MIDDLEWARE.
        The typical client either a PC or a Work Station connected through a network to a
more powerful PC, Workstation, Midrange or Main Frames server usually capable of
handling request from more than one client. However, with some configuration server
may also act as client. A server may need to access other server in order to process the
original client request.
        The key client server idea is that client as user is essentially insulated from the
physical location and formats of the data needs for their application. With the proper
middleware, a client input from or report can transparently access and manipulate both
local database on the client machine and remote databases on one or more servers. An
added bonus is the client server opens the door to multi-vendor database access indulging
heterogeneous table joins.

What is a Client Server?
        Two prominent systems in existence are client server and file server systems. It is
essential to distinguish between client servers and file server systems. Both provide
shared network access to data but the comparison dens there! The file server simply
provides a remote disk drive that can be accessed by LAN applications on a file-by-file
basis. The client server offers full relational database services such as SQL-Access,
Record modifying, Insert, Delete with full relational integrity backup/ restore
performance for high volume of transactions, etc. the client server middleware provides a
flexible interface between client and server, who does what, when and to whom.

Why Client Server:
        Client server has evolved to solve a problem that has been around since the
earliest days of computing: how best to distribute your computing, data generation and
data storage resources in order to obtain efficient, cost effective departmental an
enterprise wide data processing. During mainframe era choices were quite limited. A
central machine housed both the CPU and DATA (cards, tapes, drums and later disks).
Access to these resources was initially confined to batched runs that produced
departmental reports at the appropriate intervals. A strong central information service
department ruled the corporation. The role of the rest of the corporation limited to
requesting new or more frequent reports and to provide hand written forms from which
the central data banks were created and updated. The earliest client server solutions
therefore could best be characterized as “SLAVE-MASTER”.
Time-sharing changed the picture. Remote terminal could view and even change the
central data, subject to access permissions. And, as the central data banks evolved in to
sophisticated relational database with non-programmer query languages, online users
could formulate adhoc queries and produce local reports with out adding to the MIS
applications software backlog. However remote access was through dumb terminals, and
the client server remained subordinate to the Slave\Master.

Front end or User Interface Design:
         The entire user interface was planned to develop in browser specific environment
with a touch of Intranet-Based Architecture for achieving the Distributed Concept.
         The browser specific components are designed by using the HTML standards, and
the dynamism of the designed by concentrating on the constructs of the Java Server
Communication or Database Connectivity Tier:
         The Communication architecture is designed by concentrating on the Standards of
Active Server Pages. The database connectivity is established by using the Sql server
The standards of three-tire architecture are given major concentration to keep the
standards of higher cohesion and limited coupling for effectiveness of the operations.

Overview of the .NET Framework

         The .NET Framework is a new computing platform that simplifies application
   development in the highly distributed environment of the Internet. The .NET
   Framework is designed to fulfill the following objectives:
      To provide a consistent object-oriented programming environment whether object
       code is stored and executed locally, executed locally but Internet-distributed, or
       executed remotely.
      To provide a code-execution environment that minimizes software deployment
       and versioning conflicts.
      To provide a code-execution environment that guarantees safe execution of code,
       including code created by an unknown or semi-trusted third party.
      To provide a code-execution environment that eliminates the performance
       problems of scripted or interpreted environments.
      To make the developer experience consistent across widely varying types of
       applications, such as Windows-based applications and Web-based applications.
      To build all communication on industry standards to ensure that code based on the
       .NET Framework can integrate with any other code.

   The .NET Framework has two main components: the common language runtime and
the .NET Framework class library. The common language runtime is the foundation of
the .NET Framework. You can think of the runtime as an agent that manages code at
execution time, providing core services such as memory management, thread
management, and remoting, while also enforcing strict type safety and other forms of
code accuracy that ensure security and robustness. In fact, the concept of code
management is a fundamental principle of the runtime. Code that targets the runtime is
known as managed code, while code that does not target the runtime is known as
unmanaged code. The class library, the other main component of the .NET Framework, is
a comprehensive, object-oriented collection of reusable types that you can use to develop
applications ranging from traditional command-line or graphical user interface (GUI)
applications to applications based on the latest innovations provided by ASP.NET, such
as Web Forms and XML Web services.

   The .NET Framework can be hosted by unmanaged components that load the
common language runtime into their processes and initiate the execution of managed
code, thereby creating a software environment that can exploit both managed and
unmanaged features. The .NET Framework not only provides several runtime hosts, but
also supports the development of third-party runtime hosts.
For example, ASP.NET hosts the runtime to provide a scalable, server-side environment
for managed code. ASP.NET works directly with the runtime to enable Web Forms
applications and XML Web services, both of which are discussed later in this topic.

Internet Explorer is an example of an unmanaged application that hosts the runtime (in
the form of a MIME type extension). Using Internet Explorer to host the runtime enables
you to embed managed components or Windows Forms controls in HTML documents.
Hosting the runtime in this way makes managed mobile code (similar to Microsoft®
ActiveX® controls) possible, but with significant improvements that only managed code
can offer, such as semi-trusted execution and secure isolated file storage.

Features of the Common Language Runtime

The common language runtime manages memory, thread execution, code execution, code
safety verification, compilation, and other system services. These features are intrinsic to
the managed code that runs on the common language runtime.

With regards to security, managed components are awarded varying degrees of trust,
depending on a number of factors that include their origin (such as the Internet, enterprise
network, or local computer). This means that a managed component might or might not
be able to perform file-access operations, registry-access operations, or other sensitive
functions, even if it is being used in the same active application.

The runtime enforces code access security. For example, users can trust that an
executable embedded in a Web page can play an animation on screen or sing a song, but
cannot access their personal data, file system, or network. The security features of the
runtime thus enable legitimate Internet-deployed software to be exceptionally feature

The runtime also enforces code robustness by implementing a strict type- and code-
verification infrastructure called the common type system (CTS). The CTS ensures that
all managed code is self-describing. The various Microsoft and third-party language
compilers generate managed code that conforms to the CTS. This means that managed
code can consume other managed types and instances, while strictly enforcing type
fidelity and type safety.
In addition, the managed environment of the runtime eliminates many common software
issues. For example, the runtime automatically handles object layout and manages
references to objects, releasing them when they are no longer being used. This automatic
memory management resolves the two most common application errors, memory leaks
and invalid memory references.

The runtime also accelerates developer productivity. For example, programmers can
write applications in their development language of choice, yet take full advantage of the
runtime, the class library, and components written in other languages by other
developers. Any compiler vendor who chooses to target the runtime can do so. Language
compilers that target the .NET Framework make the features of the .NET Framework
available to existing code written in that language, greatly easing the migration process
for existing applications.

While the runtime is designed for the software of the future, it also supports software of
today and yesterday. Interoperability between managed and unmanaged code enables
developers to continue to use necessary COM components and DLLs.

The runtime is designed to enhance performance. Although the common language
runtime provides many standard runtime services, managed code is never interpreted. A
feature called just-in-time (JIT) compiling enables all managed code to run in the native
machine language of the system on which it is executing. Meanwhile, the memory
manager removes the possibilities of fragmented memory and increases memory locality-
of-reference to further increase performance.

Finally, the runtime can be hosted by high-performance, server-side applications, such as
Microsoft® SQL Server™ and Internet Information Services (IIS). This infrastructure
enables you to use managed code to write your business logic, while still enjoying the
superior performance of the industry's best enterprise servers that support runtime

Common Type System

The common type system defines how types are declared, used, and managed in the
runtime, and is also an important part of the runtime's support for cross-language
integration. The common type system performs the following functions:
      Establishes a framework that enables cross-language integration, type safety, and
       high performance code execution.
      Provides an object-oriented model that supports the complete implementation of
       many programming languages.
      Defines rules that languages must follow, which helps ensure that objects written
       in different languages can interact with each other.

In This Section Common Type System Overview
       Describes concepts and defines terms relating to the common type system.
Type Definitions
       Describes user-defined types.
Type Members
       Describes events, fields, nested types, methods, and properties, and concepts such
       as member overloading, overriding, and inheritance.
Value Types
       Describes built-in and user-defined value types.
       Describes the characteristics of common language runtime classes.
       Describes the delegate object, which is the managed alternative to unmanaged
       function pointers.

       Describes common language runtime array types.
       Describes characteristics of interfaces and the restrictions on interfaces imposed
       by the common language runtime.
       Describes managed pointers, unmanaged pointers, and unmanaged function
Related Sections
. NET Framework Class Library
       Provides a reference to the classes, interfaces, and value types included in the
       Microsoft .NET Framework SDK.
Common Language Runtime
       Describes the run-time environment that manages the execution of code and
       provides application development services.

Cross-Language Interoperability

The common language runtime provides built-in support for language interoperability.
However, this support does not guarantee that developers using another programming
language can use code you write. To ensure that you can develop managed code that can
be fully used by developers using any programming language, a set of language features
and rules for using them called the Common Language Specification (CLS) has been
defined. Components that follow these rules and expose only CLS features are considered

This section describes the common language runtime's built-in support for language
interoperability and explains the role that the CLS plays in enabling guaranteed cross-
language interoperability. CLS features and rules are identified and CLS compliance is

In This Section
Language Interoperability
       Describes built-in support for cross-language interoperability and introduces the
       Common Language Specification.
What is the Common Language Specification?
       Explains the need for a set of features common to all languages and identifies
       CLS rules and features.
Writing CLS-Compliant Code
       Discusses the meaning of CLS compliance for components and identifies levels of
       CLS compliance for tools.
Common Type System
       Describes how types are declared, used, and managed by the common language
Metadata and Self-Describing Components
       Explains the common language runtime's mechanism for describing a type and
       storing that information with the type itself.
. NET Framework Class Library

The .NET Framework class library is a collection of reusable types that tightly integrate
with the common language runtime. The class library is object oriented, providing types
from which your own managed code can derive functionality. This not only makes the
.NET Framework types easy to use, but also reduces the time associated with learning
new features of the .NET Framework. In addition, third-party components can integrate
seamlessly with classes in the .NET Framework.

For example, the .NET Framework collection classes implement a set of interfaces that
you can use to develop your own collection classes. Your collection classes will blend
seamlessly with the classes in the .NET Framework.

As you would expect from an object-oriented class library, the .NET Framework types
enable you to accomplish a range of common programming tasks, including tasks such as
string management, data collection, database connectivity, and file access. In addition to
these common tasks, the class library includes types that support a variety of specialized
development scenarios. For example, you can use the .NET Framework to develop the
following types of applications and services:

      Console applications.
      Scripted or hosted applications.
      Windows GUI applications (Windows Forms).
      ASP.NET applications.
      XML Web services.
      Windows services.
For example, the Windows Forms classes are a comprehensive set of reusable types that
vastly simplify Windows GUI development. If you write an ASP.NET Web Form
application, you can use the Web Forms classes.

Client Application Development

Client applications are the closest to a traditional style of application in Windows-based
programming. These are the types of applications that display windows or forms on the
desktop, enabling a user to perform a task. Client applications include applications such
as word processors and spreadsheets, as well as custom business applications such as
data-entry tools, reporting tools, and so on. Client applications usually employ windows,
menus, buttons, and other GUI elements, and they likely access local resources such as
the file system and peripherals such as printers.

Another kind of client application is the traditional ActiveX control (now replaced by the
managed Windows Forms control) deployed over the Internet as a Web page. This
application is much like other client applications: it is executed natively, has access to
local resources, and includes graphical elements.

In the past, developers created such applications using C/C++ in conjunction with the
Microsoft Foundation Classes (MFC) or with a rapid application development (RAD)
environment such as Microsoft® Visual Basic®. The .NET Framework incorporates
aspects of these existing products into a single, consistent development environment that
drastically simplifies the development of client applications.

The Windows Forms classes contained in the .NET Framework are designed to be used
for GUI development. You can easily create command windows, buttons, menus,
toolbars, and other screen elements with the flexibility necessary to accommodate
shifting business needs.

For example, the .NET Framework provides simple properties to adjust visual attributes
associated with forms. In some cases the underlying operating system does not support
changing these attributes directly, and in these cases the .NET Framework automatically
recreates the forms. This is one of many ways in which the .NET Framework integrates
the developer interface, making coding simpler and more consistent.
Unlike ActiveX controls, Windows Forms controls have semi-trusted access to a user's
computer. This means that binary or natively executing code can access some of the
resources on the user's system (such as GUI elements and limited file access) without
being able to access or compromise other resources. Because of code access security,
many applications that once needed to be installed on a user's system can now be safely
deployed through the Web. Your applications can implement the features of a local
application while being deployed like a Web page.

Managed Execution Process

The managed execution process includes the following steps:

   1. Choosing a Complier

       To obtain the benefits provided by the common language runtime, you must use
       one or more language compilers that target the runtime.

   2. Compiling your code to Microsoft Intermediate Language (MSIL)

       Compiling translates your source code into MSIL and generates the required

   3. Compiling MSIL to native code

       At execution time, a just-in-time (JIT) compiler translates the MSIL into native
       code. During this compilation, code must pass a verification process that
       examines the MSIL and metadata to find out whether the code can be determined
       to be type safe.

   4. Executing your code

       The common language runtime provides the infrastructure that enables execution
       to take place as well as a variety of services that can be used during execution.
Assemblies Overview

Assemblies are a fundamental part of programming with the .NET Framework. An
assembly performs the following functions:

      It contains code that the common language runtime executes. Microsoft
       intermediate language (MSIL) code in a portable executable (PE) file will not be
       executed if it does not have an associated assembly manifest. Note that each
       assembly can have only one entry point (that is, DllMain, WinMain, or Main).
      It forms a security boundary. An assembly is the unit at which permissions are
       requested and granted. For more information about security boundaries as they
       apply to assemblies, see Assembly Security Considerations
      It forms a type boundary. Every type's identity includes the name of the assembly
       in which it resides. A type called MyType loaded in the scope of one assembly is
       not the same as a type called MyType loaded in the scope of another assembly.
      It forms a reference scope boundary. The assembly's manifest contains assembly
       metadata that is used for resolving types and satisfying resource requests. It
       specifies the types and resources that are exposed outside the assembly. The
       manifest also enumerates other assemblies on which it depends.
      It forms a version boundary. The assembly is the smallest versionable unit in the
       common language runtime; all types and resources in the same assembly are
       versioned as a unit. The assembly's manifest describes the version dependencies
       you specify for any dependent assemblies. For more information about
       versioning, see Assembly Versioning
      It forms a deployment unit. When an application starts, only the assemblies that
       the application initially calls must be present. Other assemblies, such as
       localization resources or assemblies containing utility classes, can be retrieved on
       demand. This allows applications to be kept simple and thin when first
       downloaded. For more information about deploying assemblies, see Deploying
      It is the unit at which side-by-side execution is supported. For more information
       about running multiple versions of the same assembly, see Side-by-Side
Assemblies can be static or dynamic. Static assemblies can include .NET Framework
types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files,
resource files, and so on). Static assemblies are stored on disk in PE files. You can also
use the .NET Framework to create dynamic assemblies, which are run directly from
memory and are not saved to disk before execution. You can save dynamic assemblies to
disk after they have executed.

There are several ways to create assemblies. You can use development tools, such as
Visual Studio .NET, that you have used in the past to create .dll or .exe files. You can use
tools provided in the .NET Framework SDK to create assemblies with modules created in
other development environments. You can also use common language runtime APIs,
such as Reflection. Emit, to create dynamic assemblies.

Server Application Development

Server-side applications in the managed world are implemented through runtime hosts.
Unmanaged applications host the common language runtime, which allows your custom
managed code to control the behavior of the server. This model provides you with all the
features of the common language runtime and class library while gaining the performance
and scalability of the host server.

The following illustration shows a basic network schema with managed code running in
different server environments. Servers such as IIS and SQL Server can perform standard
operations while your application logic executes through the managed code.

Server-side managed code

ASP.NET is the hosting environment that enables developers to use the .NET Framework
to target Web-based applications. However, ASP.NET is more than just a runtime host; it
is a complete architecture for developing Web sites and Internet-distributed objects using
managed code. Both Web Forms and XML Web services use IIS and ASP.NET as the
publishing mechanism for applications, and both have a collection of supporting classes
in the .NET Framework.

XML Web services, an important evolution in Web-based technology, are distributed,
server-side application components similar to common Web sites. However, unlike Web-
based applications, XML Web services components have no UI and are not targeted for
browsers such as Internet Explorer and Netscape Navigator. Instead, XML Web services
consist of reusable software components designed to be consumed by other applications,
such as traditional client applications, Web-based applications, or even other XML Web
services. As a result, XML Web services technology is rapidly moving application
development and deployment into the highly distributed environment of the Internet.

If you have used earlier versions of ASP technology, you will immediately notice the
improvements that ASP.NET and Web Forms offers. For example, you can develop Web
Forms pages in any language that supports the .NET Framework. In addition, your code
no longer needs to share the same file with your HTTP text (although it can continue to
do so if you prefer). Web Forms pages execute in native machine language because, like
any other managed application, they take full advantage of the runtime. In contrast,
unmanaged ASP pages are always scripted and interpreted. ASP.NET pages are faster,
more functional, and easier to develop than unmanaged ASP pages because they interact
with the runtime like any managed application.

The .NET Framework also provides a collection of classes and tools to aid in
development and consumption of XML Web services applications. XML Web services
are built on standards such as SOAP (a remote procedure-call protocol), XML (an
extensible data format), and WSDL (the Web Services Description Language). The .NET
Framework is built on these standards to promote interoperability with non-Microsoft

For example, the Web Services Description Language tool included with the .NET
Framework SDK can query an XML Web service published on the Web, parse its WSDL
description, and produce C# or Visual Basic source code that your application can use to
become a client of the XML Web service. The source code can create classes derived
from classes in the class library that handle all the underlying communication using
SOAP and XML parsing. Although you can use the class library to consume XML Web
services directly, the Web Services Description Language tool and the other tools
contained in the SDK facilitate your development efforts with the .NET Framework.

If you develop and publish your own XML Web service, the .NET Framework provides a
set of classes that conform to all the underlying communication standards, such as SOAP,
WSDL, and XML. Using those classes enables you to focus on the logic of your service,
without concerning yourself with the communications infrastructure required by
distributed software development.

Finally, like Web Forms pages in the managed environment, your XML Web service will
run with the speed of native machine language using the scalable communication of IIS.

Programming with the .NET Framework

This section describes the programming essentials you need to build .NET applications,
from creating assemblies from your code to securing your application. Many of the
fundamentals covered in this section are used to create any application using the .NET
Framework. This section provides conceptual information about key programming
concepts, as well as code samples and detailed explanations.

Accessing Data with ADO.NET
       Describes the ADO.NET architecture and how to use the ADO.NET classes to
       manage application data and interact with data sources including Microsoft SQL
       Server, OLE DB data sources, and XML.
Accessing Objects in Other Application Domains using .NET
       Describes the various communications methods available in the .NET Framework
       for remote communications.
Accessing the Internet
       Shows how to use Internet access classes to implement both Web- and Internet-
       based applications.
Creating Active Directory Components
       Discusses using the Active Directory Services Interfaces.
Creating Scheduled Server Tasks
       Discusses how to create events that are raised on reoccurring intervals.
Developing Components
       Provides an overview of component programming and explains how those
       concepts work with the .NET Framework.
Developing World-Ready Applications
     Explains the extensive support the .NET Framework provides for developing
     international applications.
Discovering Type Information at Runtime
     Explains how to get access to type information at run time by using reflection.
Drawing and Editing Images
     Discusses using GDI+ with the .NET Framework.
Emitting Dynamic Assemblies
     Describes the set of managed types in the System.Reflection.Emit namespace.
Employing XML in the .NET Framework
     Provides an overview to a comprehensive and integrated set of classes that work
     with XML documents and data in the .NET Framework.
Extending Metadata Using Attributes
     Describes how you can use attributes to customize metadata.
Generating and Compiling Source Code Dynamically in Multiple
     Explains the .NET Framework SDK mechanism called the Code Document
     Object Model (Code DOM) that enables the output of source code in multiple
     programming languages.
Grouping Data in Collections
     Discusses the various collection types available in the .NET Framework,
     including stacks, queues, lists, arrays, and structs.
Handling and Raising Events
     Provides an overview of the event model in the .NET Framework.
Handling and Throwing Exceptions
     Describes error handling provided by the .NET Framework and the fundamentals
     of handling exceptions.
Hosting the Common Language Runtime
     Explains the concept of a runtime host, which loads the runtime into a process,
     creates the application domain within the process, and loads and executes user
Including Asynchronous Calls
     Discusses asynchronous programming features in the .NET Framework.
Interoperating with Unmanaged Code
      Describes interoperability services provided by the common language runtime.
Managing Applications Using WMI
      Explains how to create applications using Windows Management Instrumentation
      (WMI), which provides a rich set of system management services built in to the
      Microsoft® Windows® operating systems.
Creating Messaging Components
      Discusses how to build complex messaging into your applications.
Processing Transactions
      Discusses the .NET Framework support for transactions.
Programming Essentials for Garbage Collection
      Discusses how the garbage collector manages memory and how you can program
      to use memory more efficiently.
Programming with Application Domains and Assemblies
      Describes how to create and work with assemblies and application domains.
Securing Applications
      Describes .NET Framework code access security, role-based security, security
      policy, and security tools.
Serializing Objects
      Discusses XML serialization.
Creating System Monitoring Components
      Discusses how to use performance counters and event logs with your application.
      Explains the runtime support for threading and how to program using various
      synchronization techniques.
Working With Base Types
      Discusses formatting and parsing base data types and using regular expressions to
      process text.
Working with I/O
      Explains how you can perform synchronous and asynchronous file and data
      stream access and how to use to isolated storage.
Writing Serviced Components
       Describes how to configure and register serviced components to access COM+
Creating ASP.NET Web Applications
       Discusses how to create and optimize ASP.NET Web applications.
Creating Windows Forms Applications
       Describes how to create Windows Forms and Windows controls applications.
Building Console Applications
Discusses how to create console-based .NET applications.

        Visual Basic is based on programming Language written for beginners called
BASIC.BASIC has been in using for more than 35 years in one form or another. The
original language designers wanted to develop a language that beginners could use.
With BASIC, new programmers could become proficient right away. Other
programming languages, such as COBOL, FORTRAN and Assembler, required much
more study than BASIC before one could use them effectively. BASIC stands for
Beginner’s All Purpose Symbolic Instruction Code.

       A programming language is a set of commands and command options called
as arguments, i.e., giving instructions to the computer. As, computers cannot yet
understand human languages because people deal with ambiguous commands, and a
computer cannot understand such ambiguity. A programming language must be
more precise than a spoken language. Although the BASIC language was designed
for beginners, a BASIC program was still rather cryptic and required study. BASIC is
strictly a text-based language. Both it’s program and output are textual and does not
produce the graphical, windowed output.

       Visual Basic was not developed directly from the original BASIC language.
There were several incarnations of BASIC with names such as MBASIC, GWBASIC,
BASICA, QuickBASIC, and QBASIC. Though the evolution of BASIC didn’t change its
nature while gaining powerful new commands all the way i.e., the text-based nature.
Microsoft realized that text-based would not work as a windowed programming
language. Microsoft developed Visual Basic, a language based on BASIC but suited to
today’s windows environment. Whereas, QBASIC and all other BASIC incarnations
were text-based, Visual Basic is graphical. Visual Basic is basically the popular
languages because it is both interpreted and compiled. Visual Basic is used not only
for programming but even in designing innovative user interfaces to take advantage
of other application’s objects, from manipulating text and graphics to working with
databases, Visual Basic provides the tools that you’ll need to get the job done right.
       A basic of Visual Basic programming introduces a variety of features that
make it easier for you to create powerful, flexible applications. Beyond the
fundamentals of writing code, Visual Basic provides a variety of language elements
that enhance your code and bring functionality to your program. In any windows
environment, designing the interface is very much important because almost all the
users presently work in a GUI environment i.e., Graphical User Interface. Visual
Basic provides all the facilities of creating a good user interface in an efficient
manner. Usage of Visual Basic is not only to serve a specific task of a single user.
This is the area where the efficient usage of Visual Basic can be carried out designing
the interface with the usage of different features, which are available in the Visual
Basic Integrated Development Environment (IDE). Visual Basic can be used to make
complex programs into simple and easily understandable ones with the help of
proper tools available in the Visual Basic Integrated Development Environment.

       On the other hand, Visual Basic is also called as an event-driven programming
language. The two main themes in developing applications with Visual Basic are:

               Visual Design

               Event-driven programming


        There are many popular Frond Ends are available in the market; among those
the following are the few Visual Basic, Developer/2000 and Power Builder. Among
Visual Basic, Developer/2000 and Power Builder, the first two Front Ends are very
popular. The Visual Basic is from Microsoft Family and the other is from Oracle
Corporation. The Visual Basic occupies the first place and Developer/2000 occupies
the second positions among all the Front Ends, which are available. In comparison
with Developer/2000, the Visual Basic, coding for forms is very much easy and
interactive than the coding for Forms in Develoepr/2000.

       In Frond Ends, the main objects are Forms and Reports. Forms are used as to
accept data, view data, and to modify data. Reports are used to print the data in a
particular format.

Visual Basic’s Visual Nature
       Visual Basic 6 is more than just a programming language. The secret to Visual
Basic is in its name: visual. With today’s Windows operating systems, a program
must be able to interact with the screen, keyboard, mouse, and printer graphically.
Older programming languages, such as BASIC, worked well in a text-only computing
environment, but such languages do not support the graphical interface needed for
today’s computers.

Visual Basic comes in several varieties including the following

Visual Basic Enterprise Edition

       Created for team programming environments and client/server computing
where applications distribute processing and data among several computers.

Visual Basic Professional Edition

       Geared toward professional programmers who want to get the most from the
Visual Basic programming environment. This edition includes a full set of tools and
wizards that help you package and distributed applications.

The Programming Process

       Decide what your application is to do by creating an overall design.

        Create the visual portion of your application (the screens and menus that
       your   users    will interact with).

        Add Visual Basic programming language code to tie the visual elements
       together and to automate the program.

        Test your application to locate and remove any bugs you find.

        Compile your tested application and distributed the compiled application to
       your users.
The Need for ActiveX

       ActiveX technology is the current version of the set of add-in controls that
began a few years ago as VBX controls. The filename extension .VBX meant that the
control was a Visual Basic extended control. In other words, ActiveX controls began
as Visual Basic controls that you could add to earlier versions of Visual Basic to
expand upon the toolbox tools that came with Visual Basic.

       Visual Basic controls were not compatible with browser technology, the
Internet, and other Windows programming tools, such as Visual C++. Nevertheless,
the Visual Basic controls in the early versions of Visual Basic were important for
extending the Visual Basic programmer’s ability to write code. The more controls the
programmer had, the less work he had to do. As a result, an entire programming
community and business developed         that created   Visual   Basic controls that
manipulated graphics, data, grids, multimedia, and so on. Due to the popularity of
Visual Basic controls Microsoft was forced to redesign them.

Adding ActiveX Controls to a Project

       Remember that ActiveX controls are just additional controls you can add to
the toolbox window and use for developing programs. All kinds of controls exist.
Several come with Visual Basic, and you can find them by selecting Project,
Components, as you’ve done throughout the earlier days. In addition you’ll find
ActiveX controls available on the Internet. Also programming firms sell ActiveX
controls that you can seamlessly integrate into the Visual Basic environment.

ActiveX Controls Professional and Enterprise Editions

       Combine existing controls, or creates your own from scratch. ActiveX controls
created with Visual Basic have events, data binding support. Licensing support,
property pages, Internet features, and more.

       Opens multiple projects in the same instance of Visual Basic. Useful for
debugging ActiveX controls.
Database Data and Visual Basic

       Bu offering you the ability to interact with databases, Visual Basic gives you
the power to access and manipulate large data resources from a Visual Basic
program. The databases that Visual Basic can access take on many forms and
formats. Visual Basic supports the following popular database formats:

        Microsoft Access.

        DBase.

        FoxPro.

        Lotus spreadsheet-based databases.

        ODBC-compliant databases.

        Paradox.

        Text files formatted with comma-delimited data.

Connecting the ADO Control to the Data

       When you use an ADO control, you must connect the control to the data the
control, will access. Of course, you also do something similar with the data control;
however, the ADO controls can, you’ll recall, connect to data that’s not necessarily in
a database table. The ADO control can access e-mail, graphics, and virtually any
data source that might reside outside your application.

       Most of the time, a programmer will connect to databases, either a local
databases on the current PC or on a networked database connected to the user’s
machine. Therefore, your first step in making the ADO control work is to connect the
control to the data source.

       You can connect a data source to the ADO control in two ways:

        Set the Connection String property
        Use code to connect the control to the data

       With Visual Basic 6.0 it is possible to pass a user defined type (UDT) as an
argument to a procedure or function, however there is a restriction. Passing a UDT to
a procedure in an out-of-process component or across threads in a multi-threaded
component requires an updated version of DCOM for Windows 95 and Windows 98,
or Service Pack 4 for Windows NT 4.0. This update is required on your development
computer as well as on any computer that will run your application. A run-time error
will occur if the required files are not installed.

       The above does not apply to passing UDT's within a single-threaded application;
this will work without updating.

       The Package and Deployment Wizard will not determine the dependencies for the
necessary components - it is up to you to make sure that the files are on the end user's
computer. You can test for the existence of the components by trapping for run-time error
458 - "Variable uses an Automation type not supported in Visual Basic". If this error
occurs, the DCOM or Service Pack components must be updated; the update procedure
differs depending on the operating system:

What's New in Visual Database Tools

To find out about the features that are new to this version of the Visual Database Tools,
look in the MSDN Library Visual Studio 6.0 documentation's table of contents for
"What's New in Visual Database Tools," located in the Reference section of the Visual
Studio Documentation node.

The following issues are known in this release of the Visual Database Tools. For product-
specific issues, refer to the read me for the appropriate product. Only the latest MS
ODBC and OLE DB drivers are supported. Even though older drivers and third party
drivers may work with the Visual Database Tools, the Visual Database Tools are only
certified against the latest Microsoft ODBC and OLE DB drivers. If you are encountering
unexpected behavior, verify that you are using the correct drivers.

Global Objects Professional and Enterprise Editions
To simplify the creation of reusable code libraries, Visual Basic lets you mark objects in
a code component as global, so that their methods can be invoked without explicitly
creating an instance of the global object.

OLE Drag and Drop All Editions

Most controls now support drag and drop operations between OLE applications: for
example, dragging the contents of a Word document into a Text Box control.

Polymorphism All Editions
The Implements feature allows your classes to support multiple interfaces. Users of your
components can early bind to these interfaces, regardless of the object that implements

Top Enterprise Edition Features

Multithreaded and Thread-safe ActiveX Components Enterprise Edition

Two new features support building scalable ActiveX Components using multithreading
technology. Building ActiveX components for unattended execution (no user interface
elements) in distributed applications allows the components to be used in multithreaded
environments. ActiveX DLL components marked for unattended execution support the
ActiveX/COM Apartment threading model. ActiveX EXE components marked for
unattended execution will allocate object instances across multiple threads for better
scalability as instances are created.

Migration to COM in a Distributed Environment Enterprise Edition

        Full support for distributed components through COM: All of the Remote
Automation tools now support, optimistic batch updates, and standalone connection and
query objects.

RDO/RDC Enhancements Enterprise Edition

        The Remote Data Objects library and the Remote Data Control version 2.0 feature
enhanced local cursor support, optimistic batch updates, and standalone connection and
query objects.
Connection Designer Enterprise Edition

       Built-in ActiveX designer allows you to create stand-alone connection objects
with user-defined queries or stored procedures as methods.

SQL Debugging Enterprise Edition

Interactive debugging tool allows you to debug Transact-SQL code from within the VB
design environment.
Repository Enterprise Edition
       Built-in Repository objects that can save, organize, search for, and retrieve data
about your Visual Basic projects. An extensible object model and API allow full
programmatic access to the Repository. New object models can be created to help you
manage your software tools.

MSFlexGrid Control

       The Microsoft FlexGrid (MSFlexGrid) control displays and operates on tabular
data. It allows complete flexibility to sort, merge, and format tables containing strings
and pictures. When bound to a Data control, MSFlexGrid displays read-only data.


You can put text, a picture, or both, in any cell of an MSFlexGrid. The Row and Col
properties specify the current cell in an MSFlexGrid. You can specify the current cell in
code, or the user can change it at run time using the mouse or the arrow keys. The Text
property references the contents of the current cell.
If the text in a cell is too long to display in the cell, and the WordWrap property is set to
True, the text wraps to the next line within the same cell. To display the wrapped text,
you may need to increase the cell’s column width (ColWidth property) or row height
(RowHeight property).
Use the Col and Row properties to determine the number of columns and rows in an
Note: Before you can use an MSFlexGrid in your application, you must add the
MSFlxGrd.ocx file to your project. To automatically include the file in your project, put
it in the Autoload file. When distributing your application, you should install the
MSFlxGrd.ocx file in the user’s Microsoft Windows System directory.

Common Dialog Control

 The Common Dialog control provides a standard set of dialog boxes for operations such
as opening and saving files, setting print options, and selecting colors and fonts. The
control also has the ability to display help by running the Windows Help engine.


Common Dialog


The Common Dialog control provides an interface between Visual Basic and the routines
in the Microsoft Windows dynamic-link library Commdlg.dll. To create a dialog box
using this control, Commdlg.dll must be in your Microsoft Windows SYSTEM directory.
You use the Common Dialog control in your application by adding it to a form and
setting its properties. The dialog displayed by the control is determined by the methods of
the control. At run time, a dialog box is displayed or the help engine is executed, when
the appropriate method is invoked; at design time, the CommonDialog control is
displayed as an icon on a form. This icon can't be sized.
The CommonDialog control can display the following dialogs using the specified

Method         Dialog Displayed

Show Open      Show Open Dialog Box

Show Save      Show Save As Dialog Box

Show Color     Show Color Dialog Box

Show Font      Show Font Dialog Box

Show Printer Show Print or Print Options Dialog Box

Show Help      Invokes the Windows Help Engine
SSTab Control

        The SSTab control provides a group of tabs, each of which acts as a container for
other controls. Only one tab is active in the control at a time, displaying the controls it
contains to the user while hiding the controls in the other tabs.




An SSTab control is like the dividers in a notebook or the labels on a group of file
folders. Using an SSTab control, you can define multiple pages for the same area of a
window or dialog box in your application. Using the properties of this control, you can:

              Determine the number of tabs.

              Organize the tabs into more than one row.

              Set the text for each tab.

              Display a graphic on each tab.

              Determine the style of tabs used.

              Set the size of each tab.

To use this control, you must first decide how you want to organize the controls you will
place into various tabs. Set the Tabs and TabsPerRow properties to create the tabs and
organize them into rows. Then select each tab at design time by clicking the tab. For each
tab, draw the controls you want displayed when the user selects that tab. Set the Caption,
Picture, Tab Height, and TabMaxWidth properties as needed to customize the top part of
the tab.
At run time, users can navigate between tabs by either pressing CTRL+TAB or by using
accelerator keys defined in the caption of each tab.
You can also customize the entire SSTab control using the Style, ShowFocusRect, Tab
Orientation, and WordWrap properties.
Distribution Note The SSTab control is found in the TABCTL32.OCX file. To use the
SSTab control in your application, you must add the control's .OCX file to the project.
When distributing your application, install the appropriate .OCX file in the user's
Microsoft Windows System or System32 directory.

Progress Bar Control

A progress bar is a window that an application can use to indicate the progress of a
lengthy operation. It consists of a rectangle that is gradually filled with the system
highlight color as an operation progresses. The following illustration shows a progress
bar positioned along the bottom of a window.

Using Progress Bars
You create a progress bar by using the CreateWindowEx function, specifying the
PROGRESS_CLASS window class. This window class is registered when the common
control dynamic-link library (DLL) is loaded. To ensure that this DLL is loaded, use the
InitCommonControls function first.

Date and Time Picker Controls

A date and time picker (DTP) control provides a simple and intuitive interface through
which to exchange date and time information with a user. For example, with a DTP
control you can ask the user to enter a date and then retrieve his or her selection with

Active Server Pages:

Active Server Pages is Microsoft’s solution to building advanced web sites. Many of the
largest, most technologically demanding and most successful commercial Web sites
running on the Internet today-such as Dell(, Hotbox(
etc. were built using ASP.

Active server pages (asp) is a server-side scripting environment that you can
Use to create and run dynamic, Inter ActiveX high-performance web server
application. When your scripts run in the server rather than on the client, your web server
does all the work involved in generating the
Hypertext Markup Language (HTML) pages that you send to browsers.

Pages that include server-side script are called active server pages (ASP) and use the .asp
extension. Asp provides functionality to web pages through the use of a script language.
Asp automatically supports the VBscript and JavaScript.

Using Active server pages:

 Generate dynamic web pages. an active server can display different content to
  different users or display different content at different times of the day.
 Process the contents of HTML forms. You can use an active server page to retrieve
  and respond to the data entered into an HTML form.
 Create database-driven web pages. An active server page can insert new data or
  retrieve existing data from a database such as Microsoft SQL server.
 Track user sessions. You can use Active Server Pages to store information about users
  from the moment they arrive at your web site until the moment they leave.
 Create searchable web pages. When used with Microsoft index server or Microsoft
  SQL server Full-Text search, active server pages enable you to create a search engine
  for your web site.
 Detect the capabilities different browsers. An active server page can detect the features
  that a browser supports and display content that is appropriate to different browsers.
 Send and retrieve email. An active server page can automatically send email to users
  and retrieve email sent to your web site.

 Integrate custom components into your web site. You can extend your active server
  page scripts with custom server-side components created with Microsoft script
  components, Microsoft Visual Basic, or Microsoft Visual C++.

An active server page is a feature of and can be used with the following web servers.
 Microsoft Internet information server version 3.0 on Windows NT server.
 Microsoft peer web services version 3.0 on Windows NT workstation.
 Microsoft personal web server on Windows 95.
How Active Server Pages really Work

An Active Server Page is a standard HTML file that is extended with additional features.
Like a standard HTML file, an Active Server Page contains HTML tags that can be
interpreted and displayed by a Web browser. However, an ASP has three important
features that make it unique:

 An ASP can contain server-side scripts. By including server-side scripts in an Active
    Server Pages, you can create Web pages with dynamic content. To take an extremely
    simple example, you can create a Web page that displays different messages at
    different times of the day.
 An ASP provides several built-in objects. By using the built-in objects accessible in
    an Active Server Page, you can make your scripts much more powerful. Among other
    things, these objects enable you to both retrieve information from and send
    information to browser.
 An Active Server Page can be extended with additional components. Active Server
    Pages come bundled with several standard, server-side ActiveX components. These
    components enable you to do such things as work with database, send email, and
    access the file system.

Active server page applications are:

   Completely integrated with your html files.
   Easy to create with no manual compiling or linking of programs required.
 Object -oriented and extensible with ActiveX server components.


Internet information server (IIS) is the core window NT service that provides
Internet services. The web site has information about the latest patches and Service Pack

What Exactly Does IIS Do?
Microsoft has a wide variety of products designed for Internet connectivity. In fact, so
many choices are available that differentiating between them is difficult. IIS is the
underpinning that provides information-publishing capabilities on the Internet. Microsoft
provides other vehicles for personal contact publishing such as Personal Web Server. But
IIS is Microsoft’s engine for departmental and enterprise-level publishing. IIS is the
engine that runs large Web sites such as etc. IIS is now its fourth version.
IIS 1.0 become available in 1995, but it was IIS 3.0 that really Caught in the summer of
1996. IIS 4.0 became available as a public beta in June 1997. With IIS 4.0, Microsoft
introduces a number of new features. Many of the application for IIS 4.0 will be hardcore
c++ components held together by VBscript.

Feature                          Description
MMC                                     Microsoft management console is an
                                        integrated server management tool.
                                      Although it appears as part of IIS 4.0,
                                      Microsoft has announced that MMC
                                       Will be native components in NT 5.

BANDWIDTH CONTROL                       Bandwidth can be controlled on a site-by-
                                        site basis big plus for web presence
CERTIFICATE SERVER                     Microsoft now supports x.509 digital
                                        security certificates for use with secure
                                         Sockets Layer (SSL).
COMMAND LINE ADMIN                      IIS responds to commands issued from
                                       script files.
HTTP1.1                  Most but not all portions of the HTP1.1
                           standard are implemented in IIS 4.0.missing
                           components of the standard were left out
                           because no browsers support all the 1.1

WEB SITE TOOLS           Rogue components won't hang all IIS
                           processes, as long as the component is
                           marked to run in its own separate memory

REPLICATION              Content replication between servers is
                           implemented as part of IIS.

INDEX SERVER 2.0          Index server allows searches of the NT file
                           System using SQL command. Searches can
                           Be called from scripts, VB, C, JAVA, and

PROTOCOL                            DESCRIPTION

FTP                     File transfer protocol.publishes files in a
                          directory format.commanly used as a
                          Mechanism to both distributes and receives
WWW                                 World Wide Web. This is the protocol that
                                      most people associate with the Internet
                                      (Although certainly not the only one).

NNTP                                Commonly referred to as news. A mechanism
                                      To publish newsgroups.note thatnewsgroups
                                      Are a derivative of mail.and aren't really
                                      "Hosted" by one-site. multiple sites can each
                                      Have a news server, and those servers can
                                      talk peer-to-peer so that news posting at
                                      site A will be replicated to site B.

SMTP                                Simple mail transport protocol, usually
                                      known as "mail.” This is a standard mail
                                      Implementation that's extremely useful for
                                      Sites that use mail as a messaging engine for


An asp file is a text file that can contain any combination of the following elements.
 Text
 HTML tags
 Server-side script
 Client-side script

An asp script begins to run when a browser requests a .asp file from your web server.
Your web server then call asp, which reads through the requested
File from top to bottom, executes any command, and sends an HTML page to the


HTML is a simple, text-based language that uses a series of tags to create a document
that can be viewed by a browser.The HTML code in listing. HTML is not really a
language in the same sense as c++ or Microsoft visual basic.It is more like a formatting
syntax for documents that use escape codes.In fact we aften liken HTML coding to
creating a Microsoft word document by typing formatting codes directly into notepad.
HTML is a poor language from a programming perspective for a variety of reasons.
First consider the hyperlink,those underlined blue works that you click to go to another
page.the hyperlink is essentially a glorified go statement that prrovides a hard-coded
jump to some location in the application.
Second HTML provides no real way to persist date throughout an application.In fact it is
difficult to even define an application on the web.each page represents a stateless
transaction with the server.
Third,HTML allows limited interactivity,standard HTML yields static web pages with
text,images ,and hyperlinks to other pages.
Admittedly, HTML can provide some interactivity through the use of intrinsic
controls,the input devices you generally see in HTML forms.Forms                 represent     the
primary means of interaction in HTML.A user fills out a series of forms,which are then
submitted to the Back-end server. HTML is created in plain text ,so originally most
HTML developers wrote their code directly in a text editor such as notepad.As time went
on, companies produced graphically development tools such as microsoft front page,
which were designed to allow web pages creation without explicit knowledge of HTML .


Intrinsic objects are features built into the asp architecture.five objects are intrinsic to can use them to add additional functionality to a web application.
Using intrinsic objects you can share information among all users of your application
store information for a specific user retrive information passed from the user to the server
send output to the user and work with the properties and methods of components on the

The following table lists the objects and their use.

OBJECT                                                   DESCRIPTION

REQUEST                                    Retrieves the value that the user passes to
                                           the web server during an HTTP request.

RESPONSE                                     Controls what information is sent to a user
                                               in the HTTP response message.

SESSION                                      Stores information about a particular user

APPLICATION                                  Share information among all users of a web

SERVER                                        Provide access to resources that reside on
                                              a web server.

OBJECTCONTEXT OBJECT                          Control active server pages transactions. the
                                              Transactions are managed by the Microsoft
                                              transaction server (MTS)


IIS provides five activex server components, which are refereed to as base
addition to the base components; you can create custom activex server components with
tools such as Microsoft visual basic.

The following table lists and describes are five base components provided by IIS.
BASE COMPONENT                                   DESCRIPTION

ADVERTISEMENT ROTATOR                    Automatically rotates advertisement
                                                Displayed on a web page according
                                         to a specified schedule.

BROWSER CAPABILITIES                     Determines the capabilities, type, and
                                         Version of a user's web browser.

DATABASE ACCESS                          Uses activex data objects(ADO)to
                                         Access information stored in a
                                           Database or other tabular data

CONTENT LINKING                         Creates a table of contents for web
                                              Pages and links them sequentially,
                                                Like pages in a book.

FILE ACCES                              Uses the file system object to retrive
                                              And modify information stored in a
                                              Text file on the server

Microsoft introduced a new management tool with IIS 4.0,known as the Microsoft
management console (MMC). MMC is more of a framework that hosts snap-ins, such as
IIS. As Microsoft moves forward to NT 5,more
Snap-ins will be designed for MMC.

MMC is used to manage IIS, not to install it. MMC uses a familiar explorer-likeinterface;
complete with an expandable tree view isn't integrated with explorer in the
same way as control panel and Internet Explorer 4.0.


Scripting is code that you write in a web page.the script runs either on the client computer when a
user interacts with a control, or on the web server before the page is returned to the both
cases, you add script to a web page as ASCII text.


 Client-side script runs on the client computer.
 The primary purpose of adding client-side script to a web page is to create event
  procedures for controls.
 Client-side script is not compiled, nor is it encrypted in Html age.therefore, if you view
  the Html source of a web pages, you will see the script included in the page.
 For a client-side script to function a web browser must support the scripting language.if
  it does not, the user will not have full access to the scripted features on the web page.

Client-side script is useful for performing the following tasks:

 Validating control values on a form.
 Providing event procedures for controls.

Implementing client-side scripting:

To use client-side scripting to enhance the functionality of web pages, you embed the source code
into its Html page as ASCII text.when it encounters a script, the web browser calls a scripting
interpreter, which parses and deciphers the scripting code. The web browser must support
scripting, and it must be able to integrate scripting with activex controls or Java applets embedded
in the in the HTML page.

 Server-side script runs in an active server page on a web server before the server returns
 the page to the user. when server requests an active server page. the server-side script
 runs and generate HTML to return to the user.
 Server-side script is not visible to the user on the returned WebPages. Because server-
 side runs on a web server.
 Server-side script requires a web server that supports active server pages. an web
 browser does not need to provide any additional functionality for a server-side script to
 work. Therefore, server-side script runs regardless of which web browser is used.

Server-side script is useful for performing the following tasks:

 Accessing a database and retiring data to the user.
 Saving status information about a user or session.

Microsoft SQL Server 7.0 Storage Engine


SQL Server™ 7. 0 a scalable, reliable, and easy-to-use product that will provide a solid
foundation for application design for the next 20 years.
Storage Engine Design Goals
Database applications can now be deployed widely due to intelligent, automated storage
engine operations. Sophisticated yet simplified architecture improves performance,
reliability, and scalability.

Feature             Description and Benefits

Reliability         Concurrency, scalability, and reliability are improved with simplified
                    data structures and algorithms. Run-time checks of critical data
                    structures make the database much more robust, minimizing the need
                    for consistency checks.

Scalability         The new disk format and storage subsystem provide storage that is
                    scalable from very small to very large databases. Specific changes
                       Simplified mapping of database objects to files eases
                        management and enables tuning flexibility. DB objects can be
                        mapped to specific disks for load balancing.

                       More efficient space management including increasing page
                        size from 2 KB to 8 KB, 64 KB I/O, variable length character
                        fields up to 8 KB, and the ability to delete columns from
                        existing tables without an unload/reload of the data.

                       Redesigned utilities support terabyte-sized databases

Ease of Use     DBA intervention is eliminated for standard operations—enabling
                branch office automation and desktop and mobile database
                applications. Many complex server operations are automated.

Storage Engine Features
Feature         Description and Benefits

Data Type       Maximum size of character and binary data types is dramatically
Sizes           increased.

Databases and   Databases creation is simplified, now residing on operating system
Files           files instead of logical devices.

Dynamic         Improves performance by optimizing memory allocation and usage.
Memory          Simplified design minimizes contention with other resource

Dynamic Row-    Full row-level locking is implemented for both data rows and index
Level Locking   entries. Dynamic locking automatically chooses the optimal level of
                lock (row, page, multiple page, table) for all database operations. This
                feature provides improved concurrency with no tuning. The database
                also supports the use of "hints" to force a particular level of locking.

Dynamic Space   A database can automatically grow and shrink within configurable
Management      limits, minimizing the need for DBA intervention. It is no longer
                necessary to pre allocate space and manage data structures.

Evolution       The new architecture is designed for extensibility, with a foundation
                for object-relational features.

Large Memory    SQL Server 7.0 Enterprise Edition will support memory addressing
Support         greater than 4 GB, in conjunction with Windows NT Server 5.0,
                Alpha processor-based systems, and other techniques.

Unicode         Native Unicode, with ODBC and OLE DB Unicode APIs, improves
                multilingual support.
Storage Engine Architectural Overview

The original code was inherited from Sybase and designed for eight-megabyte Unix
systems in 1983.These new formats improve manageability and scalability and allow the
server to easily scale from low-end to high-end systems, improving performance and

There are many benefits of the new on-disk layout, including:

      Improved scalability and integration with Windows NT Server

      Better performance with larger I/Os

      Stable record locators allow more indexes

      More indexes speed decision support queries

      Simpler data structures provide better quality

      Greater extensibility, so that subsequent releases will have a cleaner development
       process and new features are faster to implement

Storage Engine Subsystems
   Most relational database products are divided into relational engine and storage engine
components. This document focuses on the storage engine, which has a variety of

      Mechanisms that store data in files and find pages, files, and extents.

      Record management for accessing the records on pages.

      Access methods using b-trees that are used to quickly find records using record

      Concurrency control for locking used to implement the physical lock manager and
       locking protocols for page- or record-level locking.

      I/O buffer management.

      Logging and recovery.

      Utilities for backup and restore, consistency checking, and bulk data loading.
Databases, Files, and File groups


SQL Server 7.0 is much more integrated with Windows NT Server than any of its
predecessors. Databases are now stored directly in Windows NT Server files .SQL Server
is being stretched towards both the high and low end.
SQL Server 7.0 creates a database using a set of operating system files, with a separate
file used for each database. Multiple databases can no longer share the same file. There
are several important benefits to this simplification. Files can now grow and shrink, and
space management is greatly simplified.
All data and objects in the database, such as tables, stored procedures, triggers, and
views, are stored only within these operating system files:

File Type         Description

Primary data      This file is the starting point of the database. Every database has only
file              one primary data file and all system tables are always stored in the
                  primary data file.

Secondary data These files are optional and can hold all data and objects that are not on
files          the primary data file. Some databases may not have any secondary data
               files, while others have multiple secondary data files.

Log files         These files hold all of the transaction log information used to recover
                  the database. Every database has at least one log file.

When a database is created, all the files that comprise the database are zeroed out (filled
with zeros) to overwrite any existing data left on the disk by previously deleted files. This
improves the performance of day-to-day operations.
File groups

A database now consists of one or more data files and one or more log files. The data
files can be grouped together into user-defined filegroups. Tables and indexes can then be
mapped to different filegroups to control data placement on physical disks. Filegroups are
a convenient unit of administration, greatly improving flexibility. SQL Server 7.0 will
allow you to back up a different portion of the database each night on a rotating schedule
by choosing which filegroups to back up. Filegroups work well for sophisticated users
who know where they want to place indexes and tables. SQL Server 7.0 can work quite
effectively without filegroups.
Log files are never a part of a filegroup. Log space is managed separately from data

Using Files and File groups

Using files and file groups improves database performance by allowing a database to be
created across multiple disks, multiple disk controllers, or redundant array of inexpensive
disks (RAID) systems. For example, if your computer has four disks, you can create a
database that comprises three data files and one log file, with one file on each disk. As
data is accessed, four read/write heads can simultaneously access the data in parallel,
which speeds up database operations? Additionally, files and file groups allow better data
placement because a table can be created in a specific file group. This improves
performance because all I/O for a specific table can be directed at a specific disk. For
example, a heavily used table can be placed on one file in one file group and located on
one disk. The other less heavily accessed tables in the database can be placed on other
files in another file group, located on a second disk.

Space Management
There are many improvements in the allocations of space and the management of space
within files. The data structures that keep track of page-to-object relationships were
redesigned. Instead of linked lists of pages, bitmaps are used because they are cleaner and
simpler and facilitate parallel scans. Now each file is more autonomous; it has more data
about itself, within itself. This works well for copying or mailing database files.

SQL Server now has a much more efficient system for tracking table space. The changes

        Growing and shrinking files

        Better support for large I/O

        Row space management within a table

        Less expensive extent allocations
SQL Server is very effective at quickly allocating pages to objects and reusing space
freed by deleted rows. These operations are internal to the system and use data structures
not visible to users, yet are occasionally referenced in SQL Server messages.

File Shrink

The server checks the space usage in each database periodically. If a database is found to
have a lot of empty space, the size of the files in the database will be reduced. Both data
and log files can be shrunk. This activity occurs in the background and does not affect
any user activity within the database. You can also use the SQL Server Enterprise
Manager or DBCC to shrink files as individually or as a group, or use the DBCC
SQL Server shrinks files by moving rows from pages at the end of the file to pages
allocated earlier in the file. In an index, nodes are moved from the end of the file to pages
at the beginning of the file. In both cases pages are freed at the end of files and then
returned to the file system. Databases can only be shrunk to the point that no free space is
remaining; there is no data compression.

File Grow
Automated file growth greatly reduces the need for database management and eliminates
many problems that occur when logs or databases run out of space. When creating a
database, an initial size for the file must be given. SQL Server creates the data files based
on the size provided by the database creator and data is added to the database these files
fill. By default, data files are allowed to grow as much as necessary until disk space is
exhausted. Alternatively, data files can be configured to grow automatically, but only to a
predefined maximum size. This prevents disk drives from running out of space.
Allowing files to grow automatically can cause fragmentation of those files if a large
number of files share the same disk. Therefore, it is recommended that files or filegroups
be created on as many different local physical disks as available. Place objects that
compete heavily for space in different file groups.

Physical Database Architecture
Microsoft SQL Server version 7.0 introduces significant improvements in the way data is
stored physically. These changes are largely transparent to general users, but do affect the
setup and administration of SQL Server databases.

Pages and Extents

The fundamental unit of data storage in SQL Server is the page. In SQL Server version
7.0, the size of a page is 8 KB, increased from 2 KB. The start of each page is a 96-byte
header used to store system information, such as the type of page, the amount of free
space on the page, and the object ID of the object owning the page.
There are seven types of pages in the data files of a SQL Server 7.0 database.

Page Type                   Contains

Data                        Data rows with all data except text, ntext, and image.

Index                       Index entries

Log                         Log records recording data changes for use in recovery

Text/Image                  Text, ntext, and image data

Global Allocation Map       Information about allocated extents

Page Free Space             Information about free space available on pages

Index Allocation Map        Information about extents used by a table or index.

Torn Page Detection

Torn page detection helps insure database consistency. In SQL Server 7.0, pages are 8
KB, while Windows NT does I/O in 512-byte segments. This discrepancy makes it
possible for a page to be partially written. This could happen if there is a power failure or
other problem between the time when the first 512-byte segment is written and the
completion of the 8 KB of I/O.
There are several ways to deal with this. One way is to use battery-backed cached I/O
devices that guarantee all-or-nothing I/O. If you have one of these systems, torn page
detection is unnecessary.
In SQL Server 7.0, you can enable torn page detection for a particular database by
turning on a database option.

Locking Enhancements

Row-Level Locking

SQL Server 6.5 introduced a limited version of row locking on inserts. SQL Server 7.0
now supports full row-level locking for both data rows and index entries. Transactions
can update individual records without locking entire pages. Many OLTP applications can
experience increased concurrency, especially when applications append rows to tables
and indexes.
Dynamic Locking

SQL Server 7.0 has a superior locking mechanism that is unique in the database industry.
At run time, the storage engine dynamically cooperates with the query processor to
choose the lowest-cost locking strategy, based on the characteristics of the schema and

Dynamic locking has the following advantages:

        Simplified database administration, because database administrators no longer
         need to be concerned with adjusting lock escalation thresholds.

        Increased performance, because SQL Server minimizes system overhead by using
         locks appropriate to the task.

        Application developers can concentrate on development, because SQL Server
         adjusts locking automatically.

Multigranular locking allows different types of resources to be locked by a transaction.
To minimize the cost of locking, SQL Server automatically locks resources at a level
appropriate to the task. Locking at a smaller granularity, such as rows, increases
concurrency but has a higher overhead because more locks must be held if many rows are
locked. Locking at a larger granularity, such as tables, is expensive in terms of
concurrency. However, locking a larger unit of data has a lower overhead because fewer
locks are being maintained.

Lock Modes
SQL Server locks resources using different lock modes that determine how the resources
can be accessed by concurrent transactions.
SQL Server uses several resource lock modes:

Lock mode              Description

Shared                 Used for operations that do not change or update data (read-only
                       operations), such as a SELECT statement.

Update                 Used on resources that can be updated. Prevents a common form of
                       deadlock that occurs when multiple sessions are reading, locking,
                       and then potentially updating resources later.

Exclusive              Used for data-modification operations, such as UPDATE,
                       INSERT, or DELETE. Ensures that multiple updates cannot be
                       made to the same resource at the same time.

Intent                 Used to establish a lock hierarchy.

Schema                 Used when an operation dependent on the schema of a table is
                       executing. There are two types of schema locks: schema stability
                       and schema modification.

Table and Index Architecture


Fundamental changes were made in table organization. This new organization allows the
query processor to make use of more no clustered indexes, greatly improving
performance for decision support applications. The query optimizer has a wide set of
execution strategies and many of the optimization limitations of earlier versions of SQL
Server have been removed. In particular, SQL Server 7.0 is less sensitive to index-
selection issues, resulting in less tuning work.
Table Organization

The data for each table is now stored in a collection of 8-KB data pages. Each data page
has a 96-byte header containing system information such as the ID of the table that owns
the page and pointers to the next and previous pages for pages linked in a list. A row-
offset table is at the end of the page. Data rows fill the rest of the page.

SQL Server 7.0 tables use one of two methods to organize their data pages:

Clustered tables are tables that have a clustered index. The data rows are stored in order
based on the clustered index key. The data pages are linked in a doubly linked list. The
index is implemented as a b-tree index structure that supports fast retrieval of the rows
based on their clustered index key values.
Heaps are tables that have no clustered index. There is no particular order to the sequence
of the data pages and the data pages are not linked in a linked list.

Table Indexes

A SQL Server index is a structure associated with a table that speeds retrieval of the rows
in the table. An index contains keys built from one or more columns in the table. These
keys are stored in a structure that allows SQL Server to quickly and efficiently find the
row or rows associated with the key values. This structure is called a heap. The two types
of SQL Server indexes are clustered and no clustered indexes

Clustered Indexes

A clustered index is one in which the order of the values in the index is the same as the
order of the data stored in the table.
The clustered index contains a hierarchical tree. When searching for data based on a
clustered index value, SQL Server quickly isolates the page with the specified value and
then searches the page for the record or records with the specified value. The lowest
level, or leaf node, of the index tree is the page that contains the data.
No clustered Indexes

A no clustered index is analogous to an index in a textbook. The data is stored in one
place; the index is stored in another, with pointers to the storage location of the indexed
items in the data. The lowest level, or leaf node, of a no clustered index is the Row
Identifier of the index entry, which gives SQL Server the location of the actual data row.
The Row Identifier can have one of two forms. If the table has a clustered index, the
identifier of the row is the clustered index key. If the table is a heap, the Row Identifier is
the actual location of the data row, indicated with a page number and offset on the page.
Therefore, a no clustered index, in comparison with a clustered index, has an extra level
between the index structure and the data itself.
When SQL Server searches for data based on a no clustered index, it searches the index
for the specified value to obtain the location of the rows of data and then retrieves the
data from their storage locations. This makes no clustered indexes the optimal choice for
exact-match queries.
Some books contain multiple indexes. Since no clustered indexes frequently store
clustered index keys as their pointers to data rows, it is important to keep clustered index
keys as small as possible.
SQL Server supports up to 249 no clustered indexes on each table. The no clustered
indexes have a b-tree index structure similar to the one in clustered indexes. The
difference is that no clustered indexes have any effect on the order of the data rows. The
collection of data pages for a heap is not affected if no clustered indexes are defined for
the table.

Data Type Changes

Unicode Data

SQL Server now supports Unicode data types, which makes it easier to store data in
multiple languages within one database by eliminating the problem of converting
characters and installing multiple code pages. Unicode stores character data using two
bytes for each character rather than one byte. There are 65,536 different bit patterns in
two bytes, so Unicode can use one standard set of bit patterns to encode each character in
all languages, including languages such as Chinese that have large numbers of characters.
Many programming languages also support Unicode data types.
The new data types that support Unicode are ntext, nchar, and nvarchar. They are the
same as text, char, and varchar, except for the wider range of characters supported and
the increased storage space used.

Improved Data Storage

Data storage flexibility is greatly improved with the expansion of the maximum limits for
char, varchar, binary, and varbinary data types to 8,000 bytes, increased from 255 bytes.
It is no longer necessary to use text and image data types for data storage for anything but
very large data values. The Transact-SQL string functions also support these very long
char and varchar values, and the SUBSTRING function can be used to process text and
image columns. The handling of Nulls and empty strings has been improved. A new
unique identifier data type is provided for storing a globally unique identifier (GUID).

Normalization is the concept of analyzing the “inherent” or normal relationships between
the various elements of a database. Data is normalized in different forms.

First normal form: Data is in first normal form if data of the tables is moved in to
separate tables where data in each table is of a similar type, giving each table a primary
key – a unique label or an identifier. This eliminates repeating groups of data.
Second normal form: Involves taking out data that is only dependent on part of key.
Third normal form: Involves removing the transitive dependencies. This means getting rid of
any thing in the tables that doesn’t depend Solely on the primary key. Thus, through
normalization, effective data storage can be achieved eliminating redundancies and repeating

The structured query language is used to manipulate data in the oracle database. It is also called

SQL *plus- the user – friendly interface:
          SQL *plus Is a superset of the standard SQL .it conforms to the standards of an SQL –
compliant language and it has some specific oracle add – ones, leading to its name SQL and plus.
SQL *plus was always called UFI (user –friendly interface). The oracle server only understands
statements worded using SQL. Other front-end tools interact with the oracle database using the
SQL statements. Oracle’s implementation of SQL through SQL *plus is compliant with ANSI
(American national standard institute) and the ISO (international standards organization)
standards. Almost all oracle tools support identical SQL syntax

          Data can be manipulated upon by using the Data Manipulation Language (DML).
The DML statements provided by SQL are select, update, and delete. SQL *plus 3.3 can be
accessed only by giving the valid username and password. This is one of the security features
imposed by oracle to restrict unauthorized data accessed. SQL allows provides commands for
creating new users, granting privileges etc.
         All such features of SQL*plus make it a power data access tool especially for oracle

Hardware specifications:
Processor type             : Pentium III and compatible.
Processor speed            : 133 MHz
RAM                        : 128 MB
Hard disk                  : 20 GB
Network                    : Internet or LAN of the company

3.2 Software requirements specifications

3.2.1 Formal Description

Product perspective
        The Analysts will interact with the current manual system users to get the Requirements.
As a part of this the Requirements Specification Document will be created. The requirements
Specifications document will contain the Analysis & Design of the system. The Analysis, Design,
Implementation & testing of the System will be followed to produce an incremental cycle, which
will deliver milestones like the Requirements Specification Document etc. at the end of each of
the iterations, Phases or cycles. Once the Design is ready the Implementation & Testing strategy
of the system will commence. Each will be independent of the other. The implementation of the
system itself will be broken down into subsystems following the Software Engineering principles
for the development of robust software.

Product Features
               Bug Tracking And Reporting System is a web application and is envisioned to
be implemented using JAVA language. ORACLE database will be used for persistent
layer. Standard effective software level processes will be adapted. The system will be a
secure and user friendly and facilitate the transactions with much ease. BTARS will
provide the security for each and every user by assigning name and password.

User classes and Characteristics
             Bug Tracking And Reporting System will be used by administrator, software
developer, administrator, software tester, project leader and the user of that particular
project. BTARS will give a common platform to the actors by placing bug information in
the database when ever they are occurred and when ever they are cleared. Security
features will be well defined and implemented to make sure that the users will be able to
meet the challenges and be able to do what they need to do to better serve the needy their
by fulfilling the strategic goals of the organization.

Operating Environment
             Bug Tracking And Reporting System is a web application, so it should have
server with multiple processors, client should use graphical user interface and network
will be designed to make sure that the infrastructure is efficient.

Design & Implementation Constraints
             Bug Tracking And Reporting System will have some constraints those are
every actor specified above have some limits. An administrator or project manager have
right to remove or add the developers or testers or project leaders according to the

System Features
             Bug Tracking And Reporting System will helpful in reducing paperwork and
time in the elimination process of bugs in that project. BTARS is helpful in finding the
efficiency of particular employee by seeing his work such as number of bugs fined by
that tester or how well a designer can eliminate the bugs.

Description and Priority
             Bug Tracking And Reporting System involves reaching out to potential bugs by
maintaining the database of bugs occurred in every project. Additionally, it will provide
the recent and mostly occurring bugs in the projects by highlighting them for the effective
removal of the bugs.

Stimulus/response sequences
             Bug Tracking And Reporting System will provide the information about the
each and every employee and his participation in the removal of bugs.
Functional Requirements
              Add, Edit, Delete bug in the database. BTARS should include the functional
requirements of project manager, project leader ,designer and tester.

       Project manager function are create user, delete user, change role, change profile,
        register project, assign project, view project report etc.
       Project leader functions are design module, assign module, view the bug report,
        and assign the bug reports to the developers.
       Project developer function are view requirements of the projects, create code,
        modify code, view bug report, change profile etc.
       Project tester function are view project to be tested, report a bug, clear a bug
        reported, view all bug reports, change profile etc.

4.1 Data Design
    Databases are designed to offer an organized mechanism for storing, managing and
retrieving information through the use of tables. Database tables consist of columns and
rows. Each column contains a different type of attribute and each row corresponds to a
single record. Databases are actually much more powerful than spreadsheets in the way
you’re able to manipulate data. Here are just a few of the actions that you can perform on
a database that would be difficult if not impossible to perform on a spreadsheet:
       Retrieve all records that match certain criteria
       Update records in bulk
       Cross-reference records in different tables
       Perform complex aggregate calculations
    Every database table should have one or more columns designated as the primary key.
The value this key holds should be unique for each record in the database. Once you
decide upon a primary key and inform the database of this decision, it will enforce the
uniqueness of the key. If we try to insert a record into a table with a primary key that
duplicates an existing record, the insert will fail.
     Foreign keys are used to create relationships between tables. Natural relationships
exist between tables in most database structures. The database will then enforce
referential integrity. There is no uniqueness constraint for a foreign key.

         Basically, it's the process of efficiently organizing data in a database. There are two
goals of the normalization process: eliminate redundant data                  and ensure data
dependencies make sense. Both of these are worthy goals as they reduce the amount of
space a database consumes and ensure that data is logically stored.
           The database community has developed a series of guidelines for ensuring that
databases are normalized. These are referred to as normal forms and are numbered from
one (the lowest form of normalization, referred to as first normal form or 1NF) through
five (fifth normal form or 5NF). In practical applications, you'll often see 1NF, 2NF, and
3NF along with the occasional 4NF.

First normal form (1NF) sets the very basic rules for an organized database:
        Eliminate duplicative columns from the same table.
        Create separate tables for each group of related data and identify each row with a
         unique column or set of columns (the primary key).
        Second normal form (2NF) further addresses the concept of removing duplicative
        Meet all the requirements of the first normal form.
        Remove subsets of data that apply to multiple rows of a table and place them in
         separate tables.
        Create relationships between these new tables and their predecessors through the
         use of foreign keys.
        Third normal form (3NF) goes one large step further:
        Meet all the requirements of the second normal form.
        Remove columns that are not dependent upon the primary key.
The tables of the BRTS database after the normalization process are taken as:

          Employee

          Defects
   Priority

   Project

   Status

4.1.1 Database Tables:

    personal_info table;

    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    SNO                                NOT NULL VARCHAR2(5)
    NAME                                 NOT NULL VARCHAR2(25)
    FATHERNAME                                   NOT NULL VARCHAR2(25)
    OTHERDEPENDENT                                           VARCHAR2(25)
    NATIVE                                       VARCHAR2(15)
    HEALTHHISTORY                                          VARCHAR2(15)
    RELIGION                                       VARCHAR2(15)
    LACTIVITY                                       VARCHAR2(20)
    CASTE                                 NOT NULL VARCHAR2(10)
    PREFERRED                                  NOT NULL VARCHAR2(10)
    HEIGHT                                        NUMBER(5,2)
    WEIGHT                                        NUMBER(5,2)
    VISION                                      VARCHAR2(10)
    MARITALSTATUS                                          VARCHAR2(10)
address_details table
Name                                Null? Type
----------------------------------------- -------- ----------------------------
SNO                                       VARCHAR2(5)
SNAME                                        VARCHAR2(25)
PERMANENT_ADDRESS                                           VARCHAR2(200)
PHONENUMBER                                           NUMBER(20)
FAX                                       VARCHAR2(25)
EMAILID                                NOT NULL VARCHAR2(30)
PHONENUMBER2                                           NUMBER(20)
PERMANENTCITY                                          VARCHAR2(20)
PRESENTADDRESS                                         VARCHAR2(200)
PRESENTCITY                                        VARCHAR2(25)

education table

Name                                Null? Type
----------------------------------------- -------- ----------------------------
SNO                                       VARCHAR2(5)
NAME                                        VARCHAR2(25)
QUALCODE                                   NOT NULL VARCHAR2(20)
PASSEDYEAR                                  NOT NULL DATE
DIVISION                                      VARCHAR2(30)
INSTITUTIONADDRESS                                         VARCHAR2(300)
CITY                                       VARCHAR2(20)
PRECENTAGE                                   NOT NULL NUMBER(10)
MAJOR_SUBJECTS                                         VARCHAR2(25)
AWARDS                                         VARCHAR2(30)
    experience table

    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    SNO                                       VARCHAR2(5)
    SNAME                                        VARCHAR2(30)
    STARTDATE                                         DATE
    ENDDATE                                        DATE
    DESIGNATION                                        VARCHAR2(40)
    CITY                                       VARCHAR2(20)
    REMUNERATION                                          NUMBER(10)

    empl table

    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    EMPID                                NOT NULL VARCHAR2(5)
    ENAME                                        VARCHAR2(40)
    DESIGNATION                                        VARCHAR2(5)
    DEPARTMENT                                          VARCHAR2(5)
    SAL                                       NUMBER(7,2)
    FACIL                                       VARCHAR2(20)
    PERFORMENCE                                          NUMBER(2)
    TRAINING                                       VARCHAR2(15)

    dept table
Name                                Null? Type
----------------------------------------- -------- ----------------------------
DEPTID                                NOT NULL VARCHAR2(5)
DEPTNAME                                         VARCHAR2(20)
REMARK                                         VARCHAR2(20)

desig table

Name                                Null? Type
----------------------------------------- -------- ----------------------------
JOBID                                NOT NULL VARCHAR2(5)
JOBDESC                                        VARCHAR2(20)

salary table

Name                                Null? Type
----------------------------------------- -------- ----------------------------
SALID                                NOT NULL VARCHAR2(5)
JOBID                                      VARCHAR2(5)
LOSAL                                       NUMBER(8,2)
HISAL                                       NUMBER(8,2)

leave table
Name                                Null? Type
----------------------------------------- -------- ----------------------------
LEAVEID                                 NOT NULL VARCHAR2(5)
EMPID                                       VARCHAR2(5)
DOL                                       DATE
    TOL                                       VARCHAR2(10)
    NOL                                       NUMBER(2)

    course_master table
    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    COURSE_ID                                 NOT NULL VARCHAR2(20)
    COURSE_NAME                                          VARCHAR2(30)

    exam_attempt table
    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    EXAMID                                 NOT NULL VARCHAR2(5)
    COURSE_ID                                        VARCHAR2(5)
    SNO                                       VARCHAR2(5)
    DOE                                       DATE
    MARKS                                        NUMBER(5,2)
    GRADE                                        VARCHAR2(3)

    junior table
    Name                                Null? Type
    ----------------------------------------- -------- ----------------------------
    SNO                                       VARCHAR2(5)
    INTDATE                                       DATE
    SNAME                                        VARCHAR2(30)
   POSITIONCODE                                         VARCHAR2(20)
INTERVIEWERNAME                                                             VARCHAR2(20)
ACHIEVEMENTMOTIVATIONREMARKS                                        VARCHAR2(50)
    PLANNINGREMARKS                                           VARCHAR2(50)
       TEAMSPIRITREMARKS                                           VARCHAR2(50)
       OBJECTIVITYREMARKS                                           VARCHAR2(50)
JOBKNOWLEDGEREMARKS                                                  VARCHAR2(50)
COMMUNICATIONREMARKS                                             VARCHAR2(50)
PROBLEMSOLVINGREMARKS                                                VARCHAR2(50)
ASSERTIVENESSREMARKS                                          VARCHAR2(50)
SELFDEVELOPMENTREMARKS                                             VARCHAR2(50)
      WRITTEN                                         NUMBER(10)

       java table (optional)
       Name                                Null? Type
       ----------------------------------------- -------- ----------------------------
       QUESTION_ID                                        VARCHAR2(6)
       QUESTION_DESC                                         VARCHAR2(200)
       ANSWER                                         VARCHAR2(50)
       CHOICE1                                       VARCHAR2(50)
       CHOICE2                                       VARCHAR2(50)
       CHOICE3                                        VARCHAR2(50)
       CHOICE4                                       VARCHAR2(50)
       CHOICE5                                       VARCHAR2(50)

       Name                                Null? Type
       ----------------------------------------- -------- ---------------
       SNO                                       VARCHAR2(10)
       IMARKS                                        NUMBER(10)
       RESULT                                        VARCHAR2(30)

4.1.2 Data Dictionary
4.2 Functional Design


5.1 Use cases diagrams:

5.2 Class diagram for HRMS
5.3 Activity Diagram:
            5.4 Sequence Diagrams:

            Sequence Diagram of Administrator for connection Successfully:

Administrator                           HRMS                                              Database

                Provide login page
                                                      Sending Administrator information

            Administrator information

                                                         Sending Administrator page

            Login successful

                                                      Accessing Admin database
         Access Admin page

                                                      Retrieving Admin database
          Sequence Diagram of Administrator for Connection fail

Administrator                                  HRMS                                    Database

            Provide login page

                                                   Sending Administrator information
                Administrator information


                                                   Sending Unauthorized information
            Login Fail
 Sequence diagram of user for successful:

Applicant                                   HRMS                         Database

               Provide login page

                                              Sending User information

                  user information

               Login successful                    Sending user page

                                              Accessing user database
            Access user page

                                              Accessing user database

Admin Login Page

Admin page
Admin Designation Page
Admin salary Page

Admin Employee Maintenance Page
Admin Leaves Maintenance

Admin Test Maintenance
Admin Test creation Page

Employee Page
Employee Modification Page
Employee Test Page

Employee Registration page
           The testing phase is an important part of software development. It is the process
of finding errors and missing operations and also a complete verification to determine
whether the objectives are met and the user requirements are satisfied.

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

           The second step includes Integration testing. It need not be the 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' an 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 also some modifications were. In the
completion of the project it is satisfied fully by the end user. They are different levels of

        This is the first level of testing where different modules are tested against the
specifications produced during design for the modules. The goal is to test the internal
logic of the modules

        The testing is systematic technique for constructing a program structure, we see
whether the modules can be integrated properly. There are two approaches.


        Modules are integrated by moving downward beginning with the main program,
the subordinate modules coming to structure in either breadth first or depth first manner.

This begins construction and testing in automatic modules. The modules are integrated
from bottom up, sub ordinates to the modules at given level are always available. The
needs for stubs are eliminated.

This testing consists of tests that will closely approximate the acceptance test.

First, the black box test cases for the product as a whole must be run.
Second the robustness of the product as a whole must be tested. In addition the product
must be subjected to stress testing &volume testing.
Third, we must check if the product satisfies all constraints like storage and security.
Fourth, we must review the documentation that is handed over to the client along with the
Once the product testing is completed, the product is handed over to the client for
acceptance testing.

       The purpose of this testing is for the client to determine whether the product
indeed satisfies it's specifications as claimed by the developer. This testing is done either
by the client organization, by the SQA group hired by the client for this purpose.

Four major components of Acceptance testing are namely

   Testing correctness.
   Robustness.
   Performance.
   Documentation

A key aspect of this testing is that it must perform on actual data rather than on test data.
When the product has passed its acceptance test, the task of the developers is complete.
Any changes now made to that product constitute maintenance.

       We are using .Net platform and the technologies we are using are ASP.NET
Other software’s we are using are
   Asp.Net using VB. Net

The common logic used in this project is placed as using C#. Net

       Once the product has passed its acceptance test, it is handed over to client. Any
changes after the item has passed acceptance test the product constitutes maintenance.
Because the product constitutes more than the source code, any changes to
documentation, manuals, or any other component of the product are so examples of
maintenance. Some computer scientists prefer the term evolution rather than maintenance
to indicate that product evolves in time.

Why maintenance is necessary:
        There are three main reasons for making changes to a product after it has been
delivered to the client. The first reason is to correct any residual faults, whether
specification faults, design faults, coding faults, documentation faults, or any other type
of faults. This is called corrective maintenance. The second type of maintenance is
perfect maintenance. Here, changes are made to the code to improve the effectiveness of
the product. For instance, the client may wish to have additional functionality added or
might request that the product be modified so that it runs faster. The third reason for
changing product is adaptive maintenance, changes made to product in order to react to
changes in the environment in which product operates. Client thus does not request
       Having determined the probable fault, and tried to correct it, the maintenance
programmer must now test that modification works correctly and that no regression faults
are introduced. In order to check modification itself, maintenance programmer must
construct special test cases; checking for regression faults is done using the set of test
data stored precisely for the purpose of performing regression testing. Then the test cases
constructed for purpose checking the modification must be added to the set of stored test
cases to be used for future regression testing of the modified product. Experience in
testing is therefore an additional prerequisite for maintenance. Finally it is essential that
the maintenance programmers document every change. Maintenance programmer must
first and foremost be a superb diagnostician to be able to determine to be able to
determine if there is a fault, and if so, an expert technician to be able to fix it.

       However the major maintenance tasks are adaptive and perfective maintenance. To
perform these, the maintenance engineer must go through the phases of requirements,
specification~ design, implementation and integration taking the existing product as the
starting point. For some types of changes additional modules have to be designed and
implemented. In other cases, changes to the design and implementation of existing
modules are needed.
      Thus whereas specifications are frequently produced by specification experts
designs by design experts and code by programming experts, maintenance programmer
has to be expert in all these areas. Perfective and adaptive maintenance are adversely
affected by lack of adequate documentation, just as corrective maintenance is.
Furthermore, the ability to design suitable test cases and the ability to write good
documentation are needed for perfective and adaptive maintenance, just as they are
needed for corrective maintenance.
      It is clear that maintenance programmers have to possess almost every technical
skill that software professional could have. But what does he or she get in return?
Maintenance is a thank-less job in every way. Maintenance programmers deal with
dissatisfied users. If the user were happy with the product it would not need maintenance.
Further more the user’s problems have frequently caused by individuals who develop the
product, not the maintainer.
      Maintenance is likened to after-sales service. The product has been delivered to the
client. But now there is client dissatisfaction, either because the product does not work
correctly, or because the product does not work correctly, or because it does not do
everything that the client currently wants or because it does not do everything or because
circumstances for which product was built have changed in some way. Unless the
software organization provides the client with good maintenance service, the client will
take his or her future product development business everywhere. When the client and
software group are part of the same organization, and hence are inextricably tied from the
viewpoint of future work.
     For product after product, the maintenance is the most challenging phase of
software production-and frequently the most thankless job. Managers must restrict
maintenance tasks to programmers with all the skills needed to perform maintenance.
They must make it known that only top computer Professional merit maintenance
assignments in their organization and pay them accordingly. If management believes that
maintenance is a challenge and that good maintenance is critical for the success of the
organization, attitudes toward maintenance slowly improve.
Testing during the maintenance phase:

      While the product is being developed, many members of the development team
have a broad overview of the product as a whole, but as a result of the rapid personnel
turnover in the computer industry it is unlikely that members of the maintenance team
will previously have been involved in the original development. Thus the maintenance
tends to see the product as a set of loosely related modules and is generally not conscious
of the fact that a change to one module may seriously effect one or more other modules,
and hence the product as a whole. Furthermore, in more cases there is no or little or no
documentation available to assist in gaining that understanding.


9.1 Conclusion
        We, the team members, tried out our best to produce a system that includes all the
necessary features requested by our client. This system as explained in the entire
documentation has the most reliable database as on now and user-friendly interfaces with
useful tool tips provided for the convenience of the user whenever they are required.
        We have taken optimum care in the design of the system and reviewing the same
so that any additional feature, if at all the client wants to include, can be added very
easily in future.
        As software is used, the customer/user will recognize additional functions that
will provide benefit. Perceptive maintenance extends the software beyond its original
function requirements.
For this particular project the enhancements that can be made are following
    By adding REPORT GENERATION function to it.
    We can enhance it by placing the communication between user and developer, tester
     in order to find required bugs in the projects.

1. MS.NET                                              WROX PUBLICATION (VB)

2. ACTIVE SERVER PAGES                                   ASP.NET 2.0 BY WROX

3. UNIFIED MODELLING LANGUAGE                              GRADY BOOCH

4. SOFTWARE ENGENEERING                                FAIRELY, PRESSMAN

YORK, PAGE NO. 335-362,477-505


To top