ソフトウェア製品系列の要求仕様可変ポイントにおける各々の製品の要求仕様可変部と前記要求仕様可変部が実行されるプログラム実行シナリオとを関連付ける要求仕様可変部シナリオ関連管理手段と、前記プログラム実行シナリオを実行するシナリオ実行手段と、前記シナリオ実行手段の実行結果からソフトウェア設計要素を抽出するソフトウェア設計要素抽出手段と、前記ソフトウェア設計要素抽出手段によって抽出されたソフトウェア設計要素から設計可変ポイントを抽出する設計可変部抽出手段と、前記要求仕様可変ポイントと、前記設計可変部抽出手段により抽出された設計可変ポイントとを関連付ける要求仕様可変ポイント設計可変ポイント関連管理手段と、を備えたソフトウェア開発支援装置。前記シナリオ実行手段の実行結果を実行ログとして保存するプログラム実行ログ保存手段を備え、前記ソフトウェア設計要素抽出手段では、前記実行ログからソフトウェア設計要素を抽出する請求項1記載のソフトウェア開発支援装置。前記要求仕様可変部シナリオ関連管理手段では、第1の要求仕様可変部と前記第1の要求仕様可変部が実行される第1のプログラム実行シナリオとを関連付け、前記第1の要求仕様可変部とは要求仕様が異なる第2の要求仕様可変部と前記第2の要求仕様可変部が実行される第2のプログラム実行シナリオとを関連付け、前記ソフトウェア設計要素抽出手段では、前記第1のプログラム実行シナリオの実行結果から第1のソフトウェア設計要素を抽出し、前記第2のプログラム実行シナリオの実行結果から第2のソフトウェア設計要素を抽出し、前記設計可変部抽出手段では、前記第1のソフトウェア設計要素と前記第2のソフトウェア設計要素とを比較して設計可変ポイントを抽出する請求項1または請求項2に記載のソフトウェア開発支援装置。ソフトウェア製品系列の要求仕様可変ポイントに対する各々の製品の要求仕様可変部と前記要求仕様可変部が実行されるプログラム実行シナリオとを関連付ける要求仕様可変部シナリオ関連管理ステップと、前記プログラム実行シナリオを実行するシナリオ実行ステップと、前記シナリオ実行ステップの実行結果からソフトウェア設計要素を抽出するソフトウェア設計要素抽出ステップと、前記ソフトウェア設計要素抽出ステップによって抽出されたソフトウェア設計要素から設計可変ポイントを抽出する設計可変部抽出ステップと、前記要求仕様可変ポイントと、前記設計可変部抽出ステップにより抽出された設計可変ポイントとを関連付ける要求仕様可変ポイント設計可変ポイント関連管理ステップと、からなるプログラム。非特許文献1に記載された内容は、ソフトウェア製品系列の要求仕様可変ポイントと設計可変ポイントとを、予め直交可変性モデルで関連付けて維持管理するものであるが、直交可変性モデルにより当該要求仕様可変ポイントと当該設計可変ポイントとの関連が維持管理されておらず、プログラムコードのみが存在する場合の課題については触れられていない。特許文献1に記載された発明は、ソフトウェア製品系列の要求仕様可変ポイントと設計可変ポイントとを、予め関連付けることにより、再利用するソフトウェアコンポーネントを抽出するものであるが、それらの関連が維持管理されておらず、プログラムコードのみが存在する場合の課題については触れられていない。特許文献2に記載された発明は、要求仕様書、設計モデル、プログラムコードのトレーサビリティを維持管理し、ある開発成果物に修正を与えた場合でもその他の開発成果物の影響波及範囲を追跡するものであるが、それらのトレーサビリティが維持管理されておらず、プログラムコードのみが存在する場合の課題については触れられていない。特許文献3に記載された発明は、プログラムコードから設計書を生成するものであるが、その設計書はどのような要求仕様に基づいて設計されたものであるかを知ることはできない。また、プログラムコードのみが存在する場合のように、要求仕様可変ポイントと設計可変ポイントとが関連付けられていないソフトウェア製品系列資産から、既に存在する要求仕様可変ポイントと設計可変ポイントとの関連を抽出することについては触れられていない。このように従来技術では、プログラムコードのみが存在する場合のように、要求仕様可変ポイントと設計可変ポイントとが関連付けられていないソフトウェア製品系列資産から、既に存在する要求仕様可変ポイントと設計可変ポイントとの関連を抽出することはできない。そのため、ソフトウェア製品系列において、既に存在する要求仕様可変ポイントに対して、新たな要求仕様可変部を設定して新製品のソフトウェアを設計する際、当該要求仕様可変ポイントに関連する設計可変ポイントを特定することができず、設計上の不具合を混入することがしばしばあった。そこで本発明は、プログラムコードのみが存在する場合のように、要求仕様可変ポイントと設計可変ポイントとが関連付けられていないソフトウェア製品系列資産から、既に存在する要求仕様可変ポイントと設計可変ポイントとの関連を抽出し、更に、それらの関連を維持管理するソフトウェア開発支援装置、および、プログラムを提供することを目的とする。上記課題を解決するために本発明のソフトウェア開発支援装置は、ソフトウェア製品系列の要求仕様可変ポイントにおける各々の製品の要求仕様可変部と前記要求仕様可変部が実行されるプログラム実行シナリオとを関連付ける要求仕様可変ポイントシナリオ関連管理手段と、前記プログラム実行シナリオを実行するシナリオ実行手段と、前記シナリオ実行手段の実行結果からソフトウェア設計要素を抽出するソフトウェア設計要素抽出手段と、前記ソフトウェア設計要素抽出手段によって抽出されたソフトウェア設計要素から設計可変ポイントを抽出する設計可変部抽出手段と、前記要求仕様可変ポイントと、前記設計可変ポイント抽出手段により抽出された設計可変ポイントとを関連付ける要求仕様可変ポイント設計可変ポイント関連管理手段と、を備える構成となっている。本発明によれば、プログラムコードのみが存在する場合のように、要求仕様可変ポイントと設計可変ポイントとが関連付けられていないソフトウェア製品系列資産から、要求仕様可変ポイントと設計可変ポイントとの関連を抽出することが可能であり、当該ソフトウェア製品系列を利用して、既に存在する要求仕様可変ポイントに対して、新たな要求仕様可変部を設定して新製品のソフトウェアを設計する際、ソフトウェア設計上の不具合混入を防止し、ソフトウェア開発作業の手戻りによる作業工数を削減することができる。以下、本発明の実施の形態を、図面を参照しながら説明する。図1は、本発明の実施の形態に係るソフトウェア開発支援装置の構成を示すブロック図である。図1において本発明の実施の形態に係るソフトウェア開発支援装置は、プログラムを格納し下記各処理部の処理動作、および、下記各データベースに保存されるデータを改変、参照するソフトウェア開発環境1と、要求仕様可変部とプログラム実行シナリオとの関連、設計可変部、および要求仕様可変ポイントと設計可変ポイントとの関連を表示する表示部2と、要求仕様可変部とプログラム実行シナリオとの関連を改変、参照する要求仕様可変部シナリオ関連管理部3と、要求仕様可変部とプログラム実行シナリオとの関連を保存する要求仕様可変部シナリオ関連データベース4と、設計可変部を改変、参照する設計可変部管理部6と、設計可変部を保存する設計可変部データベース7と、要求仕様可変ポイントと設計可変ポイントとの関連を改変、参照する要求仕様可変ポイント設計可変ポイント関連管理部9と、要求仕様可変ポイントと設計可変ポイントとの関連を保存する要求仕様可変ポイント設計可変ポイント関連データベース10と、プログラム実行シナリオを実行して実行ログを生成するシナリオ実行部11と、実行ログを一時的に保存するプログラム実行ログ保存部12と、実行ログからソフトウェア設計要素を抽出するソフトウェア設計要素抽出部13と、ソフトウェア設計要素を一時的に保存するソフトウェア設計要素保存部14と、ソフトウェア設計要素から設計可変部を抽出する設計可変部抽出部15と、を備えている。ソフトウェア開発環境1の利用者はソフトウェア開発者であり、ソフトウェア開発者は入力端末16を利用してソフトウェア開発環境1を操作する。図2は図1に示した要求仕様可変部シナリオ関連データベース4に要求仕様可変部とプログラム実行シナリオの関連を登録するに際し、事前に準備する要求仕様可変部のテーブルの構成と項目の例を示す図である。図2に示す要求仕様可変部テーブル20は、次のようにして構成される。即ち、要求仕様可変ポイントID21には、要求仕様可変部テーブル20のレコードを識別するために付与される一意の番号が格納される。要求仕様可変ポイント名22には、当該レコードに係る要求仕様可変ポイントを示す名称が格納される。要求仕様可変部製品123には、ソフトウェア製品系列において、ある製品1の当該レコードに係る要求仕様可変部が格納される。要求仕様可変部製品224には、ソフトウェア製品系列において、製品1とは異なる製品2の当該レコードに係る要求仕様可変部が格納される。図2は、要求仕様可変部が製品1、製品2の2つの場合を示しているが、ソフトウェア製品系列を適用した製品が3種類以上存在する場合には、要求仕様可変部製品123、要求仕様可変部製品224と同様に、要求仕様可変部テーブル20に各製品の要求仕様可変部を格納する列が追加される。図2において、要求仕様可変ポイントID21が001、要求仕様可変ポイント名22がLCDLiquidCrystalDisplay解像度である要求仕様可変部に対して、当該レコードに関連する要求仕様可変部製品123はQVGAQuarterVideoGraphicsArray、要求仕様可変部製品224はVGAVideoGraphicsArrayであることを示している。図2において、要求仕様可変ポイントID21が002、003、004である要求仕様可変部についても同様である。図3は図1に示した要求仕様可変部シナリオ関連データベース4のテーブルの構成と、登録された項目の例を示す図である。図3に示す要求仕様可変部シナリオ関連テーブル30は、次のようにして構成される。即ち、要求仕様可変ポイントID31には、要求仕様可変部シナリオ関連テーブル30のレコードを識別するために付与される一意の番号が格納される。要求仕様可変ポイント名32には、当該レコードに係る要求仕様可変ポイントを示す名称が格納される。要求仕様可変部製品133には、ソフトウェア製品系列において、ある製品1の当該レコードに係る要求仕様可変部が格納される。プログラム実行シナリオ製品134には、要求仕様可変部製品133に該当する機能要求、または、非機能要求品質特性要求を確認することが可能な操作手順が記されたシナリオが格納される。要求仕様可変部製品235には、ソフトウェア製品系列において、製品1とは異なる製品2の当該レコードに係る要求仕様可変部が格納される。プログラム実行シナリオ製品236には、要求仕様可変部製品235に該当する機能要求、または、非機能要求品質特性要求を確認することが可能な操作手順が記されたシナリオが格納される。図3は、要求仕様可変部が製品1、製品2の2つの場合を示しているが、ソフトウェア製品系列を適用した製品が3種類以上存在する場合には、要求仕様可変部製品133、プログラム実行シナリオ製品134、要求仕様可変部製品235、プログラム実行シナリオ製品236と同様に、要求仕様可変部シナリオ関連テーブル30に各製品の要求仕様可変部とプログラム実行シナリオを格納する列が追加される。図3において、要求仕様可変ポイントID31が001、要求仕様可変ポイント名32がLCD解像度である要求仕様可変部に対して、当該レコードに関連する要求仕様可変部製品133はQVGA、プログラム実行シナリオ製品134はSCENARIO_001_001、要求仕様可変部製品235はVGA、プログラム実行シナリオ製品2はSCENARIO_001_002であることを示している。図3において、要求仕様可変ポイントID31が002、003、004である要求仕様可変部についても同様である。要求仕様は、機能要求と非機能要求品質特性要求とから構成され、ソフトウェアが搭載されるコンピュータシステムとその利用者との境界に位置する動作上の仕様であり、コンピュータシステムの利用者は、コンピュータシステム内部のソフトウェアの構造や挙動に係る設計を知ることなく、コンピュータシステムの外側から要求仕様を認識することができる。従って、図3に示す要求仕様可変部シナリオ関連テーブルにおいて、要求仕様可変部とプログラム実行シナリオとを関連付けることが可能となる。図4は図1に示した設計可変部データベース7のテーブルの構成と、登録された項目の例を示す図である。図4に示す設計可変部テーブル40は、次のようにして構成される。即ち、設計可変ポイントID41には、設計可変部テーブル40のレコードを識別するために付与される一意の番号が格納される。設計可変ポイント実現方法42には、設計の可変ポイントを実現するためのソフトウェア設計上の手段が格納される。プログラミング言語がCの場合には、設計可変ポイントを実現するソフトウェア設計上の手段には、クラス、定数変数、列挙型列挙子などがある。図4の設計可変部テーブル40には、Cの場合の項目例を示している。設計可変ポイントを実現するためのソフトウェア設計手段は、適用するプログラミング言語により異なる。設計可変ポイント43には、当該レコードに係る設計可変ポイントを特定する名称が格納される。プログラミング言語がCの場合には、設計可変ポイント実現方法42が、クラス、定数変数、列挙型列挙子に対して、それぞれ、クラス名、定数変数名、列挙子名が格納される。設計可変部製品144には、ソフトウェア製品系列において、ある製品1の当該レコードに係る設計可変部が格納される。設計可変ポイント実現方法42が、クラス、定数変数、列挙型列挙子に対して、それぞれ、クラス名、定数値、定数値が格納される。設計可変部製品245には、ソフトウェア製品系列において、製品1とは異なる製品2の当該レコードに係る設計可変部が格納される。格納される値は、設計可変部製品144と同様である。図4は、設計可変部が製品1、製品2の2つの場合を示しているが、ソフトウェア製品系列を適用した製品が3種類以上存在する場合には、設計可変部製品144、設計可変部製品245と同様に、設計可変部テーブル40に各製品の設計可変部を格納する列が追加される。図4において、設計可変ポイントID41が001、設計可変ポイント実現方法42がクラス、設計可変ポイント43がDisplayTransferControllerである設計可変ポイントに対して、当該レコードに関連する設計可変部製品144はDisplayTransferControllerLowSpeed、設計可変部製品245はDisplayTransferControllerHighSpeedであることを示している。図4において、設計可変ポイントID31が002、003、004、005、006、007である設計可変部についても同様である。図5は図1に示した要求仕様可変ポイント設計可変ポイント関連データベース10のテーブルの構成と、登録された項目の例を示す図である。図5に示す要求仕様可変ポイント設計可変ポイント関連テーブル50は、次のようにして構成される。即ち、要求仕様可変ポイントID51には、要求仕様可変部テーブル20の要求仕様可変ポイントID21と同一の値が格納される。要求仕様可変ポイント名52には、要求仕様可変部テーブル20の要求仕様可変ポイント名22と同一の値が格納される。設計可変ポイントID53には、設計可変部テーブル40の設計可変ポイントID41と同一の値が格納される。設計可変ポイント実現方法54には、設計可変部テーブル40の設計可変ポイント実現方法42と同一の値が格納される。設計可変ポイント55には、設計可変部テーブル40の設計可変ポイント43と同一の値が格納される。図5において、要求仕様可変ポイントID51が001、要求仕様可変ポイント名52がLCD解像度である要求仕様可変部に対して、当該レコードに関連する設計可変部は、設計可変ポイントID53が001、設計可変ポイント実現方法54がクラス、設計可変ポイント55がDisplayTransferControllerである設計可変部と、設計可変ポイントID53が003、設計可変ポイント実現方法54が定数変数、設計可変ポイント55がWindowSizeHeightである設計可変部と、設計可変ポイントID53が004、設計可変ポイント実現方法54が定数変数、設計可変ポイント55がWindowSizeWidthである設計可変部と、設計可変ポイントID53が005、設計可変ポイント実現方法54がクラス、設計可変ポイント55がWigetHintSizeProducerである設計可変部と、から構成されることを示している。図5において、要求仕様可変ポイントID51が002、003、004である要求仕様可変部についても同様である。図6は、設計可変ポイントと設計可変部とを、Cの抽象クラスと具象クラスで実現した場合のCクラスヘッダ部の例を示す図である。本例は、設計可変部テーブル40における設計可変ポイントID41が001であるレコードに該当する。図6におけるクラスDisplayTransferController60は、設計可変ポイントであり、ソフトウェア製品系列の全ての製品に対して共通に利用されるクラスである。クラスDisplayTransferController60は、純粋仮想関数transfer61を有する抽象クラスである。図6におけるクラスDisplayTransferControllerLowSpeed62は、ソフトウェア製品系列の製品1に対して利用されるクラスである。クラスDisplayTransferController60を継承し、当該クラスの純粋仮想関数transfer61が、仮想関数transfer63によりオーバライドされた具象クラスである。図6におけるクラスDisplayTransferControllerHighSpeed64は、ソフトウェア製品系列の製品2に対して利用されるクラスである。クラスDisplayTransferController60を継承し、当該クラスの純粋仮想関数transfer61が、仮想関数transfer65によりオーバライドされた具象クラスである。図7は、設計可変ポイントと設計可変部とを、Cの抽象クラスと具象クラスで実現した場合のCクラス実装部の例を示す図である。本例は、設計可変部テーブル40における設計可変ポイントID41が001であるレコードに該当し、図6に示したCクラスヘッダ部に対応するCクラス実装部である。図7におけるメソッドDisplayTransferControllerLowSpeed::transfer70は、ソフトウェア製品系列の製品1に対して利用される。ソフトウェア製品系列の対象製品のディスプレイが小さい場合のデータ転送アルゴリズムが実装されている。図7におけるメソッドDisplayTransferControllerHighSpeed::transfer71は、ソフトウェア製品系列の製品2に対して利用される。ソフトウェア製品系列の対象製品のディスプレイが大きい場合のデータ転送アルゴリズムが実装されている。図8は、設計可変ポイントと設計可変部とを、Cの定数変数で実現した場合のCプログラムコードの例を示す図である。本例は、設計可変部テーブル40における設計可変ポイントID41が006であるレコードに該当する。図8における定数変数DataCapacity80、82は、設計可変ポイントであり、ソフトウェア製品系列の全ての製品に対して共通に利用される定数変数である。定数変数DataCapacity80と、定数変数DataCapacity82とが、それぞれ、ソフトウェア製品系列の製品1、製品2で利用されていることを示している。図8における定数変数DataCapacity80に設定された値81である128MBは、ソフトウェア製品系列の製品1に対して利用される値であり、設計可変部に該当する。図8における定数変数DataCapacity82に設定された値83である512MBは、ソフトウェア製品系列の製品2に対して利用される値であり、設計可変部に該当する。図9は、設計可変ポイントと設計可変部とを、Cの列挙型列挙子で実現した場合のCプログラムコードの例を示す図である。本例は、設計可変部テーブル40における設計可変ポイントID41が007であるレコードに該当する。図9における列挙型MailerAttributes90、93は、設計可変ポイントであり、ソフトウェア製品系列の全ての製品に対して共通に利用される列挙型である。図9における列挙型MailerAttributes90、93に属する列挙子MAX_NUM_MAIL_ENTITIES91、94は、設計可変ポイントであり、ソフトウェア製品系列の全ての製品に対して共通に利用される列挙子である。図9における列挙子MAX_NUM_MAIL_ENTITIES91に設定された値92である1000は、ソフトウェア製品系列の製品1に対して利用される値であり、設計可変部に該当する。図9における列挙子MAX_NUM_MAIL_ENTITIES94は、に設定された値95である5000は、ソフトウェア製品系列の製品2に対して利用される値であり、設計可変部に該当する。図10は、図1に示した要求仕様可変部シナリオ関連データベース4に登録され、シナリオ実行部11により実行されるプログラム実行シナリオの構成と例を示す図である。図10は、1から10までの数値キーと、上下左右キーと、オンフックキーと、オフフックキーと、を入力手段として備える携帯電話のプログラム実行シナリオの例である。プログラム実行シナリオ100は、入力イベントID101、入力イベント種別102、入力値103の3個のフィールドより構成される。プログラム実行シナリオの入力イベントの各レコードは、入力イベントID101により一意に識別され、入力イベントIDの数値の昇順に、入力イベント種別102の入力値103が携帯電話へ入力される。入力イベントID101が001であるレコードは、入力イベント種別102がキー長押下LONG_PRESS、入力値103がオンフックキーKEY_ON_HOOKであることを示している。入力イベントID101が002であるレコードは、入力イベント種別102が待ちWAIT、入力値103が60秒60であることを示している。入力イベントID101が005であるレコードは、入力イベント種別102が実行ログ記録LOGGING、入力値103が開始STARTであり、図1におけるプログラム実行ログ保存部12へ保存する実行ログの記録を開始することを示している。入力イベントID101が010であるレコードは、入力イベント種別102が実行ログ記録LOGGING、入力値103が終了ENDであり、図1におけるプログラム実行ログ保存部12へ保存する実行ログの記録を終了することを示している。このようにして、プログラム実行シナリオ100において、入力イベントに、実行ログの記録の開始と終了を用意することにより、要求仕様可変部に該当する部分のみを実行ログとして記録し、プログラム実行ログ保存部12に保存することができる。図10は、キーを入力手段として備える携帯電話のプログラム実行シナリオの例であるが、ソフトウェア製品系列を適用する製品の特性に応じて、プログラム実行シナリオの入力イベント種別102と入力値103は異なる。例えば、キーボードを供えた携帯電話の場合、入力イベント種別が、a、bなどの英文字も候補となる。図11は、図1に示したシナリオ実行部11が、図10に示したプログラム実行シナリオを実行することにより、図1に示したプログラム実行ログ保存部12に格納される実行ログの構成と例を示す図である。実行ログ110は、Cを用いてプログラムコードが記述されたソフトウェアの例である。実行ログには、Cのメソッド、定数変数、列挙型列挙子など、設計可変部を構成するソフトウェア設計要素が生成される。実行ログ110の一部である111、即ち、ProgramScenarioName:SCENARIO_001_001は、プログラム実行シナリオであり、図3に示した要求仕様可変部シナリオ関連テーブル30に格納されているプログラム実行シナリオと同一である。実行ログ110の一部である112は、関数mainから定数変数someVariable001が利用され、その値が16であることを示している。実行ログ110の一部である113は、メソッドClassName001::methodName001からメソッドClassName002::methodName001が呼び出され、メソッドClassName002::methodName001から定数変数someVariable002が利用され、その値が500であることを示している。実行ログ110の一部である114は、メソッドClassName003::methodName001から列挙子SOME_ENUMERATOR_001が利用され、その値が16であることを示している。Cではなく、Java登録商標など、他のプログラミング言語を用いてプログラムコードが記述されている場合は、実行ログに保存される内容は異なるが、設計可変部を構成するソフトウェア設計要素が生成されることには変わりない。図12は、図1に示したソフトウェア開発環境1における処理動作を説明するためのフローチャートである。図12においてステップS101では、要求仕様可変部テーブル20より要求仕様可変ポイントを選択する。ステップS102では、ステップS101で選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の複数製品の要求仕様可変部に該当するプログラム実行シナリオとを関連付け、要求仕様可変部シナリオ関連テーブル30を生成する。ステップS103では、ステップS102で選択されたプログラム実行シナリオを実行して実行ログを生成する。ステップS104では、ステップS103で生成された実行ログからソフトウェア設計要素を抽出する。ステップS105では、ステップS104で抽出したソフトウェア設計要素から設計可変部を抽出する。ステップS106では、ステップS101で選択された要求仕様可変ポイントと、ステップS105で抽出した設計可変ポイントとを関連付け、要求仕様可変ポイント設計可変ポイント関連テーブル50を生成する。図12に示した各ステップの詳細を以下に示す。図13は、図12に示した処理動作のうち、要求仕様可変ポイントとプログラム実行シナリオとを関連付けるステップS102の処理動作の詳細を説明するためのフローチャートである。要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を、要求仕様可変部シナリオ関連管理部3を利用して、表示部2に表示する。表示部2において、ソフトウェア開発者は入力端末16から、ステップS101で選択された要求仕様可変ポイントを処理対象として選択するステップS201。ソフトウェア製品系列の全ての製品に対して、要求仕様可変部とプログラム実行シナリオとの関連付けが終了した場合ステップS202のyes、要求仕様可変部とプログラム実行シナリオとの関連付けを終了するステップS205。ソフトウェア製品系列の全ての製品に対して、要求仕様可変部とプログラム実行シナリオとの関連付けが終了していない場合ステップS202のno、表示部2において、ソフトウェア開発者は入力端末16から、製品の要求仕様可変部に該当するプログラム実行シナリオを選択しステップS203、要求仕様可変部シナリオ関連管理部3を利用して、要求仕様可変部シナリオ関連テーブル30を改変し、要求仕様可変部シナリオ関連データベース4へ格納するステップS204。以上により、選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の全ての製品の要求仕様可変部とプログラム実行シナリオとが関連付けられて保存された。図14は、図12に示した処理動作のうち、プログラム実行シナリオを実行するステップS103の処理動作の詳細を説明するためのフローチャートである。要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を、要求仕様可変部シナリオ関連管理部3を利用して、表示部2に表示する。表示部2において、ソフトウェア開発者は入力端末16から、ステップS101で選択された要求仕様可変ポイントを処理対象として選択するステップS301。ソフトウェア製品系列の全ての製品に対して、プログラム実行シナリオの実行が終了した場合ステップS302のyes、プログラム実行シナリオの実行を終了するステップS306。ソフトウェア製品系列の全ての製品に対して、プログラム実行シナリオの実行が終了していない場合ステップS302のno、表示部2において、ソフトウェア開発者が入力端末16から、製品の要求仕様可変部に該当するプログラム実行シナリオを選択すると、要求仕様可変部シナリオ関連管理部3を利用して、要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を参照し、プログラム実行シナリオが取得されるステップS303。シナリオ実行部11は、ステップS303で取得されたプログラム実行シナリオを実行しステップS304、実行結果を実行ログとしてプログラム実行ログ保存部12に保存するステップS305。以上により、選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の全ての製品の要求仕様可変部に関連付けられたプログラム実行シナリオが実行され、実行結果が実行ログとして保存された。図15は、図12に示した処理動作のうち、ソフトウェア設計要素を抽出するステップS104の処理動作の詳細を説明するためのフローチャートである。要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を、要求仕様可変部シナリオ関連管理部3を利用して、表示部2に表示する。表示部2において、ソフトウェア開発者は入力端末16から、ステップS101で選択された要求仕様可変ポイントを処理対象として選択するステップS401。ソフトウェア製品系列の全ての製品に対して、ソフトウェア設計要素の生成が終了した場合ステップS402のyes、ソフトウェア設計要素の生成保存を終了するステップS406。ソフトウェア製品系列の全ての製品に対して、ソフトウェア設計要素の生成保存が終了していない場合ステップS402のno、表示部2において、ソフトウェア開発者が入力端末16から、製品の要求仕様可変部に該当するプログラム実行シナリオを選択すると、シナリオ実行部11を利用して、プログラム実行ログ保存部12に格納されている実行ログ110が取得されるステップS403。ソフトウェア設計要素抽出部13は、ステップS403で取得された実行ログ110からソフトウェア設計要素を抽出するステップS404。ソフトウェア設計要素抽出部13は、ステップS404で抽出したソフトウェア設計要素をソフトウェア設計要素保存部14に保存するステップS405。ソフトウェア設計要素は、適用するプログラミング言語により異なる。Cの場合には、図6と図7に示すクラス、図8に示す定数変数、図9に示す列挙型列挙子などである。以上により、選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の全ての製品の要求仕様可変部に関連付けられたプログラム実行シナリオが実行され、実行結果が実行ログとして保存され、実行ログからソフトウェア設計要素が生成された。図16は、図12に示した処理動作のうち、設計可変部を抽出するステップS105の処理動作の詳細を説明するためのフローチャートである。要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を、要求仕様可変部シナリオ関連管理部3を利用して、表示部2に表示する。表示部2において、ソフトウェア開発者は入力端末16から、ステップS101で選択された要求仕様可変ポイントを処理対象として選択するステップS501。次に、設計可変部データベース7に格納されている設計可変部テーブル40を、設計可変部管理部6を利用して、表示部2に表示する。ソフトウェア製品系列の2つの製品の組み合わせ製品A、製品B全てに対して、設計可変部の生成保存が終了した場合ステップS502のyes、設計可変部の生成を終了するステップS506。ソフトウェア製品系列の2つの製品の組み合わせ製品A、製品Bとは、当該ソフトウェア製品系列に属する任意の2つの製品を選択した組み合わせであり、組み合わせの順序は問わない。例えば、ソフトウェア製品系列に3製品が属し、3製品を、それぞれ、製品1、製品2、製品3とすると、製品A、製品Bの組み合わせは、以下の3通りとなる。製品A、製品B=製品1、製品2製品A、製品B=製品2、製品3製品A、製品B=製品3、製品1ソフトウェア製品系列の2つの製品の組み合わせ製品A、製品B全てに対して、設計可変部の生成保存が終了していない場合ステップS502のno、表示部2において、ソフトウェア開発者は入力端末16から、設計可変部抽出部15を利用して、製品Aのソフトウェア設計要素を選択するステップS503。次に、ソフトウェア開発者は入力端末16から、同一の方法で製品Bのソフトウェア設計要素を選択するステップS504。設計可変部抽出部15は、製品Aのソフトウェア設計要素と、製品Bのソフトウェア設計要素との差分を算出して設計可変部を生成し、設計可変部管理部6を利用して、設計可変部テーブル40を改変し、設計可変部データベース7へ登録する。更に、設計可変部管理部6を利用して、設計可変部テーブル40を表示部2へ表示するステップS505。図17は、ソフトウェア製品系列の製品である製品1と製品2の実行ログから、図15に示した処理動作により抽出された製品1のソフトウェア設計要素170と、製品2のソフトウェア設計要素175である。設計可変部を抽出するためには、製品1のソフトウェア設計要素と、製品2のソフトウェア設計要素との差分を抽出する。図17において、Cの定数変数である製品1のWindowSizeHeight171の値が320であるのに対し、製品2のWindowSizeHeight176の値が640である。当該例は、設計可変ポイントが、Cの定数変数WindowSizeHeight、設計可変部が、製品1では320、製品2では640、となる。当該例は、図4に示した設計可変部テーブルの設計可変ポイントID41が003であるレコードに対応した例である。図17において、Cの定数変数である製品1のWindowSizeWidth172の値が240であるのに対し、製品2のWindowSizeWidth177の値が480である。当該例では、設計可変ポイントが、Cの定数変数WindowSizeWidth、設計可変部が、製品1では240、製品2では480、となる。当該例は、図4に示した設計可変部テーブルの設計可変ポイントID41が004であるレコードに対応した例である。図17において、Cのメソッドである製品1のWidgetHintSizeProducerSmallWindow::produceWidgetHint173と、製品2のWidgetHintSizeProducerLargeWindow::produceWidgetHint178が差分である。当該例は、設計可変ポイントが、CのクラスWidgetHintSizeProducer、設計可変部が、製品1ではCのクラスWidgetHintSizeProducerSmallWindow、製品2ではCのクラスWidgetHintSizeProducerLargeWindow、となる。なお、製品1で使用されているCのクラスWidgetHintSizeProducerSmallWindowと、製品2で使用されているCのクラスWidgetHintSizeProducerLargeWindowのスーパークラスであるWidgetHintSizeProducerが存在し、ソフトウェア製品系列の全ての製品において使用されていると仮定した。当該例は、図4に示した設計可変部テーブルの設計可変ポイントID41が005であるレコードに対応した例である。図17において、Cのメソッドである製品1のDisplayTransferControllerLowSpeed::transfer174と、製品2のDisplayTransferControllerHighSpeed::transfer179が差分である。当該例は、設計可変ポイントが、CのクラスDisplayTransferController、設計可変部が、製品1ではCのクラスDisplayTransferControllerLowSpeed、製品2ではCのクラスDisplayTransferControllerHighSpeed、となる。なお、製品1で使用されているCのクラスDisplayTransferControllerLowSpeedと、製品2で使用されているCのクラスDisplayTransferControllerHighSpeedのスーパークラスであるDisplayTransferControllerが存在し、ソフトウェア製品系列の全ての製品において使用されていると仮定した。当該例は、図4に示した設計可変部テーブルの設計可変ポイントID41が001であるレコードに対応した例である。以上により、選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の全ての製品の要求仕様可変部に関連付けられたプログラム実行シナリオが実行され、実行結果が実行ログとして保存され、実行ログからソフトウェア設計要素が生成され、設計可変部が生成され、保存された。図18は、図12に示した処理動作のうち、要求仕様可変ポイントと設計可変ポイントとを関連付けるステップS106の処理動作の詳細を説明するためのフローチャートである。要求仕様可変部シナリオ関連データベース4に格納されている要求仕様可変部シナリオ関連テーブル30を、要求仕様可変部シナリオ関連管理部3を利用して、表示部2に表示する。表示部2において、ソフトウェア開発者は入力端末16から、ステップS101で選択された要求仕様可変ポイントを処理対象として選択するステップS601。次に、設計可変部データベース7に格納されている設計可変部テーブル40を、設計可変部管理部6を利用して、表示部2に表示する。その際、ソフトウェア開発者がステップS601で選択した要求仕様可変ポイントに関連付けられたプログラム実行シナリオが実行され、実行結果が実行ログとして保存され、実行ログからソフトウェア設計要素が抽出され、その結果として生成された設計可変部のみが、表示部2に表示される。表示形式は、設計可変部テーブル40である。次に、要求仕様可変ポイント設計可変ポイント関連データベース10に格納されている要求仕様可変ポイント設計可変ポイント関連テーブル50を、要求仕様可変ポイント設計可変ポイント関連管理部9を利用して、表示部2に表示する。表示部2に表示された設計可変ポイント全てに対して、要求仕様可変ポイントと設計可変ポイントとの関連付けが終了した場合ステップS602のyes、設計可変部の生成を終了するステップS604。表示部2に表示された設計可変ポイント全てに対して、要求仕様可変ポイントと設計可変ポイントとの関連付けが終了していない場合ステップS602のno、要求仕様可変ポイント設計可変ポイント関連管理部9は、要求仕様可変部シナリオ関連管理部3を利用して、要求仕様可変部シナリオ関連データベース4から、ステップS601で選択した要求仕様可変ポイントを選択し、設計可変部管理部6を利用して、設計可変部データベース7に格納されている設計可変ポイントを選択し、当該要求仕様可変ポイントと当該設計可変ポイントとを関連付ける。要求仕様可変ポイント設計可変ポイント関連管理部9は、当該関連付けによって、要求仕様可変ポイント設計可変ポイント関連テーブル50を改変し、要求仕様可変ポイント設計可変ポイント関連データベース10へ登録する。更に、要求仕様可変ポイント設計可変ポイント関連管理部9は、要求仕様可変ポイント設計可変ポイント関連テーブル50を表示部2へ表示するステップS603。以上により、選択された要求仕様可変ポイントに対して、ソフトウェア製品系列の全ての製品の要求仕様可変部に関連付けられたプログラム実行シナリオが実行され、実行結果が実行ログとして保存され、実行ログからソフトウェア設計要素が生成され、設計可変部が生成され、要求仕様可変ポイントと設計可変ポイントとが関連付けられて保存された。本実施の形態により、要求仕様可変ポイントと設計可変ポイントとが関連付けられていないソフトウェア製品系列資産から、要求仕様可変ポイントと設計可変ポイントとの関連を抽出することが可能となり、当該ソフトウェア製品系列を利用して、要求仕様可変部に新たなバリエーションを設定して新製品のソフトウェアを設計する際、要求仕様可変ポイントに対する設計可変ポイントを漏れなく特定することによって、ソフトウェア設計上の不具合混入を防止し、ソフトウェア開発作業の手戻りによる作業工数を削減することができ、極めて有用である。