システム作りは、よく家造りに例えられます。それは、「家を造る為の設計図を作成」し、「設計図をもとに家を建て」、「建てた家を長持ちさせる為にメンテナンス」していき、
またその後、「必要に応じて増築・改築が行なわれる」という工程がシステムを設計する過程に非常に似通っているからです。
ここでは、家造りとシステムを対比させて、システムのライフサイクルを分かりやすく説明していきます。

家のライフサイクル
- 設計
- 家を建てるには、まずどんな家を作りたいかのイメージを作ること。
そのイメージを設計士に伝え、詳しい設計図を作っていくこと。 - 建築
- 設計図に基づいて「クギ、ノコギリ、カンナ等」を使用して実際に家を設計図どおりに建築していく。
- メンテナンス
- 出来上がった家は、雨漏り等の異常が起きないようにメンテナンスを行なっていかなくてはならない。
- 老朽化
- 古くなった家は、その必要に応じて増築・改築が必要になる。
そうすると、また新たに設計士に相談する。

システムのライフサイクル
- 設計
- システムを設計するには、顧客との交渉を行い、顧客のイメージを仕様書と呼ばれる設計図にまとめる。
- 開発
- 仕様書に基づいて、「C言語」や「Java」を代表とするコンピューター言語を使用して実際にシステムを開発していく。
- 運用保守
- 異常が起きないように、常に正常に機能してくれるようにシステム運用を行なわなくてはならない。
- 老朽化
- 時代に則したバージョンアップが必要になった場合は、新たなシステム構築の案件が発生する。
システムのライフサイクルのなかで、実際にシステムが設計されて開発されるまでの流れは、以下のようになります。

- 仕様書作成
- お客様とのお話の中で得た情報をもとにして仕様書(設計図)を作成していく。
いかにお客様の求めているものを明確に導き出し、プラスαの付加価値を提供できるかが肝心! - プロジェクトチーム組織
- そのシステムの規模・内容に従い、プロジェクトへの参加人数やシステムを作りあげるのに必要なスキルを持った人員が決定する。納期・マンパワーを考慮しながらプロジェクトを組織していくのは大変難しいことです!
- プログラム作成
- システムは、規模・内容に従って部分部分に分けられプロジェクトチームの各人が対応にあたります。
自分が与えられた部分ばかりではなく、常に全体の中の一部分という考えを持ち合わせていなくてはなりません。 - 単体テスト
- プロジェクトチームの各人が受け持った部分のプログラミングが終わると、そのプログラミングが正常に機能するかということを確認する単体テストを行なう。
- 結合テスト
- 単体テスト終了後に、部分部分に分けらていたプログラミングを繋げて正常に機能するか結合テストを行なう。
「単体テストで機能していたものが、結合テストには機能しない!」ということがないように、プロジェクトチーム内のコミュニケーション(意思疎通)は大切なことです。 - 総合テスト
- プロジェクトチームの中で部分部分に分けられたシステムを、本来の一つの形に戻します。そして、お客様の要望どおりに機能するかを徹底的に確認して、晴れて納品ということになります。





