System development methods
(1)Waterfall model
This model is to developing the system from requirement definition to testing
in order. This model name comes from the flow of the waterfall.
Please image building your own house. The order is as follows.
①Requirement Definition
The housebuilder asks what kind of house the customer wants to build.
How many floors? How about color? Just like this.
②External Design
To design the new house like drawing a rough sketch.
③Internal Design
To choose the materials of all parts.
④Program Design
To draw up a blueprint including the size of all parts.
⑤Coding
To build a new house with the saws or the hammers.
⑥Testing(Unit testing, integration testing and system testing, etc.)
To check whether there are the place poorly constructed or water leaks.
⑦Preparing for the transition and operation
The customer begins to live in this new house.
■Feather
・It is easy to manage progress and process.
・It is difficult to respond to changes the specifications and It is easy to delay
the discovery of mistakes.
・The earlier the cause of the mistakes is, the higher the correction cost will
be.
・Delays in finding mistakes increase the cost of correction.
(2)Prototyping model
This is a development technique for creating prototypes. Customers can
confirm the requested contents as soon as possible.
■Feather
・You can give customers a sense of participation in system development.
・You can remove misunderstandings and ambiguities between developers
and customers.
(3)Agile model
It is a method of proceeding with development by repeating implementation
and testing in small units. It is possible to shorten the development period.
■Feather
・You can fix mistakes with less man-hours when they are found.
・It is difficult to grasp the schedule and progress. This is because you
proceed with development without making a detailed plan.
(4)Spiral model
It is a development technique that incorporates the methods of both the
waterfall model and the prototyping model. At the beginning of the
development process, the system is divided into highly independent parts,
and each part is designed, programmed, tested, and repeated to develop
the system.
■Feather
・It is possible to respond flexibly if the plan changes.
・You can minimize the burden of changing on the way and redoing.
-----------------------------------------------------------------
[Japanese]
システム開発の手法
(1)ウォータフォールモデル
要件定義からテストまでを滝の水の流れのように逆流することなく開発する
手法です。マイホームの建築に例えると、下記①〜⑦の順に行われます。
①要件定義
建築会社が顧客からどんな家を作りたいか聞きます。
②外部設計(基本設計ともいいます)
形、色など大まかなデザインを考えます。
③内部設計(詳細設計ともいいます)
木材などの具体的な材質を考えます。
④プログラム設計
寸法も含めて設計図を描きます。
⑤プログラミング
のこぎりやハンマーなどを利用して家作り。
⑥テスト(単体テスト、結合テスト、総合テストなど)
建て付けに問題はないか、水漏れしないかなどをチェックします。
⑦移行準備・運用
顧客が家に住み始めます。
■特徴
・進捗管理や工程管理が行いやすいです。
・仕様の変更に弱く、誤りの発見が遅れやすいです。
・誤りが発生した場合、原因が開発の初期段階であればあるほど修正コスト
が高くなってしまいます。
(2)プロトタイピングモデル
システム開発の早い段階でユーザーが要求したインタフェースを目で確認できるように、試作品(プロトタイプ)を作成する開発技法です。
■特徴
・ユーザーにシステム開発の参加意識を持たせることができます。
・開発者とユーザー間の認識のずれや曖昧さを取り除くことができます。
(3)アジャイルモデル
アジャイル(Agile)とは、直訳すると「素早い」という意味です。小単位で実装とテストを繰り返して開発を進めていきます。これにより、従来の開発手法に比べて開発期間を短縮することができます。
■特徴
・不具合が発覚した際に戻る工数が少ないです。
・計画を詳細に立案せずに開発を進めるため、スケジュールや進捗具合が
把握しにくいです。
(4)スパイラルモデル
ウォータフォールモデルとプロトタイピングモデルの両方の手法を取り入れた開発技法です。システムを開発工程の初期に独立性の高い部分に分割し、各部分ごとに設計、プログラミング、テストを行い、それを繰り返すことでシステムを開発します。
■特徴
・計画変更が起こっても柔軟に対応できます。
・途中変更や、やり直しなどの負担を最小限に抑えることができます。