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