ソフトウェアも劣化する

コメントは受け付けていません

投稿日:2011年02月27日 作成者:yasunaka

最近、あるところで「ソフトウェアは劣化しない」という内容の話を読みました。一度作成されたソフトウェアは長年使い続けても磨り減ることもなく、使い続けることができるという話です。確かに物理的なものとは違い、ソフトウェアは物理的な磨耗とか、化学的な経年変化とか、そういうものとは無縁ですが、でもソフトウェアも違った観点で劣化しますよね。

その理由は、例えばこんなところでしょう。

(1) ソフトウェアを作成した言語の言語仕様が変わる

たとえばJava言語は誕生以来、1.0から1.1、1.4から1.5の間では言語仕様も大きく変わっています。Javaに限らず、ほかの言語でも徐々に言語仕様が変わるケースは結構多いと思います。このような場合、後方互換性は確保されているので、使い続けることができる場合がほとんどだとは思いますが、「古い言語仕様で書かれたコード」は、便利な新しい仕組みが使えないというハンデがメンテナンス上問題になることも多いと思います。(例えば、いまさらJDK1.0レベルのコードをメンテナンスしたいとは誰も思わないでしょう)

(2) 使用しているライブラリーが更新され、影響を受ける

ソフトウェアをすべて自前で作ることはありえず、通常なんらかのライブラリを利用していると思いますが、そのライブラリがセキュリティ上の理由や機能向上などのために更新されることはよくあることです。そしてある程度古くなったライブラリは通常メンテナンス対象外とされてしまうため、追いつき作業は必須となります。

(3) 使用しているベースソフト(OS、DBMS、アプリケーション・サーバなど)がバージョンアップされる

WindowsもLinuxもOracle Databaseも、いつまでも古いバージョンがそのままメンテナンスされるわけではありません。いつかEOL(End of Life)を迎える日が来ます。その前に新しいバージョンで動くようにしておかなければ、例えば極端な場合、ハードウェア故障時に乗せ換え作業すらできなくなり、まともなメンテナンスができなくなってしまいます。

他にもいろいろあると思いますが、総じていえることとしては、ソフトウェアの劣化は環境によって発生する、ということです。ソフトウェアが進化を続ける限り、環境は変わり続け、そのままではソフトウェアは劣化し続けると言えます。

環境から影響を受けるという点、そして環境に合わせて進化し続けなければならないという意味では、ソフトウェアは生き物のようなものと捕らえたほうが良いのかもしれません 😉

タグ 雑談