An Incrementally Modular Abstraction Hierarchy for Linear Software Development Methodology Kenji Ohmori Computer and Information Sciences Hosei University Tosiyasu L. Kunii IT Institute Kanazawa Institute of Technology CW2006, Nov. 28-29, Lausanne

The Combinatorial Explosion Problem has to be Solved • Many software development methodologies including the water-fall model and rational unified process have been introduced for avoiding serious problems in software engineering. • These current methodologies cannot yet avoid the combinatorial explosion problem, which is the basic problem since the study of software engineering started in 1960s. CW2006, Nov. 28-29, Lausanne

Modeling and Designing of Cyberworlds • Cyberwords have the same problem as software engineering, having difficulties in avoiding the combinatorial explosion problem. • Most engineering is analytic, however, cyberworlds and software engineering are synthetic. • A new approach, which is different from traditional engineering approach, is strongly required from both cyberworlds and software engineering. CW2006, Nov. 28-29, Lausanne

Incrementally Modular Abstraction Hierarchy • We propose incrementally modular abstraction hierarchy as a new methodology for cyberworlds and software engineering. • It allows incrementally modeling and designing by preserving invariants defined on more abstract levels while climbing down abstraction hierarchy.

CW2006, Nov. 28-29, Lausanne

Keeping Invariants Abstract

• What is common among these very different events? – – – – –

Kaleidoscope On-line shopping e-Learning Manufacturing A fallen leave

Homotopy level -Identify spaces Set theoretical level -Identify elements Topological space level -Continuity (Neighbors) Adjunction space level -Dynamic relations Cellular structure level -Identify dimensions Presentation level -Physical presentation View level -Visualization Specific

CW2006, Nov. 28-29, Lausanne

The Homotopy Level • The most essential part of an accounting system is represented by a fiber bundle. • The conceptual development from the most essential part is represented by a homotopy lifting property.

CW2006, Nov. 28-29, Lausanne

A fiber bundle

A journal voucher

p-1(U)

E: A total Space

Transaction

ju: a coordinate chart (homeomorphism) UxF

p: a bundle projection U œ {U}, where {U} an open covering of B

B: A Base Space

Voucher Frame

F: A fiber

A serial # space

A header A detail space space

Serial #, Header & Details

CW2006, Nov. 28-29, Lausanne

A voucher frame space

A homotopy lifting property k X

Y

h p

i0

E: A total Space

K

Transaction

H XxI

A journal voucher

B

+ BPM + BSPL + GL CW2006, Nov. 28-29, Lausanne

B: A Base Space Voucher Frame

The Set Theoretical Level • Elements of each space are defined. • Logical operations are also introduced.

CW2006, Nov. 28-29, Lausanne

Elements used for representing a journal voucher: A set of journal voucher frames: J = {j1, j2, j3, …., jn}, where ji is a journal voucher frame. A journal voucher frame: ji = (si, hi, DSi) œ J, where si œ Ù, hi and DSi are a journal voucher number, a header and details. A list of headers: H = {h1, h2,….,hs} A header: hi = (ti, ai, ri) œ H, where ti, ai and ri are application date, applicant name and remarks. A list of details D = {d1, d2,…..,dj} A detail: di = (dii, dai), where dii, dai are an accounting item and amount. If amount is positive, the detail is debtor, otherwise it is creditor.

Ù: A serial H: A header D: A detail space space # space

These elements are included in the spaces defined on the homotopy level: J constitutes a base space and Ù, H, D do a fiber. CW2006, Nov. 28-29, Lausanne

J: A journal voucher frame space

The Topological Space Level • A topological equivalence is an important invariant on this level. • A topological space is induced to the spaces defined on the homotopy level. • It allows us to define continuous mapping among spaces. • A continuous mapping is the most fundamental concept for showing distance. • We can define the strongest or weakest topology for a space defined by discrete elements. CW2006, Nov. 28-29, Lausanne

The strongest topology is introduced for an accounting system. Here is an example: A topology for the base space B. (B, T) = {f, j1, j2, j3,…, jn, (j1, j2), (j1, j3),…, (jn-1, jn),……., (j1, j2, j3,…, jn) }

Transaction between companies A and B The journal voucher for company A

The journal voucher for company B

CW2006, Nov. 28-29, Lausanne

The Adjunction Space Level • Invariants included in dynamic changes are represented on this level. • The basic properties of information is attaching and detaching among entities. • These properties are represented using an attaching function, where a part of one space is regarded to be identical to a part of another space between two disjoint spaces. CW2006, Nov. 28-29, Lausanne

Transaction J+D

Journal voucher frames

An accounting system

A voucher frame Details j0

The map g

The attaching map f

Transaction details

f (j0) Detail

The adjunction space J f identification A voucher frame Acc Item Amount f (j0) Detail

CW2006, Nov. 28-29, Lausanne

Journal voucher frames

Transaction details

The cellular Space Level • An embryo appears on this level. • The structure which you are modeling and designing becomes physically clear.

CW2006, Nov. 28-29, Lausanne

The journal voucher frame space: B1+3+2 The serial # space: Bs1 The header space: Bh3 The detail space: Bd2 f1: ∑3+2 Bj1+3+2 Ø Bs1 f2: ∑1+2 Bj1+3+2 Ø Bh3 f3: ∑1+3 Bj1+3+2 Ø Bd2

A set of journal voucher frames: J = {j1, j2, j3, …., jn}, where ji is a journal voucher frame. A journal voucher frame: ji = (si, hi, Constitute the detail space: DSi) œ J, where si œ Ù, hi and DSi are a 0 0 0 0 0 Xd = {ed1 , ed2 ,….,edn }, where edi is the index of journal voucher number, a header and detail. details. Xd1 = {ed11, ed21,…., edn1 | "i ∑edj1 Ø edi0}, where A list of headers: H = {h1, h2,….,hs} accounting items are attached. A header: hi = (ti, ai, ri) œ H, where ti, Xd2 = {ed12, ed22,…., edn2 | "i ∑edj1 Ø edi0, "i ∑edk2 ai and ri are application date, applicant 1 Ø edj }, where amount is attached. name and remarks. Index index item index item A list of details D = {d1, d2,…..,dj} (a primary key) A detail: di = (dii, dai), where dii, dai are an accounting item and amount. If amount is positive, the detail is debtor, amount otherwise it is creditor. CW2006, Nov. 28-29, Lausanne

The Presentation Level • On this level, traditional tools become available. • For software development, UML diagrams are useful.

CW2006, Nov. 28-29, Lausanne

1

1 <> VoucherFrame

1..n

<> SerialNumber <>number: Integer

< Header applicationDate: Date applicantName : String

<> Detail accountingItem: String amount: Money

CW2006, Nov. 28-29, Lausanne

The View Level • Programs are provided. • As this system is simple, everything including program codes, configuration files and deploy files is automatically generated from UML diagrams using AndroMDA.

CW2006, Nov. 28-29, Lausanne

A JSP for the header space

CW2006, Nov. 28-29, Lausanne

Enhancing the System by Adding GL A journal voucher E: A total Space Transaction

XxI

K

B: A Base Space

+ BPM H + BSPL

Voucher Frame

+ GL CW2006, Nov. 28-29, Lausanne

The First Thought item1

item2 A general ledger space

A serial # space

A voucher frame space CW2006, Nov. 28-29, Lausanne

A header A detail space space

Problems in the First Thought • When a journal voucher is recorded in the database, the general ledger has to be revised as well. • This process seems to take a lot of processing time as the system continues to be developed and becomes bigger. • We want to separate it so that the general ledger is revised only when it is referenced by an accountant. CW2006, Nov. 28-29, Lausanne

When a Journal Voucher is Recorded A general ledger space

processing list space

A serial # space

A header A detail space space

waiting processed

A voucher frame space CW2006, Nov. 28-29, Lausanne

When GL is Referenced

A general ledger space

processing list space waiting processed item1

Get a general leger

item2

A general ledger space waiting processed processing list space CW2006, Nov. 28-29, Lausanne

< GeneralLedgerHandler

The Presentation Level <> SerialNumber <>number: Integer

getGeneralLedger():void 1 parent < GeneralLedger accountingItem: String totalAmount : money

<> ProcessingList

< Header applicationDate: Date applicantName : String 1

processed 0..n

waiting 0..n

<> Voucher

1..n CW2006, Nov. 28-29, Lausanne

<> Detail accountingItem: String amount: Money

Conclusions • A new methodology for software development has been introduced. • It has abstraction hierarchy from the homotopy to view levels. • It keeps invariants while climbing down abstraction levels. • Modules are incrementally added while avoiding exponential explosion, which is the essential problem in software engineering. CW2006, Nov. 28-29, Lausanne

J

Many software development methodologies including the water-fall .... It allows us to define continuous mapping among spaces. ... between companies A and B.

838KB Sizes 1 Downloads 391 Views

Recommend Documents

No documents