JP5005510B2 - ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム - Google Patents

ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム Download PDF

Info

Publication number
JP5005510B2
JP5005510B2 JP2007289381A JP2007289381A JP5005510B2 JP 5005510 B2 JP5005510 B2 JP 5005510B2 JP 2007289381 A JP2007289381 A JP 2007289381A JP 2007289381 A JP2007289381 A JP 2007289381A JP 5005510 B2 JP5005510 B2 JP 5005510B2
Authority
JP
Japan
Prior art keywords
formal
natural language
formal specification
correction
design support
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.)
Expired - Fee Related
Application number
JP2007289381A
Other languages
English (en)
Other versions
JP2009116648A (ja
Inventor
直人 佐藤
啓伸 來間
邦彦 宮崎
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007289381A priority Critical patent/JP5005510B2/ja
Publication of JP2009116648A publication Critical patent/JP2009116648A/ja
Application granted granted Critical
Publication of JP5005510B2 publication Critical patent/JP5005510B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、ソフトウェア開発を支援する技術に関し、特に、ソフトウェア仕様を検証又は修正する技術に関する。
従来、ソフトウェア仕様の形式検証は、自然言語又は図などによって記述されたソフトウェア仕様(以下、「自然言語仕様」)を形式言語によって記述された形式仕様に変換し、変換された形式仕様を検証する手順で行われている。
そこで、形式言語に精通していない設計者でも形式仕様を得ることができるようにするため、自然言語仕様から、形式仕様への特有の変換規則を予め定めておき、当該変換規則に基づいて自然言語仕様を形式仕様に変換する方法が開示されている(例えば、特許文献1及び特許文献2参照)。
また、形式仕様の検証作業を支援するツールが知られている(例えば、非特許文献1及び、非特許文献2参照)。さらに、検証によって形式仕様に誤りがあることが判明した場合には、当該誤り箇所を特定する方法が知られている(例えば、特許文献3参照)。
特開2000−148462号公報 特開平5−119987号公報 特開平6−149560号公報 Gerald J. Holzmann著、「The SPIN Model Checker」、Addison-Wesley、2003年9月、p.7-8、p.390-392 AtelierB.Societe.com、"Atelier B"、[online]、平成19年6月25日検索、インターネット<URL:http://www.atelierb.societe.com/index_uk.html>
しかし、前述した従来技術では、自然言語仕様から形式仕様への変換、形式仕様の検証、及び形式仕様の誤り箇所の特定までを支援対象としている。そのため、特定された誤りの除去を目的とした形式仕様の修正は、設計者の推測により人手で形式仕様を変更することによって行われる。しかし、設計者の推測による変更では、必ずしも誤りを除去できるとは限らない。
したがって、従来技術では、形式言語に精通し、形式仕様の適切な修正方法を推測できる設計者でなければ、形式仕様を正しく修正できないという問題があった。より具体的には、Promelaで記述した形式仕様では交互動作の最小単位に関する誤りが非常に多いので、本願発明は交互動作の最小単位に関する誤りを修正する修正候補を抽出する。また、モデル規範型仕様記述言語Bについても、自然言語仕様のテンプレートを利用することによって、自然言語仕様から形式言語仕様に変換することが可能であるが、本願発明は形式仕様言語への変換にともなって欠落する情報を補充する。
また、従来技術では、人手による形式仕様の変更後、再検証を行うことによって誤りを除去できたか否かを確認する必要がある。したがって、人手による形式仕様の変更が不適切であった場合には、形式仕様の変更と検証を何度も繰り返すことになる。一般的に、一度の検証に数時間から数十時間かかる場合もあるため、形式仕様を正しく修正するまでに多くの時間を必要とする問題点がある。
本発明の目的は、形式仕様の適切な修正方法を推測できない設計者、又は、形式言語に精通していない設計者であっても、簡単かつ効率的に形式仕様を修正できるようにするとともに、修正可能な形式仕様を修正不可能と判断する可能性を低減する技術を提供することにある。
本発明の代表的な一形態では、ソフトウェアの設計支援装置を用いて、前記ソフトウェアの設計を支援する方法であって、前記ソフトウェアの仕様は、意味規則及び構文規則が定義された形式言語によって記述された形式仕様であって、前記設計支援装置は、プロセッサ、前記プロセッサに接続されるメモリ、及び記憶装置を備え、前記設計支援方法は、前記形式仕様が要求された検証項目を満たすか否かを、前記意味規則に基づいた所定の検証方法によって検証し、前記形式仕様が前記検証項目を満たさない場合には、前記形式仕様に含まれる誤りとして、並列に実行されるプロセス交互動作単位の誤りを特定するための処理、又は、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行し、前記形式仕様に含まれる並列に実行されるプロセス交互動作単位の誤りを特定する処理を実行した場合は、前記所定の検証方法による形式仕様の検証履歴に基づいて、前記特定された誤りを修正するための修正候補を抽出し、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行した場合は、前記形式仕様における不変条件の記述とシステムの操作に基づいて、前記特定された誤りを修正するための修正候補を抽出し、前記抽出された修正候補を出力する。
本発明の一形態によれば、形式仕様に誤りが検出された場合に、形式仕様の記述及び形式仕様の検証履歴に基づいて修正候補を抽出するため、修正された誤りについて、再度検証する必要がなく、効率的に形式仕様を修正することができる。特に、Promelaで記述した形式仕様において交互動作の最小単位に関する誤りを修正する修正候補を抽出することができる。また、モデル規範型仕様記述言語Bにおいて、形式仕様言語への変換にともなって欠落する情報を補充することができる。
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態では、プロセス記述言語Promela(Process Meta-Language、非特許文献1参照)を形式言語の例とする。また、本発明の第1の実施の形態で扱われる形式仕様は、形式仕様が満たすべき性質である、検証項目を含み、「形式仕様の検証」とは検証項目を除いた形式仕様が、前記検証項目を満たすかを検証することを指す。
図1は、本発明の第1の実施の形態の設計支援装置201の構成を示すブロック図である。
設計支援装置201は、仕様作成部101、仕様検証部112、仕様修正部102、自然言語仕様テンプレートデータベース(自然言語仕様テンプレートDB)108、自然言語仕様データベース(自然言語仕様DB)109、形式仕様データベース(形式仕様DB)110、形式言語変換規則データベース(形式言語変換規則DB)111、入出力制御部105、入力部103、及び表示部104を備える。
仕様作成部101、仕様検証部112及び仕様修正部102は、CPUによって実行されるプログラムである。仕様作成部101は、自然言語仕様を作成するためのテンプレートを提示し、利用者からの入力を受け付けて自然言語仕様を作成する。さらに、作成された自然言語仕様を形式仕様に変換する。仕様検証部112は、作成された形式仕様を検証する。仕様修正部102は、形式仕様の検証結果に基づいて、作成された仕様を修正する。
自然言語仕様テンプレートDB108は、自然言語仕様のテンプレート及び形式仕様への変換規則を保持する。自然言語仕様DB109は、自然言語仕様を保持する。形式仕様DB110は、変換された形式仕様を保持する。形式言語変換規則DB111は、形式言語記述を自然言語記述に変換するために必要な情報を保持する。
仕様作成部101は、自然言語仕様作成部106及び自然言語仕様変換部107を含む。
自然言語仕様作成部106は、設計者が自然言語仕様を作成及び編集する機能であって、自然言語仕様テンプレートDB108に予め保持されている自然言語仕様テンプレートを用いて、自然言語仕様を作成する。また、自然言語仕様作成部106は、作成された自然言語仕様を、自然言語仕様識別番号とともに自然言語仕様DB109に登録する。さらに、作成された自然言語仕様を自然言語仕様変換部107に入力する。
自然言語仕様変換部107は、自然言語仕様テンプレートに対応付けられたテンプレート変換規則に基づいて、作成された自然言語仕様を形式仕様に変換する。また、自然言語仕様変換部107は、得られた形式仕様を、形式仕様識別番号とともに形式仕様DB110に登録する。さらに、自然言語仕様変換部107は、形式言語記述を自然言語記述に変換するために必要な形式言語変換規則を、形式言語変換規則DB111に登録する。形式言語変換規則は、自然言語仕様を形式仕様に変換する際に、自然言語仕様と形式仕様との対応関係によって生成される。
仕様検証部112は、形式仕様検証部119及び検証履歴変換部115を備える。形式仕様検証部119は、設計者からの命令を受け付けて形式仕様を検証し、検証された形式仕様及び当該検証の履歴を、仕様修正部102に入力する。また、形式仕様検証部119は、検証の履歴を検証履歴変換部115に入力する。検証履歴変換部115は、形式言語変換規則DBを参照し、検証履歴の形式言語記述を自然言語記述に変換し、自然言語記述に変換された検証履歴を表示部104によって表示する。
仕様修正部102は、修正候補抽出部113、修正候補変換部114、修正候補表示・選択部116、形式仕様修正部117、及び自然言語仕様修正部118を含む。
修正候補抽出部113は、検証された形式仕様及び検証履歴を受け付け、形式仕様の修正候補を抽出する。抽出された修正候補は、検証によって発見した誤りを除去可能な修正候補となる。修正候補変換部114は、形式言語変換規則DB111を参照し、形式言語で記述された修正候補を自然言語に変換する。このとき、元の形式言語記述も破棄せずに保持するため、修正候補には形式言語記述と自然言語記述の両方が含まれる。修正候補表示・選択部116は、自然言語で記述された修正候補の一覧を階層的に表示し、設計者による修正候補の選択を受け付ける。形式仕様修正部117は、設計者によって選択された修正候補の形式言語記述に基づいて、形式仕様DB110に保持される形式仕様を修正する。同時に、自然言語仕様修正部118も、設計者によって選択された修正候補の自然言語記述に基づいて、自然言語仕様DB109に保持される自然言語仕様を修正する。このとき、形式仕様修正部117は、形式仕様DB110に保持される形式仕様を直接修正せずに、修正された仕様を新たな仕様として追加登録してもよい。自然言語仕様修正部118についても同様に、修正された仕様を新たな仕様として追加登録してもよい。
図2は、本発明の第1の実施の形態の設計支援装置201のハードウェア構成を示す図である。
設計支援装置201は、CPU202、メモリ203、外部記憶装置204、表示装置205及び入力装置206を備える。
CPU202は、メモリ203に記憶されたプログラムを実行することによって、各種業務処理を実行する。メモリ203は、CPU202のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。具体的には、仕様作成部101、仕様検証部112及び仕様修正部102などを構成するプログラムが記憶される。
外部記憶装置204は、各種データベースなどを格納する。外部記憶装置204は、例えば、ハードディスク装置などである。具体的には、自然言語仕様テンプレートDB108、自然言語仕様DB109、形式仕様DB110及び形式言語変換規則DB111が格納される。
表示装置205は、プログラムの実行結果などを表示する。表示装置205は、例えば、ディスプレイなどである。入力装置206は、処理の実行指示及び処理に必要な情報の入力などを利用者から受け付ける。入力装置206は、例えば、キーボード及びマウスなどである。
図3は、本発明の第1の実施の形態の自然言語仕様テンプレートDB108のデータテーブルを示す図である。
自然言語仕様テンプレートDB108のデータテーブル301は、テンプレート番号302、自然言語仕様テンプレート303及び形式仕様変換規則304を含む。
テンプレート番号302は、テンプレートを一意に識別する番号である。自然言語仕様テンプレート303は、変換元となる自然言語(仕様)である。形式仕様変換規則304は、自然言語仕様テンプレート303に格納された変換元の自然言語仕様を、対応する形式仕様に変換する規則である。
設計者は、自然言語仕様テンプレート303のパラメータ(例えば、「X1」)を具体化することによって、自然言語仕様を作成する。さらに、作成された自然言語仕様は、自然言語仕様変換部107が実行されることによって、形式仕様変換規則304に基づいて形式仕様に変換される。
図4は、本発明の第1の実施の形態の自然言語仕様テンプレートに基づいて作成された自然言語仕様の具体例を示す図である。
自然言語仕様記述402は、図3のテンプレート305のパラメータX1に「監視システム」を、パラメータX2に「同期ロック」を代入することによって作成される。同様に、自然言語仕様記述403は、図3のテンプレート307のパラメータX1に「監視システム」を、パラメータX2に「信号A」を代入することによって作成される。他の自然言語仕様記述(404〜414)も同様に作成される。
図5は、本発明の第1の実施の形態の自然言語仕様401が形式仕様変換規則304に基づいて変換された形式仕様を示す図である。
形式仕様501は、図4に示した自然言語仕様記述(402〜414)を、図3の形式仕様変換規則304に基づいて変換することによって得られる。例えば、自然言語仕様記述402を変換すると、形式仕様記述502を得ることができる。同様に、自然言語仕様記述403を変換すると、形式仕様記述503を得ることができる。他の自然言語仕様記述(404〜414)も同様に、形式仕様記述(504〜513)に変換することができる。
また、自然言語仕様記述403を形式仕様記述502に変換する際に、テンプレートのパラメータに代入された単語を未使用の任意変数に変換する。このとき、同一の単語は同一の変数に変換されなければならない。例えば、自然言語仕様記述402から形式仕様記述502への変換では、「同期ロック」は、変数「val」に変換している。そのため、自然言語仕様記述407から形式仕様記述506への変換においても、「同期ロック」を変数「val」に変換しなければならず、他の変数(例えばdevAなど)に変換してはならない。
図6は、本発明の第1の実施の形態の形式言語変換規則DB111のデータテーブルを示す図である。
形式言語変換規則DB111は、形式言語記述を自然言語記述に変換するために必要な情報を保持する。本発明の第1の実施の形態では、形式仕様の検証履歴又は形式仕様の修正候補に含まれる形式言語記述を、自然言語記述に変換するために、形式言語変換規則DB111を利用する。
形式言語変換規則DBデータテーブル601は、形式仕様識別番号603、形式言語記述604、形式言語タイプ602、自然言語仕様識別番号605、及び自然言語記述606を含む。
形式仕様識別番号603は、形式仕様を識別するための識別番号である。形式言語記述604は、形式仕様の部分的な記述である。形式言語タイプ602は、形式言語記述の種類を示す。自然言語仕様識別番号605は、自然言語仕様を識別する識別番号である。自然言語記述606は、形式言語記述604に対応する自然言語仕様の部分的な記述である。
本発明の第1の実施の形態では、形式言語記述604を、対応する自然言語記述606に置き換えることによって、形式言語記述を自然言語記述に変換することができる。例えば、形式仕様501に「“val == 0”と“val = 1;”」を同時に実行する記述が含まれ、当該記述が修正候補として抽出された場合には、形式言語変換規則607及び608に基づいて、「“同期ロックは1であることを確認する”と“同期ロックを1に更新する”」を同時に実行する、という自然言語記述に変換することができる。
図6に示した形式言語変換規則は、自然言語仕様変換部107を実行することによって、自然言語仕様401を形式仕様501に変換するタイミングで作成される。例えば、自然言語仕様記述402を、テンプレート305に基づいて形式仕様記述502に変換する場合には、自然言語の単語と形式言語の変数名の対応である形式言語変換規則609が作成される。同様に、自然言語仕様記述410を、テンプレート306に基づいて形式仕様記述507に変換する場合には、自然言語の文と、形式言語の文の対応である形式言語変換規則608が作成される。
なお、本発明の第1の実施の形態では、形式言語の変数名と自然言語の単語、形式言語のプロセス名と自然言語の単語、形式言語の文と自然言語の文の組み合わせを、形式言語変換規則として保持しているが、形式言語の種類に応じてこれらの組み合わせを拡張することが可能である。
ところで、形式言語記述を自然言語記述に変換する場合には、形式言語変換規則DB111が不可欠である。例えば、自然言語仕様テンプレートDB108を利用しても、形式言語記述に基づいて元の自然言語記述を特定することはできない場合がある。例えば、図3のテンプレート306とテンプレート307のように、異なる自然言語記述から同一の形式言語記述に変換される規則を有するテンプレートが存在するため、どのテンプレートを使ったかを一意に特定できない場合があるからである。また、仮に形式言語記述への変換に使用されたテンプレートを特定できた場合であっても、図4の自然言語仕様記述403と自然言語仕様記述404のように、同じテンプレートを使った自然言語仕様記述が複数個含まれる場合は、元の自然言語記述を一意に特定することはできない。
このようなことは、自然言語仕様によって表現される内容と、形式仕様によって表現される内容との相違に起因する。形式仕様は、自然言語仕様とは異なり数学的な意味を有する一方、自然言語によって表されるような現実のシステムに即した情報を表現することができない。つまり、形式仕様によって表される(変数又は式などの)記述は単なる数学的な記述に過ぎず、現実のシステムそのものを表現するものではない。よって、形式言語記述を、元の自然言語記述に変換するためには、自然言語仕様から形式仕様へ変換する際に欠落してしまった、現実のシステムに即した情報を、形式言語記述に再度付与する必要がある。そのためには、自然言語仕様から形式仕様への変換の際に、形式言語記述と現実のシステムに即した情報とを別途対応付けて保持しておく必要がある。形式言語変換規則DB111は、形式言語記述と、現実のシステムの意味を表す自然言語記述とを対応付けて保持しており、前述した理由によって、形式言語記述を自然言語記述へ変換するために不可欠な情報である。
図7は、本発明の第1の実施の形態の仕様の修正候補表示・選択画面701の一例を示す図である。
修正候補表示・選択画面701の上部には、仕様の修正候補(702〜704)を自然言語によって表示する。修正候補(702〜704)は、依存関係に基づいて階層的に表示される。例えば、修正候補703及び修正候補704は、修正候補702の下層に表示されている。修正候補702の左に配置された階層展開ボタン705を操作することによって、修正候補702の下層にある修正候補703及び修正候補704を展開又は収納することができる。
また、修正候補選別用チェックボックス(706〜708)がチェックされると、下層に配置された修正候補のチェックボックスがすべてチェックされる。例えば、チェックボックス706がチェックされると、チェックボックス707及びチェックボックス708も同時にチェックされる。
修正候補(702〜704)自体がクリックされると、クリックされた修正候補が修正候補表示・選択画面701下部の修正候補表示領域709に表示される。同時に、修正前自然言語仕様表示領域710、修正後自然言語仕様表示領域711、修正前形式仕様表示領域712、及び修正前形式仕様表示領域713には、それぞれ、修正前の自然言語仕様、選択された修正候補で修正した場合の自然言語仕様、修正前の形式仕様、及び選択された修正候補で修正した場合の形式仕様が表示される。
ここで、修正実施ボタン714が操作されることによって修正候補が選択されると、形式仕様修正部117が実行されることによって形式仕様DB110に保持される形式仕様が修正される。さらに、自然言語仕様修正部118が実行されることによって自然言語仕様DB109に保持される自然言語仕様が修正される。また、適切な修正候補が示されない場合には、該当なしボタン715を操作することによって、修正候補表示・選択画面701を閉じる。
修正候補表示・選択画面701では、修正候補を依存関係に基づいて階層的に表示することによって、修正候補の選別効率を高めている。例えば、修正候補702及び修正候補703に着目すると、修正候補703は、修正候補702の修正内容を含むため、「修正候補702が仕様として適切でないならば、修正候補703も仕様として適切でない」という関係が成立する。
このような依存関係に基づいて、修正候補703を修正候補702の下層に表示する。設計者は、修正候補が仕様として適切であるか否かという点について、修正候補の上層から順に判定する。そして、修正候補702を仕様として適切でないと判定し、修正候補選別用チェックボックス706にチェックすると、同時に、修正候補703が仕様として適切でないことを示すために、下層に配置された修正候補選別用チェックボックス707もチェックされる。したがって、設計者は、修正候補703を直接参照せずに、修正候補703についても仕様として適切であるか否かを判定できたことになる。このように、特定の修正候補については、修正候補を直接参照せずに判定することができるため、効率的な修正候補の判定が可能になる。
図8は、本発明の第1の実施の形態の自然言語仕様の作成から形式仕様の登録までの手順を示すフローチャートである。
CPU202は、自然言語仕様作成部106を実行することによって、設計者からの入力を受け付け、自然言語仕様を作成する(ステップ802)。自然言語仕様は、設計者が自然言語仕様テンプレートDB108に格納された自然言語仕様テンプレート303を選択し、選択された自然言語仕様テンプレート303に含まれるパラメータを設定する処理を、必要に応じて繰り返すことによって作成される。
CPU202は、作成された自然言語仕様を自然言語仕様識別番号とともに、自然言語仕様DB109に登録する(ステップ803)。
CPU202は、次に、自然言語仕様変換部107を実行することによって、自然言語仕様テンプレート変換規則に基づいて、作成された自然言語仕様を形式仕様に変換する(ステップ804)。形式仕様は、選択された自然言語仕様テンプレート303に対応する形式仕様変換規則304に基づいて自然言語仕様を変換することによって取得される。
CPU202は、得られた形式仕様を、形式仕様識別番号とともに、形式仕様DB110に登録する(ステップ805)。
CPU202は、自然言語仕様と形式仕様との対応を、自然言語仕様を形式仕様に変換する際に欠落した情報とともに、形式言語変換規則として、形式言語変換規則DB111に登録する(ステップ806)。
図9は、本発明の第1の実施の形態のソフトウェア仕様を修正する手順を示すフローチャートである。
CPU202は、修正候補抽出部113を実行することによって、形式仕様及び当該形式仕様の検証履歴から、検証によって発見した誤りを除去するための形式仕様の修正候補を抽出する(ステップ902)。具体的な手順については、形式言語Promelaによって記述された形式仕様において、修正候補を抽出する手順を図12にて後述する。
CPU202は、ステップ902の処理によって、修正候補が抽出されたか否かを判定する(ステップ903)。修正候補が抽出されなかった場合には(ステップ903の結果が「No」、本処理を終了する。
CPU202は、修正候補が抽出された場合には(ステップ903の結果が「Yes」)、修正候補変換部114を実行することによって、形式言語変換規則DB111を参照し、修正候補の形式言語記述を自然言語記述に変換する(ステップ904)。
CPU202は、修正候補表示・選択部116を実行することによって、自然言語で記述された修正候補を、図7に示した修正候補表示・選択画面701のように一覧表示し、設計者からの修正候補選択指示を受け付ける(ステップ905)。
CPU202は、設計者によって修正候補が選択されたか否かを判定する(ステップ906)。修正候補表示・選択画面701において、修正候補該当なしが選択された場合など、設計者によって修正候補が選択されなかった場合には(ステップ906の結果が「No」)、本処理を終了する。
CPU202は、設計者によって修正候補が選択された場合には(ステップ906の結果が「Yes」)、形式仕様修正部117を実行し、選択された修正候補に基づいて、形式仕様DB110に保持されている形式仕様を修正する(ステップ907)。
CPU202は、さらに、自然言語仕様修正部118を実行し、選択された修正候補に基づいて、自然言語仕様DB109に保持されている自然言語仕様を修正する(ステップ908)。
修正候補抽出部113によって抽出される修正候補は、検証によって発見した誤りを除去できるという点において、従来の推測による修正よりも、適切な修正方法であるといえるが、未発見の誤りまで修正できる方法ではない。同様に、修正によって新たな誤りが混入する可能性も否定できない。よって、仕様修正手順終了後は再度仕様を検証にかけ、他の誤りの有無を確認する必要がある。
以下、図10、図11、図12、図13及び図14を参照しながら、修正候補抽出方法を具体的に説明する。修正候補の抽出は、CPU202が修正候補抽出部113を処理することによって実行される。
図10は、本発明の第1の実施の形態の形式言語Promelaによって記述された形式仕様の一例を示す図である。
形式仕様1001は、仕様部1002及び要件部1003を含む。仕様部1002は、システムの仕様を表している。また、要件部1003は、仕様が満たすべき性質を表している。
形式言語Promelaは、並列性を有するシステムの検証に適しており、並列に動作する主体をプロセスとして記述する。検証は、プロセスのあらゆる交互動作パターンを検査することによって実行され、文1004又は文1005のような1つの文が交互動作の最小単位となる。ただし、最小単位は変更可能で、例えば、atomic節で複数の文を囲うことによって、atomic節1006全体が交互動作の最小単位となる(非特許文献1)。
このように、交互動作の最小単位を変更すると、システムの交互動作パターンが変わるため、本来、システムの仕様には、交互動作の最小単位まで厳密に記述しなければならない。しかし、一般に仕様を記述する際には、動作内容又は動作順序を優先して検討し、交互動作の最小単位までは厳密に検討しない場合が多い。そのため、Promelaで記述した形式仕様の誤りには、交互動作の最小単位に関する誤りが非常に多い。そこで、本修正候補抽出方法では、交互動作の最小単位に関する誤りを修正する修正候補を抽出する。
ここで、図10に示した形式仕様1001を検証すると、仕様部1002は、要件部1003を満たさない。文1004が実行された後、pB()のatomic節1006及び文1007が実行され、文1005及び文1008が実行されると、devA及びdevBの値がともに1となり、要件部1003に違反することになる。
図11は、本発明の第1の実施の形態の形式仕様1001の検証履歴の例を示す図である。
検証履歴1101は、ステップ数1102、プロセス識別番号1103、実行文1105及び位置行数1104を含む。位置行数1104は、形式仕様1001における実行文1105の位置を示す。
検証履歴1101は、図10に示した形式仕様1001の実行系列である。図11に示す検証履歴1101は、一般に「反例」と呼ばれ、自動検証ツール(例えば、「SPIN」、非特許文献1参照)によって出力される検証履歴の一般的な形態である。
検証履歴1101は、行18を参照すると、前述したように要件部1003に違反することがわかる。
図12は、本発明の第1の実施の形態の形式仕様の修正候補を抽出する手順を示すフローチャートである。
CPU202は、まず、修正候補抽出部113を実行することによって、実行文に変数が含まれない行を反例から削除する(ステップ1202)。
CPU202は、次に、残った行をプロセスごとにブロック分けする(ステップ1203)。さらに、同じプロセス識別番号を有するブロックであって、他のプロセス識別番号を持つブロックを除いて隣接する2つのブロックを選択する(ステップ1204)。以下、選択された2つのブロックのうち、前にあるブロックを前ブロック、後にあるブロックを後ブロックとする。
CPU202は、後ブロックを前ブロックの直後へ移動する(ステップ1205)。
CPU202は、ステップ1205の処理によって、後ブロックが移動した系列の実行文を、先頭から順に実行する(ステップ1206)。系列の実行結果は、変数の状態として保持される。また、式は、変数の状態と矛盾しない場合のみ実行可能とする。
CPU202は、ステップ1206の処理の結果、実行不可能な行が存在するか否かを判定する(ステップ1207)。ステップ1206の処理において、実行不可能な行が存在しなかった場合には(ステップ1207の結果が「No」)、ステップ1204の処理を実行し、他の2つのブロックを選択する。
CPU202は、ステップ1206の処理において、実行不可能な行が存在する場合には(ステップ1207の結果が「Yes」)、前ブロック内の最後行の実行文と、後ブロックの最前行の実行文を、交互動作の最小単位として宣言することを修正候補とする(ステップ1208)。具体的には、前ブロック内の最後行の実行文と、後ブロックの最前行の実行文とを、形式仕様において、atomic節で囲うことを修正候補とする。そして、他の修正候補をさらに抽出する場合には(ステップ1209)、ステップ1204の処理を実行する。
ここで、ステップ1207の処理で実行不可能な行が存在する場合には、ブロック移動後の系列は実行不可能ということになる。つまり、ブロック移動後の系列であれば、検証で発見された要件違反は生じないことになる。したがって、システムの実行系列が、常にブロック移動後の系列になるように仕様を修正すればよい。そのためには、前ブロックの最後行の実行文と、後ブロックの最前行の実行文との間で、交互動作を許さなければよく、ステップ1208のように前ブロックの最後行の実行文と、後ブロックの最前行の実行文をatomicで囲うことが修正候補となる。
具体的に図11を参照しながら、検証履歴1101から、形式仕様1001の修正候補を抽出する手順を説明する。
まず、ステップ1202の処理では、実行文が変数を含まない行1107、1110、1112、1114、1116、1118、1121、1123及び1127を取り除く。次に、ステップ1203の処理では、プロセス識別番号1103が等しく、連続して実行される行を1ブロックとする。本発明の第1の実施の形態では、実行文が変数を含まない行を削除する前の状態であるが、ブロック1128〜1133のようにブロック分けされる。
ステップ1204の処理では、例えば、ブロック1128とブロック1130を選択し、ステップ1205の処理でブロック1128をブロック1130の直後に移動する。以上の処理によって、図13に示す実行系列を得ることができる。
図13は、本発明の第1の実施の形態の形式仕様の修正候補を抽出する手順において、行の順序を変更した結果を示す図である。
ステップ1206の処理において、実行系列1301を先頭から順に実行していくと、行1302の実行文が実行不可能となる。したがって、ステップ1208の処理では、「前ブロック内の最後行1303の実行文と、後ブロックの最前行1304の実行文とを、形式仕様1001において、atomic節で囲う」ことが修正候補となる。行1303の実行文は図10の文1004に対応し、行1304の実行文は図10の文1005に対応するため、「形式仕様1001において文1004と文1005をatomic節で囲う」ことが修正候補となる。図14に、形式仕様1001に対して以上の修正を実行した結果を示す。
図14は、本発明の第1の実施の形態の形式仕様の仕様修正候補を抽出する手順によって修正された結果を示す図である。
図14では、図10の文1004及び文1005をatomic節1401として、交互動作の最小単位としている。このように修正することによって、誤りを含む形式仕様を修正することができる。
本発明の第1の実施の形態によれば、形式仕様に誤りがあった場合に、形式仕様、当該形式仕様の検証項目、及び、形式仕様の検証履歴に含まれる誤りに関する情報に基づいて、誤りを除去可能な修正候補を抽出する。修正候補は、誤りを除去可能なものであるため、形式検証手段を用いて誤りを除去できたか否かを確認する必要がない。よって、従来技術と比較して、効率的に形式仕様を修正することができる。
また、本発明の第1の実施の形態によれば、設計者は、画面上に表示される修正候補を選択することによって形式仕様を修正することができるため、形式仕様の適切な修正方法を推測できない設計者であっても、簡単かつ効率的に形式仕様を修正することができる。さらに、修正可能な形式仕様を修正不可能と判断してしまう可能性を低減することができる。
さらに、本発明の第1の実施の形態によれば、テンプレートを利用して作成された自然言語仕様から、テンプレートの変換規則に基づいて得られた形式仕様について、形式仕様の修正候補を自然言語によって表示することができる。したがって、設計者は、修正候補を選択することによって、形式仕様及び自然言語仕様を修正することができるため、形式言語に精通していない設計者でも、簡単に形式仕様及び自然言語仕様を修正することができる。また、修正候補の選択時における、修正候補の選別を、効率的に実施することができる。
(第2の実施の形態)
本発明の第1の実施の形態では、プロセス記述言語Promelaを形式言語の例として説明したが、本発明の第2の実施の形態では、モデル規範型仕様記述言語B(非特許文献2)について本発明を適用する例について説明する。なお、本発明の第1の実施の形態と共通する構成及び処理については、説明を省略し、相違する点のみを説明する。
モデル規範型仕様記述言語Bについても、本発明の第1の実施の形態と同様に、自然言語仕様のテンプレートを利用することによって、自然言語仕様から形式言語仕様に変換することが可能である。また、形式仕様言語への変換にともなって欠落する情報を補充する方法についても、本発明の第1の実施の形態と同様である。ここでは、モデル規範型仕様記述言語Bに本発明を適用する場合に、形式仕様の修正候補を抽出する方法について説明する。
以下、図15、図16、図17及び図18を参照しながら、モデル規範型仕様記述言語Bによって記述された形式仕様に対する修正候補抽出方法を具体的に説明する。
図15は、本発明の第2の実施の形態のモデル規範型仕様記述言語Bによって記述された形式仕様の例を示す図である。
モデル規範型仕様記述言語Bによって記述された形式仕様1501は、システムの変数1502、システムの不変条件1503、初期化処理1504、及びシステムの操作1505を含む。
形式仕様1501の不変条件1503は、個別の不変条件1506〜1509を含み、システムは不変条件1506〜1509をそれぞれ満たす必要がある。システムが不変条件1509を満たすとは、システム操作1505の実行前に不変条件1506〜1509が成立するならば、システム操作1505の実行後にも不変条件1509が成立することを意味する。このような性質は、不変条件の無矛盾性と呼ばれ、以下の論理式(1)によって表される。なお、論理式(1)の“NATURAL”は自然数の集合を意味する。
a ∈ NATURAL ∧
s ∈ NATURAL ∧
t ∈ NATURAL ∧
(t=1 ⇒ a=0)

(t=1 ⇒ a+1=0) ・・・(1)
システムが不変条件1509を満たすことを示すためには、論理式(1)を証明する必要があるが、実際に証明をしようとすると、論理式(1)を証明することができない。証明とは、推論体系を用いた証明を意味しており、特に本発明の第2の実施の形態では、空な公理集合を持つ自然演繹体系による証明を指している。
論理式(1)の前提部に適切な論理式を連言(∧)結合すると、証明可能な論理式を得られる場合がある。論理式(1)の前提部に適切な論理式を連言(∧)結合することは、システムに不変条件を追加することに相当する。つまり、システムに適切な不変条件を追加することによって、証明できなかった不変条件の無矛盾性が証明可能になる場合がある。
本発明の第2の実施の形態では、論理式(1)の前提部に論理式(¬(s=1) ∨ ¬(t=1))を連言結合し、以下に示した論理式(2)を作成する。このとき、論理式(2)は、証明可能となる。論理式(1)が証明可能となるように、前提部に連言結合する論理式を導出する方法については後述する。
a ∈ NATURAL ∧
s ∈ NATURAL ∧
t ∈ NATURAL ∧
(t=1 ⇒ a=0) ∧
(¬(s=1) ∨ ¬(t=1))

(t=1 ⇒ a+1=0) ・・・(2)
図16は、本発明の第2の実施の形態のモデル規範型仕様記述言語Bによって記述された形式仕様の不変条件に論理式を加えた例を示す図である。
論理式(2)は、図16の形式仕様1601に含まれる不変条件1602の無矛盾性を表す論理式に相当する。形式仕様1601は、形式仕様1501に不変条件1603を追加した仕様であるため、形式仕様1501の不変条件1509の無矛盾性を証明するためには、新たな不変条件1603を追加すればよいことが分かる。
ここで、不変条件の無矛盾性を証明するために、形式仕様に追加すべき新たな不変条件を導出する方法について説明する。本発明の第2の実施の形態では、タブローの方法を用いる。タブローの方法については、非特許文献3(丹治信治著、「タブローの方法による論理学入門」、朝倉書店、1999年11月、p.27-42)を参照されたい。
図17は、本発明の第2の実施の形態のタブローの方法を利用して形式仕様の仕様修正候補を抽出する手順を示すフローチャートである。
CPU202は、不変条件の無矛盾性を表す論理式のタブローを作成する(ステップ1702)。
CPU202は、作成されたタブローの枝で、閉じていないすべての枝から、枝に含まれる任意の節を1つずつ選択する(ステップ1703)。
CPU202は、選択した節の論理式の否定を、連言(∧)で結合する。連言結合した論理式を不変条件として仕様に追加することを修正候補とする(ステップ1704)。
CPU202は、さらに修正候補を抽出するかを判定する(ステップ1705)。さらに修正候補を抽出する場合には(ステップ1705の結果が「Yes」)、ステップ1703の処理を実行する。修正候補の抽出を終了する場合には(ステップ1705の結果が「No」)、ステップ1706の処理を実行する。
CPU202は、ステップ1704の処理における連言結合によって作成された任意の異なる論理式同士を選言(∨)で結合する。このように選言結合された論理式を不変条件として仕様に追加することを修正候補とする(ステップ1706)。
タブローの方法では、不変条件の無矛盾性を表す論理式が証明可能であるならば、その論理式を展開してできたタブローの、すべての枝が「閉じた枝」でなければならない。「閉じた枝」とは、ある論理式と当該論理式の否定の論理式とを共に含む枝を指す。仮に、ある論理式Xを不変条件として追加したとすると、タブローのすべての枝の末端に論理式Xが追加される。よって、論理式Xは、閉じていないすべての枝を閉じることができる論理式であればよく、図17に示した方法によって求めることができる。
具体的に、形式仕様1501の修正候補を抽出する手順を説明する。
図18は、本発明の第2の実施の形態の不変条件の無矛盾性を表す論理式のタブローを示す図である。なお、図18では、“NATURAL”を“N”と省略して表記している。
まず、ステップ1702の処理で、不変条件の無矛盾性を表す論理式のタブローが作成される。なお、図18に示された論理式は、図15の不変条件1503及びシステムの操作1505に基づいて作成される。
図18を参照すると、タブローの枝1803は、節1802と節1805により閉じているが、枝1804は閉じていない。そこで、ステップ1703の処理において、まず、節1801を選択する。ステップ1703の処理で選択された節は節1801のみであるため、ステップ1704の処理で作成され、不変条件1503に連言結合される論理式は、「¬(s=1)」となる。
次に、ステップ1705の処理からステップ1703の処理が実行されると、節1802が選択される。同様に、ステップ1704の処理によって、論理式「¬(t=1)」が取得される。そして、ステップ1706の処理によって、論理式「¬(s=1)」と論理式「¬(t=1)」を選言結合し、論理式「¬(s=1) ∨ ¬(t=1)」を得ることができる。
以上より、論理式「¬(s=1)」、「¬(t=1)」、「¬(s=1) ∨ ¬(t=1)」のいずれかを、不変条件に追加することが修正候補となる。図16に示した形式仕様1601は、「¬(s=1) ∨ ¬(t=1)」を不変条件として追加するように修正した結果である。
本発明の第2の実施の形態によれば、Promelaのようなプロセス記述言語以外の、モデル規範型仕様記述言語Bのような形式言語であっても、形式仕様の修正候補を抽出することを可能とし、本発明の第1の実施の形態と同様の効果を得ることができる。
本発明の第1の実施の形態の設計支援装置の構成を示すブロック図である。 本発明の第1の実施の形態の設計支援装置のハードウェア構成を示す図である。 本発明の第1の実施の形態の自然言語仕様テンプレートDBのデータテーブルを示す図である。 本発明の第1の実施の形態の自然言語仕様テンプレートに基づいて作成された自然言語仕様の具体例を示す図である。 本発明の第1の実施の形態の自然言語仕様が形式仕様変換規則に基づいて変換された形式仕様を示す図である。 本発明の第1の実施の形態の形式言語変換規則DBのデータテーブルを示す図である。 本発明の第1の実施の形態の仕様の修正候補表示・選択画面の一例を示す図である。 本発明の第1の実施の形態の自然言語仕様の作成から形式仕様の登録までの手順を示すフローチャートである。 本発明の第1の実施の形態のソフトウェア仕様を修正する手順を示すフローチャートである。 本発明の第1の実施の形態の形式言語Promelaによって記述された形式仕様の一例を示す図である。 本発明の第1の実施の形態の形式仕様の検証履歴の例を示す図である。 本発明の第1の実施の形態の形式仕様の修正候補を抽出する手順を示すフローチャートである。 本発明の第1の実施の形態の形式仕様の修正候補を抽出する手順において、行の順序を変更した結果を示す図である。 本発明の第1の実施の形態の形式仕様の仕様修正候補を抽出する手順によって修正された結果を示す図である。 本発明の第2の実施の形態のモデル規範型仕様記述言語Bによって記述された形式仕様の例を示す図である。 本発明の第2の実施の形態のモデル規範型仕様記述言語Bによって記述された形式仕様の不変条件に論理式を加えた例を示す図である。 本発明の第2の実施の形態のタブローの方法を利用して形式仕様の仕様修正候補を抽出する手順を示すフローチャートである。 本発明の第2の実施の形態の不変条件の無矛盾性を表す論理式のタブローを示す図である。
符号の説明
101 仕様作成部
102 仕様修正部
103 入力部
104 表示部
105 入出力制御部
106 自然言語仕様作成部
107 自然言語仕様変換部
108 自然言語仕様テンプレートデータベース
109 自然言語仕様データベース
110 形式仕様データベース
111 形式言語変換規則データベース
112 仕様検証部
113 修正候補抽出部
114 修正候補変換部
115 検証履歴変換部
116 修正候補表示・選択部
117 形式仕様修正部
118 自然言語仕様修正部
119 形式仕様検証部
201 設計支援装置
202 CPU
203 メモリ
204 外部記憶装置
205 表示装置
206 入力装置
301 自然言語仕様DBデータテーブル
401 自然言語仕様
501 形式仕様
601 形式言語変換規則DBデータテーブル
701 修正候補表示・選択画面

Claims (11)

  1. ソフトウェアの設計支援装置を用いて、前記ソフトウェアの設計を支援する方法であって、
    前記ソフトウェアの仕様は、意味規則及び構文規則が定義された形式言語によって記述された形式仕様であって、
    前記設計支援装置は、プロセッサ、前記プロセッサに接続されるメモリ、及び記憶装置を備え、
    前記設計支援方法は、
    前記形式仕様が要求された検証項目を満たすか否かを、前記意味規則に基づいた所定の検証方法によって検証し、
    前記形式仕様が前記検証項目を満たさない場合には、前記形式仕様に含まれる誤りとして、並列に実行されるプロセス交互動作単位の誤りを特定するための処理、又は、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行し、
    前記形式仕様に含まれる並列に実行されるプロセス交互動作単位の誤りを特定する処理を実行した場合は、前記所定の検証方法による形式仕様の検証履歴に基づいて、前記特定された誤りを修正するための修正候補を抽出し、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行した場合は、前記形式仕様における不変条件の記述とシステムの操作に基づいて、前記特定された誤りを修正するための修正候補を抽出し、
    前記抽出された修正候補を出力することを特徴とする設計支援方法。
  2. 前記設計支援方法は、さらに、
    自然言語によって記述された自然言語仕様の入力を受け付け、
    前記入力された自然言語仕様を、あらかじめ保持された自然言語仕様変換規則に基づいて、前記形式仕様に変換し、
    前記自然言語仕様と前記形式仕様との対応を記憶し、
    前記抽出された修正候補を出力する処理は、前記自然言語仕様と前記形式仕様との対応に基づいて、前記抽出された修正候補を自然言語で出力することを特徴とする請求項1に記載の設計支援方法。
  3. 前記抽出された修正候補を出力する処理は、複数の前記修正候補が抽出され、前記抽出された複数の修正候補に依存関係を有する修正候補が含まれる場合には、前記修正候補の依存関係に基づいて、前記抽出された修正候補の一覧を階層ごとに出力し、
    前記設計支援方法は、さらに、前記出力された修正候補の選択を受け付けた場合に、前記選択された修正候補の下層にあるすべての修正候補が選択されることを特徴とする請求項1に記載の設計支援方法。
  4. 前記形式仕様には、一連の処理を含む複数のプロセスが記述され、
    前記プロセスは、並列に実行され、
    前記所定の検証方法は、前記プロセスに属する処理のすべての実行パターンについて検証し、
    前記所定の検証方法による形式仕様の検証履歴は、前記プロセスに属する処理ごとに記録され、
    前記修正候補を抽出する処理は、
    前記所定の検証方法によって誤りが発見された実行パターンについて、連続して実行される処理であって、同じプロセスに属する処理の集合をブロックとし、
    前記ブロックの実行順序を入れ替えて、新たな実行パターンを生成し、
    前記生成された実行パターンが実行不可能な場合には、前記生成された実行パターンが実行されるように前記形式仕様を修正する方法を修正候補として抽出することを特徴とする請求項1に記載の設計支援方法。
  5. 前記修正候補を抽出する処理は、
    前記形式仕様の前記検証項目に対応する論理式に基づいて、前記論理式の項を節とする木構造データを所定の方法で作成し、
    前記木構造データの根から葉までの各節点に対応する論理式が矛盾しない枝を抽出し、
    前記木構造データの根から葉までの各節点に対応する論理式のいずれかに矛盾する論理式を作成し、
    前記作成された論理式を、前記形式仕様の前記検証項目に対応する論理式に連言結合することを修正候補とすることを特徴とする請求項1に記載の設計支援方法。
  6. ソフトウェアの設計支援装置において、
    前記ソフトウェアの仕様は、意味規則及び構文規則が定義された形式言語によって記述された形式仕様であって、
    前記設計支援装置は、プロセッサ、前記プロセッサに接続されるメモリ、及び記憶装置を備え、
    前記プロセッサは、
    前記形式仕様が要求された検証項目を満たすか否かを、前記意味規則に基づいた所定の検証方法によって検証し、
    前記形式仕様が前記検証項目を満たさない場合には、前記形式仕様に含まれる誤りとして、並列に実行されるプロセス交互動作単位の誤りを特定するための処理、又は、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行し、
    前記形式仕様に含まれる並列に実行されるプロセス交互動作単位の誤りを特定する処理を実行した場合は、前記所定の検証方法による形式仕様の検証履歴に基づいて、前記特定された誤りを修正するための修正候補を抽出し、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行した場合は、前記形式仕様における不変条件の記述とシステムの操作に基づいて、前記特定された誤りを修正するための修正候補を抽出し、
    前記抽出された修正候補を出力することを特徴とする設計支援装置。
  7. 前記プロセッサは、
    自然言語によって記述された自然言語仕様の入力を受け付け、
    前記入力された自然言語仕様を、あらかじめ保持された自然言語仕様変換規則に基づいて、前記形式仕様に変換し、
    前記自然言語仕様と前記形式仕様との対応を記憶し、
    前記抽出された修正候補が形式言語で記述されている場合には、前記自然言語仕様と前記形式仕様との対応に基づいて、前記抽出された修正候補を自然言語で出力することを特徴とする請求項6に記載の設計支援装置。
  8. 前記プロセッサは、
    複数の前記修正候補が抽出され、前記抽出された複数の修正候補に依存関係を有する修正候補が含まれる場合には、前記修正候補の依存関係に基づいて、前記抽出された修正候補の一覧を階層ごとに出力し、
    前記出力された修正候補の選択を受け付けた場合に、前記選択された修正候補の下層にあるすべての修正候補を選択することを特徴とする請求項6に記載の設計支援装置。
  9. 前記形式仕様には、一連の処理を含む複数のプロセスが記述され、
    前記プロセスは、並列に実行され、
    前記所定の検証方法は、前記プロセスに属する処理のすべての実行パターンについて検証し、
    前記所定の検証方法による形式仕様の検証履歴は、前記プロセスに属する処理ごとに記録され、
    前記プロセッサは、
    前記所定の検証方法によって誤りが発見された実行パターンについて、連続して実行される処理であって、同じプロセスに属する処理の集合をブロックとし、
    前記ブロックの実行順序を入れ替えて、新たな実行パターンを生成し、
    前記生成された実行パターンが実行不可能な場合には、前記生成された実行パターンが実行されるように前記形式仕様を修正する方法を修正候補として抽出することを特徴とする請求項6に記載の設計支援装置。
  10. 前記プロセッサは、
    前記形式仕様の前記検証項目に対応する論理式に基づいて、前記論理式の項を節とする木構造データを所定の方法で作成し、
    前記木構造データの根から葉までの各節点に対応する論理式が矛盾しない枝を抽出し、
    前記木構造データの根から葉までの各節点に対応する論理式のいずれかに矛盾する論理式を作成し、
    前記作成された論理式を、前記形式仕様の前記検証項目に対応する論理式に連言結合することを修正候補とすることを特徴とする請求項6に記載の設計支援装置。
  11. ソフトウェアの設計支援装置で実行される設計支援プログラムであって、
    前記ソフトウェアの仕様は、意味規則及び構文規則が定義された形式言語によって記述された形式仕様であって、
    前記設計支援プログラムは、
    前記形式仕様が要求された検証項目を満たすか否かを、前記意味規則に基づいた所定の検証方法によって検証する手順と、
    前記形式仕様が前記検証項目を満たさない場合には、前記形式仕様に含まれる誤りとして、並列に実行されるプロセス交互動作単位の誤りを特定するための処理、又は、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行する手順と、
    前記形式仕様に含まれる並列に実行されるプロセス交互動作単位の誤りを特定する処理を実行した場合は、前記所定の検証方法による形式仕様の検証履歴に基づいて、前記特定された誤りを修正するための修正候補を抽出し、前記形式仕様に含まれる不変条件の不足を特定するための処理を実行した場合は、前記形式仕様における不変条件の記述とシステムの操作に基づいて、前記特定された誤りを修正するための修正候補を抽出する手順と、
    前記抽出された修正候補を出力する手順と、を前記設計支援装置に実行させることを特徴とする設計支援プログラム。
JP2007289381A 2007-11-07 2007-11-07 ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム Expired - Fee Related JP5005510B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007289381A JP5005510B2 (ja) 2007-11-07 2007-11-07 ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007289381A JP5005510B2 (ja) 2007-11-07 2007-11-07 ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム

Publications (2)

Publication Number Publication Date
JP2009116648A JP2009116648A (ja) 2009-05-28
JP5005510B2 true JP5005510B2 (ja) 2012-08-22

Family

ID=40783728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007289381A Expired - Fee Related JP5005510B2 (ja) 2007-11-07 2007-11-07 ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム

Country Status (1)

Country Link
JP (1) JP5005510B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5212264B2 (ja) * 2009-06-02 2013-06-19 富士通株式会社 プロパティ修正プログラム、プロパティ修正装置、およびプロパティ修正方法
JP5524244B2 (ja) * 2010-02-02 2014-06-18 株式会社日立製作所 仕様モデル検査方法および仕様モデル検査装置
JP5751431B2 (ja) 2010-04-12 2015-07-22 日本電気株式会社 不整合検出システム、方法、およびプログラム
JP5508933B2 (ja) * 2010-05-18 2014-06-04 株式会社日立製作所 ソフトウェア仕様の証明支援装置、及び証明支援方法
WO2013038469A1 (ja) * 2011-09-12 2013-03-21 株式会社 日立製作所 ソフトウェア仕様の証明再利用支援装置、ソフトウェア仕様の証明再利用支援方法、ソフトウェア仕様の証明再利用支援プログラム
JP5634374B2 (ja) * 2011-10-06 2014-12-03 株式会社日立製作所 仕様作成支援装置、及び、プログラム
WO2014097790A1 (ja) * 2012-12-18 2014-06-26 日本電気株式会社 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム
JP6268062B2 (ja) * 2014-08-20 2018-01-24 株式会社日立製作所 ソフトウェア仕様抽出装置、方法、及びプログラム
JP5998239B1 (ja) * 2015-03-31 2016-09-28 エヌ・ティ・ティ・コムウェア株式会社 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
JP5998238B1 (ja) * 2015-03-31 2016-09-28 エヌ・ティ・ティ・コムウェア株式会社 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
JP2020067976A (ja) * 2018-10-26 2020-04-30 株式会社デンソー モデル生成装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546370A (ja) * 1991-08-16 1993-02-26 Toshiba Corp プログラム生成装置
JPH06149560A (ja) * 1992-11-06 1994-05-27 Toshiba Corp 形式的仕様記述ソフトウェアのエラー特定装置

Also Published As

Publication number Publication date
JP2009116648A (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5005510B2 (ja) ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
US8438534B2 (en) Transformation of data between hierarchical data formats
JP5159713B2 (ja) システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム
JP5207007B2 (ja) モデル検証システム、モデル検証方法および記録媒体
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
US8140894B2 (en) Transaction regions in graphical computer-implemented methods of processing data
JP2007087215A (ja) ハードウェアモデルの変換処理に用いられるデータ構造、コンピュータプログラム、方法、及びシステム
JP4613214B2 (ja) ソフトウェア自動構成装置
US20050188323A1 (en) Template creation apparatus and creation method
US8732596B2 (en) Transformation of hierarchical data formats using graphical rules
CN110162297A (zh) 一种源代码段自然语言描述自动生成方法及系统
US20090327874A1 (en) Validation assisted document conversion design
US20110161934A1 (en) Generating and monitoring data items
JP5460629B2 (ja) 表形式ソフトウェア仕様作成支援方法、及び装置
JP5405684B1 (ja) ソースプログラムのプログラミング言語変換装置
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
JPH11306046A (ja) テストケース生成システム及びテストケース生成方法
JP5025542B2 (ja) プロパティ抽出装置及び方法
JP6993573B2 (ja) プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
CN114296726A (zh) 一种代码生成方法、装置、计算机设备和存储介质
JP6062735B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム
JP2010165205A (ja) モデルのテンプレート自動生成システム、方法及びプログラム
JP5600826B1 (ja) 非構造化データ処理システム、非構造化データ処理方法およびプログラム
da Silva et al. Toward a Method to Generate Capability Ontologies from Natural Language Descriptions
JP6086420B2 (ja) 設計記述間差分解析装置、設計記述間差分解析プログラムおよび設計記述間差分解析方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120410

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: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120523

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees