IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特開2024-47187不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム
<>
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図1
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図2
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図3
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図4
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図5
  • 特開-不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047187
(43)【公開日】2024-04-05
(54)【発明の名称】不整合箇所特定装置、不整合箇所特定方法およびコンピュータプログラム
(51)【国際特許分類】
   G06F 8/30 20180101AFI20240329BHJP
【FI】
G06F8/30
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022152674
(22)【出願日】2022-09-26
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】大橋 充幸
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC07
5B376BC14
5B376BC23
5B376BC38
5B376BC43
(57)【要約】
【課題】 ロジックと、当該ロジックが呼び出すモジュールとの整合をチェックする作業に起因した問題を抑制する技術を提供する。
【解決手段】 不整合箇所特定装置30の取得部31は、ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され引数の出力先であるモジュールにおける引数の受け付けに関する引数受付情報とをそれぞれ取得する。また、取得部31は、モジュールからロジックに戻される戻り値の出力に関する戻り値出力情報と、ロジックにおける戻り値に関する戻り値設定情報とをそれぞれ取得する。判定部32によって、引数設定情報と引数受付情報が引数整合条件を満たしていないと判定された場合と、戻り値出力情報と戻り値設定情報が戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、出力部33は、不整合箇所特定情報を出力する。
【選択図】 図5
【特許請求の範囲】
【請求項1】
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける前記引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得する取得部と、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定する判定部と、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する出力部と
を備える不整合箇所特定装置。
【請求項2】
前記ロジックには、引数をモジュールに渡すモジュール呼び出し箇所が複数有り、
前記取得部は、モジュール呼び出し箇所ごとに、引数設定情報と引数受付情報と戻り値設定情報と戻り値出力情報を取得し、
前記判定部は、モジュール呼び出し箇所ごとに、引数設定情報と引数受付情報と戻り値設定情報と戻り値出力情報と、引数整合条件と、戻り値整合条件とを用いた判定処理を行う
請求項1に記載の不整合箇所特定装置。
【請求項3】
前記出力部は、前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合には、前記引数整合条件を満たさなかった前記引数設定情報と前記引数受付情報をさらに出力し、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合には、前記戻り値整合条件を満たさなかった前記戻り値設定情報と前記戻り値出力情報をさらに出力する
請求項1に記載の不整合箇所特定装置。
【請求項4】
コンピュータによって、
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける前記引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得し、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定し、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する不整合箇所特定方法。
【請求項5】
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける前記引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得する処理と、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定する処理と、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する処理と
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションプログラムの開発に係る技術に関する。
【背景技術】
【0002】
アプリケーションプログラム(アプリケーション)の開発において、DX(Digital Transformation(デジタルトランスフォーメーション))の進展により、ビジネススピードに対応したリリースサイクルの短期化や、最新UX(User eXperience)を備えたカスタマーエクスペリエンスの向上がより求められるようになってきている。また、アプリケーションの開発には、日進月歩で最新化されているクラウドアーキテクチャやクラウドネイティブ技術の追随や、セキュリティ標準といったデファクト技術の追随も求められる。
【0003】
また、アプリケーションの開発に関する状況の一つとして、最新技術者が不足し人材リソースが限られているという状況がある。このような状況の中で、アプリケーションの開発の効率化や自動化、最新UXやデファクト技術の追随を実現する手段として、ローコードプラットフォームが注目されている。ローコードプラットフォームとは、プログラミング言語によるコーディング中心のプログラム開発に代わり、GUI(Graphical User Interface)を用いたビジュアルモデリングによりプログラム開発を可能するものである。ローコードプラットフォームを活用することにより、プログラミング言語に習熟していない人であっても、アプリケーションの開発に携わることが可能となる。このため、ローコードプラットフォームは、アプリケーションの開発における人材不足に対処する手法の一つとも言える。
【0004】
なお、特許文献1(特開平11-39145号公報)には、ソースコードを生成することなくアプリケーションの設計を行うことができるビジュアルモデリングに係る技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11-39145号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、アプリケーションの開発では、しばしば処理単位でプログラムが生成され、この処理単位のプログラムがモジュール(換言すれば、部品)として扱われる。モジュールを複数の開発者で共有することで、同一の処理を行うモジュールを複数の開発者がそれぞれ生成する場合に比べて、アプリケーションの開発(プログラムの生成)の効率化やモジュールの品質のばらつき防止が図られる。
【0007】
このようなことから、アプリケーションの開発者は、オープンソースソフトウェアやベンダが提供する有償ライブラリというような別の開発者が生成したモジュールを利用する場合がある。このような場合、次のような問題が発生する虞がある。
【0008】
すなわち、アプリケーションの開発者により生成された開発中のロジック(つまり、アプリケーションにおける処理の流れを表すプログラム)において、別の開発者が生成した既存のモジュールを呼び出す箇所が生じることとなる。この箇所では、ロジックから呼び出し対象のモジュールに引数が渡される。この引数(データ)が、呼び出し対象のモジュールが受け付け可能なデータでない場合が生じる。つまり、ロジックが引数としてモジュールに渡す数値の範囲や文字データの内容などが予めロジック側において設定されている。一方、モジュール側においても、引数として受け付ける数値の範囲や文字データの内容などが予め設定されている。ロジックの開発者とモジュールの開発者が別々である場合、そのような引数に関するロジック側とモジュール側との設定にずれが生じてしまう場合がある。
【0009】
また、モジュールが処理を実行した後に当該処理の結果が戻り値としてモジュールからロジックに戻される。この戻り値が、ロジックが想定していない値である場合がある。つまり、ロジック側において、戻り値としてモジュールに戻ってくる数値の範囲や文字データの内容が予め設定されているが、このような戻り値の設定からずれた戻り値がモジュールから戻ってくる場合がある。
【0010】
上述したような引数や戻り値に関する設定のずれによるロジックとモジュールの不整合が生じている場合、このようなロジックおよびモジュールを含むアプリケーションは、コンピュータ装置の動作不良を起こしてしまう。
【0011】
このような事態を回避するために、アプリケーションの開発においては、プログラムのソースコードを目視により確認したり、開発中のアプリケーションを装置に実行させて当該装置が不具合なく動作できるか否かを調べる試験を行ったりする。しかしながら、プログラムのソースコードを目視によりチェックしてロジックとモジュールの整合を確認する作業は時間と手間が掛かる(換言すれば作業コストが掛かる)。また、装置の動作確認の試験で不具合が見つかった場合には、アプリケーションにおいて不具合の原因となった場所を特定し修正する必要があり、アプリケーションの開発工程においては後戻り工程となるため、作業コストが増加する要因となる。
【0012】
また、ロジックが、ローコードプラットフォームのようなソースコードを用いずに生成されたものであるのに対して、モジュールがソースコードにより生成されている場合がある。このような場合には、ロジックとモジュールの生成手法が異なるため、ロジックの開発者は、モジュールのソースコードを読み解くのが大変である。さらに、ロジックの開発者が、ローコードプラットフォームの利用者であってソースコードの言語スキルが無い場合がある。この場合には、ロジックの開発者が、モジュールのソースコードをチェックできないという問題がある。
【0013】
本発明は上記課題を解決するために考え出された。すなわち、本発明の主な目的は、ビジュアルモデリングを用いて生成されたロジックと、当該ロジックが呼び出すモジュールとの整合をチェックする作業に起因した問題を抑制できる技術を提供することにある。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明に係る不整合箇所特定装置は、その一態様として、
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得する取得部と、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定する判定部と、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する出力部と
を備える。
【0015】
また、本発明に係る不整合箇所特定方法は、その一態様として、
コンピュータによって、
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得し、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定し、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する。
【0016】
さらに、本発明に係るコンピュータプログラムは、その一態様として、
ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され前記引数の出力先であるモジュールにおける引数の受け付けに関する引数受付情報とをそれぞれ取得し、また、前記モジュールから前記ロジックに戻される戻り値の出力に関する戻り値出力情報と、前記ロジックにおける前記戻り値に関する戻り値設定情報とをそれぞれ取得する処理と、
前記引数設定情報と前記引数受付情報が予め定められている引数整合条件を満たしているか否かを判定し、また、前記戻り値出力情報と前記戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定する処理と、
前記引数設定情報と前記引数受付情報が前記引数整合条件を満たしていないと判定された場合と、前記戻り値出力情報と前記戻り値設定情報が前記戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、前記ロジックが前記引数を前記モジュールに渡すモジュール呼び出し箇所を表す情報を不整合箇所特定情報として出力する処理と
をコンピュータに実行させる。
【発明の効果】
【0017】
本発明によれば、ビジュアルモデリングを用いて生成されたロジックと、当該ロジックが呼び出すモジュールとの整合をチェックする作業に起因した問題を抑制できる。
【図面の簡単な説明】
【0018】
図1】本発明に係る第1実施形態の不整合箇所特定装置の構成を説明する図である。
図2】ビジュアルモデリングを説明する図である。
図3】整合性検査情報を説明する図である。
図4】第1実施形態の不整合箇所特定装置の動作例を説明するフローチャートである。
図5】その他の実施形態の不整合箇所特定装置の構成を説明するブロック図である。
図6】その他の実施形態の不整合箇所特定装置の動作例を説明するフローチャートである。
【発明を実施するための形態】
【0019】
以下に、本発明に係る実施形態を、図面を参照して説明する。
【0020】
<第1実施形態>
図1は、本発明に係る第1実施形態の不整合箇所特定装置の構成を説明する図である。この不整合箇所特定装置1は、アプリケーションプログラムのロジックと、当該ロジックが呼び出すモジュールとが、引数や戻り値に関して整合しているか否かを判定し、整合していない場合には、ロジックにおけるそのモジュールの呼び出し箇所(モジュール呼び出し箇所)を表す情報を出力する機能を備えている。ここでのロジックとは、アプリケーションプログラムにおいて処理の手順を表しているプログラム(コンピュータプログラム)である。また、ここでは、ロジックは、ビジュアルモデリングにより生成されている。ビジュアルモデリングとは、ソースコードを使わずに、図2に表されるようなGUI(Graphical User Interface)を用いてプログラムを生成する手法である。これに対し、ここでのモジュールとは、ソースコードにより生成された処理単位のプログラムであり、ライブラリとも称される。アプリケーションの開発者は、自身が生成しているアプリケーションに、別の開発者が生成したモジュールを利用する場合がある。
【0021】
第1実施形態の不整合箇所特定装置1は、コンピュータ装置であり、図1に表されているように、入力装置3と、出力装置4と、解析装置5とに接続されている。入力装置3は、キーボードやマウスやタッチパネルなどにより構成され、不整合箇所特定装置1の利用者(以下、ユーザとも称する)が操作することによって不整合箇所特定装置1に情報を入力する装置である。出力装置4は、例えばディスプレイ装置であり、不整合箇所特定装置1から出力された情報を画面表示や音声などにより出力する。
【0022】
解析装置5は、コンピュータ装置であり、アプリケーションにおけるロジックとモジュールを解析することにより、ロジックとモジュールのそれぞれから引数と戻り値に関する情報を抽出する機能を備える。解析装置5は、その解析に、例えば、コンパイラやLCP(Low-Code Platform (ローコードプラットフォーム))のソフトウェアにより提供される情報を用いる。
【0023】
解析装置5によってロジックから抽出される引数に関する情報は、ロジック名称情報と、呼び出し箇所特定情報と、引数設定情報とを含む。ロジック名称情報は、ロジックの名称を表す情報である。呼び出し箇所特定情報は、ロジックにおいてモジュールを呼び出す箇所を表す情報であり、この呼び出し箇所特定情報には、呼び出すモジュールを表す情報(例えばモジュール名称情報)が関連付けられている。引数設定情報は、その呼び出す箇所においてモジュールに渡される引数に関して設定された内容を表す情報である。つまり、引数設定情報は、例えば、引数が数値である場合には、「引数は、100よりも大きく、かつ、200よりも小さい範囲内の値が設定される」というような設定の内容を表す情報である。このような引数設定情報には、当該情報に含まれる引数が渡される呼び出し箇所を表す呼び出し箇所特定情報が関連付けられている。なお、引数は、数値データに限らず、文字データである場合もある。
【0024】
解析装置5によってモジュールから抽出される引数に関する情報は、モジュール名称情報と、引数受付情報とが関連付けられた情報を含む。モジュール名称情報は、モジュールの名称を表す情報である。解析装置5により解析されるモジュールは、ロジックから呼び出されるモジュールであってロジックから引数を渡される引数の出力先であるモジュールである。引数受付情報とは、そのような引数の受け付けに関して予め設定された内容を表す情報である。例えば、引数受付情報は、引数が数値である場合には、「モジュールがロジックから受け付ける引数の値(受け付け可能な引数の値)は、100よりも大きく、かつ、200よりも小さい範囲内の値が設定される」というような設定の内容を表す情報である。
【0025】
解析装置5によってロジックから抽出される戻り値に関する情報は、戻り値設定情報を含む。戻り値設定情報は、モジュールからロジックに戻される戻り値に関して設定された内容を表す情報である。例えば、戻り値設定情報は、戻り値が数値である場合には、「戻り値としてロジックがモジュールに期待する値として、50よりも大きく、かつ、150よりも小さい範囲内の値が設定される」というような設定の内容を表す情報である。このような戻り値設定情報は、当該情報に含まれる戻り値を出力するモジュールの呼び出しに関する呼び出し箇所特定情報およびロジック名称情報に関連付けられる。
【0026】
解析装置5によってモジュールから抽出される戻り値に関する情報は、戻り値出力情報を含む。戻り値出力情報は、モジュールからロジックに戻される戻り値の出力に関して設定された内容を表す情報である。例えば、戻り値出力情報は、戻り値が数値である場合には、「モジュールが戻り値としてロジックに返却し得る値は、0よりも大きく、かつ、200よりも小さい範囲内の値である」というような設定の内容を表す情報である。このような戻り値出力情報は、当該情報に含まれる戻り値を出力するモジュールのモジュール名称情報と、その戻り値と関係する引数が出力されたロジックの呼び出し箇所の情報を含む呼び出し箇所特定情報とが関連付けられる。
【0027】
なお、同じモジュールがロジックにおける互いに異なる箇所でそれぞれ呼び出される場合がある。このような場合に、ロジックとモジュールとの間でやり取りされる引数や戻り値に関する設定内容がモジュールの呼び出し箇所によって異なる場合がある。解析装置5は、例えば、ロジックにおけるモジュールの呼び出し箇所ごとに、上述したような引数設定情報と引数受付情報と戻り値設定情報と戻り値出力情報をロジックあるいはモジュールから抽出する。
【0028】
第1実施形態の不整合箇所特定装置1は、上述したような解析装置5と連携して、アプリケーションのロジックと、当該ロジックが呼び出すモジュールとの不整合箇所を特定する処理を実行する。以下に、この不整合箇所特定装置1の構成について、説明する。
【0029】
不整合箇所特定装置1は、演算装置10と、記憶装置20とを備える。記憶装置20は、データや、コンピュータプログラム(プログラム)21を記憶する記憶媒体を備えている。記憶装置には、磁気ディスク装置や、半導体メモリ素子などの複数の種類があり、さらに、半導体メモリ素子には、RAM(Random Access Memory)やROM(Read Only Memory)などの複数の種類があるというように、多数の種類がある。不整合箇所特定装置1が備える記憶装置20の種類は1つに限定されるものではない。コンピュータ装置には複数種の記憶装置が備えられることが多い。ここでは、不整合箇所特定装置1に備えられる記憶装置20の種類や数は限定されず、その説明は省略される。また、不整合箇所特定装置1に複数種の記憶装置20が備えられる場合には、それらをまとめて記憶装置20と記すこととする。また、不整合箇所特定装置1は、外付けの記憶装置(データベース)と接続し、当該外付けの記憶装置ともデータなどの読み書きを行う場合も考えられるが、ここでは、外付けの記憶装置とのデータなどの読み書きが行われる場合があっても当該説明は省略することとする。
【0030】
演算装置10は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサにより構成される。当該演算装置10は、記憶装置20に記憶されているプログラム21を読み出して実行することにより、当該プログラム21に基づいた様々な機能を持つことができる。ここでは、演算装置10は、ロジックとモジュールとの不整合箇所を特定する処理(以下、不整合特定処理とも称する)に関わる機能部として、取得部11と、判定部12と、出力部13とを有している。
【0031】
取得部11は、不整合特定処理を行うチェック対象のアプリケーション(つまり、ロジックおよび当該ロジックが呼び出すモジュール)がユーザによる入力装置3の操作によって不整合箇所特定装置1に入力された場合に、それらロジックおよびモジュールを取得する。取得したロジックおよびモジュールは、例えば、記憶装置20に格納される。
【0032】
また、取得部11は、取得したロジックおよびモジュール(アプリケーション)を解析装置5に出力する。これにより、解析装置5は、取得部11から受け取ったロジックおよびモジュールを解析し、前述したような引数や戻り値に関する情報をロジックおよびモジュールから抽出する。そして、解析装置5は、抽出した引数や戻り値に関する情報を不整合箇所特定装置1に返す。
【0033】
さらに、取得部11は、解析装置5から出力された引数や戻り値に関する情報を取得する。これにより、取得部11は、ロジックから出力される引数に関する引数設定情報と、モジュールにおける引数の受け付けに関する引数受付情報と、モジュールにおける戻り値の出力に関する戻り値出力情報と、ロジックにおける戻り値に関する戻り値設定情報とをそれぞれ取得する。
【0034】
判定部12は、取得部11により取得された引数や戻り値に関する情報を用いて、ロジックと当該ロジックに呼び出されるモジュールとが整合しているか否かを判定する判定処理を実行する。この判定処理では、次に述べるような整合性検査情報を用いて、引数設定情報と引数受付情報が比較され、また、戻り値出力情報と戻り値設定情報が比較され、比較結果により、ロジックとモジュールが整合しているか否かが判定される。
【0035】
整合性検査情報は、ロジックとモジュールが整合しているか否かを判定するためのチェック内容を含む情報であり、予め生成され記憶装置20に格納されている。図3は整合性検査情報の一例を説明する図である。図3の例では、整合性検査情報は、データ型とチェック内容とが関連付けられている情報を含む。整合性検査情報に含まれるデータ型は、プログラミング言語で扱えるデータの型であり、引数や戻り値として扱われるデータの型である。データの型には、Integer、long、String、Boolean、Dateというように複数有るが、ここでは、それらの説明は省略される。
【0036】
チェック内容は、引数設定情報と引数受付情報の比較や、戻り値出力情報と戻り値設定情報の比較をどのようにするかを表しており、引数や戻り値のデータ型に応じて設定される。例えば、引数や戻り値が数値である場合には、引数受付情報や戻り値設定情報に含まれている引数や戻り値の受け側の数値の設定範囲が、引数設定情報や戻り値出力情報に含まれている引数や戻り値の出力側の数値の設定範囲を含むか否かをチェックするというようなチェック内容が設定される。また、チェック内容として、データ型によっては、引数設定情報(引数に関するロジック側の情報)と引数受付情報(引数に関するモジュール側の情報)とが部分的に一致しているか否かをチェックするというようなチェック内容が設定される場合もある。同様に、チェック内容として、データ型によっては、戻り値設定情報(戻り値に関するロジック側の情報)と戻り値出力情報(戻り値に関するモジュール側の情報)とが部分的に一致しているか否かをチェックするというようなチェック内容が設定される場合がある。換言すれば、チェック内容として、引数設定情報や戻り値設定情報に含まれるロジック側の情報と、引数受付情報や戻り値出力情報に含まれるモジュール側の情報とが部分的に一致しているか否かをチェックするというようなチェック内容が設定される場合がある。さらに、チェック内容として、データ型によっては、引数設定情報や戻り値設定情報に含まれるロジック側の情報と、引数受付情報や戻り値出力情報に含まれるモジュール側の情報とが完全に一致しているか否かをチェックするというようなチェック内容が設定される場合もある。このようなチェック内容は、引数や戻り値のデータ型に応じて適宜設定されるものであり、上述した例に限定されない。
【0037】
判定部12は、上述したような整合性検査情報に含まれるチェック内容に従って、引数設定情報や戻り値設定情報に含まれるロジック側の情報と、引数受付情報や戻り値出力情報に含まれるモジュール側の情報とを比較する。そして、判定部12は、その比較による判定がTRUE(YES)であった場合には、引数あるいは戻り値に関してロジックとモジュールは整合していると判定する。一方、判定部12は、その比較による判定がFALSE(NO)であった場合には、引数あるいは戻り値に関してロジックとモジュールは整合していない(つまり、不整合である(問題有り))と判定する。すなわち、判定部12が用いる整合性検査情報は、ロジックとモジュールが引数に関して整合していると判定される引数整合条件を含むと言える。引数整合条件は、例えば、引数設定情報(引数に関するロジック側の情報)と引数受付情報(引数に関するモジュール側の情報)とが部分的に一致しているというような条件である。また、整合性検査情報は、ロジックとモジュールが戻り値に関して整合していると判定される戻り値整合条件を含むと言える。戻り値整合条件は、例えば、戻り値設定情報(戻り値に関するロジック側の情報)と戻り値出力情報(戻り値に関するモジュール側の情報)とが一致しているというような条件である。
【0038】
出力部13は、引数と戻り値の少なくとも一方に関してロジックとモジュールが整合していない(つまり、不整合である)と判定された場合に、エラーメッセージを出力装置4に出力する。換言すれば、出力部13は、引数設定情報と引数受付情報が引数整合条件を満たしていないと判定された場合と、戻り値出力情報と戻り値設定情報が戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、エラーメッセージを出力装置4に出力する。エラーメッセージは、不整合となったロジックの名称とモジュールの名称、また、不整合通知情報および不整合箇所特定情報を含む。不整合通知情報とは、ロジックにおいてモジュールと不整合となっている箇所があることを通知する情報である。不整合箇所特定情報とは、ロジックにおいて不整合であると判定されたモジュールを呼び出す呼び出し箇所を表す情報を含む情報である。ロジックにおいて不整合であると判定されたモジュールを呼び出す呼び出し箇所を表す情報は、取得部11が解析装置5から取得したロジックにおける呼び出し箇所特定情報に基づいた情報である。エラーメッセージは、さらに、不整合となった引数や戻り値の設定の内容を表す情報が含まれる。換言すれば、エラーメッセージは、さらに、引数整合条件を満たさなかった引数設定情報と引数受付情報や、戻り値整合条件を満たさなかった戻り値設定情報と戻り値出力情報の情報を出力する。
【0039】
エラーメッセージを受信した出力装置4は、チェック対象のロジックにおいて、引数あるいは戻り値に関して不整合であるモジュールが有ることと、その不整合と判定されたモジュールを呼び出す呼び出し箇所の情報などを報知する。このような報知を行う出力装置4の表示態様(画面構成)は、ここでは限定されずに適宜設定されてよく、その説明は省略される。
【0040】
第1実施形態の不整合箇所特定装置1は上述したように構成されている。次に、第1実施形態の不整合箇所特定装置1における不整合特定処理の動作例を、図4を参照しながら説明する。図4は、第1実施形態の不整合箇所特定装置1における不整合特定処理の動作例を表すフローチャートである。
【0041】
例えば、ユーザによる入力装置3の操作によって、チェック対象のロジックとモジュールが不整合箇所特定装置1に入力された場合には、演算装置10の取得部11が、入力されたチェック対象のロジックとモジュールを受け付ける(図4におけるステップ101)。その後、取得部11が、チェック対象のロジックとモジュールを解析装置5に出力する(ステップ102)。
【0042】
そして、解析装置5から、チェック対象のロジックとモジュールのそれぞれから抽出された引数と戻り値に関する情報が返された場合には、取得部11が、そのチェック対象のロジックとモジュールから抽出された情報を取得する(ステップ103)。
【0043】
然る後に、判定部12が判定処理を開始する。まず、チェック対象のロジックとモジュールから抽出された情報に関し、判定処理が比較される引数設定情報と引数受付情報、また、戻り値出力情報と戻り値設定情報を組み合わせる。また、チェック対象のロジックが呼び出すモジュールが複数有るか否かを判定する(ステップ104)。ロジックが呼び出すモジュールが複数有る場合(YESの場合)には、判定部12は、ロジックが呼び出す複数のモジュールの中から、一つのモジュールを注目モジュールとして選択する(ステップ105)。注目モジュールの選択手法はここでは限定されず、その説明は省略される。また、ロジックが呼び出すモジュールが複数無い場合(NOの場合)には、注目モジュールを選択する必要がないから、判定部12は、その注目モジュールを選択する動作(ステップ105)を行わず、次の動作に進む。
【0044】
その後、判定部12は、ロジックと注目モジュールから抽出された引数と戻り値に関する情報と、記憶装置20に格納されている整合性検査情報とを用いて、引数と戻り値に関して注目モジュールとロジックが整合しているか否かを判定する(ステップ106)。ここでの整合判定処理において、注目モジュールが、ロジックにおける異なる複数箇所で呼び出される場合には、呼び出し箇所ごとに、注目モジュールとロジックが整合しているか否かが判定される。つまり、呼び出し箇所ごとに、引数設定情報と引数受付情報が整合性検査情報に基づく引数整合条件を満たしているか否かが判定部12により判定される。かつ、戻り値設定情報と戻り値出力情報が整合性検査情報に基づく戻り値整合条件を満たしているか否かが判定部12により判定される。注目モジュールに関する判定部12の整合判定処理により、引数設定情報と引数受付情報が引数整合条件を満たしていない、あるいは、戻り値設定情報と戻り値出力情報が戻り値整合条件を満たしていないと判定された判定結果が一つでも有った場合(NOの場合)、出力部13はエラーメッセージを出力装置4に出力する。そのエラーメッセージには、チェック対象のロジックにモジュールとの不整合があることを表す不整合通知情報、および、その不整合であると判定されたモジュールを呼び出す呼び出し箇所を表す不整合箇所特定情報が含まれる。エラーメッセージを受信した出力装置4は、エラーメッセージを表示する。
【0045】
一方、注目モジュールに関する判定部12の整合判定処理により、注目モジュールの全ての呼び出し箇所に関する引数設定情報と引数受付情報が引数整合条件を満たし、かつ、戻り値設定情報と戻り値出力情報が戻り値整合条件を満たしていると判定された場合(YESの場合)、判定部12は次の動作に進む。
【0046】
すなわち、判定部12は、チェック対象のロジックが呼び出すモジュールであってステップ106における判定処理を行っていない未処理のモジュールが有るか否かを判定する(ステップ108)。未処理のモジュールが有る場合(YESの場合)、判定部12は、ステップ105の動作により、未処理のモジュールが一つである場合には当該未処理のモジュールを注目モジュールとして設定する。また、未処理のモジュールが複数有る場合には、判定部12は、それら未処理のモジュールの中から注目モジュールを選択する。そして、判定部12は、新たな注目モジュールに関して、ステップ106における整合判定処理を実行する。このようにステップ105以降の動作を繰り返し、ステップ108において、未処理のモジュールが無いと判定された場合(NOの場合)、判定部12は次の動作に進む。
【0047】
つまり、判定部12は、チェック対象のロジックであってモジュールとの整合に関する判定処理が実行されていない未処理のロジックが有るか否かを判定する(ステップ109)。つまり、チェック対象のロジックとして複数のロジックが不整合箇所特定装置1に入力される場合がある。このような場合において、判定部12は、ステップ109において、未処理のロジックが有るか否かを判定する。そして、判定部12は、未処理のロジックが有ると判定した場合(YESの場合)、その未処理のロジックに関して、ステップ104以降の動作を繰り返す。その後、ステップ109において、判定部12が未処理のロジックが無いと判定した場合(NOの場合)、出力部13は、チェック対象のロジックおよびモジュールについてのチェックが終了したことを表すチェック終了メッセージを出力装置4に出力する(ステップ110)。これにより、出力装置4は、引数および戻り値に関するロジックとモジュールの整合のチェックが終了したことを報知する。
【0048】
第1実施形態の不整合箇所特定装置1は、上述したように、ロジックと、当該ロジックが呼び出すモジュールとが引数や戻り値に関して整合しているか否かを判定する処理を実行する構成を備えている。これにより、不整合箇所特定装置1は、アプリケーションの開発者が、引数および戻り値に関して開発中のロジックとモジュールが整合しているか否かを目視により確認するというような面倒な作業を行わなくても済むという効果を奏することができる。また、不整合箇所特定装置1は、モジュールと不整合であったロジックにおける呼び出し箇所を表す情報を出力することから、ユーザは、ロジックにおけるモジュールとの不整合箇所を容易に得ることができる。つまり、不整合箇所特定装置1は、ロジックとモジュールの整合をチェックする作業コストを抑えることができる。
【0049】
また、解析装置5は、ソースコードにより生成されたモジュールから引数や戻り値に関して設定された情報を抽出するだけでなく、ビジュアルモデリングにより生成されたロジックからも引数や戻り値に関して設定された情報を抽出できる装置である。不整合箇所特定装置1は、そのような解析装置5と連携していることから、ビジュアルモデリングにより生成されたロジックと、他の開発者が生成したモジュールとの引数や戻り値に関する整合について容易にチェックすることができる。さらに、ロジックの開発者がソースコードの言語スキルを持たないために、他の開発者がソースコードにより生成したモジュールを読み解くことができず、ロジックとモジュールの整合についてチェックできないという問題を、不整合箇所特定装置1は解消できる。
【0050】
さらに、不整合箇所特定装置1は、アプリケーションが完成していなくとも、開発中のアプリケーションにおけるロジックと、当該ロジックが呼び出すモジュールとが引数や戻り値に関して整合するか否かを判定できる。このため、不整合箇所特定装置1は、アプリケーションの動作確認工程においてロジックとモジュールの不整合に因り動作不良となった場合に、ロジックとモジュールの不整合を修正するという後戻りを削減できる。
【0051】
<その他の実施形態>
本発明は第1実施形態に限定されず、様々な形態を採り得る。例えば、第1実施形態の不整合箇所特定装置1は、解析装置5と連携していたが、不整合箇所特定装置は、解析装置5の機能を備えていてもよい。また、第1実施形態の説明では、ロジックはビジュアルモデリングにより生成されている例を示しているが、第1実施形態の不整合箇所特定装置1は、ソースコードにより生成されたロジックにも適用可能である。
【0052】
図5は、本発明に係るその他の実施形態の不整合箇所特定装置の構成を表すブロック図である。図5における不整合箇所特定装置30は、例えばコンピュータ装置であり、コンピュータプログラムにより実現される機能部として、取得部31と、判定部32と、出力部33とを備える。
【0053】
取得部31は、ビジュアルモデリングにより生成されたロジックから出力される引数に関する引数設定情報と、ソースコードにより生成され引数の出力先であるモジュールにおける引数の受け付けに関する引数受付情報とをそれぞれ取得する。また、取得部31は、モジュールからロジックに戻される戻り値の出力に関する戻り値出力情報と、ロジックにおける戻り値に関する戻り値設定情報とをそれぞれ取得する。
【0054】
判定部32は、引数設定情報と引数受付情報が予め定められている引数整合条件を満たしているか否かを判定する。また、判定部32は、戻り値出力情報と戻り値設定情報が予め定められている戻り値整合条件を満たしているか否かを判定する。
【0055】
出力部33は、引数設定情報と引数受付情報が引数整合条件を満たしていないと判定された場合と、戻り値出力情報と戻り値設定情報が戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、不整合箇所特定情報を出力する。不整合箇所特定情報は、ロジックが引数をモジュールに渡すモジュール呼び出し箇所を表す情報を含む。
【0056】
次に、不整合箇所特定装置30における動作の一例を、図6を参照しながら説明する。まず、取得部31が、ロジックとモジュールが整合しているか否かを判定する整合判定に用いる情報を取得する(ステップ201)。つまり、取得部31は、上述したような引数設定情報と引数受付情報と戻り値設定情報と戻り値出力情報を取得する。
【0057】
その後、判定部32が、取得部31により取得された情報と、引数整合条件と、戻り値整合条件とを用いて、ロジックとモジュールが整合しているか否かを判定する(ステップ202)。つまり、判定部32は、引数設定情報と引数受付情報が引数整合条件を満たしているか否かを判定する。また、判定部32は、戻り値出力情報と戻り値設定情報が戻り値整合条件を満たしているか否かを判定する。その後、引数設定情報と引数受付情報が引数整合条件を満たしていないと判定された場合と、戻り値出力情報と戻り値設定情報が戻り値整合条件を満たしていないと判定された場合とのうちの少なくとも一方の場合、出力部33は不整合箇所特定情報を出力する(ステップ203)。
【0058】
不整合箇所特定装置30は上述したような構成を備えていることから、ビジュアルモデリングを用いて生成されたロジックと、当該ロジックが呼び出すモジュールとの整合をチェックする作業に起因した問題を抑制できるという効果を奏することができる。
【符号の説明】
【0059】
1,30 不整合箇所特定装置
11,31 取得部
12,32 判定部
13,33 出力部
図1
図2
図3
図4
図5
図6