外部設計(基本設計)
外部設計は、顧客や外部システム担当者と調整しながら、仕様を決めていくフェーズである。開発するシステムとは別の、外部システムと連携する部分の仕様を設計し、内部設計を行うための土台を作ることが目的である。外部設計を基本設計と呼ぶ場合もある。
インプット | アウトプット |
|
|
インプットとなる要件定義書から、外部設計書を作成する。外部設計書の内容としては、上記表にあるとおり、画面仕様書、帳票仕様書、インタフェース仕様書、データベース論理設計書などがある。外部システムとの連携方法を設計するため、顧客企業が想定しているネットワーク定義書をもとに、設計を進めることが求められる。この開発フェーズまで、顧客企業や外部システム開発チームとの仕様調整が必要である。
画面設計書(画面仕様書、画面定義書)
パソコンなど、ある端末装置からの入力を必要とするシステムでは、画面構成を設計する。どのような情報を画面に入力し、システムに受け渡すのかを明確にするため、プロトタイプを作成する場合もある。画面イメージを作りながら設計を進めていくことは、ユーザとの合意を行うことを目的としている。ユーザ側と開発側とのギャップをできるだけ少なくし、よりユーザの希望にあわせた開発を行うことが求められる。 画面構成は、システムを実際に使用するユーザの使い勝手が大変重要である。顧客企業がシステムを導入し、浸透させるためには、ユーザインタフェースの向上が必須である。システムの使い方をユーザに教育することは必要であるが、ユーザが考慮しなければならない制約が多いほど、システムを浸透させることは難しいだろう。ユーザインタフェースの向上は、顧客ビジネスへ直結するのである。
なお、これは画面仕様書の例ではない。「仕様書」などの設計に対する成果物は、文書にヘッダやフッタを設け、文書タイトル、作成者、改版履歴などを記載する必要がある。最近では、Microsoft Windows Vista が Windows 標準として市場に展開されているが、 Vista の使いやすさについては賛否両論である。見た目がきれいであること、機能が豊富であることと、ユーザにとっての使いやすさは、別の次元で議論すべき要素なのである。
帳票設計書(帳票仕様書、帳票定義書)
システムの業務処理結果など、ユーザに見せたいデータイメージのことを、帳票という。例えば、請求書、給料明細、銀行預金残高明細などの、出力イメージが決まっている定型の帳票や、売上高棒グラフ、アンケート結果円グラフなどの出力イメージが変動する非定型の帳票などがある。画面に表示させるだけの帳票であったり、PDFやExcelなどの形式でファイル出力する帳票、最終的に紙媒体として印刷する帳票など、様々な要件や用途を考慮して設計を進める。これら帳票も、画面仕様と同じように顧客との調整を行いながら設計していく必要がある。
インタフェース設計書
インタフェース(interface)とは、複数の物事の存在の中で、お互いの情報をやり取りするための仲介を行う媒体の概念である。普段の生活をしている方にとっては、馴染みのない言葉のようである。インタフェースには、大きく分けると次の3つの種類がある。
ハードウェアインタフェース | ハードウェアの規約や、電気的な手続きの形式 |
ソフトウェアインタフェース | プログラム同士、機能同士がやり取りするデータ形式。またはデータのやり取りそのもの。 |
ユーザインタフェース | 画面など、システムを利用する上での操作性。 |
インタフェースという言葉は上記のように、抽象度の高い3つの意味を持っている。コミュニケーション上で使うのであれば、少なくとも「○○インタフェース」という表現にするべきである。ただし、例えば画面設計について議論している場面で「インタフェース」という言葉が出てきた場合、それが「ユーザインタフェース」を指していることは暗黙の了解であり、聞き手側が読み替えるべきであろう。なお、インタフェース仕様書とは、ソフトウェアインタフェース仕様書を指す。外部設計ではシステム同士のデータ形式を設計する。例えば、ファイルレイアウトや電文レイアウトをお互いのシステム間で合意し、それに基づいて開発を進めていく。機能同士のインタフェースは内部設計フェーズで、プログラム同士のインタフェースは詳細設計フェーズで設計する。 また、データをやり取りすることを「インタフェースする」と言う場合もある。「I/Fする」という表記もあり、インタフェースという言葉の抽象性や曖昧さを複雑化している一因かもしれない。
インタフェース設計は、システムを連携させるという観点で、非常に重要である。必要なデータ項目が架けると、システム間で矛盾が生じるため、システムが機能しなくなる。外部設計や内部設計、詳細設計での設計ミスを特に、設計バグという。
- 開発するシステムに必要なデータ項目を洗い出す
- 外部システムと内部システムとのデータ項目を調整し、必要十分に仕上げる
- ファイルレイアウト、電文レイアウトを設計する
- 外部システムとの間で、インタフェース形式についての合意を行う
電文レイアウトは主に、クライアント・サーバモデルのシステムで設計する。クライアントの要求電文に対して、サーバ側は応答電文を返却する。なお、これはTCP/IPなどでも実装されている、一般的でシンプルな方法でもある。電文レイアウトもファイルレイアウト同様に設計する。蛇足であるが、ファイルとはOSが管理するデータ単位である。電文とはその名の通り、電気の文章のことで、転送データの単位である。電文はメッセージとも呼ばれる。
コード設計書
ファイルレイアウトや電文レイアウトの設計と同時に、コード設計書を作成する。システム間で使用するコードの意味を定義し、以降の開発フェーズでも使用する設計書となる。外部設計フェーズでシステム間の仕様を決定したら、あとは実際に開発するシステムをターゲットにして設計を進めていく。