(57)【要約】【課題】対象システムに対する要求が変更された場合に、該対象システムの設計を支援することが可能な機能特定装置等を提供する。【解決手段】  機能特定装置２０１は、システムに対する要求を表すある要求に関して変更が施された場合に、その変更が該ある要求とは異なる要求に対して与える影響を表す関連性情報から、該影響に関して、該システムに関する変更対象である第１要求に相反している第２要求を特定する要求特定部２０２と、該システムが有する第１機能の部分機能を表す第２機能と、該第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された該第２要求に関して影響を与える該第２機能を特定する機能特定部２０３とを有する。【選択図】      図９
2017224126.tif 000002
【特許請求の範囲】
【請求項１】
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定する要求特定手段と、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する機能特定手段と
を備える機能特定装置。
【請求項２】
前記ある要求よりも優先度が高い要求を表す優先情報に基づき、前記第１要求よりも優先度の高い第３要求を特定する優先要求特定手段
をさらに備え、
前記要求特定手段は、前記第３要求に相反している前記第２要求を特定する
請求項１に記載の機能特定装置。
【請求項３】
前記ある要求と、前記ある要求と異なる要求とが関連付けされた前記関連性情報が格納されている関連性情報記憶手段
をさらに備え、
前記要求特定手段は、前記関連性情報記憶手段に格納されている前記関連性情報において、前記第１要求に関連付けされた前記第２要求を特定する
請求項１に記載の機能特定装置。
【請求項４】
前記モデル情報を作成する枠組みを表すメタモデル情報に従い、前記システムに関する前記モデル情報を作成するモデル情報手段
をさらに備える請求項１、または、請求項２に記載の機能特定装置。
【請求項５】
前記要求特定手段は、前記システムの状況を表すコンテキスト情報に基づき、前記第１要求を推定し、推定した前記第１要求に相反している前記第２要求を特定する
請求項１乃至請求項３のいずれかに記載の機能特定装置。
【請求項６】
前記要求は、前記システムに対する機能要求と、前記機能要求に付随している非機能要求とを含む
請求項１乃至請求項４のいずれかに記載の機能特定装置。
【請求項７】
前記関連性情報における前記影響は、前記ある要求が前記ある要求と異なる要求に相反しているのか、両立しているのか、または、影響がないのかを表し、
前記要求特定手段は、前記第１要求に関して、前記相反している影響を表す前記第２要求を特定する
請求項１乃至請求項５のいずれかに記載の機能特定装置。
【請求項８】
前記コンテキスト情報は、前記システムが利用される時間を表す情報を含み、
前記要求特定手段は、前記時間を表す情報にて優先される要求を、ある時間にて優先する要求を表す要求情報に基づき、前記第１要求として特定する
請求項５に記載の機能特定装置。
【請求項９】
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定し、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する
機能特定方法。
【請求項１０】
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定する要求特定機能と、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する機能特定機能と
をコンピュータに実現させる機能特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報通信技術システムの設計を支援する機能特定装置等に関する。
【背景技術】
【０００２】
情報通信技術（Ｉｎｆｏｒｍａｔｉｏｎ＿ａｎｄ＿Ｃｏｍｍｕｎｉｃａｔｉｏｎ＿Ｔｅｃｈｎｏｌｏｇｙ：ＩＣＴ）システムが設計（または、構築、作成）される場合に、該ＩＣＴシステム（以降、「対象システム」と表す）に対する要求は、機能要求と、非機能要求とに大別される。
【０００３】
機能要求は、対象システムの主たる目的に対する要求であり、対象システムにて実現される機能に関する要求であり、かつ、ユーザが対象システムに対して感じる価値（品質）に関係している。したがって、対象システムが設計される場合に、該対象システムの設計者と、該対象システムのユーザとの間において、該対象システムに対する機能要求に関しては、齟齬は発生しにくい。さらに、対象システムが機能要求を満たしているか否かを検証することは容易である。
【０００４】
これに対して、非機能要求は、対象システムに対する要求のうち、機能要求と異なる要求を表す。たとえば、非機能要求は、機能要求が実現された場合に達成される性能の程度、または、機能要求が実現された場合に達成される信頼性の程度等の、対象システムの品質に関する要求を含む。非機能要求は、機能要求にて定義された機能が実現された場合の対象システムの品質を表すので、機能要求を支えることを目的に派生的に定義された要求を表す。したがって、非機能要求は、該機能要求に付随している属性（ａｔｔｒｉｂｕｔｅ）として捉えることができる。また、非機能要求は、たとえば、可用性、性能／拡張性、運用／保守性、移行性、セキュリティ、及び、対象システム環境／エコロジーという６つのカテゴリに分類されることもある。
【０００５】
非機能要求は、機能要求と比べて、人、対象システムを展開する展開先、または、該対象システムに関する社会的影響度等によって、適切であると感じられる品質の程度が異なっている。この結果、対象システムが設計される場合に、該対象システムの設計者と、該対象システムのユーザとの間において、該対象システムに関する非機能要求に対する認識（たとえば、対象システムにて達成される品質の程度等）の齟齬は、機能要求に比べ、発生しやすい。
【０００６】
対象システムを設計する場合には、該対象システムを利用するユーザの特性、該対象システムを利用する状況、該対象システムの目的、及び、該対象システムの外部環境等の背景情報に応じて、ユーザ等のステークホルダから生じる要求、及び、該要求間の優先順位は変わる。以降の説明においては、説明の便宜上、対象システムに対するステークホルダから生じる要求、または、該対象システムの価値を判断する基準に影響を与える要因（要素）を「コンテキスト（文脈、前後関係）」と表す。「対象システムの価値が、該対象システムを利用するプロセスにおける顧客特有のコンテキストに基づき認知される」という文脈価値（Ｖａｌｕｅ−ｉｎ−ｃｏｎｔｅｘｔ）の概念は、一般に、提唱されている。
【０００７】
対象システムの設計者は、該対象システムを設計する場合に、該対象システムにて実現する必要がある品質のレベルを、該ユーザと共有する必要がある。すなわち、該対象システムの設計者は、該対象システムのユーザが有しているコンテキストを、正確に把握する必要がある。次に、設計者は、要求（機能要求、または、非機能要求）間のトレードオフや、要求に関する制約条件（フレームワーク）を鑑みながら、該対象システムに関して、各要求を満たしている機能を作成する必要がある。
【０００８】
特許文献１、乃至、特許文献５は、対象システムの設計を支援する技術の一例を開示している。
【０００９】
たとえば、特許文献１は、対象システムの設計を、適切に実現する機能を導出する技術を開示する。該技術においては、対象システムに対する品質に対する要求（以降、「品質要求」と表す）を実現するソフトウェア（または、ミドルウェア）における処理と、各処理に関して、該処理によって阻害される品質要求とを特定する。
【００１０】
特許文献２は、対象システムに関する仕様変更に基づきソフトウェアアーキテクチャを設計するのを支援する技術を開示する。該技術においては、ソフトウェアに対する品質要求を実現する複数の対策案に関して、該対策案の間の相反している関係（トレードオフの関係）、及び、両立（並存）している関係等が定義される。次に、該技術においては、機能要求、及び、非機能要求を満たしつつ、対象システムと異なるシステムの設計にて採用された設計パターン等に基づき、該対象システムにおけるアーキテクチャ構成、動作原理等を採用するか否かを判定する。
【００１１】
特許文献３は、設備データを操作するソフトウェアの設計を支援する機能特定装置を開示している。該機能特定装置は、設備データの構造、及び、性質が、オブジェクト指向に従い定義されたオブジェクトデータモデル情報を入力する。該機能特定装置は、さらに、設備データの構造、及び、性質が、関係指向に従い定義された関係モデル情報における設備データと、入力した該オブジェクトデータモデル情報における設備データとの対応関係を入力する。さらに、該機能特定装置は、入力した該オブジェクトデータモデル情報に対する演算ロジックが定義されたデータ演算ロジックモデル情報を入力する。該支援装置は、これらの入力に基づき、オブジェクトデータベースに格納されている設備データを操作するプログラムを作成する。
【００１２】
特許文献４は、対象システムの設計手順を表す設計案を、該対象システムを設計する場合の制約に基づき作成する機能特定装置を開示している。該機能特定装置は、該設計案を作成する処理において、該制約に矛盾が生じた場合に、生じた矛盾を解消する方法を出力する。該機能特定装置は、該矛盾を解消できなかった場合に、該制約を緩和することによって設計案を作成する。
【００１３】
特許文献５は、設計対象を表すモデル情報に基づき、該設計対象を設計するプロジェクトを管理するモデル情報を作成し、作成したモデル情報を用いて、設計方式を表す情報を提供する機能特定装置を開示している。該機能特定装置は、プロジェクトに含まれている全プロセスに関する制約グラフを、該設計対象を設計するプロセスごとに登録された制約データに基づき作成する。該機能特定装置は、作成した該制約グラフに基づき、所要時間に関するクリティカルパスを算出することによって、該制約に関する優先度を求める。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第５０４９９１１号公報
【特許文献２】特許第３８８７５７１号公報
【特許文献３】特開２０１２−２３０５８３号公報
【特許文献４】特開平０６−０８９３１４号公報
【特許文献５】特開平０８−３１４９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかし、特許文献１、乃至、特許文献５に開示された技術は、いずれも、ステークホルダから生じる要求がコンテキストの違いに応じて変更されること、該要求が変更されるのに応じて、対象システムが備えるべき機能の構成が変更されること等を表すことができない。たとえば、特許文献１に開示された技術においては、ステークホルダごとのコンテキストに従い要求の優先度が変更され、該優先度の変更に応じて実現すべき処理が変更されることは考慮されていない。特許文献２に開示された技術においては、要求の変更の根拠と、コンテキストとの関連性については述べられていない。特許文献３乃至特許文献５に開示された支援装置において用いられているモデル情報は、いずれも、ステークホルダから生じる要求が変更されたことを表すことができない。この結果、特許文献３乃至特許文献５に開示された支援装置は、いずれも、作成する対象システムに対する要求が変更された場合に、該対象システムの作成を的確に支援できるとは限らない。
【００１６】
そこで、本発明の目的の１つは、対象システムに対する要求が変更された場合に、該対象システムの設計を支援することが可能な機能特定装置等を提供することである。
【課題を解決するための手段】
【００１７】
前述の目的を達成するために、本発明の一態様において、機能特定装置は、
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定する要求特定手段と、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する機能特定手段と
を備える。
【００１８】
また、本発明の他の見地として、機能特定方法は、
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定し、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する。
【００１９】
また、本発明の他の見地として、係る機能特定プログラムは、
システムに対する要求を表すある要求に関して変更が施された場合に、その変更が前記ある要求とは異なる要求に対して与える影響を表す関連性情報から、前記影響に関して、前記システムに関する変更対象である第１要求に相反している第２要求を特定する要求特定機能と、
前記システムが有する第１機能の部分機能を表す第２機能と、前記第２機能が実現されることが要求に対して与える影響の増減とを含むモデル情報に基づき、選択された前記第２要求に関して影響を与える前記第２機能を特定する機能特定機能と
をコンピュータに実現させる。
【００２０】
さらに、同目的は、係るプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２１】
本発明に係る機能特定装置等によれば、対象システムに対する要求が変更された場合であっても、該対象システムの設計を支援することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態に係る機能特定装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係る機能特定装置における処理の流れを示すフローチャートである。
【図３】コンテキスト情報の一例を概念的に表す図である。
【図４】コンテキスト情報の一例を概念的に表す図である。
【図５】関連性情報記憶部に格納されている関連性情報の一例を概念的に表す図である。
【図６】メタモデル情報記憶部に格納されているメタモデル情報の一例を概念的に表す図である。
【図７】モデル情報の一例を概念的に表す図である。
【図８】優先情報記憶部に格納されている優先情報の一例を概念的に表す図である。
【図９】本発明の第２の実施形態に係る機能特定装置が有する構成を示すブロック図である。
【図１０】第２の実施形態に係る機能特定装置における処理の流れを示すフローチャートである。
【図１１】モデル情報の一例を概念的に表す図である。
【図１２】関連性情報記憶部に格納されている関連性情報の一例を概念的に表す図である。
【図１３】本発明の各実施形態に係る機能特定装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【００２３】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２４】
＜第１の実施形態＞
図１を参照しながら、本発明の第１の実施形態に係る機能特定装置１０１が有する構成について詳細に説明する。図１は、本発明の第１の実施形態に係る機能特定装置１０１が有する構成を示すブロック図である。
【００２５】
本発明の第１の実施形態に係る機能特定装置１０１は、コンテキスト情報入力部１０２と、要求特定部１０３と、機能特定部１０４とを有する。機能特定装置１０１は、さらに、モデル情報部１１１と、要求推定部１１２と、優先要求特定部１１３と、関連性情報記憶部１０５と、優先情報記憶部１１４と、メタモデル情報記憶部１１５とを有してもよい。
【００２６】
機能特定装置１０１は、コンテキスト情報（図３、または、図４を参照しながら後述する）が変更された場合に、変更されたコンテキスト情報、及び、モデル情報（図７を参照しながら後述する）に基づき、設計（開発）する対象であるシステム（以降、「対象システム」と表す）にて実現される対象である機能を特定する。ここで、コンテキスト情報（図３、図４に例示）、モデル情報（図７に例示）、対象システムに対する要求間の関連性を表す関連性情報（図５に例示）、優先する対象である要求を表す優先情報（図８に例示）、及び、モデル情報（図７に例示）を作成する場合に従うフレームを表すメタモデル情報（図６に例示）について説明する。
【００２７】
図３、及び、図４を参照しながらコンテキスト情報について説明する。図３、及び、図４は、コンテキスト情報の一例を概念的に表す図である。図３、及び、図４に例示されたコンテキスト情報は、対象システムがメールシステムである場合のコンテキスト情報を表す。
【００２８】
コンテキスト情報は、対象システムに関するコンテキストを構成している要素（要素）に関する値を含む。コンテキスト情報は、さらに、該コンテキストに関係している要求（たとえば、非機能要求）を表す情報、または、要求が変化したことを表す情報を含んでいてもよい。
【００２９】
図３（または、図４）を参照すると、コンテキスト情報は、あるコンテキストに関する背景情報を表す要素（たとえば、要素「Ｗｈｅｎ」、要素「Ｗｈｏ」、要素「Ｗｈｙ」、要素「Ｗｈｅｒｅ」、及び、要素「Ｈｏｗ」）に関する値と、該あるコンテキストに関係している要求を表す情報とを含む。要素「Ｗｈｅｎ」、要素「Ｗｈｏ」、要素「Ｗｈｙ」、要素「Ｗｈｅｒｅ」、及び、要素「Ｈｏｗ」は、該あるコンテキストに関する要因（すなわち、「Ｗｈｏ（誰が）、Ｗｈｅｎ（いつ）、Ｗｈｅｒｅ（どこで）、Ｗｈｙ（なぜ）、及び、Ｈｏｗ（どのように）」）を表す。
【００３０】
図３に例示されたコンテキスト情報は、該あるコンテキストに関する背景情報を表す要素「Ｗｈｅｎ」に関する値として、値「メールシステムが普及し始めたころ」を含む。これは、該あるコンテキストが、メールシステムが普及し始めたころに作成されたことを表す。また、図４に例示されたコンテキスト情報は、該あるコンテキストに関する背景情報を表す要素「Ｗｈｅｎ」に関する値として、値「メールの誤送信による情報漏えい事故が多発しているころ」を含む。これは、該あるコンテキスト情報が、メールの誤送信による情報漏えい事故が多発しているころに作成されたことを表す。
【００３１】
図３に例示されたコンテキスト情報、及び、図４に例示されたコンテキスト情報を比較すると、コンテキストに含まれている要素「Ｗｈｅｎ」に関する値は異なっている。したがって、図３、及び、図４に示されたコンテキスト情報においては、要素「Ｗｈｅｎ」に関して、値「メールシステムが普及し始めたころ」が、値「メールの誤送信による情報漏えい事故が多発しているころ」に変更されている。また、さらに、図３、及び、図４に示された例においては、要求の値が「使用性」から、「使用性よりもセキュリティを優先する」に変更されている。すなわち、これは、該メールシステムが利用される時代（Ｗｈｅｎ）として、「メールシステムが普及し始めたころ」から、「メールの誤送信による情報漏えい事故が多発しているころ」に変更されたコンテキストを表している。さらに、これは、「メールシステムが普及し始めたころ」に要求として「使用性」を優先していたが、「メールの誤送信による情報漏えい事故が多発しているころ」に要求として「セキュリティ」を優先するという背景情報を表す。コンテキスト情報においては、対象システムと、該対象システムに対するステークホルダとの間に生じた相互作用に関する背景情報に基づき、該対象システムの設計者（または、対象システムを設計する設計装置）等によって、該背景情報等に関する値が設定される。
【００３２】
尚、図４に示された例において、値「使用性よりもセキュリティを優先する」は、たとえば、ステークホルダから生じる要求が変更されたことを表す。機能特定装置１０１は、ステークホルダから生じる要求が変更されたことをコンテキスト情報が含んでいる場合に、該コンテキスト情報をトリガーとして、図２を参照しながら説明するような処理を開始してもよい。
【００３３】
また、機能特定装置１０１は、コンテキスト情報（図３、図４に例示）に含まれている要素に関する値に基づき、優先度が高い要求を選択してもよい。たとえば、機能特定装置１０１は、要素と、該要素に関する値と、該要素がある値である場合に優先される要求とが関連付けされた要求情報に基づき、コンテキスト情報（図３、図４に例示）に含まれている値に関して優先される要求を特定する。機能特定装置１０１がコンテキスト情報（図３、図４に例示）に含まれている値に基づき要求を特定する処理は、たとえば、該値に関する要求を特定可能な予測モデルを、コンテキスト情報に含まれている値に適用することによって実現することができる。また、該予測モデルは、機械学習法等における処理手順に従い該要求情報が処理されることによって、該要素に関する値に対して優先される要求を算出可能なモデルとして作成することができる。たとえば、対象システムに関して、Ｗｈｏ（誰が）、Ｗｈｅｎ（いつ）、Ｗｈｅｒｅ（どこで）、Ｗｈｙ（なぜ）、及び、Ｈｏｗ（どのように）のうち、少なくとも一つの要素に関する値が指定されることによって、機能特定装置１０１は、指定された値に基づき、該対象システムに関する要求を特定することができる。
【００３４】
機能特定装置１０１が、コンテキスト情報（図３、図４に例示）に含まれている要素に関する値（たとえば、「いつ」、「どこで」等）に基づき、優先度が高い要求を選択する処理によって、設計に不慣れな人であっても容易に対象システムを設計することができる。この理由は、対象システムに関して優先される要求がコンテキストに応じて決まる傾向があり、機能特定装置１０１が該傾向に従いコンテキストに応じた要求を特定するからである。
【００３５】
コンテキスト情報は、上述した例に限定されない。
【００３６】
図５を参照しながら、要求間の関連性を表す関連性情報について説明する。図５は、関連性情報記憶部１０５に格納されている関連性情報の一例を概念的に表す図である。
【００３７】
関連性情報においては、対象システムに関するセキュリティ、該対象システムの性能等に関する非機能要求が関連付けされている。図５に例示された関連性情報において、行方向には、変更を加える要求を表し、列方向には、該要求に加えられた変更によって影響を受ける可能性がある要求を表す。図５に例示された関連性情報においては、一方の要求を表す行と、他方の要求を表す列とが交差している領域に、該２つの要求が類似（両立、併存）している関係を表す符号「＋」が記載されている。図５に例示された関連性情報においては、一方の要求を表す行と、他方の要求を表す列とが交差している領域に、該２つの要求が相反している関係（トレードオフの関係）を表す符号「−」が記載されている。非特許文献３には、関連性情報の一例が開示されている。
【００３８】
たとえば、対象システムに関するセキュリティを高めるにつれ、該対象システムの性能（Ｅｆｆｉｃｉｅｎｃｙ）、または、該対象システムの可用性（Ａｖａｉｌａｂｉｌｉｔｙ）は低下する。すなわち、該セキュリティと、性能（または、可用性）との間には、相反している関係性（すなわち、トレードオフ）がある。また、該対象システムに関する保全性（ｍａｉｎｔａｉｎａｂｉｌｉｔｙ）を高くするにつれ、該対象システムの柔軟性（ｆｌｅｘｉｂｉｌｉｔｙ）は高くなる。すなわち、該保全性と、該柔軟性との間には、類似している関連性がある。図５に例示された関連性情報は、可用性（ａｖａｉｌａｂｉｌｉｔｙ）、効率性（ｅｆｆｉｃｉｅｎｃｙ）、柔軟性（ｆｌｅｘｉｂｉｌｉｔｙ）、整合性（ｉｎｔｅｇｒｉｔｙ）、相互運用性（ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ）、保全性（Ｍａｉｎｔａｉｎａｂｉｌｉｔｙ）、移植性（ｐｏｒｔａｂｉｌｉｔｙ）、信頼性（ｒｅｌｉａｂｉｌｉｔｙ）、再使用性（ｒｅｕｓａｂｉｌｉｔｙ）、頑健性（ｒｏｂｕｓｔｎｅｓｓ）、及び、有用性（ｕｓａｂｉｌｉｔｙ）の間の関係を表す。
【００３９】
尚、関連性情報は、必ずしも、対称な情報でなくともよい。この理由について説明する。たとえば、柔軟性を高めた場合に整合性は低下する（「柔軟性」に示される行、「整合性」に示される列によって示される領域における「−」）が、整合性を高めた場合であっても、必ずしも、柔軟性が低下するとは限らない（「整合性」に示される行、「柔軟性」に示される列によって示される領域における空値）。したがって、該２つの領域には、必ずしも、同じ値が格納されているとは限らない。また、関連性情報は、上述したような例に限定されず、たとえば、後述するような、セキュリティに関する要求を含んでいてもよい。
【００４０】
関連性情報は、対象システムに対する要求を表すある要求に関して変更が施された場合に、その変更が該ある要求とは異なる要求に対して与える影響を表す情報であればよく、上述した例に限定されない。
【００４１】
図７を参照しながら、モデル情報について説明する。図７は、モデル情報の一例を概念的に表す図である。
【００４２】
モデル情報は、対象システムに関する機能と、該機能が実現されることによって影響を受ける要求（さらに、要求を満たす方向であるのか否かを表す情報）とが関連付けされた情報である。モデル情報においては、第１機能と、該第１機能に含まれている第２機能とが関連付けされている。この関連性は、図７に例示されたモデル情報において、第１機能と、第２機能とを結ぶ線（矢印）を用いて表されている。第１機能と、第２機能とが、該第２機能から第１機能に向かう矢印によって結ばれている場合に、該矢印は、該第２機能が該第１機能の部分機能であることを表す。モデル情報においては、さらに、第１機能と、第２機能とを結ぶ線（矢印）に、一方の機能が他方の機能に与える、機能要求（または、非機能要求）に関する影響（さらに、要求を満たす方向であるのか否かを表す情報）を表すラベルが付与されている。
【００４３】
図７に例示されたモデル情報は、対象システムがメールシステムである場合に、メタモデル情報（図６を参照しながら後述する）に従い作成される情報を表す。該モデル情報は、該メールシステムの主たる目的である「メールを送信する」機能を表すノードと、「あて先を入力する」機能を表すノードと、「本文を入力する」機能を表すノードと、「送信処理を行う」機能を表すノードとを含む。該モデル情報は、さらに、「あて先を補完する」なる部分機能を表すノードを含む。
【００４４】
モデル情報においては、「メールを送信する」機能を表すノードと、「あて先を入力する」機能を表すノードとを結ぶ線が、「メールを送信する」機能を表すノードから「あて先を入力する」機能を表すノードに向かう矢印を用いて表されている。これは、「メールを送信する」機能が、「あて先を入力する」機能を含んでいることを表す。同様に、モデル情報においては、「メールを送信する」機能を表すノードと、「本文を入力する」機能を表すノードとを結ぶ線が、「メールを送信する」機能を表すノードから「本文を入力する」機能を表すノードに向かう矢印を用いて表されている。これは、「メールを送信する」機能が、「あて先を入力する」機能を含んでいることを表す。同様に、モデル情報は、「メールを送信する」機能が「送信処理を行う」機能を含んでいることを表す。
【００４５】
また、モデル情報においては、「あて先を入力する」機能を表すノードと、「あて先を補完する」機能を表すノードとを結ぶ線が、「あて先を補完する」機能を表すノードから「あて先を入力する」機能を表すノードに向かう矢印（線）を用いて表されている。さらに、該線には、「使用性、ｉｍｐｒｏｖｅ（すなわち、高める）」なるラベルが付与されている。これは、「あて先を入力する」機能に関する非機能要求に関する使用性を「あて先を補完する」機能によって高めることができることを表す。
【００４６】
モデル情報（図７に例示）は、メタモデル情報（図６に例示）に従い、モデル情報部１１１によって作成されてもよい。この場合に、モデル情報部１１１は、メタモデル情報（図６に例示）に従い、ある機能と、該ある機能を実現する部分機能と、該部分機能が実現されることによって要求に対して与える影響とが関連付けされたモデル情報（図７に例示）を作成する。
【００４７】
モデル情報は、上述した例に限定されない。
【００４８】
図７を参照しながら説明したような、モデル情報は、たとえば、対象システムに関するモデル情報を作成する場合のフレーム（または、枠組み、規則、制限）を表すメタモデル情報（図６に例示）に従い作成される。図６を参照しながら、メタモデル情報について説明する。図６は、メタモデル情報記憶部１１５に格納されているメタモデル情報の一例を概念的に表す図である。
【００４９】
メタモデル情報は、対象システムに関して作成されるモデル情報に関するフレーム（または、枠組み、規則、制限）を表す。メタモデル情報は、対象システムに関するステークホルダから生じる要求が生じたコンテキスト（たとえば、ステークホルダの特性、または、嗜好）、該対象システムが利用される状況や目的、外部環境、時代背景、技術動向等を表すノードを含む。さらに、該メタモデル情報は、相互に関連しているノードが結ばれた線を含む。
【００５０】
図６に例示されたメタモデル情報は、「Ｗｈｏ」とラベル付けされたノード、「Ｗｈｅｎ」とラベル付けされたノード、「Ｗｈｅｒｅ」とラベル付けされたノード、「Ｗｈｙ」とラベル付けされたノード、及び、「コンテキスト」とラベル付けされたノードを含む。これらのラベルは、図３、及び、図４を参照しながら説明したような要素を表す。
【００５１】
また、該メタモデル情報は、「Ｗｈｏ」とラベル付けされたノードから「コンテキスト」とラベル付けされたノードに向かう線を含む。さらに、該メタモデル情報においては、該線に、「ｉｄｅｎｔｉｆｙ」なるラベルが付与されている。これは、該対象システムに関する情報（この場合に、要素「Ｗｈｏ」、要素「Ｗｈｅｎ」、要素「Ｗｈｅｒｅ」、及び、要素「Ｗｈｙ」）によって、コンテキストが特定されることを表す。
【００５２】
また、該メタモデル情報は、「効率性」とラベル付けされたノード、「可用性」とラベル付けされたノード、「セキュリティ」とラベル付けされたノード、及び、「非機能要求」とラベル付けされたノードを含む。さらに、該メタモデル情報は、「可用性」とラベル付けされたノードと、「非機能要求」とラベル付けされたノードとを結ぶ線を含む。これは、
非機能要求が、効率性に関する情報、可用性に関する情報、及び、セキュリティに関する情報を含んでいることを表す。
【００５３】
該メタモデル情報は、「機能要求」とラベル付けされたノードから「非機能要求」とラベル付けされたノードに方向付けされた線であって、「ｈａｓ  Ａｔｔｒｉｂｕｔｅ」とラベル付けされた線を含む。これは、機能要求が、該機能要求に付随している属性（Ａｔｔｒｉｂｕｔｅ、すなわち、非機能要求）を含んでいる（ｈａｓ）ことを表す。また、該メタモデル情報は、「コンテキスト」とラベル付けされたノードから「非機能要求」とラベル付けされたノードに方向付けされた線であって、「ｈａｓ  Ｉｎｆｌｕｅｎｃｅ」とラベル付けされた線を含む。これは、コンテキストが、非機能要求に対して影響（Ｉｎｆｌｕｅｎｃｅ）を与えることを表す。
【００５４】
さらに、該メタモデル情報は、「主機能」とラベル付けされたノードから「機能要求」とラベル付けされたノードに方向付けされた線であって、「ｒｅａｌｉｚｅ」とラベル付けされた線を含む。これは、対象システムに関する主機能が実現される（ｒｅａｌｉｚｅ）ことによって、ある機能要求に影響を与えることを表す。同様に、該メタモデル情報は、「部分機能」とラベル付けされたノードから「非機能要求」とラベル付けされたノードに方向付けされた線であって、「ｒｅａｌｉｚｅ」とラベル付けされた線を含む。これは、対象システムに関する部分機能が実現される（ｒｅａｌｉｚｅ）ことによって、ある機能要求に影響を与えることを表す。たとえば、影響を与えるとは、ある機能が実現されることによって、ある要求が満たされる（または、満たされなくなる）ことを表す。
【００５５】
メタモデル情報は、上述した例に限定されない。
【００５６】
図８を参照しながら、優先情報について説明する。図８は、優先情報記憶部１１４に格納されている優先情報の一例を概念的に表す図である。
【００５７】
優先情報は、非機能要求に含まれている要求と、該要求よりも優先される対象である要求とを含む。図８に例示された優先情報は、該要求と、該要求よりも優先される対象である要求とが関連付けされている。
【００５８】
図８に例示された優先情報においては、要求「効率性」と、優先される要求「有用性」とが関連付けされている。これは、対象システムを設計する場合に、有用性に関する要求が、効率性に関する要求よりも優先される対象である要求であることを表す。
【００５９】
優先情報は、上述した例に限定されない。
【００６０】
次に、図２を参照しながら、本発明の第１の実施形態に係る機能特定装置１０１における処理について詳細に説明する。図２は、第１の実施形態に係る機能特定装置１０１における処理の流れを示すフローチャートである。
【００６１】
ステップＳ１０１、乃至、ステップＳ１０４にて、コンテキスト情報（図３、または、図４に例示）、関連性情報（図５に例示）、及び、モデル情報（図７に例示）が入力される。ステップＳ１０１、乃至、ステップＳ１０４に示された処理は、必ずしも、図２に示された処理順でなくともよく、また、並行（または、擬似並行）に実行されてもよい。
【００６２】
コンテキスト情報入力部１０２は、対象システムに関するコンテキスト情報（図３、または、図４に例示）を入力する（ステップＳ１０１）。コンテキスト情報は、たとえば、ステークホルダ等からの要求を含んでいる。ステークホルダは、該対象システムの設計から該対象システムの運用に亘るライフサイクルに関する利害関係者等を含む。ステークホルダは、たとえば、該対象システムのユーザ、該対象システムを運用する運用管理者、該対象システムを導入するか否かを判断する経営幹部、該対象システムの設計者、または、対象システムに関する設計（または、管理、判定）を行う設計装置等である。ステークホルダから生じる要求は、該ステークホルダの主目的を表す機能要求と、該機能要求に付随する非機能要求とを含んでいる。
【００６３】
要求特定部１０３は、関連性情報記憶部１０５に格納されている関連性情報（図５に例示）を読み取る（ステップＳ１０２）。モデル情報部１１１は、対象システムに関するモデル情報（図７に例示）を入力する（ステップＳ１０３）。尚、モデル情報部１１１は、メタモデル情報記憶部１１５に格納されているメタモデル情報（図６に例示）に従い、該対象システムに関するモデル情報（図７に例示）を作成してもよい。
【００６４】
要求特定部１０３は、さらに、対象システムに対する要求を入力する（ステップＳ１０４）。該要求は、コンテキスト情報（図３、図４に例示）に含まれている要求であってもよいし、優先要求特定部１１３が、優先情報（図８に例示）に従い、コンテキスト情報（図３、図４に例示）に含まれている要求よりも高い優先度の要求として特定した要求であってもよい。
【００６５】
該要求は、たとえば、対象システムに関する非機能要求（または、機能要求）におけるセキュリティが優先される対象であると判定される場合に、要素「セキュリティ」を表す情報である。要求特定部１０３は、述したように、外部の装置から該要求を読み取ってもよいし、コンテキスト情報（図３、図４に例示）に含まれている要素に関する値に基づき、機械学習等の手順に従い、該対象システムに関するステークホルダから生じる要求（または、価値を判断する基準）を推定してもよい。要求特定部１０３が、コンテキスト情報に含まれている要素に関する値に基づき要求を推定することによって、該要求を入力する処理を減らすことができるという効果を奏する。説明の便宜上、要求特定部１０３が、ステップＳ１０４（または、ステップＳ１０１）に示す処理に従い読み取った要求を「第１要求」と表す。
【００６６】
要求特定部１０３は、関連性情報（図５に例示）に含まれている要求のうち、該第１要求に相反している要求（以降、「第２要求」と表す）を特定する（ステップＳ１０５）。該要求が「効率性」である場合に、要求特定部１０３は、たとえば、関連性情報（図５に例示）の「効率性」にて指示された行のうち、「−」（すなわち、相反している関係を表す）を含む列（たとえば、「効率性」、「相互運用性」、「保全性」等）を特定する。要求が「効率性」である場合に、要求特定部１０３は、「効率性」にて指示された行のうち、「−」を含む列にて示された項目のうち、たとえば、「有用性」を特定する。
【００６７】
機能特定部１０４は、要求特定部１０３が特定した第２要求を満たしている機能を、モデル情報（図７に例示）に基づき特定する（ステップＳ１０６）。機能特定部１０４は、たとえば、モデル情報（図７に例示）のうち、２つのノードを結ぶ線に関するラベルに、要求特定部１０３によって特定された第２要求を含む線を特定し、特定した線によって結ばれているノードを特定する。上述したように２つのノードを結ぶ線のラベルが、該線を用いて結ばれたノードに示された機能が実現されることによって奏される効果を表しているので、機能特定部１０４は、対象システムに対する要求に相反している要求に影響を与える機能を特定する。第２要求が項目「有用性」である場合に、機能特定部１０４は、たとえば、ラベル「有用性、向上する」が付された線によって結ばれている部分機能「あて先を補完する」を特定することによって、相反している要求に好適な影響を与える機能を特定する。
【００６８】
尚、優先要求特定部１１３は、ステップＳ１０４（または、ステップＳ１０１）にて入力された第１要求よりも、優先度が高い第３要求を、優先情報記憶部１１４に格納されている優先情報（図８に例示）に従い特定してもよい。たとえば、優先要求特定部１１３は、優先情報（図８に例示）において、該第１要求に関連付けされている要求を特定する。第１要求が、「効率性」である場合に、優先要求特定部１１３は、優先情報（図８に例示）において、「効率性」に関連付けされた「有用性」を、優先度が高い要求として特定する。この場合に、要求特定部１０３は、優先要求特定部１１３が特定した第３要求に相反している第２要求を特定する。
【００６９】
次に、第１の実施形態に係る機能特定装置１０１に関する効果について説明する。
【００７０】
第１の実施形態に係る機能特定装置１０１によれば、対象システムに対する要求が変更された場合であっても、該対象システムの設計を支援することができる。この理由は、コンテキストに関する要求を満たすよう機能が実現される場合であっても、該機能が実現されるのに伴い生じる副作用を軽減することが可能な機能を、機能特定装置１０１が、上述したような処理に従い特定するからである。この理由をより詳細に説明する。
【００７１】
本実施形態に係る機能特定装置１０１は、対象システムにて実現される可能性がある要求と、該要求を実現する機能との関連性を表すモデル情報（図７に例示）を入力する。機能特定装置１０１は、対象システムにて実現される第１要求に相反している第２要求を、要求間の関連性を表す関連性情報（図５に例示）に基づき特定する。機能特定装置１０１は、該第２要求を満たしている機能を、入力したモデル情報に基づき特定する。言い換えれば、機能特定装置１０１は、対象システムにて実現する対象である機能を、ユーザの特性や、対象システムを利用する状況や目的、外部環境等に関する要求と、該対象システムにて実現することが可能な機能とが関連付けされたモデル情報と、要求間の関連性を表す関連性情報とに基づき特定する。したがって、機能特定装置１０１が特定する機能は、対象システムにおいて、第１要求を満たす機能が実現されるのに伴い生じる副作用を軽減することが可能な機能を表す。
【００７２】
優先要求特定部１１３によれば、指示された要求より高い優先度を有する要求を満たすシステムを提示することができる。この理由は、優先要求特定部１１３が、対象システムに対する要求よりも、さらに優先度が高い要求を満たしている機能を特定するからである。
【００７３】
要求特定部１０３は、関連性情報（図５に例示）において、たとえば、第１要求と両立（並存）している第４要求、該第４要求に相反している第５要求を特定してもよい。あるいは、要求特定部１０３は、関連性情報（図５に例示）において、たとえば、第１要求に相反している第２要求、及び、第２要求と両立している第６要求を特定してもよい。この場合に、第５要求、及び、第６要求が、第１要求に相反しており、かつ、第２要求と両立している可能性が高いので、本実施形態に係る機能特定装置１０１によれば、上述した効果に加え、さらに、対象システムの設計を支援することができる。
【００７４】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
【００７５】
図９を参照しながら、本発明の第２の実施形態に係る機能特定装置２０１が有する構成について詳細に説明する。図９は、本発明の第２の実施形態に係る機能特定装置２０１が有する構成を示すブロック図である。
【００７６】
本発明の第１の実施形態に係る機能特定装置２０１は、要求特定部２０２と、機能特定部２０３とを有する。機能特定装置２０１は、さらに、関連性情報記憶部２０４を有してもよい。
【００７７】
機能特定装置２０１は、対象システムが満たす要求を受信した場合に、関連性情報記憶部２０４に格納されている関連性情報（図１２に例示）と、モデル情報（図１１に例示）と、受信した要求に基づき、図１０に示された処理に従い、該対象システムに関する機能を特定する。ここで、図１１に例示されたモデル情報と、図１２に例示された関連性情報について説明する。
【００７８】
図１２を参照すると、関連性情報記憶部２０４には、対象システムに対する要求と、該要求に相反している（該要求とトレードオフの関係にある）要求とが関連付けされた関連性情報が格納されている。図１２は、関連性情報記憶部２０４に格納されている関連性情報の一例を概念的に表す図である。
【００７９】
図１２に例示された関連性情報は、図５に例示された関連性情報において、相反している要求のみが関連付けされた情報である。たとえば、図１２に例示された関連性情報において、要求「柔軟性」と、要求「効率性」とは関連付けされている。これは、要求「柔軟性」と、要求「効率性」とが相反している要求であることを表す。
【００８０】
図１１を参照しながら、モデル情報について説明する。図１１は、モデル情報の一例を概念的に表す図である。
【００８１】
モデル情報は、対象システムに関する主機能（第１機能）の部分機能を表す第２機能を表す情報と、該部分機能が実現された場合に該対象システムに対する要求に与える影響を表す情報とが関連付けされている。モデル情報は、さらに、第２機能を表す情報に、第１機能を表す情報が関連付けされていてもよい。図１１に例示されたモデル情報は、図７に例示されたモデル情報において、第１機能を表す情報と、第２機能を表す情報と、第１機能、及び、第２機能が結ばれた線に付与されたラベルを表す情報とが関連付けされた情報である。
【００８２】
次に、図１０を参照しながら、本発明の第２の実施形態に係る機能特定装置２０１における処理について詳細に説明する。図１０は、第２の実施形態に係る機能特定装置２０１における処理の流れを示すフローチャートである。
【００８３】
要求特定部２０２は、対象システムに対する第１要求を表す情報を入力し、関連性情報（図１２に例示）において、該第１要求に相反している第２要求を特定する（ステップＳ２０１）。機能特定部２０３は、たとえば、関連性情報において、第１要求に関連付けされた第２要求を特定する。
【００８４】
次に、機能特定部２０３は、モデル情報において、要求特定部２０２が特定した第２要求に影響を与える機能を特定する（ステップＳ２０２）。機能特定部２０３は、たとえば、モデル情報において、第２要求を含む影響に関連付けされた第２機能を特定する。すなわち、機能特定部２０３は、対象システムにて実現されることによって、該対象システムに対する第２要求を満たしている機能を特定する。
【００８５】
要求特定部２０２は、たとえば、要求特定部１０３が有する機能を用いて実現することができる。機能特定部２０３は、たとえば、機能特定部１０４が有する機能を用いて実現することができる。また、機能特定装置２０１は、機能特定装置１０１が有する機能を用いて実現することができる。
【００８６】
次に、第２の実施形態に係る機能特定装置２０１に関する効果について説明する。
【００８７】
第２の実施形態に係る機能特定装置２０１によれば、対象システムに対する要求が変更された場合であっても、該対象システムの設計を支援することができる。この理由は、コンテキストに関する第１要求を満たすよう機能が実現される場合であっても、該機能が実現されるのに伴い生じる副作用を軽減することが可能な機能を、機能特定装置２０１が、上述したような処理に従い特定するからである。
【００８８】
（ハードウェア構成例）
上述した本発明の各実施形態における機能特定装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る機能特定装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現されてもよい。また、係る機能特定装置は、専用の装置として実現されてもよい。
【００８９】
図１３は、第１の実施形態、及び、第２の実施形態に係る機能特定装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、及び、通信インターフェース（以降、「通信ＩＦ」と表す）２７を有する。計算処理装置２０は、入力装置２５、出力装置２６に接続可能であってもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【００９０】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【００９１】
すなわち、ＣＰＵ２１は、ディスク２３に格納されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合に、ＣＰＵ２１は、ディスプレー２８に出力結果を表示する。外部への出力が必要な場合に、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合に、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、または、図９に示す各部が表す機能（処理）に対応するところのメモリ２２にある機能特定プログラム（図２、または、図１０）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【００９２】
すなわち、このような場合に、本発明は、係る機能特定プログラムによっても成し得ると捉えることができる。さらに、係る機能特定プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【００９３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００９４】
１０１    機能特定装置
１０２    コンテキスト情報入力部
１０３    要求特定部
１０４    機能特定部
１０５    関連性情報記憶部
１１１    モデル情報部
１１２    要求推定部
１１３    優先要求特定部
１１４    優先情報記憶部
１１５    メタモデル情報記憶部
２０１    機能特定装置
２０２    要求特定部
２０３    機能特定部
２０４    関連性情報記憶部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
2017224126.tif 000003
【図２】
2017224126.tif 000004
【図３】
2017224126.tif 000005
【図４】
2017224126.tif 000006
【図５】
2017224126.tif 000007
【図６】
2017224126.tif 000008
【図７】
2017224126.tif 000009
【図８】
2017224126.tif 000010
【図９】
2017224126.tif 000011
【図１０】
2017224126.tif 000012
【図１１】
2017224126.tif 000013
【図１２】
2017224126.tif 000014
【図１３】
2017224126.tif 000015