【特別寄稿】 モデリング化技術と最新版LYEEについて

 

LYEE新版情報処理装置特許申請中

(特願)2014-096414

 

 弊社が推進しているモデリング化技術は最新版LYEE論文がベースになってます。弊社がなぜLYEEを採用したかの背景を最新版LYEEの解説を加えて述べさせて頂きます。

 システム開発に関わる技術者共通の課題である「テスト工数の大幅な削減」すなわち開発済みプログラムを検証する技術「データパスルートの解明」をLYEEにより導き出す事が可能である事と確信し、モデリング化技術として完成させました。現時点でLYEE理論が公理の世界を表現できる唯一の方法論でもありました。

なお本文は発明者である「根来 文生氏」の許諾のもと根来文生氏の講義内容の抜粋に解説を加えております。

 

―目次―モデリング化技術でのモデルベース開発にLYEE理論の採用背景

  1. プログラムの公理(品質検証の基準)に関して
  2. 従来のプログラム開発方式の課題にみるプログラム検証について
  3. プログラムの品質検証はLYEE理論で実現

 

1. プログラムの公理(品質検証の基準)に関して

『公理とは何かの処理の結果が意図に適っているか否やの正当性はその処理の過程(解法)が妥当であるか否かに準拠する。』

 例えば数学の解法は数学的公理を用いて示される。結果公理から逸脱せずに妥当であれば、その解法による解は正当であると判断される。因みに公理とは解法の為の規則の事である。故に解を第三者が評価出来る理由になります。

 プログラムの場合、コンピュータで実行される場合の“公理”はプログラムが実行時に成立させるデータパスルートになります。データパスルートが要件を満たして妥当であれば,そのデータパスルートによる処理結果は正当であると判断が出来ます。

 プログラムの正当性を判断する公理とはデータパスルートでありその処理結果になるわけです。

 機能的、意味的な部分も含んでパスルートは合成されて成立してます。プログラムの規模,要件の特徴により様々ではありますが1本でもデータパスルートの数は数十個から数百個になります。

 そのデータパスルート全てを関係者が机上で要件的観点から観察(ウォークスルー)して全てが妥当であればそのプログラムの処理結果はそのプログラムを実行させるまでもなく全て正当であると判断が出来ます。

 机上で判断できるという事は品質担保、コスト削減で従来の常識を大きく覆す可能性を秘めています。

 

2. 従来のプログラム開発方式の課題にみるプログラム検証について

 プログラムの公理であるデータパスルートが事前に全て求められるならば現状の様なBlack Boxのままでのコンピュータ上で実行テストを実施するよりも机上で観察する方がはるかに厳密に緻密にプログラムの妥当性を検証することが可能になります。またプログラム構造テストをコンピュータ上で実施するまでもなく理論的に品質を担保する事が可能になります。

 それはまさに“プログラム単体テストの改革”と言える視点になります。 従来のプログラム妥当性検証は既存処理の入出力結果をもとにプログラムをコンピュータ上で実行させプログラムの妥当性を判定する方法が“正当な方法”として採られてきました。

 最善の方法ではないと理解されながらもそのような方法が採られていたのはプログラムの全データパスルートを求める完全な方法が見つからなかったからに起因します。

 実行テストで検証できるプログラムの妥当性をデータパスルート数で換算評価すれば、カバーされるのは機能的なデータパスルートの80%以下、意味的なデータパスルートはほぼ0%である。これまで歴史的に膨大な量のプログラムが作られ稼動しているが、それらのプログラムの妥当性検証は不完全なままで存在している、というのが今日の現状であります。

 このような不完全な状況下のまま最新技術が搭載されたハードウェア,ソフトウェア新製品が生まれ続けてきているのが現実です。

 発注者・開発者双方の知見で忘れてはならない重要な点はプログラムの完全な検証を省略したままで稼動しているという事実の上で益々スピードアップし技術革新がすすむハードウェア、ソフトウェア、ネットワークへの対応にどのように対処してゆくか?という点に早期に対策を講じる必要性があるという事です。

 

3. プログラムの品質検証はLYEE理論で実現

 従来のプログラム構造は非同期型(機能型)で開発されている為、データ遷移よりも命令の流れに重点が置かれプログラム言語固有の文法あるいはOSとの密結合の関係にあり開発者以外の第三者が検証することを難しくさせてます。

 LYEEはプログラム本来の目的であるデータ生成に着目し生成されるデータを『主語』として主語の連鎖関係を繋ぐのが『命令』と位置付けしプログラム構造の『データパスルート』を明確化出来る開発つまり同期型プログラム(シナリオ関数)を求めそれを成立させる方法論を確立しました。

 同期型プログラムを公理の世界で考えるとシナリオ関数の『解』としてプログラムの意味を表す単元つまり最小表現単位を表す『文脈』,プログラム全体の意味を捉える文脈の『脈絡』、その脈絡からプログラムに内在する全データパスルートを完全に自動抽出することを意味します。

 『プログラムの意味を理解するには一般的な文章と同様に主語(作成されたデータ)を特定し、主語の文脈、脈絡の連鎖関係で目的を判断することになります。』

 LYEEは世界で初めて、プログラムの実行公理である全データパスルートをプログラムから自動的に求めることを可能としプログラムの要件上の妥当性検証を全データパスルートの机上における事務的観察にて検証できる方法を確立させた点に大きな特徴が有ります。

 データパスルートがプログラムから自動的に抽出出来ることでプログラムテストが机上の事務的な作業に置き換えられるようになった事は、例えばデータ揺動,論理破壊,要件破壊といった類の時々発症していた現象は意味的データパスルート上で観察できる要件上の欠陥(回帰,欠落)として早い時期に目視発見が可能となります。

 ご存知の通りプログラミングの世界でデータ揺動とはある特定の出力値が時々異常値を示す現象、論理破壊とはプログラムが破壊されていないのにあたかもある部分のロジックが破壊された様になる現象、要件破壊とはプログラムに組み込まれた筈の要件が失われるといった様などれも今までは原因の特定が難しくこれまではこの様な珍現象は単なるシステム事故として扱われておりました。

 その原因を追究するにはデータパスルートを観察する以外に方法はないのですが現状はデータパスルートの特定が出来ない為プログラムを機能的に解釈し経験に基づきその原因を捉えその観点からプログラムが修正、つまり部分最適がなされておりました。その繰り返しによりプログラムは当初の要件から逸脱し次第にその全体構造が複雑化し遂には誰もそのプログラムには手が出せないようになっております。

 誤りの上に誤りの上塗りの結果、即ちこれがプログラムの怪物化(世に言うスパゲッティコード化)の誕生につながりました。

 

 LYEE発明者である根来氏は「関係者がその知識と経験から学ぶべき事は、累々たる問題を直視し特にプログラムのコンピュータ上におけるテストではシステムの操作検証を主体にとどめるべきであり完全な要件検証はコンピュータ上のテストでは不可能であることに気付くことである。」この堤言・真理が小職のモデリング化技術にLYEE理論ベースのツール開発に到った理由になります。

 

 プログラムの技術課題すなわち要件定義の仕組み、コンパイラー、OS要件も考慮してのプログラム開発方法論は情報システム最大の課題と捉えた上で、プログラム保守問題、テスト問題の解法を成立させる仕組みにしっかりと関心を払う事がこれからのシステム開発者の重要なミッションである『開発期間の短縮』、『ビジネススピード・社会制度変更へのタイムリーな改修』への心構えとすべきと思います。

 

(2013年5月27日 文責:関 敏夫)