(57)【要約】【課題】  製品系列の複数製品のアーキテクチャと機能特性と非機能特性を対応づけながら、再利用コンポーネントの設計を行うソフトウェア設計支援装置および方法を提供する。【解決手段】  機能特性テーブル２と、非機能特性テーブル３と、対象製品系列の製品についての仮説や既存製品のアーキテクチャの定義を格納するアーキテクチャテーブル５と、アーキテクチャと機能特性との関連の定義を格納するアーキテクチャ機能特性関連テーブル６と、機能特性と再利用コンポーネントの関連の定義を格納する機能特性再利用コンポーネント関連テーブル７と、アーキテクチャテーブル５に情報を設定するアーキテクチャ設定処理部８と、機能特性に対応づけた再利用コンポーネントを機能特性再利用コンポーネント関連テーブル７に情報を設定する再利用コンポーネント設定処理部１０と、を含んで構成される。【選択図】図１
2007086929.tif 000002
【特許請求の範囲】
【請求項１】
製品系列を持つ製品のソフトウェアを複数のアーキテクチャと機能特性を対応付けながら設計支援するソフトウェア設計支援装置において、製品系列の製品についての仮説又は既存のアーキテクチャの定義を格納するアーキテクチャ記憶手段と、階層化した機能特性の定義を格納する機能特性記憶手段と、階層化した非機能特性の定義を格納する非機能特性記憶手段と、前記アーキテクチャ記憶手段にアーキテクチャを設定するアーキテクチャ設定手段と、前記機能特性記憶手段に格納された機能特性と前記アーキテクチャ記憶手段に設定されたアーキテクチャを読み出し、機能特性とアーキテクチャの対応を記載したマトリックスを生成するマトリックス生成手段と、前記マトリックス生成手段で生成されたマトリックス上で前記機能特性、前記非機能特性及び前記アーキテクチャを相互に連携させてアーキテクチャと整合した機能特性を展開し当該機能特性に基づいて再利用コンポーネントの設計を行う再利用コンポーネント設計手段と、を含むことを特徴とするソフトウェア設計支援装置。
【請求項２】
前記アーキテクチャ設定手段は、アーキテクチャとしてサブシステム、基盤ソフトウェア、タスクとそれぞれの属性を定義し、設定したアーキテクチャを前記アーキテクチャ記憶手段に格納することを特徴とする請求項１記載のソフトウェア設計支援装置。
【請求項３】
前記再利用コンポーネント設計手段は、前記マトリックス生成手段により生成されたマトリックス上に当該アーキテクチャに係るサブシステム、基盤ソフトウェア、タスクとそれぞれの属性を展開し、展開した当該アーキテクチャと当該機能特性との対応関係から再利用コンポーネントを抽出することを特徴とする請求項１記載のソフトウェア設計支援装置。
【請求項４】
前記再利用コンポーネント設計手段は、機能特性出現度数を計測し、計測した機能特性出現度数を目安に再利用コンポーネントを抽出することを特徴とする請求項３記載のソフトウェア設計支援装置。
【請求項５】
前記再利用コンポーネント設計手段は、再利用コンポーネントを抽出する際にツリー階層図と表によりマッピング情報を表示することを特徴とする請求項３記載のソフトウェア設計支援装置。
【請求項６】
製品系列を持つ製品のソフトウェアを複数のアーキテクチャと機能特性を対応付けながら設計支援するソフトウェア設計支援方法において、製品系列の製品についての仮説又は既存のアーキテクチャの定義を格納するアーキテクチャテーブル、階層化した機能特性の定義を格納する機能特性テーブルおよび階層化した非機能特性の定義を格納する非機能特性テーブルを生成する段階と、生成したアーキテクチャテーブルにアーキテクチャを設定する段階と、格納された機能特性および設定されたアーキテクチャを読み出し、機能特性とアーキテクチャの対応を記載したマトリックスを生成する段階と、生成されたマトリックス上で機能特性、非機能特性及びアーキテクチャを相互に連携させてアーキテクチャと整合した機能特性を展開し当該機能特性に基づいて再利用コンポーネントの設計を行う段階、を含むことを特徴とするソフトウェア設計支援方法。
【請求項７】
製品系列の製品についての仮説又は既存のアーキテクチャの定義を格納するアーキテクチャテーブルと、階層化した機能特性の定義を格納する機能特性テーブルと、階層化した非機能特性の定義を格納する非機能特性テーブルを備え、製品系列を持つ製品のソフトウェアを複数のアーキテクチャと機能特性を対応付けながら設計支援するソフトウェア設計支援プログラムであって、コンピュータに、生成したアーキテクチャテーブルにアーキテクチャを設定する手順と、格納された機能特性および設定されたアーキテクチャを読み出し、機能特性とアーキテクチャの対応を記載したマトリックスを生成する手順と、生成されたマトリックス上で機能特性、非機能特性及びアーキテクチャを相互に連携させてアーキテクチャと整合した機能特性を展開し当該機能特性に基づいて再利用コンポーネントの設計を行う手順を実行させるためのソフトウェア設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込みソフトウェアを含む製品系列（プロダクトライン）を持つ製品のソフトウェアの設計を実施するにあたって、複数製品の仮説または既存アーキテクチャを評価して再利用コンポーネントの設計を行う技術に関する。
【背景技術】
【０００２】
ソフトウェアの設計支援に関する従来例として、特開平10-40088号公報（特許文献１）は、機能階層を利用した「機能仕様型」を利用してソフトウェア仕様およびそれに基づく開発成果物の再利用性の判断と再利用可能部分の分離を行っている。
【０００３】
同じく論文 Kyo C Kang 外5 著「FORM : A feature-oriented reuse method with domain-specific reference architectures」（非特許文献１）は、図２６の「FORMアーキテクチャへのマッピング」に示すように機能階層に展開した機能特性をアーキテクチャへマッピングする方式の概要を記載している。この場合、参照アーキテクチャは単一のアーキテクチャを想定している。また特性モデルをCapabilities (能力), Operating Environment (動作環境), Domain Technologies (ドメインテクノロジー), Implementation Technologies (実装技術)に階層化し、Reference Architecture (参照アーキテクチャ)はSubsystem (サブシステム), Process (プロセス), Module (モジュール)の各モデルで構成している。アーキテクチャへの機能特性の具体的対応付けについては概念を記載したに止まっている。
【０００４】
また論文 岸知二 著「ソフトウェアアーキテクチャのためのアスペクト指向分析」（非特許文献２）は、図２７に示すようにアーキテクチャは機能特性（サービス）および品質特性（非機能特性）を分析して製品間で共通する品質特性による括りをカテゴリ化し、更に基盤に依存か非依存かを評価して基盤に依存するアーキテクチャ（再利用ソフトウェアのかたまり）を抽出している。
【特許文献１】特開平１０−４００８８号公報
【非特許文献１】Kyo C Kang 外5 著「FORM : A feature-oriented reuse method with domain-specific reference architectures」Annals of Software Engineering 5 (1998)
【非特許文献２】岸 知二 著「ソフトウェアアーキテクチャのためのアスペクト指向分析」ソフトウェア工学研究会報告、Vol.131，No.8，pp.57-64 (2001年)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載された発明は、機能階層を利用するが特に組み込みソフトウェアで制約事項となるハードウェア構成や基盤ソフトウェア、タスク構造などのアーキテクチャの視点での分析がなく、アーキテクチャが変わった場合の再利用への影響を把握することができず、組み込みソフトウェアでの再利用設計を正確に効率的に実施することは困難である。
【０００６】
上記非特許文献１に開示された論文内容は、機能階層に展開した機能特性をアーキテクチャへマッピングする方式の概要を記載しているが、マッピングする対象は単一のアーキテクチャについてしか触れていない。アーキテクチャへの機能特性の具体的対応付けや機能特性の分割、再利用コンポーネントの機能特性からのマージについては記載されておらず、具体的な設計作業を展開するのは困難である。
【０００７】
上記非特許文献２に開示された論文内容は、アーキテクチャは機能特性および性能などの非機能特性からカテゴリを導出し、更に基盤ソフトウェアの制約によりアーキテクチャを導出するが、アーキテクチャのサブシステム構成やタスク構成の変化についての対応の記述がなく、また手順が複雑であり、また実情と合わない部分が多い。
【０００８】
そこで本発明は製品系列（プロダクトライン）の複数製品のアーキテクチャと機能特性と非機能特性を対応づけながら、再利用コンポーネントの設計を行うことで、誤りや漏れの混入を防止し、作業工数を削減することにより、ソフトウェア開発での品質向上、短納期対応、コスト削減を図ることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明は、製品系列を持つ製品のソフトウェアを複数のアーキテクチャと機能特性を対応付けながら設計支援するソフトウェア設計支援装置において、製品系列の製品についての仮説又は既存のアーキテクチャの定義を格納するアーキテクチャ記憶手段と、階層化した機能特性の定義を格納する機能特性記憶手段と、階層化した非機能特性の定義を格納する非機能特性記憶手段と、前記アーキテクチャ記憶手段にアーキテクチャを設定するアーキテクチャ設定手段と、前記機能特性記憶手段に格納された機能特性と前記アーキテクチャ記憶手段に設定されたアーキテクチャを読み出し、機能特性とアーキテクチャの対応を記載したマトリックスを生成するマトリックス生成手段と、前記マトリックス生成手段で生成されたマトリックス上で前記機能特性、前記非機能特性及び前記アーキテクチャを相互に連携させてアーキテクチャと整合した機能特性を展開し当該機能特性に基づいて再利用コンポーネントの設計を行う再利用コンポーネント設計手段と、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、特性モデルの機能特性を仮説または既存製品のアーキテクチャに当てはめ、アーキテクチャと整合した機能特性を展開し、必要に応じて機能特性を分割し、展開した当該機能特性に基づいて再利用コンポーネントを容易に設計することが可能となる。また製品系列における複数のアーキテクチャに対する評価、例えばアーキテクチャのサブシステム構成やタスク構成を連続的に定義して評価することで、アーキテクチャのサブシステム構成やタスク構成の変化についての対応が可能である。さらに新規のアーキテクチャが発生した場合にも同じ方法を敷衍することで簡単に対応することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施の形態に係るソフトウェア設計支援装置の構成概要を示すブロック図である。図１において本発明の実施形態に係るソフトウェア設計支援装置は、プログラムを格納し下記各処理部の処理動作および下記各テーブルに対するデータ設定／取得を実行するサーバ１と、階層化した機能特性の定義を格納する機能特性テーブル２と、階層化した非機能特性の定義を格納する非機能特性テーブル３と、階層化した機能特性と非機能特性との関連の定義を格納する機能・非機能特性関連テーブル４と、対象製品系列の製品についての仮説や既存製品のアーキテクチャの定義を格納するアーキテクチャテーブル５と、アーキテクチャと機能特性との関連の定義を格納するアーキテクチャ機能特性関連テーブル６と、機能特性と再利用コンポーネントの関連の定義を格納する機能特性再利用コンポーネント関連テーブル７と、アーキテクチャテーブル５に情報を設定するアーキテクチャ設定処理部８と、機能特性をアーキテクチャへマッピングしアーキテクチャ機能特性関連テーブル６に情報を設定する機能特性マッピング処理部９と、機能特性に対応づけた再利用コンポーネントを機能特性再利用コンポーネント関連テーブル７に情報を設定する再利用コンポーネント設定処理部１０と、機能特性・非機能特性マッピング、アーキテクチャ・機能特性マッピング、機能特性・再利用コンポーネントマッピング情報を表示するマッピング情報表示処理部１１と、ネットワーク経由でサーバ１と繋がれ、データの設定や処理の起動、データの表示を行うクライアント１２と、から構成されている。
【００１２】
図２は本発明の実施形態に係る仮説／既存アーキテクチャの具体例を示す図である。図２においてアーキテクチャは、製品系列内の製品について、サブシステム、タスク、基盤ソフトウェア、サブシステム間の関係を記述したものである。図２の例では、サブシステムａとサブシステムnとの間に何らかの関係があることを示し、そしてサブシステムはタスク１,2,3,・・,ｎ、基盤ソフトウェア１,2,・・,Ｃ(共通)を含む。なお仮説／既存アーキテクチャとしているのは、あらかじめ立案した仮説のものや既存のものを包含しているからである。
【００１３】
図３は図１に示した機能特性テーブル２に設定する項目例を示す図である。図３に示すように機能特性テーブルは、ドメイン名２１と特性名２２がインデックスとなっている。ドメイン名２１は、ドメイン分析をした結果によって入力され、特性名２２には、特性分析の最上位特性を格納する。なお本特性テーブルで定義する「特性」は、Krzysztof Czarnecki 外1 著「Generative Programming Methods, Tools, and Applications」 Addison-Wesley, pp39-48 (2000)（参考文献１）に紹介されている一般的な定義、すなわちＦＯＤＡ(Feature-Oriented Domain Analysis method：特性指向ドメイン分析法)で定義する、エンドユーザに直接影響するシステムのプロパティとして特性を定義したものを用いることにする。具体的には、ソフトウェアシステムあるいはシステムの目立ちそしてエンドユーザに見えるアスペクト、質、または特質を言い、たとえば、車を購入する場合、ユーザが決定しなければならない変速機特性（例．自動または手動）を記述することに相当する。そして特性名２２の下位に順次階層化された下位レベル特性名を展開し、下位１レベル特性名２３には、最上位特性を特性分割して得られた特性名を入れる。また属性項目２４には、図３の下部に示された（２）属性項目に示された項目が入れられる。また下位２レベル特性名２５、属性項目２６、下位ｎレベル特性名２７、属性項目２８には、上述した下位１レベル特性名２３および属性項目２４と同様に、上位機能特性を特性分割して得られた特性名と当該機能特性の属性項目を格納する。
【００１４】
図３の下部に示した「（２）属性項目」は、次のように構成される。分類３１には、当該特性が共通特性であるか、オプション特性であるか、ＯＲ特性であるかのデータを格納する。本情報は特性モデルを構築するために必須の情報である。また、下位マップ３２には、当該レベルの下位機能それぞれとの関係を記載する。さらに、関連テーブルＩＤ３３には、機能特性と非機能特性との関連を示す図１に示した機能・非機能特性関連テーブル４のＩＤを格納する。これにより当該機能特性と対応する非機能特性が識別される。また備考３４には、任意の情報を記入する。なお、図３の下部に示した「（２）属性項目」は随意追加できるようにされている。
【００１５】
図４は図１に示した非機能特性テーブル３に設定する項目例を示す図である。図４に示すように非機能特性テーブルは、ドメイン名４１がインデックスとなっている。ここでドメイン名はドメイン分析をした結果によって入力されることは上述したとおりである。品質属性４２には、品質の分類を記載する。記載する当該分類として例えばＩＳＯ／ＩＥＣ９１２６の品質特性をデフォルトで設定する。品質特性４４には、例えばＱＦＤ(Quality Function Deployment：品質機能展開)(ＪＩＳ Ｑ ９０２５）の品質表により要求品質を品質特性に変換したものを用いる。シナリオｎレベル名４６には、例えば品質特性４４を入力／状態／応答の観点から展開したシナリオを記載する。なお本特性テーブルで定義する「シナリオ」は、Clements 外2 著「Evaluating Software Architectures」 Addison-Wesley, pp52-55 (2002年)（参考文献２）に「利害関係者とシステムとのやりとりの短い記述である」と定義されているものを用いることにする。
【００１６】
図４の下部に示した「（２）属性項目」は次のように構成される。図４の上部に示した「（１）非機能特性テーブル」には属性項目として、属性項目４３、４５、４７が、品質属性４２、品質特性４４、シナリオｎレベル名４６に対応して設けられているが、ここでは例としてシナリオｎレベル名４６に対応して設けられた属性項目４７だけを取り上げる。そして「（２）属性項目」における分類５１には、当該シナリオが入力に関係するものか、状態に関係するものか、応答に関係するものかのデータを格納する。なお本情報は付加情報であり必須ではない。下位マップ５２には、当該レベルの下位機能それぞれとの関係があればそれを記載する。関連テーブルＩＤ５３には、機能特性と非機能特性との関連を示す図１に示した機能・非機能特性関連テーブル４のＩＤを格納する。関連テーブルＩＤ５３により当該非機能特性と対応する機能特性が識別される。重要度５４には、当該非機能特性の重要度を５段階で評価した値を格納する。リスク５５には、当該非機能特性のリスクを５段階で評価した値を格納する。リスクには例えば判断要件が不明確、判断の検討が不十分など、が含まれる。備考５６には、必要とされる任意の情報を記入する。なお、例示されなかった属性項目４３，４５における分類５１は現段階では空欄であって、埋めるものがないということで割愛されているものである。そして図４の下部に示す「（２）属性項目」は随意追加できるので適宜埋めることができる。
【００１７】
図５は図１に示した機能・非機能特性関連テーブル４に設定する項目例を示す図である。図５に示す機能・非機能特性関連テーブルは、次のようにして構成される。すなわち、ＩＤ６１には、機能・非機能特性関連テーブル４のレコードを識別するための任意につけたレコードに一意の番号が記載される。機能特性テーブル項目名６２には、当該レコードに係る機能特性テーブル２の特性名２２を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。非機能特性テーブル項目名６３には、当該レコードに係る機能特性テーブル２の特性名２２に関連する非機能特性名（図４の品質属性４２、品質特性４４、シナリオｎレベル名４６を参照）を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。条件記述６４には、機能特性と非機能特性の関連について条件がある場合は当該条件を格納する。
【００１８】
図６は図１に示したアーキテクチャテーブル５に設定する項目例を示す図である。アーキテクチャは製品系列内の製品についてサブシステム、タスク、基盤ソフトウェア、サブシステム間の関係を記述したものであって、図２に仮説／既存アーキテクチャの具体例を示す。図６に示すアーキテクチャテーブルは、次のようにして構成される。すなわち、ＩＤ７１には、アーキテクチャテーブル５のレコードを識別するため任意につけたレコードに一意の番号が記載される。アーキテクチャ名７２には、製品系列（プロダクトライン）内の製品の仮説/既存アーキテクチャに付けた名前を格納する。アーキテクチャ属性７３には、アーキテクチャ内サブシステムの共通属性、サブシステム間の関係に関する属性情報を格納する。またサブシステム名７４には、アーキテクチャ内のサブシステムに付けた名前を格納する。サブシステム属性７５には、サブシステム内の共通属性、サブシステム間のタスクや基盤ソフトウェア間の関係に関する属性情報を格納する。タスク名７６には、サブシステム内のタスク名を格納する。タスク属性７７には、タスクの起動周期や起動イベントなどのタスクに関する属性を格納する。
【００１９】
図７は、図６に示したアーキテクチャテーブル項目の具体例を示す図であり、一例としてアーキテクチャ名７２には「Ａ１、Ａ２」が設定され、サブシステム名７４には、アーキテクチャ名「Ａ１」に対応して、サブシステム名７４としてサブシステム「テンキー」及びサブシステム「本体」が、またタスク名７６としてサブシステム「テンキー」に対応して「a1,a2,a3」が、サブシステム「本体」に対応して「b1」がそれぞれ設定され、さらにアーキテクチャ名「Ａ２」に対応してサブシステム名７４がサブシステム「テンキー」、タスク名７６が「a21」として設定されている。上記においてＩＤ７１はタスク名に対応して異なる番号が一意に設定され、さらにタスク属性７７においてはタスク名に対応して異なるタスク周期がそれぞれ設定されている。
【００２０】
図８は図１に示したアーキテクチャ機能特性関連テーブル６に設定する項目例を示す図である。図８に示すアーキテクチャ機能特性関連テーブルは、次のようにして構成される。すなわち、ＩＤ８１には、アーキテクチャ機能特性関連テーブル６のレコードを識別するための任意につけたレコードに一意の番号が記載される。アーキテクチャテーブル項目名８２には、当該レコードに係るアーキテクチャテーブル５のタスク名７６と当該タスクの上位のサブシステム名７４を格納する（図６参照）。機能特性テーブル項目名８３には、当該レコードに係るアーキテクチャテーブル項目名８２に関連する機能特性名を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。条件記述８４には、アーキテクチャと機能特性の関連について条件がある場合は当該条件を格納する。
【００２１】
図９は、図８に示したアーキテクチャ機能特性関連テーブル項目の具体例を示す図であり、例えば、ＩＤ８１が「１」におけるアーキテクチャテーブル項目名８２が「A1-a1」で、機能特性テーブル項目名８３が「ログ」で、条件記述８４が「基盤非依存」であるように設定され、また、ＩＤ８１が「５」におけるアーキテクチャテーブル項目名８２が「A1-a2」で、機能特性テーブル項目名８３が「サブシステム間通信-サブシステム間低速通信」で、条件記述８４が「基盤依存」であるように設定されている。
【００２２】
図１０は、図１に示した機能特性再利用コンポーネント関連テーブル７に設定する項目例を示す図である。図１０に示す機能特性再利用コンポーネント関連テーブルは、次のようにして構成される。すなわち、ＩＤ９１には、機能特性再利用コンポーネント関連テーブル７のレコードを識別するための任意につけたレコードに一意の番号が記載される。機能特性テーブル項目名９２には、機能特性名を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。再利用コンポーネント名９３には、当該レコードの機能特性に対応する再利用コンポーネント名を格納する。機能特性出現度数９４には、当該機能特性が出現したアーキテクチャＩＤの数を格納する。
【００２３】
図１１は、図１０に示した機能特性再利用コンポーネント関連テーブル項目の具体例を示す図であり、例えば、ＩＤ９１が「１」における機能特性テーブル項目名９２が「ログ」で、再利用コンポーネント名９３が「C1」で、機能特性出現度数９４が「５」であるように設定され、また、ＩＤ９１が「２」における機能特性テーブル項目名９２が「統括管理-統括管理１」で、再利用コンポーネント名９３が「C2」で、機能特性出現度数９４が「２」であるように設定され、同じくＩＤ９１が「３」における機能特性テーブル項目名９２が「統括管理-統括管理２」で、再利用コンポーネント名９３が「C21」で、機能特性出現度数９４が「３」であるように設定されている。
【００２４】
図１２は、図１に示したアーキテクチャ設定処理部８における処理動作を説明するためのフローチャートである。本処理動作は、図１４に示す画面の入力によりアーキテクチャ設定処理動作が起動される。図１４のアーキテクチャ設定処理画面は、アーキテクチャ名が「A1」で、基盤ソフトウェアが「Itron,伝送処理」であるように設定され、また、サブシステムとして「テンキー」、「本体」、「システム統括」が関連付けられ、各サブシステムそれぞれにサブシステム属性、タスク、タスク属性が関連付けられて設定されているものである。図１２に戻って、ステップ（図ではステップをＳと表記している。）１１では、設定されたアーキテクチャの情報を読み込み、アーキテクチャテーブル５にその内容を格納する。
【００２５】
図１３Ａ及び図１３Ｂは、図１に示した機能特性マッピング処理部９における処理動作を説明するためのフローチャートである。本処理動作は、具体例として図１５、図１６及び図１７に示した機能特性マッピング処理するための画面の表示要求により起動される。因みに図１５は特性機能をアーキテクチャA1へマッピング処理する為の表示画面の第１の具体例、図１６は特性機能をアーキテクチャAkへマッピング処理する為の表示画面の具体例、図１７は特性機能をアーキテクチャA1へマッピング処理する為の表示画面の第２の具体例を示している。また本処理動作は、パラメータとしてアーキテクチャ名を指定するようにしている。
【００２６】
図１３Ａ及び図１３Ｂにおいて、ステップ（図ではステップをＳと表記している。以下、同じ）２１では、アーキテクチャテーブル５と機能特性テーブル２を読み込む。すでにアーキテクチャ機能特性関連テーブル６が設定されている場合は当該テーブルも読み込む。ステップ２２では、具体例として図１５、図１６及び図１７に示した機能特性マッピング処理するための画面を表示する。この場合、初期はアーキテクチャと機能特性項目が表示され、すでにアーキテクチャと機能特性項目の関連がアーキテクチャ機能特性関連テーブル６に設定されている場合は関連（白丸‘〇’表記）も表示する。
【００２７】
ステップ２３では、設定されたマッピング情報を読み込む。設定はアーキテクチャと機能特性との関連を設計者が機能特性と非機能特性のデータを参照して、当該特性を実現できるサブシステムとタスクの属性を判断して機能特性をタスクに割り付ける。ステップ２４では、同一機能特性が複数のタスクにマッピングされている機能特性を抽出し、画面操作をしている設計者にガイダンスする。これは機能特性をアーキテクチャに対応して伝送処理（例えば、プロトコル）を変更し機能特性を分割するか否かなどの判断を促すために行う。なお、ログ機能など複数のタスクでも同一機能でよいものは分割する必要はない。
【００２８】
ステップ２５では、アーキテクチャテーブル５のパラメータで設定されたアーキテクチャと前回のアーキテクチャ属性の基盤ソフトウェア変化有無をチェックする。これはＯＳなどの基盤ソフトウェアがアーキテクチャにより変更がある場合、再利用可能な機能とＯＳなどの基盤ソフトウェアに依存する機能を分離し、再利用を有効に行うために行う。ステップ２６では、基盤ソフトウェアに変化あり、かつ以前のアーキテクチャに同じものなしを判断する。以前のアーキテクチャで同じ基盤ソフトウェアがある場合はすでに機能属性の評価がされていると判断されるので、この場合はステップ２８に進む。ステップ２６の判断でＹＥＳの場合には、ステップ２７に進み、ステップ２７で基盤ソフト変更ガイダンスを画面操作している設計者にガイダンスする。
【００２９】
図１３Ｂにおいてステップ２８では、設計者が入力して設定された機能特性情報を読み込む。この場合、ステップ２７におけるガイダンスで機能特性の分割入力がなされている場合があることに注意されたい。ステップ２９では、機能特性の分割があるか現状と読み込んだ情報を比較して判断する。ステップ２９で機能特性の分割がある場合には、ステップ３０に進み、ステップ３０において機能・非機能特性関連テーブル４の更新を機能特性の分割に対応して更新するために非機能特性テーブル３および機能・非機能特性関連テーブル４の更新のガイダンスを表示する。
【００３０】
ステップ３１では、設計者が入力して変更された非機能特性テーブル３、機能・非機能特性関連テーブル４の情報を読み込む。ステップ３２では、機能特性テーブル２、非機能特性テーブル３、機能・非機能特性関連テーブル４の情報をそれぞれのテーブルに書き込み、情報を更新する。更新された情報は製品系列（プロダクトライン）の特性情報となる。ステップ３２における処理終了およびステップ２９で機能特性の分割がない場合には、ステップ３３でアーキテクチャ機能特性関連テーブル６のレコードを機能特性の追加、変更に対応して更新する。なお図１３Ａ及び図１３Ｂにおける処理の過程で矢印線にて関連するテーブルを参考までにそれぞれ図１３Ａ及び図１３Ｂの右側に示している。
【００３１】
図１８は、図１に示した再利用コンポーネント設定処理部１０における処理動作を説明するためのフローチャートである。本処理動作は、具体例として図１９、図２０及び図２１に示した再利用コンポーネント設定処理するための画面の表示要求により起動される。因みに図１９は再利用コンポーネント設定処理する為の表示画面の第１の具体例、図２０はアーキテクチャAk評価後の再利用コンポーネント設定処理する為の表示画面の具体例、図２１は再利用コンポーネント設定処理する為の表示画面の第２の具体例を示している。また本処理動作は、パラメータとしてアーキテクチャ名を指定するようにしている。
【００３２】
図１８においてステップ（図ではステップをＳと表記している。以下、同じ）４１では、アーキテクチャテーブル５、機能特性テーブル２、アーキテクチャ機能特性関連テーブル６を読み込む。すでに再利用コンポーネントが機能特性再利用コンポーネント関連テーブル７に設定されている場合は機能特性再利用コンポーネント関連テーブル７も読み込む。ステップ４２では、具体例として図１９、図２０及び図２１に示した再利用コンポーネント設定処理するための画面を表示する。図１９に示す画面はアーキテクチャのサブシステム、タスク、機能特性、アーキテクチャと機能特性のマップ（白丸‘〇’表記）を表示する。すでに再利用コンポーネントが機能特性再利用コンポーネント関連テーブル７に設定されている場合は当該情報も表示する。
【００３３】
ステップ４３では、アーキテクチャＩＤ単位でカウントした機能特性出現度数について機能特性再利用コンポーネント関連テーブル７を参照してインクリメントする。ステップ４４では、出現度数１の機能特性があるか評価する。ステップ４４における評価がＹＥＳの場合には、ステップ４５に進み、ステップ４５で再利用対象外のガイダンスを画面操作している設計者に行う。そしてガイダンスにより特定の製品用の機能特性と見なすか否かの判断を依頼する。ステップ４４における評価がＮＯの場合には、ステップ４６に進み、ステップ４６で設計者が入力して設定された再利用コンポーネント名を読み込む。ステップ４７では、設定された再利用コンポーネント名を機能特性再利用コンポーネント関連テーブル７に格納する。なお図１８における処理の過程で矢印線にて関連するテーブルを参考までにそれぞれ図１８の右側に示している。
【００３４】
このように本実施形態によれば、あらかじめ立案した仮説または既製品のアーキテクチャを設定し、特性モデルの機能特性を上記設定した仮説または既製品のアーキテクチャに当てはめ、アーキテクチャと整合した機能特性を展開し、必要に応じて機能特性を分割し、展開した機能特性に基づいて再利用コンポーネントを容易に設計することが可能となる。また製品系列における複数のアーキテクチャへの評価、例えばアーキテクチャのサブシステム構成やタスク構成を連続的に定義して評価することで、サブシステム構成やタスク構成の変化についての対応が可能である。さらに新規のアーキテクチャが発生した場合にも仮説や既存のアーキテクチャ評価の場合と全く同じ方法で容易に対応できる。
【００３５】
また機能特性から再利用コンポーネントをマージしているので、再利用コンポーネント抽出の作業を容易かつ正確に実施することができる。以上に説明したように、複数製品のアーキテクチャと機能特性と非機能特性を対応づけながら、再利用コンポーネントの設計と適用を行うことで、誤りや漏れの混入を防止し、作業工数を削減することにより、ソフトウェア開発での生産性向上、品質向上、短納期対応、コスト削減を図ることができる。いずれにしても本実施形態に係るソフトウェア設計支援装置はファームウェアの設計などハードウェアや基盤ソフトウェアなどのアーキテクチャの制約があるソフトウェアの実際設計に即したものであるので、非常に有利なものである。
【００３６】
図２２は、図１に示したマッピング情報表示処理部１１により表示処理されたマッピング情報表示の第１の具体例を示す図である。図２２に示すマッピング情報表示は、機能特性及び非機能特性に関する情報に基づいて機能・非機能特性関連情報をマッピング表示するものであって、マッピング情報表示処理部１１は指定された機能特性／非機能特性のデータを機能特性テーブル２、非機能特性テーブル３から取得し、機能特性ツリーを当該テーブルのデータにより表示する（図２２に示す表示画面の左上部参照）。なお図示された機能特性ツリーは、プロダクトライン・テンキーサブシステムの例を示すものである。同様に、非機能特性ツリーを当該テーブルのデータにより表示する（図２２に示す表示画面の左下部参照）。さらに機能・非機能特性関連テーブル４を参照して指定された下位レベルのマトリックスの項目（枠の項目）を表示する（図２２に示す表示画面の右側参照）。マトリックスの項目（枠の項目）において関連するデータをマップ表示（白丸‘〇’表記）する。
【００３７】
図２３は、図１に示したマッピング情報表示処理部１１により表示処理されたマッピング情報表示の第２の具体例を示す図である。図２３に示すマッピング情報表示は、アーキテクチャ及び機能特性に関する情報に基づいてアーキテクチャ機能特性関連情報をマッピング表示するものであって、マッピング情報表示処理部１１は指定されたアーキテクチャおよび機能特性のデータをアーキテクチャテーブル５、機能特性テーブル２から取得してアーキテクチャに関連付けられたサブシステムを当該テーブルのデータにより表示する（図２３に示す表示画面の左上部参照）。なお図示されたアーキテクチャに関連付けられたサブシステムは、アーキテクチャA1についてのものである。また機能特性ツリーを当該テーブルのデータにより表示する（図２３に示す表示画面の左下部参照）。なお図示された機能特性ツリーは、プロダクトライン機能特性を示すものである。さらにアーキテクチャ機能特性関連テーブル６を参照して指定された機能特性及びアーキテクチャについてのマトリックスの項目（枠の項目）を表示する（図２３に示す表示画面の右側参照）。マトリックスの項目（枠の項目）において関連するデータをマップ表示（白丸‘〇’表記）する。
【００３８】
図２４は、図１に示したマッピング情報表示処理部１１により表示処理されたマッピング情報表示の第３の具体例を示す図である。図２４に示すマッピング情報表示は、機能特性及びアーキテクチャに関する情報に基づいて機能特性再利用コンポーネント関連情報をマッピング表示するものであって、マッピング情報表示処理部１１は指定された機能特性データを機能特性テーブル２から取得して機能特性ツリーを当該テーブルのデータにより表示する（図２４に示す表示画面の左側参照）。なお図示された機能特性ツリーは、プロダクトライン機能特性を示すものである。図２５に機能特性ツリーの具体例を示す。機能特性ツリーの表示方法については上記で紹介した参考文献１に表記方法が具体的に記載されているので適宜参考にされたい。
【００３９】
またアーキテクチャのデータをアーキテクチャテーブル５から取得するとともにアーキテクチャ機能特性関連テーブル６から機能特性とアーキテクチャの関連情報を取得し、さらに機能特性再利用コンポーネント関連テーブル７を参照して指定された機能特性及び再利用コンポーネントについてのマトリックスの項目（枠の項目）をマッピング情報表示する（図２５に示す表示画面の右側参照）。
【００４０】
上記のように図２２〜図２４に示されたマッピング情報表示は、すくなくとも特性ツリー（階層図）とマトリックスを含む表でもって示され、これにより関連する項目が明確に示されることになるので、誤りや漏れの混入を防止し、作業工数を削減することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態に係るソフトウェア設計支援装置の構成概要を示すブロック図である。
【図２】本発明の実施形態に係る仮説/既存アーキテクチャの具体例を示す図である。
【図３】図１に示した機能特性テーブルに設定する項目例を示す図である。
【図４】図１に示した非機能特性テーブルに設定する項目例を示す図である。
【図５】図１に示した機能・非機能特性関連テーブルに設定する項目例を示す図である。
【図６】図１に示したアーキテクチャテーブルに設定する項目例を示す図である。
【図７】図６に示したアーキテクチャテーブル項目の具体例を示す図である。
【図８】図１に示したアーキテクチャ機能特性関連テーブルに設定する項目例を示す図である。
【図９】図８に示したアーキテクチャ機能特性関連テーブル項目の具体例を示す図である。
【図１０】図１に示した機能特性再利用コンポーネント関連テーブルに設定する項目例を示す図である。
【図１１】図１０に示した機能特性再利用コンポーネント関連テーブル項目の具体例を示す図である。
【図１２】図１に示したアーキテクチャ設定処理部における処理動作を説明するためのフローチャートである。
【図１３Ａ】図１に示した機能特性マッピング処理部における処理動作を説明するためのフローチャートである。
【図１３Ｂ】図１に示した機能特性マッピング処理部における処理動作を説明するためのフローチャートである。
【図１４】本発明の実施形態に係るアーキテクチャ設定処理画面の具体例を示す図である。
【図１５】本発明の実施形態に係る特性機能をアーキテクチャA1へマッピング処理する為の表示画面の第１の具体例を示す図である。
【図１６】本発明の実施形態に係る特性機能をアーキテクチャAkへマッピング処理する為の表示画面の具体例を示す図である。
【図１７】本発明の実施形態に係る特性機能をアーキテクチャA1へマッピング処理する為の表示画面の第２の具体例を示す図である。
【図１８】図１に示した再利用コンポーネント設定処理部における処理動作を説明するためのフローチャートである。
【図１９】本発明の実施形態に係る再利用コンポーネント設定処理する為の表示画面の第１の具体例を示す図である。
【図２０】本発明の実施形態に係るアーキテクチャAk評価後の再利用コンポーネント設定処理する為の表示画面の具体例を示す図である。
【図２１】本発明の実施形態に係る再利用コンポーネント設定処理する為の表示画面の第２の具体例示す図である。
【図２２】図１に示したマッピング情報表示処理部により表示処理されたマッピング情報表示の第１の具体例を示す図である。
【図２３】図１に示したマッピング情報表示処理部により表示処理されたマッピング情報表示の第２の具体例を示す図である。
【図２４】図１に示したマッピング情報表示処理部により表示処理されたマッピング情報表示の第３の具体例を示す図である。
【図２５】本発明の実施形態に係る機能特性ツリーの具体例を示す図である。
【図２６】機能特性をアーキテクチャへマッピングする従来方式の概要を説明するための図である。
【図２７】基盤に依存するアーキテクチャを抽出する従来方式の概要を説明するための図である。
【符号の説明】
【００４２】
１  サーバ
２  機能特性テーブル
３  非機能特性テーブル
４  機能・非機能特性関連テーブル
５  アーキテクチャテーブル
６  アーキテクチャ機能特性関連テーブル
７  機能特性再利用コンポーネント関連テーブル
８  アーキテクチャ設定処理部
９  機能特性マッピング処理部
１０  再利用コンポーネント設定処理部
１１  マッピング情報表示処理部
１２  クライアント
【図１】
2007086929.tif 000003
【図２】
2007086929.tif 000004
【図３】
2007086929.tif 000005
【図４】
2007086929.tif 000006
【図５】
2007086929.tif 000007
【図６】
2007086929.tif 000008
【図７】
2007086929.tif 000009
【図８】
2007086929.tif 000010
【図９】
2007086929.tif 000011
【図１０】
2007086929.tif 000012
【図１１】
2007086929.tif 000013
【図１２】
2007086929.tif 000014
【図１３Ａ】
2007086929.tif 000015
【図１３Ｂ】
2007086929.tif 000016
【図１４】
2007086929.tif 000017
【図１５】
2007086929.tif 000018
【図１６】
2007086929.tif 000019
【図１７】
2007086929.tif 000020
【図１８】
2007086929.tif 000021
【図１９】
2007086929.tif 000022
【図２０】
2007086929.tif 000023
【図２１】
2007086929.tif 000024
【図２２】
2007086929.tif 000025
【図２３】
2007086929.tif 000026
【図２４】
2007086929.tif 000027
【図２５】
2007086929.tif 000028
【図２６】
2007086929.tif 000029
【図２７】
2007086929.tif 000030