is sent to the corresponding action program. At the
same time, data entered by the user are stored in the
corresponding action form. The action program gets
the data from the action form, processes them and
sends the result to the next JSP. It sends a new
homepage to a user and the homepage waits for new
entries form a user. The same process is repeated.
Most programs embedded in the web and
application frameworks are not coded by
programmers but generated automatically from
UML diagrams. According to requirement
specifications and design results, we have described
three kinds of diagrams using UML. Use cases
define how a user uses the application. Activity
diagrams define in which order activities of a use
case is realized. Class diagrams define what classes
are used to realize the application. Translation
software generates program codes from these
diagrams. The first homepage is created from a use
case. It allows to select other use cases. Each activity
diagram generates program codes of JSPs, action
programs and action forms. Most program codes
realizing the web application are automatically
generated except business login included in action
programs. From class diagrams, most program codes
are generated for the application server except
business logic of session beans.
We used AndroMDA to generate program codes
from UML. AndroMDA generates intermediate
diagrams for translation from these diagrams.
XDoclet scripts are generated from intermediate
diagrams. Then, XDoclet generates program codes
for the web and application servers including system
configuration files as well as database configuration
files. VSL files in AndroMDA defines how an
intermediate diagrams are translated into XDoclet
scripts for each type of namespaces. The namespaces
correspond to types of program codes such as
control, service and value object classes. As VSL
files allow customization, we added necessary
functions and modified some functions.
3 IMPLEMENTATION
The programming language used in developing the
system is Java so that the system can be installed on
almost any kind of processors and operating systems.
It can be installed on Linux, Microsoft Windows or
Mac. JBoss is used as an application server to give
persistent functions to an application program. It can
be connected to a web server and a database server.
Many database servers are connectable to JBoss
through the JDBC API. Web servers are also
connectable to JBoss though RMI (Java Remote
Method Invocation). As the system is experimental,
we are using Struts and Hypersonic SQL as a web
server and a database server, which are in-house
subsystems installed in JBoss. If the system becomes
commercial, Apache will be used as a web server
and PostgreSQL, MySQL or Oracle will be used as a
database server. JBosss has two selectable
subsystems to provide for an object-relational
mapping between J2EE technology and a relational
database. CMP (Content-Managed Persistence) is
more reliable and Hibernate is more flexible. We
have used Hibernate in this system, considering with
future development.
An example of an activity diagram is shown in
Figure 1. It is related to financial statements. The
figure consists of two swim lanes. JSPs (Java serve
pages) are automatically created from the right-hand
side lane, action programs from the left-hand. Action
forms are automatically generated from the
parameters defined at arcs connecting a right lane
node and a left one. The transition of nodes is
automatically defined by a Struts configuration file.
The figure defines the initial node and the final
one as the entrance and exit of this activity,
respectively. The next node (which is named as “ask
company and section”) connected to the initial node
sets up initial conditions. Then, the process moves
from this node to the right-hand side node (which is
named as “set company and section”). A JSP is
automatically generated from this node. It sends a
homepage as shown in Figure 2 to a user display.
Figure 2. A homepage.
AN INTERNET ACCOUNTING SYSTEM: A large scale software system development using model driven architecture
409