建源フォーラム・模型観察丨形式手法の産業応用:鉄道交通分野

著者|  Wang Yiling、Shanghai Kongan Trusted Software Innovation Research Institute システム モデリング グループ

セクション|  Jianyuan フォーラム · モデルを見る

コミュニティ |  WeChat ID「TICPShanghai」を追加して「上海港安51房セキュリティコミュニティ」に参加してください

はじめに:これまでの記事では、形式手法の開発の歴史と具体的な技術を紹介し、形式手法のエンジニアリングを全体的な視点から紹介してきました。この記事では、鉄道輸送の分野に焦点を当て、ドメイン固有の要件作成および分析ツールである Prema から始めて、業界における形式的手法の実践的な応用を紹介します。 

01

背景

都市の急速な発展に伴い、鉄道交通の建設と流通は都市交通の利便性と経済発展の重要な象徴となっています。「第13次5カ年計画」期間中に、都市鉄道の営業距離は6,600キロメートルに達し、2025年までに大都市の半径800メートル以内の鉄道駅がカバーする通勤者の割合はこれ以上に少なくないと推定されている。 30%以上。鉄道交通システムの安全性は制御ソフトウェアによって決定されており、制御ソフトウェアが期待どおりに動作しない場合、物的損害や人的被害が発生する可能性があります。したがって、鉄道交通制御ソフトウェアの品質と安全性は非常に重要であり、国もこれに対する厳しい安全基準を発行しています。

鉄道交通分野における自動列車制御システム(Automatic Train Control、ATC)システムは、ATP(Automatic Train Protection、自動列車保安装置)、ATO(Automatic Train Operation、自動列車運転システム)、ATS の 3 つの部分で構成されています。 (Automatic Train Supervision、自動列車監視システム) 運転士のミスを自動的に防止し、列車の高い安全性を実現します。図1に示すように、ATOは車上機器と地上機器から構成される列車の自動運転を制御するシステムであり、ATPは列車が規定速度を超えた場合に直ちにブレーキをかけるシステムであり、 ATSシステムは車上装置と地上装置からも構成されており、ATSシステムは制御センター、駅、ヤード、車上装置から構成される列車の自動監視システムを完成させます。両者の関係は、ATP システムの保護のもとに、ATO システムが ATS の指示に従って列車の自動運転、速度の自動調整、列車ドアの自動制御を実現するというものである。

7311.jpg

図1 自動列車制御システムの構成

要件分析はソフトウェア設計の基礎であり、ソフトウェア開発活動における最も重要かつ最も初期のリンクです。要件書には列車制御システムの機能記述が含まれており、列車制御システムの要件を分析することで、要件内のシステムの機能記述の誤りを発見することができます。長期にわたる研究と実践の結果、学界も産業界も、列車制御システムの機能要件を要件段階からチェックする必要性を認識しています。しかし、現在の業界では、自然言語で記述された列車制御システムの要件を手作業で確認することは非効率であるだけでなく、機能要件の正確性を保証することもできません。

02

形式的モデリング手法の概要

自然言語を使用して要件を記述する場合にはあいまいさが生じるため、作成者にとっては明確な一部の表現が、他の人には別の意味として理解される可能性があります。その結果、異なる開発者が同じ要件や設計に対して曖昧な理解を持ち、開発効率が低下します。このような事態を避けるために、私たちは標準的な形式を使用して要件と設計を記述します。この標準形式は通常、数学の言語に基づいています。この標準化された記述仕様は、形式的メソッドの基礎を形成します。

形式的手法は、デジタル システムの仕様作成、ソフトウェア開発、およびソフトウェア検証のための数学に基づく手法です。その数学的基礎には、形式論理、離散数学、機械認識言語が含まれます。形式モデルは、数学的構文とセマンティクスによって記述される明確なモデルであり、ソフトウェアの多くの側面を抽象的に表現したもので、その後の分析、シミュレーション、コード生成に使用されます (条件によっては、モデル生成コードから直接生成することはできない場合があります)。 。形式的手法を適用する基礎は、開発するソフトウェアの形式的モデルを確立することです。

形式的手法には、形式仕様技術と形式検証技術という 2 つの主要な分野があり、形式検証技術は、図 2 に示すように、定理証明とモデル検査の 2 つの分野に分かれています。

7312.jpg

図2 形式的手法の構成

学術界や産業界では、列車の安全な運行を確保するために、学者や技術者が主に、形式要件の記述、モデルの構築と検証、システムのシミュレーションなどの側面から鉄道輸送制御システムの研究を行っています。これら 3 つは単独ではなく、形式的な手法を使用してシステムの要件を記述し、モデルを構築し、分析して検証するなど、一緒に研究されることがよくあります。

形式的手法を使用して鉄道輸送制御システムの安全性を確保するという目的を達成するために、私たちは鉄道輸送制御システムの要件モデリングのための形式工学手法を提案し、ツール Prema (正確な要件の編集、モデリング、分析 (正確な要件の編集、モデリング、および分析)は、正式なエンジニアリング手法の適用を支援するために使用されます。

03

Prema、鉄道輸送分野のソリューション

Prema の形式テクノロジのアプリケーションには、形式要件の仕様とモデルのチェックという 2 つの側面が主に含まれています。要件を正式に記述するために、鉄道輸送の分野に適合した CASDL 言語を提案します。形式言語で記述されたシステム要件を要件モデル化した後、ブール式で記述された制約特性が成り立つかどうかを要件モデル内で検証できます。

Prema ツール インターフェイスのメイン インターフェイスは次の図 3 に示されており、図は主に左側の編集バーと右側の表示バーに分かれています。ユーザーは左側で要件を作成でき、最終的に生成されたドキュメント スタイルは右側の領域にリアルタイムで表示されます。編集領域の上には、ユーザーが要件を作成するためのショートカット ツールがいくつかあります。

7313.jpg

図 3 Prema ツールのインターフェイス

3.1 形式的要件の仕様

ユーザーは、左側の編集欄に CASDL 言語で形式要件を書き込みます。次に、CASDL 言語仕様の簡単な説明を示します。

鉄道交通分野の制御システムは通常、周期的に実行されるため、CASDL のサイクルには、現在のシステム動作がどのサイクルを通過したかを示す特別な意味があり、その構文は次のように表現できます。 

● md :: = (サイクル、ブロック、DefBlock、DataDictionary)

● ブロック :: = (識別子、前提条件、初期、状態、遷移)

● DefBlock :: = (名前、識別子、タスク)

● タスク :: = CFG

● 遷移 ::= (ソース、ターゲット、条件、アクション)

● DataDictionary ::= (V)

CASDL は 4 つの部分で構成されます。Block 部分はシステムの状態遷移を記述します Block 内では一意の識別子で識別されます Precondition はシステム状態遷移の条件が満たされているかどうかを判断するために使用されます Initial はシステム状態遷移前の値を示すために使用されます状態ストア 状態値が変化した全ての変数値に対して、状態遷移の具体的な過程を記述したのがTransactionであり、その過程を記述した構造体も上記で表現されています。このうち、Source と Target はそれぞれ状態変化前の値と状態変化後の値を表し、Condition は状態遷移が発生するために満たす必要がある一連の条件を記録し、最後の項目 Action は状態遷移プロセスがどのように発生するかを記録します。 。 

DefBlock はコンピューティング モジュールを記述します。コンピューティング モジュールには、モジュール名 name、一意の識別子 identifier、および制御フローで構成されるコンピューティング タスク タスクが含まれます。

ディクショナリには、要件文書のモデリング プロセスに現れる変数が記録されます。 

図4にCASDLで記述した例を示しますが、この例では赤い部分が状態遷移を示すブロック部分であり、戻り値はなく、状態変数の値を変更するだけでシステムの状態が変化します。 、状態遷移。State に続く (k-1) は、k-1 番目のサイクルを示します。黄色の部分は、計算タスクを記述する defBlock 部分を示します。

7314.jpg

図 4 Block と DefBlock の例

CASDL では、DefBlock の計算指向タスクの計算プロセスを記述するためのいくつかの式も定義されています。式の構文は次のとおりです。 

● SExpr :: = 定数 | ヴァール | f(n)(SExpr) 

● BTerm :: = True | 偽 | p(n)(SExpr) 

● IExpr :: = (| 期間後)(BTerm,SExpr)

● BExpr :: = BTerm | £BExpr | BExpr ∨ BExpr | BExpr ∧ BExpr

ここで、ステートメント式は定数、変数、または複数のステートメント式で構成され、ブール変数の値は True または False であるか、状態式の値から導出されます。間隔式は主に、ブール値や、一定期間内または一定期間後のステートメント式の計算値など、時間関連の需要フラグメントを記述するために使用されます。一方、ブール式は、ブール値、ブール値の否定、OR 値、または AND 値で構成されます。 

同時に、CASDL はいくつかのステートメント構造も定義します。

● stmts :: = pStmt | cStmt

● pStmt :: = aStmt | スキップ

● aStmt :: = x := SExpr

● cStmt :: = stmts | if BExpr then stmts else stmts

ステートメント セットには複合ステートメントまたは個別のステートメントが含まれます。このうち pStmt は代入ステートメントまたはスキップ ステートメントで構成され、代入ステートメントは式の値が代入される変数として表現でき、複合ステートメントはステートメント セットまたはステートメントで構成されます。選択ステートメント構造が構成されます。 

一般に、CASDL はエンジニアの使用習慣に準拠しており、学習と理解のコストが非常に低いです。この Python に似た言語は受け入れられやすいですが、セマンティクスは依然として Python とは異なります。たとえば、k は特殊文字です。 CASDLでは、システム動作のサイクルを表します。 

3.2 モデルのチェック

要件が記述された後、Prema ツールは、静的解析、ステート マシン シミュレーションの実行、要件の性質検証などの機能を提供して、記述された要件の正確さを検証します。要件の性質の検証はモデルの検査です。

要件性質検証とは、要件チェックを行った後、文法上の誤りがないか、不変性や到達可能性などの要件モデルを検証することです。その主な目的は、影響関係のある特定の変数間の変化が関連する変数の変化に確実に影響を与えるかどうかを分析することであり、これは要件の論理関係を理解し​​て分析するために重要です。プロパティ検証のフローチャートを図 5 に示します。

7315.jpg

図5 プロパティ検証のフローチャート

Prema プロパティ検証インターフェイスを図 6 に示します。ユーザーは、以前に使用した構成オプションを選択することも、再選択することもできます。検証インターフェースでは、ユーザーはどの要件項目を検証する必要があるかを選択し、選択が完了したら「実行」ボタンをクリックすると、完全な検証インターフェースが生成されます。

7316.jpg

図6 プロパティ検証インターフェースの模式図

ユーザーが選択した要件項目に応じて可変関係図を生成し、要件担当者に要件項目に記載されている内容を思い出させるとともに、要件項目の誤確認を防止します。正しい要件項目が選択されていることを確認後、プロパティ書き込みエリアに検証対象プロパティを書き込みます(現在、検証対象プロパティはブール式のみサポートしています)。初期状態 (オプション) とプロパティを入力した後、チェック ボタンをクリックして、入力されたプロパティがブール式であるかどうかを確認できます。

ユーザーが検証したい要件項目と性質を選択し、「検証」ボタンをクリックすると、検証結果が表示されます。要件エンジニアは、フィードバック情報に基づいて要件が性質を満たしているかどうかを確認し、性質を満たしていない場合には、性質を満たしていない場合の反例を提示することができます。 

Prema ツールを使用すると、要件ステートメントのあいまいさやあいまいさを効果的に排除し、要件の正確性を保証できます。

04

要約する

近年のたゆまぬ努力により、形式手法は学術界で大きな発展を遂げただけでなく、産業界でも広く利用されるようになりました。形式的手法では、まずドメイン関連の要件記述言語を定義する必要があります。これにより、このドメインのすべての要件特性を完全にカバーできます。第二に、確立された記述言語を通じて需要モデルを記述し、需要モデルを分析および検証するためのマッチングアルゴリズムを提供します。鉄道輸送の分野では制御システムに厳しい要件があるため、これが正式な手法を適用するための前提条件となります。将来的には、正式な手法は産業上の安全を保護するために産業慣行とより良く統合されるでしょう。

主な参考文献:

[1] Guangming.com.「国家都市インフラ建設のための第 14 次 5 か年計画」が発行されました [EB/OL].(2022-08-03)[2022-8-16].https://m.gmw .cn /baijia/2022-08/03/35929147.html。 

[2] Wang Xiuchao. 列車制御システム要件文書のモデル抽出と分析 [D]. 貴陽: 貴州大学、2017 

[3] Wei Qun、Wang Yu. ソフトウェアの欠陥とソ​​フトウェアの信頼性への影響の分析 [J]. コンピュータ アプリケーションとソフトウェア. 2011, 28(1): 145-149. 

[4] Bao Danzhu. 鉄道交通システム要件の分析と一貫性テスト [D]. 上海: 華東師範大学、2016

[5] Liu Yang. 鉄道輸送制御システムの需要モデルの分析と検証 [D]. 上海: 華東師範大学、2017

[6] Zheng Hanyue. 鉄道輸送制御分野における要件に基づくテスト ケースの自動生成に関する研究 [D]. 上海: 華東師範大学、2021

[7] Huang Y 、Feng J 、Zheng H ら、Prema: 正確な要件の編集、モデリング、分析のためのツール[J]。2019.DOI:10.1109/ASE.2019.00128。

おすすめ

転載: blog.csdn.net/TICPSH/article/details/132165520