(57)【要約】      （修正有）【課題】機械とＩＣを融合したいわゆるメカトロ商品のプログラム開発において、リソース原則無制限という前提でプログラム開発を行う手法の提供。【解決手段】原則無制限にリソースがあると仮定してプログラム開発を一から開始するのが特徴のゼロベースプログラム開発（ＺＢＰＤ）である。特徴の一つはリソースの有効利用として広く行われているサブルーチンへの指令の移行と帰還をプログラム開発開始時点では一切行わない。予めプログラムフレームを決めておかない特徴を持つ。ＺＢＰＤではホストコンピューター又はサーバー上にリソース無制限の仮想ＣＰＵを構築し、徹底的に高速でシミュレーションを実施する特徴がある。【選択図】図１
2007334622.tif 000002
【特許請求の範囲】
【請求項１】
機械とＩＣを融合したいわゆるメカトロ商品のプログラム開発において、リソース原則無制限という前提でプログラム開発を行う手法、ゼロベースプログラム開発（ＺＢＰＤ）。高い性能を持つホストコンピューター又はサーバー上にシミュレーション用仮想ＣＰＵを構築しサブルーチンを使わずにプログラムする。どの工程においても、問題が発生したら、必ず仮想ＣＰＵの工程に迄戻り修正を行う。
【請求項２】
請求項１のゼロベースプログラム開発（ＺＢＰＤ）を大型のプログラム開発に利用するもの。レガシーシステム、いわゆるメーンフレームと呼ばれる汎用コンピューターなどの旧式な情報システムの、新しいシステムへの更新作業など。
【発明の詳細な説明】
【技術分野】
【０００１】
メカトロ商品のプログラム開発などに代表される、小型プログラム作製方法に関する。
【背景技術】
【０００２】
シミュレーション技術。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
機械とＩＣを融合したいわゆるメカトロ商品では、機能の複雑化に伴い、プログラムの細部までのデバッグ（検証）が十分に追いつかない結果、バグ（プログラムの欠陥）により多大の損害や、最悪の場合人命が失われる事態が多くなった。修正や新機能の追加も困難になっている。デバックが部分プログラム担当開発者以外には実施困難で、多額の費用がかかる。従来のプログラム作製方法を根本的に見直さないとこの危機は乗り越えられない。これらの問題個々に対する改善案は多くあるが、本発明は開発スタートから、完了までを一体の発明とした。機械とＩＣを融合したいわゆるメカトロ商品とは、携帯電話や、ハイブリッド自動車、無人運転のエレベーターなどを指す。
【課題を解決するための手段】
【０００４】
従来方法と異なるプログラム開発手法を発明した。これは従来はリソースがきわめて限られているという前提だったが、原則無制限にリソースがあると仮定して、プログラム開発を一から開始するのが特徴のゼロベースプログラム開発（ＺＢＰＤ）である。どんな場合でも商品の基本機能、例えば電話をかけるなどは機能するようにする以外は予めプログラムフレームを決めておかないでプログラム開発を行う特徴を持つ。シンプルな機能に限定したプログラムはバグ（プログラムの欠陥）を根本的に発生しづらい。特徴の一つとしてリソースの有効利用として広く行われているサブルーチンへの指令の移行と帰還をプログラム開発開始時点では一切行わない。サブルーチンを作る必要もないのに、サブルーチンを作った挙句データの遣り取りに失敗しバグを逆に作ることは多い。ＺＢＰＤではワンチップＩＣに比べると極めて巨大なホストコンピューター又はサーバー上にリソース無制限の仮想ＣＰＵを構築し、徹底的に高速でシミュレーションを実施しバグ（プログラムの欠陥）を排除するのも特徴である。使う言語もＣ言語などのコンピューターの専門知識が必要なものではなく、論理的に書かれたプログラム仕様書を専門用語で書いただけの自然言語に近いものを出来るだけ使用する。ＩＣのプログラム開発のリソース（資源）とは、キャッシュメモリー容量、データメモリー容量、使用ＩＣの周波数等であり、多くのＩＣの場合、単価がこれらリソースの一番の制約要因となっているが、現在はハードウェアーの値段が著しく下がって来ているため、経済設計を最優先にプログラム開発を行う必要はほとんどない。
【発明の効果】
【０００５】
当初は出来上がったプログラムは少々リソースを多目に使用するが、バグ（プログラムの欠陥）により多大の損害が生じることや、デバックが部分プログラム開発担当者以外でも実施可能となり、全体費用を少なく出来る。その結果メカトロ商品の、簡単に億単位となる多額のリコール費用が必要なくなる。リソースが確保出来ず断念していた発展的新機能の追加が容易となる。個人プログラマーがワンチップコンピューターを使える。プログラマーの人材不足は、従来から言われているが、細分化したプログラム仕様と、ワンセグのＴＶ放送を観る機能等が理解出来る人物ならば、ＺＢＰＤを使用すれば、始めの過程のプログラムは作製出来る。
【発明を実施するための最良の形態】
【０００６】
プログラム仕様書を、携帯電話でワンセグのＴＶ放送を観る機能というように、各機能に細分化し、ステートメントとしてステップ毎に貼り付けるようにする。製作打ち合わせの内容も（音声情報も含め）絶えず参照出来るようにする。プログラム開発開始時点ではサブルーチンへの指令の移行と帰還を一切行わない。サブルーチンを使う代わりに、フルレングスのプログラムをコピーして貼り付け、ドンドンとプログラムを機械的に、出来るだけ自動翻訳で作製する。自動翻訳を行うためには、個々の会社の適用業務に併せてのＡＩ機能を持つ翻訳プログラムが必要である。業務や業種によって使用する専門用語は全く異なっているが、専門用語には業務や業種のエッセンスが詰まっているので、この専門用語を正確にプログラム出来れば、プログラム製作の能率は確実に向上する。使う言語もＣ言語などのコンピューターの専門知識の必要なものではなく、論理的に書かれたプログラム仕様書を専門用語で詳細に書いただけの自然言語に近いものが望ましい。本申請文のような、紋きり調の堅苦しい文章である。プログラム仕様書の内容が正確にプログラムされれば、特に何々言語と構えることすら無駄で無益なことである。ホストコンピューター又はサーバー上に仮想ＣＰＵを構築する。この仮想ＣＰＵの能力は調達可能なＩＣの能力を大幅に越える能力ではないが、ホストコンピューター又はサーバーの能力は出来る限り高いことが要求される。大型のプログラム開発には、超超大型のコンピューターが必要なため、ＺＢＰＤは使用しずらい。実施しそうな操作を、同時操作も含め、条件を変えて何回も検証する。操作ボタンの多重押し間違いなども検証する。サブルーチン化にあたり、シミュレーション時のステップ毎の実行履歴をシミュレーターが分析する。大量のシミュレーションを実施すると、後のバグ（プログラムの欠陥）の発生は劇的にすくなくなる。実行指令の時系列順に矛盾がないか確認のうえ、最適なサブルーチン化の構成をシミュレーターが提示する。シミュレーションの結果サブルーチンの使用頻度が高いプログラム部分は、主プログラムの一部セグメントとし、実行の高速化と確実化を図る。マネージャー（プログラム作製責任人物）がサブルーチン化の内容を決定し、サブルーチン化後の構成を高速シミュレーションする。無理に全てをサブルーチン化せず冗長な部分も残す。不具合点は修正し最適化する。この工程を繰り返し不具合がなくなった時点でプログラムを機械語へ変換し、論理の検証を行い、機械を動かして作動を検証する。機械の機構的欠陥はソフトでは保護し切れないので、条件設定に洩れがあると危険なため、機械側を数値モデルでシミュレーションすることは原則行わない。検証後初めて、使用ＩＣを決定し、プログラムをＩＣに実装し、論理の検証を行う。プログラムサイズを小さくするため、仮想ＣＰＵプログラムに大量にあったコメントは特段の事情がない限り、実装時には機械的に削除する。実装プログラムに問題が発生したら、必ず仮想ＣＰＵの工程に迄戻り修正を行う。実行指令の時系列順に同時に実行するプログラムがある場合、バッファーを使用して無理に直線型のプログラムにしないで、複数のデュアル、トリプルプロセッサーを実装する。プログラムにバグが発見された場合の検討や、機能を追加する場合も、必ず、仮想ＣＰＵ上のプログラムから修正を開始する。プログラムの経済開発は行わないため、全体を従来の経済設計で行った場合より、ＺＢＰＤの使用リソースは２割程度増加するが、ソフト外部不経済が無くなる。請求項２のレガシーシステム、いわゆるメーンフレームと呼ばれる汎用コンピューターなどの旧式な情報システムの、新しいシステムへの更新作業とは、フォートラン（FORTRAN）という科学技術計算用のかなり古いプログラミング言語などで書かれた旧式の情報システムなど止めて、新しいシステムに変える作業です。２００７年問題とも言われています。メーンフレームは勝手は大変高価なシステムでしたが、現在では、保存データは別に考えると、高性能パソコンで代替可能なリソース量です。ホストコンピューター又はサーバー上に仮想ＣＰＵを立ち上げれば、レガシーシステムはプログラミング言語で書かれているため、ＺＢＰＤの開発手法を採用することが可能となります。ホストコンピューター又はサーバーは保存データの管理も可能なので、全データを使用しての全規模シミュレーションも可能なため、新しいシステムへの更新作業も従来よりも格段に安全に実施出来ます。
【０００７】
「実施形態の効果」
プログラムの修正が容易となる。経済ソフト作製の結果の外部不経済がなくなる。仮想ＣＰＵ上にオリジナルプログラムが存在するため、ＩＣ側の仕様が変わっても、開発済みのプログラムの移行作業が容易に行える。ＩＣに内蔵されたプログラムは全くの機械語のため、プログラムの不正コピー防止に効果がある。ＩＣを主ＣＰＵから離れた、機械の作動部分に分散することが、サブルーチンを分散設置したＩＣに置く事で可能となる。この機能は素早い作動が必要不可欠な航空機、宇宙船の飛行などに有利に働く。
【０００８】
「他の実施形態」
ＺＢＰＤを大型のプログラム開発に利用するもの。この場合シミュレーターに使用できる性能のより大型のホストコンピューター又はサーバーが使用出来ることが前提となる。但し事務処理プログラムのように、データ量が増加する性質のソフトには向かない。
【図面の簡単な説明】
【０００９】
【図１】この発明における、プログラム製作手順の概念図を示す。どの過程でも問題が発生したら必ず、ホストコンピューター又は、サーバー上に仮想ＣＰＵを構築する工程迄戻り修正を行うが、概念図ではこの戻りループは省略し、見易くしてある。
【符号の説明】
【００１０】
「図１」における符号
１  プログラム製作の過程のひとつ。
【図１】
2007334622.tif 000003