重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ソースコードの読み方

いま基幹システムのプログラム開発の仕事をしてるんですが、
今度の仕事ではソースコードを読んで、
プログラム全体を理解することが求められてます。

で、質問なんですが、ソースコードと詳細設計書を読んで
そのプログラムの一個一個の処理とその目的を、
完全に理解するにはどうすれば良いでしょう?
いま現場にはそのシステムの設計についての知識のある人はおらず、
(したがって人に聞くことは出来ない。)
前任者から一切の引継ぎを行えず、
手元の資料はあくまでソースコードと詳細設計書のみです。

おまけに、この作業担当を一人でやらなければなりません。

したがって、
ソースコード解読のノウハウを伝授して頂きたいです。

いまのところ、ソースコードの処理の流れ自体は
プログラムの概要説明等からなんとなく掴めるのだが、
(そんなの当然ですが)
ある一つの処理について、
その処理をしたところでそれがどんな要件を満たしているのか?
ってことがわからないことがよくあります。

例えば、いま見てるプログラムでは、
タイムスタンプのためのテーブルを読み込んで、
処理の制御をするといった事があるのですが、
いまの能力だとそのテーブルの時刻が、
何を意味しているのか掴む事が出来ないとか、
そういうこまごましたナゾが沢山あって、それらが積み重なって、
プログラムに対する理解というのが不完全なものとなっています。

コーディングの技術的な事柄に関しては、
ほかの現場にいる先輩に聞いてみたり、
何とか書物等で問題を解決するものという前提で、
どのようにすればプログラムの詳細な業務要件を掴む事が出来るか
というところまわりをご教示頂けると幸いです。

回答をお待ちしています。
よろしくお願いします。

A 回答 (4件)

>ソースコードを読んで、


>プログラム全体を理解することが求められてます。

>手元の資料はあくまでソースコードと詳細設計書のみです。

本来の着手、設計、製造手順とは違うやり方をしています。
ここが崩れている以上手間かかるのはやむをえません。

1)外堀から固めていきます。

入力項目は何か、出力項目は何か、表示項目は何か、印刷項目は何か

他プログラムとの連携はないか

制御しているパラメータはないか

2)構造を把握します。

繰り返し操作はあるか、処理分岐点はあるか、終了条件はなにか

3)フローチャートを書きます。

変数の変化はどうなっているか

4)トレース、イメージし裏付けをとります。

この値のときこうなる、この値のときこうなる、・・・・

5)ここまでの要点をまとめます

6)テスト環境で実機テストを行いさらに裏付けします。

次期作業者には、
ソースを渡すのでなく設計書で渡すようにするのが良いです。
    • good
    • 0
この回答へのお礼

参考になります
ありがとうございます

お礼日時:2010/10/29 09:44

小説の中の1ページだけを読んでも


どんな小説なのかわからないのと同じで

システム全体の設計書とか
概略設計書から全体像をきちんとつかみ
各、詳細設計書を見ないと

別の方法では、そのソースの処理内容だけを書き出していき
次のソースも同じようにしていく
それが増えていけば、あのソースはここから呼び出されるのかとか
この処理の時にここで使われるのかとかが見えてきます

出来るだけフローチャートを作りましょう
人間の記憶なんていいかげんなものです
資料が少なければ自分で資料を作って
理解していくしかありません
    • good
    • 0
この回答へのお礼

参考になります
ありがとうございます

お礼日時:2010/10/22 16:33

言語も書いていないので一般的な話になりますが・・・



1.システム?( プログラム全体 )が何を目的に稼動しているのかを把握
2.#1を達成するためにモジュール分割された構造になっているはずなので、モジュール群の機能把握
3.#2で概要が把握できるので、あとは個々のプログラムを読んで動作を理解する

ですが・・・メモリーマップとか、ファイル・レイアウトなど付随する資料も全て一読する必要があると思います。
    • good
    • 0
この回答へのお礼

参考になります
ありがとうございます

お礼日時:2010/10/22 16:33

引き継ぎできていない状態で、更に仕様書が存在しないということならば地道に一つ一つ潰していくしかありません。


たとえば、質問にある

> テーブルの時刻が、何を意味しているのか掴む事が出来ない

ということなら、テーブルから読み込んだあとで

・読み込んだテーブル値をどこで使っているのか
・どんな使われ方をしているのか

と言ったことを調べていく訳です。

仕様書があるならそっちと突合せながらってこともできなくはないんですが……
    • good
    • 0
この回答へのお礼

参考になります
ありがとうございます

お礼日時:2010/10/22 16:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!