OOExpert: Distributed Expert System for Automatic Object-Oriented Software Design
1999 年度人工知能学会全国大会 (第 13 回)
31-04
OOExpert: Distributed Expert System for Automati
Obje
t-Oriented Software Design
OOExpert: オブジェクト 指向ソフト ウエア自動設計用分散型エキス
パートシステム
Romi Satria Wahono
Behrouz H. Far
ロミ サトウリア ワホノ
ベルーズ
H.
ファー
Graduate S
hool of S
ien
e and Engineering, Saitama University
埼玉大学大学院理工学研究科
Abstra
t:
Resear
hers and software designers
ome to a
on
lusion that identifying obje
ts
in
luding asso
iations, attributes is an ill-dened task and there is no unied methodology for
obje
t-oriented software design. In this resear
h, we suggest an approa
h to solve the diÆ
ulties
of obje
t-oriented design by developing a distributed expert system that
ontains formulated design patterns and rules that aims at automating obje
t-oriented design pro
ess in an intera
tive
way. A novel point is using an intera
tive user interfa
e to enable software designer and the system
ommuni
ate with ea
h other in order to determine the best design, without disturbing the
reativity of the designer. Thus, making it possible for distributed expert system, to over
ome
the data sharing and the interoperability problems in a groupware. In this paper we present the
system ar
hite
ture and the resear
h outlines.
1
Introdu
tion
The four
hallenges of obje
t-oriented design are to
identify the obje
ts and
lasses needed to implement
the software, des
ribe the relationships between the
identied obje
ts and
lasses, dene the behavior of
the obje
ts by des
ribing the fun
tion implementations of ea
h
lass, and rene and organize
lasses by
using inheritan
e to share
ommon stru
ture [Rumbaugh et al., 1991℄ [Holland et al., 1996℄. These are
very
ompli
ated
hallenges be
ause of there dependen
e on heuristi
[Kato, 1998℄.
On the other hand,
hanges of so
ial and te
hnology's eld result in the
hange of software development framework, from
ommand system into
ooperation system in groupware using network te
hnology as
media [Dru
ker, 1988℄. This brings an urgent need of
a new Computer Aided Software Engineering (CASE)
tool, whi
h
an handle data sharing, interoperability,
ompatibility and portability problems.
Resear
hers and software designers
ome to a
on
lusion that identifying obje
ts in
luding asso
iations,
attributes is an ill-dened task, regarding of the diÆ
ulties of heuristi
[Kato, 1998℄ [Holland et al., 1996℄
and there is no unied methodology for obje
t-oriented
software design. This is mainly due to la
k of formalism for obje
t-oriented software design.
In this resear
h, we formulate design patterns and
rules, and store them in the distributed knowledge
連絡先: Romi Satria Wahono
〒 338-8570 埼玉県浦和市下
大久保 255, 埼玉大学大学院理工学研究科, Telp. 048-858-3489.
E-mail.
WWW.
romi
it.i
s.saitama-u.a.
.jp
http://www.
it.i
s.saitama-u.a
.jp/romi/
bases of the OOExpert system. The system
an over
ome
ertain diÆ
ulties in the obje
t-oriented design,
diÆ
ulties in the very large knowledge base system,
and it
an fulll the need of a new CASE tool for
groupware.
2
System Ar
hite
ture
Figure 1 shows an overview of the OOExpert's ar
hite
ture. This system is
omposed of User Interfa
e, Communi
ation Engine, Reasoning Engine, Distributed Knowledge Base, and Do
umentation Engine.
Ea
h engine with a running autonomous task is
alled
an expert unit.
2.1
User Interfa
e
There are four fun
tions that are managed by the user
interfa
e unit, they are obje
t-oriented design editor,
reasoning engine pro
ess (result) viewer, Java sour
e
ode viewer and do
umentation fun
tion. Using this
user interfa
e unit, software designer and expert system
an
ommuni
ate with ea
h other in order to determine the best design.
2.2
Communi
ation Engine
The
ommuni
ation engine is mainly responsible for
maintaining
onne
tion between user interfa
e unit
and another expert units besides of message management. We are implementing the
ommuni
ation engine
by using CORBA (Common Obje
t Request Broker
1999 年度人工知能学会全国大会 (第 13 回)
User Interface
Distributed Knowledge Base
Knowledge Based Knowledge Based
Client
Client
KQML
Communication Engine
Knowledge Based
Server
KQML
Raw Source Code
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
Documentation Engine
Documents
Complete
Source Code
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
Figure 1: System Ar
hite
ture of the OOExpert
Ar
hite
ture) distributed obje
t, be
ause it
an handle data sharing, interoperability,
ompatibility and
portability problems on
omplex appli
ation.
Reasoning Engine
The reasoning engine plays an important role in reasoning about the design requests
oming from the user
and the design rules or patterns that are stored in the
knowledge base. A
tually, reasoning engine is
omposed of the obje
t-oriented reasoning module and
the sour
e
ode reasoning (generation) module. These
two, address two kinds of design rules in distributed
knowledge base.
2.4
Do
umentation Engine
Do
umentation engine plays the role of reasoning engine's assistant. The do
umentation engine performs
three main tasks : do
umenting all tasks that are produ
ed by reasoning engine, preparing and reformatting
the above mentioned data for to be transferred to the
user interfa
e units, and assisting user or software designer to
reate good software do
uments.
Reasoning Engine
Object Oriented
Design
2.3
2.5
Distributed Knowledge Base
Distributed knowledge base is
omposed of some
knowledge bases, using KQML (Knowledge Query and
Manipulation Language) as
ommuni
ation language.
In this resear
h we intend to
apture and reason with
the sort of knowledge that software design experts use
in design. Software design knowledge in
ludes design
produ
t knowledge and design pro
ess knowledge.
The design produ
t knowledge relies on the perspe
tive that the design system is viewed. It in
ludes
domain-spe
i
on
epts,
onstraints and qualitative
or quantitative models of the system. And the design
pro
ess knowledge is viewed as a progression toward a
goal by applying detailing patterns. The design pro
ess knowledge involves design rules a
quired from human design, and ta
it knowledge to make su
h pattern
operational. A
tually, design rules have two kinds of
rules, the rules for obje
t-oriented design and the rules
for sour
e
ode generation.
3
Con
lusion
In this paper, we presented the outlines of an ongoing
resear
h proje
t to build a distributed expert system
for supporting obje
t-oriented software design (OOExpert). The intera
tive user interfa
e, reasoning engine, do
umentation and
ommuni
ation engines are
already developed. The knowledge base whi
h
ontains rules for automating design pro
ess is under development.
Using this system, software designers and expert
system
an
ommuni
ate with ea
h other in order to
determine the best design, without disturbing the
reativity of the designer.
Referen
es
[Romi et al., 1999℄ Romi Satria Wahono, B.H. Far, "Distributed Expert System Ar
hite
ture for Automati
Obje
t-Oriented Software Design", Pro
eedings of the
Third Workshop on Ele
tro-Communi
ation and Information,
pp. 131-134, (1999).
[Kato, 1998℄ 加藤貞行, "オブジェクト識別についての一考
察とその効果", 情報処理学会研究報告, vol.90, no.100,
(1998).
[Rumbaugh et al., 1991℄ Rumbaugh J., Blaha M., Premerlani W., Eddy F. and Lorenson W., "Obje
t-Oriented
Modeling and Design", Prenti
e Hall, (1991).
[Holland et al., 1996℄ Ian M. Holland and Karl J. Lieberherr, "Obje
t-Oriented Design", ACM Computing
Surveys, vol. 28, no. 1, (1996).
[Dru
ker, 1988℄ Dru
ker P., "The Coming of the New
Organization", Harvard Business Review, Jan.Feb.1988, pp.45-53, (1988).
[Boo
h, 1994℄ Boo
h G., "Obje
t-Oriented Analysis and
Design with Appli
ations", Benjamin/Cummings,
(1994).
[Far
et al.,
1994℄ Behrouz H. Far, Takeshi Takizawa, and
Zenya Koono, "An Expert System for Reprodu
ing
Huan Cognitive Pro
esses in Automati
Software Design", World Congress of Expert System, (1994).
[Far
et al.,
1996℄ B.H. Far and Zenya Koono, "Ex-W-Pert
System: A Web-Based Distributed Expert System for
Groupware Design", World Congress on Expert Systems' 96, pp. 545-552, (1996).
31-04
OOExpert: Distributed Expert System for Automati
Obje
t-Oriented Software Design
OOExpert: オブジェクト 指向ソフト ウエア自動設計用分散型エキス
パートシステム
Romi Satria Wahono
Behrouz H. Far
ロミ サトウリア ワホノ
ベルーズ
H.
ファー
Graduate S
hool of S
ien
e and Engineering, Saitama University
埼玉大学大学院理工学研究科
Abstra
t:
Resear
hers and software designers
ome to a
on
lusion that identifying obje
ts
in
luding asso
iations, attributes is an ill-dened task and there is no unied methodology for
obje
t-oriented software design. In this resear
h, we suggest an approa
h to solve the diÆ
ulties
of obje
t-oriented design by developing a distributed expert system that
ontains formulated design patterns and rules that aims at automating obje
t-oriented design pro
ess in an intera
tive
way. A novel point is using an intera
tive user interfa
e to enable software designer and the system
ommuni
ate with ea
h other in order to determine the best design, without disturbing the
reativity of the designer. Thus, making it possible for distributed expert system, to over
ome
the data sharing and the interoperability problems in a groupware. In this paper we present the
system ar
hite
ture and the resear
h outlines.
1
Introdu
tion
The four
hallenges of obje
t-oriented design are to
identify the obje
ts and
lasses needed to implement
the software, des
ribe the relationships between the
identied obje
ts and
lasses, dene the behavior of
the obje
ts by des
ribing the fun
tion implementations of ea
h
lass, and rene and organize
lasses by
using inheritan
e to share
ommon stru
ture [Rumbaugh et al., 1991℄ [Holland et al., 1996℄. These are
very
ompli
ated
hallenges be
ause of there dependen
e on heuristi
[Kato, 1998℄.
On the other hand,
hanges of so
ial and te
hnology's eld result in the
hange of software development framework, from
ommand system into
ooperation system in groupware using network te
hnology as
media [Dru
ker, 1988℄. This brings an urgent need of
a new Computer Aided Software Engineering (CASE)
tool, whi
h
an handle data sharing, interoperability,
ompatibility and portability problems.
Resear
hers and software designers
ome to a
on
lusion that identifying obje
ts in
luding asso
iations,
attributes is an ill-dened task, regarding of the diÆ
ulties of heuristi
[Kato, 1998℄ [Holland et al., 1996℄
and there is no unied methodology for obje
t-oriented
software design. This is mainly due to la
k of formalism for obje
t-oriented software design.
In this resear
h, we formulate design patterns and
rules, and store them in the distributed knowledge
連絡先: Romi Satria Wahono
〒 338-8570 埼玉県浦和市下
大久保 255, 埼玉大学大学院理工学研究科, Telp. 048-858-3489.
E-mail.
WWW.
romi
it.i
s.saitama-u.a.
.jp
http://www.
it.i
s.saitama-u.a
.jp/romi/
bases of the OOExpert system. The system
an over
ome
ertain diÆ
ulties in the obje
t-oriented design,
diÆ
ulties in the very large knowledge base system,
and it
an fulll the need of a new CASE tool for
groupware.
2
System Ar
hite
ture
Figure 1 shows an overview of the OOExpert's ar
hite
ture. This system is
omposed of User Interfa
e, Communi
ation Engine, Reasoning Engine, Distributed Knowledge Base, and Do
umentation Engine.
Ea
h engine with a running autonomous task is
alled
an expert unit.
2.1
User Interfa
e
There are four fun
tions that are managed by the user
interfa
e unit, they are obje
t-oriented design editor,
reasoning engine pro
ess (result) viewer, Java sour
e
ode viewer and do
umentation fun
tion. Using this
user interfa
e unit, software designer and expert system
an
ommuni
ate with ea
h other in order to determine the best design.
2.2
Communi
ation Engine
The
ommuni
ation engine is mainly responsible for
maintaining
onne
tion between user interfa
e unit
and another expert units besides of message management. We are implementing the
ommuni
ation engine
by using CORBA (Common Obje
t Request Broker
1999 年度人工知能学会全国大会 (第 13 回)
User Interface
Distributed Knowledge Base
Knowledge Based Knowledge Based
Client
Client
KQML
Communication Engine
Knowledge Based
Server
KQML
Raw Source Code
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
Documentation Engine
Documents
Complete
Source Code
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
Figure 1: System Ar
hite
ture of the OOExpert
Ar
hite
ture) distributed obje
t, be
ause it
an handle data sharing, interoperability,
ompatibility and
portability problems on
omplex appli
ation.
Reasoning Engine
The reasoning engine plays an important role in reasoning about the design requests
oming from the user
and the design rules or patterns that are stored in the
knowledge base. A
tually, reasoning engine is
omposed of the obje
t-oriented reasoning module and
the sour
e
ode reasoning (generation) module. These
two, address two kinds of design rules in distributed
knowledge base.
2.4
Do
umentation Engine
Do
umentation engine plays the role of reasoning engine's assistant. The do
umentation engine performs
three main tasks : do
umenting all tasks that are produ
ed by reasoning engine, preparing and reformatting
the above mentioned data for to be transferred to the
user interfa
e units, and assisting user or software designer to
reate good software do
uments.
Reasoning Engine
Object Oriented
Design
2.3
2.5
Distributed Knowledge Base
Distributed knowledge base is
omposed of some
knowledge bases, using KQML (Knowledge Query and
Manipulation Language) as
ommuni
ation language.
In this resear
h we intend to
apture and reason with
the sort of knowledge that software design experts use
in design. Software design knowledge in
ludes design
produ
t knowledge and design pro
ess knowledge.
The design produ
t knowledge relies on the perspe
tive that the design system is viewed. It in
ludes
domain-spe
i
on
epts,
onstraints and qualitative
or quantitative models of the system. And the design
pro
ess knowledge is viewed as a progression toward a
goal by applying detailing patterns. The design pro
ess knowledge involves design rules a
quired from human design, and ta
it knowledge to make su
h pattern
operational. A
tually, design rules have two kinds of
rules, the rules for obje
t-oriented design and the rules
for sour
e
ode generation.
3
Con
lusion
In this paper, we presented the outlines of an ongoing
resear
h proje
t to build a distributed expert system
for supporting obje
t-oriented software design (OOExpert). The intera
tive user interfa
e, reasoning engine, do
umentation and
ommuni
ation engines are
already developed. The knowledge base whi
h
ontains rules for automating design pro
ess is under development.
Using this system, software designers and expert
system
an
ommuni
ate with ea
h other in order to
determine the best design, without disturbing the
reativity of the designer.
Referen
es
[Romi et al., 1999℄ Romi Satria Wahono, B.H. Far, "Distributed Expert System Ar
hite
ture for Automati
Obje
t-Oriented Software Design", Pro
eedings of the
Third Workshop on Ele
tro-Communi
ation and Information,
pp. 131-134, (1999).
[Kato, 1998℄ 加藤貞行, "オブジェクト識別についての一考
察とその効果", 情報処理学会研究報告, vol.90, no.100,
(1998).
[Rumbaugh et al., 1991℄ Rumbaugh J., Blaha M., Premerlani W., Eddy F. and Lorenson W., "Obje
t-Oriented
Modeling and Design", Prenti
e Hall, (1991).
[Holland et al., 1996℄ Ian M. Holland and Karl J. Lieberherr, "Obje
t-Oriented Design", ACM Computing
Surveys, vol. 28, no. 1, (1996).
[Dru
ker, 1988℄ Dru
ker P., "The Coming of the New
Organization", Harvard Business Review, Jan.Feb.1988, pp.45-53, (1988).
[Boo
h, 1994℄ Boo
h G., "Obje
t-Oriented Analysis and
Design with Appli
ations", Benjamin/Cummings,
(1994).
[Far
et al.,
1994℄ Behrouz H. Far, Takeshi Takizawa, and
Zenya Koono, "An Expert System for Reprodu
ing
Huan Cognitive Pro
esses in Automati
Software Design", World Congress of Expert System, (1994).
[Far
et al.,
1996℄ B.H. Far and Zenya Koono, "Ex-W-Pert
System: A Web-Based Distributed Expert System for
Groupware Design", World Congress on Expert Systems' 96, pp. 545-552, (1996).