1. はじめに
コンピュータを活用する設計開発(CAE:Computer Aided Engineering)は、製造業にとっては今や必須アイテムとなっています。
CAEは、登場以来すでに数十年が経過し、CAE用のシステムも導入時のままでは、現在主流のWindows環境では使用できなくなり、そのシステムに精通した人材がいないなど問題を抱えている方も多いのではないでしょうか?
コンピュータ分野では、古い技術や仕様のシステムのことを「レガシーシステム」と称しています。レガシーシステムを現在のWindowsパソコンで動作できるようにするためには、プログラムを移植し、さらに使い慣れたExcelなどから効率的に操作できるようにするという「リノベーション(再生と更新)」を行うことが必要です。(図1参照)
今回は、CAEにおけるレガシーシステムのリノベーションについて、課題と解決方法をご紹介します。
2. レガシーシステムの課題
CAEレガシーシステムには、設計者自身が開発したものも多く存在します。それらのシステムには、コンピュータの環境変化に伴い以下のような問題が起きています。
現状で使い続ける場合の問題
- 処理速度が遅い。
- 操作説明書の内容が不十分である、もしくは存在しない。
- コマンドベースの入力、ファイル変換などに手間がかかり非効率である。
- ホストコンピュータの運用環境を維持し続けなければならない。
- 設計基準の改定に対応できない。
パソコンに移植する場合の問題
- 開発したメンバーがリタイアし、ノウハウが残っていない。
- コンピュータに対して動作させる命令をプログラミング言語で記述したファイル(ソースコード)に説明文(コメント)がなく、処理内容を理解しにくい。(図2参照)
- システム詳細説明書(解析手法、定式化)などの開発用資料がない。
- 一部のプログラムのソースコードがない。
CAEレガシーシステムの問題点を解決するには、現在のパソコンで効率的に処理でき、さらに今後のコンピュータ環境の変化にも対応できるシステムに、リノベーションする必要があります。
3. リノベーション(再生と革新)による解決
再生その1 現在の環境へのプログラムの移植
プログラムのソースコードは開発当時の言語仕様で記述されているため、最新の環境に移植をする際、古い仕様で記述された部分がエラーと判断されることがあります。そこで現在の仕様に合うようにソースコードを書き換えて、プログラムを移植します。この書き換えを行うためには、新旧のプログラミング言語に対する知識が必要です。
再生その2 計算処理結果の検証
移植後のプログラムは移植前と計算結果が同じでなければなりません。そのためには、移植前のプログラムと移植後のプログラムについて計算結果を比較し、差異を調べる必要があります。この作業は幾度となく行われるため、専用の差異算出プログラムを作成し、ツールとして使用します。
革新その1 操作系の改良
キーボードによるコマンドベース操作を、マウスを主としたGUI(Graphical User Interface)操作へと改良します。例えば、Excelをベースとし、シート上にプッシュボタン、プルダウンメニューなどを配置し、マウス操作を実現します。
また、必要となる操作説明書も作成します。
革新その2 文書類の整備
- プログラムのソースコードを解読し、解析手法、定式化についても調査し、得られた情報はシステム詳細説明書として残します。プログラムのソースコードにも直接コメントとして記述します。これらの文書によりシステムの技術伝承が可能になり、今後のコンピュータ環境の変化や設計基準類の改定にも対応できます。
- 紙の説明書類は電子ファイル化し、操作説明書はプログラムを使用中に閲覧できるようにします。
- プログラムを実行中、従来は異常発生時にはエラー番号が出力表示され、紙の説明書に記載されているエラー番号表からエラー発生の意味を調べていました。これでは非効率なので、異常発生時にはエラー番号を表示の上、内容をパソコン画面上にメッセージボックスとして表示させます。これにより、紙の説明書の検索作業から解放されます。
4. 耐震設計プログラムのリノベーション事例
耐震設計では、想定される地震動に対する構造物の挙動を数値解析によって求め、安全性を照査します。高圧ガスを製造・貯蔵する一定以上の規模の設備では高圧ガス保安法に基づく耐震設計が義務付けられています。これらの設備の耐震設計に関して、経済産業省(当時の通商産業省)が、耐震設計プログラム「SEISMIT(サイズミット)シリーズ※1」を開発していますが、使用するには経済産業大臣による「耐震設計構造物の応力等計算を行う者の認定」の取得が必要です。この認定の取得には、使用するコンピュータが適正に運用されていること、計算を実行したときの結果が正確であること、などを示さなければなりません。
川崎重工業(株)様ではこの認定を取得し、耐震設計プログラムを使用してきましたが、ホストコンピュータの運用停止が決まり、プログラムをパソコンへ移植することとなりました。※2
当社では 川崎重工業(株)エネルギー・環境プラントカンパニー様からご依頼を受け、耐震設計プログラムのパソコンへの移植を実施し、認定再取得の支援を行いました。
- SEISMIT-SP(Spherical): 球形貯槽(2015年度)(図6参照)
- SEISMIT-TW(Tower) : スカート支持自立式塔類(2018年度)
※1 耐震設計:Seismic designが名称の由来
※2 これらの耐震設計プログラムは約40年前にホストコンピュータ用に開発されたもので、現在ではパソコンで運用できるように改良することが認められています。改良に際しては計算精度の確認、運用に関する変更申請を行い、認定される必要があります。
移植には認定取得の規約に則り、以下を実施しました。
- 元の計算方法(アルゴリズム)を変更しない。
→ 現在のコンパイラで発生したエラー発生部のみ等価なものに書き変える。 - 変更内容を示す一覧表を作成する。
→ 変更内容を明確に記録し、変更前のソースコードは削除せずコメントとして残す。 - 移植版の応力計算値と、従来のコンピュータによる計算値との差異が1%以内であることを検証する。
→ 結果ファイル差異算出プログラムを作成し、専用ツールとして使用する。 - 印刷用紙は連続紙と決まっているが、一連の印刷出力であることを証明できる対策をとれば、単票紙でもよい。
→ 現在では連続紙で印刷できる機器も無く、単票紙印刷とする。その対策として、用紙右上部に日付、下中央部にページ番号を記述できるプログラムを開発する。(図7参照)
これらに加え、革新として、以下の改良を行いました。
- 計算精度を高めるため、プログラム内計算値の有効桁数を倍にする。
- 操作環境をExcelとし、ボタンなどを配置した実行用シートを作成し、マウスを主とした操作へ改良する。(図8参照)
- プログラム用入力データを簡単な操作で定義できる専用のデータ用シートを作成する。(図9参照)
- 操作説明書、システム詳細説明書を再構成する。
5. おわりに
これまで紹介したCAEレガシーシステムのリノベーションはホストコンピュータ上のシステムを対象としましたが、当社では「プログラムの移植」として、ワークステーションもしくはパソコンで開発したプログラムも対象とし、以下のような事も実施しています。
- ワークステーション(UNIX)用プログラムなど旧環境からパソコンWindows OS 版へ移植し、機能を追加します。
- パソコンの入れ替えにより、動作しなくなったプログラムの調査と修復をします。
- 個人の自作プログラムを社内で共用できるよう改修します。
- 操作説明書やシステム詳細説明書などの文書類を作成します。
また、メンテナンスできていないシステムの更新でお悩みの場合、その判断の手助けや、更新業務のお役に立てればと考えておりますのでお問い合わせください。一緒に問題解決に取り組ませていただきます。