ソフトウェアの進化とは
ソフトウェアの進化とは、実行可能な製品であるために、商用コンピュータープログラムを継続的に更新、保守、改善する必要があるプロセスです。 この点で、ソフトウェアの進化は、他のソフトウェアやテクノロジーがその周りを進むにつれて変化する外部のビジネスおよび消費者のニーズによって推進されます。 ただし、ソフトウェアの進化の推進要因は、多くの場合、製品を生産したエンジニアリングチームと収益性の成功に依存している会社に焦点を当てた内部要因です。 イギリスのロンドンのインペリアルカレッジは、1970年代初頭にソフトウェア進化の3つの基本法則を最初に公布しましたが、2011年以降、合計8つの法則に拡大されました。線形シーケンシャルモデルとプロトタイプモデルですが、ソフトウェアエントロピーライフサイクルに最適なパラダイムは、生物のダーウィン進化に似たものです。
ソフトウェアアーキテクチャの変更の背後にある基本的な推進要因は、社会のニーズの変化に応じて産業機械または標準操作手順をアップグレードするように企業を動機付ける同じ力に似ています。 ソフトウェアがますます使用されるにつれて、それに対する新しいニーズまたは機能が明らかになり、それは製品の今後のリリースに組み込まれなければなりません。 すべてのソフトウェアは以前に未知のエラーとともにリリースされるため、ソフトウェア自体を介した攻撃に対して企業を脆弱にする可能性のあるセキュリティ抜け穴などの状況を修正するために、定期的なパッチとメンテナンス手順を実行する必要があります。 ソフトウェアの進化の鍵は、そのようなプログラムをますます適応させて、さまざまな種類の新しいコンピューター機器やさまざまなオペレーティングシステムアーキテクチャで動作するようにしなければならないという事実です。
これらのすべてのニーズを満たすことは、ソフトウェアプログラムが実行可能かどうかを判断するために不可欠です。また、ソフトウェア資産は2011年の情報経済にとって非常に重要な側面であるため、ソフトウェアの進化はビジネスの適応と成長の基本的な側面となっています ロンドンのインペリアルカレッジのコンピューター科学者であるMeir Lehmanは、ソフトウェアの進化のプロセスを簡潔に定義し、開発者をソフトウェアの視覚化の先進的な思考に導くリーマンの法則を作成したと考えられています。 リーマンの法則は、パフォーマンスに対するフィードバックが増加するにつれてソフトウェアが進化し、避けられない傾向がますます複雑になるという前提に基づいています。
リーマンは、ソフトウェアの進化の性質は、ショウジョウバエの突然変異などの自然の変化、都市の時間の経過、軍事システムが武器システムを徐々に改善する方法を反映していると述べています。 プロセスの最初の3つの法則は、継続的な変化、増加する複雑さ、および大規模プログラム進化として知られるものを詳述するこれらの傾向をエミュレートします。 絶え間ない変化とは、現在の実世界のビジネス条件に合わせてプログラムを調整する必要があるという事実を指します。これは、増え続ける多様性の予期しないニーズを満たす必要があるため、複雑さが増すことを反映しています。 大規模なプログラムの進化とは、市場の要求に容赦なく結び付けられたエラー修正とプログラムの新しいリリースの必要性を指します。
ソフトウェアの進化における残りの5つの法律のうち、4番目は組織の安定性であり、プログラムの成長が意図的に割り当てられたリソースのレベルに関係なく独自の生活を送るという事実を指し、5番目は親しみやすさの保全ですそれは、プログラムの漸進的な成長は避けられないと述べています。 8つのリーマン法則の6番目は継続的な成長であり、それは消費者の需要を満たすために必要であり、7番目は品質の低下であり、すべてのソフトウェアが最終的に満たすことができない機能の限界に直面することを強調しています。 ソフトウェア進化の最終的なリーマン法則はフィードバックシステムそのものであり、ソフトウェアプログラムの実行可能性に影響するすべての力を結び付けて、それを急速に成功または避けられない陳腐化と死に至らせます。