ソフトウェアシステムとは、コンピュータシステム(ハードウェアとソフトウェアの組み合わせ)の一部を構成するソフトウェアに基づく相互通信コンポーネントのシステムです。それは「多数の独立したプログラム、これらのプログラムを設定するために使用される構成ファイル、システムの構造を説明するシステムドキュメント、およびシステムの使用方法を説明するユーザードキュメント」から構成されます。[ 1 ]
ソフトウェアシステムは、コンピュータプログラムやソフトウェアとは異なります。コンピュータプログラムは一般的に特定のタスクを実行する一連の命令(ソースコードまたはオブジェクトコード)ですが、ソフトウェアシステムは仕様、テスト結果、エンドユーザー向けドキュメント、保守記録など、より多くのコンポーネントを含む包括的な概念です。 [ 2 ]
ソフトウェアシステムという用語の使用は、ソフトウェアエンジニアリングの文脈におけるシステム理論アプローチの適用と関連付けられることがある。ソフトウェアシステムは、複数の独立したコンピュータプログラムと、それらが連携して動作する関連する構成ファイル、ドキュメントなどから構成される。[ 1 ]この概念は、ソフトウェアの主要コンポーネントとその相互作用に焦点を当てているため、大規模で複雑なソフトウェアの研究に用いられる。また、ソフトウェアアーキテクチャの分野とも関連している。
ソフトウェアシステムは、特にソフトウェア工学、そして一般的にはシステム工学に関心のあるグループにとって活発な研究分野です。[ 3 ]エルゼビア社が発行するJournal of Systems and Softwareのような学術誌は、このテーマに特化しています。[ 4 ]
ACMソフトウェアシステム賞は、「概念への貢献、商業的受容、またはその両方に反映される、永続的な影響をもたらしたシステムを開発した」個人または組織を表彰する年次賞です。[ 5 ]この賞は、1983年からAssociation for Computing Machinery (ACM)によって授与され、 IBMが賞金を後援しています。
ソフトウェアシステムの主なカテゴリには、アプリケーションソフトウェア開発、プログラミングソフトウェア、システムソフトウェアに基づくものがありますが、これらの区別は時に難しい場合があります。ソフトウェアシステムの例としては、オペレーティングシステム、コンピュータ予約システム、航空交通管制システム、軍事指揮統制システム、電気通信ネットワーク、コンテンツ管理システム、データベース管理システム、エキスパートシステム、組み込みシステムなどがあります。