MIRACLE
メールサービス申込 ユーザー登録 パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

プロフィール

吉岡 弘隆 - よしおか ひろたか

日本OSS推進フォーラム ステアリングコミッティ委員
OSDL Board of Directorsを歴任
カーネル読書会主宰

2000年6月、ミラクル・リナックスの創業に参加。
95年~98年、米国OracleにてOracle RDBMSの開発をおこなっていた。
98年にNetscapeのソースコード公開(Mozilla)に衝撃をうけ、オープンソースの世界に飛びこみ、ついには会社も立ち上げてしまう。
2008年6月取締役CTOを退任し一プログラマとなった。

ミラクル関連リンク

採用情報

サイト検索

2008年9月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

« 試行錯誤を共有すること | メイン | なぜソースコードを読むのか? »

大規模ソフトウェアの効率的な理解(その5)

動的理解、静的理解

ソフトウェアの理解のもう一つの視点は、ソフトウェアの動的な理解と静的な理解というのがある。

動的というのはソフトウェアを実行した時の挙動のことをさし、静的というのはソフトウェア(プログラム)の字面をさす。

静的な側面からの理解はソフトウェアのコードを読み、そこから何らかの形でプログラムの挙動を理解していくというアプローチになる。字面からの理解ということで、ディレクトリ構造やファイル名や変数の命名規則、コードリファレンスなどが静的な理解の対象になる。

動的な理解は、デバッガによる実行、プロファイラ、トレーサー、ベンチマーク、リグレッションテスト等々実行結果による理解となる。各種ツールが理解を支援してくれる。

ソフトウェアというものは、単純化すれば、ある入力に対して何らかの出力をする機械ととらえれば、ソフトウェアを理解するという事は、その入出力の組を知ることに他ならない。動的な理解というのはまさにそのソフトウェアを動作させ、その入力と出力の組を確認することになる。マクロでとらえればそのようになるが、実際は、その入力と出力の変換方式を詳細におっていくという作業になる。

動作をどんどん微分していけば最終的にはソースコードの一行になる。何百万行の大規模ソフトウェアも最終的には一つ一つの命令に帰着する。そうするとその動作はプログラムの静的な側面になる。机上デバッグというソースコードを机上で一行一行読み理解するプロセスというのはその一行一行の静的な意味を積み重ねて動的な意味に脳内で変換する作業といえる。

動的な理解と静的な理解をいったりきたりしながらソフトウェアの挙動を徐々にとらえていくというプロセスになる。

このソフトウェアを理解するプロセスというのは、あまり明文化されていないし、各人のスタイルに依存するが、あえてそのプロセスを明記する事を試みる。それが成功(?)すればデバッグやトラブルシューティング、性能チューニングの手法の一助になるかもしれない。(ならないかもしれないが、やってみない事にはわからない)

トラックバック

このページのトラックバックURL:
http://www.typepad.jp/t/trackback/4447/6468012

このページへのトラックバック一覧 大規模ソフトウェアの効率的な理解(その5):

» gdbの実践的使い方 トラックバック ユメのチカラ
「大規模ソフトウェアの効率的な理解(その1、2、3、4、5、6)」などという大袈 [続きを読む]

» ソースコードの読み方 トラックバック ユメのチカラ
ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかな [続きを読む]

コメント

コメントを投稿

会社情報 採用情報 個人情報保護方針 商標等取り扱い事項 English
Copyright(c)2000-2006 MIRACLE LINUX CORPORATION. All Rights Reserved.