DEVELOPMENT OF AN ACCOUNTING SYSTEM

Applying the Incrementally Modular Abstraction Hierarchy to a Complex System

Kenji Ohmori

Computer and Information Sciences, Hosei Univeristy, 3-7-2 Kajino-cho, Koganei-shi, Tokyo, 184-8584, Japan

Tosiyasu L. Kunii

IT Institute, Kanazawa Institute of Technology, 1-15-13 Jingumae, Shibuya-ku, Tokyo, 150-0001, Japan

Keywords: An enterprise system, an accounting system, software engineering, software development, homotopy, fiber

bundles, invariant, abstraction hierarchy.

Abstract: The new methodology for software development is introduced and applied to an accounting system. The

new method is called the incrementally modular abstraction hierarchy (IMAH). IMAH has an abstraction

hierarchy from abstract to concrete levels. Invariants defined on an abstract level are kept on a concrete

level, which allows adding modules incrementally on each hierarchical level and avoiding combinatorial

explosion of the serious problem in software engineering, while climbing down abstraction hierarchy in

designing and modeling a complex system. This paper shows how IMAH is applied in developing an

accounting system, which is fundamental in enterprise systems and a suitable example of complex software

systems. At first, very simple example recording only journal vouches to a database system is used to

describe methodologies of IMAH. Then, it is described how this simple system is incrementally developed

to a conventional complex accounting system.

1 INTRODUCTION

Many software development methodologies have

been proposed. (Dahl, Dijkstra and Hoare 1972).

(Naur et al 1976). (Jackson 1975). (Halstead 1977).

(Myers 1978). (Yordon and Constantine 1979).

(Boehm 1981). (Agresti 1986). (Humphrey 1989).

(Booch 1991). (Rumbaugh 1991). (Jacobson 1992).

(Soley, Frankel and Parodi 2004). However,

conventional software development methodologies

have not solved yet a so-called combinatorial

explosion problem, which is a fundamental problem

since the study of software engineering started in

1970s. Combinatorial explosion is caused when a

new component is added to a developing system

since component addition leads to combinatorially

complicated modification in most parts of the

system.

The rational process model (RUP) is proposed to

avoid this problem recently by repeating

development process. (Jacobson, Booch and

Rumbaugh, 1999). (Booch, Rumbaugh and Jacobson

1999). (Rumbaugh, Jacobson and Booch 1999).

RUP divides a system into multiple subsystems. The

most difficult subsystem among them is firstly

developed in accordance with engineering

disciplines starting from a business model and

requirements and ending with test and development.

When this subsystem is successfully completed,

RUP moves to the following most difficult

subsystem for development. As a result, RUP makes

development feasibility clear at an early stage so that

a project manager can control software development

by giving correct judgments at each stage. RUP

succeeds in raising the success rate of projects. RUP

tries to decrease as much as possible opportunities of

combinatorial explosion by iterative and incremental

development. However, as it does not solve

combinatorial explosion theoretically, RUP is still

annoyed by the unsolved problem.

The incrementally modular abstraction hierarchy

(IMAH), which is based on homotopy and topology,

is introduced in this paper. (Sieradski 1992).

(Spanier 1996). (Hatcher 2002). (Kunii 2005).

(Kunii 2006). (Ohmori 2006). IMAH avoids

combinatorial explosion by adding invariants

linearly while climbing down abstraction hierarchy,

keeping invariants defined on higher abstract levels

and adding linearly new invariants on the current

437

Ohmori K. and L. Kunii T. (2007).

DEVELOPMENT OF AN ACCOUNTING SYSTEM - Applying the Incrementally Modular Abstraction Hierarchy to a Complex System.

In Proceedings of the Ninth International Conference on Enterprise Information Systems - DISI, pages 437-444

DOI: 10.5220/0002372504370444

Copyright

c

SciTePress

abstract level. RUP enforces developers to design

and model a system using unified modeling

language (UML) diagrams. With the progress of

development, many components are added to the

diagram step by step. However, inevitability of these

components, for example why these components are

necessary or satisfy requirements, is not clear. When

designing a class diagram, it is hard to explain

theoretically why we need to put a new class in the

diagram, or why this class has to have an association

link with another class. This theoretical ambiguity

leads to repeated modification of classes and class

links, sometimes endlessly, as the development

advances. This is a basic reason why RUP cannot

avoid the combinatorial explosion problem

theoretically.

In contrast, IMAH uses UML diagrams on a

lower level in abstraction hierarchy. As IMAH

provides theoretically fundamental properties for a

class on higher abstract levels, the class has been

already defined with necessary properties when it

appears in a class diagram on a lower abstract level,

which does not bring any modification of classes in

the lower level.

In this paper, the accounting system

development is described as an example for showing

how a complicated enterprise information system is

developed by IMAH. The accounting system is a

fundamental system for enterprise resource planning

(ERP) and gains importance with introduction of the

Sarbanes–Oxley Act of 2002 (SOX). (Ohmori 2005).

The SOX requires accountabilities of initiating,

authorizing, processing, and reporting of financial

data. A Web-base system, which allows financial

data to be directly entered on site, is the most

suitable system for SOX environments. In this paper,

IMAH disciplines are firstly explained using a

simple accounting system and designing of a full-

scale Web-base accounting system is then described.

2 INCREMENTALLY MODULAR

ABSTRACTION HIERARCHY

IMAH is based on the abstraction hierarchy in

algebraic topology and consists of seven abstract

levels.

1) The homotopy level is the most abstract level in

the hierarchy. On the homotopy level, the

developing system is described using a fiber

bundle. The fiber bundle defines the most

fundamental spaces constituting the developing

system. The relation of these spaces is also

provided on this level. As homotopy is

continuous changes of continuous functions,

dynamic changes can be represented using

homotopy. Conceptual progress, which is

thought as dynamic changes from the original

concept to the current one, is described using

homotopy extension properties (HEP) or

homotopy lifting properties (HLP). A simple

accounting system is described using a fiber

bundle and a Web-base accounting system,

which is conceptual progress originated from

the simple accounting system, is described by

HEP or HLP.

2) The set theoretical level is the following most

abstract level. Elements consisting of the spaces

defined on the above level are defined and

incrementally added on this level. Logical

operations are also available from this level.

3) The topology space level is the third highest

abstract level. Continuity and closeness are

defined on this level. Topological equivalence is

one of the most important invariants, which are

defined on this level. As the accounting system

has discrete spaces, strong or weak topology is

used to describe these spaces.

4) The adjunction space level is the middle

abstract level. Dynamic changes are handled

here. It occurs when two spaces are attached

together or detached separately. The accounting

system is the description of transactions, where

entities such as products and cash are

exchanged between two agents. When a

transaction occurs, some entities are detached

from one agent and attached to another agent.

These dynamic changes are expressed using an

attaching function.

5) The cellular structure level is the third lowest

abstract level. The physical structure of the

system is defined here. Up to now, the

designing system is conceptual and difficult to

capture its physical structure. On this level, an

element constituting a space is represented by a

cellular structure, which is imaginary similar to

embryos and constructed by n-dimensional

cells.

6) The presentation level is the following lowest

abstract level. On this level, UML diagrams are

used to represent the developing system. From

this level, an accounting system is designed or

modeled in the same way as RUP. However, as

properties of classes have already been defined

on the precedent abstract levels, UML diagrams

are created almost automatically. This is the big

difference with the traditional methodologies.

7) The view level is the lowest abstract level and

the most concrete level. On this level, the

system is represented by program codes. If

program codes are installed in the system, the

ICEIS 2007 - International Conference on Enterprise Information Systems

438

behavior of the developing system can be

observed.

3 DESIGNING AND MODELING

OF AN SIMPLE ACCOUNTING

SYSTEM

3.1 The Homotopy Level

A simple accounting system is the description of

transactions in a company. A company buys parts

and sells products. The difference of amount

between buying and selling is profit or loss. When a

transaction occurs, a journal voucher is issued. A

journal voucher consists of a journal voucher

number, header and details. IMAH maps these

materials into a fiber bundle. A fiber bundle is

defined mathematically as follows.

Definition: A fiber bundle is a quadruple ξ = (E,

B, F, p) consisting of a total space E, a base space

B, a fiber F, and a bundle projection that is a

continuous surjection called F-bundle p: E → B

such that there exists an open covering Υ = {U} of B

and, for each U ∈ Υ, a homeomorphism called a

coordinate chart ϕ

U

: U × F

→ p

-1

(U) exists such

that the composite

U × F p

-1

(U) U

is the projection to the first factor U. Thus the

bundle projection p: E → B and the projection p

B

: B

× F → B are locally equivalent. The fiber over b ∈

B is defined to be equal to p

-1

(b), and we note that F

is homeomorphic to p

-1

(b) for every b ∈ B, namely

∀b ∈ B, F > p

-1

(b).

The total space for the simple accounting system

is of course the transaction space. A fiber bundle

divides a total space into a base space and a fiber. As

the base space is projection of the total space, the

journal voucher frame space J, which is a frame to

contain the description of a transaction, is

determined as the base space. The inverse map of

projection to an element of the base space represents

a fiber. A journal voucher number space V, a header

space H and a detail space D, which represent the

description of a transaction, compose a fiber as

shown in Figure 1.

When a transaction occurs, the elements are

obtained from these spaces and combined each

other, where a space and an element are similar

concepts to a class and an instance of an object

oriented language. Therefore, a journal voucher

frame is obtained from the space J. A journal

voucher number, a header and a set of details are

obtained from the spaces V, H and D. The journal

voucher number, the header and the set of details are

put in the journal voucher frame.

Figure 1. The fiber bundle for the simple accounting

system.

In summary, the journal voucher frame space J,

the journal voucher number space V, the header

space H and the detail space D have been defined on

this level.

3.2 The Set Theoretical Level

Elements of a space are defined on this level. The

journal voucher frame space J consists of a set of

journal voucher frames: J = {j

1

, j

2

,…., j

n

}, where j

i

is

a journal voucher frame with three variables such

that j

i

= (v

i

, h

i

, DS

i

) ∈ J, where v

i

, h

i

and DS

i

are a

journal voucher number, a header and details. The

journal voucher number space V consists of journal

voucher numbers: V = {v

1

, v

2

,….,v

s

}, where v

i

is a

journal voucher number with one variable of s

i

∈ ⊆.

The header space consists of headers: H = {h

1

,

h

2

,….,h

s

}, where h

i

is a header with three variables

such that h

i

= (t

i

, a

i

, r

i

) ∈ H, where t

i

, a

i

and r

i

are

application date, applicant name and remarks. The

detail space consists of a set of details: D = {d

1

,

d

2

,…..,d

j

}, where d

i

is a detail with two variables

such that d

i

= (di

i

, da

i

), where di

i

, da

i

are an

accounting item and amount. If amount is positive,

the detail is debtor, otherwise it is creditor.

In summary, the elements of each space: J = {j

1

,

j

2

,…., j

n

}; V = {v

1

, v

2

,….,v

s

}; H = {h

1

, h

2

,….,h

s

} and

D = {d

1

, d

2

,…..,d

j

} are defined on this level. The

variables of each element are also defined on this

level. The elements and variables are incrementally

added on the basis of the invariants defined on the

homotopy level.

ϕ

p

A journal voucher

frame space

A detail

space

A header

space

A journal

voucher

space

DEVELOPMENT OF AN ACCOUNTING SYSTEM - Applying the Incrementally Modular Abstraction Hierarchy to a

Complex System

439

3.3 The Topological Space Level

The strongest topology is introduced for the simple

accounting system. The strongest topology for the

journal voucher space J is introduced as follows. (J,

T) = {φ, j

1

, j

2

, j

3

,…, j

n

, (j

1

, j

2

), (j

1

, j

3

),…, (j

n-1

,

j

n

),……., (j

1

, j

2

, j

3

,…, j

n

) }. Other spaces also have

the strongest topology in the same way.

Here is an example how the topological space is

used. When the general ledger is required, it is

necessary to collect journal vouchers with a given

accounting item. This requirement is achieved by

gathering fibers as shown in Figure 2. For example,

if all transactions traded with account receivable are

projected to a subset Js ⊂ (J, T), then the set of

fibers of Js gives the voucher numbers, headers and

details of all the journal vouches traded with account

receivable.

Figure 2. Fibers for account receivable.

In summary, the topological space level defines

topological spaces, for example (J, T) = {φ, j

1

, j

2

,

j

3

,…, j

n

, (j

1

, j

2

), (j

1

, j

3

),…, (j

n-1

, j

n

),……., (j

1

, j

2

, j

3

,…,

j

n

) }, on the basis of invariants defined by the

previous abstract levels.

3.4 The Adjunction Space Level

When a transaction occurs, the space J is attached to

the spaces V, H and D such that the journal voucher

number, header and details are put in the journal

voucher frame. This behavior is clearly represented

on the adjunction space level, where related spaces

are adjoined by an attaching function.

Dynamic relations between the journal voucher

frame space J and the detail space D are considered

here as an example. When a transaction occurs, the

spaces J and D are adjoined by identifying

transaction details. That is, a journal voucher frame

j

i

, is attached to a journal voucher numbar v

i

(s

i

), a

header h

i

(t

i

, a

i

, r

i

) and details d

i1

(di

i1

, ai

i1

) …..

d

ik

(di

ik

, ai

ik

). This attachment is carried out by

adjoining two spaces. Using an attaching function f,

the adjunction space D

f

D

f

= D +

f

J = D + J / ∼ = D + J / (j

i

∼ f(y) | j

i

∈ J,

∀y ∈ D

0

)

is obtained by identifying each of transaction details

y ∈ D

0

| D

0

⊆ D with its image f(y), which is a

journal voucher frame ∈ J, so that j

i

∼ f (y) | ∀y ∈

D

0

. The adjunction space D

f

shows the shape of the

space D where D

0

⊆ D affected by this transaction is

identical to the corresponding part of the space J.

The attaching map f and the identification map g

are:

f: D

0

→ J | D

0

⊆ D,

and

g: D + J → D

f

= D +

f

J = D + J / ∼

= D + J / (j

i

∼ f(y) | j

i

∈ J, y ∈ D

0

).

The attaching map shows how D

0

⊆ D is mapped

into J. The identification map shows how relations

of two spaces D and J change after mapping f.

These relations are shown in Figure 3.

Figure 3. The attaching function.

The adjunction space level preserves the

invariants defined at the homotopy level. The

invariant showing that the journal voucher consists

of three properties of a journal voucher number, a

header and details is preserved by the attaching map

f. These spaces are attached by a disjoint union.

As an attaching map is continuous, the reverse

function is defined. It means that the system can

return at the point before applying the attaching map.

Therefore, cancellation of any transaction can be

accepted at any time, which gives flexibility to

system development.

In summary, attaching maps from V, H and D to

J are defined on the basis of invariants defined by

the previous higher abstract levels.

3.5 The Cellular Structure Level

On this level, the physical structure is constructed

using cells. At first, an element in each space is

Transactions

The journal

voucher A

The journal

voucher B

J

s

Journal voucher

frames

f (y)

j

Acc Item

Amount

Details

The attaching map

f

An accounting system

Acc Item

Amount

A voucher

frame

Detail

The adjunction space J

f

The identification

map g

Detail

Transaction

J + D

A voucher

frame

Journal voucher

frames

Details

ICEIS 2007 - International Conference on Enterprise Information Systems

440

transformed to an n-dimensional ball. A journal

voucher number v

i

has one variable of an integer

number. It is represented by Β

si

1

. As the journal

voucher number space V is disjoint unions of journal

voucher numbers, it is represented by +

i

Β

si

1

. A

header h

i

and a detail d

i

have three and two variables.

These spaces H and D are represented by +

i

Β

hi

3

and

+

i

Β

di

2

. A journal voucher frame j

i

is a container of

these elements without variables, its space J

becomes +

i

Β

i

0

.

A n-dimensional closed ball is represented by

disjoint unions of a (n-1)-dimensional open ball and

a (n-1)-dimensional surface and (n-1)-dimensional

closed balls such that

Β

n

= intΒ

n

+ (S

n-1

\ +

j

Β

j

n-1

) +

j

Β

j

n-1

.

A smaller dimensional closed ball Β

j

k

than the

original ball is obtained by repeating this process.

This ball is denoted by the following expression.

∂

n-k

Β

n

= Β

k

.

A journal voucher frame j

i

is attached to a

journal voucher number v

i

, a header h

i

and details

DS

i

. These attaching is described by the following

equations.

f

1

: ∂

1

Β

sj

1

→ Β

j

0

, or Β

j

0

+

f1

Β

sj

1

/~.

f

2

: ∂

3

Β

hj

3

→ Β

j

0

, or Β

j

0

+

f2

Β

hj

3

/~.

f

3

: +

j

∂

2

Β

djj

2

→ Β

j

0

, or Β

j

0

+

f3

(+

j

Β

djj

2

)/~.

Then, n-dimensional balls are transformed into

cellular structures using a filtration.

Definition: A filtration space is a sequence of cells

to represent a topological space. It is defined as

follows. For any topological space X, we can get a

finite or infinite sequence of skeletons X

p

, where p is

an integer, such that

X = ∩

p

∈

Z

X

p

X

0

⊆ X

1

⊆ …… ⊆ X

p

…… ⊆ X.

A skeleton X

p

consists of cells, whose

dimensions do not exceed n. A cell is a topological

space, equivalent topologically to an n-dimensional

open ball IntΒ

n

, where n is an arbitrary integer. A

sequence of skeletons is called filtration. If it is

finite, it becomes a CW-space.

Let’s consider details DS

i

. DS

i

is represented by

+

j

Β

dji

2

using open balls. A detail has an accounting

item and amount as its variables. It also needs an

index to be uniquely identified. These entities are

used as a skeleton X

detail

0

of DS

i

.

X

detail

0

={e

did

0

1

, .., e

did

0

k

, e

item

0

1

, .., e

item

0

k

, e

amount

0

1

, .., e

amout

0

k

}.

For the skeleton X

detail

1

, every two entities among

index, accounting item and amount are attached

together via 1-dimensional cells as follows.

X

detail

1

={X

detail

0

, e

diditem

1

1

, .., e

diditem

1

k

, e

itemamount

0

1

,

.., e

itemamount

0

k

, e

amoundidt

0

1

, .., e

amoutdid

0

k

| f

1

: ∂e

diditem

1

i

→ e

did

0

i

, f

2

: ∂e

diditem

1

i

→ e

item

0

i

, f

3

: ∂e

itemamount

1

i

→

e

item

0

i

, f

4

: ∂e

itemamount

1

i

→ e

amount

0

i

, f

5

: ∂e

amountdid

1

i

→

e

amount

0

i

, f

6

: ∂e

amountdid

1

i

→ e

did

0

i

,}.

The keleton X

detail

2

is also obtained as follows.

X

detail

=

X

detail

2

={X

detail

1

, e

detail

2

1

, .., e

detail

2

k

| f

1

:

∂e

detail

2

i

→ e

diditem

1

i

, f

2

: ∂e

detail

2

i

→ e

itemamount

0

i

, f

3

:

∂e

detail

2

i

→ e

amoutdid

0

i

}.

In the same way, a journal voucher number v

i

and a header h

i

are obtained. These are attached to a

journal voucher frame j

i

as shown in figure 4.

Figure 4. The cellular structures for the simple

accounting system.

In summary, the cellular structures of elements

for the spaces J, V, H and D are defined while

preserving invariants defined on the previous higher

levels.

3.5 The Presentation Level

The journal voucher frame j

i

∈ J, the journal

voucher number v

i

∈ J, the header h

i

∈ J, the details

DS

i

⊂ D constituting a transaction have been

represented as cellular structures X

frame

, X

number

,

X

header

and X

detail

on the cellular structure level.

These cellular structures are transformed into UML

diagrams on the presentation level as shown in

Figure 5. Each cellular structure is represented as a

class such that X

frame

is represented as class

VoucherFame, with stereo type entity, which

becomes an entity been of Enterprise Java Beans

(EJB) on the next view level. The elements of a 0-

dimentional skeleton are transformed into instant

variables. The attaching function between two cells

is transformed into an association links. Multiplicity

of an association link reflects the number of cells

connected by the attaching function. In a cellular

structure, an index is used in a 0-dimentional

index

index serial #

index

item

amount

index

item

amount

index

application

date

applicant

name

remarks

X

f

rame

X

numbe

r

X

heade

r

X

detai

l

attaching

DEVELOPMENT OF AN ACCOUNTING SYSTEM - Applying the Incrementally Modular Abstraction Hierarchy to a

Complex System

441

skeleton. It does not appear in its class. However, it

becomes the primary key when a class is

transformed into the database table using object-

relational mapping on the next view level.

In summary, a space defined on the homotopy

level is transformed into a class with stereotype

entity on this level. An element defined on the set

theoretical level is transformed into a cell on the

cellular structure level and into an instance on this

level. A variable defined on the set theoretical level

is transformed into a 0-dimentional cell on the

cellular structure level and into an instance variable

on this level. An attaching function defined on the

adjunction space level is transformed into an

association link connecting two classes.

3.6 The View Level

The simple accounting system includes only classes

with stereo type entity. These classes are

automatically transformed into entity beans and

database tables by AndroMDA. AndroMDA is a

generator framework that adheres to the model

driven architecture (MDA) paradigm. UML

diagrams are transformed into deployable

components for J2EE, Spring or .NET platform.

Any business logic is not included in the simple

accounting system. Only, creating, reading, updating

and deleting are necessary for the database. Java

server pages (JSP) realizing these functions are also

automatically generated by AndroMDA.

In summary, as everything which is necessary as

an application program in EJB environment is

automatically generated by AndroMDA, invarinats

defined on the previous levels are preserved here

and components required for deploying the system is

incrementally added on this level.

4 DESIGNING AND MODELING

OF A FULL-SCALE WEB-BASE

ACCOUNTING SYSTEM

4.1 The Homotopy Level

A full-scale accounting system is provided by

adding functions to the simple accounting system. A

basic accounting system is obtained by adding

general ledgers to the simple accounting system. An

enterprise accounting system is equipped with

financial statements to the basic accounting system.

A full-scale Web-base accounting system with

internal auditing functions is obtained by adding a

business process model to the enterprise accounting

system in Web-base environment. The conceptual

progress from the simple accounting system to the

full-scale Web-base accounting system is explained

by HLP. HLP is defined mathematically as follows.

The function p: E → B has the homotopy lifting

property (HLP) for a space X if, for each continuous

function k: X → E, each homotopy H: X I → B of

p

⎣

k (H⎣i

0

= p⎣k) has a lifting to a homotopy K: X I

→ E of k (K⎣i

0

= k) and K is constant on {x} I

whenever H is constant on {x} I.

If space X represents conceptual progress and E

and B are a total space representing transactions and

a base space representing journal vouchers as shown

in Figure 6, the conceptual progress to the full-scale

accounting system is considered as homotopical

changes originated from the simple accounting

system.

Therefore, the conceptual progress preserves

invariants of the simple accounting system. For the

full-scale Web-base accounting system, the journal

voucher frame space J, the journal voucher number

space V, the header space H and the detail space D

are preserved. The invariants for conceptual progress

part are incrementally added to the original part.

The basic accounting system, which enhances

the simple accounting system by adding the function

of the general ledger, is considered as the first

conceptual progress. The general ledger is a

permanent summary of all journals. The general

ledger is sometimes divided into main accounting

items, such as cash, account receivable and account

payable ledgers. The general ledger is created from a

set of journal vouchers. It is possible to create it

whenever a journal voucher is processed or only

Figure 5. The class diagram for the simple accounting

system.

<<entity>>

Detail

accountingItem: String

amount: Money

<<entity>

Header

applicationDate: Date

applicantName : String

remarks : String

<<entity>>

SerialNumber

<<unique>>number: Integer

<<entity>>

VoucherFrame

1

1..n

1

ICEIS 2007 - International Conference on Enterprise Information Systems

442

when the reference of the general ledger is requested.

The system is designed by the latter since it is

expected the former takes time when the system

becomes a full-scale system.

Figure 6. The homotopy lifting properties.

To fulfill the above requirements, the basic

accounting system is designed as follows. It adds the

general ledger space and the processing list space to

the spaces defined for the simple accounting system

as shown in Figure 7. The general ledgers are

generated on the general ledger space. The

processing list space is divided into two subspaces:

waiting and processed. Journal vouchers which have

not been recorded yet in the general ledger are kept

in the waiting space. When a journal voucher is

recorded, it is moved to the processed space. The

basic accounting system has two main procedures:

1) processing of a journal voucher, which carries out

the same process as in the accounting system as well

as saves it in the waiting space; 2) updating of the

general ledger, which moves journal vouches from

the waiting space to the processed space and add

amount recorded in the journal voucher to the

current total amount of the corresponding

accounting item as shown in Figure 8.

Figure 8. General ledger updating process.

4.2 The Presentation Level

After designing the basic accounting system on the

homotopy level, it goes to designing on the lower

abstract levels in the same way as the simple

accounting system. The results on the presentation

level are shown in Figure 9. In the simple

accounting system, all classes have stereo type entity.

However, in the basic accounting system, processing

of the general ledger requires business logic. A class

with business logic has stereo type service. This

class becomes a session bean of EJB. In the Figure

10, GeneralLegerHandler is equipped for this

purpose. The method getGeneralLedger() of class

GeneralLegerHandler updates the general ledger.

The contents of this method, which is business logic

of the basic accounting system, is not automatically

generated by AndroMDA, a programmer has to

supply its code. This program development is also

carried out by abstraction hierarchy. A finite

machine, where equivalent finite machines are

homotopically equivalent, is defined on the

homotopy level. As the explanation of this

mechanism needs more space, it will be described in

another paper.

After completing the development of the basic

accounting system, the enterprise accounting system

is developed in the same way starting from the

homotopy level and ending with the view level. The

full-scale accounting system is finally completed by

repeating this process. This process is similar to

RUP. However, RUP repeats it between the

presentation and view levels, while IMAH repeats it

between the homotopy and view levels with

theoretical basis.

Figure 7. The spaces for the basic accounting system.

A general ledger space

A processing list space

A general ledger space

A processing list space

waiting

waiting

processed

processed

item1

item2

Get a general ledger

A voucher frame space

A general ledger space

A processing list space

waiting

processed

A detail

space

A header

space

A serial #

space

Transaction

Voucher Frame

B: A Base Space

E: A total Space

A journal voucher

+ BPM

+ GL

+ BSPL

H

X x I

DEVELOPMENT OF AN ACCOUNTING SYSTEM - Applying the Incrementally Modular Abstraction Hierarchy to a

Complex System

443

Figure 9. The class diagram for the basic accounting

system.

4 CONCLUSIONS

IMAH is applied to the development of accounting

systems ranging from the simple accounting system

to the full-scale Web-base accounting system.

IMAH keeps invariants defined on higher abstract

levels while climbing down the abstraction hierarchy.

Using the simple accounting system, it is described

how invariants are incrementally added to the

developing system. The incremental invariant

addition contributes to avoiding the combinatorial

explosion problem.

The simple accounting system is enhanced to the

basic accounting system and the full-scale Web-base

accounting system. The conceptual progress also

keeps invariants defined in the original system.

IMAH is considered as the conceptual progress of

RUP since both methodologies are performed by

iterative process. However, IMAH is different from

RUP since IMAH has theoretical background.

Homotopy, fiber bundles, homotopy lifting

properties, homotopy extension properties, topology,

attaching functions and cellular structures give

enough theoretical background to software

engineering.

REFERENCES

Agresti, W. W., 1986. New Paradigms for Software

Development. IEEE Tutorial, IEEE Computer Society.

Boehm, B., 1981. Software Engineering Economics.

Prentice-Hall. Englewood

Booch, G., 1991. Object Oriented Design with

Applications. The Benjamin/Cummings Publishing

Company.

Booch, G., Rumbaugh, J., Jacobson, I., 1999. The Unified

Modeling Language User Guide. Addison-Wesley.

Dahl, O. J., Dijkstra, E. W. Hoare, C. A. A., 1972.

Structured Progamming. Academic Press, London.

Dodson, C. T. J., Parker, P. E., 1997. A user’s guide to

algebraic topology. Kluwer Academic Publication.

Halstead, M. H. 1977. Elements of Software Science.

North-Holland, Amsterdam.

Hatcher, A., 2002. Algebraic topology. Cambridge

University Press.

Humphrey, W. S., 1989. Managing the Software Process.

Addison-Weskey, Reading Mass.

Jackson, M. A., 1975. Principles of Program Design.

Academic Press, New York.

Jacobson, I. et. Al. 1992. Object-Oriented Softwae

Engineering – A Use Case Driven Approach, ACM

Press.

Jacobson, I., Booch, G., Rumbaugh, J., 1999. The Unified

Software Development Process. Addison-Wesley.

Kunii, L. T., 2005. Cyberworlds -Theory, Design and

Potetial-, The Institute of Electronics, Information and

Communication Engineers, E88-D(5), 790-800

Kunii, T. L., and Ohmori, K., 2006. Cyberworlds:

Architecture and Modeling by an Incrementally

Modular Abstraction Hierarchy, The Visual Computer,

22(12), 949-964.

Myers, G. J., 1978. Composite / Structure Design, Van

Nostrand Reinhold, New York.

Naur et al, 1976. Software Engineering: Concepts and

Techniques. Petrocelli/Charter, New York.

Ohmori, K., 2005 An Internet Accounting System: A

Large Scale Software Development Using Model

Driven Architecture, Seventh International Conference

on Enterprise Information Systems, 407-410

Omori K., and Kunii T. L., 2006. An Incrementally

Modular Abstraction Hierarchy for Linear Software

Development Methodology, International Conference

on Cyberworlds, 216-223

Rumbaugh, J. et. Al. 1991. Object-Oriented Modeling and

Design. Prentice-Hall. N. J.

Rumbaugh, J., Jacobson, I., Booch, G., 1999. The Unified

Modeling Language Reference Manual. Addison-

Wesley.

Sieradski, A. J., 1992. An introduction to topology and

homotopy. PWS-Kent Publishing Company. Boston.

Soley, R., Frankel, D. S., Parodi, J., 2004. The MDA

Journal: Model Driven Architecture Straight From The

Masters, Meghan Kiffer Pr.

Spanier, E. H., 1996. Algebraic topology, Springer-

Verlag.

Yordon, E., Constantine, L. L. 1979. Structured Design:

Fundamentals of Decipline of Computer and System

Design. Prentice-Hall, Englewood Cliffs, N. J.

http://www.andromda.org/.

<<entity>>

ProcessingList

<<service>

GeneralLedgerHandler

getGeneralLedger():void

<<entity>>

Voucher

<<entity>

Header

applicationDate: Date

applicantName : String

remarks : String

<<entity>>

Detail

accountingItem: String

amount: Money

1

1.

<<entity>>

SerialNumber

<<unique>>number: Integer

1

<<entity>

GeneralLedger

accountingItem: String

totalAmount : Money

parent

processed

waiting

0..n

0..n

ICEIS 2007 - International Conference on Enterprise Information Systems

444