(57)【要約】【課題】設計されたソフトウェアのアーキテクチャについて設計方針が守られているかどうか効率的に確認するしくみを提供する。【解決手段】評価支援装置１００において、操作処理部１１０は、ソフトウェアの設計書４０１の入力を受ける。設計書４０１は、ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義するデータである。比較処理部１２０は、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義する設計メタモデル２００をメモリ１０２から読み取り、入力された設計書４０１の内容が各設計条件を満たす内容になっているかどうかを判定し、満たされていない設計条件を示す警告情報５０１を生成する。表示処理部１４０は、警告情報５０１を画面に表示する。【選択図】図１
2018147190.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの設計書として、前記ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義する設計書の入力を受けると、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義する設計メタモデルをメモリから読み取り、入力された設計書の内容が、読み取った設計メタモデルに定義されている各設計条件を満たす内容になっているかどうかを判定し、満たされていない設計条件を示す警告情報を生成する比較処理部と、
前記比較処理部により生成された警告情報を画面に表示する表示処理部と
を備える評価支援装置。
【請求項２】
前記複数の設計条件には、各レイヤに含まれる要素の数についての条件も含まれている請求項１に記載の評価支援装置。
【請求項３】
前記比較処理部により生成された警告情報に示されている設計条件ごとに、設計条件が満たされることの重要度を定義する情報を前記メモリから読み取り、読み取った情報に示されている重要度を積算する評価処理部をさらに備え、
前記表示処理部は、前記評価処理部による積算の結果を前記ソフトウェアの設計に対する評価値として前記画面に表示する請求項１または２に記載の評価支援装置。
【請求項４】
比較処理部が、ソフトウェアの設計書として、前記ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義する設計書の入力を受けると、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義する設計メタモデルをメモリから読み取り、入力された設計書の内容が、読み取った設計メタモデルに定義されている各設計条件を満たす内容になっているかどうかを判定し、満たされていない設計条件を示す警告情報を生成し、
表示処理部が、前記比較処理部により生成された警告情報を画面に表示する評価支援方法。
【請求項５】
コンピュータに、
ソフトウェアの設計書として、前記ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義する設計書の入力を受けると、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義する設計メタモデルをメモリから読み取り、入力された設計書の内容が、読み取った設計メタモデルに定義されている各設計条件を満たす内容になっているかどうかを判定し、満たされていない設計条件を示す警告情報を生成する比較処理と、
前記比較処理により生成された警告情報を画面に表示する表示処理と
を実行させる評価支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、評価支援装置、評価支援方法および評価支援プログラムに関するものである。
【背景技術】
【０００２】
特許文献１および特許文献２には、ＵＭＬモデルの品質を検証するための技術が記載されている。「ＵＭＬ」は、Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅの略語である。
【０００３】
特許文献３には、ソフトウェアの評価を行うための技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８６０６６号公報
【特許文献２】特開２０１５−４１２８５号公報
【特許文献３】特開２０１４−５９７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ソフトウェア開発の現場では、既存のソフトウェア資産を再利用しつつ新たにソフトウェアを開発する場合に、既存のソフトウェアが修正されることが多い。しかし、そのような修正によって、既存のソフトウェア資産の使用性、保守性および移植性といった品質、あるいは、再利用性が低下することがある。その要因として、従来技術には、ソフトウェアの修正が及ぼす影響を効率的に評価するしくみがないことが挙げられる。特に、ＵＭＬ等を用いて行われるソフトウェアの設計において、ソフトウェアの品質および再利用性を低下させないためには、設計されたソフトウェアのアーキテクチャについて設計方針が守られているかどうか効率的に確認するしくみが必要である。
【０００６】
本発明は、設計されたソフトウェアのアーキテクチャについて設計方針が守られているかどうか効率的に確認するしくみを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る評価支援装置は、
ソフトウェアの設計書として、前記ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義する設計書の入力を受けると、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義する設計メタモデルをメモリから読み取り、入力された設計書の内容が、読み取った設計メタモデルに定義されている各設計条件を満たす内容になっているかどうかを判定し、満たされていない設計条件を示す警告情報を生成する比較処理部と、
前記比較処理部により生成された警告情報を画面に表示する表示処理部とを備える。
【発明の効果】
【０００８】
本発明によれば、設計されたソフトウェアのアーキテクチャについて設計方針が守られているかどうか効率的に確認するしくみを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る評価支援装置の構成を示すブロック図。
【図２】実施の形態１に係る評価支援装置の動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態は、部分的に実施されても構わない。
【００１１】
実施の形態１．
本実施の形態について、図１および図２を用いて説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係る評価支援装置１００の構成を説明する。
【００１３】
評価支援装置１００は、コンピュータである。評価支援装置１００は、プロセッサ１０１を備えるとともに、メモリ１０２、入力装置１０３およびディスプレイ１０４といった他のハードウェアを備える。プロセッサ１０１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１４】
評価支援装置１００は、機能要素として、操作処理部１１０と、比較処理部１２０と、評価処理部１３０と、表示処理部１４０とを備える。操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能は、ソフトウェアにより実現される。
【００１５】
プロセッサ１０１は、各種処理を行うＩＣである。「ＩＣ」は、Ｉｎｔｅｇｒａｔｅｄ
Ｃｉｒｃｕｉｔの略語である。プロセッサ１０１は、例えば、ＣＰＵである。「ＣＰＵ」は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００１６】
メモリ１０２には、設計メタモデル２００がデータベース形式で記憶される。設計メタモデル２００は、レイヤ構造テーブル２０１、要素分類テーブル２０２、レイヤ間依存関係テーブル２０３、要素分類間依存関係テーブル２０４、レイヤ内要素個数テーブル２０５およびレイヤ内配置個数テーブル２０６といった各種テーブルを有する。なお、設計メタモデル２００は、テキスト形式等、データベース形式以外の形式で記憶されてもよい。
【００１７】
メモリ１０２には、重要度データベース３００が実装される。重要度データベース３００には、重要度情報３０１がテーブル形式で格納される。すなわち、メモリ１０２には、重要度情報３０１が記憶される。なお、重要度情報３０１は、テキスト形式等、テーブル形式以外の形式で記憶されてもよい。
【００１８】
メモリ１０２は、例えば、フラッシュメモリまたはＲＡＭである。「ＲＡＭ」は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。
【００１９】
入力装置１０３は、設計書４０１を入力するために用いられる。入力装置１０３は、例えば、マウス、キーボードまたはタッチパネルである。
【００２０】
ディスプレイ１０４は、警告情報５０１および設計品質評価報告書５０２を表示するために用いられる。ディスプレイ１０４は、例えば、ＬＣＤである。「ＬＣＤ」は、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略語である。
【００２１】
評価支援装置１００は、ハードウェアとして、通信装置を備えていてもよい。
【００２２】
通信装置は、データを受信するレシーバおよびデータを送信するトランスミッタを含む。通信装置は、例えば、通信チップまたはＮＩＣである。「ＮＩＣ」は、Ｎｅｔｗｏｒｋ
Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００２３】
メモリ１０２には、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能を実現するプログラムである評価支援プログラムが記憶されている。評価支援プログラムは、プロセッサ１０１に読み込まれ、プロセッサ１０１によって実行される。メモリ１０２には、ＯＳも記憶されている。「ＯＳ」は、Ｏｐｅｒａｔｉｎｇ
Ｓｙｓｔｅｍの略語である。プロセッサ１０１は、ＯＳを実行しながら、評価支援プログラムを実行する。なお、評価支援プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２４】
評価支援プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、フラッシュメモリまたはＨＤＤである。「ＨＤＤ」は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。補助記憶装置に記憶されている評価支援プログラムおよびＯＳは、メモリ１０２にロードされ、プロセッサ１０１によって実行される。
【００２５】
設計メタモデル２００および重要度情報３０１の少なくともいずれかは、補助記憶装置に記憶されていてもよい。
【００２６】
評価支援装置１００は、プロセッサ１０１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、評価支援プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１０１と同じように、各種処理を行うＩＣである。
【００２７】
操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の処理の結果を示す情報、データ、信号値および変数値は、メモリ１０２、補助記憶装置、または、プロセッサ１０１内のレジスタまたはキャッシュメモリに記憶される。
【００２８】
評価支援プログラムは、磁気ディスクおよび光ディスクといった可搬記録媒体に記憶されてもよい。
【００２９】
＊＊＊動作の説明＊＊＊
図１および図２を参照して、本実施の形態に係る評価支援装置１００の動作を説明する。評価支援装置１００の動作は、本実施の形態に係る評価支援方法に相当する。
【００３０】
図２のステップＳ１１において、操作処理部１１０は、入力装置１０３を用いて、ソフトウェアの設計書４０１の入力を受ける。設計書４０１は、ソフトウェアの設計において個別に設計される複数の要素をグループ分けし、各グループをレイヤとして定義するとともに、レイヤ間の依存関係を定義するデータである。設計書４０１は、任意の形式で記述されていてよいが、本実施の形態ではＵＭＬで記述されている。ＵＭＬでは、レイヤおよび要素分類の情報がステレオタイプで記述される。
【００３１】
図２のステップＳ１２において、比較処理部１２０は、操作処理部１１０で設計書４０１の入力を受けると、設計メタモデル２００をメモリ１０２から読み取る。設計メタモデル２００は、少なくともレイヤ間の依存関係についての条件を含む複数の設計条件を定義するデータである。本実施の形態では、当該複数の設計条件には、各レイヤに含まれる要素の数についての条件も含まれている。本実施の形態では、当該複数の設計条件には、さらに、レイヤ構造についての条件、要素分類についての条件、要素分類間の依存関係についての条件、および、各レイヤ内の配置可能個数についての条件も含まれている。要素分類としては、バウンダリ、コントロールおよびエンティティ等がある。レイヤ構造についての条件は、レイヤ構造テーブル２０１によって定義されている。要素分類についての条件は、要素分類テーブル２０２によって定義されている。レイヤ間の依存関係についての条件は、レイヤ間依存関係テーブル２０３によって定義されている。要素分類間の依存関係についての条件は、要素分類間依存関係テーブル２０４によって定義されている。各レイヤに含まれる要素の数についての条件は、レイヤ内要素個数テーブル２０５によって定義されている。各レイヤ内の配置可能個数についての条件は、レイヤ内配置個数テーブル２０６によって定義されている。比較処理部１２０は、入力された設計書４０１の内容が、読み取った設計メタモデル２００に定義されている各設計条件を満たす内容になっているかどうかを判定する。すべての設計条件が満たされていれば、ステップＳ１３の処理が行われる。満たされていない設計条件が１つでもあれば、ステップＳ１４の処理が行われる。ここで、レイヤ間の依存関係、および、要素分類間の依存関係としては、包含“ｉｎｃｌｕｄｅ”および拡張“ｅｘｔｅｎｄ”等が想定される。各レイヤに含まれる要素の数、および、各レイヤ内の配置可能個数としては、インタフェース数およびステート数等が想定される。レイヤ間の依存関係、要素分類間の依存関係、各レイヤに含まれる要素の数、および、各レイヤ内の配置可能個数についての条件は、設計方針として設計メタモデル２００で示されている。前回と今回の設計メタモデル２００とが比較されることで、各条件が満たされているかどうか判定される。一例としてＵＭＬのステレオタイプが判定に使用される。
【００３２】
図２のステップＳ１３において、表示処理部１４０は、ディスプレイ１０４を用いて、すべての設計条件が満たされていることを示すメッセージを画面に表示する。そして、評価支援装置１００の動作が終了する。
【００３３】
図２のステップＳ１４において、比較処理部１２０は、満たされていない設計条件を示す警告情報５０１を生成する。
【００３４】
図２のステップＳ１５において、評価処理部１３０は、比較処理部１２０により生成された警告情報５０１に示されている設計条件ごとに、重要度情報３０１をメモリ１０２から読み取り、読み取った重要度情報３０１を警告情報５０１に付加する。重要度情報３０１は、設計条件ごとに、設計条件が満たされることの重要度を定義する情報である。具体的には、重要度情報３０１は、設計メタモデル２００の項目ごとの重要度を持ち、設計メタモデル２００の各テーブルのリファクタリングに対する重要度を保持する情報である。評価処理部１３０は、さらに、読み取った重要度情報３０１に示されている重要度を積算する。そして、評価処理部１３０は、積算の結果をソフトウェアの設計に対する評価値として示す設計品質評価報告書５０２を生成する。例えば、レイヤ間の依存関係についての条件と、各レイヤに含まれる要素の数についての条件との２つの設計条件が満たされておらず、前者の条件に対して設定された重要度が１、後者の条件に対して設定された重要度が４であるとする。この場合、１＋４＝５がソフトウェアの設計に対する評価値として算出される。
【００３５】
図２のステップＳ１６において、表示処理部１４０は、ディスプレイ１０４を用いて、比較処理部１２０により生成された警告情報５０１と、評価処理部１３０により生成された設計品質評価報告書５０２とを画面に表示する。本実施の形態では、画面に表示される警告情報５０１に重要度情報３０１が付加されているが、必須ではない。すなわち、変形例として、表示処理部１４０は、ステップＳ１４で生成された警告情報５０１をそのまま画面に表示してもよい。また、別の変形例として、表示処理部１４０は、警告情報５０１と設計品質評価報告書５０２とのうち、いずれか一方のみを画面に表示してもよい。
【００３６】
なお、操作処理部１１０および表示処理部１４０は、設計メタモデル２００および重要度データベース３００のテーブルを編集したり、操作したりするためのユーザインタフェースも提供する。
【００３７】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、設計されたソフトウェアのアーキテクチャについて設計方針が守られているかどうか効率的に確認するしくみを提供することができる。
【００３８】
本実施の形態では、特に、既存のソフトウェア資産を再利用しつつ新たにソフトウェアを開発する場合に、ソフトウェアの設計と、既存の設計メタモデル２００との差異を評価し、既存のソフトウェアの修正がどの程度の影響を持つかを判定することができる。
【００３９】
本実施の形態によれば、設計者が、あらかじめ決定された設計方針を示す設計メタモデル２００によりモデルを評価しながら、モデルを編集することが可能になる。その結果、設計レビューおよびリファクタリングを効率的に実施することができる。
【００４０】
本実施の形態では、操作処理部１１０および表示処理部１４０により提供されるユーザインタフェースを介して、設計者による設計メタモデル２００の編集と設計メタモデル２００の項目ごとの重要度の編集とが可能である。設計メタモデル２００には、レイヤ構造、要素分類、レイヤ間依存関係、要素分類間依存関係、レイヤ内要素個数およびレイヤ内配置個数といった各種項目についての設計方針が示されている。重要度情報３０１には、設計メタモデル２００の項目ごとの重要度と設計メタモデル２００のリファクタリングに対する重要度とが示されている。比較処理部１２０は、ＵＭＬで記述された設計書４０１と設計メタモデル２００とを比較し、設計方針に対する差分を抽出する。評価処理部１３０は、入力された設計書４０１と設計方針との差分に重要度情報３０１が示す重要度を設定する。表示処理部１４０は、入力された設計書４０１と設計方針との差分に重要度が設定された警告一覧を警告情報５０１として出力する。このような構成および動作により、ソフトウェアの流用開発または不具合対応によりソフトウェアの修正が繰り返されても、ソフトウェアの設計が設計方針から外れないように監視することができる。
【００４１】
本実施の形態では、操作処理部１１０および表示処理部１４０により提供されるユーザインタフェースを介して、設計者による設計メタモデル２００の編集と設計メタモデル２００の項目ごとの重要度の編集とが可能である。設計メタモデル２００には、レイヤ構造、要素分類、レイヤ間依存関係、要素分類間依存関係、レイヤ内要素個数およびレイヤ内配置個数といった各種項目についての設計方針が示されている。重要度情報３０１には、設計メタモデル２００の項目ごとの重要度と設計メタモデル２００のリファクタリングに対する重要度とが示されている。比較処理部１２０は、ＵＭＬで記述された設計書４０１と設計メタモデル２００とを比較し、設計方針に対する差分を抽出する。評価処理部１３０は、入力された設計書４０１と設計方針との差分に重要度情報３０１が示す重要度を設定する。そして、評価処理部１３０は、重要度を設定する度に、重要度を積算することでソフトウェアの設計の品質を定量評価する。表示処理部１４０は、定量評価の結果を設計品質評価報告書５０２として出力する。このような構成および動作により、ソフトウェアの設計の品質を定量的に評価できる。
【００４２】
＊＊＊他の構成＊＊＊
本実施の形態では、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能がソフトウェアにより実現されるが、変形例として、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能の一部が専用の電子回路により実現され、残りがソフトウェアにより実現されてもよい。
【００４３】
専用の電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡまたはＡＳＩＣである。「ＧＡ」は、Ｇａｔｅ  Ａｒｒａｙの略語である。「ＦＰＧＡ」は、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。「ＡＳＩＣ」は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。
【００４４】
プロセッサ１０１、メモリ１０２および専用の電子回路を、総称して「プロセッシングサーキットリ」という。つまり、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能がソフトウェアにより実現されるか、ソフトウェアとハードウェアとの組み合わせにより実現されるかに関わらず、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の機能は、プロセッシングサーキットリにより実現される。
【００４５】
評価支援装置１００の「装置」を「方法」に読み替え、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の「部」を「工程」に読み替えてもよい。あるいは、評価支援装置１００の「装置」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な媒体」に読み替え、操作処理部１１０、比較処理部１２０、評価処理部１３０および表示処理部１４０の「部」を「手順」または「処理」に読み替えてもよい。
【符号の説明】
【００４６】
１００  評価支援装置、１０１  プロセッサ、１０２  メモリ、１０３  入力装置、１０４  ディスプレイ、１１０  操作処理部、１２０  比較処理部、１３０  評価処理部、１４０  表示処理部、２００  設計メタモデル、２０１  レイヤ構造テーブル、２０２  要素分類テーブル、２０３  レイヤ間依存関係テーブル、２０４  要素分類間依存関係テーブル、２０５  レイヤ内要素個数テーブル、２０６  レイヤ内配置個数テーブル、３００  重要度データベース、３０１  重要度情報、４０１  設計書、５０１  警告情報、５０２  設計品質評価報告書。
【図１】
2018147190.tif 000003
【図２】
2018147190.tif 000004