橡 romi-bsc

オブジェクト指向ソフトウエア自動設計用
分散型知識ベースシステムの開発 :
システム設計
•
•
•
•
•
•
•
はじめに
研究アプローチ
分散型知識ベースシステムの設計
各エキスパートユニットの設計
プログラムの構成と実現状況
今後の課題
まとめ
Romi Satria Wahono 55762
埼玉大学工学部情報システム工学科 Far 研究室
1999年02月12日
1
はじめに -1• 研究の背景
– オブジェクト指向分析・
設計での困難さ
● オブジェクト識別
● オブジェクト関連識別
● 属性識別
● 継承による洗練
– 大規模知識ベース
システムでの問題
● 知識獲得ボトルネック
● 知識ベース処理の速度
– 新たな分散CASEシス
テムへの要求
● グループウエアでの情報
共通の問題
● グループウエアでの相互
運用性の問題
1999年02月12日
2
はじめに -2• 研究の目的
オブジェクト指向分析・設計での困難を解決する
効率的な知識ベースのアーキテクチャーを求める
実需的なユーザインターフェイスを持つ、ネッワー
ク技術に対応できる、グループウエアで利用できる
システムを実現する
1999年02月12日
3
研究アプローチ
• オブジェクト識別・関 ● 設計ルールを求めて、
連識別・属性識別・継 知識ベースに蓄積する
承による洗練の問題 ● そのルールに基づき、困難な
設計プロセスを自動化する
に対するアプローチ
• 分散型知識ベースア
プローチの採用
● 効率的な知識ベース
● ネットワーク及びC/Sシステム
技術の提供
• 分散オブジェクトを用
いる分散システムア
プローチの採用
● グループウエアでの問題を
解決できる
● スケーラビリティ、可搬性、
柔軟性を持つシステム
1999年02月12日
4
分散型知識ベースシステムの設計
システムアーキテクチャーの設計
オブジェクトモデルの設計
機能モデルの設計
動的モデルの設計
1999年02月12日
5
システムアーキテクチャーの設計
ユーザインターフェイス部
分散型知識ベース部
知識ベース
クライアント
知識ベース
クライアント
知識ベース
サーバ
KQML
KQML
推論エンジン部
コミュニケーションエンジン部
Object Oriented
Design
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();
}
}
ドキュメンテーションエンジン部
Documents
Complete
Source Code
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public atm(){
}
public atm(){
}
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
1999年02月12日
class atm{
final int Max = 1000;
List dblist;
Button NewAccount;
Button SearchAccount;
Button EnterAccount;
Button ExitButton;
public void action{
if (c.equals(new) n();
else if(c.equals(sea)
s();
else if(c.equals(ent)
e();
}
}
6
オブジェクトモデルの設計
User
Interface
OOD
Communication
Engine
属性:
属性:
演算:
演算:
Communicates
with
Complete
Source
Code
Consits of
Main Window
属性:
Documentation
Engine
演算:
Communicates
with
Sends to
Source
Code
Reasoning
Engine
Search rules
from
Distributed
Knowledge Base
属性:
属性:
属性:
演算:
演算:
Design 演算:
Gets result Rules
Consist of
OO Design
RE Result
Viewer
Source Code
Viewer
Documentation
and Help
Communicates
Knowledge Base
with
KQML
Client
属性:
属性:
属性:
属性:
Knowledge Base
Server
演算:
演算:
演算:
演算:
属性:
属性:
演算:
演算:
1999年02月12日
7
機能モデルの設計
ルール
検索
入力を読み、理
解する
オブジェクト識別依頼
オブジェクト関連識別依頼
属性識別依頼
継承による洗練の依頼
ソースコード化依頼
検索結果
推論実行
依頼あるいは結
果を送る
出力を生成する
オブジェクト識別結果
オブジェクト関連識別の結果
属性識別結果
継承による洗練の結果
ソースコード化結果
オブジェクト識別結果を表示する
オブジェクト関連識別の結果を表示する
属性識別結果を表示する
継承による洗練の結果を表示する
ソースコード化結果を表示する
オブジェクト識別依頼
オブジェクト関連識別依頼
属性識別依頼
継承による洗練の依頼
ソースコード化依頼
ユーザ
1999年02月12日
8
動的モデルの設計
User Interface
Communication
Engine
オブジェクト識別依頼を送る
オブジェクト識別処理結果を表示する
オブジェクト関連識別の依頼を送る
オブジェクト関連識別処理結果を表示する
属性識別依頼を送る
属性識別処理結果を表示する
継承による洗練の依頼を送る
継承による洗練の処理結果を表示する
オブジェクト指向設計を送る
Documentation
Engine
Reasoning
Engine
オブジェクト識別を処理する
オブジェクト識別処理結果を送る
オブジェクト関連識別を処理する
オブジェクト関連識別処理結果を送る
属性識別を処理する
属性識別処理結果を送る
継承による洗練を処理する
継承による洗練の処理結果を送る
設計を処理する
ドキュメント付きソース
コードを送る
Distributed
Knowledge Base
オブジェクト識別ルールを検索する
オブジェクト識別ルールを獲得する
オブジェクト関連識別ルールを検索する
オブジェクト関連識別ルールを獲得する
属性識別ルールを検索する
属性識別ルールを獲得する
継承による洗練のルールを検索する
継承による洗練のルールを獲得する
設計ルールを検索する
設計ルールを獲得して、原ソースコード
に変換する
ドキュメントを追加する
完全なソースコードをユーザに表示する
1999年02月12日
9
各エキスパートユニットの設計
ユーザインタフェース部の設計
コミュニケーションエンジン部の設計
推論エンジン部の設計
分散型知識ベース部の設計
ドキュメンテーションエンジン部の設計
1999年02月12日
10
プログラムの構成と実現状況
aoosd
bin
Binary Files
aoosd.class
aoosd.bat
aoosd.sh
doc
Help Files
api
help.hlp
help.html
lib
Library Files
aoosd
Packages
CommunicationEngine
DistributedKnowledgeBase
DocumentationEngine
ReasoningEngine
UserInterface
aoosd.zip
Compressed Packages
完成
開発中
未完成
1999年02月12日
11
今後の課題
• 分散型知識ベースに蓄積するためのルー
ル及び設計パターンを求める
• 分析・設計した各エキスパートユニットを
実現する
• 各エキスパートユニットを統合して、全
体的にシステムを実現する
• システムテストとその評価を行う
1999年02月12日
12
まとめ
• オブジェクト指向ソフトウエア自動設計用分
散型知識ベースシステムの有効性
• システムを実現するための研究アプローチ
• 全体的なシステム設計
• 各エキスパートユニットの設計
1999年02月12日
13