ソーシャルソフトウェアエンジニアリング(SSE )は、ソフトウェア開発および開発されたソフトウェアの社会的側面に関心を持つソフトウェアエンジニアリングの一分野である。
SSEは、ソフトウェアエンジニアリングと開発されたソフトウェアの両方における社会性に焦点を当てています。一方では、ソフトウェアエンジニアリングの活動、プロセス、およびCASEツールにおいて社会的要因を考慮することは、開発プロセスと開発されたソフトウェアの両方の品質向上に役立つと考えられています。例としては、協調的なソフトウェア開発における状況認識と多文化要因の役割が挙げられます。他方では、ソフトウェアが動作する可能性のある社会的コンテキスト(例えば、クラウド環境)の動的な性質から、実行時反復活動として社会的適応性を設計することが求められます。例としては、ソフトウェアがユーザーからの品質フィードバックを収集し、それを利用して自律的または半自律的に適応できるようにするアプローチが挙げられます。
SSEは、ソフトウェアエンジニアリングにおけるコラボレーションと知識共有を支援する、社会指向型のツールを研究・開発しています。また、ソフトウェアが動作する動的な社会環境への適応性、および実行時におけるソフトウェア適応の意思決定におけるクライアントとエンドユーザーの関与についても調査しています。社会環境には、規範、文化、役割と責任、利害関係者の目標と相互依存関係、エンドユーザーによる各ソフトウェア動作の品質と適切性に関する認識などが含まれます。
第1回ソーシャルソフトウェアエンジニアリングおよびアプリケーションに関する国際ワークショップ(SoSEA 2008)[ 1 ]の参加者は、以下の特徴付けを提案した。
したがって、SSEは「オンライン環境におけるソフトウェアのコミュニティ主導の作成、管理、展開、および使用を可能にするためのプロセス、方法、およびツールの適用」と定義できる。[ 2 ]
SSE の分野における主な観察の 1 つは、ソフトウェア エンジニアリングは本質的に社会的な活動であるため、ソーシャル ソフトウェアアプリケーション用に作られた概念、原則、およびテクノロジーがソフトウェア開発自体に適用可能であるということです。SSE は、ソフトウェア開発の特定の活動に限定されません。したがって、ソーシャル システム設計やソーシャル要件エンジニアリングなど、SSE のさまざまな部分をサポートするツールが提案されています。[ 3 ] その結果、ソフトウェア開発ツール、エンジニアリング ツール、マーケティング ツール、またはユーザーの意思決定プロセスを支援するソフトウェアなどの垂直市場ソフトウェアは、ソーシャル コンポーネントから利益を得ることができます。 [ 4 ] [ 5 ]このような垂直ソーシャル ソフトウェアは、Yammerなどの従来のソーシャル ソフトウェアとはユーザー ベースで大きく異なります。