JP2008171318A - ソフトウェア開発ツール - Google Patents

ソフトウェア開発ツール Download PDF

Info

Publication number
JP2008171318A
JP2008171318A JP2007005710A JP2007005710A JP2008171318A JP 2008171318 A JP2008171318 A JP 2008171318A JP 2007005710 A JP2007005710 A JP 2007005710A JP 2007005710 A JP2007005710 A JP 2007005710A JP 2008171318 A JP2008171318 A JP 2008171318A
Authority
JP
Japan
Prior art keywords
software
structure diagram
data
component
composite
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.)
Withdrawn
Application number
JP2007005710A
Other languages
English (en)
Inventor
Hiroshi Fujiwara
寛 藤原
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007005710A priority Critical patent/JP2008171318A/ja
Publication of JP2008171318A publication Critical patent/JP2008171318A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】既存のソフトウェア部品を組み合わせた複合部品をデータベースに登録して再利用できるとともに、複合部品の整合性を動的な振る舞いとともに検証できるようにする。
【解決手段】部品データベース7に格納されたソフトウェア部品を組み合わせてソフトウェア構造図を編集するソフトウェア構造図エディタ1と、エディタ1からのソフトウェア構造図データD1を解析し部品間の静的な関連と動的な振る舞いを示すソフトウェア部品間接続情報D2を生成するとともに、ソフトウェア構造図中に含まれる複合部品を抽出するソフトウェア構造図解析部2と、複合部品のソフトウェア部品仕様データD3を生成する複合部品データ生成部3と、複合部品のソフトウェア部品仕様データをデータベースに登録する複合部品登録部4と、ソフトウェア部品間接続情報D2とデータベースに格納されたソフトウェア部品仕様データD3に基づいて部品間の整合性を検証する整合性検証部5を備える。
【選択図】図1

Description

本発明は、ソフトウェアの開発ツールにかかわり、特には、新規作成した複合部品の再利用の技術に関する。
従来のソフトウェア開発ツールに関しては、例えば特許文献1に開示の技術がある。この従来のソフトウェア開発ツールの動作を図13に示すフローチャートを用いて説明する。ステップS51において、モジュール構造図エディタを用いてモジュール構造図を作成する。次いでステップS52において、モジュール構造図エディタ上で作成した各モジュールにおける仕様を登録する。次いでステップS53において、モジュール間データの整合性を検証する。以上のステップにより、モジュール仕様に基づいたモジュール間の整合性が検証され、表示される。
特開平4−44176号公報(第2−3頁、第1−5図)
上記の従来のソフトウェア開発ツールでは、モジュール構造図エディタによってモジュール構造図を作成する際に、モジュールデータベース中に存在する既存のモジュール部品を選択し、それらを組み合わせた上で、モジュール間の整合性の検証を行う。しかし、モジュール部品を組み合わせて新規作成した複合部品については、これをさらにデータベースに登録して新たな部品として利用することはできない。また、複合部品を含めた整合性の検証を行うことはできない。
さらに、従来のソフトウェア開発ツールで利用されるモジュール構造図の場合は、ソフトウェアの静的な構造しか表現されておらず、ソフトウェア実行時の動的な振る舞いが表現されていない。そのため、モジュール間データの整合性の検証においては、モジュール間の静的な整合性しか検証せず、動的な動作を含めた検証を行うことができない。
本発明は、このような事情に鑑みて創作したものであり、既存のソフトウェア部品を組み合わせた複合部品をデータベースに登録して再利用することができるとともに、複合部品の整合性を動的な振る舞いとともに検証することができるソフトウェア開発ツールを提供することを目的としている。
本発明によるソフトウェア開発ツールは、
ソフトウェア部品データベースに格納されたソフトウェア部品を組み合わせて、ソフトウェアを図的に表現するソフトウェア構造図を編集するソフトウェア構造図エディタと、
前記ソフトウェア構造図エディタからのソフトウェア構造図データを解析しソフトウェア部品間の静的な関連とその関連に応じた動的な振る舞いを示すソフトウェア部品間接続情報を生成するとともに、前記ソフトウェア構造図中に含まれる複合部品を抽出するソフトウェア構造図解析部と、
前記ソフトウェア構造図解析部による前記複合部品についてのソフトウェア部品仕様データを生成する複合部品データ生成部と、
前記複合部品データ生成部による前記複合部品のソフトウェア部品仕様データを前記ソフトウェア部品データベースに登録する複合部品登録部と、
前記ソフトウェア構造図解析部による前記ソフトウェア部品間接続情報と前記ソフトウェア部品データベースに格納されたソフトウェア部品仕様データとに基づいてソフトウェア部品間の整合性を検証する整合性検証部とを備えたものである。
この構成においては、ソフトウェア構造図エディタは、ソフトウェア部品データベースから読み出したソフトウェア部品を配置し、またソフトウェア部品を組み合わせて複合部品として配置し、ソフトウェア構造図データとして出力する。このソフトウェア構造図は、ソフトウェア部品間の静的な関係だけでなく、動的な振る舞いも同時に表現する。ソフトウェア構造図解析部は、ソフトウェア構造図エディタによるソフトウェア構造図データのソフトウェア構造を解析し、ソフトウェア部品間の静的な関連とその関連に応じた動的な振る舞いの情報を抽出し、ソフトウェア部品間接続情報として出力する。さらに、ソフトウェア構造図中に存在し得る複合部品を抽出する。既存ソフトウェア部品の組み合わせによる新たな複合部品が抽出された場合には、複合部品データ生成部は、その複合部品についてのソフトウェア部品仕様データを生成し、複合部品登録部は複合部品のソフトウェア部品仕様データをソフトウェア部品データベースに登録する。ここで登録された複合部品は、新たなソフトウェア部品として次のソフトウェア構造図の作成に利用することが可能となる。整合性検証部は、ソフトウェア構造図解析部からのソフトウェア部品間接続情報と、ソフトウェア部品データベースに格納されたソフトウェア部品仕様データとに基づいて、開発対象ソフトウェアの各モジュール間の整合性を検証する。このようにして、既存のソフトウェア部品を組み合わせた複合部品をデータベースに登録して再利用することが可能になるとともに、複合部品の整合性を動的な振る舞いとともに検証し、ソフトウェア設計の妥当性を判定することが可能となる。
上記構成のソフトウェア開発ツールにおいて、前記ソフトウェア構造図エディタは、前記ソフトウェア部品データベースに登録された前記複合部品についての前記ソフトウェア部品仕様データを再帰的に取り扱うものとする。
また上記構成のソフトウェア開発ツールにおいて、前記ソフトウェア構造図エディタは、前記ソフトウェア構造図データとして、静的構造データテーブルと動的振る舞いデータテーブルとを有し、開発対象とするソフトウェアの静的構造と動的構造を同時に表現可能なデータを生成するという態様がある。このように構成すれば、静的構造と動的構造との同時的確認を通じて、作業効率を向上させることが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記ソフトウェア構造図エディタは、前記ソフトウェア部品データベースに登録済みのソフトウェア部品と未登録のソフトウェア部品とを色、形などによって区別して表示するという態様がある。このように構成すれば、ソフトウェア構造図エディタによって選択表示されたソフトウェア部品が登録済みのものかそうでないのかの確認を容易に行うことが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記整合性検証部は、静的なソフトウェア構造だけでなく、前記ソフトウェア構造図に表現されたソフトウェアの動的振る舞いと、前記ソフトウェア部品仕様データに含まれる動作制約条件とを利用して、ソフトウェア設計の妥当性を検証するという態様がある。このように構成すれば、動的振る舞いと動作制約条件のフィルタリングを通じて、検証の精度を向上させることが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記整合性検証部は、ソフトウェア部品間の整合性が妥当ではないと判定したときは、類似のソフトウェア部品候補を使用者に提示して、正しいソフトウェア部品の選択を促すという態様がある。このように構成すれば、整合性検証でいったんは妥当でないと判定した場合でも、妥当であろう次の判定へ進む際のソフトウェア部品選択の作業効率を向上させることが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記整合性検証部は、前記複合部品データ生成部による前記複合部品のソフトウェア部品仕様データのうち、整合性の検証が行われ妥当と判定されなかったソフトウェア部品については、その登録を抹消するという態様がある。このように構成すれば、新規作成の複合部品のソフトウェア部品仕様データが不適格な場合には、そのソフトウェア部品仕様データをソフトウェア部品データベースから抹消することを通じて、以降の作業効率の低下を抑制することが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記整合性検証部は、前記ソフトウェア部品間接続情報に含まれる呼び出し種別を利用して、非同期呼び出しが行われる際には他のソフトウェア部品の動作についても同時に検証するという態様がある。このように構成すれば、時間的な余裕を利用して他のソフトウェア部品も検証できるので、作業効率が向上する。
また上記構成のソフトウェア開発ツールにおいて、前記複合部品データ生成部は、前記ソフトウェア部品仕様データに、使用者の使用頻度に対応した安全度データを持つという態様がある。このように構成すれば、使用実績のあるソフトウェア部品を利用して、品質のより高いソフトウェア設計を行うことが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記複合部品データ生成部は、前記ソフトウェア部品の安全度データに、前記整合性検証部によって検証された頻度に応じた安全度データを加えるという態様がある。このように構成すれば、検証実績のあるソフトウェア部品を利用して、品質のより高いソフトウェア設計を行うことが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記複合部品データ生成部は、前記複合部品のインターフェースとなるプログラミング仕様を、前記ソフトウェア部品データベースに格納された前記ソフトウェア部品仕様データから自動的に抽出し、前記複合部品のインターフェース仕様を生成するという態様がある。このように構成すれば、複合部品のインターフェース仕様を効率良く生成することが可能となる。
また上記構成のソフトウェア開発ツールにおいて、前記ソフトウェア構造図エディタは、前記使用頻度または前記検証頻度に応じて選択可能なソフトウェア部品をフィルタリングして、使用者にソフトウェア部品の選択肢を限定させるという態様がある。このように構成すれば、ソフトウェア部品の絞り込みを通じて、作業効率をさらに向上させることが可能となる。
本発明によれば、既存のソフトウェア部品を組み合わせた複合部品をデータベースに登録して再利用することができるとともに、複合部品の整合性を動的な振る舞いとともに検証することができる。
以下、本発明にかかわるソフトウェア開発ツールの実施の形態を図面を用いて詳細に説明する。
図1は本発明の実施の形態におけるソフトウェア開発ツールの構成を示すブロック図である。図1において、7は既存のソフトウェア部品のデータを格納しているソフトウェア部品データベース、1はソフトウェア部品データベース7に格納されているソフトウェア部品を読み出して組み合わせ、ソフトウェアを図的に表現するソフトウェア構造図を編集するソフトウェア構造図エディタ、2はソフトウェア構造図エディタ1からのソフトウェア構造図データD1を解析しソフトウェア部品間の静的な関連とその関連に応じた動的な振る舞いを示すソフトウェア部品間接続情報D2を生成するとともに、ソフトウェア構造図中に含まれる複合部品を抽出するソフトウェア構造図解析部、3はソフトウェア構造図解析部2による複合部品についてのソフトウェア部品仕様データD3を生成する複合部品データ生成部、4は複合部品データ生成部3による複合部品のソフトウェア部品仕様データD3をソフトウェア部品データベース7に登録する複合部品登録部、5はソフトウェア構造図解析部2によるソフトウェア部品間接続情報D2とソフトウェア部品データベース7に格納されたソフトウェア部品仕様データD3とに基づいてソフトウェア部品間の整合性を検証する整合性検証部、6は整合性検証部5による検証結果を表示する検証結果表示部である。
次に、上記のように構成された本実施の形態のソフトウェア開発ツールの動作を説明する。
ソフトウェア構造図エディタ1は、ソフトウェア部品データベース7に格納されているソフトウェア部品を参照して配置する、または新規部品を作成して配置する、またはソフトウェア部品データベース7中に存在する既存のソフトウェア部品を組み合わせて複合部品として配置することにより、開発対象とするソフトウェアの構造を入力する。ソフトウェア構造図エディタ1で新規に作成されたソフトウェア部品は、ソフトウェア部品仕様データD3とともにソフトウェア部品データベース7に格納される。ここで入力されるソフトウェア構造図は、ソフトウェア部品間の静的な関係だけでなく、動的な振る舞いも同時に表現したものである。ソフトウェア構造図エディタ1によって作成されたソフトウェア構造図データD1はソフトウェア構造図解析部2へ出力される。
ソフトウェア構造図解析部2は、ソフトウェア構造図エディタ1から入力したソフトウェア構造図データD1について、ソフトウェア構造を解析する。この解析により、ソフトウェア部品間の静的な関連とその関連に応じた動的な振る舞いの情報が抽出され、ソフトウェア部品間接続情報D2として整合性検証部5へ出力される。さらに、ソフトウェア構造図解析部2によってソフトウェア構造図中に複合部品が存在することが抽出された場合には、その旨を複合部品データ生成部3に伝える。ここで複合部品とは、ソフトウェア部品データベース7に格納されている既存のソフトウェア部品を複数個組み合わせて新たに作成されたソフトウェア部品のことである。複合部品が存在するとき、複合部品データ生成部3は、既存のソフトウェア部品仕様データD3を基に、該当の複合部品のためのソフトウェア部品仕様データD3を自動的に生成する。そして、複合部品登録部4は、作成されたソフトウェア部品仕様データD3をソフトウェア部品データベース7に登録する。ここで登録された複合部品は、新たな追加部品として次のソフトウェア構造図の作成時に利用することができる。
そして、整合性検証部5は、ソフトウェア構造図解析部2からのソフトウェア部品間接続情報D2と、ソフトウェア部品データベース7に格納されたソフトウェア部品仕様データD3とに基づいて、開発対象ソフトウェアの各ソフトウェア部品間の整合性を検証し、その検証結果を検証結果表示部6に表示する。
図2にソフトウェア構造図の一例を示す。図2において、P1〜P4はソフトウェア部品を示し、1つの矩形で1つのソフトウェア部品を表す。a1はソフトウェア部品間の非同期呼び出しの関連を表現する矢印である。非同期呼び出し元から非同期呼び出し先に向かって、棒矢印でソフトウェア部品間を接続する。ここで、非同期呼び出しとは、タスク間メッセージ通信など、呼び出し先の処理完了待ちを伴わない呼び出しのことを指す。a2はソフトウェア部品間の同期呼び出しの関連を表現する矢印である。同期呼び出し元から同期呼び出し先に向かって、黒三角矢印でソフトウェア部品間を接続する。ここで、同期呼び出しとは、関数呼び出しなどの、呼び出し先の処理が完了するのを待ってから呼び出し元の処理を継続するような呼び出しのことを指す。a3,a4はソフトウェア部品間の動的振る舞いを表現する矢印である。ソフトウェア部品間の呼び出し順序と呼び出しの種類を表現する。a3は呼び出し元から呼び出し先に向かって同期呼び出しが行われることを示す。v1は同期呼び出しの種類と全体の振る舞いの中での順序を表現する。a4は呼び出し元から呼び出し先に向かって非同期呼び出しが行われることを示す。t1はソフトウェア部品が自身以外のソフトウェア部品と接続する入出力ポート(インターフェース)を表す。各ソフトウェア部品は入出力ポート間を経由して接続される。図2では、ソフトウェア部品modA,modB,modC,modDがそれぞれ接続され、1:初期化、1.1:値設定、2:完了、3:処理開始、3.1:値設定、3.1.1:完了の順序で処理が実行されることを示す。P1におけるソフトウェア部品modAは、既存のソフトウェア部品modαとmodβとの組み合わせからなる複合部品である。
図3と図4にソフトウェア構造図データD1を示す。ソフトウェア構造図データD1は、図3に示すモジュール間の静的構造データテーブルTb1と、図4に示す動的振る舞いデータテーブルTb2とからなる。図3と図4は、図2に示したソフトウェア構造図の一例をソフトウェア構造図データD1として表現したものである。
図3において、21はソフトウェア部品のモジュール名を格納するレコードである。22はレコード21に格納されたソフトウェア部品から関連するソフトウェア部品のモジュール名を格納するレコードである。23はソフトウェア部品間の関連種別を格納するレコードである。レコード23には同期または非同期の種別が格納される。一例として、24〜26はソフトウェア部品modDからソフトウェア部品modAに向かって非同期の関連があることを表現する。これは、図2におけるa1の非同期関連矢印に対応したソフトウェア構造図データD1である。
図4において、31は動的振る舞いの動作順序を表す動作番号を格納するレコードである。32は呼び出し元のソフトウェア部品のモジュール名を格納するレコードである。33はレコード32に格納された呼び出し元ソフトウェア部品から呼び出される呼び出し先のソフトウェア部品のモジュール名を格納するレコードである。34は呼び出しの名前を格納するレコードである。35は呼び出しの種別を格納するレコードである。一例として、36〜40はソフトウェア部品modDからソフトウェア部品modAに向かって、「完了」という呼び出し名で非同期の呼び出しが3.1.1の順番で行われることを表現する。
図5にソフトウェア構造図解析部2の処理フローを示す。ソフトウェア構造図解析部2は、ソフトウェア構造図エディタ1から出力されたソフトウェア構造図データD1を受け取り、ソフトウェア部品の中にさらに既存のソフトウェア部品を包含した複合部品が存在するかどうか解析を行う。
まず、ソフトウェア構造図エディタ1から出力されたソフトウェア構造図データD1のうちの静的構造データテーブルTb1を読み込む(ステップS1)。次に、読み込んだ静的構造データテーブルTb1に含まれるすべてのソフトウェア部品について、繰り返し処理を開始する(ステップS2)。処理対象のソフトウェア部品がさらに他のソフトウェア部品を含む場合には、複合部品と判定する(ステップS3)。複合部品であった場合には、該当モジュールを複合部品として、複合部品データ生成部3に通知し(ステップS4)、次いでソフトウェア部品間接続情報生成処理(ステップS5)を行う。複合部品でなかった場合には、ステップS4を飛び越してソフトウェア部品間接続情報生成処理(ステップS5)を行う。以上の処理が終了した後に、次のソフトウェア部品の処理に移る(ステップS6)。
ソフトウェア部品間接続情報生成処理(ステップS5)の処理のフローを以下に示す。まず、ソフトウェア構造図エディタ1から出力されたソフトウェア構造図データD1のうちの動的振る舞いデータテーブルTb2を読み込む(ステップS11)。次に、読み込んだ動的振る舞いデータテーブルTb2に含まれるすべての動作番号について、繰り返し処理を開始する(ステップS12)。次に、現在の処理対象の動作番号に対応する呼び出し先モジュールを動的振る舞いデータテーブルTb2から取得する(ステップS13)。次に、ステップS13で取得した呼び出し先モジュールに対応するソフトウェア部品仕様データD3をソフトウェア部品データベース7から取得する(ステップS14)。次に、ステップS14で取得したソフトウェア部品仕様データD3からインターフェース仕様と制約条件を取得する(ステップS15)。次に、ステップS15で取得したインターフェース仕様と制約条件を利用して、現在の動作番号に対応するソフトウェア部品間接続情報レコードを生成し、ソフトウェア部品間接続情報テーブルTb3に登録する(ステップS16)。1つの動作番号に対して以上の処理が終了したら、次の動作番号について繰り返す(ステップS17)。
図6にソフトウェア部品間接続情報テーブルTb3を示す。図6において、51は各ソフトウェア部品の動作の順番を示す動作番号である。52は動作番号51に対応した動作を指示する呼び出し元のソフトウェア部品のモジュール名である。53は52のソフトウェア部品から呼び出しされる呼び出し先ソフトウェア部品のモジュール名である。54は呼び出し元ソフトウェア部品から呼び出しされる呼び出し先ソフトウェア部品の呼び出し名である。55は54の呼び出しの種別を表す呼び出し種別である。呼び出し種別としては、同期呼び出しか非同期呼び出しのいずれかが格納される。なお、この呼び出し種別については、同期、非同期だけでなく、メッセージ通信などの詳細な種別を格納してもよい。56は呼び出し名54で呼び出されるインターフェースの仕様を格納する呼び出し先インターフェース仕様である。インターフェース仕様は呼び出し種別を表すS(Synchronous:同期)またはA(Asynchronous:非同期)の識別子に続いて、引数の型を表す文字列が引数個数分接続された文字列として表現される。57は54の呼び出しが行われる際の制約条件である。この制約条件が満たされている場合にのみ、54の呼び出しが成功する。一例として、58〜64は動作番号3.1.1の呼び出しを表現する。ソフトウェア部品modDからmodAに向かって「完了」という呼び出し名のインターフェースが非同期で呼び出される。その際のインターフェース仕様はA(V)であり、非同期呼び出しで引数は持たないことを示す。さらに、呼び出し時の制約条件はmodBの処理が完了済みであることが必要なことを示す。
図7にソフトウェア部品仕様データD3を示す。ソフトウェア部品仕様データD3は、各ソフトウェア部品に各々対応してソフトウェア部品データベース7に格納される。図7において、71は該当ソフトウェア部品のモジュール名を示す。72は該当ソフトウェア部品が複合部品であった場合には、該当ソフトウェア部品に包含される包含モジュール名を示す。該当ソフトウェア部品が複合部品ではない場合には、包含モジュール名は格納されない。また、包含モジュール名は包含されるソフトウェア部品数分すべて格納される。73は該当ソフトウェア部品の処理内容を示す。74は提供インターフェースを示す。提供インターフェースは、該当ソフトウェア部品が部品外部に提供するインターフェースの仕様である。提供インターフェースの仕様は形式75と種別76に分けて格納され、形式75は呼び出し種別を表すS(Synchronous:同期)またはA(Asynchronous:非同期)の識別子に続いて、引数の型を表す文字列が引数個数分接続された文字列として表現される。種別76としては、同期呼び出しか非同期呼び出しのいずれかが格納される。なお、この呼び出し種別は同期、非同期だけでなく、メッセージ通信などの詳細な種別を格納してもよい。提供インターフェースは、該当ソフトウェア部品が部品外部に提供するインターフェースの個数分すべて格納される。77は該当ソフトウェア部品が外部のソフトウェア部品を呼び出す、外部呼び出しを示す。外部呼び出しは、呼び出し先ソフトウェア部品のモジュール名78と呼び出し種別79に分けて格納される。呼び出し種別としては、同期呼び出しか非同期呼び出しのいずれかが格納される。なお、この呼び出し種別は同期、非同期だけでなく、メッセージ通信などの詳細な種別を格納してもよい。外部呼び出しは、該当ソフトウェア部品から呼び出される外部呼び出しの個数分すべて格納される。80は該当ソフトウェア部品が使用する使用資源を示す。使用資源としては、該当ソフトウェア部品のROM上のサイズ、動作時に使用するRAMサイズなどを格納する。なお、使用資源には実行時間、バス占有時間などを含めることもできる。
81は該当ソフトウェア部品がソフトウェア構造図エディタ1上に配置されて使用された回数を示す被利用回数を示す。被利用回数は、ソフトウェア設計における該当ソフトウェア部品の“重要度”を表現する。使用された回数がより多いソフトウェア部品ほど重要度の高いソフトウェア部品であること示す。
82は整合性検証部5において該当ソフトウェア部品が検証された検証実施回数を示す。検証実施回数は、該当ソフトウェア部品の“安全度”を表現する。検証された回数がより多いソフトウェア部品ほど高品質で不具合の少ない安全なソフトウェア部品であることを示す。
83は該当ソフトウェア部品の動作制約条件を示す。該当ソフトウェア部品が動作する際の制約条件を格納する。一例として、84〜99は複合部品modAのソフトウェア部品仕様データD3の実例を示す。84はモジュール名modAであり、modα(85)とmodβ(86)を包含する複合部品であることを表現する。87はmodAの処理内容記述であり、全体処理統括制御を行うことを示す。88,89はmodAが外部のソフトウェア部品に提供するインターフェースの1つめは非同期呼び出しで、引数を持たないことを示す。90,91はmodAが外部のソフトウェア部品に提供するインターフェースの2つめは同期呼び出しで、引数を持たないことを示す。92,93はmodAが呼び出しを行う外部のソフトウェア部品の1つめはmodBであり、同期呼び出しが行われることを示す。94,95はmodAが呼び出しを行う外部のソフトウェア部品の2つめはmodCであり、非同期呼び出しが行われることを示す。96はmodAの使用する資源はROM容量が1.2KBであり、動作時に使用するRAM容量は0.2KBであることを示す。97はmodAがソフトウェア構造図エディタ1上で使用された回数が15回であることを示す。98はmodAが整合性検証部5で検証された回数が8回であることを示す。99はmodAの動作制約条件はないことを示す。
図8に複合部品データ生成部3の処理フローを示す。複合部品データ生成部3は、まず、ソフトウェア構造図解析部2から渡された静的構造データテーブルTb1を取得する(ステップS21)。次に、ソフトウェア構造図解析部2から指定されたモジュール名に包含されるモジュール名を取得する(ステップS22)。次に、該当複合部品のモジュール名でソフトウェア部品仕様データD3を生成する(ステップS23)。次に、該当複合部品に包含されるすべてのソフトウェア部品について繰り返しを開始する(ステップS24)。
まず、ソフトウェア部品仕様データD3の包含モジュールフィールドに包含モジュール名を設定する(ステップS25)。次に、動的振る舞いデータテーブルTb2から該当複合部品を呼び出しているモジュールとその呼び出し名/種別を取得する(ステップS26)。次に、ソフトウェア部品データベース7から包含されるモジュールのソフトウェア部品仕様データD3を取得する(ステップS27)。次に、外部モジュールからの呼び出しに該当する包含モジュールの提供インターフェース仕様を取得する(ステップS28)。次に、複合部品の提供インターフェースとして前ステップS28で取得したインターフェース仕様を設定する(ステップS29)。以上のステップをすべての包含ソフトウェア部品に対して繰り返す(ステップS30)。
図9に整合性検証部5の処理フローを示す。整合性検証部5は、まず、ソフトウェア構造図解析部2からソフトウェア部品間接続情報D2を取得する(ステップS31)。次に、ソフトウェア部品間接続情報D2に含まれる動作番号について繰り返しを開始する(ステップS32)。次に、呼び出し元ソフトウェア部品のソフトウェア部品仕様データD3をソフトウェア部品データベース7から取得する(ステップS33)。次に、呼び出し元ソフトウェア部品の動作仕様に従って動作条件を設定する(ステップS34)。次に、呼び出し元ソフトウェア部品のソフトウェア部品仕様データD3をソフトウェア部品データベース7から取得する(ステップS35)。次に、呼び出し先ソフトウェア部品の提供インターフェースとソフトウェア部品間接続情報D2の呼び出し先インターフェース仕様が一致するかどうか比較する(ステップS36)。一致した場合には、現在の動作条件とソフトウェア部品間接続情報D2中の制約条件とを比較する(ステップS37)。さらに一致した場合には、次の動作番号を繰り返す(ステップS38)。すべての動作番号について繰り返しが完了した場合には、整合性が正しく検証されたと判定でき、検証結果表示部6に整合性検証完了の表示を指示する(ステップS39)。
ステップS36またはステップS37において比較が一致しなかった場合には、検証中のソフトウェア部品が複合部品または新規部品であるかどうか検査する(ステップS40)。複合部品または新規部品である場合には、ソフトウェア部品データベース7から該当のソフトウェア部品仕様データD3を抹消する(ステップS41)。複合部品または新規部品でない場合には、ステップS41は行わない。次に、検証結果表示部6に不整合の表示を指示する(ステップS42)。
図10にソフトウェア構造図エディタ1上にソフトウェア部品間の整合性の検証において不整合があった場合の表示例を示す。101はソフトウェア構造図エディタ1の画面である。102は現在編集中のソフトウェア構造図である。103は不整合が生じたソフトウェア部品に対応した代替ソフトウェア部品候補を表示する領域である。104〜106は不整合が生じたソフトウェア部品の代替ソフトウェア部品候補である。使用者は、ここで呈示された代替ソフトウェア部品を選択して、不整合の発生したソフトウェア部品の代わりに他のソフトウェア部品を利用することができる。
図11にソフトウェア構造図エディタ1上でソフトウェア構造図を編集する際に、ソフトウェア部品データベース7に登録済みの部品と未登録の部品を区別して提示する表示例を示す。111はソフトウェア構造図エディタ1の画面である。112は現在編集中のソフトウェア構造図である。113はソフトウェア部品データベース7に未登録の複合部品を他の登録済み部品とは区別するために、網掛け表示した例である。114はソフトウェア部品データベース7に未登録の新規部品を他の登録済み部品とは区別するために、グレー表示した例である。
図12にソフトウェア部品データベース7に登録済みの部品と未登録の部品を区別して提示する表示例を示す。121は検証前のソフトウェア構造図である。122は整合性検証部5で不整合と判定されたソフトウェア部品である。123は不整合と判定されたソフトウェア部品を入れ替えた後のソフトウェア構造図である。124は不整合の生じたソフトウェア部品modBの代わりに使用した正しいソフトウェア部品modZである。
本発明のソフトウェア開発ツールは、既存のソフトウェア部品を組み合わせてさらに新しいソフトウェア部品として利用することで、ソフトウェア部品の再利用性を高め、ソフトウェアの生産性、高品質化に寄与するソフトウェア開発ツールとして、広くソフトウェア設計一般に対して利用することができ、その産業上の利用可能性は非常に広くかつ大きい。
本発明の実施の形態におけるソフトウェア開発ツールの構成を示すブロック図 本発明の実施の形態におけるソフトウェア構造図の例 本発明の実施の形態におけるソフトウェア構造図データのうち静的構造データテーブルの図 本発明の実施の形態におけるソフトウェア構造図データのうち動的振る舞いデータテーブルの図 本発明の実施の形態におけるソフトウェア構造図解析処理の動作を示すフローチャート 本発明の実施の形態におけるソフトウェア部品間接続情報テーブルの図 本発明の実施の形態におけるソフトウェア部品仕様データの図 本発明の実施の形態における複合部品データ生成部の動作を示すフローチャート 本発明の実施の形態に整合性検証部の動作を示すフローチャート 本発明の実施の形態におけるソフトウェア部品間の整合性の検証において不整合があった場合の表示例 本発明の実施の形態におけるソフトウェア部品データベースに登録済みの部品と未登録の部品を区別して提示する表示例(その1) 本発明の実施の形態におけるソフトウェア部品データベースに登録済みの部品と未登録の部品を区別して提示する表示例(その2) 従来技術文献の代表図面
符号の説明
1 ソフトウェア構造図エディタ
2 ソフトウェア構造図解析部
3 複合部品データ生成部
4 複合部品登録部
5 整合性検証部
6 検証結果表示部
7 ソフトウェア部品データベース
D1 ソフトウェア構造図データ
D2 ソフトウェア部品間接続情報
D3 ソフトウェア部品仕様データ
P1〜P4 ソフトウェア部品
Tb1 静的構造データテーブル
Tb2 動的振る舞いデータテーブル
Tb3 ソフトウェア部品間接続情報テーブル

Claims (12)

  1. ソフトウェア部品データベースに格納されたソフトウェア部品を組み合わせて、ソフトウェアを図的に表現するソフトウェア構造図を編集するソフトウェア構造図エディタと、
    前記ソフトウェア構造図エディタからのソフトウェア構造図データを解析しソフトウェア部品間の静的な関連とその関連に応じた動的な振る舞いを示すソフトウェア部品間接続情報を生成するとともに、前記ソフトウェア構造図中に含まれる複合部品を抽出するソフトウェア構造図解析部と、
    前記ソフトウェア構造図解析部による前記複合部品についてのソフトウェア部品仕様データを生成する複合部品データ生成部と、
    前記複合部品データ生成部による前記複合部品のソフトウェア部品仕様データを前記ソフトウェア部品データベースに登録する複合部品登録部と、
    前記ソフトウェア構造図解析部による前記ソフトウェア部品間接続情報と前記ソフトウェア部品データベースに格納されたソフトウェア部品仕様データとに基づいてソフトウェア部品間の整合性を検証する整合性検証部とを備えたソフトウェア開発ツール。
  2. 前記ソフトウェア構造図エディタは、前記ソフトウェア部品データベースに登録された前記複合部品についての前記ソフトウェア部品仕様データを再帰的に取り扱い可能である請求項1に記載のソフトウェア開発ツール。
  3. 前記ソフトウェア構造図エディタは、前記ソフトウェア構造図データとして、静的構造データテーブルと動的振る舞いデータテーブルとを有し、開発対象とするソフトウェアの静的構造と動的構造を同時に表現可能なデータを生成する請求項1または請求項2に記載のソフトウェア開発ツール。
  4. 前記ソフトウェア構造図エディタは、前記ソフトウェア部品データベースに登録済みのソフトウェア部品と未登録のソフトウェア部品とを色、形などによって区別して表示する請求項1から請求項3までのいずれかに記載のソフトウェア開発ツール。
  5. 前記整合性検証部は、静的なソフトウェア構造だけでなく、前記ソフトウェア構造図に表現されたソフトウェアの動的振る舞いと、前記ソフトウェア部品仕様データに含まれる動作制約条件とを利用して、ソフトウェア設計の妥当性を検証する請求項1から請求項4までのいずれかに記載のソフトウェア開発ツール。
  6. 前記整合性検証部は、ソフトウェア部品間の整合性が妥当ではないと判定したときは、類似のソフトウェア部品候補を使用者に提示して、正しいソフトウェア部品の選択を促す請求項5に記載のソフトウェア開発ツール。
  7. 前記整合性検証部は、前記複合部品データ生成部による前記複合部品のソフトウェア部品仕様データのうち、整合性の検証が行われ妥当と判定されなかったソフトウェア部品については、その登録を抹消する請求項6に記載のソフトウェア開発ツール。
  8. 前記整合性検証部は、前記ソフトウェア部品間接続情報に含まれる呼び出し種別を利用して、非同期呼び出しが行われる際には他のソフトウェア部品の動作についても同時に検証する請求項1から請求項7までのいずれかに記載のソフトウェア開発ツール。
  9. 前記複合部品データ生成部は、前記ソフトウェア部品仕様データに、使用者の使用頻度に対応した安全度データを持つ請求項1から請求項8までのいずれかに記載のソフトウェア開発ツール。
  10. 前記複合部品データ生成部は、前記ソフトウェア部品の安全度データに、前記整合性検証部によって検証された頻度に応じた安全度データを加える請求項9に記載のソフトウェア開発ツール。
  11. 前記複合部品データ生成部は、前記複合部品のインターフェースとなるプログラミング仕様を、前記ソフトウェア部品データベースに格納された前記ソフトウェア部品仕様データから自動的に抽出し、前記複合部品のインターフェース仕様を生成する請求項1から請求項10までのいずれかに記載のソフトウェア開発ツール。
  12. 前記ソフトウェア構造図エディタは、前記使用頻度または前記検証頻度に応じて選択可能なソフトウェア部品をフィルタリングして、使用者にソフトウェア部品の選択肢を限定させる請求項1から請求項11までのいずれかに記載のソフトウェア開発ツール。
JP2007005710A 2007-01-15 2007-01-15 ソフトウェア開発ツール Withdrawn JP2008171318A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007005710A JP2008171318A (ja) 2007-01-15 2007-01-15 ソフトウェア開発ツール

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007005710A JP2008171318A (ja) 2007-01-15 2007-01-15 ソフトウェア開発ツール

Publications (1)

Publication Number Publication Date
JP2008171318A true JP2008171318A (ja) 2008-07-24

Family

ID=39699335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007005710A Withdrawn JP2008171318A (ja) 2007-01-15 2007-01-15 ソフトウェア開発ツール

Country Status (1)

Country Link
JP (1) JP2008171318A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049419A (ja) * 2008-08-20 2010-03-04 Internatl Business Mach Corp <Ibm> 開発支援プログラム、開発支援方法及び開発支援システム
JP2011070644A (ja) * 2009-09-22 2011-04-07 Nec (China) Co Ltd ネットワークリソースのマッシュアップ方法および装置
WO2011129038A1 (ja) * 2010-04-13 2011-10-20 日本電気株式会社 システム信頼性評価装置
JP2011248590A (ja) * 2010-05-26 2011-12-08 Ihi Corp タスク設計支援システム及びタスク設計支援方法
JP2013164879A (ja) * 2013-05-30 2013-08-22 Ricoh Co Ltd 情報処理装置、互換性評価方法、及びプログラム
JP2015056153A (ja) * 2013-09-13 2015-03-23 三菱電機株式会社 ソフトウェア開発支援装置、仕様作成支援方法、及び、プログラム
US9208184B1 (en) 2014-12-04 2015-12-08 Hitachi, Ltd. System design support apparatus and system design supporting method
US9363294B2 (en) 2012-12-10 2016-06-07 Hitachi, Ltd. Management server, tenant pattern validation method, and computer system
WO2016208073A1 (ja) * 2015-06-26 2016-12-29 株式会社日立製作所 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JP2018120381A (ja) * 2017-01-25 2018-08-02 株式会社日立ソリューションズ ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
WO2019077733A1 (ja) * 2017-10-20 2019-04-25 株式会社日立製作所 診断モデル部品再活用支援装置および方法
JP7053974B1 (ja) * 2021-06-22 2022-04-12 ファナック株式会社 画面作成装置、画面作成システム、及びコンピュータが読み取り可能な記憶媒体
WO2022269775A1 (ja) * 2021-06-22 2022-12-29 ファナック株式会社 画面作成装置、コンピュータが読み取り可能な記憶媒体

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049419A (ja) * 2008-08-20 2010-03-04 Internatl Business Mach Corp <Ibm> 開発支援プログラム、開発支援方法及び開発支援システム
JP2011070644A (ja) * 2009-09-22 2011-04-07 Nec (China) Co Ltd ネットワークリソースのマッシュアップ方法および装置
US9015675B2 (en) 2010-04-13 2015-04-21 Nec Corporation System reliability evaluation device
JPWO2011129038A1 (ja) * 2010-04-13 2013-07-11 日本電気株式会社 システム信頼性評価装置
JP5614446B2 (ja) * 2010-04-13 2014-10-29 日本電気株式会社 システム信頼性評価装置
WO2011129038A1 (ja) * 2010-04-13 2011-10-20 日本電気株式会社 システム信頼性評価装置
JP2011248590A (ja) * 2010-05-26 2011-12-08 Ihi Corp タスク設計支援システム及びタスク設計支援方法
US9363294B2 (en) 2012-12-10 2016-06-07 Hitachi, Ltd. Management server, tenant pattern validation method, and computer system
JP2013164879A (ja) * 2013-05-30 2013-08-22 Ricoh Co Ltd 情報処理装置、互換性評価方法、及びプログラム
JP2015056153A (ja) * 2013-09-13 2015-03-23 三菱電機株式会社 ソフトウェア開発支援装置、仕様作成支援方法、及び、プログラム
US9208184B1 (en) 2014-12-04 2015-12-08 Hitachi, Ltd. System design support apparatus and system design supporting method
WO2016208073A1 (ja) * 2015-06-26 2016-12-29 株式会社日立製作所 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JPWO2016208073A1 (ja) * 2015-06-26 2017-06-29 株式会社日立製作所 モジュール再利用判定装置、モジュール再利用判定方法、及びモジュール再利用判定プログラム
JP2018120381A (ja) * 2017-01-25 2018-08-02 株式会社日立ソリューションズ ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
WO2019077733A1 (ja) * 2017-10-20 2019-04-25 株式会社日立製作所 診断モデル部品再活用支援装置および方法
JPWO2019077733A1 (ja) * 2017-10-20 2020-11-05 株式会社日立製作所 診断モデル部品再活用支援装置および方法
JP7053974B1 (ja) * 2021-06-22 2022-04-12 ファナック株式会社 画面作成装置、画面作成システム、及びコンピュータが読み取り可能な記憶媒体
WO2022269775A1 (ja) * 2021-06-22 2022-12-29 ファナック株式会社 画面作成装置、コンピュータが読み取り可能な記憶媒体
WO2022269764A1 (ja) * 2021-06-22 2022-12-29 ファナック株式会社 画面作成装置、画面作成システム、及びコンピュータが読み取り可能な記憶媒体

Similar Documents

Publication Publication Date Title
JP2008171318A (ja) ソフトウェア開発ツール
JP2007515013A (ja) あらゆるソースプラットフォームからあらゆるターゲットプラットフォームへのソフトウェアコードのマイグレーション及び変換装置
US7702958B2 (en) Auto-recording tool for developing test harness files
JP6354457B2 (ja) アプリケーション開発支援装置、そのデータ処理方法、およびプログラム
JP6268029B2 (ja) テストケース生成装置及びテストケース生成方法
JP6417791B2 (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
CN110543301B (zh) jenkins代码文件的生成方法及装置
US20080222600A1 (en) Apparatus and method for component-based software development
JP2019021341A (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
CN103544298A (zh) 组件的日志分析方法和分析装置
CN108228173A (zh) 一种可视化的数据接口开发系统和方法
JP2006276953A (ja) 画面定義データ差分抽出方法、装置及びプログラム
JP2013020437A (ja) 要件管理支援装置
CN104484156A (zh) 多语言公式的编辑方法、编辑系统和多语言公式编辑器
CN108563560A (zh) 一种基于Calabash的客户端应用程序需求驱动测试方法
CN110750308B (zh) 任务处理方法、装置、存储介质及电子设备
JP2005085182A (ja) 試験支援システム
US20200302661A1 (en) Information processing apparatus, computer-readable recording medium, and drawing creation support method
CN112417024A (zh) 快速适配数据库脚本方法、装置、计算机设备及存储介质
US20110022501A1 (en) Service change component generation system, method and recording medium
CN112667278A (zh) 一种医院医保接口配置方法及系统
JP5657183B2 (ja) 第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするための方法および装置、第1のコンピュータ・プログラムと第2のコンピュータ・プログラムとのインターフェースをとるためのコンピュータ・プログラム・コードを生成するための方法および装置、コンピュータ・プログラム、ならびに第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするためのソフトウェア・インターフェースを提供するための方法(コンピュータ・プログラム・インターフェース)
JP2002116911A (ja) オブジェクト指向プログラムの自動生成装置
JP4481037B2 (ja) テスト支援装置
JP2007034807A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091224

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110914