システム設計

システム設計では、境界に着目して問題を単純化します。境界の仕様のことをインタフェースといいます。最も重要な境界はシステムとその利用者である人との境界です。ユーザインタフェースと呼ばれます。このインタフェースの設計を「外部設計」といい、この境界よりもシステム側(内側)の設計を「内部設計」といいます。外部設計では、画面やその操作、ファイル・印刷物等入出力の仕様を決定します。内部設計ではシステムの内部動作や実装方法を規定します。複雑なシステムでは、複数のシステムが連携して1つのシステムを構成することがありますが、そのような場合、システム間の境界の仕様を決めることで、さらに単純なものの組み合わせに分割して設計します。

スマートフォンアプリの開発を例に挙げます。このアプリはスマートフォンで作成したデータをクラウドに保存するタイプのものとします。外部設計では、画面に表示する内容や、タッチ/スワイプ等の操作をした場合の動作を決定します。内部設計では、スマートフォン側のアプリの詳細仕様に加え、クラウドに保存するためのAPI(アプリケーションプログラミングインタフェース)も決定します。

システム設計では単に入出力の条件を満たすだけでなく、使い勝手(ユーザビリティ)等も考慮しないと、最終的に利用者の満足を得る結果が得られません。システム設計は開発者の手腕が問われる非常に重要なプロセスです。

(2015年11月18日 初稿)

English

System design

定義

システム設計とは、システム開発において上位フェーズで決定した要求仕様を実現するための、システムの振る舞いを決定することです。