JP7370264B2 - Traceability management device, traceability management method, and traceability management program - Google Patents
Traceability management device, traceability management method, and traceability management program Download PDFInfo
- Publication number
- JP7370264B2 JP7370264B2 JP2020013274A JP2020013274A JP7370264B2 JP 7370264 B2 JP7370264 B2 JP 7370264B2 JP 2020013274 A JP2020013274 A JP 2020013274A JP 2020013274 A JP2020013274 A JP 2020013274A JP 7370264 B2 JP7370264 B2 JP 7370264B2
- Authority
- JP
- Japan
- Prior art keywords
- traceability
- information
- mdm
- missing
- function
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本開示は、ソフトウェア開発時などにおいてトレーサビリティ欠落候補を検出するトレーサビリティ管理装置、トレーサビリティ管理方法、及び、トレーサビリティ管理プログラムに関する。 The present disclosure relates to a traceability management device, a traceability management method, and a traceability management program that detect traceability missing candidates during software development.
ソフトウェア開発時におけるトレーサビリティ管理のために、仕様書やソースコードに記載した専用のタグ(識別文字列)に基づいてトレーサビリティ情報を取得し、当該トレーサビリティ情報をツリー形式や表形式で表示する技術が提案されている。 For traceability management during software development, a technology has been proposed that acquires traceability information based on special tags (identification character strings) written in specifications and source code, and displays the traceability information in tree or table format. has been done.
また、ソースコードやUML(Unified Modeling Language)を入力として、ソースコードやUMLの要素同士の依存関係を取得し、当該依存関係についてDSM(Design Structure Matrix)と呼ばれる表を作成する技術が提案されている。加えて、複数ドメインのDSMを連結してマトリクスを作成するMDM(Multi Domain Matrix)と呼ばれる概念が提案されている。このMDMでは、マトリクスの対角線上の領域に同一ドメインの要素同士の依存関係を示すDSMが配置され、それ以外の領域に異なるドメインの要素同士の対応関係を示すDMM(Domain Mapping Matrix)が配置される。 In addition, a technology has been proposed that takes source code or UML (Unified Modeling Language) as input, acquires the dependencies between elements of the source code or UML, and creates a table called a DSM (Design Structure Matrix) for the dependencies. There is. In addition, a concept called MDM (Multi Domain Matrix) has been proposed in which a matrix is created by connecting DSMs of multiple domains. In this MDM, a DSM that shows dependencies between elements of the same domain is placed in the diagonal area of the matrix, and a DMM (Domain Mapping Matrix) that shows the correspondence between elements of different domains is placed in other areas. Ru.
また、アーキテクチャの依存関係、ソースコードの依存関係及びトレーサビリティ情報を用いて、ソースコードのアーキテクチャ崩れを検出する技術が提案されている(例えば特許文献1)。それ以外にも、ソースコードの依存関係及びトレーサビリティ情報を用いて、ソフトウェア改造時の変更影響箇所を検出する技術が提案されている(例えば特許文献2)。 Furthermore, a technique has been proposed for detecting architecture collapse in source code using architecture dependencies, source code dependencies, and traceability information (for example, Patent Document 1). In addition to this, a technique has been proposed that uses source code dependencies and traceability information to detect locations affected by changes during software modification (for example, Patent Document 2).
従来のトレーサビリティ管理技術では、仕様書やソースコードに変更が発生した際に、手動でトレーサビリティ情報のタグを編集する必要がある。しかしながら、頻繁にソフトウェアの仕様変更が発生する開発では、タグの編集欠落によってトレーサビリティ情報の欠落が発生する可能性がある。トレーサビリティ情報の欠落が発生すると、仕様の理解にかかる時間が増加し、ソフトウェアの開発工数の増加の原因となる。また特許文献1及び特許文献2の技術では、トレーサビリティ情報の欠落を検出しておらず、ソフトウェアの開発者に検出作業が生じているという問題があった。 With conventional traceability management technology, it is necessary to manually edit traceability information tags when changes occur in specifications or source code. However, in development where software specifications frequently change, there is a possibility that traceability information may be missing due to missing tag editing. When traceability information is missing, the time required to understand the specifications increases, causing an increase in the number of software development steps. Furthermore, the techniques disclosed in Patent Document 1 and Patent Document 2 do not detect missing traceability information, and there is a problem in that the software developer has to perform detection work.
そこで、本開示は、上記のような問題点を鑑みてなされたものであり、ソフトウェア開発工数を削減可能な技術を提供することを目的とする。 Therefore, the present disclosure has been made in view of the above problems, and aims to provide a technology that can reduce the number of software development steps.
本開示に係るトレーサビリティ管理装置は、ソフトウェアにおける仕様同士の依存関係と、ソースコードの要素同士の依存関係と、前記仕様と前記要素との対応関係を含むトレーサビリティ情報とに基づいて、MDM情報を作成するMDM作成部と、前記仕様同士の依存関係及び前記トレーサビリティ情報、または、前記MDM情報に基づいて、前記ソースコードの前記要素のうち依存可能な要素を依存可能箇所として抽出する依存可能箇所解析部と、前記MDM情報と、前記MDM情報よりも過去に作成された過去MDM情報との差分情報を抽出するバージョン管理部と、前記MDM情報、前記依存可能箇所、及び、前記差分情報に基づいて、前記トレーサビリティ情報の前記対応関係における欠落候補をトレーサビリティ欠落候補として抽出するトレーサビリティ欠落解析部とを備える。 The traceability management device according to the present disclosure creates MDM information based on dependencies between specifications in software, dependencies between elements of source code, and traceability information including correspondence between the specifications and the elements. an MDM creation unit that extracts dependable elements from among the elements of the source code as dependent locations based on the dependency relationships between the specifications and the traceability information, or the MDM information. and a version management unit that extracts difference information between the MDM information and past MDM information created in the past than the MDM information, and based on the MDM information, the dependent locations, and the difference information, and a traceability missing analysis unit that extracts missing candidates in the correspondence relationship of the traceability information as traceability missing candidates.
本開示によれば、MDM情報と、MDM情報のソースコードの要素のうち依存可能な要素を依存可能箇所と、MDM情報と過去MDM情報との差分情報とに基づいて、トレーサビリティ情報の対応関係における欠落候補をトレーサビリティ欠落候補として抽出する。これにより、ソフトウェア開発工数を削減することができる。 According to the present disclosure, based on the MDM information, the dependable elements of the source code of the MDM information, the dependable locations, and the difference information between the MDM information and past MDM information, the correspondence relationship of traceability information is determined. Extract missing candidates as traceability missing candidates. This makes it possible to reduce the number of software development steps.
<実施の形態1>
<構成>
図1は、本実施の形態1に係るトレーサビリティ管理装置であるトレーサビリティ欠落検出装置10の構成を示すブロック図である。なお、トレーサビリティ管理装置は、トレーサビリティ欠落検出装置10に限ったものではなく、トレーサビリティ欠落検出以外の機能も有していてもよい。
<Embodiment 1>
<Configuration>
FIG. 1 is a block diagram showing the configuration of a traceability
トレーサビリティ欠落検出装置10は、例えばコンピュータである。トレーサビリティ欠落検出装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とをハードウェアとして備える。
The traceability
プロセッサ11は、信号線を介してトレーサビリティ欠落検出装置10の他のハードウェアと接続され、他のハードウェアを制御する。プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
The
メモリ12は、プロセッサ11で処理されるデータを一時的に記憶する記憶装置である。メモリ12は、例えば、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
The
ストレージ13は、メモリ12に随時記憶されるデータを保管する記憶装置である。ストレージ13は、例えば、HDD(Hard Disk Drive)である。また、ストレージ13は、例えば、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash(登録商標))、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
The
通信インタフェース14は、トレーサビリティ欠落検出装置10外部の装置と通信するためのインタフェースである。通信インタフェース14は、例えば、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標:High-Definition Multimedia Interface)のポートである。
The
トレーサビリティ欠落検出装置10は、機能構成要素として、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24とを備える。MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能は、例えばソフトウェアにより実現される。
The traceability missing
ストレージ13には、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能が実現される。
The
図1では、トレーサビリティ欠落検出装置10は、1つのプロセッサ11を備えているが、1つのプロセッサ11を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ11と同じように、プロセッシングを行うICである。
In FIG. 1, the traceability
表示装置19は、トレーサビリティ欠落検出装置10と無線または有線を介して接続されており、トレーサビリティ欠落検出装置10は、表示装置19の表示を制御することが可能となっている。なお、図1では、表示装置19は、トレーサビリティ欠落検出装置10外部に設けられているが、トレーサビリティ欠落検出装置10に備えられてもよい。
The
<動作>
図2は、本実施の形態1に係るトレーサビリティ欠落検出装置10の動作を説明するための図である。図3は、本実施の形態1に係るトレーサビリティ欠落検出装置10の動作を説明するためのソフトウェアの構造の一例を示す図であり、種々の関係を示す概念図である。この図3では、例えば仕様の機能Aに対応する関数aが、仕様の機能Bに対応する関数bを呼び出していること、機能Bに対応する関数bが、当該機能Bに対応する変数αを使用することなどが示されている。
<Operation>
FIG. 2 is a diagram for explaining the operation of the traceability
なお、本実施の形態1に係るトレーサビリティ欠落検出装置10の動作は、本実施の形態1に係るトレーサビリティ欠落検出に相当する。また、本実施の形態1に係るトレーサビリティ欠落検出装置10の動作は、本実施の形態1に係るトレーサビリティ欠落検出プログラムの処理に相当する。
Note that the operation of the traceability
<MDM作成部21の処理>
図2に示すように、MDM作成部21は、通信インタフェース14を介して仕様依存関係リスト31と、ソースコード依存関係リスト32と、トレーサビリティリスト33との入力を受け付け、それらリストをメモリ12に書き込む。MDM作成部21は、仕様依存関係リスト31から仕様レベルでの依存関係、つまりソフトウェアにおける仕様同士の依存関係を参照する。MDM作成部21は、ソースコード依存関係リスト32からソースコードレベルでの依存関係、つまりソースコードの要素同士の依存関係を参照する。MDM作成部21は、トレーサビリティリスト33に含まれる仕様とソースコードの要素との対応関係を参照する。
<Processing of
As shown in FIG. 2, the
仕様依存関係リスト31は、仕様レベルでの依存関係をリスト化したものである。例えば、仕様依存関係リスト31は、図4のように依存元の機能と依存先の機能とを紐付けたリスト等である。仕様の依存元及び依存先は、機能ではなく、ソフトウェアを構成するモジュールでも、ファイルやフォルダ等でも良い。依存関係とは、関数の呼び出し関係、及び、変数の参照関係、並びに、それら関係によって生じる機能の関係等を意味する。例えば、一の機能の関数が別の機能の変数を参照する場合、関数に対応する一の機能と、変数に対応する別の機能との間に仕様レベルでの依存関係が存在することを意味する。この場合、関数に対応する一の機能が依存元の機能となり、変数に対応する別の機能が依存先の機能となる。
The specification
なお、図4の仕様依存関係リスト31は、図3のソフトウェアの構造に対応しており、図3の矢印のアローヘッドがない側の機能が図4の依存元として記載され、図3の矢印のアローヘッドがある側の機能が図4の依存先として記載されている。仕様依存関係リスト31は、仕様書やアーキテクチャを示すデータ等を参照して手動で作成されても良いし、ツールやスクリプトを使用して自動で作成されても良い。
Note that the
ソースコード依存関係リスト32は、ソースコードレベルでの依存関係をリスト化したものである。例えば、ソースコード依存関係リスト32は、図5のように依存元の要素と依存先の要素とを紐付けたリスト等である。ここでいう要素は、例えば、ソースコード中の関数や変数などである。変数の参照の場合、依存元は変数を参照する関数であり、依存先は参照される変数である。関数の呼び出しの場合、依存元は呼び出す関数であり、依存先は呼び出される関数である。
The source
なお、図5のソースコード依存関係リスト32は、図3のソフトウェアの構造に対応しており、図3の矢印のアローヘッドがない側の関数が図5の依存元として記載され、図3の矢印のアローヘッドがある側の関数または変数が図5の依存先として記載されている。ソースコード依存関係リスト32は、ソースコードを参照して手動で作成されても良いし、ツールやスクリプトを使用して自動で作成されても良い。ソースコード依存関係リスト32は、ソースコードの各要素の種別及び各要素が所属するファイル等の関連情報や、依存種別等を保持しても良い。
Note that the source
トレーサビリティ情報であるトレーサビリティリスト33は、仕様とソースコードの要素との対応関係をリスト化したものである。例えば、トレーサビリティリスト33は、図6のように仕様の機能とソースコードの要素とを紐付けたリスト等である。例えば、仕様とソースコードの要素との対応関係とは、仕様で定義された機能がソースコードの要素によって実現されることを示す。
The
なお、図6のトレーサビリティリスト33は、図3のソフトウェアの構造に対応しており、図3の機能と、当該機能に付された枠内の関数または変数との間に対応関係が存在することが記載されている。トレーサビリティリスト33は、ソースコードを参照して手動で作成されても良いし、ツールやスクリプトを使用して自動で作成されても良い。トレーサビリティリスト33は、ソースコードの各要素の種別及び各要素が所属するファイル等の関連情報を保持しても良い。
Note that the
さて、図2に示すように、MDM作成部21は、仕様依存関係リスト31、ソースコード依存関係リスト32、及び、トレーサビリティリスト33に基づいて、MDM情報34を作成する。
Now, as shown in FIG. 2, the
MDM情報34は、仕様依存関係リスト31の依存関係と、ソースコード依存関係リスト32の依存関係と、トレーサビリティリスト33の対応関係とをまとめた情報である。例えば、MDM情報34は、図7のように1行目の各列を依存関係の依存元またはトレーサビリティの機能とし、1列目の各行を依存関係の依存先またはトレーサビリティの要素として表した表形式等で表される。
The
図7のような表形式の場合、2行目から5行目までかつ2列目から5列目までの左上の領域は、仕様依存関係リスト31に基づく領域であり、仕様レベルでの依存関係を示すDSMとなる。6行目から13行目までかつ6列目から13列目までの右下の領域は、ソースコード依存関係リスト32に基づく領域であり、ソースコードレベルでの依存関係を示すDSMとなる。6行目から13行目までかつ2列目から5列目までの左下の領域は、トレーサビリティリスト33に基づく領域であり、仕様とソースコードの要素との対応関係を示すDMMとなる。2行目から5行目までかつ6列目から13列目までの右上の領域は使用しなくてもよいし、左下の領域のDMMと同じ情報が記載されても良い。MDM情報34は、表形式に限ったものではなく、例えばリスト形式等でも良い。
In the case of a table format as shown in FIG. 7, the upper left area from the second row to the fifth row and from the second column to the fifth column is an area based on the
次に、図3から図7を参照して、MDM作成部21の処理の一例を具体的に説明する。
Next, an example of the processing of the
MDM作成部21は、図4に示す仕様依存関係リスト31から、仕様レベルでの依存関係を抽出する。例えば、図4の2行目のように、依存元の機能Aから依存先の機能Bへの依存関係が存在する場合には、MDM作成部21は、依存元の機能Aと依存先の機能Bとを抽出する。
The
MDM作成部21は、図5に示すソースコード依存関係リスト32から、ソースコードレベルでの依存関係を抽出する。例えば、図5の2行目のように、依存元の関数aから依存先の関数bへの依存関係が存在する場合には、MDM作成部21は、依存元の関数aと依存先の関数bとを抽出する。
The
MDM作成部21は、図6に示すトレーサビリティリスト33から、仕様とソースコードの要素との対応関係を抽出する。例えば、図6の2行目のように、仕様で定義された機能Aがソースコードの関数aと対応している場合には、MDM作成部21は、機能Aと関数aとの対応関係を抽出する。
The
MDM作成部21は、抽出した仕様レベルでの依存元及び依存先と、抽出したソースコードレベルでの依存元及び依存先と、抽出した仕様及びソースコードの要素の対応関係とをマトリクス化し、図7に示すMDM情報34を作成する。例えば、図7の3行2列目の「○」は、図4の2行目の抽出結果に基づいて付されており、依存元の機能Aから依存先の機能Bへの依存関係が存在することを示す。また、図7の7行6列目の「○」は、図5の2行目の抽出結果に基づいて付されており、関数aから関数bへの依存関係が存在することを示す。また、図7の6行2列目の「○」は、図6の2行目の抽出結果に基づいて付されており、機能Aと関数aとが対応することを示す。
The
MDM作成部21は、作成したMDM情報34をメモリ12に書き込む。
The
<依存可能箇所解析部22の処理>
図2に示すように、依存可能箇所解析部22は、MDM作成部21で作成されたMDM情報34に基づいて、ソースコードレベルでの依存可能箇所リスト35を作成する。ここでは、依存可能箇所解析部22は、MDM情報34のうちの仕様レベルでの依存関係と、MDM情報34のうちのトレーサビリティの対応関係とに基づいて依存可能箇所リスト35を作成する例について説明する。なお、依存可能箇所解析部22は、MDM情報34に基づいてではなく、仕様依存関係リスト31と、トレーサビリティリスト33とに基づいて依存可能箇所リスト35を作成してもよい。
<Processing of the possible dependence
As shown in FIG. 2, the dependent
依存可能箇所リスト35は、ソースコードの要素のうち依存可能な要素を、依存可能箇所として示すリストである。依存可能とは、仕様レベルでの依存関係をアーキテクチャとみなした際に、対応するソースコードレベルでの依存関係にアーキテクチャ崩れが起きていないことを意味する。例えば、依存可能箇所リスト35は、図8のようにソースコードレベルでの依存可能な依存関係の依存元と依存先を紐付けたリストである。
The
図3から図8を参照して、依存可能箇所解析部22の処理を説明する。
The processing of the dependable
依存可能箇所解析部22は、MDM情報34から、仕様レベルでの依存関係と、トレーサビリティの対応関係とを抽出する。
The dependent
依存可能箇所解析部22は、仕様レベルでの依存関係の依存元及び依存先のそれぞれに、トレーサビリティで対応付けられたソースコードレベルの要素を網羅的に割り振って、要素同士の組合せを網羅的に求める。そして、依存可能箇所解析部22は、図8のように求めた組合せの全てを示す依存可能箇所リスト35を作成する。例えば、図3の構成では、機能Aから機能Bへの依存関係が存在し、機能Aは関数aに対応し、機能Bは関数b及び変数αに対応するため、関数aから関数bへの依存関係と、関数aから変数αへの依存関係とが依存可能箇所リスト35に記載される。
The possible dependence
依存可能箇所解析部22は、作成した依存可能箇所リスト35をメモリ12に書き込む。
The dependent
なお、依存可能箇所解析部22は、図9のようにMDM情報34に依存可能箇所の情報を付与してもよい。図9では、例えば、7行6列目の関数aから関数bへの依存関係を示すセルの背景にハッチングが付されることによって、関数aは関数bへ依存可能であることが示されている。なお、情報の付与方法は、セルの背景の変更に限らない。
Note that the possible dependence
<バージョン管理部23の処理>
図2に示すように、バージョン管理部23は、例えば通信インタフェース14を介して前回MDM情報36の入力を受け付け、メモリ12に書き込む。前回MDM情報36は、MDM作成部21で作成されたMDM情報34よりも過去に作成された過去MDM情報であり、例えばMDM情報34と同じ形式の情報である。
<Processing of
As shown in FIG. 2, the
バージョン管理部23は、MDM作成部21で作成されたMDM情報34と、前回MDM情報36とに基づいて、MDM差分リスト37を作成する。MDM差分リスト37は、MDM情報34と、前回MDM情報36との差分情報をリスト化したものであり、詳細については後述する。
The
図10から図13を参照して、バージョン管理部23の処理を説明する。
The processing of the
図10は、図3のソフトウェアの構造に対して変更を加えた後のソフトウェアの構造の一例を示す図である。この図10では、機能Aの関数aから関数gへの依存関係が追加されており、関数gが対応する機能は不明であることが示されている。以下の説明では、図3のソフトウェアの構造から図10のソフトウェアの構造への変更を「第1変更」と記す。 FIG. 10 is a diagram showing an example of a software structure after changes have been made to the software structure of FIG. In FIG. 10, a dependency relationship from function a of function A to function g has been added, indicating that the function to which function g corresponds is unknown. In the following description, the change from the software structure in FIG. 3 to the software structure in FIG. 10 will be referred to as a "first change."
第1変更が行われた場合、MDM作成部21は、図5のソースコード依存関係リスト32の代わりに、依存元の関数aから依存先の関数gへの依存関係が追加された図11のソースコード依存関係リスト32を用いて、MDM情報34を作成する。
When the first change is made, the
図12は、MDM作成部21が図11のソースコード依存関係リスト32を用いて作成したMDM情報34を示す図である。第1変更に関する説明では、図12のMDM情報34が、第1変更後にMDM作成部21で作成されたMDM情報34であり、図7のMDM情報34が、前回MDM情報36であるものとして説明する。図12のMDM情報34では、図7のMDM情報34の一行目の依存元と一列目の依存先とのそれぞれに関数gの項目が追加され、12行6列目に「〇」が追加されている。
FIG. 12 is a diagram showing
バージョン管理部23は、MDM作成部21で作成された図12のMDM情報34と、図7の前回MDM情報36との差分を抽出して、図13に示すようなMDM差分リスト37を作成する。例えば、MDM差分リスト37は、MDM情報の表の行及び列と変更種別とを紐づけたリストである。変更種別は、例えば、トレーサビリティの対応関係の追加や削除等や、仕様レベルまたはソースコードレベルでの依存関係の追加や削除等である。図13の1行目には、ソースコードレベルの変更が行われたことが示されており、図13の2行目には、関数aから関数gへの依存関係が追加されたことが示されている。MDM差分リスト37は、仕様の依存関係の差分情報か、ソースコードの依存関係の差分情報か、トレーサビリティの対応関係の差分情報かを、差分情報ごとに示す情報を含んでも良い。
The
バージョン管理部23は、作成したMDM差分リスト37をメモリ12に書き込む。
The
なお、メモリ12に書き込まれる前回MDM情報36は、通信インタフェース14を介して受け付けた前回MDM情報36に限ったものではない。例えば、バージョン管理部23は、MDM情報34を、古いMDM情報としてメモリ12に書き込んでもよい。そして、次回動作時に、バージョン管理部23は、メモリ12に書き込まれた古いMDM情報を、前回MDM情報36として用いてもよい。
Note that the
また、バージョン管理部23は、直近の古いMDM情報34のみをメモリ12に保持させてもよいし、複数の古いMDM情報34をメモリ12に保持させても良い。また、バージョン管理部23は、保持された複数の古いMDM情報34のうちの特定のバージョンの古いMDM情報34を前回MDM情報36として用い、前回MDM情報36とMDM情報34との差分情報を抽出しても良い。また、バージョン管理部23は、特定のバージョンの古いMDM情報34を前回MDM情報36として用い、別の特定のバージョンの古いMDM情報34をMDM情報34として用いて、前回MDM情報36とMDM情報34との差分情報を抽出しても良い。
Further, the
<トレーサビリティ欠落解析部24の処理>
図2に示すように、トレーサビリティ欠落解析部24は、MDM情報34と、依存可能箇所リスト35と、MDM差分リスト37とに基づいて、トレーサビリティ情報の対応関係における欠落候補、つまり欠落の可能性のある組合せを、トレーサビリティ欠落候補として抽出(検出)する。例えば、トレーサビリティ欠落解析部24は、MDM差分リスト37に基づいてトレーサビリティ欠落候補の確認方法を決定する。そして、トレーサビリティ欠落解析部24は、決定された確認方法にしたがって、MDM情報34と依存可能箇所リスト35とに基づき、MDM情報34内のトレーサビリティ欠落候補を抽出する。
<Processing of traceability missing
As shown in FIG. 2, the traceability missing
トレーサビリティ欠落解析部24は、抽出結果、つまりトレーサビリティ欠落候補を示すトレーサビリティ欠落リスト38を作成する。トレーサビリティ欠落リスト38は、MDMの変更に伴ってトレーサビリティの対応関係に欠落がある可能性がある場合に、その欠落候補をリスト化したものであり、詳細については後述する。
The traceability missing
なお本実施の形態1では、トレーサビリティ欠落解析部24は、MDM情報34と、当該MDM情報34のトレーサビリティ欠落リスト38とを、表示装置19(図1)に表示させる制御を行う。
In the first embodiment, the traceability
次に、図13から図16を参照して、上記第1変更が行われた場合のトレーサビリティ欠落解析部24の処理を説明する。
Next, with reference to FIGS. 13 to 16, the processing of the traceability
トレーサビリティ欠落解析部24は、バージョン管理部23で作成されたMDM差分リスト37から差分情報の変更種別を取得する。図13の例のように、関数aから関数gの依存関係が追加された場合、トレーサビリティ欠落解析部24は、ソースコードレベルでの依存関係が追加されたことを、変更種別として取得する。
The traceability missing
変更種別がソースコードレベルの依存関係の追加である場合、トレーサビリティ欠落解析部24は、MDM情報34と、依存可能箇所リスト35とに基づいて、追加されたソースコードレベルでの依存関係が依存可能であるか否かを確認する。
When the change type is addition of source code level dependencies, the traceability missing
図14は、第1変更が行われた場合の依存可能箇所リスト35の内容が反映されたMDM情報を示す図である。図14では説明の便宜上、依存可能箇所リスト35の依存可能箇所が、図9と同様にハッチングによって反映されている。
FIG. 14 is a diagram showing MDM information in which the contents of the
追加された依存関係のセル、つまり12行6列目の関数aから関数gへの依存箇所を示すセルには、「〇」が付されているがハッチングが付されていない。このような場合には、トレーサビリティ欠落解析部24は、依存不可、つまりアーキテクチャ違反であると判定する。この時、図14のようにMDM情報34にアーキテクチャ違反であるという情報を付与してもよい。その一例として、図14では、12行6列目の関数aから関数gへの依存箇所を示すセルの枠を太枠にすることで、関数aから関数gへの依存関係はアーキテクチャ違反であることが示されている。ただし、情報の付与方法は、セルの枠線の変更に限らない。
The added dependency cell, that is, the cell in the 12th row and 6th column indicating the dependent location from function a to function g, is marked with "O" but is not hatched. In such a case, the traceability
追加された依存関係にアーキテクチャ違反が含まれない場合、トレーサビリティ欠落解析部24は、トレーサビリティ欠落は無いと判定し、空のトレーサビリティ欠落リスト38を出力する。
If the added dependency relationship does not include an architecture violation, the traceability
追加された依存関係にアーキテクチャ違反が含まれる場合、トレーサビリティ欠落解析部24は、追加することでアーキテクチャ違反が解消されるようなトレーサビリティの対応関係を検出する。図14の例の場合、関数gはどの機能にも対応していないため、トレーサビリティ欠落解析部24は、関数gと依存関係にある関数aをMDM情報から読み出し、関数aが対応する機能AをMDM情報から読み出す。次に、トレーサビリティ欠落解析部24は、関数aが関数gの依存元であることと同様に機能Aが依存元となる機能B及び機能Cを抽出し、関数gは機能B及び機能Cのいずれかに対応するものと判定する。
If the added dependency relationship includes an architecture violation, the traceability
トレーサビリティ欠落解析部24は、関数gと機能Bとの対応関係、及び、関数gと機能Cとの対応関係をリスト化して、図15に示すようなトレーサビリティ欠落リスト38を作成する。例えば、トレーサビリティ欠落リスト38は、図6のトレーサビリティリスト33と同様に、仕様とソースコードの要素との対応関係を示したリストである。トレーサビリティ欠落リスト38は、関連するMDM差分の情報を含んでも良い。
The traceability missing
ここで、関数a及び関数gの両方または片方がいずれの機能にも対応していなかった場合、トレーサビリティ欠落解析部24は、関数a及び関数gのそれぞれについて、全ての機能をトレーサビリティ欠落候補として出力しても良い。
Here, if both or one of function a and function g does not correspond to any of the functions, the traceability missing
また、トレーサビリティ欠落解析部24は、アーキテクチャ違反を解消するような対応関係を発見できなかった場合には、空のトレーサビリティ欠落リスト38を出力しても良いし、全ての機能をトレーサビリティ欠落候補として出力しても良い。
Furthermore, if the traceability missing
トレーサビリティ欠落解析部24は、トレーサビリティ欠落リスト38をメモリ12に書き込む。また、トレーサビリティ欠落解析部24は、通信インタフェース14を介してトレーサビリティ欠落リスト38を出力する。出力されたトレーサビリティ欠落リスト38は、表示装置19などによって表示される。
The traceability
なお、トレーサビリティ欠落解析部24は、図16のように、MDM情報34に対してトレーサビリティ欠落リスト38の情報を付与してもよい。例えば、トレーサビリティ欠落解析部24は、図16の12行目の機能Bと関数gとの対応関係、及び、機能Cと関数gとの対応関係を示すセルの背景を黒色にしてもよい。これにより、機能Bと関数gとの対応関係、または、機能Cと関数gとの対応関係において、トレーサビリティ欠落の可能性があることが示される。情報の付与方法は、セルの背景色の変更に限らない。トレーサビリティ欠落解析部24は、通信インタフェース14を介して、図15のトレーサビリティ欠落リスト38と、図16の情報付与済みのMDM情報34との少なくともいずれか1つを出力してもよい。
Note that the traceability
図17から図21を参照して、第1変更と異なる変更が行われた場合のトレーサビリティ欠落解析部24の処理を説明する。以下では、第1変更を経て機能Cと関数gとの対応関係を追加した後に、図4の仕様依存関係リスト31から図17の仕様依存関係リスト31への変更が行われたものとする。以下の説明では、図4の仕様依存関係リスト31から図17の仕様依存関係リスト31への変更を「第2変更」と記す。
With reference to FIGS. 17 to 21, the processing of the traceability
第2変更が行われた場合、MDM作成部21は、図4の仕様依存関係リスト31の代わりに図17の仕様依存関係リスト31を用いてMDM情報34を作成する。依存可能箇所解析部22は、MDM情報34に基づいてソースコードレベルでの依存可能箇所リスト35を作成する。
When the second change is made, the
図18は、第2変更が行われた場合の依存可能箇所リスト35の内容が反映されたMDM情報34を示す図である。図18では説明の便宜上、依存可能箇所リスト35の依存可能箇所が、図14と同様にハッチングによって示されている。
FIG. 18 is a diagram showing the
バージョン管理部23は、第2変更後のMDM情報34と、第2変更前の前回MDM情報36とに基づいて、機能Cから機能Dの仕様の依存関係が削除されたことを示す図19のMDM差分リスト37を作成する。トレーサビリティ欠落解析部24は、バージョン管理部23で作成されたMDM差分リスト37から差分情報の変更種別を取得する。図19の例のように、機能Cから機能Dへの依存関係が削除された場合、トレーサビリティ欠落解析部24は、仕様レベルでの依存関係が削除されたことを、変更種別として取得する。
Based on the
変更種別が仕様レベルでの依存関係の削除である場合、トレーサビリティ欠落解析部24は、MDM情報34と、依存可能箇所リスト35に基づいて、既存のソースコードレベルでの依存関係のそれぞれが依存可能であるか否かを確認する。
When the change type is deletion of dependencies at the specification level, the traceability missing
図18の例の場合、関数cから関数dへの依存関係と、関数cから関数fへの依存関係と、関数eから関数fへの依存関係と、関数eから変数βへの依存関係と、は依存可能箇所リスト35に含まれない。このような場合には、トレーサビリティ欠落解析部24は、依存不可、つまりアーキテクチャ違反であると判定する。
In the example of FIG. 18, there is a dependency relationship from function c to function d, a dependency relationship from function c to function f, a dependency relationship from function e to function f, and a dependency relationship from function e to variable β. , is not included in the
既存の依存関係にアーキテクチャ違反が含まれない場合、トレーサビリティ欠落解析部24は、トレーサビリティ欠落は無いと判定し、空のトレーサビリティ欠落リスト38を出力する。
If the existing dependency relationship does not include an architecture violation, the traceability
既存の依存関係にアーキテクチャ違反が含まれる場合、トレーサビリティ欠落解析部24は、追加することでアーキテクチャ違反が解消されるようなトレーサビリティの対応関係を検出する。例えば図3において、関数cは機能Cに対応しており、関数dは機能Dに対応している。この場合に、関数cが機能Dにも対応するように変更されると、関数aに対応する機能Aから機能Dへの依存関係が存在しないため、関数aから関数cへの依存関係がアーキテクチャ違反となる。一方、関数dが機能Cにも対応するように変更されると、関数aに対応する機能Aから機能Cへの依存関係が存在するため、新たなアーキテクチャ違反を起こすことなく、関数cから関数dへの依存関係のアーキテクチャ違反を除去することができる。
If an existing dependency relationship includes an architecture violation, the traceability missing
したがって、トレーサビリティ欠落解析部24は、関数dと機能Cとの対応関係を抽出する。同様に、トレーサビリティ欠落解析部24は、関数fと機能Cとの対応関係、及び、変数βと機能Cとの対応関係も抽出する。そして、トレーサビリティ欠落解析部24は、抽出した対応関係をリスト化して、図20のようなトレーサビリティ欠落リスト38を作成する。
Therefore, the traceability missing
ここで、トレーサビリティ欠落解析部24は、アーキテクチャ違反を解消するような対応関係を発見できなかった場合には、空のトレーサビリティ欠落リスト38を出力しても良いし、全ての機能をトレーサビリティ欠落候補として出力しても良い。
Here, if the traceability missing
なお、トレーサビリティ欠落解析部24は、図21のように、MDM情報34に対してトレーサビリティ欠落リスト38の情報を付与してもよい。例えば、トレーサビリティ欠落解析部24は、図21の9行4列目の機能Cと関数dとの対応関係を示すセルの背景を黒色にしてもよい。これにより、機能Cと関数dとの対応関係において、トレーサビリティ欠落の可能性があることが示される。情報の付与方法は、セルの背景色の変更に限らない。
Note that the traceability
図22から図26を参照して、第1変更及び第2変更と異なる変更が行われた場合のトレーサビリティ欠落解析部24の処理を説明する。以下では、第1変更を経て機能Cと関数gとの対応関係を追加した後に、図4の仕様依存関係リスト31から図22の仕様依存関係リスト31への変更が行われたものとする。以下の説明では、図4の仕様依存関係リスト31から図22の仕様依存関係リスト31への変更を「第3変更」と記す。
With reference to FIGS. 22 to 26, the processing of the traceability
第3変更が行われた場合、MDM作成部21は、図4の仕様依存関係リスト31の代わりに図22の仕様依存関係リスト31を用いてMDM情報34を作成する。依存可能箇所解析部22は、MDM情報34に基づいてソースコードレベルでの依存可能箇所リスト35を作成する。
When the third change is made, the
図23は、第3変更が行われた場合の依存可能箇所リスト35の内容が反映されたMDM情報34を示す図である。図23では説明の便宜上、依存可能箇所リスト35の依存可能箇所が、図14と同様にハッチングによって示されている。
FIG. 23 is a diagram showing the
バージョン管理部23は、第3変更後のMDM情報34と、第3変更前の前回MDM情報36とに基づいて、機能Bから機能Dの仕様の依存関係が追加されたことを示す図24のMDM差分リスト37を作成する。トレーサビリティ欠落解析部24は、バージョン管理部23で作成されたMDM差分リスト37から差分情報の変更種別を取得する。図24の例のように、機能Bから機能Dへの依存関係が追加された場合、トレーサビリティ欠落解析部24は、仕様レベルでの依存関係が追加されたことを、変更種別として取得する。
Based on the
変更種別が仕様レベルでの依存関係の追加である場合、トレーサビリティ欠落解析部24は、MDM情報34と、依存可能箇所リスト35に基づいて、ソースコードレベルでの依存関係において依存元の機能と依存先の機能との間にアーキテクチャ違反とならないような、トレーサビリティ情報の対応関係の組合せを確認する。
When the change type is the addition of a dependency relationship at the specification level, the traceability missing
例えば図3において、機能Bに対応する変数αが機能Dに対応付けられると、関数bから変数αへの依存関係が維持されつつ、機能Bから機能Dへの依存関係が追加される。このため、トレーサビリティ欠落解析部24は、アーキテクチャ違反とならずに機能Bから機能Dへの依存関係を追加可能な、機能Dと変数αとの対応関係を抽出する。同様に、機能Cに対応する関数cが機能Bに対応付けられると、関数cから関数d及び関数fへの依存関係が維持されつつ、機能Bから機能Dへの依存関係が追加される。このため、トレーサビリティ欠落解析部24は、アーキテクチャ違反とならずに機能Bから機能Dへの依存関係を追加可能な、機能Bと関数cとの対応関係を抽出する。同様に、トレーサビリティ欠落解析部24は、機能Bと関数eとの対応関係も抽出する。そして、トレーサビリティ欠落解析部24は、抽出した対応関係をリスト化して、図25のようなトレーサビリティ欠落リスト38を作成する。
For example, in FIG. 3, when variable α corresponding to function B is associated with function D, a dependency relationship from function B to function D is added while the dependency relationship from function b to variable α is maintained. Therefore, the traceability
ここで、アーキテクチャ違反とならないような新たな対応関係を発見できなかった場合には、トレーサビリティ欠落解析部24は、空のトレーサビリティ欠落リスト38を出力しても良い。
Here, if a new correspondence that does not result in an architecture violation cannot be found, the traceability missing
なお、トレーサビリティ欠落解析部24は、図26のように、MDM情報34に対してトレーサビリティ欠落リスト38の情報を付与してもよい。例えば、トレーサビリティ欠落解析部24は、図26の8行3列目の機能Bと関数cとの対応関係を示すセルの枠線を破線太枠にしてもよい。これにより、機能Bと関数cとの対応関係において、トレーサビリティ欠落の可能性があることが示される。ここで、図21の黒色の背景と区別しているのは、図21のMDM情報34では現状のままではアーキテクチャ違反となり、変更が必須であるのに対し、図26のMDM情報34では現状のままでもアーキテクチャ違反とならず、変更が必須ではないからである。情報の付与方法は、セルの背景色や枠線の変更に限らず、例えば、図21の表示と区別できるのであれば、図21と同様に背景色の変更としても良い。
Note that the traceability
変更種別がソースコードの依存関係の削除である場合、または、変更種別がトレーサビリティの対応関係の追加または削除である場合には、本実施の形態1に係るトレーサビリティ欠落解析部24は、空のトレーサビリティ欠落リスト38を作成してもよい。
When the change type is deletion of source code dependencies, or when the change type is addition or deletion of traceability correspondence, the traceability missing
差分情報の変更種別が複数の組合せの場合、トレーサビリティ欠落解析部24は、それぞれの変更種別に対して、上記と同様の処理を実施する。例えば、機能Bから機能Dへの仕様の依存関係の追加と、関数bから関数hへのソースコードの依存関係の追加とが同時に行われた場合について説明する。この場合、まず、トレーサビリティ欠落解析部24は、機能Bから機能Dへの仕様の依存関係の追加に関して、機能Bと関数cとの対応関係、機能Bと関数eとの対応関係、及び、機能Dと変数αとの対応関係をトレーサビリティ欠落リスト38に記載する。次に、トレーサビリティ欠落解析部24は、関数bから関数hへのソースコードの依存関係の追加に関して、機能Bと関数hとの対応関係、及び、機能Dと関数hとの対応関係をトレーサビリティ欠落リスト38に記載する。
If there are a plurality of combinations of change types in the difference information, the traceability
<実施の形態1のまとめ>
以上のような本実施の形態1に係るトレーサビリティ欠落検出装置10は、仕様またはソースコードの変更時に、トレーサビリティ欠落候補を検出することができる。このように、トレーサビリティ欠落が自動的に発見されることにより、ソフトウェアの開発者による目視でのトレーサビリティ欠落の検出時間、及び、トレーサビリティ欠落による仕様の理解にかかる時間を削減することができる。これにより、ソフトウェア開発工数を削減することができる。
<Summary of Embodiment 1>
The traceability missing
<変形例1>
実施の形態1では、トレーサビリティ欠落検出装置10のMDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能がソフトウェアで実現された。しかしながら、変形例1として、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
<Modification 1>
In the first embodiment, the functions of the
図27は、変形例1に係るトレーサビリティ欠落検出装置10の構成を示すブロック図である。
FIG. 27 is a block diagram showing the configuration of the traceability
MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能がハードウェアで実現される場合、トレーサビリティ欠落検出装置10は、プロセッサ11とメモリ12とストレージ13との代わりに、処理回路15を備える。処理回路15は、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24と、メモリ12と、ストレージ13との機能とを実現する専用の電子回路である。
When the functions of the
処理回路15には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
The
MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能は1つの処理回路15で実現されてもよいし、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24との機能は複数の処理回路15に分散させて実現されてもよい。
The functions of the
<変形例2>
変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、MDM作成部21と、依存可能箇所解析部22と、バージョン管理部23と、トレーサビリティ欠落解析部24とのうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
<Modification 2>
As a second modification, some functions may be realized by hardware, and other functions may be realized by software. In other words, some of the functions of the
プロセッサ11とメモリ12とストレージ13と処理回路15とを、総称して「プロセッシングサーキットリー」と呼ぶことができる。つまり、トレーサビリティ欠落検出装置10の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
The
<実施の形態2>
<構成>
図28は、本実施の形態2に係るトレーサビリティ欠落検出装置10の構成を示すブロック図である。本実施の形態2は、実施の形態1と異なり、トレーサビリティ欠落だけではなく、依存関係欠落も検出する。以下では、本実施の形態2に係る構成要素のうち、実施の形態1と異なるこの点を主に説明し、同一及び類似する点については説明を省略する。
<Embodiment 2>
<Configuration>
FIG. 28 is a block diagram showing the configuration of the traceability
トレーサビリティ欠落検出装置10は、図1に示すトレーサビリティ欠落検出装置10と異なり、依存関係欠落解析部25を備える。依存関係欠落解析部25は、他の機能構成要素と同様にソフトウェアによって実現されてもよいし、依存関係欠落解析部25の一部または全部が、他の機能構成要素と同様にハードウェアによって実現されてもよい。
The traceability
<動作>
図29は、本実施の形態2に係るトレーサビリティ欠落検出装置10の動作を説明するための図である。
<Operation>
FIG. 29 is a diagram for explaining the operation of the traceability
本実施の形態2に係るトレーサビリティ欠落検出装置10の動作は、本実施の形態2に係るトレーサビリティ欠落検出方法に相当する。また、本実施の形態2に係るトレーサビリティ欠落検出装置10の動作は、本実施の形態2に係るトレーサビリティ欠落検出プログラムの処理に相当する。
The operation of the traceability
<依存関係欠落解析部25の処理>
図29に示すように、依存関係欠落解析部25は、MDM情報34と、MDM差分リスト37と、依存可能箇所リスト35とに基づいて、ソースコードの要素同士の依存関係における欠落候補、つまり欠落の可能性のある組合せを、依存関係欠落候補として抽出(検出)する。例えば、依存関係欠落解析部25は、MDM差分リスト37に基づいて依存関係欠落候補の確認方法を決定する。そして、依存関係欠落解析部25は、決定された確認方法にしたがって、MDM情報34と依存可能箇所リスト35とに基づき、MDM情報34内の依存関係欠落候補を抽出する。
<Processing of missing
As shown in FIG. 29, the dependency relationship missing
依存関係欠落解析部25は、抽出結果、つまり依存関係欠落候補を示す依存関係欠落リスト39を作成する。依存関係欠落リスト39は、MDMの変更に伴ってソースコードレベルでの依存関係に欠落がある可能性がある場合に、その欠落候補をリスト化したものであり、詳細については後述する。
The missing
なお本実施の形態2では、依存関係欠落解析部25は、MDM情報34と、当該MDM情報34の依存関係欠落リスト39とを、表示装置19(図1)に表示させる制御を行う。
In the second embodiment, the missing
図30から図35を参照して、依存関係欠落解析部25の処理を説明する。
The processing of the missing
図30は、図3のソフトウェアの構造に対して変更を加えた後のソフトウェアの構造の一例を示す図である。この図30では、機能Cに関数gが追加されていることが示されている。以下の説明では、図3のソフトウェアの構造から図30のソフトウェアの構造への変更、つまり機能Cと関数gとのトレーサビリティの対応関係の追加を「第4変更」と記す。 FIG. 30 is a diagram showing an example of a software structure after changes are made to the software structure of FIG. 3. FIG. 30 shows that function g is added to function C. In the following description, the change from the software structure in FIG. 3 to the software structure in FIG. 30, that is, the addition of the traceability correspondence between function C and function g, will be referred to as a "fourth change."
第4変更が行われた場合、MDM作成部21は、図6のトレーサビリティリスト33の代わりに図31のトレーサビリティリスト33を用いてMDM情報34を作成する。依存可能箇所解析部22は、MDM情報34に基づいてソースコードレベルでの依存可能箇所リスト35を作成する。
When the fourth change is made, the
図32は、第4変更が行われた場合の依存可能箇所リスト35の内容が反映されたMDM情報34を示す図である。図32では説明の便宜上、依存可能箇所リスト35の依存可能箇所が、図14と同様にハッチングによって示されている。
FIG. 32 is a diagram showing the
バージョン管理部23は、第4変更後のMDM情報34と、第4変更前の前回MDM情報36とに基づいて、機能Cと関数gとのトレーサビリティの対応関係が追加されたことを示す図33のMDM差分リスト37を作成する。依存関係欠落解析部25は、バージョン管理部23で作成されたMDM差分リスト37から差分情報の変更種別を取得する。図33の例のように、機能Cと関数gとの対応関係が追加された場合、依存関係欠落解析部25は、トレーサビリティの対応関係が追加されたことを、変更種別として取得する。
33 showing that the traceability correspondence relationship between function C and function g has been added, based on the
変更種別がトレーサビリティの対応関係の追加の場合、依存関係欠落解析部25は、追加されたトレーサビリティに関係するソースコードレベルでの依存関係を確認する。例えば、依存関係欠落解析部25は、機能Cに対応する関数c及び関数eを抽出し、関数c及び関数eから関数gへの依存関係と、関数gから関数c及び関数eへの依存関係とを、依存関係欠落候補として抽出する。また、機能Aから機能Cへの依存関係が存在するため、依存関係欠落解析部25は、機能Aに対応する関数aから機能Cに対応する関数gへの依存関係を依存関係欠落候補として抽出する。また、機能Cから機能Dへの依存関係が存在するため、依存関係欠落解析部25は、機能Cに対応する関数gから機能Dに対応する関数d、関数f、及び、変数βへの依存関係を依存関係欠落候補として抽出する。
When the change type is addition of traceability correspondence, the missing
依存関係欠落解析部25は、抽出した依存関係をリスト化して、図34のような依存関係欠落リスト39を作成する。
The missing
例えば、依存関係欠落リスト39は、図5のソースコード依存関係リスト32と同様に、ソースコードの要素同士の対応関係を示したリストである。なお、依存関係欠落リスト39は、ソースコードの各要素の種別や所属するファイル等の関連情報や、依存種別等を含んでも良いし、関連するMDM差分の情報を含んでも良い。
For example, the missing
依存関係欠落解析部25は、依存関係欠落リスト39をメモリ12に書き込む。また、依存関係欠落解析部25は、通信インタフェース14を介して依存関係欠落リスト39を出力する。出力された依存関係欠落リスト39は、表示装置19などによって表示される。
The missing
なお、依存関係欠落解析部25は、図35のように、MDM情報34に対して依存関係欠落リスト39の情報を付与してもよい。例えば、依存関係欠落解析部25は、図35の8行12列目の関数gから関数cへの依存関係を示すセルの枠線を破線太枠にしてもよい。これにより、関数gから関数cへの依存関係において、依存関係欠落の可能性があることが示される。情報の付与方法は、セルの枠線の変更に限らない。依存関係欠落解析部25は、通信インタフェース14を介して、図34の依存関係欠落リスト39、図35の情報付与済みのMDM情報34との少なくともいずれか1つを出力しても良い。
Note that the missing
図22から図26並びに図36及び図37を参照して、上記第3変更が行われた場合の依存関係欠落解析部25の処理を説明する。
With reference to FIGS. 22 to 26, as well as FIGS. 36 and 37, the processing of the missing
図24の例のように、機能Bから機能Dへの依存関係が追加された場合、依存関係欠落解析部25は、仕様レベルでの依存関係が追加されたことを、変更種別として取得する。
As in the example of FIG. 24, when a dependency relationship from function B to function D is added, the missing
変更種別が仕様レベルでの依存関係の追加の場合、依存関係欠落解析部25は、追加された依存関係の依存元の機能に対応するソースコードの要素から、依存先の機能に対応するソースコードの要素への依存関係を、依存関係欠落候補として抽出して依存関係欠落リスト39を作成する。図24の例のように、機能Bから機能Dへの依存関係が追加された場合、依存関係欠落解析部25は、機能Bに対応する関数bから、機能Dに対応する関数d、関数f、及び、変数βへの依存関係をリスト化して、図36の依存関係欠落リスト39を作成する。
When the change type is the addition of a dependency relationship at the specification level, the missing
なお、依存関係欠落解析部25は、図37のように、MDM情報34に対して依存関係欠落リスト39の情報を付与してもよい。例えば、依存関係欠落解析部25は、図37の9行7列目の関数bから関数dへの依存関係を示すセルの枠線を破線太枠にしてもよい。これにより、関数bから関数dへの依存関係について、依存関係欠落の可能性があることが示される。情報の付与方法は、セルの枠線の変更に限らない。依存関係欠落解析部25は、通信インタフェース14を介して、図36の依存関係欠落リスト39、図37の情報付与済みのMDM情報34との少なくともいずれか1つを出力しても良い。
Note that the missing
変更種別が、仕様レベルでの依存関係の削除、または、トレーサビリティの対応関係の削除の場合、依存関係欠落解析部25は、アーキテクチャ違反となる依存関係を、依存関係欠落候補として依存関係欠落リスト39を作成しても良い。
When the change type is deletion of a dependency relationship at the specification level or deletion of a traceability correspondence relationship, the missing
変更種別が、ソースコードレベルでの依存関係の追加、または、ソースコードレベルでの依存関係の削除の場合、依存関係欠落解析部25は、空の依存関係欠落リスト39を作成してもよい。
If the change type is addition of dependency at the source code level or deletion of dependency at the source code level, the missing
差分情報の変更種別が複数の組合せの場合、依存関係欠落解析部25は、それぞれの変更種別に対して、上記と同様の処理を実施する。例えば、機能Cと関数gとのトレーサビリティの対応関係の追加と、機能Bから機能Dへの仕様の依存関係の追加とが同時に行われた場合について説明する。この場合、まず、依存関係欠落解析部25は、機能Cと関数gとのトレーサビリティの対応関係の追加に関して、関数a、関数c、及び、関数eから関数gへの依存関係と、関数gから関数c、関数d、関数e、関数f、及び、変数βへの依存関係とを依存関係欠落リスト39に記載する。次に、依存関係欠落解析部25は、機能Bから機能Dへの仕様の依存関係の追加に関して、関数bから関数d、関数f、及び、変数βへの依存関係を依存関係欠落リスト39に記載する。
If there are a plurality of combinations of change types in the difference information, the missing
<実施の形態2のまとめ>
以上のような本実施の形態2に係るトレーサビリティ欠落検出装置10は、仕様またはソースコードの変更時に、トレーサビリティ欠落候補だけではなく、ソースコードレベルでの依存関係欠落候補を検出することができる。このように、ソースコードレベルでの依存関係欠落が自動的に発見されることにより、ソフトウェア開発者は、ソースコードレベルでの依存関係欠落を事前に予防することができる。これにより、ソースコードの実装時間やバグの作りこみを抑制することができ、ソフトウェア開発工数を削減することができる。
<Summary of Embodiment 2>
The traceability missing
なお、各実施の形態及び各変形例を自由に組み合わせたり、各実施の形態及び各変形例を適宜、変形、省略したりすることが可能である。 Note that it is possible to freely combine each embodiment and each modification, or to modify or omit each embodiment and each modification as appropriate.
10 トレーサビリティ欠落検出装置、19 表示装置、21 MDM作成部、22 依存可能箇所解析部、23 バージョン管理部、24 トレーサビリティ欠落解析部、25 依存関係欠落解析部。 10 Traceability missing detection device, 19 Display device, 21 MDM creation section, 22 Possible dependence location analysis section, 23 Version management section, 24 Traceability missing analysis section, 25 Dependency relationship missing analysis section.
Claims (7)
前記仕様同士の依存関係及び前記トレーサビリティ情報、または、前記MDM情報に基づいて、前記ソースコードの前記要素のうち依存可能な要素を依存可能箇所として抽出する依存可能箇所解析部と、
前記MDM情報と、前記MDM情報よりも過去に作成された過去MDM情報との差分情報を抽出するバージョン管理部と、
前記MDM情報、前記依存可能箇所、及び、前記差分情報に基づいて、前記トレーサビリティ情報の前記対応関係における欠落候補をトレーサビリティ欠落候補として抽出するトレーサビリティ欠落解析部と
を備える、トレーサビリティ管理装置。 an MDM creation unit that creates MDM information based on dependencies between specifications in software, dependencies between elements of source code, and traceability information including correspondence between the specifications and the elements;
a dependent location analysis unit that extracts dependent elements from among the elements of the source code as dependent locations based on the dependency relationship between the specifications and the traceability information or the MDM information;
a version management unit that extracts difference information between the MDM information and past MDM information created in the past than the MDM information;
A traceability management device comprising: a traceability missing analysis unit that extracts missing traceability candidates in the correspondence of the traceability information as traceability missing candidates based on the MDM information, the dependable locations, and the difference information.
前記バージョン管理部は、
保持された複数のMDM情報のうちの特定のMDM情報を前記過去MDM情報として用いる、トレーサビリティ管理装置。 The traceability management device according to claim 1,
The version control unit is
A traceability management device that uses specific MDM information among a plurality of held MDM information as the past MDM information.
前記トレーサビリティ欠落解析部は、
前記MDM情報と、当該MDM情報の前記トレーサビリティ欠落候補とを表示装置に表示させる制御を行う、トレーサビリティ管理装置。 The traceability management device according to claim 1 or 2,
The traceability missing analysis section
A traceability management device that performs control to display the MDM information and the traceability missing candidates of the MDM information on a display device.
前記MDM情報、前記依存可能箇所、及び、前記差分情報に基づいて、前記ソースコードの前記要素同士の依存関係における欠落候補を依存関係欠落候補として抽出する依存関係欠落解析部をさらに備える、トレーサビリティ管理装置。 The traceability management device according to any one of claims 1 to 3,
Traceability management further comprising: a dependency missing analysis unit that extracts missing dependency candidates in dependency relationships between the elements of the source code as dependency missing candidates based on the MDM information, the possible dependence locations, and the difference information. Device.
前記依存関係欠落解析部は、
前記MDM情報と、当該MDM情報の前記依存関係欠落候補とを表示装置に表示させる制御を行う、トレーサビリティ管理装置。 The traceability management device according to claim 4,
The dependency missing analysis unit includes:
A traceability management device that performs control to display the MDM information and the dependency relationship missing candidates of the MDM information on a display device.
依存可能箇所解析部が、前記仕様同士の依存関係及び前記トレーサビリティ情報、または、前記MDM情報に基づいて、前記ソースコードの前記要素のうち依存可能な要素を依存可能箇所として抽出し、
バージョン管理部が、前記MDM情報と、前記MDM情報よりも過去に作成された過去MDM情報との差分情報を抽出し、
トレーサビリティ欠落解析部が、前記MDM情報、前記依存可能箇所、及び、前記差分情報に基づいて、前記トレーサビリティ情報の前記対応関係における欠落候補をトレーサビリティ欠落候補として抽出する、トレーサビリティ管理方法。 An MDM creation unit creates MDM information based on dependencies between specifications in the software, dependencies between elements of source code, and traceability information including correspondence between the specifications and the elements,
a dependent location analysis unit extracts dependent elements from among the elements of the source code as dependent locations based on the dependency relationship between the specifications and the traceability information or the MDM information;
a version management unit extracts difference information between the MDM information and past MDM information created in the past than the MDM information;
A traceability management method, wherein a traceability missing analysis unit extracts missing candidates in the correspondence of the traceability information as traceability missing candidates based on the MDM information, the dependable locations, and the difference information.
前記仕様同士の依存関係及び前記トレーサビリティ情報、または、前記MDM情報に基づいて、前記ソースコードの前記要素のうち依存可能な要素を依存可能箇所として抽出することと、
前記MDM情報と、前記MDM情報よりも過去に作成された過去MDM情報との差分情報を抽出することと、
前記MDM情報、前記依存可能箇所、及び、前記差分情報に基づいて、前記トレーサビリティ情報の前記対応関係における欠落候補をトレーサビリティ欠落候補として抽出することと、をコンピュータに実行させる、トレーサビリティ管理プログラム。 Creating MDM information based on dependencies between specifications in software, dependencies between elements of source code, and traceability information including correspondence between the specifications and the elements;
Extracting dependable elements from among the elements of the source code as dependable locations based on the dependency relationship between the specifications and the traceability information or the MDM information;
Extracting difference information between the MDM information and past MDM information created in the past than the MDM information;
A traceability management program that causes a computer to extract missing candidates in the correspondence of the traceability information as traceability missing candidates based on the MDM information, the dependable locations, and the difference information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020013274A JP7370264B2 (en) | 2020-01-30 | 2020-01-30 | Traceability management device, traceability management method, and traceability management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020013274A JP7370264B2 (en) | 2020-01-30 | 2020-01-30 | Traceability management device, traceability management method, and traceability management program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021119441A JP2021119441A (en) | 2021-08-12 |
JP7370264B2 true JP7370264B2 (en) | 2023-10-27 |
Family
ID=77195466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020013274A Active JP7370264B2 (en) | 2020-01-30 | 2020-01-30 | Traceability management device, traceability management method, and traceability management program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7370264B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008102831A (en) | 2006-10-20 | 2008-05-01 | Hitachi Ltd | Information providing device, program and information providing method |
JP2016110330A (en) | 2014-12-04 | 2016-06-20 | 三菱電機株式会社 | Change influence analysis device and change influence analysis method and program |
WO2019171445A1 (en) | 2018-03-06 | 2019-09-12 | 三菱電機株式会社 | Traceability management device, traceability management method, and traceability management program |
-
2020
- 2020-01-30 JP JP2020013274A patent/JP7370264B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008102831A (en) | 2006-10-20 | 2008-05-01 | Hitachi Ltd | Information providing device, program and information providing method |
JP2016110330A (en) | 2014-12-04 | 2016-06-20 | 三菱電機株式会社 | Change influence analysis device and change influence analysis method and program |
WO2019171445A1 (en) | 2018-03-06 | 2019-09-12 | 三菱電機株式会社 | Traceability management device, traceability management method, and traceability management program |
Non-Patent Citations (1)
Title |
---|
PAVKOVIC, Neven et al.,Traceability - A factor of integration and a method to deal with complexity,Proceedings of the 10th International Workshop on Integrated Design Engineering [online],2014年,pp. 93-105,[検索日 2023.09.12], インターネット:<URL:http://www.designsociety.org/publication/38090/> |
Also Published As
Publication number | Publication date |
---|---|
JP2021119441A (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9632771B2 (en) | Association of metadata with source code and applications and services premised thereon | |
CN100442293C (en) | Method for combination of original files of hardware design language and checking data files | |
US9471286B2 (en) | System and method for providing code completion features for code modules | |
US7908588B2 (en) | Program presentation with reviewer feedback maintenance | |
US8255424B2 (en) | System and method for structuring data in a storage device | |
US7904856B2 (en) | Arrangement handling commands as control system behaviors and data system behaviors | |
CN116501415B (en) | Command execution method and device, electronic equipment and computer readable storage medium | |
JP7370264B2 (en) | Traceability management device, traceability management method, and traceability management program | |
CN117648257A (en) | Web automatic test method and system under Linux operating system | |
CN102254155B (en) | accurate font activation | |
JP6667387B2 (en) | Rule conversion support device and rule conversion support program | |
JP7116313B2 (en) | Correction candidate identification program | |
JP2007316875A (en) | Apparatus and method for automatic regression test | |
US9015658B2 (en) | Automatic program generation device and automatic program generation method | |
US20090273605A1 (en) | Operation Checking Method in Information System, Operation Checking Program Therefor, Recording Medium, and Operation Checking System | |
JP6482362B2 (en) | Source code generation system, source code generation device, source code generation method and program | |
JP6559984B2 (en) | Digital evidence creation device, digital evidence creation system, and digital evidence creation program | |
JP7008780B2 (en) | State transition editing device and state transition editing program | |
CN113703985B (en) | Memory management method, medium and electronic equipment | |
CN116881035B (en) | File repair method, storage medium and electronic device | |
JP6888336B2 (en) | Stub generators, methods, and programs | |
CN107479899B (en) | File processing method and device, storage medium and processor | |
JP6807721B2 (en) | State transition editing device and state transition editing program | |
KR101064650B1 (en) | Method for kernel hardening of USB device driver in Linux operating system and apparatus thereof | |
JP2022098366A (en) | Test support device, test support method and test support program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230908 |
|
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: 20230919 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231017 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7370264 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |