HOME > ソフテックだより > 第202号(2014年1月22日発行) 現場の声編「20年も前に開発したシステムの調査作業」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第202号(2014年1月22日発行)
現場の声編

「20年も前に開発したシステムの調査作業」

1. はじめに

私は、入社7年目で主に組み込みソフト開発に携わっています。
昨年(2013年)の9月に、ソフテックが20年前に納めたソフトをリプレースするという案件がありました。
リプレースとは、古くなったシステムを同じ仕様で新しいシステムに置きかえる対応です。
古いシステムのため、資料がほとんど残っておらず、既設システムの解析をする必要がありました。
開発時の担当者は、すでに退職していたので、私が解析を担当することになりました。
そのとき、担当した既設システムの組み立てやプログラム調査について、紹介させて頂きます。

2. 既設システムの確認

既設システムは、標準のプログラムがあり、案件に合わせてカスタマイズするシステムでした。
20年前のシステムのため残っている資料は、電子ファイルではなく、手書きの資料でした。
その資料は、回路図や基本動作仕様だけでソフトの詳しい内容の記載がありませんでした。
回路図から、特殊な動作があることが分かりましたが、手書きの文字が潰れていてソフトとハードでそれぞれどのような役割をしているかまでは、読み取れませんでした。
そのため、プログラム解析と既設システムの動作から詳細な仕様を確認しました。
事前にプログラムを少し確認しましたが、コメントがほとんどなく、非常にわかりにくいつくりになっていたので、あまり気が進みませんでした。

2-1. プログラム解析

既設システムのプログラムは、特殊な仕様があったため、以降の案件に影響が出ないように標準のプログラムと分けて管理されていました。
そのため、標準のプログラムと既設システムのプログラムを比較することで特殊処理を洗い出すことにしました。
ところが、予想以上に変更部分が多く、想定外の変更が入っていることがわかりました。
特殊処理を洗い出せれば、解析が楽になると考えていましたが、そう簡単に進みませんでした。
顧客からは、解析のため一週間の期間を頂いていました。
しかし、出だしからこの調子で期間内に十分な解析ができるか心配になりました。

解析をしている最中でなんとなく別の案件のプログラム入っていそうだと考えて、試しに同じ時期に対応したプログラムと比較したところ一致しました。
全てをまとめた結果、図1のようになり、別の案件の変更が入っていることがわかりました。
なんとか予定通り特殊処理を洗い出すことができたので、ホッとしました。
別の案件の変更は、既設システムの設定により機能しないため、問題ないこともわかりました。
プログラムに予想外の変更が入っており、ヒヤッとしましたが、最終的に変更点をまとめられて良かったです。

予測の派生図と実際の派生図
図1. システムソフトの派生図

2-2. 既設システム組み立て

既設システムの動作確認では、ソフテック社内でシミュレーション環境づくりをおこないました。
の環境は、部品が古すぎて新しく作り直すことができません。いつ壊れてもおかしくないので、いつも以上に丁寧に扱いました。
いざ準備を始めると十分な資料が残っていないため、機材の不足や設定の間違いが多く、すんなり進められず、非常に苦労しました。
なかなかうまく進まなかったので、本当に立ち上げられるのかとても心配になりました。

また、本案件でNEC社のPC9801とミナトエレクトロニクス社のROMライタを使っていますが、私自身使った経験がなかったので、慣れるまで時間がかかりました。
ROMライタに社内備品の管理番号をテプラで貼り付けていますが、最初の2桁が89となっていました。
これは1989年から使っているということで、その当時のことを思い出してみたところ、まだ子供で昭和から平成になったという記憶しかありませんでした。
こんなに古いのかと思いながら、自分が使っているうちに壊れないか心配になりました。
作業を始める段階である程度は、苦労することを予測していましたが、ほとんどの作業で何かしら問題があり、スムーズに進みませんでした。
一番苦労した作業は、ROMライタでROMにデータを書き込む作業でした。

(1)
. ROMイレーサーで書き込んだROMのデータを削除(15分)
(2)
. ROMに書き込んだデータが消えているかチェック(消えていない場合は、もう一度削除)
(3)
. ROMライタのデータを削除
(4)
. ROMに書き込むデータをROMライタに転送(転送するサイズによりますが、15分程度でした)
(5)
. ROMライタでROMにデータを書き込む
(6)
. ROMのデータが正しいかROMライタでサム値をチェックする
(7)
. 基板にROMを挿す

上記のとおり、手順が多く、時間が必要な作業があるため、やり直しになると大幅に時間を使います。
実際には、何度かやり直したため時間がかかりましたが、機材を壊さず無事に立ち上げられてとても安心しました。
ROMライタを使っての作業は、20年前から同じ手順で続いております。
古いものに触れる機会は、なかなかないことなので、良い経験ができたと思いました。
また、私が担当した別のシステムでは、PC上で動作するツールと基板を専用のケーブルで接続するとROMを外さずにプログラムの書き換えができるので、ずいぶん手間がかからなくなったなあと思いました。

ROMにプログラムやデータを書き込む
図2. ROMとROMライタ

今後は、同様の苦労をしないように、手順書や社内報告に記録を残して、他の社員が参考にできるようにしています。
私自身、先輩社員が過去に残した資料やメモに何度も助けられているため、ただ記録に残すだけで終わらせず、背景や発生した問題がわかるように注意しています。

2-3. 既設システム動作確認

平常状態でシステムが立ち上がっても、いつの間にか異常になることがあります。原因は様々ですが、機材の劣化といった古いシステムのリプレース特有のものがあります。
私が、入社2年目の頃、デバッグ中に古いケーブルが切れかかっているのに気付かず、そのままケーブルを使って、原因不明の通信異常に苦労した経験があります。
このときの経験により、意識してハード回りの確認ができるようになりました。
今回は、問題が発生する前に図3のようにラインモニタを接続して、通信データをラインモニタの画面に表示して確認しました。
異常がある場合は、データが正しく出ていないところを見れば、すぐに原因がわかります。
ラインモニタを準備する分が少し手間になりますが、確実に作業を進める上では、とても重宝しています。

システムが立ち上がったあとは、動作確認をして解析結果が正しいことを確認します。
ここまでできて解析が完了になります。

通信ラインに接続してデータを分析
図3. ラインモニタ接続図

通信のデータをモニタリング
図4. ラインモニタ

3. Notesの活用

ソフテックでは、1996年から社内の報告や文書の管理にIBM社のグループウェアLotus Notes(以下、Notes)を活用しています。
社内の事務処理だけでなく案件でも活用しており、そこには、システムの質疑応答、環境構築手順、開発当時の状況などが記録してあります。
本案件は、Notes導入前でしたので、仕様に関する情報が残っておりませんでした。
しかし、同じシステムの別案件があったので、立ち上げに関する情報が残っており、参考にできました。
Notes導入後の案件では、仕様に関する情報を資料として残しているだけでなく、そこに至るまでの経緯がそのまま残っているため、背景の確認ができます。
既設システムの確認をする前にNotesを確認することで、注意する点や見落としてしまいそうな点を頭に入れておくことができ、事前に同じ失敗を繰り返さないようにできます。
小さい積み重ねにより、品質向上に非常に役立っています。

4. おわりに

ソフテックでは、様々なリプレース案件を対応しています。
今回紹介したようなソフテックが既設システムを開発している案件のリプレースは、それほど多くありません。
既設システムが他社製の場合では、お客様から仕様を提示されることが多いので、今回のように仕様をまとめるという経験ができなかったと思います。
慣れない作業で苦労する場面がありましたが、自分が子供の頃の機材やプログラムを扱えたので、非常に良い経験だったと思いました。
振り返ると本案件は、当時の関係者が残した記録や資料がノウハウとして蓄積されていたので、対応できました。
結果として、「個人」でなく「会社」という組織で担当できたと思います。
このことをしっかり頭に入れて、今後のために案件情報を記録していきたいと思いました。

(T.M.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ