Documentation UDBI
Documentation UDBI
Documentation UDBI
1. INTRODUCTION
2. IDENTIFICATION OF NEED
3. FEASIBILITY STUDY
4. SOFTWARE ENGINEERING PARADIGM APPLIED
5. SOFTWARE AND HARDWARE SPECIFICATIONS
6. SYSTEM DESIGN
7. CODE EFFICIENCY
8. CODE OPTIMIZATION
9. SYSTEM TESTING & IMPLEMENTATION
10. SYSTEM SECURITY MEASURES
11. COST ESTIMATION OF THE PROJECT
12. SCREEN LAYOUT
2. i. IDENTIFICATION OF NEED
To clearly identify the need of this application, I will try to exemplify
one situation.
A project manager is dealing with an enterprise application, which is
in the development phase. This application has got different faces such as
a desktop interface, a web interface and mobile interface. Initially all these
applications are not integrated. Once these entire interfaces are working
well, they are going to be integrated. In such occasion the database which
is being used must be same.
modules, creating a sample database for each module and perform the
test, it is not possible practically. So for that reason, there must be a kind
of tool, using which we can carry the database to any another location and
use the database there very easily.
The present application will fulfill the requirement. The current
application can be used just as a brief case of database.
Structure: It gives the list of all tables which are present in the
current/selected user. This module is used to browse and view
the structure of an existing database object.
2.
3.
4.
5.
6.
7.
3. FEASIBILITY STUDY
All projects are feasible given unlimited resources and infinite
time! Unfortunately, the development of computer-based system or
product is more likely plagued by a scarcity of resources and difficult
delivery dates. It is both necessary and prudent to evaluate the feasibility
of a project at the earliest possible time. Months or years of effort,
thousands or millions of dollars, and untold professional embarrassment
can be averted if an ill-conceived system is recognized early in the
definition phase.
Feasibility and risk analysis are related in many ways. If project risk
is great the feasibility of producing quality software is reduced. During
product engineering, however, we concentrate our attention on four
primary areas of interest:
Technical Feasibility
This application in going to be used in an Internet environment
called www (World Wide Web). So, it is necessary to use a technology that
is capable of providing the networking facility to the application. We can
deploy and used it in any operating system.
GUI is developed using HTML to capture the information from the
customer. HTML is used to display the content on the browser. It uses
TCP/IP protocol. It is an interpreted language. It is very easy to develop a
page/document using HTML some RAD (Rapid Application Development)
tools are provided to quickly design/develop our application. So many
7
objects such as button, text fields, and text area etc are provide to capture
the information from the customer.
We can use this application in any OS. They can have their own
security and transactional advantages. But are the responsible for
selecting suitable and secured OS, which is suitable to our application.
Economical Feasibility
Economic analysis is the most frequently used technique for
evaluating the effectiveness of a proposed system. It is more commonly
known as cost/benefit analysis. The procedure is to determine the benefits
and savings that are expected from a proposed system and compare them
with costs. If benefits outweigh cost, a decision is taken to design and
implement the system. Otherwise, further justification or alternative in the
proposed system will have to be made if it is to have a chance of being
approved.
Automation system that is developed technically and that is used on
installation is good investment for organization. The financial benefit must
equal or exceed that cost. The amount being spent on system study,
processing hardware, developing software is reasonable considering the
loss of revenue owing to the prevailing loopholes in the system. Benefits in
the form of reduced costs like client side with minimum configuration,
system compatibility of any hardware and timing effective manner of
allocating systems and registering complaints.
Operational Feasibility:
In our application front end is developed using GUI. So it is very
easy to the customer to enter the necessary information. But customer has
some knowledge on using web applications before going to use our
application.
2.
Bottom Up Design
10
The
There is
danger that the specifications will be incompatible and this will not be
discovered until late in the design process. By contrast the bottom-up
strategy first focuses on the crucial part so that feasibility of the design is
tested at early stage.
In mixing top-down and bottom-up design it often appears that we
start in the middle of the problem and work our way both up and down
there.
modularize the various procedures in such cases one might consider a list
11
DATABASE DESIGN
Databases are normally implemented by using a package called a
Data Base Management System (DBMS).
analyzing the data required by the system for the data dictionary has
developed from research into relational database, particularly the work of
E.F.Codd. This method of analyzing data is called Normalization.
Unnormalized data are converted into normalized data by three stages.
Each stage has a procedure to follow.
NORMALIZATION
The first stage is normalization is to reduce the data to its first
normal form, by removing repeating items showing them as separate
records but including in them the key fields of the original record.
The next stage of reduction to the second normal form is to check
that the record, which one is first normal form, all the items in each record
are entirely dependent on the key of the record. If a data item is not
dependent on the key of the record, but on the other data item, then it is
12
record contains data items, which are entirely dependent on the key of
their record.
The final stage of the analysis, the reduction of third normal form
involves examining each record, which one is in second normal form to
see whether any items are mutually dependent. If there are any item there
are removed to a separate record leaving one of the items behind in the
original record and using that as the key in the newly created record.
BUSINESS MODELING:
The information flow among business function is modeled in a way
that answers the following questions: what information drives the business
process? What information is generated? What generate it? Where does
the information go? Who process it?
DATA MODELING:
The information flow defined as a process of the business modeling
is refined into a set of data objects that are needed to support the
business.
13
engineering
and
analysis
encompasses
requirements
Like
The
manner,
code
generation
can
be
accomplished
mechanistically.
5) TESTING:
Once code has been generated, program testing process focuses on
the logical internals of the software, assuring that all statements have
been tested, and on the functional externals that is, conducting tests to
uncover errors and ensure that defined input will produce actual results
that agree with required results.
15
6) MAINTENANCE:
Software will undoubtedly undergo change after it is delivered to the
customer. Change will occur because errors have been encountered,
because the software must be adapted to accommodate changes in its
external environment (e.g., a change required because of a new
operating system or peripheral devices), or because the customer
requires
functional
or
performance
enhancement.
Software
16
Printer
11.Ethernet card
12.
Internet Modem
(ii)
17
INTERNET TERMINOLOGY
What is Internet?
The Internet is a worldwide network of computer networks. People
use the Internet to send electronic mail, participate in discussion forums,
search authority that controls or regulates the Internet Currently there are
more than 30 million people use the Internet and the number is growing at
a rate of one million new user per month.
What is Intranet?
An internal network owned and managed by a company or
organization uses the same kinds of software that you would use to
explore the Internet, but only for internal use.
An Internet enables a
18
What is TCP-IP?
This is the suite of protocols that defines the Internet. Originally
designed for the Unix Operating system. TCP/IP software is now available
for every major kind of computer operating system. TCP/IP stacks is
required for computers want to access the Internet.
What is URL (Uniform Resource Locator)?
The standard way to give the address of any resource on the
Internet that is part of the World Wide Web (WWW). A URL looks like this:
The most common way to use a URL is to enter into a WWW browser
program, such as Internet Explorer.
Java and Java Script:
Although the names are almost the same Java is not the same as
Java Script.
19
Advantages of Java:
Creation of Java:
James Gosling conceived Java. Patrick Naughton, Chris Warth, Ed
Frank and Mike Sheridan at Sun Micro Systems Incorporation in 1991. It
took 18 months to develop the first working version. This language was
initially called OAK in 1992 and public announcement of Java in 1995,
many more contributed to the design and evolution of the language.
Java is Portable:
One of the biggest advantages Java offers is that it is portable. An
application written in Java will run on all the major platforms.
Any
computer with a Java based browser can run the applications or applets
written in the Java programming language. A programmer no longer has
to write one program to run on a Macintosh, another program to run on a
Windows machine, still another to run on a Unix machine and so on. In
other words, with Java, developers write their programs only once.
The virtual machine is what gives Java a cross platform capabilities.
Rather than being complied into machine language, which is different for
each operating systems and computer architecture, Java code is
compiled into byte codes. With other languages, the program code is
complied into a language that the computer can understand.
The
complied into byte codes rather than a machine language. These byte
codes go to the Java virtual machine, which executes them directly or
20
reused.
Object oriented languages use the paradigm of classes. In simplest
term, a class includes both the data and the functions to operate on the
data. You can create an instance of a class, also called an object,
which will have all the data members and functionality of its class.
Because of this, you can think of a class as being like template, with
each object being a specific instance of a particular type of class.
The class paradigm allows one to encapsulate data so that specific
data
values
are
those
using
the
data
cannot
see
function
If for
21
22
23
In java an objects
24
time. However, it also checks your code at run time. In fact, many hard
to track down bugs that often turn up in hard to reproduce runtime
situations are simply impossible to create in Java. Knowing that what
you have written will behave in a predictable way under diverse
conditions is a key feature of Java.
Java is Multithreaded:
Multithreading is simply the ability of a program to do more than one
thing at a time. For example an application could be faxing a document
at the same time it is printing another document. Or a program could
process new inventory figures while it maintains a feed for current
prices.
The
virtual machine takes a small footprint and Java byte code is optimized
to be small and compact. As a result, Java accommodates the need for
low storage and for low bandwidth transmission over the Internet. In the
addition the Java operating system offers a standalone Java platform
that eliminates host operating system overhead while still supporting the
full Java Platform API. This makes Java ideal for low cost network
computers whose sole purpose is to access the Internet.
26
Java
addresses these concerns and doing so, has opened the door to an
exiting a new form of program.
The rise of server-side Java applications is one of the latest and
most exciting trends in Java programming. It was first hyped as a
language for developing elaborate client-side web content in the form of
applets. Now, Java is coming into its own as a language ideally suited
for server-side development. Businesses in particular have been quick
to recognize Javas potential on the server-Java is inherently suited for
large client/server applications. The cross platform nature of Java is
extremely useful for organizations that have a heterogeneous collection
of servers running various flavors of the Unix of Windows operating
systems.
27
Servlets
are
key
component
of
server-side
java
28
from server to server. Note, however, that instructions for the setup and
configuration of the files may differ between files.
COMPOSITION:
It was mentioned earlier that the Java Server Pages architecture could
include reusable Java components. The architecture also allows for the
embedding of a scripting language directly into the Java Server Pages file. The
components current supported include Java Beans and Serves. As the default
scripting language, Java Server Pages use the Java Programming language. This
means that scripting on the server side can take advantage of the full set of
capabilities that the Java programming language offers.
PROCESSING:
A Java Server Pages file is essentially an HTML document with JSP
scripting or tags. It may have associated components in the form of class, .jar,
or .ser files- -or it may not. The use of components is not required.
The Java Server Pages file has a .jsp extension to identify it to the server
as a Java Server Pages file. Before the page is served, the Java Server Pages
syntax is parsed and processed into a servlet on the server side. The servlet that
is generated, outputs real content in straight HTML for responding to the
customer. Because it is standard HTML, the dynamically generated response
looks no different to the customer browser than a static response.
ACCESS MODELS:
A Java Server Pages file may be accessed in at least two different ways:
A client request comes directly into a Java Server Page.
Request
Browser
JSP
Response 29
Bean
Bean
JDBC
Bean
Browser
Result
Bean
Database
Request
Response
JSP
The servlet generates the dynamic content. To handle the response to
the client, the servlet creates a Bean and stores the dynamic content
(sometimes called the result set) in the Bean. The servlet then invokes a Java
Server Page that will present the content along with the Bean containing the
generated from the servlet.
There are two APIs to support this model of request processing using
Java Server Pages. One API facilitates passing context between the invoking
servlet and the Java Server Page. The other API lets the invoking servlet
specify which Java Server Page to use.
30
In both of the above cases, the page could also contain any valid Java
code. The Java Server Pages architecture separation of content from
presentation- -it does not mandate it.
JDBC requires that the SQL statements be passed as Strings to Java
methods. For example, our application might present a menu of database
tasks from which to choose. After a task is selected, the application presents
prompts and blanks for filling information needed to carry out the selected
task. With the requested input typed in, the application then automatically
invokes the necessary commands.
In this project we have implemented three-tier model, commands are
sent to a middle tier of services, which then send SQL statements to the
database. The database process the SQL statements and sends the results
back to the middle tier, which then sends them to the user. JDBC is important
to allow database access from a Java middle tier.
What Is JDBCTM?
JDBCTM is a JavaTM API for executing SQL statements. (As a point of
interest, JDBC is a trademarked name and is not an acronym; nevertheless,
JDBC is often thought of as standing for "Java Database Connectivity".) It
consists of a set of classes and interfaces written in the Java programming
language. JDBC provides a standard API for tool/database developers and
makes it possible to write database applications using a pure Java API.
Using JDBC, it is easy to send SQL statements to virtually any relational
database. In other words, with the JDBC API, it isn't necessary to write one
program to access a Sybase database, another program to access an Oracle
database, another program to access an Informix database, and so on. One can
31
write a single program using the JDBC API, and the program will be able to send
SQL statements to the appropriate database. And, with an application written in
the Java programming language, one also doesn't have to worry about writing
different applications to run on different platforms. The combination of Java and
JDBC lets a programmer write it once and run it anywhere.
Java being robust, secure, easy to use, easy to understand, and
automatically downloadable on a network, is an excellent language basis for
database applications. What is needed is a way for Java applications to talk to a
variety of different databases. JDBC is the mechanism for doing this.
JDBC extends what can be done in Java. For example, with Java and the
JDBC API, it is possible to publish a web page containing an applet that uses
information obtained from a remote database. Or an enterprise can use JDBC to
connect all its employees (even if they are using a conglomeration of Windows,
Macintosh, and UNIX machines) to one or more internal databases via an
intranet. With more and more programmers using the Java programming
language, the need for easy database access from Java is continuing to grow.
MIS managers like the combination of Java and JDBC because it makes
disseminating information easy and economical. Businesses can continue to use
their installed databases and access information easily even if it is stored on
different database management systems. Development time for new applications
is short. Installation and version control are greatly simplified. A programmer can
write an application or an update once, put it on the server, and everybody has
access to the latest version. And for businesses selling information services,
Java and JDBC offer a better way of getting out information updates to external
customers.
32
CONNECTION:
A connection object represents a connection with a database. A
connection session includes the SQL statements that are executed and the
results that are returned over the connection. A single application can have one
or more connections with a single database, or it can have connections with
many different databases.
OPENING A CONNECTION:
The standard way to establish a connection with a database is to call the
method DriverManager.getConnection. This method takes a string containing a
URL. The Driver Manager class, referred to a the JDBC management layer,
attempts to locate a driver than can connect to the database represented Driver
classes, and when the method get Connection is called, it checks with each
driver in the list until it finds one that can connect uses this URL to actually
establish the connection.
<Sub
protocol>-usually
the
driver
or
the
database
connectivity
33
statements that can be sent; this provides a great deal of flexibility, allowing the
use of database-specific statements or even non-SQL statements. It requires,
however, that the user be responsible for making sure that the underlying
database can process the SQL statements being sent and suffer the
consequences if it cannot.
DRIVER MANAGER:
The Driver Manager class is the management layer of JDBC, working
between the user and the drivers. It keeps track of the drivers that are available
and handles establishing a connection between a database and the appropriate
driver. It addition, the driver manager class attends to things like driver login time
limits and the printing of log and tracing messages. The only method in this class
that
general
programmer
needs
to
use
directly
is
34
1.
2.
35
36
37
INTEGRITY CONSTRAINTS:
Constraints that apply to entity integrity and referential integrity are
specifiable by the data language implemented by the database management
system and not by the statements coded into the application program.
DATABASE DISTRIBUTION:
The data language implemented by the relation database management
system supports the ability to distribute the database without requiring changes
to be made to application programmers. This facility must be provided in the data
language, whether or not the database management system itself supports
distributed databases.
NON- SUBVERSION:
If the relational database management system supports facilities that
allow application programmers to operate on the tables a row at a time, an
application programmer using this type access is prevented from by passing
entity integrity or referential integrity constraints that are defined for the
database.
38
6. SYSTEM DESIGN
MS-SQL
Server
Driver
URL
Login ID
Password
Data
Base
Interface
MY-SQL
ORACLE
MSAccess
39
Level 1 DFD
Driver
URL
Login ID
Password
Dive
r?
Oracle
Driver
MY-SQL
Driver
DAT
DAT
ID & Pass A
ID & Pass A
word
word
ORACLE
MY-SQL
40
JDBC
TABLE NAME
Display the
Structure
41
List of
Tables
DB
JDBC
TABLE NAME
No. Of Records
per page
Fields to be
displayed
Display the
Records
42
List of
Tables
DB
JDBC
SQL Query
Display the
Results
43
List of
Tables
DB
JDBC
Source
DB
44
List of
Tables
DB
JDBC
Select the
Export Format
Exported
Table details
45
List of
Tables
DB
DBI
List of
Tables
Specify the
Fields & sizes
Table Created
46
DB
Driver
URL
Login ID
Password
DBI
Search data
Specify the
tables
Results
47
List of
Tables
UML-diagrams
Use-case-diagram
Stucture
Properties
SQL
User
Select Driver
Export
Import
Operations
48
Search
Sequential-diagram
LoginValidate
: User
Structure
Properties
SQL
Export
Import
Operations
Search
(driver,url,username,pwd)
(validate())
Login Validate
Select Table
Name
: User
(driver,url,userid,pwd)
Structure
Table Structure
(validate())
49
Login Validate
Browse
Display Table
Settings
: User
(driver,url,userid,pwd)
(validate())
(select browse)
: User
Login Validate
SQL
Enter query
(driver,url,userid,pwd)
(validate())
(select SQL)
(click on run)
50
: User
Login Validate
import
browse
(driver,url,userid,pwd)
(validate())
(select import)
: User
Login Validate
Export
Export Table
(driver,url,userid,pwd)
(validate())
(select export)
51
: User
Login Validate
Operation
Create Table
(driver,url,userid,pwd)
(validate())
(select Operation)
: User
Login Validate
Search
Search
Database
(driver,url,userid,pwd)
(validate())
(select search)
52
Class diagram
GUIComponent
Menu
InputScreen
Options
DataStore
Report
<<uses>>
<<instantiates>>
DataManipulator
Desc tab
Create Tab
Edit Form
Renametab
Browse Form
Empty column
DBOperations
53
List DB
State-diagram
( id,pwd )
( id,pwd )
( ok )
unauthenticated
validation
authenticated
( Driver,username,pwd)
Validation ( valid ) DB Menu
unauthenticated
( invalid )
54
7.CODE EFFICIENCY
MEASURES OF CODE EFFICIENCY
The code is designed with the following characteristics in mind.
1. Uniqueness: The code structure must ensure that only one value of
the code with a single meaning is correctly applied to a give entity or
attribute.
2. Expandability: The code structure are designed for in a way that it
must allow for growth of its set of entities or attributes, thus
providing sufficient space for the entry of new items with in each
classification.
3. Conciseness:
55
Care is taken to
56
8.CODE OPTIMIZATION
Introduction:
A good program is not the one that solves the intended problem
alone but the one that does it efficiently. An ideal compiler should produce
target code that is as good as can be written by hand crafted meticulously
to run on the target machine in the most efficient manner both in terms of
time of execution and memory requirements. The reality however is that
this goal is achieved only in limited, cases and that too with difficulty.
Nonetheless, the code produced by straight forward compiling algorithms
can often be made more space and time efficient. This is accomplished by
applying transformations on the produced code. These transformations
aiming at optimization of compiled code are known as code optimization
and compilers that apply code improving transformations are called
optimizing compilers.
The
optimization
may
be
machine
dependent
or
machine
57
most programs spend ninety per cent of their execution time in ten percent
of the code. While the actual percentages may vary, it is often the case
that a small fraction of a program accounts for most of the running time.
Profiling the run-time execution of a program on representative input data
accurately identifies the heavily traveled regions of a program.
Unfortunately, a compiler does not have the benefit of sample input data,
so it must make best guess as to where the program hot spots are.
In practice, the program's inner loops are good candidates for
improvement. In a language that emphasizes control constructs like while
and for statements, the loops may be evident from the syntax of the
program; in general, a process called contra/flow analysis identifies loops
in the flow graph of a program.
The best technique for deciding what transformations are worthwhile
to put into a compiler is to collect statistics about the source programs and
evaluate the benefit of a given set of optimizations on a representative
sample of real source programs.
Organization for an optimizing compiler
There are often levels at which a program can be improved
algorithm level, source program level, intermediate level or target level.
Since the techniques needed to analyze and transform a program do not
change significantly with the level, this chapter concentrates on the
transformation of intermediate code using the organization shown below:
In the code optimizer programs are represented by flow graphs, in
58
which edges indicate the flow of control and nodes represent basic blocks.
Unless otherwise specified a program means a single procedure.
Sources of Optimization
Let us see some of the most useful code-improving transformations.
If looking only at can perform it the statements in a basic block are called
local otherwise, it is called global. Many transformations can be performed
at both the local and global levels. Local transformations are usually
performed first.
Function-preserving Transformations
There are a number of ways in which a compiler can improve a
program without changing the function it computes. Common subexpression elimination, copy propagation, dead code elimination, and
constant folding are common examples of such function-preserving
transformations.
Frequently, a program will include several calculations of the same
value, such as an offset in an array. The programmer cannot avoid some
of these duplicate calculations because they lie below the level of detail
accessible within the source language.
Common sub-expressions
An occurrence of an expression E is called a common subexpression if E was previously computed, and the values of variables in E
have not changed since the previous computation. We can avoid
recomputing the expression if we can use the previously computed value.
Removing such command sub-expressions may optimize the code.
COPY PROPAGATION
The idea behind the copy-propagation transformation is to use g for
59
Code Motion
Code motion is an important modification that decreases the amount of
code in a loop. It takes an expression and transforms it yielding the same
result independent of the number of times a loop is executed (i.e. a loop-
60
invariant computation) and places the expression before the loop. The
assumption made here is that an entry for the loop exists. For instance,
evaluation of a loop-invariant computation in the following while-statement:
Clearly the code motion technique has reduced the number of
computations in this form.
Induction Variables And Reduction In Strength
Code motion may not be applicable to all the situations. Loops are
usually processed from inside to outside. For example, consider the
following loops:
Note that the values of j and t2 remain in lock step; every time the
value of j decreases by 1, that of t2 decreases by 5 because 5* j is
assigned to t2. Such identifiers are called induction variables.
By the process of induction variable elimination in a loop, it may be
possible to get rid of all but one when more than one induction variables
are present.
of
the
structure-preserving
transformations
can
be
also attached to n is the list of variables for which it is the definition within
the block. We also note those nodes, if any, whose are live on exit from
the block; these are the output nodes.
62
63
ii.
Cyclomatic Complexity
iii.
iv.
Graph matrices
Condition testing
ii.
iii.
Loop testing
ii.
Equivalence partitioning
iii.
iv.
Comparison testing
64
65
66
67
68
69
70
71
72
73
74
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
START
28 JAN 2006
I/O DESIGN
12 FEB 2006
INTEGRATION
AND TESTING
ANALYSIS
23 JAN 2006
2 FEB 2006
CODING
FINISH
8 FEB 2006
15 FEB 2006
WRITE
99MANUAL
Jan 15, 06
Jan 23, 06
Jan 28, 06
Feb 5, 06
Feb 15, 06
START
ANALYSIS
I /O DESIGN
CODING
WRITE MANUAL
INTEGRATION
AND
TESTING
TESTING
SLACK TIME, i.e., the LATEST TIME by which a task must be finished
White part of the bar shows the length of time each task is estimated to take
100
14. CONCLUSION
This application can be extended so that it will give maximum
performance including the security related aspects, resulting releasing of
this application as a product in the open market. As it has got very user
friendly look and feel, it will be definitely succeeded in the market as a
product.
101
15. BIBLIOGRAPHY
The Knowledge required for developing this project is extracted from
the following books.
The Knowledge required for developing this project is extracted from
the following books.
1.
2.
3.
4.
5.
6.
7.
8.
102