[go: up one dir, main page]

JP3887571B2 - Software design requirement extraction support method, software design requirement determination support method, software design support method, and program - Google Patents

Software design requirement extraction support method, software design requirement determination support method, software design support method, and program Download PDF

Info

Publication number
JP3887571B2
JP3887571B2 JP2002060443A JP2002060443A JP3887571B2 JP 3887571 B2 JP3887571 B2 JP 3887571B2 JP 2002060443 A JP2002060443 A JP 2002060443A JP 2002060443 A JP2002060443 A JP 2002060443A JP 3887571 B2 JP3887571 B2 JP 3887571B2
Authority
JP
Japan
Prior art keywords
countermeasure
function
item
information storage
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002060443A
Other languages
Japanese (ja)
Other versions
JP2003256205A (en
Inventor
裕二 玉木
直浩 野々垣
健男 今井
泰志 加藤
竜大 西岡
昇 藤巻
哲司 深谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002060443A priority Critical patent/JP3887571B2/en
Publication of JP2003256205A publication Critical patent/JP2003256205A/en
Application granted granted Critical
Publication of JP3887571B2 publication Critical patent/JP3887571B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ソフトウェアのアーキテクチャ設計を行う場合に、機能要求だけでなく、非機能要求も反映させるための手法に関するものである。
【0002】
【従来の技術】
ソフトウェアのアーキテクチャの設計を行う際、従来は、機能要求に焦点が当てられ、拡張性を高くするなどの非機能要求は、それらをどこまで考慮するかが設計者のスキルに依存することが多く、必ずしも設計に反映されるわけではなかった。ソフトウェアアーキテクチャ設計時に、非機能要求をも反映させなければ、例えば、仕様変更やプラットフォーム変更などの外的変動が発生した場合に、対応するのが困難なことが多い。
【0003】
また、OMT法(J.ランボー他著、羽生田栄一監訳、オブジェクト指向方法論OMTモデル化と設計、1992.7 ISBN4-8101-8527-3)などの、オブジェクト指向分析/設計技法も、クラスの抽出、クラス間の関連の抽出などの、マクロなレベルでの作業項目を明示している。しかしながら、従来のオブジェクト指向分析/設計技法は、将来の外的変動が発生したときに対応しやすい構成とするための作業項目を明示するものではないので、顧客の要求等が変動した場合には、要求を満足するソフトウェアを開発するコストが高くなる。
【0004】
【発明が解決しようとする課題】
現在の高度に複雑化したシステムでは、単に顧客の要求する機能だけを実現すればよいわけではない。その上、顧客の要求自体も曖昧で、開発が進むにつれて、要求仕様が次第に明らかになるというケースも多い。このような、要求の変更などの外的変動に対応できるようにするためには、発生した要因が、ソフトウェアのどこの部分に影響を与えるか、どのように修正すべきかを、明確に追跡できるようにする必要がある。
【0005】
そのためには、現状の設計が、「なぜそのようになっているか」を明確に説明できる必要がある。なぜなら、仕様変更に強くするには、予め仕様変更を想定し、それを反映した設計でなければならず、このことが、「なぜそのような設計になっているか」という理由になるからである。したがって、ソフトウェアの設計に当たっては、様々な変動に対応できるように予め作り込むことが必要であり、このことが、設計の根拠を重要視しなければならない理由である。
【0006】
本発明は、以上のような従来技術の課題を解決するために提案されたものであり、その目的は、外的変動が発生した場合に、どの部分が影響するか、どのように直すべきかを明確化できるようにして、ソフトウェア開発のトータルコストを下げ、また、顧客満足度の高いソフトウェアを開発できるようにするための優れた方法を提供することである。
【0007】
すなわち、本発明の第1の目的は、設計対象ソフトウェアの構成と仕組みに関して作り込むべき設計要件として、機能要求だけでなく非機能要求をも反映させた設計要件を効率的に抽出可能とすることにより、多様な非機能要求を設計の根拠として設計に反映可能なソフトウェア設計要件抽出支援方法を提供することである。
【0008】
また、本発明の第2の目的は、機能要求および非機能要求を反映させた設計要件を分類整理して重要な設計要件のみに限定し、採用すべき設計要件を効率的に決定可能なソフトウェア設計要件決定支援方法を提供することである。また、本発明の第3の目的は、機能要求および非機能要求を反映させた設計要件に基づいて、多様な外的変動に対応可能なソフトウェアアーキテクチャを効率的に設計可能なソフトウェア設計支援方法を提供することである。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明は、各機能要求項目についてソフトウェア設計上で考慮すべき特性を個別に対比させることで機能要求項目の実現に影響する事象を抽出し、各事象について非機能要求項目を個別に対比させることで、機能要求だけでなく非機能要求をも反映させた設計要件を効率的に抽出できるようにしたものである。
【0010】
なお、本発明において重要な用語の定義は次の通りである。
「設計要件」は、設計対象ソフトウェアの構成と仕組みに関して作り込むべき具体的な要件であり、それを実現するために、設計対象ソフトウェアの具体的な構成と仕組みが決定付けられるような具体的な内容を表現する情報である。例えば、処理Aを行える仕組みを設ける、情報Bを保持できる構成にする、部分Cを変更可能な構成にする、等の情報であるが、情報の表現形式は何ら限定されない。
【0011】
「機能要求」は、設計されるソフトウェアに要求される具体的な機能を意味しており、ソフトウェアエンジニアリングの分野で一般的に使用されている用語である。
「非機能要求」は、設計されるソフトウェアに要求される具体的な機能以外の各種の要求を意味しており、例えば、性能要求、搭載対象の制約、再利用性、拡張性、保守性、セキュリティ、使いやすさ、等の各種の制約や条件を含む広い概念である。この「非機能要求」もまた、ソフトウェアエンジニアリングの分野で一般的に使用されている用語である。
【0012】
「ソフトウェア設計を行う上で考慮すべき特性」は、ソフトウェア設計一般において考慮すべき各種の特性を意味しており、例えば、ソフトウェアエンジニアリングの分野で一般に定義されている、品質評価のための特性である「品質特性」をもとに再構成した、「アーキテクチャ特性」などを利用できる。アーキテクチャ特性には、「仕様の安定性」などのアーキテクチャ特性項目が多数含まれているが、それぞれに、機能要求項目の実現に影響する事象を誘発させるための質問を定義している。「ソフトウェア設計を行う上で考慮すべき特性」は、「アーキテクチャ特性項目」に限らず、定義済みの他の各種の特性項目、あるいは開発者等が事前に定義した特性項目なども含む広い概念である。
【0013】
「機能要求項目の実現に影響する事象」は、対象としている機能要求項目の実現方法に影響を与えるか、あるいは実現を困難にするような、何らかの事象を意味しており、一般的にリスクと称される事象を含むが、それ以外の各種の事象を含む広い概念である。
「ソフトウェアアーキテクチャ」は、ソフトウェアの全体構造とそれぞれの部分を構成する構成要素間の関係を表現する情報であり、ソフトウェア全体の設計方針となるものである。この「ソフトウェアアーキテクチャ」もまた、ソフトウェアエンジニアリングの分野で一般的に使用されている用語である。
【0014】
請求項1の発明は、キーボード等の入力操作部と、メモリ等の情報格納部と、入力あるいは格納されている情報を検索し抽出する演算部と、前記演算部によって抽出された情報を表示画面とを有するコンピュータを利用して、設計対象ソフトウェアのアーキテクチャの設計を支援するソフトウェア設計要件抽出支援方法において、
ソフトウェア設計を行う上で考慮すべき品質特性を前記情報格納部内に予め格納しておく品質特性格納ステップと、
前記コンピュータの入力操作部を介して、設計者から記設計対象ソフトウェアの機能要求項目および非機能要求項目の入力を受け付けて、これらをコンピュータの情報格納部内に記録する要求項目受付ステップと、
前記演算部が、前記情報格納部内に記録された各機能要求項目について、予め情報格納部内に格納されている品質特性とを個別に対比させ、その対比結果をコンピュータの表示画面上に表示する機能項目−品質特性表示ステップと、
前記表示画面上に表示された対比結果に基づいて設計者が判断した各機能要求項目の実現に影響するリスクを、設計者から前記入力操作部を介して受け付けるリスク受付ステップと、
前記演算部が、前記入力操作部を介して受け付けた各リスクを、前記情報格納部内に格納されていた非機能要求項目と個別に対比させ、その対比結果をコンピュータの表示画面上に表示するリスク−非機能要求項目表示ステップと、を含むことを特徴とする。
【0015】
この方法によれば、各機能要求項目についてソフトウェア設計上で考慮すべき特性を個別に対比させることにより、その対比結果に基づいて機能要求項目の実現に影響する事象を抽出することができる。そして、抽出された各事象について非機能要求項目を個別に対比させることにより、その対比結果に基づいて機能要求だけでなく非機能要求をも反映させた設計要件を効率的に抽出することができる。したがって、この方法によって得られた設計要件を採用することにより、多様な非機能要求を設計の根拠として設計に反映させることができる。
【0016】
請求項2の発明は、前記情報格納部内に過去のデータに基づいて予め用意した機能要求項目の候補および非機能要求項目の候補を格納しておき、前記要求項目受付ステップに先立ち、前記演算部が、情報格納部内に格納された機能要求項目と非機能要求項目を表示画面に表示するステップを含む、ことを特徴とする。
この方法によれば、過去のデータに基づいて予め用意した候補の中で該当するものがあればそれを選択するだけで機能要求項目および非機能要求項目を入力できるため、候補が存在しない要求項目のみを作成するだけで、必要な全ての要求項目を効率的に入力することができる。
【0017】
請求項3の発明は、前記リスク受付ステップが、各リスクについて機能要求項目の実現に対する影響度を受け付けるものであり、前記リスク−非機能表示ステップが、予め設定された基準値以上のリスクを抽出するものである、ことを特徴とする。
この方法によれば、候補として得られる事象の中から影響度が基準値以上の事象のみを機械的に抽出し、影響度の低い事象を除去することにより、抽出する事象の数を自動的に少なくできるため、事象の抽出効率を高めると共に、後続作業の効率を高めることができる。
【0018】
請求項4の発明は、前記要求項目受付ステップが、各非機能要求項目についてその満足度を受け付けるものであり、前記リスク−非機能要求項目表示ステップが、予め設定された基準値以上の非機能要求項目を抽出して表示するものである、ことを特徴とする。
この方法によれば、候補として得られる設計要件の中から非機能要求項目の満足度が基準値以上の設計要件のみを機械的に抽出し、満足度の低い設計要件を除去することにより、抽出する設計要件の数を自動的に少なくできるため、設計要件の抽出効率を高めると共に、後続作業の効率を高めることができる。
【0019】
請求項5の発明は、前記請求項1の発明に加え、
前記リスク−非機能表示ステップにおいて表示画面に表示されたリスク−非機能要求項目に基づいて設計者が用意した対策案を、前記コンピュータの入力操作部を介して受け付けて、これを前記情報格納部内に格納する対策案受付ステップと、
前記情報格納部内の各対策案を表示画面に表示した状態で、設計者から各対策案と重要度を前記入力操作部を介して受け付け、前記演算部が、これらを情報格納部に格納する分類受付ステップと、
前記演算部が、前記分類受付ステップで受け付けた各対策案をその重要度に応じて分類整理して表示画面に表示する重要度表示ステップと、
前記重要度表示ステップで表示された重要度の高い各対策案について、設計者からその対策案と関連する他の対策案との関係についての情報を受け付けて情報格納部に格納する関係受付ステップと、
前記演算部が、前記情報格納部に格納されている各対策案を、所定の関係を有する対策案ごとに分類整理して表示画面に表示し、設計者から各グループごとに設計要件の取捨選択情報を受け付けて、前記情報格納部に格納する取捨選択情報受付ステップと、を含むことを特徴とする。
【0021】
この方法によれば、機能要求および非機能要求を反映させた複数の設計要件を分類整理して、相関の高い複数の設計要件を上位の設計要件に統合する等の作業を行い、機能要求項目群や現在の作業範囲、作業フェーズ等の詳細度、具体度等によって決定される現時点での重要性の高い設計要件を抽出することにより、設計要件をより少ない数の重要な設計要件のみに限定することができる。そして、そのように限定された重要な設計要件について、所定の関係を有する設計要件のグループごとに設計要件の取捨選択を順次行うことにより、設計要件の数を効率的に絞り込むことができる。したがって、この方法によれば、機能要求および非機能要求を反映させた設計要件を分類整理して重要な設計要件のみに限定し、限定した設計要件を設計要件間の関係に基づいてさらに効率的に絞り込むことができるため、採用すべき設計要件を効率的に決定することができる。
【0022】
請求項6の発明は、前記関係受付ステップは、1つの対応策を採用すると別の対応策の採用が困難になるような相反の関係を受け付けるものであり、前記取捨選択情報受付ステップは、設計者から相反の関係をなくすための対応策を削除するという取捨選択情報を受け付けるものである、ことを特徴とする。
【0023】
請求項7の発明は、前記関係受付ステップは、1つの対応策を採用すると別の対応策を採用したのと同様になるような類似および/または依存の関係を受け付けるものであり、前記取捨選択情報受付ステップは、設計者から、設計者が指定した対応策に対して類似および依存の関係にある他の対応策を削除するという取捨選択情報を受け付けるものである、ことを特徴とする。
【0024】
これらの方法によれば、複数の設計要件が相反の関係にある場合には、相反の関係をなくすような取捨選択を行い、複数の設計要件が類似の関係にある場合には数を少なくするような取捨選択を行うことができる。したがって、重要な設計要件として抽出された設計要件について、設計要件間の関係と現時点での重要性に応じて適切な取捨選択を順次行うことにより、設計要件の数を適切かつ効率的に絞り込むことができるため、より少ない数の最も重要な設計要件のみを、採用すべき設計要件として容易に決定することができる。
【0025】
請求項8の発明は、前記重要度表示ステップは、各対応策の現時点での重要度が予め設定された所定の基準値以上の対応策を表示するものである、ことを特徴とする。
この方法によれば、機能要求および非機能要求に基づいて得られた設計要件を分類整理した上で、現時点での重要度が基準値以上の設計要件のみを機械的に抽出し、重要度が比較的低い設計要件を除去することにより、抽出する設計要件の数を自動的に少なくできるため、設計要件の抽出効率を高めると共に、後続作業の効率を高めることができる。
【0028】
なお、請求項9または10の発明は、請求項1または5の発明の方法をそれぞれプログラムの観点から把握したものであり、各プログラムによれば、対応する各方法について上述した作用と同様の作用が得られる。
【0029】
【発明の実施の形態】
以下には、本発明の実施形態を図面に沿って具体的に説明する。ただし、ここで記載する実施形態は、本発明を何ら限定するものではなく、本発明の一態様を例示するものにすぎない。
【0030】
本発明は、典型的には、コンピュータをソフトウェアで制御することにより実現される。この場合のソフトウェアは、コンピュータのハードウェアを物理的に活用することで本発明の作用効果を実現するものであり、また、従来技術を適用可能な部分には好適な従来技術が適用される。さらに、本発明を実現するハードウェアやソフトウェアの具体的な種類や構成、ソフトウェアで処理する範囲などは自由に変更可能であり、例えば、本発明を実現するプログラムは本発明の一態様である。
【0031】
[1.ソフトウェア設計支援方法]
図1は、本発明を適用したソフトウェア設計支援方法の概要をデータの流れと共に示すフローチャートである。この図1に示すように、顧客、経営者、プロジェクトマネージャ等のステークホルダからの要求は、設計者により、機能要求項目D11と非機能要求項目D12とに分類して入力され、記録される(S110)。
【0032】
次に、リスク項目とそれに対する対策案の抽出を行う(S120)。すなわち、記録された各機能要求項目D11について、予め用意されたアーキテクチャ特性項目Daを順次組み合わせて(S121)、各組み合わせについてリスク項目D21を抽出、記録し(S122)、各リスク項目D21について、全ての非機能要求項目D12を個別に対比させ、可能性D22、許容度D23、対策案D24を抽出、記録する(S123)。
【0033】
ここで、「アーキテクチャ特性項目」とは、ソフトウェアアーキテクチャ設計を行う上で考慮すべき特性として一般に定義されている「品質特性」をもとに再構成したもので、ソフトウェアアーキテクチャ設計を行う上で考慮すべき特性項目を表している。また、「リスク」とは、本発明における「機能要求項目の実現に影響する事象」に含まれる概念であり、そのような事象の中でも、特に、対象としている機能要求項目の実現に、大きな影響を与えるか、あるいは実現を困難にすると思われるような、より限定された何らかの事象を意味している。
【0034】
また、「可能性」は、そのリスクが発生するのはどのような場合かについての情報であり、「許容度」は、そのリスクをどこまで考慮すべきかについての情報である。また、「対策案」は、本発明における「設計要件」に含まれる概念であり、ここでは、そのリスクが発生した場合の対応を容易にするために、どのような構成、仕組み等を設ければよいかについての情報である。そして、機能要求項目D11とアーキテクチャ特性項目Daの全ての組み合わせについてステップS121〜S123を行った時点で次のステップS130に進む。
【0035】
ステップS130においては、記録された対策案D24を分類整理して、現時点で重要な対策案D31と現時点で重要でない対策案D32を抽出、記録する。次に、記録された「重要な対策案」D31について、相反、類似、依存、独立、等の各種の関係のうち、少なくとも、相反、類似、依存、等の、ある対策案を講ずることが別の対策案を講ずることに何らかの影響を与える関係を「重要な対策案の関係」D4として抽出、記録する(S140)。
【0036】
ここで、「相反」は、ある対策案を講ずると、別の対策案を講ずるのが困難あるいは不可能になる、という関係である。また、「類似」は、ある対策案を講ずると、別の対策案をも講じたことになる、という関係である。また、「依存」は、ある対策案を講ずるためには、別の対策案を講ずることが条件となる、という関係である。そしてまた、「独立」は、ある対策案を講じても、別の対策案を講ずることに何ら影響を与えない、という関係である。
【0037】
続いて、記録された「重要な対策案の関係」D4に基づいて、所定の関係を有する各グループごとに対策案の取捨選択を行い、ソフトウェアアーキテクチャ設計に採用すべき1つ以上の対策案を決定する(S150)。そして、記録された「採用すべき対策案」D5に基づいて、各対策案を実現するための構成と動作原理を順次抽出し、統合することにより、ソフトウェアアーキテクチャD6を構築し、記録する(S160)。
【0038】
なお、ステップS160で記録されたソフトウェアアーキテクチャD6の構成要素群が、実装環境に依存せずに、その詳細を検討できると判断された場合(S170)には、それぞれの構成要素群を対象に、上記ステップS110〜S160を繰り返す。
以下には、図1を参照しながら、ソフトウェア設計支援方法における個々のステップの詳細について順次説明する。
【0039】
[1−1.機能要求項目と非機能要求項目の入力ステップ]
機能要求項目と非機能要求項目の入力ステップS110においては、設計者が、顧客、経営者、プロジェクトマネージャ等のステークホルダから与えられた要求の中から機能的な要求に属するものを抽出、整理して機能要求項目とすると共に、それ以外のものを非機能要求項目として分類し、キーボード等の入力操作部により入力操作を行うことにより、それらの機能要求項目D11および非機能要求項目D12に関する情報は、コンピュータに入力され、メモリ等の格納部に記録される。
【0040】
[1−2.リスク項目とそれに対する対策案等の抽出ステップ]
図2は、リスク項目とそれに対する対策案等の抽出ステップS120(ステップS121〜S124)の詳細をデータの流れと共に示すフローチャートである。この図2に示すように、まず、入力ステップS110で記録された機能要求項目D11と予め用意されたアーキテクチャ特性項目Daから、1つの機能要求項目D11と1つのアーキテクチャ特性項目Daからなる組み合わせを取り出す(S201)。このステップS201は、図1のステップS121に相当する。
【0041】
そして、機能要求項目D11とアーキテクチャ特性項目Daの組み合わせを、類似リスク検索の支援表示と共に設計者に順次提示してリスク項目の入力支援を行う(S202)。なお、本実施形態における各種の入力支援は、基本的に、設計者に対して情報を画面表示することで行われ、これに音声出力等が適宜組み合わせられるようになっている。設計者が検索要求の入力操作を行うことで、類似リスクの検索要求が入力された場合(S203のYES)には、過去の作業データDbから類似したリスクを検索、提示する(S204)。
【0042】
設計者が、提示された機能要求項目D11とアーキテクチャ特性項目Daの組み合わせや過去の類似データDb等を参照しながら、リスクの検討を行ってリスク項目の作成やその確認等の入力操作を行った場合(S205のYES)には、そのリスク項目D21に関する情報は、コンピュータに入力され、メモリ等の格納部に記録される(S206)。なお、これらのステップS202〜S206は、図1のステップS122に相当する。
【0043】
続いて、記録されたリスク項目D21を設計者に提示して可能性、許容度、対策案の入力支援を行う(S207)。この入力支援にあたってはまた、記録された非機能要求項目を満足させる「対策案」を得るために、設計者に対して、全ての非機能要求項目D12を示すリストが各リスク項目D21と同時に提示される。設計者が、提示されたリスク項目D21と非機能要求項目D12を参照しながら、リスク項目D21に対する可能性D22、許容度D23、対策案D24の検討を行ってそれらの情報の作成やその確認等の入力操作を行った場合(S208のYES)には、それらの情報は、コンピュータに入力され、メモリ等の格納部に記録される(S209)。なお、これらのステップS207〜S209は、図1のステップS123に相当する。
【0044】
そして、機能要求項目D11とアーキテクチャ特性項目Daの各組み合わせを順次取り出し、各組み合わせについてステップS202〜S209を繰り返す。最終的に、全ての組み合わせについて上記のステップS201〜S209を行った(S124のNO、S210のNO)時点で、次のステップS130に進む。なお、このようなリスク項目D21とそれに対する対策案D24等の抽出ステップは、記録された非機能要求項目D12をブレイクダウンすることと、潜在的な非機能的な要求を漏れなく抽出するために行うものであるため、対策案D24は、その詳細度、粒度にはあまり左右されることなく、広い視野で漏れなく抽出することが望ましい。
【0045】
[1−3.対策案の分類整理、重要な対策案の抽出ステップ]
図3は、対策案の分類整理、重要な対策案の抽出ステップS130の詳細をデータの流れと共に示すフローチャートである。この図3に示すように、まず、ステップS120で記録された全ての対策案D24のリストを設計者に提示して入力支援を行う(S301)。設計者が、相関の高い複数の対策案の選択やその確認等の入力操作を行うことで、統合の対象となる複数の対策案D24が指定された場合(S302のYES)には、それらの複数の対策案D24を統合対象グループとして並べて提示し、対策案の記述を修正させるための入力支援を行う(S303)。
【0046】
設計者が、提示された複数の対策案D24を参照しながら、統合対象グループに含まれる対策案の全てを包括するような上位の対策案に統合する形で、対策案の記述の修正やその確認等の入力操作を行った場合(S304のYES)には、元となったグループの複数の対策案がリスト中で削除され、それらを包括する上位の対策案に置き換えられる(S305)。
【0047】
相関の高い対策案D24の統合が終了するかあるいはそのような統合の対象となる複数の対策案D24が存在せず、統合が不要である場合(S306のYES)には、設計者は、対象の機能要求項目群の具体度、現在の作業範囲、作業フェーズ等の詳細度や具体度に適合する対策案の検討のみを行う。このような検討に基づき、設計者が、現在のフェーズで考慮すべき対策案としての選択やその確認等の入力操作を行った場合(S307のYES)には、設計者の選択結果に応じて、設計者によって選択された対策案D24は現時点で「重要な対策案」D31として、また、選択されなかった対策案D24は現時点で「重要でない対策案」D32として、メモリ等の格納部にそれぞれ記録される(S308)。
【0048】
すなわち、設計者によって現在のフェーズで考慮すべき対策案として選択されなかった対策案については、実装する環境に依存した対策案、あるいは、対象の機能要求項目群の具体度、現在の作業範囲、作業フェーズ等の詳細度、具体度等と比べて、詳細度や具体度が高い対策案、等については、現在のフェーズで考慮すべきではない対策案である。したがって、これらの対策案については、現時点で「重要でない対策案」D32としてグルーピングしておき、その対策案を考慮すべき時点で抽出すればよい。
【0049】
[1−4.重要な対策案の関係抽出ステップ]
図4は、重要な対策案の関係抽出ステップS140の詳細をデータの流れと共に示すフローチャートである。この図4に示すように、まず、ステップS130で記録された現時点で重要な対策案D31の全てを示すリストと共に、相反、類似、依存、等の関係を示すシンボル等を示す選択画面を設計者に提示して入力支援を行う(S401)。設計者が、相反の関係を有する複数の対策案とその関係の選択やその確認等の入力操作を行うことで、相反の関係を有する複数の対策案D31が指定された場合(S402のYES)には、それらの複数の対策案D31を、相反の関係を有する対策案のグループとして提示して次の入力操作に備える(S403)。
【0050】
同様に、類似の関係を有する複数の対策案D31が指定された場合(S404のYES)には、それらの複数の対策案D31を、類似の関係を有する対策案のグループとして提示して次の入力操作に備える(S405)。そしてまた、依存の関係を有する複数の対策案D31が、依存する側と依存される側を示す依存方向と共に指定された場合(S406のYES)には、それらの複数の対策案D31を、依存の関係を有する対策案のグループとして依存方向と共に提示して次の入力操作に備える(S407)。
【0051】
そして、全ての対策案について、関係の明確化が終了した時点(S408のYES)で、相反、類似、依存等の、重要な対策案の関係に関する情報は、「重要な対策案の関係」D4として、メモリ等の格納部に記録される(S409)。なお、このステップS140は、ソフトウェアアーキテクチャ設計に、どのような対策を講じていけばよいかを検討しやすくするために行うものであるため、その観点から必要となる各種の関係を抽出、記録する。
【0052】
[1−5.採用すべき対策案の決定ステップ]
図5は、採用すべき対策案の決定ステップS150の詳細をデータの流れと共に示すフローチャートである。この図5に示すように、まず、ステップS140で記録された「重要な対策案の関係」D4に基づいて、相反の関係を有する「重要な対策案」D31の各グループを設計者に順次提示して入力支援を行う(S501)。
【0053】
設計者が、提示された対策案の各グループについて、相反の関係を解消させるために採用しない対策案の選択やその確認等の入力操作を行うことで、各グループについて採用しない対策案D31aが指定された場合(S502のYES)には、その指定された対策案D31aに基づいて、採用しない対策案を決定し、重要な対策案D31から削除する(S503)。
【0054】
すなわち、指定された対策案D31aを採用しない対策案として決定すると共に、その指定された対策案D31aと類似の関係を有する別の単数または複数の対策案D31b、および指定された対策案に依存する別の単数または複数の対策案D31cについても採用しないものと決定し、これらの採用しない対策案D31a,D31b,D31cを、重要な対策案D31から削除する。
【0055】
次に、削除されずに残った「重要な対策案」D31の中から、類似の関係を有する「重要な対策案」D31の各グループを設計者に順次提示して入力支援を行う(S504)。設計者が、提示された対策案の各グループについて、最も重要な対策案の選択やその確認等の入力操作を行うことで、各グループで最も重要な対策案D31dが指定された場合(S505のYES)には、その指定された対策案D31dを採用する対策案として決定し、各グループの別の単数または複数の対策案D31eを、重要な対策案から削除する(S506)。
【0056】
続いて、削除されずに残った「重要な対策案」D31の中から、依存の関係を有する「重要な対策案」D31の各グループを設計者に順次提示して入力支援を行う(S507)。設計者が、提示された対策案の各グループについて、採用する対策案の選択やその確認等の入力操作を行うことで、各グループについて採用する対策案D31fが指定された場合(S508のYES)には、その指定された対策案D31fに基づいて、採用しない対策案を決定し、重要な対策案D31から削除する(S509)。
【0057】
すなわち、グループ内に指定された対策案D31fが依存する別の対策案D31gがある場合には、最終的な依存先となる対策案まで辿る形で、対策案D31fが依存する全ての対策案D31gを採用する対策案として決定し、指定された対策案D31fにさらに依存するような別の対策案D31hについては、重要な対策案から削除する。
【0058】
最後に、削除されずに残った「重要な対策案」D31の中から、上記のような、相反、類似、依存の関係を持たず、他の対策案から完全に独立している対策案については、個々の対策案を設計者に個別に順次提示して入力支援を行う(S510)。設計者が、提示された個々の対策案について、採用の有無やその確認等の入力操作を行うことで、採用すると指定された対策案D31iについては(S5111のYES)には、その指定された対策案D31iを採用する対策案として決定し、採用しないと指定された対策案D31jについては、その対策案D31jを、重要な対策案から削除する(S512)。
【0059】
そして、以上のような、相反、類似、依存、独立の関係に基づく対策案の取捨選択が終了した時点(S513のYES)で、削除されずに残った「重要な対策案」D31は、「採用すべき対策案」D5として、メモリ等の格納部に記録される(S514)。
【0060】
[1−6.対策案を実現する構成と動作原理の抽出、統合ステップ]
図6は、対策案を実現する構成と動作原理の抽出、統合ステップS160の詳細をデータの流れと共に示すフローチャートである。この図6に示すように、まず、ステップS150で記録された「採用すべき対策案」D5に基づいて、全ての「採用すべき対策案」D5のリストを設計者に提示して、優先順位を付けさせるための入力支援を行う(S601)。なお、ここでは、「採用すべき対策案」D5として、n個の対策案D51〜D5nが存在するものとする。
【0061】
設計者が、提示されたn個の対策案D51〜D5nについて、優先順の選択やその確認等の入力操作を行うことで、n個の対策案D51〜D5nの優先順位が指定された場合(S602のYES)には、既存のパターンや過去の作業データ等に対する情報検索の支援表示と共に、その指定された優先順位に基づいて、対策案D51〜D5nを順次提示して、それを実現する構成、動作原理を入力するための入力支援を行う(S603)。設計者が、検索要求の入力操作を行うことで、既存のパターンや過去の作業データの検索要求が入力された場合(S604のYES)には、既存のアーキテクチャパターンやデザインパターンDc、過去の作業データDb等の情報を検索、提示する(S605)。
【0062】
設計者が、提示された第1の対策案D51や、既存のパターンDcや過去の作業データDb等の情報を参照しながら、その対策案D51を実現する構成、動作原理を検討し、それらに関する情報の入力操作を行った場合(S606のYES)には、その構成、動作原理D61に関する情報が明確性を有するか否かが判定される(S607)。
【0063】
すなわち、構成、動作原理に関する情報において、各構成要素は、役割、責任範囲を明確に定義している必要があるため、そのような明確性を判定して不明確な場合(S607のNO)には、再入力操作を促すこと等が行われる。明確性を有する場合(S607のYES)には、その構成、動作原理D61に関する情報は、コンピュータに入力され、メモリ等の格納部に記録される(S608)。なお、構成、動作原理に関する情報は、ブロック構造図程度(マクロなレベル)でもよく、対象が狭い場合には、プログラム言語で設計者が経験に基づいて作成してもよい。
【0064】
続いて、次の対策案D52がある場合(S609のYES)には、その対策案D52と情報検索の支援表示を行うと共に、取得済みの構成、動作原理D61に関する情報を設計者に提示して入力支援を行い(S603)、S604〜S607によって、その対策案D52を実現するための構成、動作原理D62を取得し、既存の構成、動作原理D61に統合する(S608)。このようにして、優先順位が最下位である第n番目の対策案D5nまで、同様の作業を行い、構成、動作原理を統合していく。なお、統合が困難な場合には、その対策案に対して別の構成、動作原理を抽出するか、最初の対策案に戻って別の構成、動作原理を抽出するか、あるいは任意の別のステップに戻ってやり直す等の作業が行われる。
【0065】
そして、抽出、統合された構成、動作原理が、全ての「採用すべき対策案」を反映した構成、動作原理になった時点(S610のYES)で、顧客の要求等に応じて動作シナリオを導出し、その動作シナリオを、現時点の構成、動作原理上で、各構成要素の責任、責任範囲から逸脱せず、動作原理から逸脱せずに、動作させることができるか否かを検証する(S611)。この結果、問題があると判断された場合(S611のYES)に、これを回避する非機能要求項目を抽出できる場合にはそれを加え、任意のステップからやり直す。そして、最終的に問題がないことが検証できた場合(S611のNO)には、現時点の構成、動作原理をソフトウェアアーキテクチャD6として記録する(S612)。
【0066】
[1−7.構成要素群に対する繰り返しステップの補足説明]
以下には、ステップS160で記録されたソフトウェアアーキテクチャの構成要素群を対象とした上記ステップS110〜S160の繰り返しステップについて補足説明する。まず、ステップS110の機能要求項目D11は、ステップS160で構築したソフトウェアアーキテクチャD6上で、対象の構成要素群と関連する構成要素群に対して提供する機能要求項目となる。これらは、対象の構成要素群の役割、責任範囲や、ステップS120で抽出した対策案D24から、抽出する。
【0067】
また、この繰り返し作業において、ステップS120については、以前の繰り返し作業中の同じステップS120で抽出した対策案D24や、ステップS130において「現時点で重要でない対策案」としてグルーピングされた対策案D32を参考にする。そしてまた、ステップS160については、以前の繰り返し作業の同じステップS160で構築したソフトウェアアーキテクチャD6に統合していく。
【0068】
[2.ソフトウェア設計の具体例]
以下には、上記のような本実施形態によるソフトウェア設計支援方法を、会議室予約システムのソフトウェアアーキテクチャ設計に適用した具体例について説明する。
【0069】
[2−1.機能要求項目と非機能要求項目の入力ステップ]
ここでは、顧客からの要求として、次のような要求1〜要求6が与えられたものとする。
【0070】
【表1】
(要求1):オンラインで会議室の予約を行うためのシステム。利用者は、端末にログインして会議室の予約、キャンセル、閲覧を行える。
(要求2):予約する場合、利用者は、日付、時間帯、会議室を指定する。端末には、予約できたか否かを表示する。
(要求3):キャンセルする場合、利用者は、その利用者の予約を指定する。キャンセルは、予約を行った利用者でなければ、キャンセルできないものとする。端末には、キャンセルできたか否かを表示する。
(要求4):閲覧を行う場合、利用者は、会議室を指定する。端末には、指定された会議室について、操作を行った日から1ヶ月後までの予約状況を表示する。
(要求5):端末の画面構成、操作仕様は任意であるが、直感的でわかりやすいユーザインタフェースとする。
(要求6):複数の利用者が同時に、同じ時間、同じ会議室の予約を行おうとしても、先着順で予約可、予約不可が決まる。
【0071】
これらの要求1〜要求6に基づいて、機能的な要求と非機能的な要求を抽出し、機能的な要求について、設計者がユースケース分析を行うことにより、機能要求項目および非機能要求項目として、以下の各項目を抽出し、入力操作する。その結果、これらの情報は、コンピュータに入力され、メモリ等にデータとして記録される(S110)。
【0072】
【表2】
(機能要求項目1):予約を閲覧する
(機能要求項目2):予約する
(機能要求項目3):予約をキャンセルする
(非機能要求項目1):端末からの操作性
(非機能要求項目2):同時利用の配慮
(非機能要求項目3):拡張性を重視
【0073】
[2−2.リスク項目とそれに対する対策案等の抽出ステップ]
ここでは、一例として、機能要求項目1「予約を閲覧する」と、アーキテクチャ特性項目「仕様の安定性」の組み合わせで、リスク項目とそれに対する対策案等を抽出する場合について説明する。
【0074】
まず、機能要求項目1「予約を閲覧する」とアーキテクチャ特性項目「仕様の安定性」に定義されている質問であるところの、「機能拡張する可能性があるか」、「動作環境が変更される可能性はあるか」、といったリスクを伴う個々の状況との組み合わせが設計者に対して画面表示される(S202)。この場合、類似リスク検索の支援表示も行われる。これにより、設計者は、必要に応じて類似リスクの検索要求を行い(S203)、過去の作業データから類似したリスクを検索、表示させる(S204)こともできるため、項目の組み合わせやその類似リスク等の画面表示を同時に参照しながら、リスクの検討を容易に行うことができる。
【0075】
この場合、会議室によっては備えている備品もあり、それらの情報も表示できるようにするかもしれない。あるいは、利用者の指示に応じて、表示する項目数を加減することも考えられる。このような検討に基づき、設計者は、例えば、次のリスク項目を抽出し、その入力操作を行う(S205)。その結果、これらの情報は、コンピュータに入力され、メモリ等にデータとして記録される(S206)。
【表3】
(リスク項目1):備品等、会議室に応じて表示する情報が異なる
(リスク項目2):表示する情報が、利用者の希望に応じて異なる
【0076】
続いて、記録されたリスク項目1、リスク項目2が、前述した非機能要求項目1〜非機能要求項目3と共に設計者に対して画面表示され、リスク項目に対する可能性、許容度、対策案の入力操作の支援が行われる(S207)。そのため、設計者は、リスク項目と非機能要求項目を同時に参照しながら、可能性、許容度、対策案の検討を容易に行うことができ、非機能要求項目を反映させた対策案を効率的に抽出することができる。
【0077】
例えば、リスク項目1「備品など、会議室に応じて表示する情報が異なる」について可能性を検討すると、会議室に備えられている備品が異なることが一般的と考えられるので、将来的に仕様変更が発生する可能性が高い。また、許容度を検討すると、非機能要求項目1「端末からの操作性」を考慮し、同様の仕様変更が発生したときに、なるべく柔軟に対応できるように作り込んでおくことが望ましいと考えられる。そしてまた、対策案としては、会議室という概念クラスを設け、会議室に関する情報や操作を隠蔽し、他から透過なアクセスができるようにする構成が有効であると考えられる。
【0078】
設計者は、以上のようなリスク項目の抽出、およびそれに対する対策案等の検討を、機能要求項目1〜機能要求項目3の各々と、各アーキテクチャ特性項目との全ての組み合わせについて行うことにより、各リスク項目に対する可能性、許容度、対策案を抽出し、その入力操作を行う(S208)。その結果、これらの情報は、コンピュータに入力され、メモリ等にデータとして記録される(S209)。この例において、対策案としては、例えば次のような対策案1〜対策案15が記録される。
【0079】
【表4】
(対策案1):「会議室」という概念クラスを設け、透過なアクセスができる構成にする
(対策案2):「処理依頼」という共通の処理を行える仕組みを設ける
(対策案3):利用者の操作に関する部分を、他の部分と完全に分離した構成にする
(対策案4):予約情報をDBMSで保持してもよいように、データの記録処理を抽象化する構成にする
(対策案5):OSに依存する部分を分離する
(対策案6):予約情報等のデータをexport可能な仕組みを設ける
(対策案7):予約情報を多重化して保持できる構成にする
(対策案8):検索アルゴリズム等を交換可能な構成にする
(対策案9):従業員DB等の他のシステムとの連携を考慮する
(対策案10):複数の利用者が同時に予約しても整合性が取れる仕組みを設ける
(対策案11):データ保持部分をplug−inのように変更可能な構成にする
(対策案12):会議室や利用者情報を、importできるような仕組みを設ける
(対策案13):予約や取り消しの仕方を、利用者が定義できるような仕組みを設ける
(対策案14):データ検索部分やデータ保持部分を交換可能な構成を設ける
(対策案15):様々なユーザインタフェースを定義できるようにし、予約処理を透過に扱える構成にする
【0080】
[2−3.対策案の分類整理、重要な対策案の抽出ステップ]
ここでは、上記のように記録された対策案1〜対策案15を、KJ法等の手法を用いて分類整理する。すなわち、まず、対策案1〜対策案15のリストが設計者に対して画面表示される(S301)ため、設計者は、現在の作業フェーズで重要な対策案と重要でない対策案を容易に選択することができる(S307)。また、重要な対策案のうち、現在のフェーズで重要な対策案と重要でな相関の高い複数の対策案がある場合には、それらを容易に選択することができる。設計者により統合のそれらの対策案が指定される(S302)と、指定された対策案は、統合対象グループとして並べて画面表示される(S303)ため、設計者は、複数の対策案を同時に参照しながらそれらを包括するような上位の対策案を容易に作成することができる。
【0081】
設計者によって上位の対策案が作成され、それを元の対策案の代わりとすることが確認される(S304)と、元の対策案は削除され、上位の対策案に置き換えられる(S305)。このような統合作業によって、対策案の数を少なくすることにより、後続の作業を容易にすることができる。なお、この例において対象としている作業範囲は、システム全体に関わる部分であるので、粒度の細かい対策案は現在のフェーズでは考慮すべきでない、すなわち重要でない対策案としてグルーピングし、それ以外の対策案を、重要な対策案としてグルーピングすることになる。例えば、次のような「重要な対策案1」〜「重要な対策案6」が記録される(S308)。
【0082】
【表5】
(重要な対策案1):ユーザインタフェースを予約情報処理部分と分離する構成にする
(重要な対策案2):各プラットフォームで、ユーザインタフェースだけを書き直せばよいようにする
(重要な対策案3):予約や取り消し、閲覧の方法が変更されてもよいように、「処理依頼」という共通の処理の枠組みを作る
(重要な対策案4):複数の利用者が同時に処理を依頼しても整合性が取れる仕組みを作る
(重要な対策案5):予約情報を多重化して保持しておく
(重要な対策案6):システム内部で、データに対する処理を抽象化する構成にする
【0083】
[2−4.重要な対策案の関係抽出ステップ]
ここでは、上記のように記録された「重要な対策案1」〜「重要な対策案6」の間の関係を抽出する。すなわち、これらの重要な対策案のリストと関係を表現するシンボルを含む選択画面を設計者に対して画面表示する(S401)ことにより、設計者は、相反、類似、依存、独立、等の観点で対策案間の関係を容易に検討して指定することができる(S402、S404、S406)。設計者によって指定された対策案とその関係は、図7に示すように、画面上でグラフィック画像として表現させる(S403、S405、S407)ことにより、設計者は自らが指定した対策案間の関係を容易に把握、確認することができる。グラフィック画像で表現された関係は、設計者によってその内容が確認された後、「重要な対策案の関係」として記録される(S409)。
【0084】
なお、図7においては、一例として、重要な対策案を表示するボックスと関係を示すシンボルとしての接続線からなるグラフィック画像表現を示している。すなわち、ボックス間を接続する双方向矢印付きの直線は、各ボックスによって表現される対策案間に相反の関係があることを示しており、ボックス間を接続する矢印のない直線は、各ボックスによって表現される対策案間に類似の関係があることを示している。また、ボックス間を接続する線がない場合には、各ボックスによって表現される対策案が互いに独立の関係であることを示している。なお、ここでは、依存の関係は存在していないため、図示していないが、例えば、依存先に向けた単方向矢印付きの直線で表現すること等が可能である。
【0085】
[2−5.採用すべき対策案の決定ステップ]
ここでは、記録された「重要な対策案の関係」に基づいて、「重要な対策案1」〜「重要な対策案6」の中から、採用すべき対策案を決定する。すなわち、図7に示すようなグラフィック画像で所定の関係にある対策案を画面表示する(S501、S504、S507、S510)ことにより、設計者は、対象となる関係を有する対策案を容易に対比することができるため、採用する対策案または採用しない対策案を容易に指定する(S502、S505、S508、S511)ことができる。
【0086】
図7の例においては、相反の関係を有する対策案グループとして、まず、「複数の利用者が同時に処理を依頼しても整合性が取れる仕組みを作る」と、「予約情報を多重化して保持しておく」とを示す各ボックスとその間を接続する双方向矢印付きの直線を表示する(S501)ことにより、設計者は、両方のボックスを比較して、採用しない対策案を容易に指定することができる(S502)。この場合、例えば、コストと重要度の観点から、「予約情報を多重化して保持しておく」を採用しない対策案として指定されたものとする。その結果、この対策案は重要な対策案のリストから削除される(S503)。
【0087】
次に、類似の関係を有する対策案グループとして、図7に示す他の2組のボックスとその間を接続する直線をそれぞれ表示する(S504)ことにより、設計者は、線で接続された各グループのボックスを比較して、各グループで最も重要な対策案を容易に指定することができる(S505)。この場合、例えば、「システム内部で、データに対する処理を抽象化する構成にする」と「予約や取り消し、閲覧の方法が変更されてもよいように、「処理依頼」という共通の処理の枠組みを作る」のグループについては、後者が指定され、また、「各プラットフォームで、ユーザインタフェースだけを書き直せばよいようにする」と「ユーザインタフェースを予約情報処理部分と分離する構成にする」についてもまた、後者が指定されたものとする。その結果、指定されなかった対策案は重要な対策案のリストから削除される(S506)。
【0088】
この例では、以上の作業だけで対策案の取捨選択が終了する(S513)ため、削除されずに残った3つの対策案が、次のように、「採用すべき対策案1」〜「採用すべき対策案3」として記録される(S514)。
【表6】
(採用すべき対策案1):複数の利用者が同時に処理を依頼しても整合性が取れる仕組みを作る
(採用すべき対策案2):予約や取り消し、閲覧の方法が変更されてもよいように、「処理依頼」という共通の処理の枠組みを作る
(採用すべき対策案3):ユーザインタフェースを予約情報処理部分と分離する構成にする
【0089】
[2−6.対策案を実現する構成と動作原理の抽出、統合ステップ]
ここでは、記録された「採用すべき対策案」に基づいて、その対策案の全てを実現する構成と動作原理を抽出し、統合することにより、ソフトウェアアーキテクチャを構築する。すなわち、まず、記録された「採用すべき対策案1」〜「採用すべき対策案3」のリストを画面表示する(S601)ことにより、設計者は、対象となる対策案を容易に対比することができるため、優先順位を容易に指定する(S602)ことができる。この例では、例えば、次のような優先順位が付けられる。
【0090】
【表7】
(採用すべき第1の対策案):予約や取り消し、閲覧の方法が変更されてもよいように、「処理依頼」という共通の処理の枠組みを作る
(採用すべき第2の対策案):ユーザインタフェースを予約情報処理部分と分離する構成にする
(採用すべき第3の対策案):複数の利用者が同時に処理を依頼しても整合性が取れる仕組みを作る
【0091】
このように優先順位が指定されると、設計者に対して、その優先順位に応じて対策案が順次表示されると共に、既存のパターンや過去の作業データ等に対する情報検索の支援表示も行われる(S603)。これにより、設計者は、必要に応じて既存のパターンや過去の作業データの検索要求を行い(S604)、それらの情報を検索、表示させる(S605)こともできるため、各対策案と既存のパターンや過去の作業データ等を同時に参照しながら、その対策案を実現する構成や動作原理を容易に検討することができる。この例では、各対策案について、例えば、次のような検討が行われる。
【0092】
「採用すべき第1の対策案」については、デザインパターンのVisitorパターン(E.ガンマ 他著、本位田真一 他監訳、オブジェクト指向における再利用のためのデザインパターン改訂版、1999.11,ISBN4-7973-1112-6)を適用することが有効と思われる。依頼処理をVisitorとし、これがあらゆる依頼を表現し、依頼に対する処理を隠蔽することで、利用者からのあらゆる依頼を、共通に扱えるようにできる。また、これをオブジェクトとすることで、ネットワークを介した予約処理も、透過に扱うことができる。
【0093】
「採用すべき第2の対策案」については、ユーザインタフェースを司る部分を設け、これが上記依頼処理に処理を委譲するという構成にすることで、実現することができる。
「採用すべき第3の対策案」については、複数の依頼処理が発生しても、実際に処理を開始できる権限を与える部分が、システム全体で1つだけ存在する構成にすることで対応できると考えられる。全ての予約情報という1つのブロックを設け、これに依頼処理が処理を開始する権限を与えられるようにすれば、十分である。
【0094】
設計者が、このような各対策案についての検討結果を統合した構成、動作原理の入力操作を行うことにより、これらの構成、動作原理は、ソフトウェアアーキテクチャを構築する情報として、メモリ等に記録される(S603〜S610)。この例では、構築されたソフトウェアアーキテクチャをUMLで記述すると、図8に示すようになる。また、ソフトウェアアーキテクチャの構成要素である各クラスの役割の定義は、次のようになる。
【0095】
【表8】
(画面):利用者からの操作を受け付け、その結果を利用者に提示する役割がある。利用者の操作を反映した処理依頼オブジェクトを生成し、処理を処理依頼オブジェクトに委譲し、依頼結果を、画面を通して利用者に提示する。
(処理依頼):利用者の操作に応じた要求を保持し、その要求に応じて、予約情報を操作する。
(予約情報):会議室や利用者、予約等の情報を保持する。処理依頼オブジェクトだけが操作でき、また、処理依頼オブジェクトへ操作の権利を与えることができる。
【0096】
このソフトウェアアーキテクチャで、前述した機能要求項目や非機能要求項目を実現できることを確認できるため、これを構築したソフトウェアアーキテクチャとして記録する(S611、S612)。なお、この例では、3つの比較的シンプルな対策案だけを示しているため、構成、動作原理の統合も一度に可能であるが、実際には、多数の対策案が存在する場合がほとんどであり、各対策案について、構成や動作原理の抽出や統合が順次行われる。
【0097】
[2−7.本手法で構築されたソフトウェアアーキテクチャ]
上記のステップで記録されたソフトウェアアーキテクチャは、3つの構成要素から構成されており、それぞれの構成要素について詳細化可能である(S170)ため、各構成要素を対象に、ステップS110〜S160を繰り返す。2回目の繰り返しステップにおいて、機能要求項目は、上記のステップS160で定義した役割を元に、改めて詳細を検討することになる。この例では、各構成要素について各ステップを繰り返し、ソフトウェアアーキテクチャを統合することにより、最終的に、図9に示すソフトウェアアーキテクチャが得られる。このソフトウェアアーキテクチャの構成要素である各クラスの役割の定義は、次のようになる。
【0098】
【表9】
(会議室):会議室固有の情報を保持する。会議室固有の情報とは、1つの会議室の、名前、場所、収容人数、設備等である。
(利用者):利用者固有の情報を保持する。利用者固有の情報とは、名前、所属、役職等である。
(予約):予約情報を保持する。予約情報とは、予約した会議室(会議室オブジェクト)と、予約者(利用者オブジェクト)、予約日時である。
(日時):日時情報を保持する。日時情報とは、特定の日の特定の時間帯、毎週水曜日の特定の時間帯、等、日時に関するあらゆる表現を可能とする。必ず、新たな予約が発生すると共に、日時オブジェクトが作られる。このオブジェクトによって、予約の、日時に関する情報を表現する。
(依頼窓口):依頼オブジェクトを受け付け、予約、会議室、利用者、の各オブジェクトに対する操作権を決定する。依頼窓口オブジェクトは、1システムに1つだけ存在する。分散環境のための、代理窓口という役割も持つ。依頼窓口オブジェクトが、予約オブジェクトを生成したり、操作したりすることはない。
(依頼):利用者からの依頼内容と、それに応じた処理を表現するための抽象クラスである。依頼内容とは、会議室の予約や取り消しに関する情報である。処理とは、予約、会議室、利用者、の各オブジェクトの生成、変更、削除、検索等である。この派生クラスに、具体的な依頼とその処理手順を示したクラス群が存在する。
(依頼結果):依頼によって行われた処理の結果を表現するための抽象クラスである。結果とは、依頼の成功、失敗や、その詳細等である。依頼結果オブジェクトは、それが利用者にどのように提示されるかは知らない。この派生クラスに、具体的な依頼結果を表現したクラス群が存在する。
(画面):利用者からの操作を受け付け、その結果を利用者に提示する。利用者の操作に応じて、適切な依頼オブジェクトを生成し、これを依頼窓口オブジェクトに渡す。依頼結果オブジェクトを受け取り、その内容を利用者に画面を通して提示する。
【0099】
この本手法により構築されたソフトウェアアーキテクチャ上で、典型的な処理の流れは、次のようになる。
(1)画面オブジェクトは、利用者の要求を受け付け、その内容に見合った依頼オブジェクトを生成し、これを依頼窓口オブジェクトに渡す。
(2)依頼窓口オブジェクトは、受け取った依頼オブジェクトに、予約、会議室、利用者、の各オブジェクトに対するアクセス権を与えると共に、これらのオブジェクトへの操作を委譲する。
(3)依頼オブジェクトは、自身が保持する依頼内容にしたがって、予約、会議室、利用者、の各オブジェクトを操作し、その結果として、適切な依頼結果オブジェクトを生成する。
(4)依頼結果オブジェクトは、依頼窓口オブジェクトを経由して、画面オブジェクトに渡し、画面オブジェクトは、依頼結果オブジェクトが保持する情報にしたがって、利用者に結果を提示する。
【0100】
[2−8.従来手法で構築されたソフトウェアアーキテクチャ]
ここでは、本手法と比較するために、顧客からの上記の要求1〜要求6に対して、従来手法でソフトウェアアーキテクチャを構築した場合について、説明する。
まず、予約については、日時、時間帯、会議室を指定して行う仕様となっており、また、閲覧は、会議室を指定して行う仕様となっている。したがって、「特定の会議室」に、「予約した利用者」と、「日付と時間帯」に関する情報を付加して記録すれば十分である。
【0101】
キャンセルは、利用者の予約を指定する仕様なので、上記の情報が特定できれば十分である。
また、実際の依頼処理は、予約、キャンセル、閲覧で、それぞれが具体的に行う処理を仕様として定めることができる。
したがって、従来手法によれば、図10に示すようなソフトウェアアーキテクチャで、顧客要求を満足することができる。この従来手法で構築されたソフトウェアアーキテクチャの各クラスの定義は、次のようになる。
【0102】
【表10】
(会議室):会議室固有の情報を保持する。会議室固有の情報とは、1つの会議室の、名前、場所、収容人数、設備等である。この会議室に対する予約リストを保持する。
(利用者):利用者固有の情報を保持する。利用者固有の情報とは、名前、所属、役職等である。
(予約):予約情報を保持する。予約情報とは、予約した会議室(会議室オブジェクト)と、予約者(利用者オブジェクト)、予約日時である。
(依頼窓口):依頼内容を受け付け、予約、会議室、利用者、の各オブジェクトに対する操作を行う。操作とは、予約、会議室、利用者、の各オブジェクトの生成、変更、削除、検索等である。依頼窓口オブジェクトは、1システムに1つだけ存在する。分散環境のための、代理窓口という役割も持つ。
(画面):利用者からの操作を受け付け、その結果を利用者に提示する。利用者の操作に応じて、その内容を依頼窓口オブジェクトに渡す。依頼結果の内容を受け取り、その内容を画面を通して利用者に提示する。
【0103】
この従来手法により構築されたソフトウェアアーキテクチャ上で、典型的な処理の流れは、次のようになる。
(1)画面オブジェクトは、利用者の操作を受け付け、その内容を依頼窓口オブジェクトに渡す。
(2)依頼窓口オブジェクトは、予約、会議室、利用者、の各オブジェクトに対するアクセス権を調整し、受け取った内容にしたがって、これらのオブジェクトを操作する。
(3)依頼窓口オブジェクトは、依頼結果の内容を画面オブジェクトに渡し、画面オブジェクトは、受け取った依頼結果の内容にしたがって、利用者に結果を提示する。
【0104】
[2−9.本手法と従来手法で構築されたソフトウェアアーキテクチャの比較]以下には、本手法によって構築された図9のソフトウェアアーキテクチャと、従来手法によって構築された図10のソフトウェアアーキテクチャにおいて、仕様変更が発生した場合の対応について具体的に比較する。
ここでは、一例として、「この先3ヶ月間、毎週水曜日の13時〜15時、場所はどこでもよいから予約する」等の、複雑な処理を行えるようにする仕様変更が発生した場合を想定する。
【0105】
まず、本手法で構築したソフトウェアアーキテクチャの場合、次のように容易に対応することができる。
(1)依頼の仕方が追加、変更されるのであるから、それを表現するクラス、つまり、依頼、依頼結果の抽象クラスの派生クラスの追加、変更を行えばよいことが、容易に導き出される。
(2)実際の追加、変更も、日時オブジェクトを予約ごとに作っているので、必要に応じて日時クラスの変更、あるいは派生クラスの追加、を行うことで、依頼クラスの追加、変更にも容易に対応できる。
(3)各クラスの変更は、他のクラスに影響を与えない。
(4)画面クラスの変更は、依頼処理と分離してあるので、他との影響を考慮することなく、独立して修正することができる。
【0106】
これに対して、従来手法で構築したソフトウェアアーキテクチャの場合、次のように、仕様変更への対応が困難である。
(1)依頼に関する操作を、依頼窓口クラスが単独で全て担っているので、依頼窓口クラスの内部を大幅に変更する必要がある。
(2)仕様変更の大きさにより、依頼窓口クラスの変更が大がかりになったり、依頼窓口のインタフェースにも影響を与えることが考えられる。したがって、画面クラスにも大きな変更を行う必要性が生じる。
(3)日時を、予約クラスの内部属性としているので、場合によっては予約クラスにも影響が及ぶことになる。
【0107】
[3.実施形態の効果]
以上のように、本実施形態の手法によって構築したソフトウェアアーキテクチャは、仕様変更に対応しやすいだけでなく、潜在的な顧客の要求も引き出した上でソフトウェアアーキテクチャを構築することができるので、ソフトウェア開発のトータルコストを下げ、顧客満足度の高いソフトウェアを開発できるようにすることができる。また、本手法における特徴的な各ステップの効果は次の通りである。
【0108】
まず、リスク項目とそれに対する対策案等の抽出ステップの効果は次の通りである。すなわち、各機能要求項目についてアーキテクチャ特性項目を個別に対比させることにより、その対比結果に基づいて機能要求項目の実現に大きく影響するかあるいは実現を困難にするリスク項目を抽出することができる。特に、過去の作業データ等の検索、提示も行うことにより、過去のデータを利用してリスク項目をより容易に抽出することができる。そして、抽出された各リスク項目について非機能要求項目を個別に対比させることにより、その対比結果に基づいて機能要求だけでなく非機能要求をも反映させた対策案を効率的に抽出することができる。したがって、このステップによって得られた対策案を採用することにより、多様な非機能要求を設計の根拠として設計に反映させることができる。
【0109】
次に、対策案の分類整理、重要な対策案の抽出ステップにおいては、機能要求および非機能要求を反映させた複数の対策案を分類整理して、相関の高い複数の対策案を上位の対策案に統合する等の作業を行い、機能要求項目群や現在の作業範囲、作業フェーズ等の詳細度、具体度等によって決定される現時点での重要性の高い対策案を抽出している。したがって、このステップによれば、後続するステップにおいて対象とする対策案を、より少ない数の重要な対策案のみに限定することができる。
【0110】
また、重要な対策案の関係抽出ステップによれば、重要な対策案の相反、類似、依存、独立の各関係を順次抽出することができるため、対策案の採用に影響する全ての関係を効率的に抽出することができる。特に、対策案とその関係をグラフィック画像として表示することにより、関係の把握、確認を容易に行うことができ、作業効率をさらに高めることができる。
【0111】
そしてまた、採用すべき対策案の決定ステップにおいては、所定の関係を有する対策案のグループごとに対策案の取捨選択を順次行うことにより、対策案の数を効率的に絞り込むことができる。この場合にも、関係抽出ステップと同様に、対策案とその関係をグラフィック画像として表示することにより、対策案の関係の把握やそれに基づく対策案の取捨選択を容易に行うことができる。このステップにおいては、最初に、相反の関係をなくすような取捨選択を行うことにより、相反の関係にある一方の対策案を除去すると共に、その対策案と類似の関係にある対策案や依存する対策案を機械的に削除することができる上、さらに、残った対策案の中から、類似や依存の関係に応じて、適切な取捨選択を行いながら、対策案の数を大幅に少なくすることができる。したがって、採用すべき対策案の決定効率を高めると共に、後続作業の効率を高めることができる。
【0112】
また、対策案を実現する構成と動作原理の抽出、統合ステップにおいては、機能要求および非機能要求を反映させた、絞り込まれた数の「採用すべき対策案」を、その優先順に提示することにより、効率的に構成と動作原理を抽出、統合して、効率的にソフトウェアアーキテクチャを構築することができる。特に、既存のパターンや過去の作業データ等の検索、提示も行うことにより、それらの情報を利用して、構成と動作原理の抽出をより容易に行うことができる。
【0113】
さらに、構築したソフトウェアアーキテクチャの構成要素が、実装環境に依存せずにその詳細を検討できるような場合には、各構成要素を対象に、一連のステップを繰り返すことにより、詳細度をより高めたソフトウェアアーキテクチャを効率的に構築することができる。
【0114】
[4.他の実施形態]
なお、本発明は、前述した実施形態に限定されるものではなく、本発明の範囲内で他にも多種多様な形態が実施可能である。
【0115】
[4−1.既存のデータの自動提示、候補としての利用]
例えば、前記実施形態において、リスク項目を抽出する際には、検索要求に応じて過去の作業データから類似したリスクを検索し、提示するようにしたが、検索要求なしに自動的に提示したり、あるいは、提示した既存のリスク項目を候補としてリスク項目を選択させたりすること等も可能である。この場合には、設計者は、既存のリスク項目にないリスク項目のみを作成すればよいため、リスク項目の抽出効率を大幅に向上することができる。
【0116】
また、対策案を実現する構成と動作原理の抽出の際における既存のパターンや過去の作業データについても同様にそれらの情報を自動提示したり、候補として選択させたりすることにより、構成と動作原理の抽出効率を大幅に向上することができる。さらに、このような、既存のデータの自動提示やそれを候補として選択させる等の支援表示を行う手法は、リスク項目に対する対策案を抽出する際にも同様に適用可能であり、同様の効果が得られるものである。
【0117】
そしてまた、機能要求項目や非機能要求項目を入力する際にも、過去のデータに基づいて予め用意した機能要求項目の候補や非機能要求項目の候補を提示して、設計者に選択させることも可能である。この場合にも、候補が存在しない要求項目を作成するだけで、顧客等の要求に応じた全ての要求項目を効率的に入力することができる。
【0118】
[4−2.予め用意した基準値による数の削減]
一方、前記実施形態においては、設計者が作成した全てのリスク項目をそのまま記録して、各リスク項目に対する対策案等を抽出するようにしたが、過去の作業データ等を利用して、リスク項目による機能要求項目の実現に対する影響度に関する基準値を予め設定し、その基準値以上のリスク項目を抽出すること等も可能である。
【0119】
例えば、候補として得られたリスク項目の影響度に応じて、影響度が極めて高いものを「影響度A」、それ以外のものを「影響度B」として、影響度Aのリスク項目のみを機械的に抽出し、影響度Bのリスク項目を除去することにより、記録するリスク項目の数を自動的に少なくできる。その結果、リスク項目の抽出効率を高めると共に、後続作業の効率を高めることができる。また、変形例として、「影響度B」のリスク項目については、自動的に削除せずに、そのリストを一旦設計者に提示して残すリスク項目を選択させるようにしてもよい。
【0120】
同様に、対策案についても、過去の作業データ等を利用して、非機能要求項目の満足度に関する基準値を予め設定し、その基準値以上の対策案を抽出すること等が可能である。この場合には、候補として得られた対策案の中から、非機能要求項目の満足度が基準値以上の対策案のみを機械的に抽出し、満足度の低い対策案を除去することにより、抽出する対策案の数を自動的に少なくできる。その結果、対策案の抽出効率を高めると共に、後続作業の効率を高めることができる。また、変形例として、満足度の低い対策案については、自動的に削除せずに、そのリストを一旦設計者に提示して残す対策案を選択させるようにしてもよい。
【0121】
また、抽出された対策案の中から、現時点で重要な対策案を決定する際にも、同様に、過去の作業データ等を利用して、対策案の現時点での重要度に関する基準値を作業フェーズ等に応じて予め設定し、その基準値以上の対策案を重要な対策案として抽出すること等が可能である。この場合には、機能要求および非機能要求に基づいて得られた対策案の中から、現時点での重要度が基準値以上の対策案のみを機械的に抽出し、重要度が比較的低い対策案を除去することにより、抽出する重要な対策案の数を自動的に少なくできる。
【0122】
この場合、特に、相反や類似等の所定の関係を有する対策案の各グループごとにグループ内の各対策案の現時点での重要度を比較し、重要度の高低に応じて取捨選択を行うことにより、設計要件の数を自動的にさらに少なくできる。その結果、重要な対策案の抽出効率を高めると共に、後続作業の効率を高めることができる。また、変形例として、重要度が比較的対策案については、自動的に削除せずに、そのリストを一旦設計者に提示し、重要な対策案として残す対策案を選択させるようにしてもよい。
【0123】
[4−3.自動化の推進]
なお、上述したような各種の基準値による評価対象となる「リスク項目による機能要求項目の実現に対する影響度」、「対策案による非機能要求項目の満足度」、「現時点での対策案の重要度」、等は、リスク項目や対策案の作成時に設計者によって段階評価値等を与えることが考えられる。あるいはまた、過去の作業データ等に基づいて、それらの影響度、満足度、影響度等を表現する値を算出するためのアルゴリズムを作成して、自動的に求めること等も考えられる。
【0124】
同様に、前記実施形態において、設計者による検討対象として記載した各部分は、関連する各種のデータと、各種の統計手法や解析手法等とを有機的に組み合わせることにより、コンピュータによる対象の自動判定や自動抽出を行うことが可能である。そのような自動化を進めることにより、機能要求項目と非機能要求項目の自動的な分類、入力、リスク項目等の事象とそれに対する対策案等の設計要件の自動抽出、重要な対策案の自動選択とその関係の自動抽出、採用すべき対策案の自動決定、採用すべき対策案を満足するソフトウェアアーキテクチャの自動構築、等が可能となる。したがって、本発明の手法は、最終的には、顧客等からの要求を入力しただけで、機能要求および非機能要求を反映させた設計要件を自動的に抽出し、そのような設計要件を満足するソフトウェアアーキテクチャを自動的に構築できるようにするものである。
【0125】
【発明の効果】
以上説明したように、本発明によれば、各機能要求項目についてソフトウェア設計上で考慮すべき特性を個別に対比させることで機能要求項目の実現に影響する事象を抽出し、各事象について非機能要求項目を個別に対比させることで、機能要求だけでなく非機能要求をも反映させた設計要件を効率的に抽出できるようにしたことにより、多様な非機能要求を設計の根拠として設計に反映可能なソフトウェア設計要件抽出支援方法を提供することができる。
【0126】
また、本発明によれば、機能要求および非機能要求を反映させた設計要件を分類整理して重要な設計要件のみに限定し、採用すべき設計要件を効率的に決定可能なソフトウェア設計要件決定支援方法、および、機能要求および非機能要求を反映させた設計要件に基づいて、多様な外的変動に対応可能なソフトウェアアーキテクチャを効率的に設計可能なソフトウェア設計支援方法、を提供することができる。
【図面の簡単な説明】
【図1】本発明を適用したソフトウェア設計支援方法の概要をデータの流れと共に示すフローチャート。
【図2】図1に示す方法において、リスク項目とそれに対する対策案等の抽出ステップの詳細をデータの流れと共に示すフローチャート。
【図3】図1に示す方法において、対策案の分類整理、重要な対策案の抽出ステップの詳細をデータの流れと共に示すフローチャート。
【図4】図1に示す方法において、重要な対策案の関係抽出ステップの詳細をデータの流れと共に示すフローチャート。
【図5】図1に示す方法において、採用すべき対策案の決定ステップの詳細をデータの流れと共に示すフローチャート。
【図6】図1に示す方法において、対策案を実現する構成と動作原理の抽出、統合ステップの詳細をデータの流れと共に示すフローチャート。
【図7】図1に示す方法によって抽出された重要な対策案の関係の一例を示すデータ表示図。
【図8】図1に示す方法によって構築されたソフトウェアアーキテクチャの一例を示す構造図。
【図9】図8に示すソフトウェアアーキテクチャの詳細度をさらに高めたソフトウェアアーキテクチャの一例を示す構造図。
【図10】従来手法によって構築されたソフトウェアアーキテクチャの一例を示す構造図。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for reflecting not only functional requirements but also non-functional requirements when designing software architecture.
[0002]
[Prior art]
When designing software architecture, traditionally, the focus is on functional requirements, and non-functional requirements such as high extensibility often depend on the skill of the designer to consider how much they are considered. It was not necessarily reflected in the design. If non-functional requirements are not reflected at the time of software architecture design, it is often difficult to cope with external changes such as specification changes and platform changes.
[0003]
Also, object-oriented analysis / design techniques such as the OMT method (J. Rambo et al., Translated by Eiichi Hanyuda, Object Oriented Methodology OMT Modeling and Design, 1992.7 ISBN4-8101-8527-3) The work items at the macro level, such as extracting relations, are clearly shown. However, the conventional object-oriented analysis / design technique does not clearly indicate the work items to make the configuration easy to cope with when external fluctuations occur in the future. The cost of developing software that satisfies the requirements will be high.
[0004]
[Problems to be solved by the invention]
In today's highly complex systems, it's not just a function that customers need. In addition, customer requirements themselves are ambiguous, and as development progresses, the required specifications gradually become clear. In order to be able to cope with such external changes such as changes in requirements, it is possible to clearly track where the generated factors affect the software and how it should be corrected. It is necessary to do so.
[0005]
To that end, the current design must be able to clearly explain why it is. This is because in order to be strong against specification changes, it is necessary to assume the specification change in advance and design it to reflect that, and this is the reason why it is such a design. . Therefore, when designing software, it is necessary to make it in advance so that it can cope with various variations, and this is the reason why the grounds of design must be emphasized.
[0006]
The present invention has been proposed in order to solve the above-described problems of the prior art, and its purpose is to determine which part is affected when external fluctuation occurs and how to correct it. To provide a better way to reduce the total cost of software development and to develop software with high customer satisfaction.
[0007]
In other words, the first object of the present invention is to enable efficient extraction of design requirements reflecting not only functional requirements but also non-functional requirements as design requirements to be built in regarding the configuration and structure of the software to be designed. Thus, it is to provide a software design requirement extraction support method that can reflect various non-functional requirements in the design as the basis of the design.
[0008]
The second object of the present invention is software that can efficiently determine the design requirements to be adopted by classifying and arranging the design requirements reflecting functional requirements and non-functional requirements and limiting them to only important design requirements. It is to provide a design requirement determination support method. The third object of the present invention is to provide a software design support method capable of efficiently designing a software architecture that can cope with various external variations based on design requirements reflecting functional requirements and non-functional requirements. Is to provide.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, the present invention extracts events that affect the realization of functional requirement items by individually comparing the characteristics to be considered in software design for each functional requirement item, and non-functionality for each event. By comparing requirement items individually, design requirements reflecting not only functional requirements but also non-functional requirements can be efficiently extracted.
[0010]
The definitions of important terms in the present invention are as follows.
“Design requirements” are specific requirements that should be built in regarding the configuration and mechanism of the software to be designed, and in order to achieve this, the specific configuration and mechanism of the software to be designed can be determined. Information that expresses the content. For example, it is information such as providing a mechanism capable of performing the process A, a configuration capable of holding the information B, and a configuration capable of changing the part C, but the information expression format is not limited at all.
[0011]
“Function request” means a specific function required for the designed software, and is a term generally used in the field of software engineering.
“Non-functional requirements” means various requirements other than the specific functions required for the software to be designed. For example, performance requirements, restrictions on installation targets, reusability, expandability, maintainability, It is a broad concept that includes various constraints and conditions such as security and ease of use. This “non-functional requirement” is also a term commonly used in the field of software engineering.
[0012]
“Characteristics to be considered in software design” means various characteristics to be considered in general software design. For example, it is a characteristic for quality evaluation that is generally defined in the field of software engineering. It is possible to use “architecture characteristics” reconstructed based on certain “quality characteristics”. Architectural characteristics include many architectural characteristic items such as “specification stability”, each of which defines a question for inducing an event that affects the realization of the functional requirement item. “Characteristics to consider when designing software” is not limited to “architecture characteristic items”, but is a broad concept that includes other various characteristic items that have been defined or characteristic items that have been defined in advance by developers, etc. is there.
[0013]
“Events that affect the realization of functional requirement items” means any event that affects the method of realizing the target functional requirement item or that makes it difficult to implement. It is a broad concept that includes various other events.
“Software architecture” is information that expresses the relationship between the entire structure of software and the components that constitute each part, and is a design policy for the entire software. This “software architecture” is also a term commonly used in the field of software engineering.
[0014]
  The invention of claim 1A computer having an input operation unit such as a keyboard, an information storage unit such as a memory, a calculation unit that searches for and extracts information that is input or stored, and a display screen that displays information extracted by the calculation unit In the software design requirement extraction support method that supports the design of the design target software architecture,
A quality characteristic storage step for preliminarily storing in the information storage unit the quality characteristics to be considered when performing software design;
A request item receiving step of receiving input of function request items and non-function request items of the design target software from the designer via the input operation unit of the computer, and recording them in the information storage unit of the computer,
A function for the operation unit to individually compare a quality characteristic stored in the information storage unit in advance for each function request item recorded in the information storage unit and to display the comparison result on a display screen of a computer Item-quality characteristic display step;
A risk acceptance step for accepting a risk affecting the realization of each function requirement item determined by the designer based on the comparison result displayed on the display screen from the designer via the input operation unit;
Risk that the calculation unit individually compares each risk received through the input operation unit with the non-functional requirement item stored in the information storage unit, and displays the comparison result on the display screen of the computer A non-functional requirement item display step.
[0015]
According to this method, by comparing the characteristics to be considered in the software design for each function requirement item, it is possible to extract an event that affects the realization of the function requirement item based on the comparison result. Then, by comparing non-functional requirement items individually for each extracted event, design requirements reflecting not only functional requirements but also non-functional requirements can be efficiently extracted based on the comparison results. . Therefore, by adopting the design requirements obtained by this method, various non-functional requirements can be reflected in the design as the basis of the design.
[0016]
  The invention of claim 2Function request item candidates and non-function request item candidates prepared in advance based on past data are stored in the information storage unit, and prior to the request item receiving step, the calculation unit stores the information in the information storage unit. A step of displaying the function request item and the non-function request item which are displayed on the display screen.
  According to this method, if there is a corresponding candidate prepared in advance based on past data, it is possible to input a function request item and a non-function request item simply by selecting it. It is possible to efficiently input all necessary requirement items simply by creating only.
[0017]
  The invention of claim 3The risk accepting step accepts the degree of influence on the realization of the function request item for each risk, and the risk-non-functional display step extracts a risk that is equal to or higher than a preset reference value. Features.
  According to this method, only the events whose influence level is higher than the reference value are mechanically extracted from the events obtained as candidates, and the number of events to be extracted is automatically determined by removing the events with low impact level. Since the number of events can be reduced, the efficiency of event extraction can be increased and the efficiency of subsequent operations can be increased.
[0018]
  The invention of claim 4The request item accepting step accepts the degree of satisfaction for each non-functional requirement item, and the risk-non-functional requirement item display step extracts and displays a non-functional requirement item equal to or higher than a preset reference value. It is what is to be done.
  According to this method, from the design requirements obtained as candidates, only the design requirements whose non-functional requirement item satisfaction is equal to or higher than the standard value are mechanically extracted, and the design requirements with low satisfaction are removed. Since the number of design requirements to be reduced can be automatically reduced, it is possible to increase the extraction efficiency of design requirements and the efficiency of subsequent operations.
[0019]
  The invention of claim 5In addition to the invention of claim 1,
The countermeasure plan prepared by the designer based on the risk-non-functional requirement item displayed on the display screen in the risk-non-functional display step is received via the input operation unit of the computer, and this is received in the information storage unit. A countermeasure proposal receiving step to be stored in
Classification in which each countermeasure plan and importance are received from the designer via the input operation unit in a state where each countermeasure plan in the information storage unit is displayed on the display screen, and the calculation unit stores them in the information storage unit A reception step;
An importance level display step in which the calculation unit classifies and arranges each countermeasure plan received in the classification reception step according to the importance level and displays it on a display screen;
A relationship receiving step for receiving information on the relationship between the countermeasure plan and other countermeasure plans related to the countermeasure plan from the designer for each countermeasure plan having a high importance displayed in the importance display step, and storing the information in the information storage unit; ,
The calculation unit classifies and arranges each countermeasure plan stored in the information storage unit for each countermeasure plan having a predetermined relationship and displays it on the display screen, and selects design requirements for each group from the designer. A selection information receiving step of receiving information and storing the information in the information storage unit.
[0021]
According to this method, a plurality of design requirements reflecting functional requirements and non-functional requirements are classified and arranged, and a plurality of highly correlated design requirements are integrated into a higher level design requirement. The design requirements are limited to a smaller number of important design requirements by extracting currently important design requirements determined by the group, current work scope, level of detail such as work phase, concreteness, etc. can do. And about the important design requirements limited in that way, the number of design requirements can be narrowed down efficiently by sequentially selecting design requirements for each group of design requirements having a predetermined relationship. Therefore, according to this method, design requirements reflecting functional requirements and non-functional requirements are classified and limited to only important design requirements, and the limited design requirements are more efficiently based on the relationship between design requirements. Therefore, design requirements to be adopted can be determined efficiently.
[0022]
  The invention of claim 6The relationship receiving step receives a conflicting relationship that makes it difficult to adopt another countermeasure when one countermeasure is adopted, and the selection information receiving step eliminates the conflicting relationship from the designer. It is characterized in that it accepts selection information for deleting a countermeasure for this purpose.
[0023]
  The invention of claim 7The relationship receiving step is to receive a similar and / or dependent relationship that, when one countermeasure is adopted, is similar to that when another countermeasure is adopted, the selection information receiving step is a designer Therefore, it is characterized in that selection information for deleting other countermeasures that are similar and dependent on the countermeasure specified by the designer is received.
[0024]
According to these methods, when multiple design requirements are in a conflicting relationship, a selection is made to eliminate the conflicting relationship, and when multiple design requirements are in a similar relationship, the number is reduced. This sort of selection can be made. Therefore, for the design requirements extracted as important design requirements, the number of design requirements can be narrowed down appropriately and efficiently by sequentially selecting appropriately according to the relationship between the design requirements and the current importance. Therefore, only a smaller number of the most important design requirements can be easily determined as design requirements to be adopted.
[0025]
  The invention of claim 8The importance level displaying step displays a countermeasure whose current importance level of each countermeasure is equal to or higher than a predetermined reference value set in advance.
  According to this method, after classifying design requirements obtained based on functional requirements and non-functional requirements, only design requirements whose current importance level is higher than the standard value are mechanically extracted, and the importance level is increased. By removing relatively low design requirements, the number of design requirements to be extracted can be automatically reduced, so that the extraction efficiency of design requirements can be increased and the efficiency of subsequent operations can be increased.
[0028]
  In addition,The invention of claim 9 or 10 is the invention of claim 1 or 5.The method of the present invention is ascertained from the viewpoint of each program, and according to each program, the same operation as the above-described operation can be obtained for each corresponding method.
[0029]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be specifically described below with reference to the drawings. However, the embodiment described here does not limit the present invention at all, and merely illustrates one aspect of the present invention.
[0030]
The present invention is typically realized by controlling a computer with software. The software in this case realizes the operational effects of the present invention by physically utilizing computer hardware, and a suitable conventional technique is applied to a portion to which the conventional technique can be applied. Furthermore, specific types and configurations of hardware and software that realize the present invention, a range processed by software, and the like can be freely changed. For example, a program that implements the present invention is one aspect of the present invention.
[0031]
[1. Software design support method]
FIG. 1 is a flowchart showing an outline of a software design support method to which the present invention is applied together with a data flow. As shown in FIG. 1, requests from stakeholders such as customers, managers, project managers, etc., are classified and input by a designer into function request items D11 and non-function request items D12 (S110). ).
[0032]
Next, risk items and countermeasures for the risk items are extracted (S120). That is, for each recorded function requirement item D11, the architecture characteristic items Da prepared in advance are sequentially combined (S121), and the risk item D21 is extracted and recorded for each combination (S122). The non-functional requirement items D12 are individually compared, and the possibility D22, the tolerance D23, and the countermeasure plan D24 are extracted and recorded (S123).
[0033]
Here, “architecture characteristic item” is a reconfiguration based on the “quality characteristic” that is generally defined as a characteristic that should be considered when designing software architecture, and is considered when designing software architecture. It represents the characteristic item that should be done. In addition, “risk” is a concept included in “events that affect the realization of functional requirement items” in the present invention. Among such events, in particular, it has a great influence on the realization of the target functional requirement items. Or something more limited that seems to be difficult to implement.
[0034]
The “possibility” is information about what kind of case the risk occurs, and the “tolerance” is information about how much the risk should be considered. The “measure plan” is a concept included in the “design requirement” in the present invention. Here, in order to facilitate the response when the risk occurs, any configuration, mechanism, etc. can be provided. It is information about what to do. And when step S121-S123 are performed about all the combinations of the function requirement item D11 and the architecture characteristic item Da, it progresses to the following step S130.
[0035]
In step S130, the recorded countermeasure plan D24 is classified and sorted, and the currently important countermeasure plan D31 and the unimportant countermeasure plan D32 are extracted and recorded. Next, regarding the recorded “significant countermeasure plan” D31, it is different from taking various countermeasure plans such as conflict, similarity, dependence, etc. among various relations such as conflict, similarity, dependence, independence, etc. The relationship that has some influence on taking the countermeasure plan is extracted and recorded as “relationship of important countermeasure plan” D4 (S140).
[0036]
Here, “conflict” is a relationship in which it is difficult or impossible to take another measure when a measure is taken. “Similar” is a relationship in which when a measure is taken, another measure is taken. In addition, “dependency” is a relationship in which taking a different measure is a condition in order to take a measure. In addition, “independence” is a relationship in which even if one measure is taken, there is no influence on taking another measure.
[0037]
Subsequently, based on the recorded “Relationship between important countermeasures” D4, the countermeasures are selected for each group having a predetermined relationship, and one or more countermeasures to be adopted in the software architecture design are selected. Determine (S150). The software architecture D6 is constructed and recorded by sequentially extracting and integrating the configuration and operation principle for realizing each countermeasure based on the recorded “measure proposal to be adopted” D5 (S160). ).
[0038]
If it is determined that the details of the component group of the software architecture D6 recorded in step S160 can be examined without depending on the implementation environment (S170), each component group is targeted. The above steps S110 to S160 are repeated.
Hereinafter, details of individual steps in the software design support method will be sequentially described with reference to FIG.
[0039]
[1-1. Steps for entering functional requirement items and non-functional requirement items]
In the input step S110 of functional requirement items and non-functional requirement items, the designer extracts and organizes those belonging to functional requirements from requirements given by stakeholders such as customers, managers, and project managers. As function request items, other items are classified as non-function request items, and information about the function request items D11 and non-function request items D12 is obtained by performing an input operation using an input operation unit such as a keyboard. The data is input to a computer and recorded in a storage unit such as a memory.
[0040]
[1-2. Steps for extracting risk items and countermeasures against them]
FIG. 2 is a flowchart showing details of the extraction step S120 (steps S121 to S124) of risk items and countermeasures against the risk items together with the data flow. As shown in FIG. 2, first, a combination of one function requirement item D11 and one architecture property item Da is extracted from the function requirement item D11 recorded in the input step S110 and the architecture property item Da prepared in advance. (S201). This step S201 corresponds to step S121 in FIG.
[0041]
Then, the combination of the function requirement item D11 and the architecture characteristic item Da is sequentially presented to the designer together with the support display of the similar risk search, and the risk item input support is performed (S202). Note that various types of input support in the present embodiment is basically performed by displaying information on the screen for the designer, and voice output or the like is appropriately combined with this. When the designer performs a search request input operation and a similar risk search request is input (YES in S203), a similar risk is searched for and presented from past work data Db (S204).
[0042]
The designer examined the risk while referring to the combination of the presented function requirement item D11 and the architecture characteristic item Da, past similar data Db, etc., and performed input operations such as creation of the risk item and confirmation thereof. In the case (YES in S205), information regarding the risk item D21 is input to the computer and recorded in a storage unit such as a memory (S206). Note that these steps S202 to S206 correspond to step S122 in FIG.
[0043]
Subsequently, the recorded risk item D21 is presented to the designer to support input of possibility, tolerance, and countermeasure plan (S207). In this input support, in order to obtain a “measure plan” that satisfies the recorded non-functional requirement items, a list showing all the non-functional requirement items D12 is presented to the designer at the same time as each risk item D21. Is done. The designer examines the possibility D22, tolerance D23 and countermeasure plan D24 for the risk item D21 while referring to the presented risk item D21 and the non-functional requirement item D12, and creates and confirms such information. When the input operation is performed (YES in S208), the information is input to the computer and recorded in a storage unit such as a memory (S209). Note that these steps S207 to S209 correspond to step S123 in FIG.
[0044]
Then, each combination of the function request item D11 and the architecture characteristic item Da is sequentially extracted, and Steps S202 to S209 are repeated for each combination. Finally, when the above steps S201 to S209 are performed for all the combinations (NO in S124, NO in S210), the process proceeds to the next step S130. It should be noted that the extraction step of the risk item D21 and the countermeasure plan D24 for the risk item D21 is performed to break down the recorded non-functional requirement item D12 and to extract a potential non-functional requirement without omission. Therefore, it is desirable that the countermeasure plan D24 be extracted without omission in a wide field of view without being greatly affected by the level of detail and granularity.
[0045]
[1-3. Classification of countermeasure proposals, extraction steps for important countermeasure proposals]
FIG. 3 is a flowchart showing details of the classification and arrangement of countermeasure plans and the extraction step S130 of important countermeasure plans together with the data flow. As shown in FIG. 3, first, a list of all countermeasure plans D24 recorded in step S120 is presented to the designer for input support (S301). When the designer selects a plurality of countermeasure plans with high correlation and performs input operations such as confirmation thereof, when a plurality of countermeasure plans D24 to be integrated are designated (YES in S302), A plurality of countermeasure plans D24 are presented side by side as an integration target group, and input support for correcting the description of the countermeasure plans is performed (S303).
[0046]
The designer can modify the description of the countermeasure plan in such a manner that it integrates all the countermeasure plans included in the integration target group into a higher-level countermeasure plan while referring to the plurality of proposed countermeasure plans D24. When an input operation such as confirmation is performed (YES in S304), a plurality of countermeasure proposals of the original group are deleted from the list and replaced with a higher countermeasure proposal that encompasses them (S305).
[0047]
When the integration of countermeasure plans D24 with high correlation is completed or there is no plurality of countermeasure plans D24 to be integrated, and the integration is unnecessary (YES in S306), the designer Only the countermeasures that match the level of detail and the level of detail of the function requirement item group, the current work range, the work phase, etc. are examined. When the designer performs an input operation such as selection as a countermeasure plan to be considered in the current phase and confirmation thereof based on such examination (YES in S307), the designer selects the result according to the selection result of the designer. The countermeasure plan D24 selected by the designer is stored in a storage unit such as a memory as an “important countermeasure plan” D31, and the countermeasure plan D24 that has not been selected is stored as an “unimportant countermeasure plan” D32. It is recorded (S308).
[0048]
In other words, for the countermeasure plan that was not selected by the designer as a countermeasure plan to be considered in the current phase, the countermeasure plan depending on the environment to be implemented, or the specificity of the target functional requirement items, the current work range, A measure plan that has a higher level of detail and specificity than the level of detail and concreteness of the work phase, etc. is a measure that should not be considered in the current phase. Therefore, these countermeasure plans may be grouped as “unimportant countermeasure plans” D32 at the present time, and extracted at the time when the countermeasure plans should be considered.
[0049]
[1-4. Relationship extraction step for important measures]
FIG. 4 is a flowchart showing details of the relationship extraction step S140 of the important countermeasure plan along with the data flow. As shown in FIG. 4, first, the designer displays a selection screen showing symbols showing relations such as reciprocity, similarity, dependence, etc. together with a list showing all the currently proposed countermeasures D31 recorded in step S130. To provide input support (S401). When a designer specifies a plurality of countermeasure plans D31 having a conflicting relationship by performing input operations such as selection and confirmation of a plurality of countermeasure plans having a conflicting relationship and the relationship (YES in S402) In step S403, the plurality of countermeasure plans D31 are presented as a group of countermeasure plans having a conflicting relationship to prepare for the next input operation.
[0050]
Similarly, when a plurality of countermeasure proposals D31 having a similar relationship are designated (YES in S404), the plurality of countermeasure proposals D31 are presented as a group of countermeasure proposals having a similar relationship, and the next Prepare for an input operation (S405). In addition, when a plurality of countermeasure plans D31 having a dependency relationship are specified together with a dependency direction indicating a dependent side and a dependent side (YES in S406), the plurality of countermeasure plans D31 are determined to be dependent on each other. It is presented together with the dependency direction as a group of countermeasure proposals having the above relationship and prepared for the next input operation (S407).
[0051]
At the time when the clarification of the relationship is completed for all the countermeasure plans (YES in S408), information on the relationship of the important countermeasure plans such as conflicts, similarities, and dependencies is “Relationship of Important Measures” D4 Is recorded in a storage unit such as a memory (S409). Note that this step S140 is performed in order to facilitate examination of what measures should be taken in software architecture design, so various relations necessary from that viewpoint are extracted and recorded. .
[0052]
[1-5. Steps for deciding measures to be adopted]
FIG. 5 is a flowchart showing details of the measure plan determination step S150 to be adopted together with the data flow. As shown in FIG. 5, first, each group of “important countermeasure plans” D31 having a conflicting relationship is sequentially presented to the designer based on the “relationships of important countermeasure plans” D4 recorded in step S140. Then, input support is performed (S501).
[0053]
For each group of proposed countermeasures, a countermeasure proposal D31a that is not adopted for each group is specified by performing an input operation such as selecting or confirming a countermeasure that is not adopted in order to resolve the conflicting relationship. If it is determined (YES in S502), a countermeasure plan that is not adopted is determined based on the designated countermeasure plan D31a and deleted from the important countermeasure plan D31 (S503).
[0054]
That is, it is determined that the designated countermeasure plan D31a is not adopted, and depends on one or a plurality of other countermeasure plans D31b having a similar relationship with the designated countermeasure plan D31a and the designated countermeasure plan. It is decided not to adopt another single or plural countermeasure plans D31c, and these countermeasure plans D31a, D31b, D31c that are not employed are deleted from the important countermeasure plan D31.
[0055]
Next, among the “important countermeasure plans” D31 that remain without being deleted, each group of “important countermeasure plans” D31 having a similar relationship is sequentially presented to the designer for input support (S504). . When the designer performs the input operation such as selection and confirmation of the most important countermeasure plan for each group of the proposed countermeasure plans, the most important countermeasure plan D31d is designated in each group (in S505) YES), the designated measure plan D31d is determined as a measure plan to be adopted, and another measure plan D31e of each group is deleted from the important measure plan (S506).
[0056]
Subsequently, among the “important countermeasure plans” D31 that remain without being deleted, each group of “important countermeasure plans” D31 having a dependency relationship is sequentially presented to the designer for input support (S507). . When the designer selects the countermeasure plan D31f to be adopted for each group by performing input operations such as selection of the countermeasure plan to be adopted and confirmation thereof for each group of the presented countermeasure plans (YES in S508) Then, based on the designated countermeasure plan D31f, a countermeasure plan that is not adopted is determined and deleted from the important countermeasure plan D31 (S509).
[0057]
That is, when there is another countermeasure plan D31g on which the designated countermeasure plan D31f depends in the group, all the countermeasure plans D31g on which the countermeasure plan D31f depends are traced to the final countermeasure plan. Is determined as a countermeasure plan to be adopted, and another countermeasure plan D31h that further depends on the designated countermeasure plan D31f is deleted from the important countermeasure plan.
[0058]
Finally, from the “significant countermeasure plan” D31 that remains without being deleted, the above-mentioned countermeasure plan that is completely independent of other countermeasure plans without any conflicts, similarities, or dependencies. Provides the individual countermeasure proposals to the designer one after another and provides input support (S510). About the countermeasure plan D31i designated to be adopted by the designer by performing input operations such as the presence / absence of adoption and confirmation of each proposed countermeasure, the designated countermeasure plan D31i is designated as such (YES in S5111). For the measure plan D31j that is determined as the measure plan that adopts the measure plan D31i and is designated not to be adopted, the measure plan D31j is deleted from the important measure plan (S512).
[0059]
Then, at the time when the selection of countermeasures based on the relationship of conflict, similarity, dependence, and independence is completed (YES in S513), the “important countermeasures plan” D31 that remains without being deleted is “ It is recorded in a storage unit such as a memory as “measure plan to be adopted” D5 (S514).
[0060]
[1-6. Extraction of configuration and operation principle to realize countermeasure plan, integration step]
FIG. 6 is a flowchart showing details of the configuration and operation principle extraction and integration step S160 for realizing the countermeasure plan together with the data flow. As shown in FIG. 6, first, based on the “measure plan to be adopted” D5 recorded in step S150, a list of all “measure plan to be adopted” D5 is presented to the designer, and the priority order is shown. An input support for adding a character is performed (S601). Here, it is assumed that there are n countermeasure plans D51 to D5n as the “measure plan to be adopted” D5.
[0061]
When the priority order of n countermeasure plans D51 to D5n is designated by performing an input operation such as selection of priority order or confirmation of the proposed n countermeasure plans D51 to D5n ( (YES in S602) A configuration in which information proposal support display for an existing pattern, past work data, and the like is displayed together with countermeasure plans D51 to D5n sequentially based on the designated priority order to realize it The input support for inputting the operation principle is performed (S603). When the designer performs a search request input operation and a search request for an existing pattern or past work data is input (YES in S604), the existing architecture pattern, design pattern Dc, or past work is input. Information such as data Db is retrieved and presented (S605).
[0062]
The designer examines the configuration and operation principle for realizing the countermeasure plan D51 while referring to the information such as the presented first countermeasure plan D51, the existing pattern Dc, the past work data Db, and the like. When the information input operation is performed (YES in S606), it is determined whether or not the information regarding the configuration and the operation principle D61 is clear (S607).
[0063]
That is, in the information on the configuration and operation principle, each component needs to clearly define the role and the scope of responsibility. Therefore, when such clarity is determined and it is unclear (NO in S607). For example, prompting a re-input operation is performed. If it is clear (YES in S607), information regarding the configuration and operation principle D61 is input to the computer and recorded in a storage unit such as a memory (S608). Note that the information on the configuration and operation principle may be about the block structure diagram (macro level), and if the target is narrow, the designer may create the program language based on experience.
[0064]
Subsequently, when there is the next countermeasure plan D52 (YES in S609), the countermeasure plan D52 and information search support display are performed, and information on the acquired configuration and operation principle D61 is presented to the designer. The input support is performed (S603), and the configuration and operation principle D62 for realizing the countermeasure plan D52 are acquired through S604 to S607, and are integrated into the existing configuration and operation principle D61 (S608). In this way, the same work is performed up to the n-th countermeasure plan D5n having the lowest priority, and the configuration and operation principle are integrated. If integration is difficult, extract another configuration and operation principle for the countermeasure plan, return to the first countermeasure plan and extract another configuration and operation principle, or any other Work such as returning to the step and starting over is performed.
[0065]
Then, when the extracted and integrated configuration and operation principle become a configuration and operation principle reflecting all “measures to be adopted” (YES in S610), an operation scenario is set according to the customer's request and the like. Deriving and verifying whether or not the operation scenario can be operated without departing from the responsibility and scope of responsibility of each component on the current configuration and operation principle without departing from the operation principle ( S611). As a result, when it is determined that there is a problem (YES in S611), if it is possible to extract a non-function request item that avoids this, it is added and the process is repeated from an arbitrary step. If it is finally verified that there is no problem (NO in S611), the current configuration and operation principle are recorded as the software architecture D6 (S612).
[0066]
[1-7. Supplementary explanation of repetition steps for component groups]
In the following, a supplementary description will be given of the repetition steps of Steps S110 to S160 for the software architecture component group recorded in Step S160. First, the function requirement item D11 in step S110 is a function requirement item provided to the component group related to the target component group on the software architecture D6 constructed in step S160. These are extracted from the role and responsibility range of the target component group and the countermeasure plan D24 extracted in step S120.
[0067]
Further, in this repetitive work, for step S120, referring to the countermeasure plan D24 extracted in the same step S120 during the previous repetitive work or the countermeasure plan D32 grouped as “a measure plan that is not important at present” in step S130. To do. Step S160 is integrated with the software architecture D6 constructed in the same step S160 of the previous repetitive work.
[0068]
[2. Specific examples of software design]
Hereinafter, a specific example in which the above-described software design support method according to the present embodiment is applied to the software architecture design of the conference room reservation system will be described.
[0069]
[2-1. Steps for entering functional requirement items and non-functional requirement items]
Here, it is assumed that the following requests 1 to 6 are given as requests from the customer.
[0070]
[Table 1]
(Request 1): A system for reserving a conference room online. The user can log in to the terminal to reserve, cancel, or view the conference room.
(Request 2): When making a reservation, the user designates a date, a time zone, and a conference room. The terminal displays whether or not a reservation has been made.
(Request 3): When canceling, the user designates the reservation of the user. Cancellation can only be canceled by the user who made the reservation. The terminal displays whether or not the cancellation was successful.
(Request 4): When browsing, the user designates a conference room. The terminal displays the reservation status for the designated conference room from the date of operation until one month later.
(Request 5): The terminal screen configuration and operation specifications are arbitrary, but the user interface is intuitive and easy to understand.
(Request 6): Even if a plurality of users try to make a reservation for the same conference room at the same time at the same time, the reservation is possible and the reservation is impossible on a first-come-first-served basis.
[0071]
Functional requirements and non-functional requirements are extracted by extracting functional requirements and non-functional requirements based on these requirements 1 to 6, and the designer performs use case analysis on the functional requirements. The following items are extracted and input operations are performed. As a result, these pieces of information are input to the computer and recorded as data in a memory or the like (S110).
[0072]
[Table 2]
(Function request item 1): Browse reservations
(Function request item 2): Make a reservation
(Function request item 3): Cancel reservation
(Non-functional requirement item 1): Operability from the terminal
(Non-functional requirement item 2): Consideration for simultaneous use
(Non-functional requirement item 3): Emphasis on extensibility
[0073]
[2-2. Steps for extracting risk items and countermeasures against them]
Here, as an example, a case will be described in which a risk item and a countermeasure proposal or the like are extracted by a combination of the function request item 1 “view reservation” and the architecture characteristic item “specification stability”.
[0074]
First of all, the questions defined in the function requirement item 1 “View reservation” and the architecture characteristic item “Specification stability” are “Possibility of function expansion”, “Operating environment has been changed. A combination with each situation with a risk such as “Is there a possibility?” Is displayed on the screen for the designer (S202). In this case, support display for similar risk search is also performed. As a result, the designer can search for similar risks as necessary (S203), and search for and display similar risks from past work data (S204). It is possible to easily examine the risk while referring to the screen display at the same time.
[0075]
In this case, depending on the conference room, there is equipment that may be provided, and that information may be displayed. Alternatively, the number of items to be displayed may be adjusted depending on the user's instruction. Based on such examination, the designer extracts, for example, the next risk item and performs an input operation thereof (S205). As a result, these pieces of information are input to the computer and recorded as data in a memory or the like (S206).
[Table 3]
(Risk item 1): Displayed information varies depending on the conference room, such as equipment
(Risk item 2): Information to be displayed varies according to user's wishes
[0076]
Subsequently, the recorded risk item 1 and risk item 2 are displayed on the screen for the designer together with the non-functional requirement item 1 to the non-functional requirement item 3 described above. An input operation is supported (S207). Therefore, the designer can easily examine the possibility, tolerance, and countermeasure plan while referring to the risk item and the non-functional requirement item at the same time, and efficiently implement the countermeasure plan that reflects the non-functional requirement item. Can be extracted.
[0077]
For example, considering the possibility of risk item 1 “information such as equipment to be displayed varies depending on the conference room”, it is considered that equipment provided in the conference room is generally different, so it will be a specification in the future. A change is likely to occur. Also, considering the tolerance, it is desirable to consider the non-functional requirement item 1 “operability from the terminal” and to make it possible to respond as flexibly as possible when a similar specification change occurs. It is done. As a countermeasure, it is considered effective to provide a concept class called a conference room, conceal information and operations related to the conference room, and allow transparent access from others.
[0078]
The designer performs the extraction of the risk items as described above, and the examination of the countermeasure proposals, etc. for each combination of each of the function requirement items 1 to 3 and each architecture characteristic item, The possibility, tolerance, and countermeasure plan for each risk item are extracted and the input operation is performed (S208). As a result, these pieces of information are input to the computer and recorded as data in a memory or the like (S209). In this example, as countermeasures, for example, the following countermeasures 1 to 15 are recorded.
[0079]
[Table 4]
(Countermeasure 1): Create a concept class called “Conference Room” to allow transparent access
(Countermeasure 2): Establish a mechanism for common processing called “processing request”
(Countermeasure 3): The part related to the user's operation is completely separated from the other parts.
(Countermeasure 4): The data recording process is abstracted so that the reservation information may be held in the DBMS.
(Countermeasure 5): Isolate the OS-dependent part
(Countermeasure 6): Provide a mechanism to export reservation information and other data
(Countermeasure 7): A configuration in which reservation information can be multiplexed and held.
(Countermeasure 8): Make the search algorithm etc. replaceable
(Countermeasure 9): Consider cooperation with other systems such as employee DB
(Countermeasure 10): Establishing a mechanism to ensure consistency even if multiple users make reservations at the same time
(Countermeasure 11): Make the data holding part changeable like plug-in.
(Countermeasure 12): Provide a mechanism that can import conference rooms and user information.
(Countermeasure 13): Provide a mechanism that allows the user to define how to make reservations and cancellations
(Countermeasure 14): Provide a configuration in which the data search part and the data holding part can be exchanged.
(Countermeasure 15): Various user interfaces can be defined, and the reservation process can be handled transparently.
[0080]
[2-3. Classification of countermeasure proposals, extraction steps for important countermeasure proposals]
Here, the countermeasure plans 1 to 15 recorded as described above are classified and arranged using a technique such as the KJ method. That is, first, since the list of countermeasure plans 1 to 15 is displayed on the screen for the designer (S301), the designer can easily select an important countermeasure plan and an unimportant countermeasure plan in the current work phase. (S307). In addition, if there are a plurality of countermeasures that are important and highly correlated with important countermeasures in the current phase among the important countermeasures, they can be easily selected. When those measures for integration are designated by the designer (S302), the designated measures are displayed side by side as a group to be integrated (S303), so the designer refers to a plurality of measures at the same time. However, it is possible to easily create a high-order countermeasure plan that encompasses them.
[0081]
When the designer creates an upper countermeasure plan and confirms that it replaces the original countermeasure plan (S304), the original countermeasure plan is deleted and replaced with a higher countermeasure plan (S305). By such integration work, subsequent work can be facilitated by reducing the number of countermeasures. In this example, the scope of work targeted is the part related to the entire system, so detailed countermeasure plans should not be considered in the current phase, that is, grouped as unimportant countermeasure plans and other countermeasure plans Will be grouped as an important measure proposal. For example, the following “important countermeasure plan 1” to “important countermeasure plan 6” are recorded (S308).
[0082]
[Table 5]
(Important Measure 1): Separate the user interface from the reservation information processing part.
(Important Measure 2): Rewrite only the user interface on each platform.
(Important Measure 3): Create a common processing framework called “Process Request” so that reservation, cancellation, and browsing methods may be changed.
(Important Measure 4): Create a mechanism to ensure consistency even when multiple users request processing at the same time.
(Important Measure 5): Retain reservation information in a multiplexed manner
(Important Measure 6): Create a configuration that abstracts the processing for data within the system.
[0083]
[2-4. Relationship extraction step for important measures]
Here, the relationship between “important countermeasure plan 1” to “important countermeasure plan 6” recorded as described above is extracted. That is, the designer displays a selection screen including symbols representing the list of important countermeasure plans and the relationship to the designer (S401), so that the designer can view conflicts, similarities, dependence, independence, and the like. Thus, it is possible to easily examine and specify the relationship between countermeasures (S402, S404, S406). As shown in FIG. 7, the countermeasure plan designated by the designer and its relationship are expressed as a graphic image on the screen (S403, S405, S407), so that the designer can establish the relationship between the countermeasure plans designated by the designer. Can be easily grasped and confirmed. The relation expressed by the graphic image is recorded as “relationship of important countermeasure plan” after the contents are confirmed by the designer (S409).
[0084]
In FIG. 7, as an example, a graphic image representation including a box displaying an important countermeasure plan and a connection line as a symbol indicating the relationship is shown. That is, a straight line with a double-headed arrow connecting between boxes indicates that there is a reciprocal relationship between measures proposed by each box, and a straight line without an arrow connecting between boxes is It shows that there is a similar relationship between the proposed countermeasures. Further, when there is no line connecting the boxes, it indicates that the countermeasure proposals expressed by the boxes are independent of each other. Here, since there is no dependency relationship, it is not shown in the figure, but for example, it can be expressed by a straight line with a unidirectional arrow toward the dependency destination.
[0085]
[2-5. Steps for deciding measures to be adopted]
Here, based on the recorded “relationship between important countermeasure proposals”, a countermeasure proposal to be adopted is determined from “important countermeasure proposal 1” to “important countermeasure proposal 6”. That is, by displaying a countermeasure plan having a predetermined relationship with a graphic image as shown in FIG. 7 (S501, S504, S507, S510), the designer can easily compare the countermeasure plan having the target relationship. Therefore, it is possible to easily specify the countermeasure plan to be adopted or the countermeasure plan not to be adopted (S502, S505, S508, S511).
[0086]
In the example of FIG. 7, as a countermeasure plan group having a conflicting relationship, first, “Create a mechanism that can maintain consistency even when multiple users request processing simultaneously” and “Reserve information multiplexed” By displaying each box indicating “save” and a straight line with a bidirectional arrow connecting between the boxes (S501), the designer compares both boxes and easily designates a countermeasure plan that is not adopted. (S502). In this case, for example, from the viewpoint of cost and importance, it is assumed that it is designated as a countermeasure plan that does not employ “reserve reservation information multiplexed”. As a result, this countermeasure plan is deleted from the list of important countermeasure plans (S503).
[0087]
Next, as a countermeasure plan group having a similar relationship, the other two sets of boxes shown in FIG. 7 and a straight line connecting them are displayed (S504), so that the designer can connect each group connected by a line. By comparing these boxes, the most important countermeasure plan in each group can be easily designated (S505). In this case, for example, a common processing framework called “processing request” is used so that the method of abstracting the processing for data within the system and “reservation, cancellation, and browsing methods may be changed”. For the “Make” group, the latter is specified, and for each platform, “only the user interface needs to be rewritten” and “the user interface is separated from the reserved information processing part” The latter is assumed to be specified. As a result, the countermeasure plan that has not been designated is deleted from the list of important countermeasure plans (S506).
[0088]
In this example, the selection of the countermeasure plan is completed only by the above work (S513), so the three countermeasure plans remaining without being deleted are “measure plan 1 to be adopted” to “adopt” as follows. This is recorded as “Measure 3 to be taken” (S514).
[Table 6]
(Countermeasure plan 1 to be adopted): Create a mechanism to ensure consistency even if multiple users request processing at the same time
(Countermeasure 2 to be adopted): Create a common processing framework called “processing request” so that reservation, cancellation, and browsing methods may be changed.
(Measure 3 to be adopted): The user interface is separated from the reservation information processing part.
[0089]
[2-6. Extraction of configuration and operation principle to realize countermeasure plan, integration step]
Here, based on the recorded “measure plan to be adopted”, a configuration and an operating principle for realizing all of the measure plans are extracted and integrated to construct a software architecture. That is, first, a list of recorded “measure plan 1 to be adopted” to “measure plan 3 to be adopted” is displayed on the screen (S601), so that the designer easily compares the target measure plans. Therefore, the priority order can be easily specified (S602). In this example, for example, the following priorities are given.
[0090]
[Table 7]
(First measure to be adopted): Create a common processing framework called “processing request” so that reservation, cancellation, and browsing methods may be changed.
(Second measure to be adopted): The user interface is separated from the reservation information processing part.
(Third countermeasure plan to be adopted): Create a mechanism to ensure consistency even when multiple users request processing simultaneously
[0091]
When priorities are specified in this way, countermeasure plans are sequentially displayed to the designer according to the priorities, and information search support display for existing patterns and past work data is also performed. (S603). As a result, the designer can make a search request for existing patterns and past work data as required (S604), and search and display such information (S605). While simultaneously referring to patterns and past work data, the configuration and operation principle for realizing the countermeasure can be easily studied. In this example, for example, the following examination is performed for each countermeasure plan.
[0092]
Regarding the “first countermeasure plan to be adopted”, the design pattern visitor pattern (E. Gamma et al., Shinichi Honda, et al., Revised design pattern for object-oriented reuse, 1999.11, ISBN4-7973- It is considered effective to apply 1112-6). The request process is a Visitor, which represents all requests and conceals the process for the request, so that all requests from users can be handled in common. Also, by making this an object, reservation processing via the network can be handled transparently.
[0093]
The “second countermeasure plan to be adopted” can be realized by providing a portion that controls the user interface and delegating the processing to the request processing.
The “third countermeasure plan to be adopted” can be handled by having a configuration in which only one part of the entire system has an authority to start processing even when a plurality of request processing occurs. it is conceivable that. It is sufficient to provide one block for all the reservation information so that the request processing can be given authority to start processing.
[0094]
When the designer performs the input operation of the configuration and operation principle integrating the examination results of each of these countermeasures, the configuration and operation principle are recorded in a memory or the like as information for constructing the software architecture. (S603 to S610). In this example, when the constructed software architecture is described in UML, it is as shown in FIG. The definition of the role of each class that is a component of the software architecture is as follows.
[0095]
[Table 8]
(Screen): It has a role of accepting an operation from the user and presenting the result to the user. A process request object reflecting the user's operation is generated, the process is transferred to the process request object, and the request result is presented to the user through the screen.
(Processing request): Holds a request according to the user's operation, and operates the reservation information according to the request.
(Reservation information): Holds information such as conference rooms, users, and reservations. Only the process request object can be operated, and the operation right can be given to the process request object.
[0096]
Since it can be confirmed that the function requirement item and the non-function requirement item described above can be realized with this software architecture, this is recorded as the constructed software architecture (S611, S612). In this example, only three relatively simple countermeasures are shown, so that the configuration and operation principle can be integrated at one time. However, in reality, there are almost many countermeasures. Yes, the extraction and integration of the configuration and operating principle are sequentially performed for each countermeasure plan.
[0097]
[2-7. Software architecture built with this method]
The software architecture recorded in the above steps is composed of three components, and each component can be detailed (S170). Therefore, steps S110 to S160 are repeated for each component. In the second iteration step, the details of the function request items will be examined again based on the role defined in step S160. In this example, by repeating each step for each component and integrating the software architecture, the software architecture shown in FIG. 9 is finally obtained. The definition of the role of each class that is a component of this software architecture is as follows.
[0098]
[Table 9]
(Conference Room): Holds information specific to the conference room. The information specific to the conference room is the name, location, number of persons accommodated, facilities, etc. of one conference room.
(User): Holds user-specific information. User-specific information includes name, affiliation, title, etc.
(Reservation): Reservation information is held. The reservation information is a reserved conference room (conference room object), a reservation person (user object), and a reservation date and time.
(Date): Holds date and time information. The date / time information enables all expressions related to the date / time, such as a specific time zone on a specific day, a specific time zone on every Wednesday, and the like. A new reservation is always generated and a date / time object is created. This object expresses information related to the date and time of the reservation.
(Request window): Accepts the request object and determines the operation right for the reservation, conference room, and user objects. There is only one request window object in one system. Also serves as a proxy window for distributed environments. The request window object does not create or operate the reservation object.
(Request): This is an abstract class for expressing the contents of the request from the user and the processing corresponding to it. The request content is information related to the reservation or cancellation of the conference room. The processing includes creation, change, deletion, search, and the like of each object of reservation, conference room, and user. In this derived class, there is a class group indicating a specific request and its processing procedure.
(Request result): This is an abstract class for expressing the result of the processing performed by the request. The result is the success or failure of the request, details thereof, and the like. The request result object does not know how it is presented to the user. In this derived class, there is a class group expressing a specific request result.
(Screen): Accepts an operation from the user and presents the result to the user. In response to the user's operation, an appropriate request object is generated and passed to the request window object. Receives the request result object and presents its contents to the user through the screen.
[0099]
A typical process flow on the software architecture constructed by this method is as follows.
(1) The screen object receives a user request, generates a request object corresponding to the content, and passes this to the request window object.
(2) The request window object gives the received request object access rights to the reservation, conference room, and user objects, and delegates operations to these objects.
(3) The request object operates the reservation, conference room, and user objects according to the request contents held by itself, and generates an appropriate request result object as a result.
(4) The request result object is passed to the screen object via the request window object, and the screen object presents the result to the user according to the information held by the request result object.
[0100]
[2-8. Software architecture built using conventional methods]
Here, in order to compare with the present method, a case where a software architecture is constructed by a conventional method in response to the above requests 1 to 6 from the customer will be described.
First, the reservation is specified by specifying the date and time, the time zone, and the conference room, and the browsing is specified by specifying the conference room. Therefore, it is sufficient to add and record information on “reserved user” and “date and time zone” in the “specific conference room”.
[0101]
Since cancellation is a specification that specifies a user's reservation, it is sufficient if the above information can be specified.
Further, the actual request processing can be defined as a specification of processing specifically performed by reservation, cancellation, and browsing.
Therefore, according to the conventional method, a customer request can be satisfied with a software architecture as shown in FIG. The definition of each class of the software architecture constructed by this conventional method is as follows.
[0102]
[Table 10]
(Conference Room): Holds information specific to the conference room. The information specific to the conference room is the name, location, number of persons accommodated, facilities, etc. of one conference room. Maintain a reservation list for this conference room.
(User): Holds user-specific information. User-specific information includes name, affiliation, title, etc.
(Reservation): Reservation information is held. The reservation information is a reserved conference room (conference room object), a reservation person (user object), and a reservation date and time.
(Request window): Accepts request contents and performs operations on reservation, conference room, and user objects. The operations include creation, change, deletion, search, and the like of reservation, conference room, and user objects. There is only one request window object in one system. Also serves as a proxy window for distributed environments.
(Screen): Accepts an operation from the user and presents the result to the user. The contents are passed to the request window object according to the user's operation. Receives the contents of the request result and presents the contents to the user through the screen.
[0103]
A typical processing flow on the software architecture constructed by this conventional method is as follows.
(1) The screen object receives a user operation and passes the contents to the request window object.
(2) The request window object adjusts access rights to the reservation, conference room, and user objects, and operates these objects according to the received contents.
(3) The request window object passes the content of the request result to the screen object, and the screen object presents the result to the user according to the content of the received request result.
[0104]
[2-9. Comparison of software architecture constructed by this method and conventional method] In the following, when a specification change occurs in the software architecture of FIG. 9 constructed by this method and the software architecture of FIG. 10 constructed by the conventional method. Compare the correspondence of
Here, as an example, a case is assumed in which a specification change that enables complex processing occurs, such as “reservation is possible anywhere from 13:00 to 15:00 every Wednesday for the next three months”.
[0105]
First, the software architecture constructed by this method can be easily handled as follows.
(1) Since the method of request is added or changed, it is easily derived that the class expressing it, that is, the derived class of the abstract class of the request and the request result may be added or changed.
(2) Since the actual date and time are also created for each reservation, the date and time class can be changed or derived classes can be added as necessary to make it easier to add or change the requested class. It can correspond to.
(3) Changes in each class do not affect other classes.
(4) Since the change of the screen class is separated from the request processing, it can be corrected independently without considering the influence of others.
[0106]
On the other hand, in the case of a software architecture constructed by a conventional method, it is difficult to cope with specification changes as follows.
(1) Since the request window class is responsible for all operations related to requests, the inside of the request window class needs to be significantly changed.
(2) Depending on the size of the specification change, it can be considered that the change of the request window class becomes large, or the interface of the request window is affected. Therefore, it is necessary to make a major change to the screen class.
(3) Since the date and time is an internal attribute of the reservation class, the reservation class may be affected depending on circumstances.
[0107]
[3. Effects of the embodiment]
As described above, the software architecture constructed by the method of this embodiment is not only easy to cope with specification changes, but also can be constructed after extracting potential customer requirements, so software development It is possible to reduce the total cost of software and to develop software with high customer satisfaction. In addition, the effects of each characteristic step in this method are as follows.
[0108]
First, the effects of the extraction steps for risk items and countermeasures against them are as follows. That is, by individually comparing the architecture characteristic items for each function requirement item, it is possible to extract a risk item that greatly influences or makes it difficult to realize the function requirement item based on the comparison result. In particular, by retrieving and presenting past work data and the like, risk items can be more easily extracted using past data. Then, by comparing non-functional requirement items individually for each extracted risk item, it is possible to efficiently extract countermeasure plans reflecting non-functional requirements as well as functional requirements based on the comparison results. it can. Therefore, by adopting the countermeasure plan obtained in this step, various non-functional requirements can be reflected in the design as the basis of the design.
[0109]
Next, at the step of categorizing countermeasure proposals and extracting important countermeasure proposals, categorize and organize multiple countermeasure proposals that reflect functional requirements and non-functional requirements, and assign multiple countermeasure plans with high correlation to higher-level countermeasures. A work plan such as integration into a draft is performed, and a countermeasure plan that is highly important at the present time, which is determined based on the level of detail of the function requirement items, the current work range, the work phase, and the like, is extracted. Therefore, according to this step, it is possible to limit the countermeasures targeted in the subsequent steps to a smaller number of important countermeasures.
[0110]
Also, according to the relationship extraction step of the important countermeasure plan, it is possible to sequentially extract the conflicting, similar, dependent, and independent relationships of the important countermeasure plan, so that all the relationships that affect the adoption of the countermeasure plan are efficiently Can be extracted. In particular, by displaying the countermeasure plan and the relationship as a graphic image, the relationship can be easily grasped and confirmed, and the work efficiency can be further improved.
[0111]
In addition, in the step of determining the countermeasure plan to be adopted, the number of countermeasure proposals can be efficiently narrowed down by sequentially selecting countermeasure proposals for each group of countermeasure proposals having a predetermined relationship. Also in this case, as in the relationship extraction step, by displaying the measure plan and the relationship as a graphic image, it is possible to easily grasp the relationship of the measure plan and to select the measure plan based on it. In this step, first of all, by eliminating the conflicting choices by eliminating the conflicting relationship, one of the conflicting countermeasures is removed, and the countermeasures that are similar to the countermeasures or depend on them. In addition to being able to delete countermeasure plans mechanically, the number of countermeasure plans should be greatly reduced while appropriately selecting from the remaining countermeasure plans according to similarities and dependency relationships. Can do. Accordingly, it is possible to increase the efficiency of determining the countermeasure plan to be adopted and the efficiency of the subsequent work.
[0112]
In addition, in the extraction and integration steps of the configuration and operation principle that realizes the countermeasure plan, a narrowed number of “proposal countermeasures to be adopted” that reflect functional and non-functional requirements should be presented in order of priority. Therefore, the software architecture can be efficiently constructed by efficiently extracting and integrating the configuration and operation principle. In particular, by searching and presenting existing patterns and past work data, it is possible to more easily extract the configuration and the operating principle using such information.
[0113]
Furthermore, when the details of the components of the constructed software architecture can be examined without depending on the implementation environment, the level of detail has been increased by repeating a series of steps for each component. Software architecture can be constructed efficiently.
[0114]
[4. Other Embodiments]
Note that the present invention is not limited to the above-described embodiments, and various other forms can be implemented within the scope of the present invention.
[0115]
[4-1. Automatic presentation of existing data and use as candidates]
For example, in the above embodiment, when extracting risk items, a similar risk is searched and presented from past work data in response to a search request, but is automatically presented without a search request. Alternatively, it is possible to select a risk item by using the presented existing risk item as a candidate. In this case, since the designer only needs to create risk items that are not included in the existing risk items, the risk item extraction efficiency can be greatly improved.
[0116]
In addition, for the existing pattern and past work data in the extraction of the configuration and operation principle that realizes the countermeasure plan, the configuration and operation principle are also presented by automatically presenting such information or selecting it as a candidate. The extraction efficiency can be greatly improved. Furthermore, such a method of displaying support automatically, such as automatically presenting existing data or selecting it as a candidate, can be similarly applied when extracting a countermeasure plan for a risk item. It is obtained.
[0117]
In addition, when inputting a function request item or a non-function request item, a candidate of a function request item or a candidate of a non-function request item prepared in advance based on past data is presented and selected by the designer. Is also possible. Also in this case, it is possible to efficiently input all the request items according to the request of the customer or the like only by creating the request item having no candidate.
[0118]
[4-2. Reduction of the number with reference values prepared in advance]
On the other hand, in the above-described embodiment, all risk items created by the designer are recorded as they are, and countermeasure measures for each risk item are extracted. However, risk items using past work data or the like are used. It is also possible to set in advance a reference value regarding the degree of influence on the realization of the function request item by, and to extract a risk item exceeding the reference value.
[0119]
For example, depending on the impact level of the risk item obtained as a candidate, “impact level A” indicates that the impact level is extremely high, and “impact level B” indicates other risk items. The risk items to be recorded can be automatically reduced by automatically extracting and removing the risk items having the influence degree B. As a result, risk item extraction efficiency can be increased and the efficiency of subsequent operations can be increased. As a modified example, the risk item of “influence degree B” may not be automatically deleted, but a list of risk items that are temporarily presented to the designer may be selected.
[0120]
Similarly, with respect to a countermeasure plan, it is possible to set a reference value relating to the satisfaction degree of the non-functional requirement item in advance by using past work data and the like, and extract a countermeasure plan that exceeds the reference value. In this case, by mechanically extracting only the countermeasures with the satisfaction degree of the non-functional requirement items above the standard value from the countermeasures obtained as candidates, and removing the countermeasures with low satisfaction, The number of countermeasures to be extracted can be automatically reduced. As a result, it is possible to improve the extraction efficiency of the countermeasure plan and the efficiency of the subsequent work. Further, as a modification, the countermeasure plan with a low satisfaction degree may not be automatically deleted, but the countermeasure plan may be temporarily selected and presented to the designer.
[0121]
In addition, when deciding on an important countermeasure plan at the present time from among the extracted countermeasure plans, similarly, using the past work data, etc., work on the reference value for the current importance level of the countermeasure plan. It is possible to set in advance according to the phase, etc., and to extract a countermeasure plan exceeding the reference value as an important countermeasure plan. In this case, only countermeasures with a current importance level or higher are mechanically extracted from the countermeasure proposals obtained based on functional requirements and non-functional requirements, and countermeasures with relatively low importance. By removing the plan, the number of important countermeasures to be extracted can be automatically reduced.
[0122]
In this case, in particular, compare the current importance of each countermeasure plan within the group for each group of countermeasure proposals having a predetermined relationship such as conflicts and similarities, and make a selection according to the level of importance. Thus, the number of design requirements can be automatically reduced further. As a result, it is possible to increase the extraction efficiency of important countermeasures and increase the efficiency of subsequent operations. Further, as a modification, a countermeasure plan having a relatively high degree of importance may be presented to the designer once without being automatically deleted, and a countermeasure plan to be left as an important countermeasure plan may be selected. .
[0123]
[4-3. Promotion of automation]
In addition, “impact on the realization of functional requirement items by risk items”, “satisfaction of non-functional requirement items by countermeasures”, “important measures at present” For example, it is conceivable that a grade value or the like is given by the designer at the time of creating risk items or countermeasure proposals. Alternatively, an algorithm for calculating a value expressing the degree of influence, the degree of satisfaction, the degree of influence, and the like based on past work data may be created and automatically obtained.
[0124]
Similarly, in the above-described embodiment, each part described as an object to be examined by the designer is automatically determined by a computer by organically combining various types of related data with various statistical methods and analysis methods. Or automatic extraction. By proceeding with such automation, automatic classification of functional requirement items and non-functional requirement items, input, automatic extraction of design requirements such as events such as risk items and countermeasures against them, and automatic selection of important countermeasure plans And automatic extraction of countermeasures to be adopted, automatic determination of countermeasures to be adopted, automatic construction of software architecture that satisfies the countermeasures to be adopted, and the like. Therefore, the method of the present invention automatically extracts design requirements reflecting functional requirements and non-functional requirements by simply inputting requests from customers, etc., and satisfies such design requirements. Software architecture to be built automatically.
[0125]
【The invention's effect】
As described above, according to the present invention, the events that affect the realization of the function requirement items are extracted by comparing the characteristics to be considered in the software design for each function requirement item, and the non-functions are detected for each event. By comparing requirement items individually, design requirements that reflect not only functional requirements but also non-functional requirements can be extracted efficiently, and various non-functional requirements are reflected in the design as the basis for the design. A possible software design requirement extraction support method can be provided.
[0126]
In addition, according to the present invention, design requirements that reflect functional requirements and non-functional requirements are classified and arranged to limit only important design requirements, and software design requirement determination that can efficiently determine design requirements to be adopted It is possible to provide a support method and a software design support method that can efficiently design a software architecture that can cope with various external variations based on design requirements reflecting functional requirements and non-functional requirements. .
[Brief description of the drawings]
FIG. 1 is a flowchart showing an outline of a software design support method to which the present invention is applied together with a data flow.
FIG. 2 is a flowchart showing details of extraction steps of risk items and countermeasures against the risk items in the method shown in FIG. 1 together with a data flow;
FIG. 3 is a flowchart showing details of classification and arrangement of countermeasure proposals and extraction steps of important countermeasure proposals together with a data flow in the method shown in FIG. 1;
4 is a flowchart showing details of an important countermeasure plan relationship extraction step together with a data flow in the method shown in FIG. 1;
FIG. 5 is a flowchart showing details of a decision step of a countermeasure plan to be adopted together with a data flow in the method shown in FIG. 1;
6 is a flowchart showing details of a configuration and operation principle extraction and integration step for realizing a countermeasure plan in the method shown in FIG. 1 together with a data flow.
7 is a data display diagram showing an example of the relationship between important countermeasure plans extracted by the method shown in FIG. 1. FIG.
FIG. 8 is a structural diagram showing an example of a software architecture constructed by the method shown in FIG. 1;
9 is a structural diagram showing an example of a software architecture in which the level of detail of the software architecture shown in FIG. 8 is further increased.
FIG. 10 is a structural diagram showing an example of a software architecture constructed by a conventional method.

Claims (10)

キーボード等の入力操作部と、メモリ等の情報格納部と、入力あるいは格納されている情報を検索し抽出する演算部と、前記演算部によって抽出された情報を表示画面とを有するコンピュータを利用して、設計対象ソフトウェアのアーキテクチャの設計を支援するソフトウェア設計要件抽出支援方法において、
ソフトウェア設計を行う上で考慮すべき品質特性を前記情報格納部内に予め格納しておく品質特性格納ステップと、
前記コンピュータの入力操作部を介して、設計者から記設計対象ソフトウェアの機能要求項目および非機能要求項目の入力を受け付けて、これらをコンピュータの情報格納部内に記録する要求項目受付ステップと、
前記演算部が、前記情報格納部内に記録された各機能要求項目について、予め情報格納部内に格納されている品質特性とを個別に対比させ、その対比結果をコンピュータの表示画面上に表示する機能項目−品質特性表示ステップと、
前記表示画面上に表示された対比結果に基づいて設計者が判断した各機能要求項目の実現に影響するリスクを、設計者から前記入力操作部を介して受け付けるリスク受付ステップと、
前記演算部が、前記入力操作部を介して受け付けた各リスクを、前記情報格納部内に格納されていた非機能要求項目と個別に対比させ、その対比結果をコンピュータの表示画面上に表示するリスク−非機能要求項目表示ステップと、を含むことを特徴とするソフトウェア設計要件抽出支援方法。
A computer having an input operation unit such as a keyboard, an information storage unit such as a memory, a calculation unit that searches for and extracts information that is input or stored, and a display screen that displays information extracted by the calculation unit In the software design requirement extraction support method that supports the design of the design target software architecture,
A quality characteristic storage step for preliminarily storing in the information storage unit the quality characteristics to be considered when performing software design;
A request item receiving step of receiving input of function request items and non-function request items of the design target software from the designer via the input operation unit of the computer, and recording them in the information storage unit of the computer,
A function for the operation unit to individually compare a quality characteristic stored in the information storage unit in advance for each function request item recorded in the information storage unit and to display the comparison result on a display screen of a computer Item-quality characteristic display step;
A risk acceptance step for accepting a risk affecting the realization of each function requirement item determined by the designer based on the comparison result displayed on the display screen from the designer via the input operation unit;
Risk that the arithmetic unit individually compares each risk received via the input operation unit with a non-functional requirement item stored in the information storage unit, and displays the comparison result on the display screen of the computer A non-functional requirement item display step, comprising: a software design requirement extraction support method.
前記情報格納部内に過去のデータに基づいて予め用意した機能要求項目の候補および非機能要求項目の候補を格納しておき、前記要求項目受付ステップに先立ち、前記演算部が、情報格納部内に格納された機能要求項目と非機能要求項目を表示画面に表示するステップを含む、ことを特徴とする請求項1に記載のソフトウェア設計要件抽出支援方法。 Function request item candidates and non-function request item candidates prepared in advance based on past data are stored in the information storage unit, and prior to the request item receiving step, the calculation unit stores the information in the information storage unit. The software design requirement extraction support method according to claim 1 , further comprising a step of displaying the function request item and the non-function request item that are displayed on the display screen . 前記リスク受付ステップが、各リスクについて機能要求項目の実現に対する影響度を受け付けるものであり、前記リスク−非機能表示ステップが、予め設定された基準値以上のリスクを抽出するものである、ことを特徴とする請求項1または請求項2に記載のソフトウェア設計要件抽出支援方法。 The risk acceptance step is to accept the degree of influence on the realization of the function request item for each risk, and the risk-non-function display step is to extract a risk equal to or higher than a preset reference value. The software design requirement extraction support method according to claim 1 or 2, wherein 前記要求項目受付ステップが、各非機能要求項目についてその満足度を受け付けるものであり、前記リスク−非機能要求項目表示ステップが、予め設定された基準値以上の非機能要求項目を抽出して表示するものである、ことを特徴とする請求項1乃至請求項3のいずれかに記載のソフトウェア設計要件抽出支援方法。 The request item accepting step accepts the degree of satisfaction for each non-functional requirement item, and the risk-non-functional requirement item display step extracts and displays a non-functional requirement item equal to or higher than a preset reference value. it is intended to, software design requirement extraction support method according to any one of claims 1 to 3, characterized in that. キーボード等の入力操作部と、メモリ等の情報格納部と、入力あるいは格納されている情報を検索し抽出する演算部と、前記演算部によって抽出された情報を表示画面とを有するコンピュータを利用して、設計対象ソフトウェアの機能要求項目および非機能要求項目に基づいて得られた複数の対応策の分類整理、およびそれに基づく採用すべき1つ以上の対応策の決定を支援するソフトウェア設計要件決定支援方法において、
ソフトウェア設計を行う上で考慮すべき品質特性を前記情報格納部内に予め格納しておく品質特性格納ステップと、
前記コンピュータの入力操作部を介して、設計者から記設計対象ソフトウェアの機能要求項目および非機能要求項目の入力を受け付けて、これらをコンピュータの情報格納部内に記録する要求項目受付ステップと、
前記演算部が、前記情報格納部内に記録された各機能要求項目について、予め情報格納部内に格納されている品質特性とを個別に対比させ、その対比結果をコンピュータの表示画面上に表示する機能項目−品質特性表示ステップと、
前記表示画面上に表示された対比結果に基づいて設計者が判断した各機能要求項目の実現に影響するリスクを、設計者から前記入力操作部を介して受け付けるリスク受付ステップと、
前記演算部が、前記入力操作部を介して受け付けた各リスクを、前記情報格納部内に格 納されていた非機能要求項目と個別に対比させ、その対比結果をコンピュータの表示画面上に表示するリスク−非機能要求項目表示ステップと、
前記リスク−非機能表示ステップにおいて表示画面に表示されたリスク−非機能要求項目に基づいて設計者が用意した対策案を、前記コンピュータの入力操作部を介して受け付けて、これを前記情報格納部内に格納する対策案受付ステップと、
前記情報格納部内の各対策案を表示画面に表示した状態で、設計者から各対策案と重要度を前記入力操作部を介して受け付け、これらを情報格納部に格納する分類受付ステップと、
前記演算部が、前記分類受付ステップで受け付けた各対策案をその重要度に応じて分類整理して表示画面に表示する重要度表示ステップと、
前記重要度表示ステップで表示された重要度の高い各対策案について、設計者からその対策案と関連する他の対策案との関係についての情報を受け付けて情報格納部に格納する関係受付ステップと、
前記演算部が、前記情報格納部に格納されている各対策案を、所定の関係を有する対策案ごとに分類整理して表示画面に表示し、設計者から各グループごとに設計要件の取捨選択情報を受け付けて、前記情報格納部に格納する取捨選択情報受付ステップと、を含むことを特徴とするソフトウェア設計要件決定支援方法。
A computer having an input operation unit such as a keyboard, an information storage unit such as a memory, a calculation unit that searches for and extracts information that is input or stored, and a display screen that displays information extracted by the calculation unit Software design requirement decision support that supports the classification and organization of multiple countermeasures obtained based on the functional requirement items and non-functional requirement items of the design target software, and the decision of one or more countermeasures to be adopted based on the classification and arrangement In the method
A quality characteristic storage step for preliminarily storing in the information storage unit the quality characteristics to be considered when performing software design;
A request item receiving step of receiving input of function request items and non-function request items of the design target software from the designer via the input operation unit of the computer, and recording them in the information storage unit of the computer,
A function for the operation unit to individually compare a quality characteristic stored in the information storage unit in advance for each function request item recorded in the information storage unit and to display the comparison result on a display screen of a computer Item-quality characteristic display step;
A risk acceptance step for accepting a risk affecting the realization of each function requirement item determined by the designer based on the comparison result displayed on the display screen from the designer via the input operation unit;
The arithmetic unit, each risk accepted through the input operation unit, wherein the information storage portion to store to and contrasted individually non-functional requirements item was, and displays the comparison result on the display screen of the computer A risk-non-functional requirement item display step;
The countermeasure plan prepared by the designer based on the risk-non-functional requirement item displayed on the display screen in the risk-non-functional display step is received via the input operation unit of the computer, and this is received in the information storage unit. A countermeasure proposal receiving step to be stored in
In a state where each countermeasure plan in the information storage unit is displayed on the display screen, each countermeasure plan and the importance are received from the designer through the input operation unit, and a classification receiving step for storing these in the information storage unit,
An importance level display step in which the calculation unit classifies and arranges each countermeasure plan received in the classification reception step according to the importance level and displays it on a display screen;
A relationship receiving step for receiving information on the relationship between the countermeasure plan and other countermeasure plans related to the countermeasure plan from the designer for each countermeasure plan having a high importance displayed in the importance display step, and storing the information in the information storage unit; ,
The calculation unit classifies and arranges each countermeasure plan stored in the information storage unit for each countermeasure plan having a predetermined relationship and displays it on the display screen, and selects design requirements for each group from the designer. A software design requirement determination support method comprising: a selection information reception step of receiving information and storing the information in the information storage unit .
前記関係受付ステップは、1つの対応策を採用すると別の対応策の採用が困難になるような相反の関係を受け付けるものであり、前記取捨選択情報受付ステップは、設計者から相反の関係をなくすための対応策を削除するという取捨選択情報を受け付けるものである、ことを特徴とする請求項5に記載のソフトウェア設計要件決定支援方法。 The relationship receiving step receives a conflicting relationship that makes it difficult to adopt another countermeasure when one countermeasure is adopted, and the selection information receiving step eliminates the conflicting relationship from the designer. 6. The software design requirement determination support method according to claim 5, wherein selection information for deleting a countermeasure for deleting is received . 前記関係受付ステップは、1つの対応策を採用すると別の対応策を採用したのと同様になるような類似および/または依存の関係を受け付けるものであり、前記取捨選択情報受付ステップは、設計者から、設計者が指定した対応策に対して類似および依存の関係にある他の対応策を削除するという取捨選択情報を受け付けるものである、ことを特徴とする請求項5または請求項6に記載のソフトウェア設計要件決定支援方法。 The relationship receiving step is to receive a similar and / or dependent relationship that, when one countermeasure is adopted, is the same as another countermeasure is adopted, and the selection information receiving step is a designer 7. The method according to claim 5 , wherein selection information for deleting other countermeasures that are similar and dependent on the countermeasure specified by the designer is received. Software design requirement determination support method. 前記重要度表示ステップは、各対応策の現時点での重要度が予め設定された所定の基準値以上の対応策を表示するものである、ことを特徴とする請求項5乃至請求項7のいずれかに記載のソフトウェア設計要件決定支援方法。 8. The method according to claim 5, wherein the importance level display step displays a countermeasure whose current importance level of each countermeasure is equal to or greater than a predetermined reference value set in advance. 9. The software design requirement determination support method described in the above. 設計対象ソフトウェアのアーキテクチャの設計を支援するソフトウェア設計要件抽出支援プログラムであって、A software design requirement extraction support program that supports the design of the architecture of the target software,
前記キーボード等の入力操作部と、メモリ等の情報格納部と、入力あるいは格納されている情報を検索し抽出する演算部と、前記演算部によって抽出された情報を表示画面とを有するコンピュータに対して、  For a computer having an input operation unit such as a keyboard, an information storage unit such as a memory, a calculation unit that searches and extracts information that is input or stored, and a display screen that displays information extracted by the calculation unit And
ソフトウェア設計を行う上で考慮すべき品質特性を前記情報格納部内に予め格納しておく品質特性格納機能と、  A quality characteristic storage function for preliminarily storing in the information storage unit the quality characteristics to be considered when performing software design;
前記コンピュータの入力操作部を介して、設計者から記設計対象ソフトウェアの機能要求項目および非機能要求項目の入力を受け付けて、これらをコンピュータの情報格納部内に記録する要求項目受付機能と、  A request item receiving function for receiving input of function request items and non-function request items of the design target software from the designer via the input operation unit of the computer, and recording them in the information storage unit of the computer,
前記演算部が、前記情報格納部内に記録された各機能要求項目について、予め情報格納部内に格納されている品質特性とを個別に対比させ、その対比結果をコンピュータの表示画面上に表示する機能項目−品質特性表示機能と、  A function for the operation unit to individually compare the quality requirement items stored in the information storage unit in advance for each function requirement item recorded in the information storage unit, and to display the comparison result on the display screen of the computer Item-quality characteristic display function,
前記表示画面上に表示された対比結果に基づいて設計者が判断した各機能要求項目の実現に影響するリスクを、設計者から前記入力操作部を介して受け付けるリスク受付機能と、  A risk acceptance function that accepts a risk affecting the realization of each function requirement item determined by the designer based on the comparison result displayed on the display screen from the designer via the input operation unit;
前記演算部が、前記入力操作部を介して受け付けた各リスクを、前記情報格納部内に格納されていた非機能要求項目と個別に対比させ、その対比結果をコンピュータの表示画面上に表示するリスク−非機能要求項目表示機能と、を実現させることを特徴とするソフトウェア設計要件抽出支援プログラム。  Risk that the calculation unit individually compares each risk received through the input operation unit with the non-functional requirement item stored in the information storage unit, and displays the comparison result on the display screen of the computer -A software design requirement extraction support program characterized by realizing a non-functional requirement item display function.
設計対象ソフトウェアの機能要求項目および非機能要求項目に基づいて得られた複数の対応策の分類整理、およびそれに基づく採用すべき1つ以上の対応策の決定を支援するソフトウェア設計要件決定支援プログラムであって、A software design requirement determination support program that supports the classification and arrangement of a plurality of countermeasures obtained based on the functional requirement items and non-functional requirement items of the design target software, and the determination of one or more countermeasures to be adopted based on the classification and arrangement. There,
キーボード等の入力操作部と、メモリ等の情報格納部と、入力あるいは格納されている情報を検索し抽出する演算部と、前記演算部によって抽出された情報を表示画面とを有するコンピュータに対して、  A computer having an input operation unit such as a keyboard, an information storage unit such as a memory, a calculation unit that searches and extracts information that is input or stored, and a display screen that displays information extracted by the calculation unit ,
ソフトウェア設計を行う上で考慮すべき品質特性を前記情報格納部内に予め格納しておく品質特性格納機能と、  A quality characteristic storage function for preliminarily storing in the information storage unit the quality characteristics to be considered when performing software design;
前記コンピュータの入力操作部を介して、設計者から記設計対象ソフトウェアの機能要求項目および非機能要求項目の入力を受け付けて、これらをコンピュータの情報格納部内に記録する要求項目受付機能と、  A request item receiving function for receiving input of function request items and non-function request items of the design target software from the designer via the input operation unit of the computer, and recording them in the information storage unit of the computer,
前記演算部が、前記情報格納部内に記録された各機能要求項目について、予め情報格納部内に格納されている品質特性とを個別に対比させ、その対比結果をコンピュータの表示画面上に表示する機能項目−品質特性表示機能と、  A function for the operation unit to individually compare a quality characteristic stored in the information storage unit in advance for each function request item recorded in the information storage unit and to display the comparison result on a display screen of a computer Item-quality characteristic display function,
前記表示画面上に表示された対比結果に基づいて設計者が判断した各機能要求項目の実現に影響するリスクを、設計者から前記入力操作部を介して受け付けるリスク受付機能と、  A risk acceptance function that accepts a risk affecting the realization of each function requirement item determined by the designer based on the comparison result displayed on the display screen from the designer via the input operation unit;
前記演算部が、前記入力操作部を介して受け付けた各リスクを、前記情報格納部内に格納されていた非機能要求項目と個別に対比させ、その対比結果をコンピュータの表示画面上に表示するリスク−非機能要求項目表示機能と、  Risk that the calculation unit individually compares each risk received through the input operation unit with the non-functional requirement item stored in the information storage unit, and displays the comparison result on the display screen of the computer -Non-functional requirement item display function;
前記リスク−非機能表示機能において表示画面に表示されたリスク−非機能要求項目に基づいて設計者が用意した対策案を、前記コンピュータの入力操作部を介して受け付けて、これを前記情報格納部内に格納する対策案受付機能と、  The countermeasure proposal prepared by the designer based on the risk-non-functional requirement item displayed on the display screen in the risk-non-functional display function is received via the input operation unit of the computer, and this is received in the information storage unit The measure proposal reception function to be stored in
前記情報格納部内の各対策案を表示画面に表示した状態で、設計者から各対策案と重要度を前記入力操作部を介して受け付け、前記演算部が、これらを情報格納部に格納する分類受付機能と、  Classification in which each countermeasure plan and importance are received from the designer via the input operation unit in a state where each countermeasure plan in the information storage unit is displayed on the display screen, and the calculation unit stores them in the information storage unit Reception function and
前記演算部が、前記分類受付機能で受け付けた各対策案をその重要度に応じて分類整理して表示画面に表示する重要度表示機能と、  An importance level display function in which the calculation unit classifies and arranges each countermeasure plan received by the classification reception function according to the importance level and displays it on a display screen;
前記重要度表示機能で表示された重要度の高い各対策案について、設計者からその対策案と関連する他の対策案との関係についての情報を受け付けて情報格納部に格納する関係受付機能と、  A relation acceptance function for accepting information about the relation between the countermeasure proposal and other countermeasure proposals related to the countermeasure proposal from the designer for each countermeasure proposal having a high importance displayed by the importance display function; ,
前記演算部が、前記情報格納部に格納されている各対策案を、所定の関係を有する対策案ごとに分類整理して表示画面に表示し、設計者から各グループごとに設計要件の取捨選択情報を受け付けて、前記情報格納部に格納する取捨選択情報受付機能と、をコンピュータに実現させることを特徴とするソフトウェア設計要件抽出支援プログラム。  The calculation unit classifies and arranges each countermeasure plan stored in the information storage unit for each countermeasure plan having a predetermined relationship and displays it on the display screen, and selects design requirements for each group from the designer. A software design requirement extraction support program characterized in that a computer realizes a selection information reception function that receives information and stores it in the information storage unit.
JP2002060443A 2002-03-06 2002-03-06 Software design requirement extraction support method, software design requirement determination support method, software design support method, and program Expired - Fee Related JP3887571B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002060443A JP3887571B2 (en) 2002-03-06 2002-03-06 Software design requirement extraction support method, software design requirement determination support method, software design support method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002060443A JP3887571B2 (en) 2002-03-06 2002-03-06 Software design requirement extraction support method, software design requirement determination support method, software design support method, and program

Publications (2)

Publication Number Publication Date
JP2003256205A JP2003256205A (en) 2003-09-10
JP3887571B2 true JP3887571B2 (en) 2007-02-28

Family

ID=28669801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002060443A Expired - Fee Related JP3887571B2 (en) 2002-03-06 2002-03-06 Software design requirement extraction support method, software design requirement determination support method, software design support method, and program

Country Status (1)

Country Link
JP (1) JP3887571B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4946170B2 (en) * 2006-05-15 2012-06-06 富士電機株式会社 Software requirement specification creation support system and method
JP5420844B2 (en) * 2008-01-24 2014-02-19 東京海上日動火災保険株式会社 Risk assessment form creation system
US20170147715A1 (en) * 2014-04-23 2017-05-25 Nec Corporation Design support device, method, and program record medium
JP2019015995A (en) * 2015-10-16 2019-01-31 日本電気株式会社 Design support system of service system
JP7220095B2 (en) * 2019-02-22 2023-02-09 株式会社日立製作所 Security design planning support device
KR102292816B1 (en) * 2019-12-16 2021-08-26 아주대학교산학협력단 Apparatus and method for providing firefighting training program based on user-centered design
CN113159619A (en) * 2021-05-11 2021-07-23 中电福富信息科技有限公司 Automatic evaluation system and method for video analysis algorithm

Also Published As

Publication number Publication date
JP2003256205A (en) 2003-09-10

Similar Documents

Publication Publication Date Title
US20060155691A1 (en) Drag and drop technique for building queries
US10073827B2 (en) Method and system to generate a process flow diagram
US12099531B2 (en) Information retrieval
US20080065454A1 (en) Database system and information processing system with process code information
JP2005115514A (en) Database search system, search method thereof, and program
US7693699B2 (en) Incremental update of virtual devices in a modeled network
US9557989B2 (en) Comparison and merging of IC design data
JP3887571B2 (en) Software design requirement extraction support method, software design requirement determination support method, software design support method, and program
JP7587781B2 (en) Program, method, information processing device, and system
CN119088449B (en) Method, device, equipment and medium for dynamically updating system demand document in real time
US20040230822A1 (en) Security specification creation support device and method of security specification creation support
US7707211B2 (en) Information management system and method
JP2020181516A (en) Template search system and template search method
JP2019101829A (en) Software component management system, computor, and method
US9582782B2 (en) Discovering a reporting model from an existing reporting environment
JP7760482B2 (en) Software configuration management data creation support device and software configuration management data creation support method
JPH04163671A (en) Drawing retrieving system
JP7131827B2 (en) Data processing method, data processing system, data processing program and data structure
JP2025164456A (en) Computer system and information processing method
US20080082958A1 (en) Method and Computer Program Product for Providing a Representation of Software Modeled by a Model
JP6603637B2 (en) User interface connection device and program
JPH08314949A (en) Data management device
JPH02206868A (en) Job file managing system
JPH09146970A (en) Data retrieval and totalization device
JP2000172678A (en) Device and method for registering document

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061127

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091201

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101201

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees