Japan Advanced Institute of Science and Technology
Author(s)
池田, 克則; 落水, 浩一郎
Citation
Research report (School of Information Science,
Japan Advanced Institute of Science and
Technology), IS-RR-96-0010S: 1-72
Issue Date
1996-03-18
Type
Technical Report
Text version
publisher
URL
http://hdl.handle.net/10119/8425
Rights
Description
リサーチレポート(北陸先端科学技術大学院大学情報
PCTEに
よ るCASEツ
ー ル の 統 合 とそ の 応 用
池 田 克 則 ・落 水 浩 一 郎 1996年3.月18日 IS-RR-96-OOIOS 北 陸 先 端 科 学 技 術 大 学 院 大 学 情 報 科 学 研 究 科 〒923-12石 川 県 能 美 郡 辰 口 町 旭 台15 [email protected] [email protected] OKatsunoriIkeda,KoichiroOchimizu,1996 1SSNO918-7553要 旨
本論 文 では 、PCTE(PortableCommonToolEnvironment)を
用 いて 、商用CASEツ
ール
のデー タを統 合 す る手段 を論 じた もの であ る。様 々な統 合技術 の調査 及 び 開発 を紹介 し
つつ 、そ の結果 をStP/OMTとObjectCenterの
統 合 にま とめ る。上流 工程 と下流 工程 の
CASEツ
ール をデー タ統合 す る ことによ り、作業 の連続 性の保 証 と変 更の波及 の追跡 が容
易 に分 か るこ とが期 待 され る。本 論 文 で はそれ を交換 す るた め のス キー マ例 の結果 も示
す。 さ らに 、この ツール を用 いて実 際の ソ フ トウェアの開発 を行 ない 、それ に基 づい て統
合 ツール の問題 点 を分 析 しつつ 、 ツール統合 の あ りかた につい て提案 す る。
も く じ
1は じ め に 1.1研 究 の 背 景 と 目 的... ... 1.2本 論 文 の 構 成... ... 1 1 2 2PCTEに よ るCASEツ ー ル 統 合 技 術 2.1CASEツ ー ル 統 合 の 考 え 方... 2.2PCTEと は... ... 2.3PCTEに よ る ツ ー ル 統 合 の 手 順... ... 2.4CASEツ ー ル の デ ー タ イ ン タ フ ェ ー ス の 特 徴...。. 2.5PCTEに よ る デ ー タ 統 合 の 方 法... ... 2.5.1PCTEネ ー テ ィ ブ なCASEツ ー ル の 作 成... 2.5.2CASEツ ー ル の 移 植... 2.5.3リ ボ ス テ ィ ン グ... ... 2.5.4CASEツ ー ル の カ プ セ ル 化... ... 2.5.5EmeraudeTCIの 使 用... 2.6バ ー ジ ョ ン 管 理 の 導 入... .... 3 3 5 6 6 7 7 7 8 8 11 12 3StP/OMTとObjectCenterの 統 合 3.1StP/OMTと の 統 合... 3.1.1StP/OMTの デ ー タ イ ン タ フ ェ ー ス の 特 徴... 3.1.2統 合 の 問 題 点 及 び 解 決 策... 3.1.3ス キ ー マ の 作 成... 3.1.4StP/OMTの 統 合 方 式..。...。... 3.20bjectCenterの 統 合... 3.2.10bjectCenterの デ ー タ イ ン タ フ ェ ー ス の 特 徴... 3.2.2統 合 の 問 題 点 及 び 解 決 策...。..._.. 3.2.3ス キ ー マ の 作 成... 15 15 15 17 18 20 22 22 23 23 1 F "欄 脚 剛一 醐 圏 ■繭 一 圏■■■■ 口■■■■■■■■■ ■■ワ3.2.40bjectCenterの 統 合 方 式... 3.3デ ー タ 統 合 の 指 針... 3.3.1ス キ ー マ の 作 成 指 針... 3.3.2ツ ー ル 作 成 の 指 針...ド 4統 合 ツ ー ル の 評 価 4.1「 家 計 簿 シ ミ ュ レ ー シ ョ ン シ ス テ ム 」 に よ る 開 発 4.1.10MT法 に よ る モ デ リ ン グ... 4.1.2統 合 ツ.__._ル に よ る 実 装... 4.2統 合 ツ ー ル の 効 果 と 問 題 点... 4.2.1統 合 ツ ー ル の 効 果... 4.2.2統 合 ツ ー ル の 問 題 点... 4.3ソ フ ト ウ ェ ア 開 発 の 後 戻 り に よ る 問 題 点... 5お わ り に 謝 辞 参 考 文 献 A「 家 計 簿 シ ミ ュ レ ー シ ョ ン シ ス テ ム 」 の 問 題 BEmeraudePCTE管 理&操 作 マ ニ ュ ア ル B.1PCTEの 起 動... B.1.1serverの 起 動... B.1.2clientの 起 動... B.2PCTEの 終 了... B.3PCTEで のCプ ロ グ ラ ム 実 装 に つ い て... B.3.1ワ ー キ ン グ ス キ ー マ の 変 更... B.3.2オ ブ ジ ェ ク ト の 作 成... B.3.3オ ブ ジ ェ ク ト の 編 集... B.3.4オ ブ ジ ェ ク ト の コ ン パ イ ル... B.3.5オ ブ ジ ェ ク ト の 実 行... B.4ス キ ー マ の 定 義 に つ い て... B.4.1sds_design起 動 ま で の 準 備... B.4.2ス キ ー マ の 定 義... 11 26 27 27 27 30 30 30 34 34 34 36 39 44 46 47 49 52 52 52 53 54 54 54 55 56 56 57 57 57 57 梱蛸 凹 醐 蠣 騨 ■■■■圏 ■■ 闘■ ■繭 ■■■■ ■■■■ 勝
B.4.4 ., ス キ ー マ の コ ン パ イ ル.,... ... ス キ ー マ 図 の ポ ス ト ス ク リ プ ト 変 換... CEmeraudePCTEに よ る ツ ー ル 統 合 技 術 C.1は じ め に... C.2CASEツ ー ル 統 合 の 考 え 方... C.3PCTEに よ る デ ー タ 統 合 の 方 法... C.3.1PCTEネ ー テ ィ ブ なCASEツ ー ル の 作 成 C.3.2CASEツ ー ル の 移 植... C.3.3リ ホ ス テ ィ ン グ... C.3.4CASEツ ー ル の カ プ セ ル 化... C.3.5EmeraudeTCIの 使 用... C.4PCTEの バ ー ジ ョ ン 管 理... C.5お わ り に... 58 .58 sl .61 61 63 63 64 65 66 70 70 .71 111 {阿職 劇 ■臓 剛■■■口■■■■■■圏 ■■国 ■■圏■■■ 勝
図 一 覧
2.1 2.2 2.3 2.4 2.5 2.6 2.7 ト ー ス タ モ デ ル... カ プ セ ル 化 ツ ー ル... contents_getを 使 用 し た カ プ セ ル 化 ツ ー ル の 概 念... PCTE通 知 体 の 概 念...9。 。...。... notifierを 利 用 し た ツ ー ル 統 合 の 概 念... importメ カ ニ ズ ム の 概 念... PCTEの バ ー ジ ョ ン 管 理 の 概 念..。... 4 5 9 10 11 12 13 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 StP/OMTの 概=観... StP/OMTデ ー タ の 流 れ... Stp/OMTの フ ァ イ ル 構 成.。...。. 亀 StP/OMTス キ ー マ... Stp/OMTの 統 合 方 式...。... ObjectCenterの 概 観... ObjectCenterス キ ー マ... ObjectCenterの 統 合 方 式...。 。 16 17 18 19 21 22 24 26 4.1家 計 簿 シ ミ ュ レ ー シ ョ ン シ ス テ ム の オ ブ ジ ェ ク ト モ デ ラレ... 4.2家 計 簿 シ ミ ュ レ ー シ ョ ン シ ス テ ム の 動 的 モ デ レレ...。. 4.3家 計 簿 シ ミ ュ レ ー シ ョ ン シ ス テ ム の 機 能 モ デ ラ レ... 4.4StP/OMTで 作 成 し た オ ブ ジ ェ ク ト モ デ ル 図... 4.5StP/OMTの ク ラ ス テ ー ブ ル エ デ ィ タ... 4.6StP/OMTで 生 成 し た イ ン タ フ ェ ー ス フ ァ イ ル の 例(balance-happened.h). 4.7StP/OMTで 生 成 し た 実 装 フ ァ イ ル の 例(balance.11appened.c)... 4.8ソ フ ト ウ ェ ア 開 発 の 流 れ... 4.9変 更 の 影 響 の 伝 搬... 4.10依 存 関 係 を 考 慮 し た 新 し い ス キ ー マ... 31 32 33 35 36 37 38 40 41 43 1V ^醐 醐嘲劇■圏劇■ ■■■日■■■■圏■■■圏■■膨B.2 B.3 Createobjectダ イ ア ロ グ... sds.designで 用 い ら れ る ア イ コ ン... C.1ト ー ス タ モ テ レ レ... C.2カ プ セ ル 化 の 概 念... C.3リ ボ ス テ ィ ン グ の 概 念... C.4contents.get関 数 を 用 い た カ プ セ ル 化 ツ ー ル の 概 念.。... C.5カ プ セ ル 化 ツ ー ルeviの プ ロ グ ラ ム...。... C.6PCTE通 知 体 の 概 念...,... C。7Stp/OMTの 統 合 方 式... 59 60 62 62 65 66 67 68 69 V '甲一 ■■■■■■膨
表 一 覧
2.1contents操 作 関 数 と そ れ に 対 応 す るfile作 関 数...8 2.2PCTEの バ ー ジ ョ ン 操 作...。...9...14 3.1StP/OMTで 使 用 す る オ ブ ジ ェ ク ト の 型...20 3.20bjectCenterで 使 用 す る オ ブ ジ ェ ク ト の 型...25 3.30bjectCenterで 使 用 す る キ ー...25 3.40bjectCenterで 使 用 す る 型 参 照 子...25 C.1contents操 作 関 数 と そ れ に 対 応 す るfile作 関 数...64 C.2PCTEの バ ー ジ ョ ン 操 作...71 V1第1章
は じめ に
1.1研
究 の 背 景 と 目 的
近年 の ソフ トウェア開発 で は、ソ フ トウェアの品質 向上及 び開発 期 間の短縮 ・開発 要員
の削減1の た めにCASE(Computer-AidedSoftwareEngineering)ツ
ール を導入 す る機会 が
増 えて きてい る。 しか しなが ら、現在一般 的 に使用 されて いるCASEツ
ール は ソフ トウェ
ア生 産プ ロセ ス(仕 様 分析 →設 計→ コー デ ィング→デ バ ッグ)全 体 を支援 してい る訳 では
な く、それ ぞれ の作業 を支援 してい るに過 ぎない。すなわ ち、それ 自身のCASEツ
ール で
閉鎖 的 な環境 を構 築 してい る ものが 多 く、それ ぞれ のCASEツ
ール で生産 され るデー タ
を、直接 下流 工程 のCASEツ
ール で利 用 す るのが 困難 な場合 が多 い2。 下流工程 のCASE
ツール で使用 す るため には、デー タの フォー マ ット変換 ツール を作 成すれ ば良 いが 、ツー
ル 毎 に変 換 ツール を作成 しなけれ ば な らず 、す べ てのCASEツ
ール でデー タを利 用す る
ことは事 実上不可能 で ある。また 、あ る特定 のCASEツ
ール にお いては 、現在使 用 してい
る環境 で上流 工程 また は下流 工程 の ツール を使 用で き る とい った、ツール 間 の連 動 を考慮
した ものが存 在 す るが 、全 て のCASEツ
ール が連 動 で き る とい った汎用性 が あ る訳 で は
ない 。 さ らに 、下流 工程 のCASEツ
ール か ら上 流 工程 のCASEツ
ール に戻 って作業 を行
な うとい った 、作業 の後戻 りを考 慮 して い るCASEツ
ール は ほ とん ど見受 け られ ない3。
この よ うな問題 を解 決す るため には、デー タ統合 ・デー タの格 納 と管理 ・プ ログ ラムの
実行 ・ツール とユーザ 間の コ ミュニケー シ ョン ・ツール相 互 間の コ ミュニケー シ ョン とい っ
た機能 を含 んだ共通 の枠組(フ レー ムワー ク)が 必 要 にな る[1]。PCTEは
、開放型 リポ ジ
1開 発 費 用 の 削 減 が 主 な 目的 で あ る と考 え られ る。 aCDIF(CASEDataInterchangeFormat)と 呼 ば れ る 異 な る ベ ン ダ か ら提 供 され る ツ ー ル 間 でCASE情 報 を 交 換 す る た め の フ ォー マ ッ トがEIA(ElectricIndustriesAssociation)か ら提 案 され て い る が 、 ま だ 普 及 して い な い 。 3最 近 の い くつ か の ツー ル に は、 こ の よ うな 機 能 を 持 った も の も見 受 け られ る よ うに な って き た が 、ま だ 少 数 で あ る 。 1孔
…'一
トリのた めの共通 ツール イン タフェース標準 で あ り、CASEツ
ール が 高度 な統合 性 と可搬
性 を持 つ こ とを可能 にす るた めの 、共通 で標 準的 なサー ビス群 を定義 してい る。PCTEを
ツール統合 の フレー ム ワー クに採用 す る ことに よ り、デー タ統合 やデ ー タの格納や 管理 と
い った こ とが容 易 に行 な うこ とが で きる よ うにな る。
本研 究 では 、既存 のCASEツ
ール のデー タをPCTEを
用 い て統合 を行 な うた めの統合
技術 を開発す る と共 に、 ツール統 合 の指針 を提案 す る こ とを 目標 と してい る。
1.2本
論 文 の 構 成
本 稿 で は 、 第2章 でPCTEに よ るCASEツ ー ル 統 合 技 術 、 第3章 でStP/OMTと
ObjectCenterの ツ ー ル 統 合 、 第4章 で 統 合 ツ ー ル の 評 価 に つ い て 述 べ 、 第5章 で ま と
め る 。
2
第2章
PCTEに
よ るCASEツ
ー ル 統 合 技 術
2.1CASEツ0ル
統 合 の 考 え 方
CASEツ ー ル の 統 合 法 に は 、3種 類 の 方 法 が あ り、そ れ ぞ れ 以 下 の よ う な 特 徴 を 持 っ[2]。 1.デ0タ 統 合:ツ ー ル と 環 境 の 間 で の 情 報 の 共 有 2.制 御 統 合:環 境 内 の 個 々 の ツ ー ル 間 の 協 調 と通 信 制 御 の 共 有 3.表 示 ・操 作 統 合 ε環 境 内 で の ツ ー ル に よ る ユ ー ザ イ ン タ フ ェ ー ス の 共 有 こ の う ち 表 示 ・統 合 操 作 に 関 して は 、UNIXで 使 用 さ れ て い るXウ イ ン ド ウ シ ス テ ム 等 の ユ ー ザ イ ン タ フ ェ ー ス を 採 用 す れ ば 、 容 易 に 統 合 す る こ と が 可 能 で あ る 。 し か し な が ら 、 残 りの デ ー タ 統 合 や 制 御 統 合 に 関 し て は 、新 た な プ ラ ッ ト フ ォー ム を 採 用 しな け れ ば 統 合 す る こ と は で き な い 。 ECMA(EuropeanComputerManufacturersAssociation)とNIST(NationalInstituteof StandardsandTechnoligy)は 、「トー ス タモ デ ル 」 と呼 ば れ るCASE環 境 の 枠 組(フ レ ー ム ワ ー ク)を 提 唱 した 。図2.1に そ の 概 要 を 示 す 。 こ の モ デ ル は 、前 方 にUserInterfaceServices と呼 ば れ る 表 示 ・操 作 を 統 合 し た も の が 、 ま た 後 方 にObjectmanagementServicesと 呼 ば れ る デ ー タ を 統 合 し た も の が 存 在 して お り、 そ の 間 に はToolSlotsと 呼 ば れ る 部 分 が 存 在 す る 。 こ のToolSlotsは 、 トー ス タ に パ ン を 差 し込 む の と同 様 に 様 々 な ツ ー ル を 差 し込 む こ と に よ っ て 、UserInterfaceServicesとObjectmanagementServicesを ツ ー ル が 使 用 す る こ と が で き る こ と を 示 し て い る 。 す な わ ち 、 共 通 の 表 示 ・操 作 及 び デ ー タ を ツ ー ル で 共 有 す る こ と が 可 能 で あ る こ と を 示 し て い る 。 ま た 、 ツ ー ル の 連 動 と い っ た よ うな ツ ー ル 間 の コ ミ ュ ニ ケ ー シ ョ ン の た め に 、CommunicationServicesが 用 意 され て い る 。 こ れ は 、 制 御 統 合 が 可 能 で あ る こ と を 示 し て い る 。 こ の 状 態 で は 、ToolSlotsで 使 用 す る ツ ー ル は 、CASE環 境 の 枠 組 に 準 じ た ツ ー ル を 使 用 し な け れ ば な ら な い が 、 図2.2に 示 す よ う に 、CASE環 境 の 枠 組 に 準 じて い な い ア ブ 3ObjectManagementServices
ToolSlots ProcessManagementServices UserInterfaceServices Window Window W直ndo脚 CommunicationServices 図2.1:トー ス タモデル
4 `髄一 噸 糊 醐 ■一 ■闇 胴 ■■■圃 ■闘■ ■闇■■■■ ■■■■ 勝Process Management and UserInterface ぺρδし 憩◎ §♂
謡
Encapsulator Object Management Intertace ToolSlots Communication Interface 図2.2:カ プ セ ル 化 ツ ー ルリケー シ ョン ツール をCASE環
境 の枠 組 で使用 で き るよ うにす るカプセ ル化 技術 を使用
す る こ とで 、既 存 のアプ リケー シ ョン も同 じCASE環
境 で使用 す る こ とがで き る よ うに
なる。
この よ うな 、CASE環
境 を実現 す るた めの フ レー ム ワー クの一 つにPCTEが
存在 す る。
2.2PCTEと
は
PCTEと は 、 可 搬 型 共 通 ツ ー ル 環 境(PortableCommonToolEnvironment)の 略 で 、 開 放 型 リ ポ ジ ト リ の た め の 共 通 イ ン タ フ ェ ー ス 標 準 で あ り、CASEツ ー ル が 高 度 な 統 合 性 と 可 搬 性 を 可 能 に す る た め の 共 通 で 標 準 的 な サ ー ビ ス 群 を 提 供 し て い る 。 こ こ で リポ ジ ト リ と は 、仕 様 書 や ソ ー ス コ ー ド、CASEツ ー ル 生 産 物 等 「オブ ジ ェ ク ト」 と 呼 ば れ る ソ フ ト ウ ェ ア 開 発 で 必 要 な デ ー タ を 格 納 し て お く場 所 で あ る 。 こ れ ら の オ ブ ジ ェ ク ト は 、 「ス キ ー マ 」 と 呼 ば れ る オ ブ ジ ェ ク ト情 報 と オ ブ ジ ェ ク ト 間 の 関 連 情 報 を 記 述 した も の に 従 い リ ポ ジ ト リ に 格 納 され る 。 そ の た め 、PCTEでCASEツ ー ル を 統 合 す る た め に は 、 目標 のCASEツ ー ル の オ ブ ジ ェ ク トの 関 係 を 表 現 した ス キ ー マ を 作 成 す る 必 要 が あ る 。PCTEで 用 い られ る ス キ ー マ は 、 ス キ ー マ 定 義 セ ッ ト(SDS:SchemaDefinition Set)と 呼 ば れ て お り、 ア プ リ ケ ー シ ョ ン 毎 に 定 義 し使 用 す る 。 こ の 時 使 用 し て い るSDS を 作 業 ス キ ー マ と 呼 ぶ1。PCTEで は 、 作 業 ス キ ー マ に含 ま れ て い な い オ ブ ジ ェ ク トは 参 照 で き な い と い う特 徴 が あ り、 これ は 作 業 に 不 要 な 情 報 を 隠 す(リ ポ ジ ト リ の フ ィル タ リ 1PCTE自 体 もス キーマ で表 現 され てお り、このスキー一マは必ず作業スキーマに加え られ ていなければ な らない 。 5ン グ)と い う点 で 優 れ て い る 機 能 で あ る 。 ま た 、CASEツ ー ル を 統 合 す る た め の 共 通 で 標 準 的 な サ ー ビ ス 群 は 、Ada・C言 語[4]・ C++で プ ロ グ ラ ム で き る よ うに 定 義 され て お り、今 回 用 い たEmeraudePCTE2で はC言 語 も し くはesh3を 用 い てCASEツ ー ル の 統 合 プ ロ グ ラ ム を 作 成 す る こ と が で き る 。 2.3PCTEに よ る ツ ー ル 統 合 の 手 順 PCTEを フ レー ム ワ ー ク に し た ツ ー ル 統 合 を 行 な うた め の 手 順 の 概 要 を 以 下 に 示 す 。 1.ス キ ー マ の 作 成 ツ ー ル が 用 い て い る デ ー タ モ デ ル を ス キ ー マ で 表 現 す る 。PCTEで は 、sds_design と い う グ ラ フ ィ カ ル な ツ ー ル が 用 意 さ れ て お り、 これ を 用 い て ス キ ー マ の 描 写 を 行 な う。 そ の 後 、作 成 した ス キ,..._.マの コ ンパ イ ル を 行 な い 、PCTEのSDSと して 使 用 で き る よ う に す る 。 2.統 合 ツ ー ル の 作 成 CASEツ ー ル とPCTEの デ ー タ を 統 合 す る た め の ツ ー ル を 作 成 す る 。 次 の 節 以 降 で は 、2のCASEツ ー ル とPCTEの デ ー タ を 統 合 す る ツ ー ル の 実 現 方 法 に つ い て 述 べ る 。 2.4CASEツ ー ル の デ ー タ イ ン タ フ ェ ー ス の 特 徴
PCTEを 用 い てCASEツ ー ル の デ ー タ 統 合 を 行 な う に は 、 統 合 す るCASEツ ー ル の
デ ー タ イ ン タ フ ェ ー ス を 知 る 必 要 が あ る 。 す な わ ち 、 ど の よ う な 方 法 で デ ー タ を 蓄 え 、 ま た そ の デ ー タ を ど の よ う に ア ク セ ス し て い る か に つ い て で あ る 。 こ の こ とが 分 か ら な い と 、CASEツ ー ル の デ ー タ を 統 合 す る こ と は で き な い 。 1.UNIXフ ァ イ ル シ ス テ ム の 使 用 デ ー タ を 蓄 え る 部 分 に 、UNIXフ ァ イ ル シ ス テ ム の デ ィ レ ク ト リ と フ ァ イ ル の 構 成 を そ の ま ま 利 用 し て い る 。 シ ス テ ム 構 成 が 簡 単 な 分 、 ツ ー ル の デ ー タ管 理 は 複 雑 な こ と を 行 な う こ と は で き な い が 、 ユ ー ザ の デ ー タ ア クセ ス は 容 易 に 行 な う こ と が で き る 。 2フ ラ ンスのEmeraude社 が開発 したPCTEでPCTE1 .5に 基づ い てい る。 3EmeraudePCTEで 使用 され るシ ェル 。 \ 6 掴岬一 ■■■■■隠
デ ー タを蓄 える部分 に、独 自のデー タベ ース を使 用 してい る。デ ー タベー スにはデ ー
タベー ス管理 システ ム(DBMS)を
使用 してい るこ とが多い 。そ の理 由 と して 、1.複
数 のユーザ が同時 にデー タベー ス にア クセ スで き、共用 でき る。2.SQL言
語 等 のア
プ リケー シ ョンプ ログ ラム を使用 して デー タの管理 がで き る。3.(閉 じ られ た 中で吟
デ ー タの共用 がで きる。 とい う点が あげ られ る[3]。その ため、ユーザ がデー タにア
クセ スす るた めには 、SQL等
の言語 を使 ってデ ー タベー スに問い合 わせ る形 になる。
3.1と2の
複 合
1のUNIXフ
ァイル システ ム と2の デ ー タベー ス の双 方 を用 い てい る。先 に あげ た
それ ぞれ の利 点 を生 か して 、個人 のデー タは1のUNIXの
ファ イル シス テム を利 用
して、また グル ープ のデー タは2の デ ー タベ ース を利 用 して管理 す るよ うなCASE
ツール も存在 す る。
2.5PCTEに
よ る デ0タ
統 合 の 方 法
PCTEに
よるデー タ統合 の実現 には 、統合 す るCASEツ
ール の制約 の ため に さま ざま
な方法 が考 え られ る。以 下 に統合 方針 とそ の長所 ・短所 を示す 。
2.5.1PCTEネ
ーテ ィブ なCASEツ
ール の作成
PCTEで
は 、ツール 作成 の ためのプ ログ ラ ミング環境5が 用意 され てい る。それ らを用
い て新 た にPCTE上
で動 くCASEツ
ール を作成す る。 この方 法は実行 速度や 効率 の面 か
ら、最 も良い統合 方法 であ る。 しか しなが ら、新 たに ツール を作成 す るの と同等 の労力 が
必要で あ り、また現在 使用 してい る ツール を放棄 す る とい った面 か らはあま り現実 的な方
法 ではない 。
2.5.2CASEツ ー ル の 移 植 PCTEで は 、 リ ポ ジ ト リ操 作 の た め に 表2.1のcontents操 作 関 数 が 用 意 さ れ て い る 。 これ ら の 関 数 は す べ て 、unixのfile操 作 関 数 に 対 応 した 物 が 用 意 され て お り、 統 合 す るCASE ツ ー ル の フ ァ イル 操 作 に 関 す る 部 分 をPCTEの コ ン テ ン ツ 操 作 関 数 に 置 き 換 え て 使 用 す る こ と が で き る 。 す な わ ち 、 フ ァ イル 操 作 関 数 をPCTEの コ ン テ ン ツ 操 作 関 数 に 置 き 換 4こ こで言 う 「閉 じ られ た 中」 とは、ツールの連動 を考慮 して開発 され たアプ リケーシ ョンの ことであ る。 5EmeraudePCTEで はeshとC言 語 の2つ の環 境 が用意 され て い る。 7 一 心 ぐげ一 剛脚輌曜 削■嘲 闘 ■ ■鰯■■■■ 闘圏■ 圏 ■闘■ ■■■屡表2.1:contents操 作 関 数 と そ れ に 対 応 す る 丘1e操 作 関 数 contents操 作 関 数 contents_close contents-copy.from-foreign-system contents-.copyto.foreign」3ystem contents_get_position contentsopen contentsread contents_seek contents」3et_position contentswrite file操 作 関 数 fclose ftell fopen fread fseek fseek fwrite え て 再 コ ンパ イル を 行 な う こ と に よ っ てPCTEの リ ポ ジ ト リ を 直 接 操 作 す る こ と が で き る よ う に な る 。 し か し な が ら 、 こ の 方 法 で はCASEツ ー ル の ソ ー ス コ._..ドが 必 要 で あ り、 ソ ー ス コ ー ド が ほ と ん ど公 開 され て い な い 商 用 のCASEツ ー ル で は 適 応 す る こ とが で き な い 。 2.5.3リ ボ ス テ イ ン グ 通 常unix上 で 動 作 す る 実 行 フ ァ イル は 、 実 行 時 に 必 要 な 全 て の 資 源 を 持 っ て い る の で は な く、 必 要 なlibralyを 実 行 時 に リ ン ク し て い る 。 そ こ で 、 実 行 時 に フ ァ イ ル 入 出 力 に 関 す るUNIXのsharedlibraryをPCTEのcontents入 出 力 に 関 す るsharedlibraryに 置 き換 え て 実 行 す る こ と に よ っ て 、PCTEの リ ポ ジ ト リ に ア クセ ス す る こ と が で き る よ う に な る 。 し か し な が ら 、 こ の 方 法 で は 、Dynamicにlibraryと リ ン ク さ れ て い る ツ ー ル の み で 使 用 で き 、Staticに リ ン ク され て い る ツ ー ル で は 使 用 で き な い 。 こ の 場 合 は 、 実 行 フ ァ イル を 作 る 際 の リ ン ク 時 に 、PCTEの ラ イ ブ ラ リ に 置 き 換 え て リ ン ク す る 必 要 が あ る が 、 元 の ツ ー ル の オ ブ ジ ェ ク ト コ ー ド が 必 要 に な る 。 2.5.4CASEツ ー ル の カ プ セ ル 化
既 存 のunixツ ー ル が 、PCTEの リ ポ ジ ト リ を 操 作 で き る よ う に 用 意 を し た 後 にunix
ツ ー ル を 実 行 す る 方 法 を カ プ セ ル 化(encapsulation)と い う。 こ の 方 法 は 、 今 ま で の 方 法
に 比 べ 効 率 は 悪 い が 、 も と の ツ ー ル の 実 行 フ ァ イル の み 存 在 す れ ばPCTEと の 統 合 が 可
能 で あ る 。 そ の た め 、 こ の カ プ セ ル 化 に は い くつ か の 方 法 が あ る 。
8
PCTEprocess PCTEtool;
苓
●exec(UNIXpath)PCTE
objectaccess
iUNIXtool り:CASEtool: fileaccess 働\ .…⑤c。tents』et(nCTE』athUNIXuNlxprocess
PCTEobjectbase
UNIXfilesystem 図2.3:contents-getを 使 用 し た カ プ セ ル 化 ツ ー ル の 概 念 1.contents.get関 数 の 使 用 PCTEで 用 意 さ れ て い るcontents.get関 数 を 用 い る こ と に よ っ て 統 合 を 行 な う こ と が で き る 。 図2.3にcontents.get関 数 を 用 い た カ プ セ ル 化 ツ ー ル の 概 念 を 示 す 。co皿tentsget関 数 は 、PCTEの パ ス 名 をUNIXの パ ス 名 に 変 換 す る こ と が で き る6。
カ プ セ ル 化 ツ ー ル は 、
(a)使 用 す るフ ァイル名 をPCTEの
オブ ジ ェ ク トのパ ス名 か らUNIXの
ファ イル
のパ ス名 に変換 す る。
(b)カ プセル化 ツール の内部 か らUNIXの
フ ァイル名 を引数 に して実行 す る。
とい う手順 で作業 を行 な うこ とにな る。 この よ うな作 業手順 か らcontents.get関 数
を用 いたカプセル 化 ツール は 、エデ ィター等 の単一 の ファイル を操作 し、また実行 時
フ ァイル名 を引数 に して実行 で きる ツール が最 も適 してい る。しか しなが ら、PCTE
の パ ス名 が予 め明 らかに な ってい るツール 以外 で は使 用 す るのが困難 で ある。
2.CASEツ ー ル の イ ン タ フ ェ ー ス プ ロ グ ラ ミ ン グ 言 語 の 使 用 CASEツ ー ル の デ ー タ ベ ー ス を 操 作 す る た め の イ ン タ フ ェ ー ス プ ロ グ ラ ミ ン グ 言 語6PCTEの オブ ジ ェ ク トはEmeraudePCTEの 実装 上UNIXの デ ィレク トリとファイルで実 現 され て い
る。そ のた め、UNIX側 か らPCTEの オブ ジ ェ ク トを操 作 す る こ とが可能 とな ってい る。
9
PCTE process 3×1 ① メッセー ジキ ュー の生 成 ② オ ブ ジェ ク トの監 視 ③ 通知
message
queue
object
図2.4:PCTE通 知 体 の 概 念がCASEツ
ール に用 意 され て い る場合 が ある7。 これ を利 用 してPCTEリ
ポジ トリ
とCASEツ
ール デー タベ.___ス
間のデー タのや りと りを行 な う。 この方法 は、使 用 す
るイン タフェー スプ ログ ラ ミング言語 の操 作範囲 の限界 で制 限を受 け る ことにな る。
3.noti且erの 使 用 PCTEで は 、 特 定 の オ ブ ジ ェ ク トの 監 視 の た め に 通 知 体(noti丘er)を 生 成 す る こ と が で き る 。 図2.4にPCTE通 知 体 の 概 念 を 示 す 。PCTEプ ロ セ ス が 通 知 体 用 の メ ッ セ ー ジ キ ュ ー を 生 成 す る こ と に よ っ て 、 特 定 の オ ブ ジ ェ ク ト の 変 更 や 移 動 ・削 除 等 の 監 視 す る こ と が 可 能 に な る 。 こ れ を リ ポ ジ ト リ 更 新 の ト リ ガ ー に す る 。 同 様 の 機 能 がCASEツ ー ル 側 に も 存 在 す れ ば 、notifierを 利 用 し た ツ ー ル 統 合 が 可 能 で あ る 。 図 2.5にnotifierを 利 用 し た ツ ー ル 統 合 の 概 念 を 示 す 。 カ プ セ ル 化 ツ ー ル で は 、notifier を 生 成 し て オ ブ ジ ェ ク ト を 監 視 す る 操 作 を 行 な っ た 後 にCASEツ ー ル を 実 行 す る こ と と な る 。 4.シ ン ボ リ ッ ク リ ン ク の 使 用(export/importmechanism)8 既 に 存 在 す るPCTEの オ ブ ジ ェ ク ト を 操 作 す る場 合 、contents-get関 数 等 を 使 用 して 、UNIX側 か らPCTEの オ ブ ジ ェ ク トに シ ン ボ リ ッ ク リ ン ク を 張 る と 、PCTEの
オ ブ ジ ェ ク ト を 直 接 操 作 す る こ と が で き る 。 図2.6にimportメ カ ニ ズ ム の 概 念 を 示
す 。 カ プ セ ル 化 ツ ー ル で は 、UNIX側 か らPCTE側 へCASEツ ー ル が 使 用 す る オ
ブ ジ ェ ク ト に 対 し シ ン ボ リ ッ ク リ ン ク を 作 成 し た 後 、CASEツ ー ル を 実 行 す る と い
う操 作 を 行 な う。 先 に 紹 介 したnoti且erを 利 用 し た も の の よ う に 、PCTE側 ・UNIX
7今回使 用 したstP/OMTに はSQL言 語が 、ObjectCenterに はCLIPC(CenterlineInter-ProcessCom-munication)が 用 意 されて い る。
8この方 法 は 、PCTE上 のデレミック環境 を使用する際に用い られ ている方法である。
10
notifier
一
trigger copytool ・.watch .` 叩datePCTE
、 copy copy全
一
copytool 叩date \ 、 CASE toa置 '・ ・,watch trigger PCTE UNIX r notifier 、 図2.5:notifierを 利 用 した ツ ー ル 統 合 の 概 念 側 双 方 に デ ー タ が あ る わ け で は な く、PCTEの リ ポ ジ ト リ を 直 接 利 用 し て い る の で 通 常 と 同 様 に 使 用 す る こ と が で き る 。 しか し な が ら 、新 た に オ ブ ジ ェ ク トが 生 成 さ れ る 場 合 は 、PCTE側 に オ ブ ジ ェ ク ト を 生 成 す る こ と が で き な い 。exportmechanismは こ れ と反 対 に 、UNIXの リ ポ ジ ト リ に ア クセ ス す る た め にPCTE
側 か らUNIX側 に シ ン ボ リ ッ ク リ ン ク を 張 る 方 法 で あ る 。 2.5.5EmeraudeTCIの 使 用 TCIサ ー バ ー を 利 用 し て 、 メ ッ セ ー ジ の 交 換 を 行 な い ツ ー ル の 統 合 を 行 な う。 基 本 的 にnotifierを 利 用 し た 統 合 と 考 え 方 は 一 緒 で あ る が 、TCIサ ー バ ー と い う メ ッセ ー ジ 交 換 サ ー バ ー を 介 して 行 な う。 ツ ー ル 連 動 と い っ た よ う な 制 御 統 合 を 行 な う 際 に 利 用 す る と 、 高 度 な 統 合 が 可 能 で あ る 。 こ の よ う な 概 念 を 拡 張 し た も の にCORBA(CommonObject RequestBrokerArchitecture)が あ る 。 11 …一 ■■■■■■陰
PCTE
Object
WorkingDirectly SymbolicLink ccess SymbolicLink Access SymbolicLinkCASE
tooe
PCTE UNIX 図2。6:importメ カ ニ ズ ム の 概 念2.6バ
ー ジ ョ ン管 理 の 導 入
ソ フ ト ウ ェ ア 開 発 で は 継 続 的 な 変 化 を 伴 うた め 、 常 に オ ブ ジ ェ ク トの 変 化 を 追 跡 す る こ と が 必 要 に な る 。 す な わ ち 、 常 に 最 新 の バ ー ジ ョン を 特 定 す る 、 あ る い は 特 定 の バ ー ジ ョ ン ま で 戻 っ て 作 業 を や り直 す とい っ た こ と が 必 要 と な っ て くる 。 ま た 、 そ の オ ブ ジ ェ ク ト は た だ 一 つ で は な く、 例 え ば ソ ー ス フ ァ イル や ド キ ュ メ ン ト と い っ た 複 数 の オ ブ ジ ェ ク ト か ら成 り立 っ て お り、 そ れ らが ど の オ ブ ジ ェ ク トに 所 属 して い る か と い っ た よ うな 構 成 を 管 理 す る 必 要 も あ る 。 こ の よ う な 版 管 理 ・構 成 管 理 機 能 が 、 使 用 す るCASEツ ー ル で 提 供 され て い る 場 合 は 良 い が 、 提 供 され て い な い 場 合 は 、CASEツ ー ル を 使 用 す る ユ ー ザ が SCCS(SourceCodeControlSystem)やRCS(RevisionControlSytem)と い っ た ツ ー ル を 用 い て 管 理 し な け れ ば な ら な い 。 そ の た め 、PCTEで は オ ブ ジ ェ ク ト管 理 シ ス テ ム の 一 部 と し て バ ー ジ ョ ン 管 理 が 用 意 さ れ て い る 。PCTEの バ ー ジ ョ ン 管 理 は 、様 々 な 段 階 に お い て 作 成 され た 複 数 の コ ピ ー か ら な り、 そ れ ら は 「先 行(predecessor)・ 後 続(successor)バ ー ジ ョ ン 」 とい う関 係 で 結 ば れ て い る 。 「先 行 バ ー ジ ョン 」 は 「後 続 バ ー ジ ョ ン 」 よ り前 で 作 成 され た バ ー ジ ョン で あ り、 安 定 化(stable)さ れ た 変 更 不 可 能 な バ ー ジ ョ ン で あ る 。 これ ら の バ ー ジ ョ ン は 「バ ー ジ ョ 12 一一嶺一 ■■■■■■■■膨1.successor --Version1・i -1.predecessor Verson2-t
謬
諺 〆♂
少
i.suxessor i.successor -Version2-2 -1.predecessor Version1-2 1.predecessor i.successor Veralon1.3J(Version1-4 -1.predecessor 8塁 ㌔ ・つblec象5・9ρ 'ObJects' 9警 ㌔ つbjects●go 言, .㍉ つbjects`99 図2.7:PCTEの バ ー ジ ョ ン 管 理 の 概 念 ン グ ラ フ 」 を 構 成 し て お り、 こ の グ ラ フ の 中 で 先 行 ・後 続 関 係 を 表 す リ ン クで 結 ば れ て い る9。 こ れ ら を た ど っ て い く こ と で 、 オ ブ ジ ェ ク トの 履 歴 を 定 め る こ と が で き る(図2.7参 照)。 そ こ で 、 構 成 管 理 を す る オ ブ ジ ェ ク ト と プ ロ グ ラ ム ソ ー ス や ド キ ュ メ ン ト と い っ た 複 数 の オ ブ ジ ェ ク トの 間 で リ ン ク を 生 成 す る こ とで 、PCTEで は 版 ・構 成 管 理 を 行 な う こ と が 可 能 と な る 。 と こ ろ で 、PCTEの オ ブ ジ ェ ク ト管 理 シ ス テ ム で は 、 リ ン ク名 の 自動 的 な 名 前 付 け の 機 能 を 有 し て い る 。 これ は 、+と い う特 別 な 値 を リ ン ク名 に 使 用 す る こ と で 、 最 大 の 整 数 値 を 暗 示 す る も の で あ る 。 す な わ ち 、version.1.objectとversion.2.objectと い う2っ の オ ブ ジ ェ ク トが 存 在 し て い た 場 合 、version.+.objectと い うの はversio皿.2.objectを 指 示 し て い る 。 ま た 、++と い う値 も 存 在 し 、 これ は 最 大 の 整 数 値 に1を 足 し た 整 数 値 を 暗 示 し て い る 。 す な わ ち 、 先 ほ ど の 例 でversion.++.objectはversion.3.objectを 指 示 し て い る こ と に な る 。 これ ら の 機 能 は 、バ ー ジ ョ ン 管 理 を 行 な う際 に 最 新 の オ ブ ジ ェ ク ト に ア ク セ ス す る (+の 場 合)、 新 しい バ ー ジ ョ ン を 生 成 す る(++の 場 合)な ど の 操 作 に 用 い る こ とが で き る 。 表2.2にPCTEが 提 供 す る バ ー ジ ョ ン 管 理 の 機 能 を 示 す 。 こ の う ち 、version-snapshot とversionseviseは 新 し い バ ー ジ ョ ン の コ ピ ー を 作 成 す る 操 作 で あ り、 こ れ ら の 操 作 が 行 な わ れ る こ と に よ っ て 初 め て バ ー ジ ョ ン 付 け が 行 な わ れ る 。 こ れ ら の 機 能 の 違 い は 、 91 .predecessor,2.successorと い う よ う な リ ン ク 名 で 結 ば れ て い る 。 13 一一一 ■■國口■圏圏■■■■■■圏■勝表2.2:PCTEの バ ー ジ ョ ン 操 作 versionadd_predecesor versionsemove_predecesor versionsevise version_snapshot versiontest_ancestry version_test_descent
オブ ジ ェ ク トに新 た な先行 バ ー ジ ョンを付 け加 える
バー ジ ョング ラフか ら先行 バ ー ジ ョンを取 り除 く
オブ ジ ェク トの変 更可能 なバー ジ ョンを生成 す る
オブ ジ ェク トの安 定 なバ ージ ョンを生成 す る
あ るオブ ジ ェ ク トに対 して別 のオブ ジェ ク トが先祖
バー ジ ョンで あ るか調 べ る
あ るオブ ジ ェク トに対 して別 の オブ ジェ ク トが子孫
バー ジ ョンで あるか調べ る
●version」snapshot 一 つ の オ ブ ジ ェ ク トの 安 定 な 先 行 バ ー ジ ョ ン を 作 成 す る 。 作 成 さ れ る バ ー ジ ョ ン は 、 ス ナ ッ プ シ ョッ ト を 行 な っ た 時 点 の オ ブ ジ ェ ク トの コ ピ ー で あ る 。 原 版 の オ ブ ジ ェ ク ト は 変 更 可 能 な ま ま 残 され 、 ス ナ ッ プ シ ョッ ト を と っ た オ ブ ジ ェ ク ト の 方 が 安 定 化 され る 。 こ れ らの オ ブ ジ ェ ク トの 間 に 、先 行 ・後 続 バ ー ジ ョ ン の 関 係 が 生 成 す る 。 ●VerS10n∫eVISe一っ の オブジ ェ ク トの変 更可 能 な後続 バ ー ジ ョンを作成 す る
。作成 され るバ ー ジ ョ
ンは改訂(revise)を 行 な った 時点 のオブ ジ ェ ク トの コ ピーで あ る。原 版 のオブ ジ ェ
ク トは安 定化 され 、改訂 を行 な ったオブ ジ ェ ク トの方 は変更 可能 で ある。 これ らの
オブ ジ ェク トの間 に 、先行 ・後続 バー ジ ョンの関係 が生成 す る。
であ り、図2.7の バ ー ジ ョンの関係 は 、改訂 で行 な った もので ある。
バー ジ ョン管理 の機 能 を持 ってい ないCASEツ
ール を統合 す る場 合 、バー ジ ョン管理
をカプセル 化 ツール の中で行 な うことで 、ユーザ はバー ジ ョン管理 に対 し最小 の注意 を払
えば良 い よ うにな る。すな わ ち、
・最 新 のバー ジ ョンで作業 が で きる
PCTEの
方 でバ ー ジ ョンを管 理 してお り、ユー ザ は特 に意識 しな くて も最新 のバ ー
ジ ョンで作業 がで き る。
・容 易 に以前 の バー ジ ョンに戻 る ことがで きる
作業 の節 目で改訂 を とってお くこ とで 、そ の吠 態 まで戻 るこ とが容 易 にで き る。ま
た 、途 中か ら複数 のバ ー ジ ョンで作 業 を行 な うこ とも可能 であ る。
とい った機 能 を追加 す る こ とが可能 にな る。
14 晶輔 禰鯛劇 鵬■圏■國■■■國■■■■■■■■圏『第3章
StP/OMTとObjectCenterの
統 合
3.1Stp/OMTと
の 統 合
StP/OMT(SoftwarethroughPictures/ObjectModelingTechnique)は 、 グ ラ フ ィ カ ル な ユ ー ザ イ ン タ フ ェ ー ス を 通 じ て オ ブ ジ ェ ク トの モ デ ル を 分 析 ・定 義 す る こ と を サ ポ ー ト す る 上 流 工 程 のCASEツ ー ル で あ る 。StP/OMTは 、 オ ブ ジ ェ ク トモ デ ル 図 か ら プ ロ グ ラ ム コ ー ド1の 一 部 を 自動 生 成 す る こ と が 可 能 で あ る 。 3.1.1StP/OMTの デ ー タ イ ン タ フ ェ ー ス の 特 徴 第2章 で述 べ た よ うに 、PCTEを 用 い て ツ ー ル 統 合 を 行 な うに は 、統 合 す るCASEツ..._..ル の デ ー タ イ ン タ フ ェ ー ス を 知 る 必 要 が あ る 。 図3.1にStP/OMTの 概 観 を 示 す 。StP/OMT は 、 リポ ジ ト リブ ラ ウ ザ 、 オ ブ ジ ェ ク ト ・動 的 ・機 能 モ デ ル エ デ ィ タ、 ク ラ ス ・状 態 テ ー ブ ル エ デ ィ タ 等 か ら成 り立 っ て お り、 これ ら はStPデ ス ク ト ッ プ と い う グ ラ フ ィカ ル な ブ ラ ウザ で 統 合 され て い る 。 ま たStP/OMTで 使 用 され る ツ ー ル は 、UNIXの フ ァ イル シ ス テ ム とStP/OMTが 用 意 し て い る リポ ジ ト リ で あ るStPリ ポ ジ ト リ2に デ ー タ を 格 納 す る よ う に な っ て い る 。 以 下 に 、StP/OMTが ど の よ う に デ ー タ を 保 存 して い る か を 示 す 。 ・ フ ァ イ ル シ ス テ ム へ の 保 存 方 法 UNIXフ ァ イル シ ス テ ム の フ ァ イル と い う形 で 保 存 さ れ 、 そ の 内 容 は 各 モ デ ル に 関 す る情 報 がASCII形 式 で 保 存 さ れ て い る 。 各 フ ァ イル に は 、 オ ブ ジ ェ ク ト ・動 的 ・機 能 モ デ ル エ デ ィ タ で 作 成 され る ダ イ ア グ ラ ム あ る い は ク ラ ス ・状 態 テ ー ブ ル エ デ ィ タ で 作 成 され る テ ー ブ ル に つ い て の 情 報 が 含 ま れ て い る 。 ダ イ ア グ ラ ム フ ァ イル で は 、 シ ン ボ ル に 関 す る 情 報 を 保 存 し 、 テ ー ブ ル フ ァ イ ル で は テ ー ブ ル セ ル に 関 す る 情 報 を 保 存 して い る 。 これ ら の フ ァ イ ル は 、 個 人 の 開 発 環 境 で 使 用 され て い る 。 1C++ ,Smalltalk,Adaの プ ログ ラム コー ドを生成 す る こ とがで き る。 2Sybaseと い うRDBMSを 使 用 して い る。 15 π畑 縄刷噛 藺嘲■旧国■■繭 鰯■■ 繭 ■■■ 剛■■ ■■■■ ■ ■膿StPデ
ス ク トップ
リポ ジ トリ ブ ラ ウザ ダイ ヤ グ ラム エデ ィタ テー ブル エ デ ィ タ オブ ジェ ク ト モデル エデ ィタ 動 的 モデ ル エ デ イタ 機 能 モ デル エデ イ タ シ ンク エ デ イタ ク ラ ス テー ブ ル エデ ィ タ 状 態テ ーブル エデ イタ StPcore StP ユ ー テ ィ リテ ィ口
リポ ジ ト リ ブ ラ ウザ コ ン バ ー ジ ョン ス ク リプ ト マ ネ ー ジ ャ望男 多
シ ス テ ム リポ ジ トリ管 理 フ ァ イ ル シ ス テ ム オ ブ ジ ェ ク ト管 理 シ ス テ ムリポ ジ トリ
図3.1:StP/OMTの 概 観 ・Stpリ ポ ジ ト リへ の 保 存 方 法 StPリ ポ ジ ト リデ ー タ ベ ー ス の デ._._タとい う 形 で 保 存 され 、 そ の 内 容 は ダ イ ア グ ラ ム と テ ー ブ ル に 関 す る 情 報 が デ ー タ ベ ー ス の 形 で 保 存 さ れ て い る 。 デ ー タ ベ ー ス の 更 新 は 、 フ ァ イル の 状 態 の デ ー タ か ら行 な わ れ る 。 こ の デ ー タ ベ ー ス は 、 複 数 の ユ ー ザ が 使 用 す る 開 発 環 境 で 使 用 され る 。 ま た 、 プ ロ グ ラ ム コ ー ド を 生 成 す る 際 に QRL(QueryandReportingLanguage)と い うStPの 言 語 を 用 い て 、StPリ ポ ジ ト リ か ら 生 成 す る た め に も使 用 さ れ る 。 ま た 、StP/OMTは 、 オ ブ ジ ェ ク トモ デ ル 図 と ク ラ ス テ ー ブ ル か らプ ロ グ ラ ム コ ー ド を 生 成 す る こ と が で き る 。 プ ロ グ ラ ム コ ー ド は 、 イ ン タ フ ェ ー ス(ヘ ッ ダ)と 実 装(ボ デ ィ) に 分 か れ て ク ラ ス 毎 に フ ァ イ ル の 形 で 生 成 す る 。 図3.2に 今 回 統 合 を 行 な うStP/OMTの デ ー タ の 流 れ を 示 す 。StP/OMTで 使 用 され る オ ブ ジ ェ ク トモ デ ル ・動 的 モ デ ル ・機 能 モ デ ル と ク ラ ス テ ー ブ ル の デ ー タ、 そ して そ れ ら か ら生 成 さ れ る プ ロ グ ラ ム コ ー ド(C++の ソ ー ス コ ー ド で ヘ ッ ダ フ ァ イノレhと ボ デ ィ フ ァ イ ル.cc)を 下 流 のCASEツ ー ル が 利 用 で き る よ うにPCTEの リポ ジ ト リ に 格 納 す る こ と が 目標 で あ る 。 16 一 ・一一帥幽一醐 一 ■■闇 ■ ■■ ■■ ■■■ ■關■ ■■■■勝Object Model Editor Dynamic Model Editor Functional Model Editor Class Table Editor
.ome¥.dme .fine .cte C++
SourceCode Generater .h .cc
UNIX
FileSystem
Object
Manegement
System
StP/OMT
Repository
図3.2:Stp/OMTデ ー タ の 流 れ3.1.2統
合 の問題点 及 び解 決策
これ まで に判 明 したStP/OMTの
特 徴 か ら、統 合上 の 問題 点及 びそ の解 決策 を示 す。
1.StP/OMTは
ソー ス コー ドの公開 され て いないCASEツ
ール で ある。
StP/OMTは
市販 のCASEツ
ール で あ り、プ ログ ラム の ソー ス コー ドは公 開 され て
い ない。そ のた め、今 回 の統 合 では 、CASEツ
ール の移 植 とい う方 法 で は統合 が行
な えない のでカプセ ル化 で統合 を行 な う。
2.カ プ セ ル 化 ツ ー ル で 統 合 す る 際 に フ ァ イ ル 名 を 引 数 に して 実 行 す る こ と は で き な い 。 StP/OMTで は 、 複 数 の フ ァ イル で 作 業 を 行 な う の で 、 起 動 時 にcontents_get関 数でPCTEの パ ス 名 をUNIXの パ ス 名 に 変 換 し 、UNIXの パ ス 名 を 引 数 に し て 実 行 す
る こ と が で き な い 。 そ の た め 、今 回 の 統 合 で は 、StP/OMTを 起 動 す る 際 にproject の あ る デ ィ レ ク ト リ の パ ス 名 とsystem名 を 引 数 に して 起 動 し 、StP/OMTに よ っ て 生 成 さ れ る フ ァ イル をnoti且erで 監 視 してPCTEの リポ ジ ト リ に 格 納 す る よ うな カ プ セ ル 化 ツ ー ル を 作 成 す る 。 3.カ プ セ ル 化 ツ ー ル で 統 合 す る 際 にStP/OMTにnotifierの 機 能 が な い 。 StP/OMTに は 、 フ ァ イ ル の 生 成 や 更 新 を 監 視 す るnotifierの 機 能 が な い 。 今 回 の 統 合 で は 、StP/OMTが 生 成 す る フ ァ イ ル や フ ァ イル の 更 新 を 監 視 す るnotifierを 作 成 す る 。 17 一 ・一 醐 旧騨醐圃劇一 圃 ■■■圏闘■圏■ 闘■闘■■■■■■■際
ProjectDirectly
project SystemDirectly hogehoge tako RuleFileDirectly S「c佃es ctefiles omefiles finefiles dme側es' DataFiles name.h names name.cc name.cte name.ome name.fime name.dme 図3.3:StP/OMTの フ ァ イル 構 成 4.StP/OMTに バ ー ジ ョ ン 管 理 の 機 能 が な い 。 StP/OMTは ソ フ ト ウ ェ ア 開 発 で 使 用 す るCASEツ ー ル で あ る に も か か わ ら ず 、 生 産 物 の バ ー ジ ョン 管 理 の 機 能 が な い3。 今 回 の 統 合 で は 、PCTEの バ ー ジ ョ ン 管 理 の 機 能 を 用 い て 、StP/OMTに バ ー ジ ョ ン 管 理 の 機 能 を 追 加 す る 。 3.1.3ス キ ー マ の 作 成 StP/OMTを 統 合 す る た め の さ ま ざ ま な 制 約 を 考 慮 した うえ 、PCTEで 使 用 す る ス キ ー マ の 作 成 を 行 な う 。 図3.3にStP/OMTが 生 成 す る フ ァ イ ル の 構 成 を 示 す 。StP/OMTで 生 成 され る フ ァ イル は 、そ れ ぞ れ のrulefileの デ ィ レ ク ト リ の 下 に 生 成 す る 。rule丘leデ ィレ ク ト リはsystemデ ィ レ ク ト リ の 下 に 作 られ 、systemデ ィ レ ク ト リ はprojectデ ィ レ ク
ト リ の 下 に 作 られ て い る 。
StP/OMTの こ の よ う な フ ァ イル 構 成 を 考 慮 して 作 成 し た ス キ ー マ を 図3.4に 示 す 。 こ
の 中 で 、objectはsys-objectか ら 、fileはsys-fileか ら 輸 入(import)し て い る 。 同 様 に
StPOMT」ileはfileか ら輸 入 し て い る 。 ま た 、userとgroupは そ れ ぞ
れenv-user、env-groupか ら輸 入 し て い る 。 そ れ 以 外 の も の は 、 表3.1に 示 す 。 ま た こ の 中 で 、projectobjectか らsystem_objectへ の リ ン ク の キ ー にk1,k2を 使 用 して い る が 、 こ れ ば バ ー ジ ョ ン 管 理 の た め の 整 数 型 の キ ー を 用 い て い る た め で あ る4。 そ れ 以 外 の キ ー に 関 し て は 文 字 列 型 の キ ー を 用 い て い る 。 3オプ シ ョンでSCCSを 導入 す る こ とがで きる。 4gen-k1,gen-k2か ら輸入 してい る。 18 一}r鴨 蝋鱒嗣廟 ■醐 嶋 圃■■■ ■■■■國■■■ ■願 ■■■■瞬
user
JI
group I
77
\
name.subname.pro
ject
c ---N
name.fiiename
project object
C
name.s
e.c
---M
Vlame.kl.k2.systename.subname.cc
C name.subname.hsystem_object ---CN
name.subname.cteC---M
name.subname.omec ---M
name.subname.fine
c ---N
name.subname.dme
RI 3.4: StP/OMT
k'---store filename src files cte files ome_files Ime fiies dme files 19表3.1:StP/OMTで 使 用 す る オ ブ ジ ェ ク トの 型
オブジ ェ ク ト型名
user groupprojectobject
system_object
store.filename src」iles cte-files omejiles fme」iles dme-filesオブ ジェ ク ト型
env-user env-groupsys-object
sys-object
StPOMT」ile(sys-file) StPOMT」ile(sys-file)StPOMTjle(sys-file)
StPOMT」ile(sys-file) StPOMT」iile(sys-file) StPOMT」ile(sys-file) ま た 、 図3.3の フ ァ イ ル 構 成 に は 存 在 し な い オ ブ ジ ェ ク トstore』1enameが 図3.4の ス キ ー マ 図 に は あ る が 、 こ れ はEmeraudePCTEの 制 限5に よ る も の で 、 こ こ に はPCTEリ ポ ジ ト リ に 格 納 され て い る オ ブ ジ ェ ク ト の パ ス 名(UNIXの フ ァ イ ル 名)を 記 録 し て い る 。 3.1.4StP/OMTの 統 合 方 式 図3.5に 、 今 回 作 成 し た ツ ー ル の 概 要 を 示 す 。StP/OMTの オ ブ ジ ェ ク トモ デ ル エ デ ィ タ ・動 的 モ デレレエ デ ィ タ ・機 能 モ デシレエ デ ィ タ ・ク ラ ス テ ー ブレレエ デ ィ タ で 作 成 した 作 業 成 果 物 は 、 そ れ ぞ れ の ツ ー ル で 「保 存(save)」 を す る とUNIXの フ ァ イル シ ス テ ム に 書 き 込 ま れ る 。 ま た 、C++ソ ー ス コ ー ド ジ ェ ネ レ ー タ は 、 オ ブ ジ ェ ク トモ テラレや ク ラ ス テ ー ブ/レか らヘ ッ ダ フ ァ イル ・ボ デ ィ ー フ ァ イル を 自 動 生 成 す る 。notifierは そ の 書 き 込 み を 監 視 して お り6、 書 き 込 み が あ っ た 場 合UNIXフ ァ イ ル シ ス テ ム か らPCTEリ ポ ジ ト リ に コ ピー を 行 な う。 さ ら に 、 新 た に 生 成 した フ ァ イル も 、 生 成 し た 時 点 か ら監 視 す る よ う に な っ て い る 。 ま た 、 これ ら 生 成 物 はPCTEの バ ー ジ ョ ン 管 理 機 構 を 用 い て 管 理 され て お り、 ユ ー ザ がPCTEで 統 合 さ れ たStP/OMTを 起 動 す る 際 に 、 オ プ シ ョ ン を 付 け て 起 動 す る こ と で 5EmeraudePCTEV .12.5.1まで は リン クキー の サ イズ が32文 字 に制 限 され てい た。V.12.6.1か らは 256文 字 に拡 張 され たが 、V.12.5.1の 時 にプ ログ ラム を作成 した ので この よ うな方 法 を とってい る。 6フ ァイル の書 き込 み時 間を比 較 してい る。 20一
fic• ome
.dme
.fine
.cte
StP/OMTUNIX
•RepositoryObjectFile
System
Manegement
444\Watching
System
... i s -...t......
notifier
StP/OMTCopy ---
Schema
PCTE...
Version
management
R
epository
...
~PCTE...
RI 3.5: StP/OMT
21 __4メ イ ン ウ ィ ン ドウ
CLMS ユ ー ザ イ ン タ フ ェ ー ス 編 集 エデ ィタ イ ンヘ リタ ン スブ ラ ウ ザ ロ ス リフ ァ レ ン ス ブ ラ ウ ザ ク ラス ブ ラ ウザ オプ シ ョン ブ ラウザ マニ ュ アル ブ ラ ウザ デ ー タ ブ ラ ウザ フ ァ イ ル シ ス テ ム 図3.6:0bjectCenterの 概 観1新 しいバ ー ジ ョンを生 成 す る こ とが で きる7。 また 、以前 のバー ジ ョンに戻 る際 も、オプ
シ ョンを付け て起 動す る ことで、以前 のバー ジ ョンか ら新 しいバー ジ ョンを生成 す る こと
がで き る8。バー ジ ョン管理 のオプ シ ョンを特 に指定 しない場 合 に は、最新 のバ ー ジ ョン
で起動す る。
3.20bjectCenterの 統 合 ObjectCenterは 、C++の コ ー ド 開 発 ・テ ス ト ・デ バ ッグ を 行 な う た め に 必 要 な 機 能 を 提 供 し て い る 下 流 工 程 のCASEツ ー ル で あ る 。ObjectCenterは 通 常 コ ン パ イ ル し て 使 用 す るC++の ソ ー ス コ ー ド を イ ン タ プ リ タ で 扱 う こ と が で き 、 デレミッ ガ と あ わ せ て 強 力 な 開 発 環 境 を 提 供 し て い る 。 3.2.10bjectCenterの デ ー タ イ ン タ フ ェ ー ス の 特 徴 図3.6にObjectCenterの 概 観 を 示 す 。ObjectCenterは 、 編 集 エ デ ィ タ 、 イ ン ヘ リ タ ン ス ブ ラ ウ ザ 、 ク ロ ス リ フ ァ レ ン ス ブ ラ ウ ザ 等 の ツ ー ル か ら 成 り 立 っ て お り 、 こ れ ら は メ イ ン ウ ィ ン ド ウ と 呼 ば れ る 統 合 ツ ー ル か ら 使 用 す る こ と が で き る 。 ま た 、 こ れ ら の ツ ー ル は CLMS(CenterLineMessageServer)と 呼 ば れ る メ ッ セ ー ジ 通 信 サ ー ビ ス を 利 用 し て ツ ー ル 間 の デ ー タ の や り と り を 行 な っ て い る 。 な お 、 使 用 す るC++の ソ ー ス コ ー ド は 、 フ ァ イ ル の 形 で 入 力 さ れ る 。 7-reviseオ プ シ ョンを付 け て起動 す る こ とで 、改訂(revise)さ れ る。 8-revise<versionnumber>を 指 定 す る こ と で 以 前 のバ ー ジ ョ ンの 改 訂 を 作 成 す る 。 22こ れ ま で に 判 明 したObjectCenterの 特 徴 か ら、 統 合 上 の 問 題 点 及 び そ の 解 決 策 を 示 す 。 1.ObjectCenterは ソ ー ス コ ー ド の 公 開 さ れ て い な いCASEツ ー ル で あ る 。 ObjectCenterもStP/OMTと 同 様 、商 用 のCASEツ ー ル で あ り、プ ロ グ ラ ム の ソ ー ス コ ー ド は 公 開 さ れ て い な い 。 そ の た め 、 今 回 の 統 合 で は 、 カ プ セ ル 化 技 術 を 用 い て 統 合 を 行 な う 。 2.カ プ セ ル 化 ツ ー ル で 統 合 す る 際 に フ ァ イ ル 名 を 引 数 に して 実 行 す る こ と が で き な い 。 ObjectCenterで は 、 ク ラ ス ご と の ヘ ッ ダ フ ァ イル ・ボ デ ィフ ァ イル が 必 要 で あ る 。 と こ ろ で 、ObjectCenterで は 新 た な ク ラ ス は 生 成 され な い の で 、 新 た な 八 ッダ フ ァ イ ル や ボ デ ィ フ ァ イル が 生 成 され る こ と は な い 。 そ こ で 、ObjectCenterの 作 業 デ ィ レ ク ト リ か らPCTEの オ ブ ジ ェ ク トヘ シ ン ボ リ ッ ク リ ン ク を は る こ と で 、 直 接PCTE の リ ポ ジ ト リ を 操 作 す る こ と が で き る 。 3.ObjectCenterで い く つ か の 新 し い フ ァ イ ル が 生 成 され る 。 ObjectCenterは 、 ソ ー ス コ ー ド を コ ンパ イル す る た め にmakefileを 必 要 と す る 。 ま た 、 現 在 の 環 境 を 保 存 す る た め に プ ロ ジ ェ ク ト フ ァ イル を 生 成 す る9。 これ ら の フ ァ イ ル は 予 め フ ァ イル 名 が わ か っ て い る た め 、 カ プ セ ル 化 ツ ー ル の 中 でPCTEの オ ブ ジ ェ ク トを 生 成 し シ ン ボ リ ッ ク リ ン ク を は っ て お く こ と で 、PCTEの リ ポ ジ ト リ に デ ー タ が 格 納 され る よ うに な る 。 4.ObjectCenterに バ ー ジ ョ ン 管 理 の 機 能 が な い 。 ObjectCenterは ソ フ ト ウ ェ ア 開 発 で 使 用 す るCASEツ ー ル で あ る に も か か わ らず 、 生 産 物 の バ ー ジ ョ ン 管 理 の 機 能 が な い 。 今 回 の 統 合 で は 、PCTEの バ ー ジ ョ ン 管 理 の 機 能 を 用 い て 、ObjectCenterに バ ー ジ ョ ン 管 理 の 機 能 を 追 加 す る 。 3.2.3ス キ ー マ の 作 成 ObjectCenterを 統 合 す る た め の さ ま ざ ま な 制 約 を 考 慮 し た う え 、PCTEで 使 用 す る ス キ ー マ の 作 成 を 行 な う。 図3.7にObjectCenterで 使 用 す る ス キ ー マ を 示 す 。 こ の 中 で 、 StP/OMTで 使 用 し て い る オ ブ ジ ェ ク ト はStP/OMTの ス キ ー マ か ら輸 入 す る 。 表3.2に ObjectCenterで 使 用 す る オ ブ ジ ェ ク ト とそ の 型(括 弧 内 は オ リ ジ ナ ル の 型)を 示 す 。 ま た 、 キ ー や 型 参 照 子 に 関 し て もStP/OMTで 使 用 し て い る も の に 関 し て は 、 輸 入 し て 用 い る 。 表3.3にObjectCenterで 使 用 す る キ ー を 、 表3.4に 型 参 照 子 を 示 す 。 90center .projとい うファイルを生成する。 23 ' 冒}帽醐劃醐繭 圏醐 ■ ■■ ■■■■■ ■■ ■■■ ■ ■願 ■謄
object
user
Ifile
I I StPOMT
file I
group
~~name
.subname.project
T
project object ame.filename C\Ciiame.kl.k2.systemnam . bname.c
C name.s e.ccsystem_object ---CN
ame.subname.h C ame.subn .proj C ame.subname.mkRI 3.7: Object Center---q
24
store filename
r
src files
表3.2:0bjectCenterで 使 用 す る オ ブ ジ ェ ク ト の 型