品質評価規格文書のモデル化に基づくプロセス評価支援システムの設計
A Design of Process Assessment Supporting System Based onModeling of Assessment Documents

松下 誠 飯田 元y 井上 克郎z
Process assessment is usually performed by referring to the assessment guideline documents, though the information necessary for particularassessment activities cannot be found in a small section of the document, wehave to search around the entire documents. This is time-consuming job. In
this paper, we investigated the method to obtain information for process assessment SPICE (Software Process Improvement Capability dEtermination).
First, we de ne the model for describing information for process assessment.
Then, to reconstructs SPICE documents with this model, SGML (StandardGeneralized Markup Language) statements were added to the original textof the SPICE documents. Based on this annotated SPICE documents, wehave designed process assessment supporting system. In the prototype of thesystem, there are two tools, a tool which shows the information about processassessment on the display, and a tool which investigates relations between
processes and products. This system enables us easily to get information forprocess assessment, and to improve process assessment eÆciency.
Summary.

1

はじめに

ソフトウェア開発プロセスを改善することは，生産効率の向上，コストの削減などに直接影響を与えるため，非常に大きな意味を持つ．ソフトウェア開発プロセスの改善を行なうためには，まず現在行なわれているソフトウェア開発がどのように行なわれているか評価することが必要となろう．
このような背景から，近年ソフトウェアプロセスの品質保証に関する研究が盛んに行なわれて，利用されている [1] [2]．現在までに，ソフトウェアプロセスに対してさまざまな評価方法や参照モデルが提案されてきた．たとえば，SEI(ソフトウェア工学研究所) の CMM (Capability Maturity Model) [3] [4] や，ISO(国際標準化機構) の ISO 9000 シリーズ [5]，SPICE(Software Process Improvement CapabilitydEtermination) [6] などがあげられる．
しかし，これらの品質評価規格自体は自然言語で記述されているために，実際に評価を行なう際，必要な情報が文書の各所に散乱している，評価する対象が広範囲である，といった点が問題と考えられる．本研究では，品質評価を効率よく行なうために品質評価規格文書のモデル化を行ない，それに基づいた評価支援システムを構築する．対象となる品質評価規格の例として，今回は SPICE を取りあげた．

2

プロセス品質評価規格 SPICESPICE (Software Process Improvement Capability dEtermination) とはプロセス品質評価規格の 1 つであり，ISO/IEC JTC 1/SC7 の WG10 にて国際標準化作
 Makoto Matsushita, 大阪大学

y Hajimu Iida, 奈良先端科学技術大学院大学
z Katsuro Inoue, 大阪大学

FOSE '96

業が行なわれているものである．SPICE 文書全体は 9 章で構成されており，記述は約 400 ページに渡っている．
SPICE ではソフトウエア開発における作業をプロセスとして表現し，各プロセスはいくつかの基本作業 (Base Practice) から構成されるとしている．また，プロセスはプロセスカテゴリー (Process Category) として 5 つにグループ化されている[7]．プロセスカテゴリーとしては以下の 5 つがある．

Customer-Supplier

顧客に直接影響のあるプロセス．

Engineering

システムやソフトウェアの仕様策定，実装，保守に直接影響のあるプロセス．

Project

開発プロジェクトの立案，およびプロジェクトにおける調整，資源の管理を行なうプロセス．

Support

プロジェクト中における他のプロセスの運用を支援するプロセス．

Organization

組織目標の立案や，組織目標を達成するために必要となるプロセス，プロダク
ト，その他資源の開発を行なうプロセス．
SPICE では，習熟度 (Capability Level)，共通特性 (Common Feature)，汎用作業 (General Practice) の 3 段階で構成される能力判断基準が上記のプロセスとは別に定義される．汎用作業においては，この作業を遂行するために必要となるプロセス/基本作業や，必要となる作業プロダクト (Work Product Type) が定められている [8]．これらの作業は全てのプロセスに対して適用される．この基準とプロセスを組みあわせることにより，各プロセスが目的に即してどの程度効率的に運用されているかを判断する．
SPICE では開発作業の評価を，1) 基本作業がどの程度実行されているか，2) 各プロセスを各汎用作業に照らしあわせ，どの程度効率的に実行されているか，という 2 種類について行なう．評価は 1) を 2 段階 (実行している (Y)，実行していない (N)) または 4 段階 (完全に適合する (F)，大部分適合する (L)，部分的に適合する (P)，全く適合しない (N)) で，2) を 4 段階で行ない，その結果は各共通特性毎，さらに各習熟度毎に集計される [9]．
SPICE ではさらに，集計された結果を用いたプロセス改善やプロセス能力判定のためのガイドや，評価作業の実行方法についても規定されており，開発プロセスを改善するための指針として十分な内容となっている．

3

品質評価規格のモデル化
SPICE の文書中，SPICE におけるプロセスや習熟度等の定義や評価指針等は 2つの章にそれぞれ書かれており，これら全部の記述は SPICE 全体のおよそ半分に相当する約 200 ページに渡っている．このような大量の文書をそのまま評価の際に参照するのは容易ではない．
本研究ではまず，SPICE において評価の際に利用される情報を抽出した．2節で述べた通り，SPICE においては，評価の際に必要な情報は「プロセスカテゴリーによって分類される各作業」「作業成果物」「習熟度」の 3 つに大きく分類することができた．さらに SPICE における評価作業はこれらの要素が評価対象中に存在する

A Design of Process Assessment Supporting System Based on Modeling of Assessment Documents

か，要素間に存在するいくつかの関連を参照することによって行なうことができると考えた．そこで，SPICE で述べられている評価を目的とした開発作業モデルを次のように定めた．
モデル化の方針
SPICE が仮定する品質評価対象となる開発作業全体を以下の 3 つの要素とその間にある 4 種類の関係を用いてモデル化することにする．このモデル化は SPICE において定義されている要素をほぼ単純に対応させているため，SPICE のモデルの意味を変化させるものではないと考えられる．
(要素)
 タスク
開発時における作業のうち，開発工程を構成するような作業．SPICEにおける基本作業，プロセスがこれに相当する．
 プロダクト
開発時におけるあらゆる生成物，もしくは事前に準備されている成果物．SPICE における作業成果物がこれに相当する．
 レベル
開発時における作業のうち，何らかの作業を遂行，改善するために必要となっている作業．SPICE における汎用作業，共通特性，習熟度がこれに相当する．
(関係)
 タスク - プロダクト間関係あるタスクが実行時に必要とするプロダクトを表現 タスク - タスク間関係あるタスクがその実行，評価時に参照されるタスクを表現 レベル - タスク間関係あるレベルの遂行にあたって必要とされるタスクを表現 レベル - プロダクト間関係あるレベルの遂行にあたって必要とされるプロダクトを表現
なお，実際のモデルは 3.2で述べる方法により記述する．このようなモデルを用いることにより，SPICE における品質評価の判断に必要となる次のような情報を容易に得ることができる．
 基本作業に対する評価該当するタスクがどのように行なわれているか，ということについて，タスクの定義内容や，このタスクとタスク - プロダクト関係を持つプロダクト等を参照することによって判断を行なうことができる．
 プロセスの習熟度に対する評価
タスクとレベルがどのように行なわれているか，ということについて，該当タ
スクとタスク - タスク間関係を持つ他のタスクの実行状況や，該当レベルとレ
ベル - タスク間関係を持つタスク及びレベル- プロダクト間関係を持つプロダ
クトを参照することによって判断を行なうことができる．
3.1

FOSE '96
表1

TYPE
ID

要素の種類を表わす．TASK, PRODUCT, LEVEL のいずれかの値を取り，それぞれタスク，プロダクト，レベルを表わす．
各種類中で一意に決定される文字列．SPICE における基本作業等に付けられた識別子を値として持つ．
表2

TYPE

SRC
DST
DIRECT

3.2

ELEMENT タグの属性

RELATION タグの属性関係の種類を表わす．TKPD, TKTK, LTP のいずれかの値を取「タスク-タスク間関り，それぞれ 「タスク-プロダクト間関係」
係」「レベル-タスク間関係もしくはレベル-プロダクト間関係」を表わす．
関係上における参照元を表わし，参照元となる要素の識別子を値として持つ．
関係上における参照先を表わし．参照先となる要素の識別子を値として持つ．
タスク-プロダクト間関係にのみ存在する属性で，プロダクトがタスクへの入力となるか出力となるかを表わす．IN もしくは OUTのいずれかの値を取る．

SGML を用いたモデルの記述

本研究では，3.1節で定義したモデルを，元の SPICE 文書に対して SGML (Standard Generalized Markup Language) [10] 文を追加することにより記述する．SGMLとは，ISO によって標準化作業が行なわれている共通符号化を基本とした文書構造記述言語である．通常，定型文書は SGML を用いて構造化することができ，文書処理，文書データベース，文書交換等を行なうことができる [11]．SGML を用いてモデルを記述することにより，SPICE の文書自身をモデル内に包含することができるため，記述されたモデルを利用するツールの作成を容易に行なえるといった利点がある．
3.1節で定義したモデルを表現するため，要素については ELEMENT というタグ (文章中に付加するマーク) を，関係については RELATION というタグを SPICE の文書に付加する．この他，SPICE の文書構造を表現できるようないくつかのタグを定義し SPICE の文書に付加することとする．以下，2 種類のタグについて説明する．
3.2.1
要素に関するタグ
要素は全て ELEMENT という名前のタグで表現する．ELEMENT タグには表 1のような属性が存在する．この他，属性 ID の持つ情報を補うために SUBID, SUBSUBID といった属性が必要に応じて定義される．
3.2.2
関係に関するタグ
関係は全て RELATION という名前のタグで表現する．RELATION タグには表 2のような属性が存在する．
3.2.3
SGML タグの記述例
このようにして定義した SGML タグを，SPICE 文書中に付加する作業を行なった．SGML によってモデル化された文書の例を図 1に示す．

A Design of Process Assessment Supporting System Based on Modeling of Assessment Documents
hELEMENT TYPE=TASK ID="CUS.1" SUBID="2"ihPREAMBLEi

CUS.1.2
h/PREAMBLEi
hTITLEiDe ne the requirements.
h/TITLEihBODYi
Prepare the system and software requirements to satisfy the need for a new product and/or service.
Note: This de nition of the requirements may be done completely or partially by the supplier.
hRELATION TYPE=TKTK SRC="CUS.1.2" DST="ENG.1"
DST="ENG.2"iSee "Develop System Requirements and Design" ENG.1, and "Develop Software Requirements" ENG.2.
h/RELATIONi
hRELATION TYPE=TKTK SRC="CUS.1.2" DST="CUS.3.1"iAlso see CUS.3.1, " Obtain customer requirements and requests. " CUS.1.2 is focusing on de ning
requirements when the software organization is acting as a customer. CUS.3.1 is focusing on
obtaining requirements when the software organization is acting as a supplier.
The primary di erence is one of perspective, the role being performed.
h/RELATIONi
h/BODYi
h/ELEMENTi
図1

SGML によるモデル化の例

この例では，作成するソフトウエアの要求仕様を定義する基本作業について定義されている文章に SGML のタグが振られている．先に挙げた ELEMENT や RELATIONの他，SPICE の文書構造を表現するタグが付けられている．

4

評価規格と実際の開発作業との対応

実際にプロセスの評価を行なう際には，SPICE における評価規格文書中に記述されている開発作業全体を構成する各項目と，評価対象となる実際の開発作業との対応関係を決定する必要がある．この対応付けによって，SPICE におけるあるプロセスについて評価を行なう際，実際に行なわれた作業や生成物のうち，どれを参照すれば良いか確認することができる．以下，この対応付けをどのように定めるか，また，どのように利用されるかについて説明する．
対応関係の定義
実際の開発作業におけるタスクやプロダクトを認識する方法として，対応関係 Mを以下のように定義する．
以下の集合 S , R を仮定する．
S = fS P I C E におけるタスクとプロダクトの集合 g
R = f 実際の開発作業におけるタスクやプロダクトの集合 g
この時，対応関係 M は次のように定義される．
M = f(s; r )js 2 S; r 2 R; S P I C E における s は実際の開発作業における rによって実現されている g
4.1

集合 S に含まれるある 1 つのタスクやプロダクトが実際には複数のタスクやプロダクトに対応する場合や，集合 S に含まれる複数のタスクやプロダクトが，実際には 1 つのタスクやプロダクトに対応する場合もあり得る．
評価時における対応関係の利用
あらかじめ対応関係を決定しておくことにより，評価時において次のような形で利用することができる．
 SPICE におけるあるタスクを要素として含む対応関係を選び，それに含まれている実際の作業や生成物を得ることができる．これにより，あるタスクの評価

4.2

FOSE '96

SPICE 文書

タグ情報

データベース

評価結果

Viewer

情報の表示要求

Assessor

ユーザ

文書中の情報

評価結果
データベース

プロセス
評価支援システム

図2

システム概要を行なう際に「実際にはどのタスク及びプロダクトを確認すればよいか」を知ることができる．
 SPICE において，あるタスクに関連する別のプロセスが定められていた際に，それぞれについて，上記で定義される関係を用いて，実際の開発作業における作業及び生成物を得ることができる．これにより，実際の開発作業において，SPICE が言及しているタスク間の関連が存在しているかどうかを確認することができる．

5

支援システムの設計

SGML によってモデル化された文書を利用する，品質評価支援システムを設計した．本システムは開発者自身が自らの開発状況を評価する際に利用することを想定している．本システムは 2 つのツールと付随するデータベースによって構成される(図 2)．
ツールには，品質評価文章中に記述されている各項目や，項目間の関連を表示するものと，評価文書と実際の作業と参照することによって行なわれる品質評価結果の入力，保存および参照を行なうもの，という 2 種類が存在する．両ツールとも，モデル化した SPICE の記述を入力とし，SGML タグの解析を行なう．解析結果は必要に応じてデータベースとして保存し，ユーザからの要求に備える．過去に入力された品質評価結果は，別途データベースの形で保存される．以下では，2 つのツールについてそれぞれ説明する．

文書参照ツール
文書参照ツールとは，SPICE 文書中に記述されている各項目に関する内容を表示したり，作業間の参照関係を調べて簡単なグラフ表現にするといった，文書中の情報を参照しやすくするものである．試作中の本ツールを図 3に示す．
本ツールの作成にあたって，まず 3.1節で定義されるモデル上において，文書中にある各要素や関係を記述した部分の参照等，文書を参照する際に必要となる操作を定義した．各操作はそれぞれ 1 対多の写像として定義されており，モデル上で定義されている参照関係や，定義された参照関係から導出される参照関係をも含む．
5.1

A Design of Process Assessment Supporting System Based on Modeling of Assessment Documents

図3

文章参照ツール

図4

評価入力ツール

また，各操作を組み合せて利用できるように，2 つの集合に対してその和集合と積集合を計算するための演算や，集合の各要素に対して同一の演算を行なった結果の和集合を取る演算 (マッピング演算) を定義した．
文書参照ツールでは，このように定められた操作，演算を組み合せ，その結果を視覚的に表示する．演算の結果が集合となる場合にはリストの形で表示し，木構造となる場合にはその形を表示する．この他，文書参照ツールは与えられた識別子の定義が記述されている文章を表示する機能や，与えられた単語を文書中から検索し，該当した文書を表示する機能等を持つ．図 3では，SPICE におけるあるプロセスの評価の際に参照するべき他のプロセスを木構造の形で表示している．
評価入力ツール
評価入力ツールとは評価時に利用され，対応関係や評価結果の入力，保存，表示を行なえる他，4.2節で述べた機能を実現し，規格文章の閲覧を行なうものである．
試作中の評価入力ツールを図 4に示す．
評価入力ツールでは，SPICE における品質評価作業のうちプロセスの習熟度評価の実行を主に支援する．まず，評価対象となるプロセスを選択すると，該当プロセスの定義，このプロセス定義中に記述されている他のプロセス，プロダクトとの関連が表示される．汎用作業を指定すると，該当する汎用作業の定義が表示され，判断基準を記述した文書や，その文書中に記載されているプロセスや作業成果物等の一覧が表示される．表示された一覧等から該当する項目の内容を参照を行なえる
他，該当する項目を実現している実際の作業内容を参照することができる．図 4はSPICE におけるあるプロセスと習熟度に着目して，評価に必要となる情報が表示されている状態を示す．
評価を行なった結果や 4 節で示される対応関係の入力結果はデータベースに保存される．評価結果の表示の際にはプロセスカテゴリー毎に表の形で表示する他，集計結果を百分率で表示することができる．対応関係の表示は表の形で行なわれる．
5.2

考察
本研究では，文書のモデル化に SGML を採用し，それに基づいたツールを試作した．SGML は電子文書の再利用，全文データベース等に利用されている例があり[12] [13]，広く使われている手法と言える．しかし，これらのデータベース等では同種類の大量の文書に対する検索を提供しているのに対し，本システムにおける文書参
5.3

FOSE '96

照ツールでは一つの長い文書に対する検索等の機能を提供している．また，SGMLベースの支援環境は一般に SGML 化された文書全体を対象としているが，本支援ツールは一部のみ SGML 化されている文書を対象としており，SGML ベースの支援環境では規模が大きすぎて使いにくいと考えられる．
実際のプロジェクトに対して品質評価を行なう場合には，非常に長い期間が必要となると言われている [2] [14]．評価入力ツールでは，評価結果を保存することができるため，長期間に渡る評価時にも利用することが可能であると考えられる．評価
入力ツールでは依然として評価値の決定をツールの利用者が行なわなければならな
いが，本ツールの利用者として実際の開発作業を行なっている作業者を仮定しているため，評価時において実際の開発作業を正しく反映させることができると考えられる．

6

まとめ

プロセスの品質評価時に利用できる評価支援システムを設計した．本システムは品質規格文書を SGML によりモデル化した文書を入力としている．本システムを利用することで，品質評価作業時に発生する文書閲覧作業を軽減されると考えられる．現在，本システムの実装として，2 種類のツールの試作が行なわれている [15]．
今回は品質規格文書として SPICE を取りあげたが，今後は他の規格等へ本手法を応用することを考えている．また，本システムを実装し運用することによって，システムの有効性を検証したい．
参考文献[ 1 ] Saiedian, H. and Kuzara, R.: \SEI Capability Maturity Model's Impact on Contractors",
IEEE Computer, Vol.28, No.1, pp.16{26 (1995).
[ 2 ] MacLennan, F. and Ostrolenk, G.: \The SPICE Trials: Validating the Framework", inProceedings of the 2nd International SPICE Symposium, pp.109{118 (1995).
[ 3 ] Paulk, M., Curtis, B., Chrissis, M. and Wever, C.: \Capability Maturity Model for Software, Version 1.1", Software Engineering Institute, CMU/SEI-93-TR-24 (1993)．
[ 4 ] Paulk, M., Curtis, B., Chrissis, M. and Wever, C.: \Key Practices of the Capability
Maturity Model, Version 1.1" , Software Engineering Institute, CMU/SEI-93-TR-25 (1993)．
[ 5 ] ISO 9000-3 Guidelines for the Application of ISO 9001 to the Development, Supply, andMaintenance of Software (1991).
[ 6 ] The SPICE Project: \Software Process Assessment { Part 1: Concepts and IntroductoryGuide", Version 0.02 (1994)[ 7 ] The SPICE Project: \Software Process Assessment { Part 2: A Model for Process Management", Version 0.01 (1994)[ 8 ] The SPICE Project: \Software Process Assessment { Part 5: Construction, Selection andUse of Assessment Instruments and Tools", Version 0.02 (1994)[ 9 ] The SPICE Project: \Software Process Assessment { Part 3: Rating Process", Version0.01 (1994)[10] ISO 8879: \Information Processing - Text and OÆce System - Standard GeneralizedMarkup Language (SGML)" (1986).
[11] 田中洋一: \文書記述言語 SGML とその動向", 情報処理, Vol.32, No.10, pp.1118{1125 (1991).
[12] 高柳由美子, 坂田英俊, 田中洋一: \SGML による全文データベースシステム", 情処研報,
93-CH-18-5, pp.35{42 (1993).
[13] 森田歌子, 鈴木政彦, 宮川謹至, 浜中寿: \SGML 方式よる情報管理誌全文データベース化の可能性と HTML による電子情報管理誌の試作", 情処研報, 95-FI-37-2, pp.7{14 (1995)[14] Woodman, I. and Hunter, R.: \Analysis of Assessment Data from Phase 1 of the SPICE
trials", Software Process Newsletter, No.6, pp.1{6 (1996).
[15] 松下誠, 世利至彦, 飯田元, 井上克郎: \品質評価規格文書の構造化とそれに基づくプロセス評
価支援システムの試作", 情処研報, 96-SE-109-7, pp. 49{56 (1996).