asatoの技術的な日常日記

「成長に最大の責任をもつ者は、本人であって組織ではない。自らと組織を成長させるためには何に集中すべきかを、自らに問わなければならない」  非営利組織の経営 - ピーター・ドラッカー

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ソフトウェア進化研究 Part1:変化するもの

ソフトウェア進化について考えるシリーズ、第一回目。

テーマは「何が変化するか」。

ソフトウェア開発の過程ににおいて変化するものは色々ある。それらの変化を観察した結果や考察を、ソフトウェア開発に生かそうとするのがソフトウェア進化の研究だと思う。


何が変化するのか。

-環境:ソフトウェア開発の過程において環境が変化する。たとえば、法律などが変わるかもしれない。競合他社の製品のバージョンが変化するかもしれない。開発者の周りの技術が新しく生まれたり、技術の様々な仕様が変化するかもしれない。

通常、環境変化は、ユーザや開発者が制御できない。

-ユーザ要求:ユーザや顧客の要求は常に変化する。これは、ユーザ自身が、どんな問題を抱えており、その問題を解決するどのようなソフトウェアを望んでいるのかを、正確に理解していないことが主な要因だと思われる。

ユーザは、環境変化に影響を受ける。そのため、問題自体が変化する。

-デザイン(デザインデシジョン):開発者は、ユーザ要求を満たすようにソフトウェアをデザインする。デザインのプロセスは、意思決定(decision making)のプロセスだと考えられる。

様々な理由で、デシジョンは変化する。環境の変化、ユーザ要求の変化、開発者の設計問題に対する理解の変化など。

環境の変化は、例えば、用いてるライブラリが開発中止になったりすることなどが考えられる。あるいは、現在用いてるライブラリよりも優れたライブラリの出現などもある。

ユーザ要求の変化は、たとえば、機能追加などがある。デザインする上で重要なことの一つは、複雑さを適切にすることだと考えられる。2個の機能の時のデザインと10個の機能の時のデザインとは異なる。

設計問題に対する理解の変化は、設計問題が、ill-defined な問題 に属することに起因すると考えられる。

-プログラム:開発者のデザイン(デシジョン)の変化は、最終的には、ソースコードや設定ファイルなどのプログラム的な成果物に反映されなければならない。

-ドキュメント:バグレポートなどの文書など。
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://asatohan.blog77.fc2.com/tb.php/53-5d26affd
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。