技術士 2007.1 情報技術(IT)シリーズ 情報化を支えるソフトウェア開発 ― ソフトウェア機能規模による開発管理を目指して ― Software Development Supporting Information Society ― Aiming Software Development Management by Functional Size ― 石田 正浩 Ishida Masahiro 情報化を支える主役はソフトウェアである。ソフトウェアの規模は年々巨大化しており,決められた期間と予 算でソフトウェアを開発することの重要性が増大している。ソフトウェア開発の出発点はソフトウェアの規模の正 確な把握にある。ソフトウェアの規模としては機能規模が最も望ましい。本稿は組込みソフトウェアの機能規模 測定に最適な COSMIC-FFP 法 1)について紹介する。 Main component of information society is software. every year. Size of software is becoming bigger and bigger It is more important to develop software within the given period and budget. is to grasp the size of software precisely. Functional size is the best measure. Its start point This paper introduces COSMIC-FFP method which is the best method to measure the functional size of embedded software. キーワード:情報化, ソフトウェア開発, ソフトウェア機能規模測定, 組込みソフトウェア, COSMIC-FFP 法 1 はじめに 2 ソフトウェア機能規模測定の概要 情報化社会が急速に浸透しつつある。これまで ソフトウェアの規模の定量化の手段として従来 その牽引役だったインターネット,パソコンに加 か ら 用 い ら れ て い る の は, ソ ー ス コ ー ド 行 数 えて携帯電話,カーナビ,情報家電など,社会の LOC(Lines of Code) で あ る。LOC は ソ フ ト 隅々まで情報機器の範囲が広がり,ユビキタス社 ウェアの規模を直接,容易にそして客観的に測定 会といういつでもどこでも必要な情報が手に入る できる等の利点があるが,LOC には次のような 時代に向けて進みつつある。 問題がある。 これらの情報化を支えている主役はソフトウェ 1)LOC は言語によって異なる。一つのシステム アである。ソフトウェアの規模はこのような情報 の中でも複数の言語が使用されるのはよくあ 化の進展とともに年々増え続けている。 ることで,単純な加算はできない。 携帯電話に搭載されるソフトウェアの規模は最 2)プ ロ グ ラ マ の 個 人 差 に よ り LOC は 大 き く 異 近では数メガステップになったと聞く。 決められ なる。優秀なプログラマはプログラムがコン た期間と予算でこのような大規模なソフトウェア パクトで生産性が良いはずなのに LOC ベー を開発するということが経営的にもきわめて重要 スの生産性指標では逆に悪く出てしまう。 なファクタになっている。突き詰めると,開発する 3)プログラムのコードレス化が進み,LOC での ソフトウェアの規模の把握が従来に増して重要に 測定が難しくなってきている。 なっているということである。 規模の把握を間違 ソフトウェアの本質は機能の実現であり,その えると期間,予算ともに守れない事態に直結する。 規模は機能量で表現するのがもっとも理想的と考 本稿ではソフトウェアの規模測定法の中でソフト えられる。機能量で規模が表現できれば上記の問 ウェアが実現する機能の量を定量化するソフトウェ 題は解消される。また,機能量は LOC に比べて ア機能規模測定法,その中でも特に日本の強みと ソフトウェアの発注者(顧客)と開発者双方が共 なっている組込みソフトウェアの機能規模測定に最 有しやすい尺度ということができる。 適なCOSMIC-FFP 法の概要について紹介する。 以上のような背景からソフトウェア機能規模測 8 IPEJ Journal Vol.19 No.1 定 の 研 究 が 進 め ら れ て き た。1979 年 に 米 国 JIS X 0143:2006 と し て 発 行 さ れ た 5)。 ま IBM の Albrecht によりファンクションポイント た,JIS に 対 応 し た COSMIC-FFP 測 定 マ ニ ュ ア 法( 以 下 FP 法 と 略 す ) が 発 表 さ れ た。FP 法 は ル V2.2 の翻訳版および入門書の発行も近々予定 ソフトウェアの規模を利用者がソフトウェアに要 されている。 求する機能を基に測定するもので,正に画期的な ソフトウェアの開発においては,規模に基づく 測定法だった。 取引,工数/規模などの生産性指標,バグ数/規 この発想は国際的にも認知され,ビジネスアプ 模等の品質指標等各種の指標を設定して開発管理 リケーションソフトウェアを中心に世界中で広く を行うが,規模として機能規模を使用することに 使用されている。しかし,FP 法は他の分野のソ より計画ミス,実態把握ミスの少ない開発管理を フトウェア(例えば機器組込みソフトウェア,プ 行うことが可能である。 ロセス制御ソフトウェアなどのリアルタイムソフ トウェア)には向かないといわれてきた。 3 COSMIC-FFP 法の概要 このためカナダのケベック大学の Abran 教授 COSMIC-FFP 法 は, ソ フ ト ウ ェ ア に 対 す る 機 を中心としたグループは適用範囲をリアルタイム 能仕様をまとめた利用者機能要件 FUR(Functio- ソフトウェアにまで拡張した機能規模測定法の研 nal User Requirement) を測 定の対 象とする。 究 に 取 り 組 み,1997 年 に FFP(Full Function しかしFURの形態は 様々である。 文 章 で書かれ Point)法として発表した。その後,次世代機能 たもの,図で書かれたもの,場合によっては仕様 規 模 測 定 法 を 研 究 す る COSMIC(The Common 書が存在しない場合すらある。 Software Measurement International Con- このような様々な形態からでも一定の手順で客 sortium) グ ル ー プ と Abran 教 授 は 共 同 で FFP 観 的 な 機 能 量 を 導 き 出 す た め に COSMIC-FFP 法 法 に 改 良 点 を 織 り 込 ん だ 手 法 を,COSMIC-FFP はソフトウェアモデルを用意している。図 1 に 法として 1999 年に発表した。 COSMIC-FFP 法のソフトウェアモデルを示す。 これらの他にも各種の機能規模測定法が開発さ れたが,それらの間の共通認識を確立するために ISO 及び JIS 等で機能規模測定の基本的概念が定 義され 2)3),機能規模測定法を適用する場合の一 利用者機能要件 (Functional User Requirements) ソフトウェア 機能プロセス 般的な原理が確立された。ISO ではこの標準に適 合 し た 機 能 規 模 測 定 法 と し て,1)FP 法,2) C O S M I C - F F P 法 ,3 )M a r k Ⅱ 法 ,4 )N E S M A 法 デー タ 移動 図 1 COSMIC-FFP 法のソフトウェアモデル を承認している。 COSMIC-FFP 法 の ソ フ ト ウ ェ ア モ デ ル は FUR COSMIC-FFP 法 は,2003 年 2 月 に 国 際 標 準 が機能プロセスの集合から構成されること,また (ISO / IEC 19761:2003) と し て 制 定 さ れ 各機能プロセスはデータ移動の集合から構成され 4) た 。この 4 つの手法の中でリアルタイムソフト ることを表している。 ウ ェ ア の 規 模 を 測 定 す る に は COSMIC-FFP 法 が このモデルは,データ構造が複雑で大量のデー 最適とされている。 タを扱うことが多いビジネスアプリケーションと 日本の産業界では,組込みソフトウェアを含め は違ってデータ構造は簡単でデータ量は少ない てリアルタイムソフトウェアの需要がますます増大 が,外部とのデータの授受が支配的なリアルタイ しており,COSMIC-FFP 法 は 特 にこ れらの 分 野 の ムソフトウェア,あるいは組込みソフトウェアの 国内関係者から重要な手法として期待されている。 特性を良く表したモデルということができる。 日 本 で も COSMIC-FFP 法 は FP 法 と と も に COSMIC-FFP 法 で は, ま ず FUR を COSMIC- JIS 化 の 取 り 組 み が 開 始 さ れ,2006 年 12 月 に FFP ソフトウェアモデルに変換(これをマッピ 9 技術士 2007.1 FFP 法による機能規模測定のステップは次のよ 4 適用事例 うになる。 COSMIC-FFP 法 を 用 い た ソ フ ト ウ ェ ア の 機 能 ン グ と い う ) し た 後, 測 定 を 行 う。COSMIC- (1)マッピング 規模測定の実際を自動炊飯器の組込みソフトウェ ① 境界の識別:測定の対象になるソフトウェ アについての機能規模測定の例で説明する 7)。 アおよびその利用者は何かを明らかにする。利用 者としては,人,装置,その他のソフトウェアが 4.1 自動炊飯器の仕様 ありうる。 以下に,自動炊飯器についての仕様を示す。 ② 機能プロセスの識別:機能プロセスは FUR 1)炊き方:早炊き,普通,お粥の 3 モード を最小限まで分解した基本的機能要素であり,あ 2)モード選択後スタートボタンを押し炊飯開始 るまとまった機能の集まりをいう。トリガイベン 3)スタートボタンのみの場合,普通炊きモード ト(押しボタンなど)という境界の外で発生する 4)炊飯終了後は,自動的に保温状態に移る イベントにより起動される。 5)状態に応じ,炊飯・保温ランプが点灯 ③ データグループの識別:データグループは 6)モード,温度及び経過時間をもとに,モード毎 FUR から導かれる構造を持ったデータの集まり の目標温度を決定してヒータのオンオフ制御 である。FUR に表現された名詞から導かれるこ 7)システムが参照する時間値を提供する機能 とが多い。 有。 1 秒,5 秒,30 秒毎の 3 種類 (2)測定段階 8)30 秒毎に,目標温度を決定更新 ① デ ー タ移 動 の 識 別:機 能プロセスの中で 9)5 秒毎,Tt(目標温度)- Ta(実際温度)を計算 データグループが移動することを識別する作業。 し,プラスの場合はヒータオン。それ以外オフ データ移動には, 利用者との間で境界を越えて 10)炊飯・保温状態を 30 秒毎にランプに表示。 デ ータを移 動 するエントリ(E) , エグジット(X) 図 3 に自動炊飯器の操作パネルを示す。 および記憶 域との間でデータを移動するリード (R),ライト(W)の 4 種類がある。 (図2 参照) モード選択 スイッチ 早炊き お粥 普通 ② 測定結果の集計:各機能プロセスにおける1 炊飯 境界 インジケータ ランプ ユーザ 人 技術的装置 他のソフトウェア エントリ 入 出 力 装 置 ソフトウェア エグジット リード 記 憶 装 置 ライト スタート ボタン 保温 図 3 自動炊飯器の操作パネル 次に自動炊飯器制御ソフトウェアの境界の識別 結果を図 4 に示す。タイマは規則により,常に境 図 2 データ移動の 4 つの形態 界の外のイベントとして扱われる。 個 の デ ー タ 移 動 を1Cfsu (COSMIC functional タイマ 境界 size unit) と表す。 機能プロセスにおけるデー タ移動を集計し,これをすべての機能プロセスに ついて集計すると対象ソフトウェアについての機 能規模(単位は Cfsu)を求めることができる。 COSMIC-FFP 法 の 詳 細 に つ い て は COSMIC- ヒータ スタートスイッチ モードスイッチ 自動炊飯器 制御ソフトウェア 保温ランプ 炊飯ランプ 温度センサ 図 4 自動炊飯器の境界の識別結果 FFP 測定マニュアル 6)7) ほか参考文献を参照され 4.2 トリガイベントと機能プロセスの識別 たい。 FUR より,機能プロセスとそれを起動するト リガイベントの候補として,下記が識別される。 10 IPEJ Journal Vol.19 No.1 表1の No.2 はタイマを作り出す機能である。図 間や予算等の計画値を算定し,開発管理に生かす 4で述べたようにタイマは境界外に位置づけられ ことで,より合理的なソフトウェア開発が期待で るため,機能プロセスから削除される。 きる。 表 1 トリガイベントと機能プロセス候補の識別 No 1 2 3 4 5 トリガイベント モードスイッチの押下 スタートスイッチオン 30 秒クロックシグナル 5 秒クロックシグナル 30 秒クロックシグナル 機能プロセス 炊飯モード選択 スタートスイッチオン後の時間値制御 目標温度決定 ヒータ制御 インジケータランプ制御 表 3 自動炊飯器の機能規模の集計 機能プロセス グル ープ 候 補 が 識 別され る。 (1) 炊 飯 モ ード, 機能規模 (Cfsu) 炊飯モード選択 目標温度決定 ヒータ制御 インジケータランプ制御 4.3 データグループの識別 FURおよび 機 能プロセス候 補 から次のデ ータ データ移動数 E 1 1 2 1 5 X 0 0 1 1 2 R 0 1 1 1 3 W 1 1 0 0 2 2 3 4 3 12 5 おわりに (2) 経 過 時 間, (3)5 秒 クロックシ グ ナル, (4) 各種情報機器に組み込まれた組込みソフトウェ 30秒クロックシグナル, (5) 実際温度, (6) 目標 アの機能規模を測定する手法として期待されてい 温度, (7)ヒータの状態, (8)炊飯・保温の状態。 る COSMIC-FFP 法 に つ い て, そ の 概 要 と 測 定 事 例 を 紹 介 し た。COSMIC-FFP 法 は 2006 年 12 4.4 COSMIC-FFP ソフトウェアモデル 月に JIS として制定され,今後普及が期待されて 以 上 よ り, 自 動 炊 飯 器 の COSMIC-FFP ソ フ ト い る。COSMIC-FFP 法 の 理 解 者 が 増 え て 実 際 の ウェアモデルは表 2 のように表すことができる。 ソフトウェア開発の現場で適用され,ソフトウェ 4 個の機能プロセス毎にどのようなデータグルー ア開発,ソフトウェア取引の共通基盤となること プのどのようなデータ移動から構成されているか を期待したい。 がわかる。 表 2 自動炊飯器のソフトウェアモデル 機能プロセス トリガ データ移動 データグループ < 参考文献 > 1) 長 野: 機 能 規 模 測 定 法 COSMIC-FFP の 組 込 み ソ フトウェアにおける適用性 , プロジェクトマネジ イベント 炊飯モード選択 モードスイッ 炊飯モードを受取る チの押下 炊飯モードをライト 炊飯モード 炊飯モード 目標温度決定 30 秒 ク ロ ッ 経過時間を受取る クシグナル 炊飯モードをリード 目標温度をライト 経過時間 炊飯モード 目標温度 ヒータ制御 5 秒 ク ロ ッ ク トリガーイベントを受取る シグナル 実際温度を受取る 目標温度をリード ヒータのON/OFFをセットする 5秒クロックシグナル 実際温度 目標温度 ヒータの状態 インジケータラ 30 秒 ク ロ ッ 経過時間を受取る 経過時間 クシグナル 炊飯モードをリードする 炊飯モード ンプ゚制御 炊飯器の状態をランプに出力 炊飯・保温の状態 メント学会誌 ,7,5,2005 2) ISO / IEC 14143-1, Information TechnologySoftware Measurement-Functional size meas u r e m e n t P a r t 1:D e f i n i t i o n o f c o n c e p t s , 1998 3) JIS X 0135-1,ソフトウェア測定 ―機能規模測 定― 第 1 部:概念の定義,1999 4) ISO / IEC 19761:2003,Software Engineering-COSMIC-FFP—A Functional Size Measurement Method,2003 4.5 機能規模の集計 表2の各機能プロセスにおけるデータ移動毎に その識別を行う。例えば“炊飯モード選択”機能プ ロセスの“炊飯モードを受け取る”データ移動は外 部からの入力なので,エントリ(E), “炊飯モードを ライト”データ移動は記憶装置への出力なのでライ ト(W) などである。このような手続きを,最後ま で行うことにより機能規模が表3のように集計され る。自動炊飯器の機能規模は12Cfsuとなる。 この機能規模を元にソフトウェア開発の開発期 5) JIS X 0143:2006, ソ フ ト ウ ェ ア 技 術 -COSMIC-FFP 法 - 機能規模測定法,2006 6) COSMIC-FFP 測 定 マ ニ ュ ア ル 第 2.0 版 日 本 語 翻 訳 版:http://www.itlab.k.dendai.ac.jp/2000/ form.htm 7) COSMIC-FFP 測 定 マ ニ ュ ア ル 英 語 版, ケ ー ス ス タディ:http://www.lrgl.uqam.ca/cosmic-ffp/ 石田 正浩(いしだ まさひろ) 技術士(情報工学部門) 石田技術士事務所 所長 e-mail:[email protected] 11
© Copyright 2026 Paperzz