システム管理論 I / 第 3 回

システム開発プロセス

どんな順序で作るか ── 3 つのモデル

この回のねらい

開発計画

開発に入る前に、まず計画が決まります。

決めること中身
開発目的・目標・時期何を目指し、どこまでのものを、いつ実現するか
市場ニーズ汎用性のあるシステムでは、ニーズを的確に分析する
開発方法新規に開発するか、従来システムをどこまで使うか
開発工数・設備費用の大半は人件費。工数に比例する
開発体制誰が、どんな役割で関わるか

開発工程

システム開発プロセスとは、各段階に分けられた一連の作業、 すなわち開発工程のつながりです。

工程やること
I. 要求分析(要求定義) 実現する仕様を明確にする。業務を分析し、ユーザの視点で要求内容を記述する。 同時に、開発側の視点で技術実現性・コスト・期間の妥当性を踏まえる
II. 外部設計 大規模ならサブシステムに分割し、外から見た仕様を設計する。 機能、操作方法、ユーザインタフェース、コード設計などを定義する
III. 内部設計 方式の記述を詳細化し、プログラムの仕様書を作る。 各サブシステムをモジュールレベルまで詳細化する
IV. 実装プログラムを書く
V. テスト仕様を満たすことを確かめる
VI. 運用・保守使いながら直し、育てる

ウォーターフォールモデル(落水モデル)

もっとも早くに考え出されたモデルです。 工程を上から下へ、一方向に流す。 滝の水が下へ落ちて戻らないことから、この名がつきました。

3 つのモデルを見比べる切り替える
3 つのモデルの比較
ウォーターフォールプロトタイプスパイラル
進め方上から下へ一方向試作品を作って確認してから本開発小さく一周を繰り返す
強み工程・成果物が明確。管理しやすい。大人数に向く要求の思い違いを早期に発見できるリスクの高い部分から片づけられる
弱み後戻りの費用が非常に大きい。要求が固まっていないと破綻する試作品を作る手間。試作品を本番に流用してしまう誘惑管理が複雑。周回数の見積りが難しい
向く場面要求が固まっている。前例があるユーザが要求をうまく言えない。画面や操作性が重要大規模で、技術的な不確実性が大きい

後戻りは高くつく。 要求分析の誤りをテスト段階で見つけると、 要求・設計・実装・テストのすべてをやり直すことになります。 一般に後の工程で見つかるほど、修正費用は跳ね上がります。 だから上流の工程ほど丁寧にやる価値があり、 プロトタイプやスパイラルは誤りを早く見つけるための工夫だと言えます。

プロトタイプモデル

本格的に作る前に試作品(プロトタイプ)を作り、ユーザに触ってもらいます。 ユーザは、文書を読んでも気づかないことに、動くものを触ると気づきます。 「思っていたのと違う」を早い段階で言ってもらうのが狙いです。

スパイラルモデル

「計画 → リスク分析 → 開発 → 評価」の一周を、何度も繰り返しながら 少しずつシステムを育てます。渦(スパイラル)を描くように外へ広がっていくのでこの名があります。 毎回リスクの高いところから手をつけるのが特徴です。

この「小さく回す」発想を、さらに短い周期で徹底したものが 第12回で扱うアジャイル開発です。 つまり本日の3つのモデルは、アジャイルの前史でもあります。

← 第2回 第4回 要求分析(1) →