JP5319643B2 - ソフトウェアプロダクトライン開発支援装置およびその方法 - Google Patents

ソフトウェアプロダクトライン開発支援装置およびその方法 Download PDF

Info

Publication number
JP5319643B2
JP5319643B2 JP2010235037A JP2010235037A JP5319643B2 JP 5319643 B2 JP5319643 B2 JP 5319643B2 JP 2010235037 A JP2010235037 A JP 2010235037A JP 2010235037 A JP2010235037 A JP 2010235037A JP 5319643 B2 JP5319643 B2 JP 5319643B2
Authority
JP
Japan
Prior art keywords
component
state
information
execution
determination
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
Application number
JP2010235037A
Other languages
English (en)
Other versions
JP2012088933A5 (ja
JP2012088933A (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 JP2010235037A priority Critical patent/JP5319643B2/ja
Priority to PCT/JP2011/073318 priority patent/WO2012053392A1/ja
Priority to GB1307123.8A priority patent/GB2498305A/en
Publication of JP2012088933A publication Critical patent/JP2012088933A/ja
Publication of JP2012088933A5 publication Critical patent/JP2012088933A5/ja
Application granted granted Critical
Publication of JP5319643B2 publication Critical patent/JP5319643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Description

本発明は、制御監視システムのソフトウェアプロダクトライン開発に関する情報を管理するソフトウェアプロダクトライン開発支援装置およびその方法に関する。
従来、ユーザのソフトウェアの開発を支援するソフトウェアプロダクトラインの開発には、一般にフィーチャ(特性)を関連付けたフィーチャモデルが利用される。このフィーチャモデルの作成に際しては、モデル作成者は、適切なフィーチャの抽出やフィーチャ間の関連付けの抽出を行うことが求められる。
例えば、特許文献1には、フィーチャ指向ソフトウェアプロダクトライン(feature-oriented software product line)の開発環境を提供するシステムが記載されている。この特許文献1のシステムは、特定ドメイン(または領域)に対して、既知のソフトウェア製品ライン方法論を適用してドメイン(例えば、制御対象)に対するフィーチャ分析と応用プログラムの開発のための必要なフィーチャ選択、再利用可能な資産コンポーネント(プログラムモジュール資産)の生成、マクロ処理を通じたソフトウェアコンポーネントの生成とコンポーネントに対する形状管理(プログラムソースの作り)、ソフトウェアコンポーネントを利用した応用ソフトウェア開発と仮想環境におけるソフトウェアテスティングの支援を行うものである。
特許文献1を含む従来の技術において、ドメイン分析・フィーチャ分析では機能的、環境的、技術的および具現的な共通点と相違点を明確に分析し、コンポーネント開発に反映することで、コンポーネントの再利用性と適用可能性を高める利点を有している。
特開2007−12003号公報
ところで、一般にプラントなどを制御対象とする制御監視システムは次のような機能を有する。制御監視対象となる設備の情報を取得(以下、設備状態監視機能と称す)し、設備の状態をもとに制御演算(以下、制御演算機能と称す)を行い、制御監視対象の設備に対して制御出力(以下、制御出力機能と称す)を行い、当該設備を制御している。
設備状態監視機能や制御出力機能は、システムごとに異なる制御監視対象の設備種別(例えば、運行システムの場合には普通列車、快速列車などの列車の種別)や制御出力の通信方式(例えば、通信プロトコル)などを相違点として捉え、ドメイン(例えば、制御対象)分析・フィーチャ(特性)分析を行い、再利用可能なコンポーネント(プログラムモジュール)が作成可能である。
しかし、制御演算機能は、制御監視対象となる設備の状態やシステム全体の状態を総合的に判断し演算を行い、制御監視対象となる設備に出力する機能を有している。これらの設備の状態やシステム全体の状態は、ユーザのシステム毎に異なることが一般的であり、従来の機能的、環境的、技術的、具現的なドメイン分析・フィーチャ分析で表現するには共通性が乏しく、再利用性が困難である。
例えば、あるユーザの中央集中型のAシステムにおいて、一部の装置で故障が発生した場合、制御演算機能は制御出力を行わないよう判断しなければならない。一方、他のユーザの分散型のBシステムにおいて、一部の装置に故障が発生した場合、制御演算機能は半自動で制御出力を行うが、Bシステム全体に重大な故障が発生した場合には、制御出力を行わないよう判断する。
このように、システムの運用により実行する機能が異なることや、どの装置が故障したときに重故障として扱うかという点は、ユーザ毎のシステム構成や各ユーザの運用により異なるため、コンポーネントを実行するフィーチャを(システム構成×運用)の数だけ作成しなければならず、別のユーザのシステムに再利用可能なフィーチャを作成することは難しい。
すなわち、従来のソフトウェアプロダクトライン開発では、機能的、環境的、技術的、具現的なドメイン分析・フィーチャ分析に基づきフィーチャーモデリングおよびコンポーネントの開発を行う。しかし、ユーザの運用やシステム構成がシステムごとに異なる制御監視システムにおいて、機能的にまとめられたフィーチャではフィーチャ内にコンポーネントの追加、削除が発生するため、システム構成によってフィーチャの再利用性が望めない問題がある。
このように、制御監視システムは、ユーザごとの各システムの機能がそれぞれ異なるため、機能ごとのモジュールの組み換えで行われる現ソフトウェアプロダクトラインでは機能の共通化が不可能であり、対応が困難になっている。
本発明は上記実状に鑑み、状態遷移の遷移条件で実行されるコンポーネントを任意にマッピング可能とし、フィーチャを再利用可能とするソフトウェアプロダクトライン開発支援装置およびその方法の提供を目的とする。
上記目的を達成すべく、第1の本発明に関わるソフトウェアプロダクトライン開発支援装置は、ソフトウェアシステムのソフトウェアプロダクトライン開発支援装置であって、前記ソフトウェアシステムにおける制御対象または仮想的な対象の状態をユーザの入力により定義する状態定義手段と、前記定義された各状態に就き、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、次の状態に移るときに実行される実行コンポーネントを定義可能であるコンポーネント定義手段と、実行されるプログラムモジュールである前記実行コンポーネントの情報を保存する実行コンポーネント記憶部と、判断を行うプログラムモジュールである判断コンポーネントの情報を保存する判断コンポーネント記憶部と前記制御対象または前記仮想的な対象の状態の遷移を示す状態遷移の情報を含む特性を表すフィーチャの情報が記憶されるフィーチャ情報記憶部と、ユーザに対して、前記定義された各状態に就き、前記実行コンポーネント記憶部の前記実行コンポーネントの情報のうちから、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、および次の状態に移るときに実行される実行コンポーネントを画面を用いて選択させて、前記フィーチャ情報記憶部に保存する実行コンポーネント選択手段と、ユーザに対して、前記定義された各状態に就き、画面を用いて、前記各状態のうちから遷移元の状態と遷移先の状態とを選択させ、前記遷移元の状態から前記遷移先の状態へ遷移させるための判断を行う判断コンポーネントを、画面を用いて、前記判断コンポーネント記憶部の前記判断コンポーネントの情報のうちから選択させるととともに、前記遷移が可能となる当該選択された判断コンポーネントの返り値を画面を用いて選択させて、前記フィーチャ情報記憶部に保存する判断コンポーネント選択手段と、前記選択される実行コンポーネントを、前記実行コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とする実行コンポーネント管理手段と、前記選択可能な判断コンポーネントを、前記判断コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とする判断コンポーネント管理手段とを具備している。
第2の本発明に関わるソフトウェアプロダクトライン開発支援装置の方法は、ソフトウェアシステムのソフトウェアプロダクトライン開発支援装置の方法であって、前記ソフトウェアプロダクトライン開発支援装置は、状態定義手段と、コンポーネント定義手段と、実行コンポーネント記憶部と、判断コンポーネント記憶部と、フィーチャ情報記憶部と、実行コンポーネント選択手段と、判断コンポーネント選択手段と、実行コンポーネント管理手段と、判断コンポーネント管理手段とを具備し、前記状態定義手段は、前記ソフトウェアシステムにおける制御対象または仮想的な対象の状態をユーザの入力により定義し、前記コンポーネント定義手段は、前記定義された各状態に就き、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、次の状態に移るときに実行される実行コンポーネントを定義し、前記実行コンポーネント記憶部に、実行されるプログラムモジュールである前記実行コンポーネントの情報が保存され、前記判断コンポーネント記憶部に、判断を行うプログラムモジュールである判断コンポーネントの情報が保存され、前記フィーチャ情報記憶部に、前記制御対象または前記仮想的な対象の状態の遷移を示す状態遷移の情報を含む特性を表すフィーチャの情報が記憶され、前記実行コンポーネント選択手段は、ユーザに対して、前記定義された各状態に就き、前記実行コンポーネント記憶部の前記実行コンポーネントの情報のうちから、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、および次の状態に移るときに実行される実行コンポーネントを画面を用いて選択させて、前記フィーチャ情報記憶部に保存し、前記判断コンポーネント選択手段は、ユーザに対して、前記定義された各状態に就き、画面を用いて、前記各状態のうちから遷移元の状態と遷移先の状態とを選択させ、前記遷移元の状態から前記遷移先の状態へ遷移させるための判断を行う判断コンポーネントを、画面を用いて、前記判断コンポーネント記憶部の前記判断コンポーネントの情報のうちから選択させるととともに、前記遷移が可能となる当該選択された判断コンポーネントの返り値を画面を用いて選択させて、前記フィーチャ情報記憶部に保存し、前記実行コンポーネント管理手段は、前記選択される実行コンポーネントを、前記実行コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とし、前記判断コンポーネント管理手段は、前記選択可能な判断コンポーネントを、前記判断コンポーネント記憶部に記憶保持するとともに必要に応じて読み出すことを可能としている。
以上、本発明によれば、状態遷移の遷移条件で実行されるコンポーネントを任意にマッピング可能とし、フィーチャを再利用可能とするソフトウェアプロダクトライン開発支援装置およびその方法を実現できる。
本発明の一実施形態に係るソフトウェアプロダクトライン開発支援装置のブロック図。 実施形態に係る実行コンポーネント情報の構成の一例を示す図。 実施形態に係る判断コンポーネント情報の構成の一例を示す図。 実施形態に係るフィーチャ情報の構成の一例を示す図。 実施形態に係る状態識別情報の登録を説明するための概念図。 実施形態に係る状態識別情報編集画面を示す図。 実施形態に係る状態間関連情報の登録を説明するための概念図。 実施形態に係る状態間関連情報編集表示画面を示す図。 実施形態に係る入れ子構造をとる状態遷移を表示した状態間関連情報編集画面を示す図。 実施形態に係る状態遷移情報の整合性チェックの概念図。 実施形態に係る状態遷移不可能な条件の一例を示す図。
以下、本発明の実施形態について添付図面を参照して説明する。
図1は、本発明の一実施形態に係るソフトウェアプロダクトライン開発支援装置1のブロック図である。
本実施形態では、鉄道における列車の運行を管理する列車運行管理システムのソフトウェアプロダクトラインを開発するためのソフトウェアプロダクトライン開発支援装置1について述べる。列車運行管理システム(監視制御システム)の制御対象は、列車の運行に係わる設備などである。
実施形態のソフトウェアプロダクトライン開発支援装置1は、列車の運行に係わる様々な特性を示すフィーチャの情報などを記憶するハードディスクなどの記憶手段である記憶部2と、マウスやキーボード、タッチパネルなどの入力装置31およびLCD(Liquid Crystal Display)などの表示装置32を備えるユーザインターフェース部3と、ソフトウェアプロダクトライン開発支援装置1の全体を制御する制御部4とを具備する。
記憶部2には、ソフトウェアプロダクトライン開発支援装置1の制御(処理)を担うソフトウェアプロダクトライン開発支援プログラム10が記憶されている。CPU(Central Processing Unit)により、ソフトウェアプロダクトライン開発支援プログラム10(以下、開発支援プログラム10と称す)が実行されることにより、制御部4が具現化される。なお、図1においては、CPUが、HDD(Hard disk drive)などの記憶部2から開発支援プログラム10を読み出し主記憶部(図示せず)に展開して実行し、制御部4を具現化している状態を示している。
記憶部2は、実行されるプログラムモジュールである実行コンポーネントの情報(実行コンポーネント情報)を管理する実行コンポーネント情報保存部21と、判断を行うプログラムモジュールである判断コンポーネントの情報(判断コンポーネント情報)を管理する判断コンポーネント情報保存部22と、運行に係わる設備などの状態遷移を含むフィーチャ(特性)の情報を格納するフィーチャ情報保存部23と、各情報を分析した結果が格納されるフィーチャモデル分析結果保存部24とを含み構成されている。
開発支援プログラム10で具体化される制御部4は、ユーザインターフェース部3からの入出力を管理するインターフェース部11と、どういうプログラムモジュールレベルがあるかなどの実行コンポーネント情報を管理する実行コンポーネント情報管理部12と、どのような判断を行うプログラムモジュールがあるかなどの判断コンポーネント情報を管理する判断コンポーネント情報管理部13と、設備などの状態遷移を含むフィーチャの情報を管理するフィーチャ情報管理部14と、各種の情報を統合的に管理する情報管理部15と、記憶部2の各情報保存部(21、22、23、24)に保存されている情報からシステムの整合性チェックおよび自動ソースコードの生成やシステムテストなどを行う情報分析部16とを含み構成されている。
インターフェース部11は、本ソフトウェアプロダクトライン開発支援装置1の各種機能と操作者(ユーザ)が使用する入力装置31、表示装置32との間の情報の受け渡しを行うものである。なお、表示装置32は、ソフトウェアプロダクトラインの開発に際しての表示を行う。
例えば、インターフェース部11は、入力装置31からの操作者(ユーザ)の指示を情報管理部15や情報分析部16に伝達する機能と、情報管理部15や情報分析部16から伝えられる情報に基づいて表示装置32に表示すべき画面を生成する機能(例えば、画面定義、画面オブジェクトなど)を有している。また、インターフェース部11は、入力装置31からの操作者(ユーザ)の操作に応じて、表示装置32に表示される各種の画面の切り替えを行う機能(例えば、画面切り替え定義など)を備えている。
実行コンポーネント情報管理部12は、実行コンポーネント情報保存部21に保存される実行コンポーネント情報を管理するものである。
記憶部2の実行コンポーネント情報保存部21は、個々の実行コンポーネントを識別する実行コンポーネント識別情報や実行コンポーネント間の親子関係を示す実行コンポーネント間の関連情報を含む実行コンポーネント間関連情報、実行コンポーネントを保存する記憶媒体である。
記憶部2の判断コンポーネント情報保存部22は、個々の判断コンポーネントの情報(判断コンポーネント情報)、例えば判断コンポーネントの識別情報、判断コンポーネントなどや判断コンポーネント間の関連情報を含む設備情報を保存する記憶媒体である。
制御部4の判断コンポーネント情報管理部13は、判断コンポーネント情報保存部22に保存される判断コンポーネント情報を管理するものである。すなわち、判断コンポーネント情報管理部13は、判断コンポーネント情報保存部22に判断コンポーネント情報を記憶・保持したり、読み出したり、更新したり、削除などする。
記憶部2のフィーチャ情報保存部23は、制御対象となる設備などが保持する状態とその状態遷移の条件に使用される判断コンポーネントとの関係および状態遷移したときに実行される実行コンポーネントの情報を保存する記憶媒体に相当するものである。
制御部4のフィーチャ情報管理部14は、フィーチャ情報保存部23に保存される状態遷移情報を含むフィーチャ情報を管理するものである。フィーチャ情報管理部14は、フィーチャ情報をフィーチャ情報保存部23に記憶したり、読み出し、更新したり、削除などする。なお、状態などのフィーチャ情報を保持するフィーチャ情報保存部23と、フィーチャ情報を管理するフィーチャ情報管理部14とは、任意の状態を定義するので、状態定義手段である。任意の状態は、ユーザがユーザインターフェース部3から入力することができる。或いは、他のシステムからデータを転送して、任意の状態をフィーチャ情報管理部14でフィーチャ情報保存部23に記録してもよい。
制御部4の情報管理部15は、各管理部12、13、14とインターフェース部11との情報の受け渡しや情報分析部16との情報の受け渡しを行うものである。
情報分析部16は、情報管理部15から取得される実行コンポーネント情報と、判断コンポーネント情報と、状態遷移を含むフィーチャ情報とに基づき、各情報の整合性を検証する機能と、その検証結果を表示装置32側へ出力する機能と、実行可能なソースコード(プログラムソースのコード)を自動生成する機能と、生成したソースコードを試験する機能とを有する。
記憶部2のフィーチャモデル分析結果保存部24は、情報分析部16が解析した結果を保存する記憶媒体である。
<各情報保存部21、22、23に保存される情報の構成>
次に、各種の情報保存部21、22、23に保存される情報の構成について、図2〜図4を参照して説明する。
図2は、実行コンポーネント情報保存部21に保存される実行コンポーネント情報Jの構成の一例を示す図である。
実行コンポーネント情報Jは、実行コンポーネント識別情報J1と実行コンポーネント間関連情報J2とを含む。
実行コンポーネント識別情報J1は、個々の実行コンポーネントを識別するための“実行コンポーネントID(Identification)”や、“実行コンポーネント名”などの情報を含む。その他、実行コンポーネント識別情報J1は、当該実行コンポーネントが何を行うかのコメントである“実行コンポーネントコメント”、当該実行コンポーネントの“作成日時”を含む。
実行コンポーネント間関連情報J2は、実行コンポーネント間の関連情報を一意に識別するための“実行コンポーネント間関連ID”、実行コンポーネントの親子関係を識別するための“子実行コンポーネントID”などの情報を含む。さらに、実行コンポーネント間関連情報J2は、子実行コンポーネントとの関連を示す“子コンポーネントとの関連”(図2では、C10001またはC10002の何れかを選択する“択一式”を示す)、および当該実行コンポーネントが動作するために必要となる関連する実行コンポーネント情報を示す“実行コンポーネント参照関連”を含むものである。すなわち、図2では、実行コンポーネントIDが“C10000”の実行コンポーネントが動作するためには、実行コンポーネントIDが“C20001”の実行コンポーネントを参照する必要があることを示している。
図3は、判断コンポーネント情報保存部22(図1参照)に保存される判断コンポーネント情報Hの構成の一例を示す図である。
判断コンポーネント情報Hは、判断コンポーネント識別情報H1および判断コンポーネント間関連情報H2を含む。
判断コンポーネント識別情報H1は、個々の判断コンポーネントを識別するための“判断コンポーネントID”や、“判断コンポーネント名”などの情報を含む。さらに、判断コンポーネント識別情報H1は、当該判断コンポーネントの内容を示す“判断コンポーネントコメント”、その“作成日時”を含む。
判断コンポーネント間関連情報H2は、当該判断コンポーネントの関連情報を一意に識別するための“判断コンポーネント間関連ID”、当該判断コンポーネントの親子関係をなす“子判断コンポーネントID”などの情報を含む。さらに、判断コンポーネント間関連情報H2は、子判断コンポーネントとの関連を示す“子コンポーネントとの関連”(図3では、“C10001”または“C10002”の何れかを選択する“択一式”が指定された場合を示す)、当該判断コンポーネント(W10000)を動作させる際に必要となる判断コンポーネントを示す“判断コンポーネント間関連”を含むものである。つまり、図3では、判断コンポーネント(W10000)を動作させるには判断コンポーネントID:C20001、C20002、C20003の判断コンポーネントを参照する必要があることを示している。
図4は、フィーチャ情報保存部23に保存される状態遷移情報のフィーチャ情報Fの構成の一例を示す図である。
フィーチャ情報Fは、状態識別情報F1および状態間関連情報F2を含む。
状態識別情報F1は、個々の設備などの状態を識別するための“状態ID”や、状態名称、本状態に至る場合に実行される実行コンポーネントF1aなどの情報を含む。実行コンポーネントF1aは、本状態に入る際(entry)には自動制御Aを実行し、本状態の間(stay)は、何もせず(NULL)、本状態から出る際(exit)には何もしない (NULL)ことを示している。状態識別情報F1には、その他、本状態の内容を説明する“コメント”、本状態の“作成日時”が表示される。
状態間関連情報F2は、状態間の関連情報である状態間関連情報を識別する“関連ID”を含み、また、状態から状態への“状態遷移情報”として設備の状態間の遷移するための条件として使用される状態判断コンポーネントF2a、状態遷移元F2bと状態遷移先F2cを含むものである。
<ソフトウェアプロダクトライン開発支援を実現する各種の処理>
次に、ソフトウェアプロダクトライン開発支援を実現する各種の処理について、図5〜図11を参照して、説明する。
以下では、設備などの状態に関して、「1.状態識別情報の登録」、「2.状態間関連情報の登録」、「3.状態遷移の整合性チェック」、「4.状態遷移を実現するソースコード生成」について説明し、その後、生成されたプログラムソースのテストである「5.生成ソースコードの試験」について説明する。
なお、実行コンポーネント情報、判断コンポーネント情報については、記憶部2に登録済みであるものとする。実行コンポーネント情報、判断コンポーネント情報の登録は、従来のコンポーネント作成や応用プログラム作成、ソフトウェアプログラム作成に類するものであり周知の技術であるため、ここでは特に説明しない。さらに実行コンポーネント、判断コンポーネントは登録時に試験済みとし、保証されているものとする。
1.状態識別情報の登録
図5は、状態識別情報の登録を説明するための概念図である。
状態遷移作成者(ユーザ)Pは、図6に示される状態識別情報編集画面G1を介して、状態の作成を行う。
一般に、状態を作成する対象は制御対象となる設備やシステム全体の状態など状態遷移を持つ具現的な対象について作成されるものであるが、仮想的な設備や事象についての対象に状態を定義しても構わない。
状態識別情報編集画面G1では、定義した状態に遷移した際に実行される実行コンポーネント(以下、entry時実行コンポーネントとする)を実行コンポーネントコンボボックスG1aから選択可能である。具体的には、状態識別情報編集画面G1で、entry時実行コンポーネントを選択する実行コンポーネントコンボボックスG1aをクリックすると、このクリック情報により、図5のインターフェース部11、情報管理部15、実行コンポーネント情報管理部12を介して、実行コンポーネント情報管理部12が実行コンポーネント情報保存部21から選択可能な実行コンポーネント一覧を取得することで、実行コンポーネントコンボボックスG1aに表示する。
ユーザは、必要に応じて実行コンポーネントコンボボックスG1aに表示された実行コンポーネント一覧からentry時の実行コンポーネントを選択する。entry時に実行する必要がない場合は、非選択の状態で問題ない。
また、定義した状態に停滞している(定義した状態を維持している)場合に実行されるコンポーネントや、状態から抜け出した場合に実行されるコンポーネント(以下、それぞれstay時実行コンポーネント、exit時実行コンポーネントとする)に関しても同様に、それぞれ実行機能フィーチャ(stay)コンボボックスG1b、実行機能フィーチャ(exit)コンボボックスG1cから選択することが可能である。なお、状態識別情報編集画面G1には、状態名称“NOP”の内容を説明する“コメント”、“作成日時”が表示される。
状態遷移作成者Pが「登録」ボタンG1dを押下すると、状態識別情報編集画面G1で入力した情報が、ユーザインターフェース部3(図1参照)から、図5のインターフェース部11、情報管理部15、フィーチャ情報管理部14を介して、フィーチャ情報管理部14によってフィーチャ情報保存部23に保存される。
2.状態間関連情報の登録
図7は、状態間関連情報の登録を説明するための概念図である。
状態遷移作成者(ユーザ)Pは、図8に示す状態間関連情報編集表示画面G2を介して、状態から状態へ遷移する状態遷移の条件定義を行う。一般に、状態遷移する条件は、その条件を判断するフィーチャを利用するものとするが、各設備の入出力情報(標準入出力情報や外部システムの入出力情報)を使用しても構わない。
まず、状態遷移作成者Pは、「1.状態識別情報の登録」で登録した状態を図8の状態間関連情報編集表示画面G2の状態情報一覧G2aで選択する。状態間関連情報編集表示画面G2の状態情報一覧G2aのスペースに登録されている全ての状態一覧が表示されている。
状態遷移作成者(ユーザ)Pは、ユーザインターフェース部3(図1参照)を介して、状態情報一覧G2aから使用する状態を選択し、状態間関連情報編集画面G2bに登録する。
次に、ユーザインターフェース部3で、図8の状態間関連情報編集画面G2bにおいて、状態遷移が起りうる状態間を、マウスでドラッグなどして状態遷移線G2sで結びつける。
図8の状態間関連情報編集画面G2bにおける遷移元(矢印の始点)の状態と遷移先(矢印の終点)の状態を選択した結果は、図7のインターフェース部11、情報管理部15を介して、フィーチャ情報管理部14に通知され、一時的にフィーチャ情報管理部14で管理される、例えばフィーチャ情報管理部14の一時記憶領域に保存される。
さらに、図9に示す状態間関連情報編集画面G2bのように、入れ子構造をとりうる状態G2b1に関しては、その状態G2b1内にさらに状態遷移を格納することができる。つまり、親状態(G2b1)になったタイミングで、最初に遷移する状態G2b2を上記と同様に定義する。
次に、ユーザインターフェース部3(図1参照)を介して、状態遷移が生じる条件を定義する。
状態遷移線G2sをクリックし、条件コンポーネント入力コンボボックスG2cに表示されている判断コンポーネントと返り値G2dの選択をする。選択可能な判断コンポーネントは、図7の判断コンポーネント情報保存部22、判断コンポーネント情報管理部13、情報管理部15、インターフェース部11を介して、判断コンポーネント情報管理部13が判断コンポーネント情報保存部22から取得することで、結果を表示装置32(図1参照)に表示する。
そして、選択した結果は、図7のインターフェース部11、情報管理部15を介して、フィーチャ情報管理部14に通知され、フィーチャ情報管理部14が一時的に記憶する、例えば、フィーチャ情報管理部14の一時記憶領域に保存する。ここで、状態遷移するための判断コンポーネントは1つとは限らず、複数選択することも可能であり、複数の判断コンポーネントの論理式を組んでも構わない。なお、条件コンポーネント入力コンボボックスG2cで選択した判断コンポーネントと選択した返り値G2dは、条件コンポーネント一覧G2eに表示される。
状態遷移作成者Pが図9の「登録」ボタンG2fを押下すると、入力した情報は、図7のインターフェース部11、情報管理部15を介して、フィーチャ情報管理部14に通知され、フィーチャ情報管理部14によりフィーチャ情報保存部23に保存される。
3.状態遷移の整合性チェック
図10は、状態遷移情報の整合性チェックを説明するための概念図である。
前記の「1.状態識別情報の登録」、「2.状態間関連情報の登録」の登録完了後、図10に示す実行コンポーネント情報保存部21、判断コンポーネント情報保存部22、フィーチャ情報保存部23に登録されている内容の整合性チェックを行う。
まず、フィーチャ情報保存部23に保存されているentry時実行コンポーネント、stay 時実行コンポーネント、exit時実行コンポーネントおよび判断コンポーネントが、それぞれ実行コンポーネント情報保存部21、判断コンポーネント情報保存部22に存在するか、それぞれ実行コンポーネント情報管理部12、判断コンポーネント情報管理部13で確認する。削除等され存在しないフィーチャを使用していた場合は、インターフェース部11を介して、図1のユーザインターフェース部3の表示装置32にエラーとして表示する。
次に、状態遷移の整合性チェックを情報分析部16が行う。論理的に状態遷移が不可能な状態が定義されていないか、チェックを行う。
図11に状態遷移不可能な条件の一例G2gを示す。
図11の例に示したように、情報分析部16の状態遷移の整合性チェックの結果、論理が矛盾している状態遷移や1つの状態から状態遷移が不可能な条件があった場合(図11の一例G2g)は、インターフェース部11を介して、ユーザインターフェース部3の表示装置32にエラーとして表示する。
状態遷移作成者P(ユーザ)は、表示装置32に表示される各エラーの内容を確認し、必要に応じて、実行コンポーネント情報、判断コンポーネント情報、フィーチャ情報を修正し、再度、整合性チェックをかける。
4.状態遷移を実現するソースコード生成
次に、状態遷移を実現するソースコードを生成する。
情報分析部16は、登録されている情報を基に状態遷移を実現する実行可能なソースコードを自動生成する。状態遷移図を用いた自動のソースコード生成については周知の技術であるため、ここでは特に説明しない。
生成されたソースコードは、実際に列車運行管理システム(監視制御システム)にダウンロードされて制御を行うコードであり、次に説明する「5.生成ソースコードの試験」に用いられるものである。生成されたソースコードは、フィーチャモデル分析結果保存部24に情報分析部16によって保存される。
5.生成ソースコードの試験
次に、「4.状態遷移を実現するソースコード生成」で生成したソースコードの試験を情報分析部16(図1参照)が行う。前記で定義した状態遷移と判断コンポーネントと実行コンポーネントの組み合わせを、仮想環境上で網羅的に試験する。試験のシナリオは情報分析部16において、ソースコード生成を行った際に、テストコードも同時に吐き出され、仮想環境で意図通りに作動するか検証することができる。
上記構成によれば、外部定義により指定した状態遷移に従い、コンポーネント実行(実行コンポーネント、判断コンポーネント)の条件をソフトウェア開発者(ユーザ)が任意に選択可能とする。
すなわち、システム構成や運用が各ユーザごとに異なる特徴をもつ制御監視システム(例えば、列車運行管理システム)において、コンポーネントの実行タイミングは異なるが、比較的統一されている状態遷移に着目し、状態遷移の遷移条件で実行されるコンポーネントをソフトウェア開発者(ユーザ)が、図8、図9に示すように、任意にマッピング可能とすることで、フィーチャの再利用性が図れ、ソフトウェアプロダクトラインの高生産性を実現できる。
なお、前記実施形態においては、ソフトウェアプロダクトライン開発支援装置1は、一つの形態に制御部4が納まる場合を例示しているが、説明した機能が果たせれば、複数のコンピュータ上に制御部4を展開してもよい。
また、記憶部2は、別体のデータベースサーバに記憶してもよいし、分割して構成してもよい。
本発明は、状態遷移図を用いて表現が可能なシステムや処理であれば、監視制御システムに限ることなく、他のシステム装置や処理でも利用することが可能である。
1 ソフトウェアプロダクトライン開発支援装置
10 ソフトウェアプロダクトライン開発支援プログラム
12 実行コンポーネント情報管理部(コンポーネント定義手段、実行コンポーネントチェック手段)
13 判断コンポーネント情報管理部(判断コンポーネント選択手段、判断コンポーネント管理手段、判断コンポーネントチェック手段)
14 フィーチャ情報管理部(フィーチャ管理手段、状態定義手段、コンポーネント定義手段、状態管理手段、状態遷移手段)
16 情報分析部(ソースコード生成手段、ソフトウェア試験手段、整合性チェック手段)
21 実行コンポーネント情報保存部(コンポーネント定義手段)
22 判断コンポーネント情報保存部(判断コンポーネント記憶部)
23 フィーチャ情報保存部(状態定義手段、フィーチャ情報記憶部、状態管理手段、コンポーネント定義手段)
24 フィーチャモデル分析結果保存部
F2 状態間関連情報(状態遷移手段)

Claims (11)

  1. ソフトウェアシステムのソフトウェアプロダクトライン開発支援装置であって、
    前記ソフトウェアシステムにおける制御対象または仮想的な対象の状態をユーザの入力により定義する状態定義手段と、
    前記定義された各状態に就き、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、次の状態に移るときに実行される実行コンポーネントを定義可能であるコンポーネント定義手段と、
    実行されるプログラムモジュールである前記実行コンポーネントの情報を保存する実行コンポーネント記憶部と、
    判断を行うプログラムモジュールである判断コンポーネントの情報を保存する判断コンポーネント記憶部と
    前記制御対象または前記仮想的な対象の状態の遷移を示す状態遷移の情報を含む特性を表すフィーチャの情報が記憶されるフィーチャ情報記憶部と、
    ユーザに対して、前記定義された各状態に就き、前記実行コンポーネント記憶部の前記実行コンポーネントの情報のうちから、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、および次の状態に移るときに実行される実行コンポーネントを画面を用いて選択させて、前記フィーチャ情報記憶部に保存する実行コンポーネント選択手段と、
    ユーザに対して、前記定義された各状態に就き、画面を用いて、前記各状態のうちから遷移元の状態と遷移先の状態とを選択させ、前記遷移元の状態から前記遷移先の状態へ遷移させるための判断を行う判断コンポーネントを、画面を用いて、前記判断コンポーネント記憶部の前記判断コンポーネントの情報のうちから選択させるととともに、前記遷移が可能となる当該選択された判断コンポーネントの返り値を画面を用いて選択させて、前記フィーチャ情報記憶部に保存する判断コンポーネント選択手段と、
    前記選択される実行コンポーネントを、前記実行コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とする実行コンポーネント管理手段と、
    前記選択可能な判断コンポーネントを、前記判断コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とする判断コンポーネント管理手段とを
    具備することを特徴とするソフトウェアプロダクトライン開発支援装置。
  2. 請求項1に記載のソフトウェアプロダクトライン開発支援装置において、
    機能的にまとめられた前記フィーチャと、前記判断コンポーネントとを分離して管理する
    ことを特徴としたソフトウェアプロダクトライン開発支援装置。
  3. 請求項に記載のソフトウェアプロダクトライン開発支援装置において、
    ユーザにより選択された前記実行または前記判断コンポーネントの実行または判断結果を用いて、前記定義された状態の間を遷移させる状態遷移手段を具備する
    ことを特徴としたソフトウェアプロダクトライン開発支援装置。
  4. 請求項に記載のソフトウェアプロダクトライン開発支援装置において、
    前記状態遷移手段は、
    前記ソフトウェアシステムの入出力情報によって、前記状態間を遷移させる
    ことを特徴としたソフトウェアプロダクトライン開発支援装置。
  5. 請求項から請求項の何れか一項に記載のソフトウェアプロダクトライン開発支援装置において、
    ユーザにより定義される前記状態を入れ子構造で構成する状態管理手段を
    具備することを特徴としたソフトウェアプロダクトライン開発支援装置。
  6. 請求項から請求項の何れか一項に記載のソフトウェアプロダクトライン開発支援装置において、
    前記実行コンポーネントが前記実行コンポーネント記憶部にあるかチェックする実行コンポーネントチェック手段と、
    前記判断コンポーネントが前記判断コンポーネント記憶部にあるかチェックする判断コンポーネントチェック手段とを
    具備することを特徴としたソフトウェアプロダクトライン開発支援装置。
  7. 請求項または請求項に記載のソフトウェアプロダクトライン開発支援装置において、
    前記状態遷移が整合がとれているかチェックする整合性チェック手段を
    具備することを特徴としたソフトウェアプロダクトライン開発支援装置。
  8. 請求項から請求項の何れか一項に記載のソフトウェアプロダクトライン開発支援装置において、
    ユーザにより定義された前記フィーチャと前記実行および前記判断コンポーネントとから実行可能なソースコードを生成するソースコード生成手段を
    具備することを特徴としたソフトウェアプロダクトライン開発支援装置。
  9. 請求項または請求項に記載のソフトウェアプロダクトライン開発支援装置において、
    前記状態間の遷移と前記判断コンポーネントと前記実行コンポーネントとの組み合わせを仮想環境で意図通りに作動するか試験するソフトウェア試験手段を
    具備することを特徴としたソフトウェアプロダクトライン開発支援装置。
  10. ソフトウェアシステムのソフトウェアプロダクトライン開発支援装置の方法であって、
    前記ソフトウェアプロダクトライン開発支援装置は、状態定義手段と、コンポーネント定義手段と、実行コンポーネント記憶部と、判断コンポーネント記憶部と、フィーチャ情報記憶部と、実行コンポーネント選択手段と、判断コンポーネント選択手段と、実行コンポーネント管理手段と、判断コンポーネント管理手段とを具備し、
    前記状態定義手段は、前記ソフトウェアシステムにおける制御対象または仮想的な対象の状態をユーザの入力により定義し、
    前記コンポーネント定義手段は、前記定義された各状態に就き、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、次の状態に移るときに実行される実行コンポーネントを定義し、
    前記実行コンポーネント記憶部に、実行されるプログラムモジュールである前記実行コンポーネントの情報が保存され、
    前記判断コンポーネント記憶部に、判断を行うプログラムモジュールである判断コンポーネントの情報が保存され、
    前記フィーチャ情報記憶部に、前記制御対象または前記仮想的な対象の状態の遷移を示す状態遷移の情報を含む特性を表すフィーチャの情報が記憶され、
    前記実行コンポーネント選択手段は、ユーザに対して、前記定義された各状態に就き、前記実行コンポーネント記憶部の前記実行コンポーネントの情報のうちから、その状態になったときに始めて実行される実行コンポーネント、状態を維持しているときに実行される実行コンポーネント、および次の状態に移るときに実行される実行コンポーネントを画面を用いて選択させて、前記フィーチャ情報記憶部に保存し、
    前記判断コンポーネント選択手段は、ユーザに対して、前記定義された各状態に就き、画面を用いて、前記各状態のうちから遷移元の状態と遷移先の状態とを選択させ、前記遷移元の状態から前記遷移先の状態へ遷移させるための判断を行う判断コンポーネントを、画面を用いて、前記判断コンポーネント記憶部の前記判断コンポーネントの情報のうちから選択させるととともに、前記遷移が可能となる当該選択された判断コンポーネントの返り値を画面を用いて選択させて、前記フィーチャ情報記憶部に保存し、
    前記実行コンポーネント管理手段は、前記選択される実行コンポーネントを、前記実行コンポーネント記憶部に記憶保持するとともに、必要に応じて読み出すことを可能とし、
    前記判断コンポーネント管理手段は、前記選択可能な判断コンポーネントを、前記判断コンポーネント記憶部に記憶保持するとともに必要に応じて読み出すことを可能とする
    ことを特徴とするソフトウェアプロダクトライン開発支援装置の方法。
  11. 請求項10に記載のソフトウェアプロダクトライン開発支援装置の方法において、
    機能的にまとめられた前記フィーチャと、前記判断コンポーネントとを分離して管理する
    ことを特徴としたソフトウェアプロダクトライン開発支援装置の方法。
JP2010235037A 2010-10-20 2010-10-20 ソフトウェアプロダクトライン開発支援装置およびその方法 Active JP5319643B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010235037A JP5319643B2 (ja) 2010-10-20 2010-10-20 ソフトウェアプロダクトライン開発支援装置およびその方法
PCT/JP2011/073318 WO2012053392A1 (ja) 2010-10-20 2011-10-11 ソフトウェアプロダクトライン開発支援装置、その方法およびそのプログラム
GB1307123.8A GB2498305A (en) 2010-10-20 2011-10-11 Software-product-line development assisting device, method thereof, and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010235037A JP5319643B2 (ja) 2010-10-20 2010-10-20 ソフトウェアプロダクトライン開発支援装置およびその方法

Publications (3)

Publication Number Publication Date
JP2012088933A JP2012088933A (ja) 2012-05-10
JP2012088933A5 JP2012088933A5 (ja) 2013-02-07
JP5319643B2 true JP5319643B2 (ja) 2013-10-16

Family

ID=45975109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010235037A Active JP5319643B2 (ja) 2010-10-20 2010-10-20 ソフトウェアプロダクトライン開発支援装置およびその方法

Country Status (3)

Country Link
JP (1) JP5319643B2 (ja)
GB (1) GB2498305A (ja)
WO (1) WO2012053392A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5605397B2 (ja) 2012-07-11 2014-10-15 株式会社デンソー 結合検査要否判定方法及び装置
CN115720656A (zh) * 2020-06-19 2023-02-28 松下电器(美国)知识产权公司 信息处理方法以及信息处理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863345A (ja) * 1994-08-22 1996-03-08 Sony Corp プログラム自動生成装置
JPH1031581A (ja) * 1996-07-18 1998-02-03 Hitachi Zosen Corp 機械装置システムにおける制御用ソフトウエア作成支援装置
JP4438175B2 (ja) * 2000-04-07 2010-03-24 日本制御株式会社 ソフトウエアの開発システム
JP2007133772A (ja) * 2005-11-11 2007-05-31 Canon Inc オブジェクト指向プログラム生成装置、方法及びプログラム

Also Published As

Publication number Publication date
WO2012053392A1 (ja) 2012-04-26
GB2498305A8 (en) 2013-08-28
JP2012088933A (ja) 2012-05-10
GB201307123D0 (en) 2013-05-29
GB2498305A (en) 2013-07-10

Similar Documents

Publication Publication Date Title
US9501596B2 (en) Graphical design verification environment generator
CN105144088B (zh) 元数据与源代码的关联以及基于其的应用和服务
JP5198132B2 (ja) 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法
US20110016452A1 (en) Method and system for identifying regression test cases for a software
US8312415B2 (en) Using code analysis for requirements management
JP2009501970A (ja) 有限状態マシンモデルの構築
Campos et al. A more intelligent test case generation approach through task models manipulation
US10572247B2 (en) Prototype management system
Mahey Robotic Process Automation with Automation Anywhere: Techniques to fuel business productivity and intelligent automation using RPA
CN106484389A (zh) 动作流分段管理
JP5319643B2 (ja) ソフトウェアプロダクトライン開発支援装置およびその方法
Li Jira Software Essentials: Plan, track, and release great applications with Jira Software
JP2009245177A (ja) フィーチャーモデル作成支援装置及びプログラム
Baumgartner et al. Test Automation Fundamentals: A Study Guide for the Certified Test Automation Engineer Exam–Advanced Level Specialist–ISTQB® Compliant
Ciceri et al. Software Architecture Metrics
US20100251211A1 (en) Generating and using code-based diagrams
JP2009169628A (ja) 監視制御システムの構築装置、構築方法およびプログラム
Wang et al. Analyzing inaccurate artifact usages in a workflow schema
US10998004B1 (en) Method and apparatus for generating a video based on a process
Moroz Unit Test Automation of a React-Redux Application with Jest and Enzyme
Lai et al. Can SysML Be Used for Enterprise Modelling?
Velozo et al. Evaluation of a Mobile Software Development Company
Rocha et al. A Comparative Study of Milestones for Featuring GUI Prototyping Tools
JP6603637B2 (ja) ユーザインタフェース接続装置、及びプログラム
Baquirin Navigating Growth: Experiences of a Junior Software Developer in Web and Mobile Development

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130711

R150 Certificate of patent or registration of utility model

Ref document number: 5319643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150