• 締切済み

ソーストレースの仕方

現在、業務でVBのソースを見ています。 ソースからプログラム構造や動作を理解しようと思い ソーストレースを試みているのですが、 思うように成果を挙げることができません。 ソーストレースをするにあたり、 どのような手順を踏まえて行えばいいのかを 知りたく、掲示板に記載を致しました。 自分が行っているソーストレース方法は、 VB6.0を使って、プログラムを1ステップずつ実行し、 動作を確認しております。 ※尚、詳細設計などの仕様書は一切ない状態です。 ※ソースコードのみでプログラム構造や動きを確認します。 以上です。

みんなの回答

  • Y_H_
  • ベストアンサー率42% (14/33)
回答No.2

私はVBは分かりませんが,ソーストレースという行為自体は他の言語でも大差ないと思うので,参考までに解答させていただきます. 私の場合は,プログラムを実行するのではなく,ソースコードを印刷します.(コードが膨大な場合はPCのモニタ上で見るときもありますが,自由度が高いので私は手書きの方が好きです) プログラムは大抵の場合,数行ごとに何らかの意味(「ファイルを開く」「計算をして何らかの値を求めている」といったもの)を持っていますから,その塊ごとにコメントをつけます.(手書き・ソースコードへのコメント追加) そうすると,関数が何の処理をするための関数なのかが見えてくると思います.(ここでもコメントを書きます) この操作を繰り返すと,それぞれの関数の動作が繋がって,プログラム全体でどのような操作がなされているのかが頭の中にできてくるのではないかと思います. ある部分のコードに着目したとき,「そのコードを実行するとどうなるか」というよりは,「それが何をするためのコードなのか」を考えることが大切だと私は思っています. 参考になれば幸いです.

tkihara197
質問者

お礼

返信ありがとうございます!! 本当にためにあるアドバイスを頂き感謝しております。 何のためにあるのかを考えてソースを見ると、 プログラムの構造もわかり、面白く見れます。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

私は45年ほどコンピュータを扱ってきました。 従って今は数少ないフローチャート信仰者です。 私のやり方は、複雑なものはフローチャートに書き直します。 それほどでもないものはソース上に飛び先に飛ぶ矢印線を書き加えます。 その上でブロックを見極めて四角で囲みます。 そのあとブロックごとに流れを追いかけてブロックごとにそれらしい名前(処理内容)をつけていきます。 最後に全体を見直して終わりです。 なお、同時にエリアマップを書いていくと更にいいですね。 蛇足ですが、私の同僚にソースを眺めているだけで全部分かると言うつわものがいましたが、私にはまねできませんでした。 恐らく、囲碁や将棋の熟練者が何十手も先を読むのと同じかも知れません。 少しでも参考になれば幸いです。

tkihara197
質問者

お礼

最初から細かくみずに、ブロック単位で見るようにしています。 その後、詳細をみるようにしたことで、プログラム構造が みえるようになりました。 ためになる意見を頂き、ありがとうございます^^

関連するQ&A

  • ソースコードを読んだら、どう活かせばよいか

    今オープンソースのコードを読んで自分のプログラムの設計やアルゴリズムの参考にしているんですが、 それが頭にあるせいか、どうしても似た構造になってしまいます。 無理して独自性を追及する必要は無いと思うのですが、今後どうしたらよいでしょうか?

  • 他人の作ったソースの見方(どこがスタート?)

    ソースを渡され『見ておいてね』と言われました。 とりあえず処理を順を追って見ているのですが 一つの難問にぶつかりました。 『ハテこのソースはどういう形で呼ばれるのだろう』と言う事 mainもなければ動作する環境すら整っていない現状なので どの変から動いてどのように流れるのかが追えません… もちろんプログラムの説明などはなく ただ漠然とこういう動作だ!と言う機能設計書があるだけです。 現段階で出来る事と言えば…やはりココの処理を理解する だけで良いのでしょうか… 正直帰りたくなってきましたが…帰っちゃっていいものかな…

  • ソースの見方

    大学の卒業研究でVisualC++で非同期型でPtoPのメッセージのやり取りを行えるようなプログラムを作成する予定なんですが、VisualC++でのプログラム開発を行ったことがなく、知識が少ないため、まずは現存するプログラムのソースを見て、構造を理解しようと考えています。 あるサイトからプログラムをダウンロードし、ソースコードを見ようと思ったんですが、どのようにすればソースが見れるのかがわかりません。 ダウンロードしたプログラムにはVisual BasicとC#のフォルダがあり、どちらかのソースを見れれば良いなとは思っているんですが、どのようにすれば見ることができるんでしょうか? VisualBasicのフォルダには、VBファイルとRESXファイル、VBPROファイル、USERファイル、SUOファイルがあります。 C#のフォルダには、CSファイルとRESXファイル、SCPROファイル、USERファイル、SUOファイルがあります。 開発環境はMicrosoft Visual Studio 6.0をしようしていますので、VisualStudioで見れる方法を教えていただけるとうれしいです。 プログラム開発はド素人なのでわからないことだらけですが、よろしくお願いします。

  • VBのソースをもとにドキュメントを作成するツール

    VB6+Oracle8でプログラム開発をしています。 OSはWindowsMeです。 以前からのプログラム資産があるのですが、仕様書などがありま せん。せめて大きなプログラムだけでも、仕様書のようなものを 作っておきたいと考えているのですが、プログラムのソースを もとに、仕様書のようなドキュメントを出力するツールで、 オススメのものがありましたら、教えて下さい。 フリーウェア、シェアウェア、市販品を問いません。 よろしくお願いします。

  • C言語ソースコードの解析

    私は現在組み込みのプロジェクトに参加おります、新米プログラマです。 既存の処理を理解したうえで設計しなければならないのですが、 元のソースコードに対して設計書が1つもなく、 ソース、ヘッダともにコメントなし、と言う状況です。 動作環境が無いので、ソースコードを解析して動作を理解しようとしています。 しかし、やっていることが複雑でなかなか進みません。 ■ポインタ/関数ポインタの嵐で、ポインタの実体を追っていくと、  30~40階層ほど上まで見なければならない。  (関数コールに、コールバックに、メッセージのやり取り)  関数ポインタを32bit整数の変数にキャストして代入し、  整数から関数ポインタに直したりしている。 ■構造体のメンバに他の構造体へのポインタがあり、  さらにその構造体は他の構造体のポインタを持っていて、  そのポインタが他の構造体の・・ などなど。 こういう複雑な他人のコードをどういう風に解析していますでしょうか? ご教授願います。

  • ベンダーでBVを使って開発している方に質問です。

    VBで開発を請け負っている人に質問です。(逆の立場の人でもかまいません) 開発にはノータッチで完成してからお前が運用を考えろと渡された、人事管理 システムがあります。この中に名簿の定型帳票があり1万ステップを超えて いるので改修は許して欲しいと言うのプログラムがあります。 先日バグの切り分けの為にシステム設計書、概要設計書及びプログラム仕様書 を見て「バカやってんじゃねぇーよ!」と怒ってしまった。私はVBの知識は ありませんが、要求されている仕様を整理すれば1~2千ステップもあれば 書ける内容を、概要設計から出力フォーマットに沿った説明をコーディング レベルまで持ち込み大きなステップ数になっているのが判りました。 (推測ですが、以前はAccessで開発されていたものをセキュリティーやメンテ  ナンスの理由から書き換えを行ったことからAccessのクエリー等をそのまま  VBに置き換えたのかも知れません。) システム設計の先頭にメンテナンスビリティーを重視した開発を行う事と あるのに、この帳票は部課コードを始めにコード類は殆どConstant Valueを 使っていて組織変更等がある都度変更の必要があると言う優れもの。 開発の当社側担当の無能さもさることながらVBで開発されている方はこんな レベルが低いのかと呆れた次第です。汎用機を扱うベンダーであれば効率性や メンテナンスの事を良く考え、詳細設計書に書かれている内容では、それらが 損なわれると判断すると、設計の変更を申し入れられる経験をして来た人間に とって泥棒並のベンダーとの思いもします。

  • 3000行位の帳票作成プログラム理解は難しい?

    一帳票のステップ数が3000行位のプログラムは結構 大きなプログラムの方なのでしょうか 3000行位のプログラムを理解するのは難しいのでしょうか コメント少なめで仕様書なし 言語はVBです 新入社員です。 どうすれば細かいプログラムの流れまで把握できるように なるでしょうか。教えてください

  • c言語についてです。

    以下の条件で課題が出ました。 どなたか詳しい方いらっしゃいましたら回答お願いします。 1.main関数のほかに最低3つの関数を用いる。 2.構造体を使用すること 3.ステップ数は最低50ステップ以上 4.少なくとも1度はポインタを使用する処理を盛り込むこと プログラム動作内容を説明するドキュメントをつくる ソースファイルおよびコンパイル後の実行可能なファイルをつくる

  • VBプログラムをEXCEL VBAに移植する方法について教えてください

    こんばんは。私はVBA初心者です。 ”良くVBとVBAは同様な言語”と伺いますが、実際にVBプログラムのソースを VBAにコピーしてもエラーが出て使用できません。 私がいまいちVBとVBAの明確な違いがわかっていないからだと思いますが、頭がもやもやです。 VBはHP上からVB2005を入手しました。 そもそもVBとVBAの相違点は何が違いますか? HPを見ているとVBAでもVB同様にシステムも組めると記載されているため EXCEL上で動作するVBAで、簡単なシステムを組みたいと思ってます。 どうすればVBプログラムをEXCEL VBAに簡単に移植できますか? 作業手順、移植する際に注意する点等、アドバイスを教えてください。 また参考になるHPや本をご紹介くださいませ。

  • VB5の逆コンパイルについて

    お世話になります。 VB5の資産の改修を迫られていますが、 EXEファイルしかなく、ソースファイルがありません。 著作権は問題ないので逆コンパイルしたいのですが、 調べた所、VBDecompiler、ATTAPといったツールが 海外ツールであるそうですが見つかりません。 仕様書、設計書といったものは少しはありますが 古すぎてEXEファイルの動作と違いがあり、 なんとか逆コンパイルできればと思うのですが、 ご存知の方はいらっしゃらないでしょうか。

専門家に質問してみよう