ある質問CoBRA研究会のホームページです。1997年にドイツフラウンホーファ財団実験的ソフトウェア工学研究所(IESE)の研究員により発表されました。Assessmentの省略です。機会があったら、直接開発者に聞いてみたいと思います。インパクトがあるものにという気持ちが入っているのではと思っています。見積りに長けた熟練者と過去実績データ10個程度です。(合わせて"KKD")は良くないといわれますが、「度胸」は良くないとしても、熟練者の「勘」「経験」は重要です。熟練者の中にのみある間は、ブラックボックスでその人以外使えないので、その「勘」と「経験」をモデル化するのがCoBRA法です。CoBRA法が対象とするアプリケーション領域に、向き・不向きはあるのでしょうか。基本的にはないと考えています。Q1.1.3の質問の条件が整えば、大丈夫です。Q1.3.1の実績にも示すとおり、ユーザ企業の情報システム部門での試行実績はあります。考え方は汎用的なので、組込み系でも使えますし、実績もあります。Q1.1.3の条件が整えば、大丈夫です。派生開発の多い組込み系の方が向いているのではないか、という意見もあります。CoBRA法を利用する前提として、どの程度のアプリケーション開発の実績が必要ですか。10個程度あると十分です。その10個について、どのようなプロジェクトだったかが分かる人の確保が必要です。日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。CoBRA法を経験し理解している人がいれば、アドバイスを受けながら比較的容易に導入できます。手法自体はあまり複雑なものではありません。CoBRA法を知っている人から1回じっくり話しを聞けば、どのようなものか分かります。独学については、解説資料として「CoBRA法入門」がありますし、CoBRA法を知っている人がいれば、その人に聞くのも早道です。概要は、「コンテンツ・メニュー」>「CoBRA法とは」を見てください。参考資料一覧は、「コンテンツ・メニュー」>「役立つ情報」を参照してください。CoBRA法は、正確には、コスト(又は工数)見積りモデルの「構築手法」です。個々の組織の状況に応じた見積りモデル(見積り方法)を構築するための手段を提供します。この点が他の見積り手法と大きく違う点です。CoBRA法で構築する見積りモデルは、一般にパラメトリック法と呼ばれるものであり、その一つであるCOCOMOは工数と規模のベースラインの関係に変動要因を加味している点で最も近い構造となっています。COCOMOはある特定の組織(NASA)のデータに基づいてパラメータが予め設定されています。FP法は、見積り対象が「規模」です。CoBRAモデルでの規模指標として使えます。積上げ法は、プロジェクトを個々の作業に分けてそれぞれ見積もったものの総和を取る方法です。ミクロ的な観点から見積もる方法です。その点、CoBRA法で構築した見積りモデルは、全体規模から全体コストを見積もる使われ方が主なので、マクロ的なものです。相互補完的な関係にあります。これまでの実績としては、例えば2007年度のIPA/SECが実施した試行では、平均誤差として、次のような結果が得られています。(平均誤差とは、予実差の絶対値を実績で割った割合です。CO1、CO2ともに20%の場合、この2つで工数が1.2×1.2=1.44倍になるという考えに基づくのが[式1]です。一方のCoBRA法([式2])では、変動要因を"互いに干渉しない"ように定義し、CO2についても、"元の工数に対して20%を計上する"と考えます。ちなみに、Π(1+COi)を展開してCOの一次項までを取り出し、二次以上の項は"COが互いに干渉しないためゼロ"と見なすと、(1+�任Oi)になります。CoBRA法では、変動要因間の干渉をモデル化するために、ある変動要因を「間接要因」と定義し、特定の変動要因に影響を及ぼす状況を設定することができます。CoBRA研究会が把握している範囲では、2011年3月31日現在、国内では試行も含めて15組織がCoBRAモデルを作っています。このうち、2010年4月以降の事例が6組織あり、急速な拡大が予想されています。海外では、ドイツで2事例、オーストラリアで1事例、インドで1事例がIESEのホームページで紹介されています。(http://www.cobrix.org/cases/index.html)。2010年3月30日に(独)情報処理推進機構が「CoBRA法に基づく見積り支援ツール」を公開しました。IESEが開発したCOBRIXツールがあります。概算見積りにおいて有効です。規模が確定していない場合でも、概算の規模を使って工数を見積もることができます。規模が確定したら、再見積りをすることをお勧めします。見積り段階での見込みの評価値(0-3の4段階)を設定すれば大丈夫です。その後で、見込みの状況と異なることが分かった場合は、再見積りをしてください。レベルを見直して再見積りをし、当初想定した工数や工数分布がどのように変化したか、確認するのが望ましいです。規模はCoBRAモデルの入力情報です。従って、CoBRA以外の手法で規模を別途見積もる必要があります。そんなことはありません。普段の見積りで使っている規模指標をお使いください。単位を混ぜないで、統一してください。CoBRA法を使うと、見積りのコスト構造を、変動要因とその影響度という形で明らかにできます。変動要因のうち、お客様と調整可能なものを、双方で積極的にすり合わせることで、見積りへの納得感が増します。見積りのコスト構造が明確になりますので、コスト削減だけでなく、コストが想定以上に発生する場合の根拠説明にも有効です。根拠を示しながらお客様とそのような調整ができることがメリットです。リスクアセスメントでの活用として、�@予算超過確率グラフを使った予算超過リスクの評価、�A感度分析グラフを使ったコストマネジメントの重点把握、という例があります。「5.」に述べるIPAのCoBRAツールにはこの機能が入っており、操作マニュアル等で解説されています。このホームページでも紹介したいと思います。「予算超過か予算内かという点において中立である」ことが分かります。50%以外の超過確率になるような工数を見積り工数とすることも可能です。具体的には、許容できるリスクの程度に応じて超過確率を自由に設定し、そうなるような見積り工数を計算することができます。超概算で良いので、仮の規模を入力し、工数を見積もってください。その後、全体の開発量がある程度見えてきた段階で、規模を推定し直し、工数を再見積りしてください。工数算定式の�任Oを計算し、工数から規模を逆算することができます。汎用的な考え方ですので、工数見積り以外への応用も可能です。CoBRA法を開発したIESEでは、同様の考えを品質見積りに適用する「HyDEEP」という手法に取り組んでいます。見積りに長けた熟練者に協力してもらい、ブレーンストーミングにより変動要因を洗い出します。その際、CoBRA法を経験し理解している人がコーディネータ役になるのが望ましいです。モデル構築後に、目標とする見積り精度が出ない場合、三角分布の数字の見直しも検討すると良いと思います。基本的には難しいです。日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。CoBRAモデルの構築においては、現場の熟練者の方の協力が必要です。モデルを構築してしまえば、見積りの手順自体はとてもシンプルですので、手間をかけずに見積りができます。モデル構築においても、日立製作所の幕田氏により、プロジェクト記録から初期モデルを構築する方法が紹介されています。モデル構築は難しそう。CoBRAツールは、2007年度のCoBRA法の実証実験でのデータを集約したものを参考値として搭載しています。それを使えば、簡単にCoBRA法のモデル構築や見積り、リスク評価を体験できます。言語別にモデルを分けることは可能です。その一方で、言語が違っても変動要因は変わらないという場合は、同じモデルを複数の言語に適用することもできます。開発プロセスによってモデルを分けることは可能です。その一方で、開発プロセスが違っても変動要因は変わらないという場合は、同じモデルを複数の開発プロセスで使うこともできます。CoBRA法で求めるαと、自社の生産性(実績規模と実績工数から計算)とを別々に管理し、その間の変換式を定めておくと良いと思います。CoBRA法による見積りモデル構築を行った経験のあるメンバから構成しています。ご経験のある場合は、すぐにご参加いただけます。未経験の方については、2010年度から技術セミナーの開催等のフォローを開始しました。2011年4月の「CoBRA法入門」出版もその一環です。本研究会はCoBRA法の普及も考えており、2010年度から、技術セミナーの開催や各種イベントでの講演を行っています。CoBRAツール)についてのFAQを掲載します。このFAQは、IPAと連携して作成しています。実績工数には、過去プロジェクトで実際に発生した工数や金額を入力します。実績規模には、ライン数、FP数、画面数といった実際の開発量を入力します。=FP、とした場合は、過去プロジェクトの開発金額をFPと変動要因から説明するモデルを構築することになります。2007年度に国内で、CoBRA法の実証実験(「先進的見積り手法実証と普及展開の調査」)をしました。簡易版で使用している業種別の三角分布定義は、この実証実験の参加企業から集めた定義を集約したものです。簡易版では、ユーザが利用したデータは蓄積されません。入力したデータを後で再利用したい場合は、「モデルパラメータのエクスポート」機能を使って、パラメータファイルをお使いのPCに保存し、次回利用開始時にそれをインポートしてください。簡易版の業種別の数値を流用して見積りモデルを構築してください。モデル構築後、もし期待する見積り精度が出ない場合は、数値の見直しを検討すると良いと思います。三角分布の『(間接)』列は、間接要因(がある場合の直接要因)の影響度を設定します。具体的な設定方法の図のとおりです。CO1を直接要因、CO2をCO1の間接要因とします。・CO1の『(間接)』列=CO1がレベル3でCO2がレベル3の場合の、工数へのCO1の影響度となります。従って、『(間接)』列の値は、『(直接)』列の値よりもそれぞれ大きな値である必要があります。CO2を間接要因とします。CO2自体に設定している値は、CO2が直接要因でもある場合に使われます。CO2が直接及び間接要因である場合の例を図に示します。AとBを直接要因、Cを各々に対する間接要因とします。統合ツールでは、CがAに及ぼす影響と、Bに及ぼす影響を個別に設定できます。Cが"レベル3"の時の、工数へのA(或いはB)の影響度として設定します。具体的には、CがAに及ぼす影響は、Aの三角分布の『(間接)』列に、CがBに及ぼす影響は、Bの三角分布の『(間接)』列に反映します。ツールでは、1つの直接要因に2つ以上の間接要因を設定できません。理論上は可能ですが、ツールでは設定できません。代替案として、BとCの性質を併せ持った変動要因「B&C」を定義し、「B&C」をAの間接要因とする方法があります。間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。Aは直接要因、BはAの間接要因、CはBの間接要因という関係です。理論上は可能ですが、ツールでは設定できません。代替案として、B←Cの性質を反映した変動要因「B←C」を定義し、「B←C」をAの間接要因とする方法があります。間接要因は、理論上はモデルの精緻化につながるのですが、熟練者の感覚を精緻に定量化することは困難なので、現実解として、充分に説明できる直接要因を探ることを推奨しています。