(57)【要約】【課題】仕様変更や差分開発において設計文章を変更する際に、正確な影響範囲の分析を行う。【解決手段】予め用意した設計文章型定義を用い設計文章から設計文章要素を抽出する設計文章変換手段と、文章型定義に対して設計文章間の整合性を規定した検証ルールと、設計文章要素と検証ルールから設計文章間の整合性が取れるかを検証する設計文章検証手段と、設計文章間の整合性の検証結果を任意の形式に合わせ変換する検証結果変換手段と、変換された形式に従い結果をユーザーに通知するための影響範囲出力手段を備えることで、明示的な参照関係以外の影響範囲の分析、および多重整合性違反を加味した影響範囲分析を解決する。【選択図】  図１
2014222458.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが定義入力したシステムのモデルを記述する設計文章の構造を定義する設計文章型定義データ記憶部と、
前記設計文章型定義を用いて、ユーザが入力した設計文章を設計文章要素に変換する設計文章変換部と、
設計文章要素データを記憶する設計文章要素データ記憶部と、
設計文章間の整合性を前記設計文章型定義に従った前記設計文章要素間の整合性をルールとして定義する検証ルールを記憶する検証ルール記憶部と、
ユーザインタフェースを提示して、設計文章の変更、分析対象文章、適用検証ルール、および影響範囲分析処理の開始の指示を受け付ける影響範囲分析実行入力部と、
前記設計文章の変更に対する前記分析対象文章への影響範囲を、前記適用検証ルールを満足しない違反数を設計文章要素単位に検証する設計文章検証部と、
前記設計文章検証部が検出した検証結果を設計文章の変更に対する影響範囲として出力する影響範囲出力部と、
を備えることを特徴とする影響範囲の分析確認装置。
【請求項２】
前記影響範囲分析実行入力部は、前記設計文章要素データ記憶部から既登録の設計文章要素データを読み出して、ユーザからの変更を受付け、
前記検証ルール記憶部から既登録の検証ルールの一覧を表示して、ユーザから適用検証ルールの選択を受付け、及び
前記設計文章要素データ記憶部に既登録の設計文章要素データの中より、影響範囲の対象となる分析対象文章を選択するユーザ指定を受付けることを特徴とする請求項１に記載の影響範囲の分析確認装置。
【請求項３】
前記設計文章検証部により検出した設計文章間の整合性の違反数を任意の出力形態に合わせる検証結果変換部を更に備え、
前記検証結果変換部が変換した検証結果を設計文章の変更に対する影響範囲として影響範囲出力部が出力することを特徴とする請求項１に記載の影響範囲の分析確認装置。
【請求項４】
前記影響範囲分析実行入力部は、前記検証ルール記憶部から既登録の検証ルールデータを読み出して、ユーザからの変更を受付け、
前記設計文章検証部は、前記影響範囲分析実行入力部で変更された検証ルールを用いた影響範囲の分析処理を行うことを特徴とする請求項１に記載の影響範囲の分析確認装置。
【請求項５】
前記影響範囲分析実行入力部は、更にユーザより多重影響分析階層上限数の指定を受付けて、
前記設計文章検証部は、検証ルールを満たしていない検証結果がもたらす影響を階層的に検出して階層毎の整合性違反件数として検出することを特徴とする請求項１に記載の影響範囲の分析確認装置。
【請求項６】
前記設計文章型定義データ記憶部が記憶する設計文章型定義データは設計文章型に対する重みを定義する項目を更に有し、前記設計文章要素データは設計文章要素に対する重みを定義する項目を更に有し、前記検証ルールは検証ルールに対する重みを定義する項目を更に有し、
前記設計文章検証部は、前記設計文章型に対する重みと、前記設計文章要素に対する重みと、前記検証ルールに対する重みを用い、影響範囲の分析を重み付け評価することを特徴とする請求項１に記載の影響範囲の分析確認装置。
【請求項７】
ユーザが定義入力したシステムのモデルを記述する設計文章の構造を定義する設計文章型定義データ記憶部と、
前記設計文章型定義を用いて、ユーザが入力した設計文章を設計文章要素に変換する設計文章変換部と、
設計文章要素データを記憶する設計文章要素データ記憶部と、
設計文章間の整合性を前記設計文章型定義に従った前記設計文章要素間の整合性をルールとして定義する検証ルールを記憶する検証ルール記憶部と、
ユーザインタフェースを提示して、設計文章の変更、分析対象文章、適用検証ルール、および変更パターンの登録の指示を受け付けて、変更パターンデータ記憶部へ登録する変更パターン入力部と、
ユーザインタフェースより、影響範囲の分析処理の自動検証の指示を受付けて開始し、前記設計文章の変更に対する前記分析対象文章への影響範囲を、前記適用検証ルールを満足しない違反数を設計文章要素単位に検証し、検出した検証結果を設計文章の変更に対する影響範囲として変更パターンに対応させて検証結果データ記憶部へ登録する自動検証実行部と、
を備えることを特徴とする影響範囲の分析自動実行装置。
【請求項８】
前記変更パターン入力部は、前記設計文章要素データ記憶部から既登録の設計文章要素データを読み出して、ユーザからの変更を受付け、
前記検証ルール記憶部から既登録の検証ルールの一覧を表示して、ユーザから適用検証ルールの選択を受付け、
前記設計文章要素データ記憶部に既登録の設計文章要素データの中より、影響範囲の対象となる分析対象文章を選択するユーザ指定を受付け、及び
以上のユーザ指示内容を変更パターンとして登録する指示に従って、変更パターンデータ記憶部へ登録することを特徴とする請求項７に記載の影響範囲の分析自動実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア設計文書の変更に対する影響範囲の分析確認装置、及び分析自動実行装置に関する。
【背景技術】
【０００２】
ソフトウェアの構造や処理仕様が記載される設計文書は、動作するソースコードを作成する指針となる重要なドキュメントである。設計文書に抜け漏れや矛盾など不具合があると、それを元にして作成されたソースコードにバグが埋め込まれることになり、ソフトウェア品質の低下や修正のために開発工程遅延に繋がる恐れがある。
【０００３】
従来の紙に書かれた設計文書を用いると、書き手の意図した情報を、読み手に誤解なく伝達するコミュニケーションの際にエラーが発生するリスクが高まる問題点を改善する手法として、またソフトウェア品質向上およびコスト低減を目的として、モデルベース開発(ＭＢＤ)技術を組込みソフトウェア開発などへの適用が増えている。
【０００４】
ソフトウェアの開発では、抜け漏れや矛盾などがない整合性がとれた設計文章が作成されても、開発途中での仕様変更や、設計文章を改変し開発を行う差分開発の場合、整合性のとれた設計文章を改変する必要が生じる。一つの仕様変更は複数の設計文章に影響を与えることがあるが、設計文章間の関係は複雑な依存関係を持っており、その影響範囲が分からず、想定外の開発遅延を発生させることがある。
【０００５】
特許文献１には、ソフトウェア設計文章の変更に対する影響を知る手段として、ソフトウェア設計文章に対して更新通知を設定することで、設計資産の参照先の設計資産が更新された場合に、更新の影響を受ける設計資産の開発者に更新を通知する手法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１７２２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１が開示する技術では、設計文章間の関係に明示的な参照関係を設定することで影響範囲分析を行うことを可能としている。しかし、仕様変更や差分開発等の状況によっては、設計文章間に明示的な参照関係が存在する場合でも、一つの設計文章の変更が参照関係先に影響を与えないことがあり、明示的な参照関係のみでは、正しい影響範囲の分析が困難である。
【０００８】
また、仕様変更や差分開発の状況によっては、それまで設計文章間の整合性を保つために必要であった検証内容が変更になることがあり、明示的な参照関係のみでは影響範囲の分析に不要な参照関係を外すことが難しく検証内容の変更に応じた正しい影響範囲の分析が困難である。
【０００９】
また、上記技術では、参照関係の多重整合性違反の検証を可能としているが、参照関係以外の整合性違反が発生しても、その結果を加味した影響範囲の分析を行うことができない。正確な影響範囲分析を行うためには、全ての整合性の検証内容を加味した影響範囲の分析を行う必要がある。
【００１０】
また、上記技術では、設計文章そのものが変更にならず整合性の検証内容そのものが変更になるような状況においては、参照関係を設計文章一つ一つに再設定する必要があり、正しい影響範囲の分析が困難である。
【００１１】
また、上記技術では影響範囲を分析する時点で、最新の状況に合わせて検証を行う必要があり、参照関係が多くなった場合に影響範囲の分析をリアルタイムにユーザに通知することが困難である。一般的なソフトウェア開発において、仕様変更や差分開発での設計文章の変更に対する影響分析にかける時間は短いため、ユーザからの影響範囲の分析指示にリアルタイムに応答を返す必要がある。
【００１２】
本発明では、明示的な参照関係以外の影響範囲の分析、および多重整合性違反を加味した影響範囲分析を解決することを目的とする。
また、リアルタイムの影響範囲の分析結果応答を解決することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明では、ユーザが定義入力したシステムのモデルを記述する設計文章の構造を定義する設計文章型定義データ記憶部と、前記設計文章型定義を用いて、ユーザが入力した設計文章を設計文章要素に変換する設計文章変換部と、設計文章要素データを記憶する設計文章要素データ記憶部と、設計文章間の整合性を前記設計文章型定義に従った前記設計文章要素間の整合性をルールとして定義する検証ルールを記憶する検証ルール記憶部と、ユーザインタフェースを提示して、設計文章の変更、分析対象文章、適用検証ルール、および影響範囲分析処理の開始の指示を受け付ける影響範囲分析実行入力部と、前記設計文章の変更に対する前記分析対象文章への影響範囲を、前記適用検証ルールを満足しない違反数を設計文章要素単位に検証する設計文章検証部と、前記設計文章検証部が検出した検証結果を設計文章の変更に対する影響範囲として出力する影響範囲出力部とを備えることを特徴とする影響範囲の分析確認装置を構成した。
【００１４】
また、上記課題を解決するために本発明では、ユーザが定義入力したシステムのモデルを記述する設計文章の構造を定義する設計文章型定義データ記憶部と、前記設計文章型定義を用いて、ユーザが入力した設計文章を設計文章要素に変換する設計文章変換部と、設計文章要素データを記憶する設計文章要素データ記憶部と、設計文章間の整合性を前記設計文章型定義に従った前記設計文章要素間の整合性をルールとして定義する検証ルールを記憶する検証ルール記憶部と、ユーザインタフェースを提示して、設計文章の変更、分析対象文章、適用検証ルール、および変更パターンの登録の指示を受け付けて、変更パターンデータ記憶部へ登録する変更パターン入力部と、ユーザインタフェースより、影響範囲の分析処理の自動検証の指示を受付けて開始し、前記設計文章の変更に対する前記分析対象文章への影響範囲を、前記適用検証ルールを満足しない違反数を設計文章要素単位に検証し、検出した検証結果を設計文章の変更に対する影響範囲として変更パターンに対応させて検証結果データ記憶部へ登録する自動検証実行部とを備えることを特徴とする影響範囲の分析自動実行装置を構成した。
【発明の効果】
【００１５】
本発明によれば、検証ルールを用いた設計文書の変更に対する影響範囲の分析が可能となり、より正確な結果を求めることが可能となる。また、適用する検証ルールの選択や、検証ルール自体の変更に対する分析も可能としており、開発状況に応じた影響範囲分析が可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る影響範囲分析装置の概略構成を示すブロック図である。
【図２】本発明の一実施形態に係る影響範囲分析入力画面の例を示す図である。
【図３】本発明の一実施形態に係る設計文章検証部における整合性違反数を算出する処理を示すフローチャートである。
【図４】本発明の一実施形態に係る設計文章検証部における多重整合性違反数を算出する処理を示すフローチャートである。
【図５】本発明の一実施形態に係る設計文章検証部における検証ルール変更に対する整合性違反数を算出する処理を示すフローチャートである。
【図６】本発明の一実施形態に係る検証ルールデータのテーブル構成の一例を示す図である。
【図７】本発明の一実施形態に係る設計文章要素データの一例を示す図である。
【図８】本発明の一実施形態に係る設計文章要素データの一例を示す図である。
【図９】本発明の一実施形態に係る検証結果変換部の処理を示すフローチャートである。
【図１０】本発明の一実施形態に係る設計文章の変更に対する影響範囲分析処理の出力画面の一例を示す図である。
【図１１】本発明の一実施形態に係る設計文章の変更に対する多重影響範囲分析処理の出力画面の一例を示す図である。
【図１２】本発明の一実施形態に係る検証ルールの変更に対する影響範囲分析処理の出力画面の一例を示す図である。
【図１３】本発明の第二の実施形態に係る影響範囲分析自動実行装置の概略構成を示すブロック図である。
【図１４】本発明の第二の実施形態に係る変更パターン入力画面の一例を示す図である。
【図１５】本発明の第二の実施形態に係る自動検証実行部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１８】
図１は、本発明の一実施形態に関わるソフトウェア設計文書の変更に対する影響範囲の分析確認装置１００の構成例を示す図である。
【００１９】
影響範囲の分析確認装置１００は、設計文章間の変更に対する影響範囲分析を支援する装置であり、ＣＰＵ、メモリなどより成る中央演算処理装置１１０、キーボード、マウスなどより成る入力装置１２０、ＣＲＴディスプレイなどより成る出力装置１３０、記憶装置１４０、及び通信装置１５０を備えている。通信装置１５０は、ネットワーク２００に接続され、ネットワーク２００を介して外部記憶装置２１０、外部演算装置２２０と接続されている。
【００２０】
中央演算処理装置１１０は、記憶装置１４０に記憶された各種プログラム(図示せず)をダウンロードして実行することにより、以下の各種機能を実現する。中央演算処理装置１１０には、設計文章間の整合性をルールとして入力装置１２０より入力されたデータを受付けて記憶装置１４０へ格納するための検証ルール入力部１１１０と、設計文章の構造を設計文章型定義として入力されたデータを受付けて記憶装置１４０へ格納するための設計文章型定義入力部１１２０と、設計文章をモデルとしてユーザが入力するために、入力装置１２０にユーザインタフェースを表示して、ユーザ入力を受付ける設計文章入力部１１３０と、設計文章入力部１１３０により受付けられたユーザ入力の設計文章を設計文章型定義に合わせて設計文章の要素単位に分解し意味を付加するための設計文章変換部１１４０と、設計文章の変更、設計文章型定義の変更、検証ルールの変更に対する影響範囲の分析処理内容をユーザが設定した実行指示を受付けるための影響範囲分析実行入力部１１５０と、記憶装置１４０に記憶されている設計文章要素が影響範囲分析実行入力部１１５０により入力された設計文章の変更内容により受ける影響範囲の大きさを検証する設計文章検証部１１６０と、設計文章検証部１１６０により検証された影響範囲の大きさの検証結果を所定の形式に変換する検証結果変換部１１７０と、検証結果変換部１１７０により生成された検証結果を出力装置１３０上のユーザインタフェースに出力する影響範囲出力部１１８０とを備える。
【００２１】
なお、本実施例における中央演算処理装置１１０内の実行部は全て同一の装置内に実装される必要はなく、例えば同じ開発プロジェクトに属するそれぞれ別の装置(外部演算装置２２０)内に実装される形式であっても適用可能である。この場合には、これらの処理は同じ開発プロジェクト内で共通に使用されるデータベースを外部記憶装置２１０に構成して、共通にアクセスする運用形式となる。
【００２２】
記憶装置１４０には、検証ルール入力部１１１０により入力装置１２０から入力された設計文章間の整合性ルールデータが格納された検証ルールデータ１４１０と、設計文章型定義入力部１１２０により入力装置１２０から入力された設計文章の構造の型定義データが格納された設計文章型定義データ１４２０と、設計文章変換部１１４０により生成された設計文章要素データ１４３０と、ある設計文章の変更・追加・削除、または検証ルールの変更などに伴ってその影響範囲分析の結果が格納された影響範囲分析結果１４４０とを記憶する領域を有する。
【００２３】
なお、本実施例における記憶装置１４０内のデータは、単一の影響範囲分析確認装置１００においてソフトウェア設計文書を開発して、分析を行なう場合には全てのデータを記憶装置１４０内に格納する例が考えられる。しかし、一般に各種組込みシステムの設計・開発プロジェクトの場合には、関係する多数の装置がネットワークを介して接続された構成となる。その場合には、例えば、同じ設計・開発プロジェクト内で共通となるデータベースを外部記憶装置２１０に構成して、設計・開発プロジェクト内の全ての装置からアクセス可能とすることが考えられる。この場合には、各影響範囲分析確認装置１００内で作成・変更されて、記憶装置１４０に記録された検証ルールデータ１４１０、設計文章型定義データ１４２０、および設計文章要素データ１４３０は、その後、外部記憶装置２１０のデータベースへ登録されて、全ての装置から共通にアクセスされる。
【００２４】
本実施例のソフトウェア設計文章の変更に対する影響範囲の分析確認装置１００が対象とする設計文章データの表現形式は、汎用モデル(例えばＵＭＬ等)だけではなく、特定の領域の問題を解決するために設計されたドメイン特化(独自に記法等を定義)モデルも対象とする。
【００２５】
図２は、ソフトウェア開発者が、例えば自らが開発した設計文章に変更を加えることにより、その変更がその開発者が関わるＸプロジェクトにおいて既に作成された全ての設計文章に対して、どの設計文章に影響を及ぼすかを検証する際に使用する影響範囲分析入力画面３１００の例である。開発者は、設計文書表示画面３１１０に変更を加える設計文章を呼び出して、画面上で設計文章を変更して、影響範囲を調べる対象である分析対象文章欄３１２０にＸプロジェクト全文章を指定して、及び例えばＸプロジェクト内で取り決められている適用ルール３１３０としてルール１，３を指定して、画面下段の「文章変更影響分析」釦３１５０をクリックすることで分析処理を実行させる。
【００２６】
本実施例の設計文章変更の影響分析確認装置１００において、分析処理を実行するに先立ち、検証ルール、および設計文章型定義を図示しない入力画面より入力して登録しておく。
【００２７】
検証ルールは、例えば製品開発プロジェクトを立ち上げる際に、製品毎に、またはプロジェクトに対応して、それに関わる全ての設計文章間に共通に取り決められる規則を記述したものである。例えば、ＸＭＬ(Extensibｌe Markup Language)文書のスキーマ定義言語、ＱＶＴ(Queries Views Transformations)言語などで記載できるものであれば、自由に規則を記載することを許可している。図６に検証ルールデータを登録した記憶装置１４０の検証ルールデータテーブル１４１０の構成例を示す。検証ルールデータテーブル１４１０は、ＩＤ１４１１と、名称１４１２と、検証式１４１３のデータ項目を有する。検証式１４１３の中の記載で、Typeとは、以下に説明する設計文章型のことである。
【００２８】
検証ルールは、ソフトウェア開発システムに厳密性が求められるところは特に詳細に決められる。製品に固有のルールがある。プロジェクト毎に決められる。設計文章型を引用して、検証式が記載される。
例えば、エントリ１４１５は、ＩＤ「１」を持ち、名称「ルール１」を持ち、検証式「Typeが“A設計文章”の“設定”に該当する全ての要素は、“C設計文章”の“word”に登録された要素名と一致すること」を持つことを示している。事例では、検証ルールを自然言語で示しているが、本実施例においては、登録される検証ルールは設計文章型定義との対応が可能なプログラミング言語であれば特定の言語に依存しないものである。
【００２９】
設計文章型は、ＯＭＧ(Object Management Group)が提案するＭＯＦ(Meta-Object Faciｌity)と呼ばれる言語で文章の構造が記述されるメタモデルのことである。メタモデルはモデルの意味を定義する。ＯＭＧが提案している典型的なメタモデルは、ＵＭＬ、ＳｙｓＭＬ、ＳＰＥＭ、ＣＷＭなどである。本実施例では、例えばＵＭＬモデルを設計文章として型定義している。設計文章型は、検証ルールを登録する前に定義される。
【００３０】
設計文章型は、設計文章型定義入力部１１２０が出力装置１３０へ入力インタフェース画面(図示せず)を表示して、ユーザが入力装置１２０により定義して、記憶装置１４０の設計文章型定義データ記憶領域１４２０に予め登録する。この設計文章型定義データは、ネットワーク２００を介して外部記憶装置２１０へ送られて登録され、プロジェクト内で共通に使用される。
【００３１】
前記検証ルールは、検証ルール入力部１１１０が出力装置１３０へ入力インタフェース画面(図示せず)を表示して、ユーザが前記設計文章型を考慮に入れて入力装置１２０により定義して、記憶装置１４０の検証ルールデータ記憶領域１４１０に予め登録する。この検証ルールデータは、ネットワーク２００を介して外部記憶装置２１０へ送られて登録され、プロジェクト内で共通に使用される。
【００３２】
中央演算処理装置１１０の設計文章入力部１１３０は、出力装置１３０へ設計文章入力インタフェース画面(図示せず)を表示して、ユーザが各種モデリング言語によって設計文章を入力した設計文章データを受け付ける。
【００３３】
設計文章変換部１１４０は、設計文章入力部１１３０が受け付けた設計文章データを、記憶装置１４０に登録されている前記設計文章型定義データ１４２０により、または外部記憶装置２１０に登録されている前記設計文章型定義データを読み出して、設計文章型に合わせて設計文章要素データに変換して、記憶装置１４０の設計文章要素データ記憶領域１４３０に登録するエディタ機能を有する。さらに、設計文章要素データをネットワーク２００を介して外部記憶装置２１０へ送って登録して、プロジェクト内で共通に使用されるように機能する。
【００３４】
影響範囲分析実行入力部１１５０は、前記した図２の影響範囲分析入力画面３１００をソフトウェア開発者へ提示して、開発者が指定した設計文章の変更、追加、削除などが、分析対象文章への影響を調べる処理の実行を受け付けて、開始する。
【００３５】
影響範囲分析入力画面３１００上で、開発者は既に登録されている設計文章要素データ１４３０を記憶装置１４０、または外部記憶装置２１０から読み出すことが出来る。設計文章変更釦３１８０をクリックして、設計文書表示画面３１１０上に読み出した設計文章要素データを表示する。この設計文章要素データに変更を加えて、その変更の影響範囲を調べる対象を分析対象文章欄３１２０に指定入力して、適用ルール欄３１３０へ既登録の検証ルールデータ１４１０より一覧を表示して、例えば選択のチェックマークをルール１とルール３に付けて指示入力をする。文章変更影響分析釦３１５０をクリックすることにより、影響範囲分析処理の実行を影響範囲分析実行入力部１１５０へ指示する。
【００３６】
図３は影響範囲分析実行入力部１１５０により起動された設計文章検証部１１６０における処理手順を説明するフローチャートである。図３に示すフローは、設計文章の変更内容の入力に対し分析対象の設計文章要素データ１４３０がユーザが適用を指定した検証ルールデータ１４１０を満たさない件数を検出する処理を示している。
影響範囲の分析処理のステップＳ２０１において、ユーザから指定された適用する検証ルールデータを取得する。
ステップＳ２０２において、分析対象となる設計文章要素データを記憶装置１４０、または外部記憶装置２１０から全て取得する。ここで、取得する設計文章要素データはプロジェクト単位やフォルダ単位等の分析対象文章欄３１２０で指定した単位での取得が可能である。
影響範囲の分析処理のステップＳ２０３において、ユーザが影響範囲分析入力画面３１００から指定した設計文章の変更データを取得する。
【００３７】
設計文章の変更を分析対象の全ての設計文章要素データに対し、適用を指定された検証ルールデータ全てを適用できたか判定する(ステップＳ２０４)。
未検証の検証ルールを１つ選択する(ステップＳ２０５)。
変更が加えられた設計文章と、全ての分析対象の設計文章要素データに対し、選択された検証ルールデータを適用して整合性違反を検出する(ステップＳ２０６)。
該当の分析対象の全ての設計文章要素データが検証ルールを満たしているか確認する(ステップＳ２０７)。
満たしていない場合は、検証ルール違反数を設計文章要素単位に影響範囲分析結果記憶領域１４４０に記憶する(ステップＳ２０８)。
【００３８】
図２の影響範囲分析入力画面３１００において、ユーザが多重影響分析階層指定欄３１４０に分析階層上限数ｌを更に指定して、文章変更影響分析釦３１５０をクリックすることで分析処理を実行させた場合には、設計文章検証部１１６０は、図４のフローチャートに示す通り、設計文章の変更内容の入力に対し分析対象の設計文章要素データ１４３０が適用される検証ルールデータ１４１０を満たさない件数を検出し、さらに検証ルールを満たしていない検証結果がもたらす影響を階層的に検出して階層毎の整合性違反件数として検出する処理を行なう。
【００３９】
ステップＳ３０１〜Ｓ３０３は、ステップＳ２０１〜Ｓ２０３と同一の処理である。
ステップＳ３０４において、ユーザが多重影響分析階層指定欄３１４０に指定した影響範囲の分析階層数上限数ｌを取得する。
検索階層数を１に設定する(ステップＳ３０５)。
検索階層数まで検証ルールを適用したか判定する(ステップＳ３０６)。
ユーザが指定した階層数(上限数)ｌに検索階層数が到達したかを判定する(ステップＳ３０７)。Yesなら処理を終了する。NoならばステップＳ３０８へ移行する。
ステップＳ３０８において、検索階層数をインクリメントする。
【００４０】
検索階層数まで、変更が加えられた設計文章と、全ての分析対象の設計文章要素データに対し、検証ルールデータを適用して整合性違反を検出する(ステップＳ３０９)。
ステップＳ３１０において、検索階層数における全ての設計文章要素は検証ルールを満たしているか判定する。YesならばステップＳ３０６へ移行する。Noならば検索階層数の検証ルール整合性違反数を設計文章要素単位に影響範囲分析結果記憶領域１４４０に記憶する(ステップＳ３１１)。
【００４１】
図２の影響範囲分析入力画面３１００において、開発者が検証ルール変更釦３１９０をクリックして、検証ルール表示画面３１１０上に既に登録されている検証ルールデータ１４１０を記憶装置１４０、または外部記憶装置２１０から読み出して、変更を加える場合を説明する。開発者は、検証ルールに加えた変更の影響を調べる分析対象文章を分析対象文章欄３１２０に指定して、検証ルール変更釦３１９０を再度クリックすることにより、検証ルールを変更したことによる影響範囲分析処理の実行を影響範囲分析実行入力部１１５０へ指示する。
【００４２】
図５は検証ルールデータ１４１０の変更の入力に対して、分析対象の設計文章要素データ１４３０が変更される検証ルールデータを満たさない件数(整合性違反数)を検出する処理を示している。
ステップＳ４０１，Ｓ４０２は、ステップＳ２０１，Ｓ２０２と同一の処理である。
ステップＳ４０３において、ユーザが変更した検証ルールの変更案を取得する。
【００４３】
ステップＳ４０４において、分析対象の全ての設計文章要素データに対し、変更検証ルールを適用下か判定する。Yesなら処理を終了する。NoならばステップＳ４０５へ移行する。
ステップＳ４０５において、全ての分析対象の設計文章要素データに対し、変更を加えた検証ルールデータを適用して整合性違反を検出する。
ステップＳ４０６において、分析対象の設計文章要素データは変更を加えた検証ルールデータを満たしているか判定する。YesならばステップＳ４０４へ移行する。NoならばステップＳ４０７において、検証ルール(整合性)違反数を設計文章要素単位に影響範囲分析結果記憶領域１４４０に記憶する。
本実施例においては、検証ルールの変更は図４の処理フローに示す分析階層数を用いた検証も可能である。
【００４４】
図２の影響範囲分析入力画面３１００において、設計文章を新たに追加してその影響を調べる場合には、ユーザは設計文書表示画面３１１０上に新たな設計文章を入力・表示して、同様に分析対象文章欄３１２０、適用ルール欄３１３０を指定して、文章追加影響分析釦３１６０をクリックすることにより、設計文章検証部１１６０は新たな設計文章を加えた全ての設計文章間の整合性を検証する。
【００４５】
また、既存の設計文章要素を設計文書表示画面３１１０上に読み出してきて、その設計文章を削除した場合の影響を調べる場合には、ユーザは上記と同様に分析対象文章欄３１２０、適用ルール欄３１３０を指定して、文章削除影響分析釦３１７０をクリックすることにより、設計文章検証部１１６０は指定された設計文書を削除した全ての設計文章間の整合性を検証する。
【００４６】
図９は検証結果変換部１１７０における処理手順を説明するフローチャートである。図９に示すフローは、例えば設計文章変更の影響範囲分析結果１４４０をユーザに通知するため、整合性違反数を所定の形式に変換する処理を示している。設計文章検証部１１６２０が記憶装置１４０の影響範囲分析結果記憶領域１４４０に記憶した検証結果の整合性違反数を取得し(ステップＳ５０１)、影響範囲分析実行入力部１１５０よりユーザが指定した出力形態フォーマットを取得し(ステップＳ５０２)、出力形態フォーマットに合わせて整合性違反数の再計算を行い(ステップＳ５０３)、出力可能なフォーマットに合わせて影響範囲分析結果を出力装置１３０に通知する処理を行う(ステップＳ５０４)。
【００４７】
図７に示す設計文章例により図３のフローチャートの影響範囲分析処理の一実施の形態を説明する。設計文章要素データ１４３０は、TypeがA設計文章２０１０の場合、Type：名前２０３０と、番号２０４０と、設定２０５０と、実行２０６０の４つのフィールドを持ち、TypeがB設計文章２０９０の場合、Type：名前２１００と、番号２１１０と、設定２１２０と、実行２１３０の４つのフィールドを持ち、TypeがC設計文章２１８０の場合、Type：名前２１９０と、cate(gory)２２００と、word２２１０の３つのフィールドを持つ。
【００４８】
例えば、エントリ２２３０はTypeが「A設計文章」で名前が「A1設計文章」であることを示し、エントリ２０７０は、番号が「１」の要素において、設定の「A1」が成立する場合、「X＝x1」を実行することを示している。同様に、エントリ２０８０は、Typeが「A設計文章」である名前「A2設計文章」の、番号が「１」の要素において、設定の「A1」が成立する場合、「X＝x1」を実行することを示している。
【００４９】
また、例えばエントリ２１４０は、Typeが「B設計文章」である名前「B1設計文章」の、番号が「１」の要素において、設定の「A1」が成立する場合、「X＝x1」を実行することを示している。同様にエントリ２２５０は、Typeが「B設計文章」である名前「B2設計文章」の、番号が「１」の要素において、設定の「A2」が成立する場合、「X＝x3」を実行することを示している。同様にエントリ２１７０は、Typeが「B設計文章」である名前「B3設計文章」の、番号が「１」の要素において、設定の「A1」が成立する場合、「X＝x2」を実行することを示している。
また、例えばエントリ２２２０は、cate(gory)が「A」に属するwordとして「A1」が登録されていることを示している。
【００５０】
図８に示す設計文章例により図４のフローチャートの影響範囲分析処理の一実施の形態を説明する。設計文書要素データ１４３０は、TypeがD設計文章２３１０の場合、Type：名前２３２０と、ref：参照先設計文章名２３３０の２つのフィールドを持ち、TypeがE設計文章２３８０の場合、Type：名前２３９０と、条件２４００と、結果２４１０のフィールドを持つ。
【００５１】
例えば、設計文章２３１０は、Typeが「D設計文章」である名前「D1設計文章」２３２０の、参照先となる設計文章は「E1設計文章」２３３０であることを示している。同様に、Typeが「D設計文章」である名前「D2設計文章」は参照先に「E2設計文章」を持ち２３５０、Typeが「D設計文章」である名前「D3設計文章」は参照先に「E3設計文章」を持ち２３６０、Typeが「D設計文章」である名前「D4設計文章」は参照先に「E4設計文章」を持つ２３７０ことを示している。
また、設計文章要素データ１１６０は、設計文章間の処理順序を規定する矢印(構成要素)２３４０を持つ。なお、本技術では設計文章要素間の関係性を規定可能であり、処理順序のみでなく、汎化や集約と言った関係性も登録可能である。
【００５２】
また、例えば設計文章２４５０において、Typeが「E設計文章」である名前「E1設計文章」は、条件が「＊」（＊は無条件を意味する）で、結果が「a＝A」を実行することを示している。同様に、Typeが「E設計文章」である名前「E2設計文章」２４２０は、条件「a＝＝A」が成立した場合に、結果「b＝B」を実行することを示し、Typeが「E設計文章」２４３０である名前「E3設計文章」は、条件「b＝＝B」が成立した場合に、結果「c＝C」を実行することを示し、Typeが「E設計文章」である名前「E4設計文章」２４４０は、条件「c＝＝C」が成立した場合に、結果「d＝D」を実行することを示している。
【００５３】
図１０、図１１、図１２は本発明の一実施形態に係る影響範囲分析結果の画面表示例を示す図である。ユーザにより指定された出力単位形式に検証結果変換部１１７０が影響範囲分析結果を変換して、影響範囲出力部１１８０が出力装置１３０に出力する。
図１０は、図２の影響範囲分析入力画面３１００において、C1設計文章に変更を加え、適用ルールとしてルール１を指定して、図３のフローチャートに従って指定の検証ルールに照らし合せて検証を行った場合、影響範囲を特定の単位(設計文章要素の単位)に整合性違反数で表示した結果を示したものである。例えば、出力画面３３１０ではC1設計文章２１８０のエントリ２２２０のwordを「A1」から「A3」に変更し、適用するルールを「ルール１」と指定３３３０した場合の結果を示す。影響範囲の分析結果として、影響範囲を設計文章の名前単位３３４０に、整合性違反している要素数３３５０を出力している。「A1設計文章」ではエントリ２０７０において設定の「A1」が「C1設計文章」におけるwordに登録されていないデータを使用しており、結果として「A1設計文章」内で整合性違反が1つ発生し３３６０、同様に「A2設計文章内」では整合性違反が1つ発生していることを表している３３７０。なお、設計文章の変更は単一のみでなく、複数個所の変更を同時に分析することも可能である。
【００５４】
また、影響範囲出力画面３３１０に出力する影響範囲の単位は、設計文章型定義データ１４２０より抽出可能な単位で設定可能である。また、出力結果の要素数に関しては、同一の設計文章要素に対して複数の違反がある場合、総数を出力することも、延べ数を出力することも可能である。また、設計文章型定義や設計文章要素や検証ルールに対して予め重みを付けることで、重み付け評価も適用可能とする。また、設計文章要素の変更のみでなく、追加や削除に関しても適用可能である。
【００５５】
図１１は、図２の影響範囲分析入力画面３１００において、各種の設計文章を変更する際に、多重影響分析階層数を指定３１４０し、適用ルールとしてルール４を指定して、図４のフローチャートに従って指定のルールに照らし合せて検証を行った場合に、影響範囲を特定の単位に整合性違反数で表示した結果を示したものである。例えば、出力画面３４１０は、「E1設計文章」２４５０のフィールドの結果「ａ＝Ａ」を「−」（何もしない）に変更し、階層指定の影響範囲分析で「階層上限数ｌ＝３」を指定し３４３０、適用するルールとしてルール４を指定３４４０した場合の、階層単位の影響範囲を整合性違反数で表示した結果３４５０と、階層１に対応する影響範囲の分析結果を影響範囲３４６０と、整合性違反数３４７０で出力した結果を示している。図８(Ｂ)において、変更により「E1設計文章」２４５０の結果「a＝A」２４１０が設定されないため、「E2設計文章」２４２０においては条件「a＝＝A」が成立するパスが存在しなくなるため階層１で違反が1つ発生し３４８０、「E3設計文章」２４３０においては前記の処理の影響で条件「b＝＝B」が成立するパスが存在しなくなるため階層２で違反が1つ発生し、「E4設計文章」２４４０においては前記の処理の影響で条件「c＝＝C」が成立するパスが存在しなくなるため階層3で違反が1つ発生する。なお、階層(上限数)無しを指定３１４０した場合は、整合性違反が無くなるまで階層を増やして検証を実施する。また、設計文章要素の変更のみでなく、追加や削除に関しても適用可能である。
【００５６】
図１２は、図２の影響範囲分析入力画面３１００において、検証ルール表示画面３１１０上でルール１を変更して、適用ルール欄３１３０で更にルール２にチェックマークを付けた場合に、影響範囲を特定の単位に整合性違反数で表示した結果を示したものである。出力画面３５１０では、変更を加えたルールを示す変更ルール欄３５２０と、適用ルールを示す適用ルール欄３５３０と、影響を受ける設計文章を表示する影響範囲欄３５４０と、影響を受ける設計文章毎の整合性違反数を示す要素数欄３５５０を表示する。
【００５７】
例えば、図６のルールテーブル１４１０において、エントリ１４１５の検証式１４１３を「Typeが“A設計文章”の“設定”に該当する全ての要素は、“C設計文章”の“word”に登録された要素名と一致すること」から、「Typeが“A設計文章”の“設定”に該当する全ての要素は、“C設計文章”の“word”に登録された、cateがAに含まれる要素名と一致すること」と変更し、変更した「ルール1」に加えて「ルール2」を適用３５３０した場合、影響範囲の分析結果として、「A1設計文章」２０１０の設定「B1」および「C1」がルール違反となり、「A1設計文章」において２つの整合性違反が発生していることを示す３５６０。同様に、「A2設計文章」２０２０においても、２つの要素が影響を受けていることを示す３５７０。影響範囲欄、および要素数欄にはその他の影響を受ける設計文書の結果が表示されている。それらの中で、「A1設計文章」と「A2設計文章」の要素数(整合性違反数)が他に比べて大きいことを強調して明示するために、要素数「２」の文字を大きく表示している。又は、色を変えて表示することでも良い。
【００５８】
なお、検証ルールの変更による影響範囲の分析は、単一の検証ルールのみでなく、複数の検証ルールを変更した場合の影響範囲の分析が可能である。また、検証ルールの変更では図１１で示した分析階層数を指定した影響範囲分析も可能である。また、設計文章要素の変更のみでなく、追加や削除に関しても適用可能である。また、ルールと設計文章要素を同時に変更した場合の分析も可能である。
【実施例２】
【００５９】
図１３は本発明の第一の実施形態に関わるソフトウェア設計文書の変更に対する影響範囲の分析確認装置１００に自動検証機能を加えた第二の実施形態に関わる影響範囲の分析自動実行装置１０２の構成例を示す図である。
【００６０】
分析自動実行装置１０２は、予め想定される設計文章の変更、追加、削除などに対して、分析対象文章、適用ルールなどの指定を含めて変更パターンとしてユーザが登録しておいて、ユーザが不在の間に影響範囲の分析処理を変更パターンに合わせて予め自動実行して結果を記録しておくことで、ユーザからの影響範囲分析指示に対してリアルタイムの応答を支援する装置である。
【００６１】
図１３に示す影響範囲の分析自動実行装置１０２の構成図では、中央演算処理装置１１０に入力装置１２０に変更パターンを予め指定するためのインタフェースを表示して、変更パターンの入力を受け付ける変更パターン入力部１１９０と、変更パターンデータと検証ルールデータと設計文章要素データから検証を自動実施する自動検証実行部１１００が加わり、記憶装置１４０には、変更パターンを登録する変更パターンデータ記憶領域１４５０と、自動検証実行部１１００により影響範囲分析処理を自動実行した結果を記録する検証結果データ記憶領域１４６０が加わっている。
なお、分析自動実行装置１０２は影響範囲の分析確認装置１００（図１）と同一装置上に配置する適用形態が可能である。
【００６２】
図１４は、変更パターン入力部１１９０が入力装置１２０に変更パターンを予め指定するためのインタフェースを表示した変更パターン入力画面３１０２の例である。画面の構成は、図２の影響範囲分析入力画面３１００の下段に、変更パターン入力釦３２１０と、自動検証実行釦３２２０が追加された構成である。
ユーザは影響範囲分析入力画面における入力指示と同様に、文章変更などによる影響範囲を分析するための変更パターンを画面上で作成して、変更パターン入力釦３２１０をクリックすることにより、変更パターン入力部１１９０が変更パターンを変更パターンデータ記憶領域１４５０へ登録する。ユーザは複数の変更パターンを登録することができる。
【００６３】
ユーザは、処理時間を要する影響範囲分析処理を、例えば夜中などの不在の間に分析自動実行装置１０２に実行指示するために、自動検証実行釦３２２０をクリックして、自動検証実行部１１００を起動する。
【００６４】
図１５は自動検証実行部１１００において、既登録で、かつ未検証の変更パターンデータ１４５０に対して、設計文章要素データ１４３０が検証ルールデータ１４１０を満たさない件数(整合性違反数)を自動的に検出する処理手順を説明するフローチャートである。
ステップＳ６０１において、変更パターンデータ記憶領域１４５０に登録されている変更パターンデータを取得する。
ステップＳ６０２において、検証結果データ記憶領域１４６０に記憶されている検証結果データを取得する。
ステップＳ６０３において、未検証の変更パターンに対応する検証ルールデータ１４１０を取得する。
ステップＳ６０４において、未検証の変更パターンに対応する設計文章要素データ１４３０を全て取得する。
【００６５】
ステップＳ６０５において、取得した未検証の変更パターンの全てを、変更パターンが適用される全てのルールと、全ての設計文章要素に対して検証実施したか確認する。Yesなら処理を終了する。NoならばステップＳ６０６へ移行する。
ステップＳ６０６において、未実施の変更パターンを１つ選択する。
ステップＳ６０７において、検証結果データ記憶領域１４６０に既に検証した結果が登録されているか確認する。YesならばステップＳ６０５へ移行する。NoならばステップＳ６０８へ移行する。
ステップＳ６０８において、選択された変更パターンの影響範囲分析処理をを実施する。検証の実施方法は図３、図４に記載の方法と同様である。
ステップＳ６０９において、検証結果を検証結果データ記憶領域１４６０へ登録して、ステップＳ６０５へ移行する。
【００６６】
図３、図４、図５に示した処理フローにおいて、検証結果データ記憶領域１４６０に登録した検証結果データを活用することを可能とする。
【符号の説明】
【００６７】
１００・・影響範囲の分析確認装置
１０２・・影響範囲の分析自動実行装置
１１０・・中央演算処理装置
１２０・・入力装置
１３０・・出力装置
１４０・・記憶装置
１５０・・通信装置
２００・・ネットワーク
２１０・・外部記憶装置
２２０・・外部演算装置
１１００・・自動検証実行部
１１１０・・検証ルール入力部
１１２０・・設計文章型定義入力部
１１３０・・設計文章入力部
１１４０・・設計文章変換部
１１５０・・影響範囲分析実行入力部
１１６０・・設計文章検証部
１１７０・・検証結果変換部
１１８０・・影響範囲出力部
１１９０・・変更パターン入力部
１４１０・・検証ルールデータ記憶領域
１４２０・・設計文章型定義データ記憶領域
１４３０・・設計文章要素データ記憶領域
１４４０・・影響範囲分析結果記憶領域
１４５０・・変更パターンデータ記憶領域
１４６０・・検証結果データ記憶領域
２０１０・・Ａ設計文章
２０９０・・Ｂ設計文章
２１８０・・Ｃ設計文章
２３１０・・Ｄ設計文章
２３８０・・Ｅ設計文章
３１００・・影響範囲分析入力画面
３１０２・・変更パターン入力画面
３１１０・・設計文書表示画面、
３１２０・・分析対象文章欄
３１３０・・適用ルール欄
３１４０・・多重影響分析階層指定欄
３１５０・・文章変更影響分析釦
３１６０・・文章追加影響分析釦
３１７０・・文章削除影響分析釦
３１８０・・設計文章変更釦
３１９０・・検証ルール変更釦
３２１０・・変更パターン入力釦
３２２０・・自動検証実行釦
３３１０・・影響範囲出力画面
３４１０・・多重影響範囲出力画面
３５１０・・検証ルール変更影響範囲出力画面
【図１】
2014222458.tif 000003
【図２】
2014222458.tif 000004
【図３】
2014222458.tif 000005
【図４】
2014222458.tif 000006
【図５】
2014222458.tif 000007
【図６】
2014222458.tif 000008
【図７】
2014222458.tif 000009
【図８】
2014222458.tif 000010
【図９】
2014222458.tif 000011
【図１０】
2014222458.tif 000012
【図１１】
2014222458.tif 000013
【図１２】
2014222458.tif 000014
【図１３】
2014222458.tif 000015
【図１４】
2014222458.tif 000016
【図１５】
2014222458.tif 000017