ブログ
BLOG

システム開発の工程とよく使う用語を徹底解説!

2020.08.24

こんにちは。
NOVEL株式会社で代表兼エンジニアをしている岡田と申します。

新規プロジェクトを進めるに当たり、システム開発は欠かすことができません。ITが発展している現在、システムに対する需要は非常に高くなっています。

新規プロジェクトを立ち上げる際、システム開発の工程が分からず悩む方がいるのではないでしょうか。

システム開発工程をしっかりと確立することが、プロジェクト成功の鍵となると言っても過言ではありません。

システム開発に関しては、工程を理解すると同時に、依頼者、開発者が密にコミュニケーションを取ることが大切です。

システム開発工程について理解し、スムーズにシステム開発を進められるよう、有用な情報をご提供しますので、ぜひ参考にしてみてください。

システム開発の工程を知る理由

システム開発には決められた工程があります。

システム開発は料理に例えると分かりやすいです。カレーを作る時は、レシピ通り、まずはにんじん、たまねぎ、じゃがいも、肉などを炒めます。それから、カレー粉を入れてしばらく煮込みます。

このように、料理には手順を示すレシピがあります。

料理と同じように、システム開発にもレシピのようなものがあります。それがシステム開発の工程です。

システム開発の工程があるため、品質の担保ができるのです。

抑えておくべき開発のパターンは2つ

システム開発のモデルにはいくつか種類があり、それぞれ工程の流れに違いがあります。

代表的な開発パターンは、「ウォーターフォールモデル」「アジャイルモデル」です。

全ての開発モデルを把握しておく必要はないですが、代表的なモデルについて知っておくと便利です。

ウォーターフォールモデル、アジャイルモデルそれぞれにメリット、デメリットがあり、どちらを選択するかは、システムの性質によっても変わります。

ウォーターフォールモデルは大規模な事業に、アジャイルモデルはスピードが要求される事業に向いていると言われています。

ウォーターフォールモデル、アジャイルモデルそれぞれの特徴を詳しくご紹介します。

ウォーターフォールモデルについて

まずは、ウォーターフォールモデルについてです。

システム全体を管理しやすい、非常に有用なシステム開発モデルです。

ウォーターフォールモデルについて、開発フローも含めて詳しくご紹介します。

1. ウォーターフォールモデルとは?

ウォーターフォールモデルは最も標準的な開発モデルです。

高いところから水が流れ落ちるようなイメージで、順番に工程を進めていき、前工程には戻りません。

システム開発、予算などは前工程に戻ることは想定されていないため、仕様の変更が必要になるケースでは、プロジェクトに大きなトラブルを来してしまいます。

柔軟に修正できないモデルになります。

2. ウォーターフォールモデルの開発フロー

ウォーターフォールモデルは、要件定義、外部設計、内部設計、プログラミング、単体テスト、結合テスト、システムテスト、運用テスト、システム移行、運用・保守の順に進んでいきます。

工程が長いと感じる方が多いですが、それぞれの工程には意味があり、どれも非常に重要です。

ウォーターフォールモデルの開発について詳しくご紹介します。

1) 要件定義
要件定義は、システム開発を依頼する立場の人と開発する人が打ち合わせを行う工程です。

この工程が正常に作動していないと、結果的にトラブルが生じる可能性があります。

十分に要望と方針の確認をしておく必要があります。

システムを開発する際、要望と実際の開発にずれが生じないようにするために非常に大切です。

2)外部設計
外部設計は、システムを利用する人の立場に立ち、必要な機能を検討し、システム設計をする工程です。

要件定義の工程の結果を元に、大枠を設計していきます。

3 )内部設計
内部設計では、外部設計で決定した事項をより詳細に設計します。

外部設計はシステムを利用する人の視点ですが、内部設計は開発者側の視点での設計です。

4 )プログラミング
プログラミングは、実際にプログラミング言語でシステムを構築することです。

内部設計はよく家の設計図に例えられます。

プログラミングは設計図を元に実際に家を建てる工程です。

5 )単体テスト
プログラミングが終了したら、正常に作動するかを確認します。その工程が単体テストです。

基本的にシステム開発においては、小さい単位からテストを進めます。

そして、次第に大きな単位でのテストに進んでいきます。

6) 結合テスト
単体テストで問題がない場合に、より大きい単位でテストします。

プログラム同士の連携についても確認します。

7 )システムテスト
プログラム同士が問題なく連携していることが確認できた後、ユーザーの要求に合っているかをテストします。

大量アクセスへの耐久、処理速度もこの工程でチェックします。

8)運用テスト
システムテストをクリアしたら、最後は運用テストです。

運用テストでは、不具合なくシステムが作動するか確認します。

実際にシステムを利用する環境下でのテストとなります。

9)システム移行
全てのテストが完了したら、完成したシステムを公開します。

10 )運用・保守
システムに関しては、使用し続けていると、不具合が発生する可能性があります。

使用中、監視し、不具合を修正する必要があります。

システムは常に保守、点検されなければなりません。

3. ウォーターフォールモデルを採用するメリット

ウォーターフォールモデルでは前に戻ることがないので、スムーズにスケジュールを進めることができます。

進捗確認もしやすいモデルとなっています。

また、良く使用されているシステム開発モデルであるため、利用しやすいというメリットがあります。

4. ウォーターフォールモデルを採用するデメリット

ウォーターフォールモデルは全行程に戻ることができないため、途中で不具合が生じた場合に、システム開発が滞ってしまいます。

システム開発に納期が設定されていたとしても、途中でフリーズしてしまい、大幅に遅れがちです。

市場の変化にも対応しにくいため、使いにくいと感じる人もいます。

5. ウォーターフォール開発の事例

ウォーターフォールは、大規模システム開発によく使用されます。

多くの開発者が作業を分担して進めていきます。

途中で後ろに戻ることがないため、多人数であっても、決められた方向に進みやすいのです。

比較的時間にゆとりのある大規模なプロジェクトでウォーターフォール開発が利用されるケースが多いです。

しかし、ウォーターフォール開発は作業工程が多く、時間がかかります。

スピードが要求されるプロジェクトでは利用しにくいというのが現状です。

具体的に、ウォーターフォール開発された事例としては、富士通のSDEM90、アクセンチュアのMethod1、IBMのADSGなどがあります。

アジャイルモデルについて

アジャイルモデルについてです。

システム開発をスピーディーに進められ、変化にも柔軟に対応できる有用なシステム開発モデルです。

ウォーターフォールモデルについて、開発フローも含めて詳しくご紹介します。

1. アジャイル開発とは

アジャイルモデルとは、素早くシステムを開発する方法のことです。

「XP」や「スクラム」、「FDD」などの手法が、アイジャイモデルに該当します。

アジャイル開発では、開発者と顧客が協力したり連携したりすることが非常に重要になります。

ウォーターフォール開発と比較し、変化への対応が可能です。

2. アジャイル開発の流れ

アジャイル開発は、リリース計画の策定、システム計画の分割、機能単位での開発、イテレーションの繰り返しの順で進んでいきます。

1)リリース計画の策定
リリース計画の策定は、システム開発の大まかな計画を立てることです。

ウォーターフォールモデルでは詳細に要求を確認して、設計に取り掛かりますが、それとは異なり、アイジャイ開発では、まず初めに大まかな要求を確認して決めます。

詳細を決めないため、スピーディーですし、途中で変更が生じた際に対応しやすくなります。

2)システム計画を分割する
システムの全体像が把握できたら、分割して実行に移します。

とりかかる機能に関しては優先度を元に順番を決めます。

機能を数週間で実行できるように分割するので、効率よく進めることができます。

3)機能単位で開発する
機能に優先順位をつけ、取りかかる順番が決まったら、実際に開発していきます。

機能は数週間で実行できるように分割されているのでスピーディーです。

それぞれの単位で、要求定義、設計、テスト、リリースを実行していきます。

4)イテレーションの繰り返し
アジャイル開発では、各機能を開発する期間の単位を「イテレーション」と言います。

アジャイル開発では機能を分割しているので、1つの機能のリリースが完了したら、次の機能を同じ流れで進めていきます。

イテレーションの繰り返しで、次第に全体のシステムが完成していきます。

3. アジャイル開発のメリット

システム開発をスピーディーに実施できるというのは、アジャイルモデルの最大のメリットです。

機能を分割し、優先順位をつけて取り組めるので、素早くリリースすることができます。

また、システムを機能単位に分割することで、不具合に対応しやすいというのもメリットとしてあります。

アジャイル開発では、システムの開発の依頼者と実際に開発する人が、密に連携しながらシステム開発を進めていきます。

システムの完成度は高くなる傾向にあります。

4. アジャイル開発のデメリット

アジャイル開発においては、詳細な計画を立てないため、スケジュール管理をしにくくなっています。

そのため、システム全体を管理できずにシステム開発が遅れてしまうケースがあります。

アジャイルモデルはウォーターフォールモデルよりも新しいシステム開発モデルです。

対応できる開発会社が少ないというのもデメリットとして挙げられます。

5. アジャイル開発の事例

アジャイルモデルを利用すると、システム開発を迅速に行うことができます。

スピーディーに事業展開したい場合は、アジャイル開発がおすすめです。

システム開発を依頼する人と、システム開発者が密にコミュニケーションを取るので、新規事業においても、柔軟に対応しながらシステム開発を進めることができます。

アジャイルモデルは、計画的に管理しなければならない大規模な事業には向いていません。

計画管理しにくいというデメリットがあるのです。

段階的にシステムをリリースして効率的に進める際に利用するのが良いでしょう。

システム開発工程で使う用語集

下記がシステム工程で使う用語集です。外注時に活用いただければと思います。

画像1

最後に

今回は開発モデル毎に、システム開発の工程と流れをご紹介しました。

ウォーターフォール開発とアジャイル開発は主要なシステム開発工程であり、それぞれのメリット、デメリットを把握しておき、適したシステム開発工程を採用することが大切です。

今回ご紹介した情報が、開発会社とのコミュニケーションに役立つと幸いです。

サービス開発を検討されている方はぜひお問い合わせください。
お問い合わせ

 

中長期的な仕様改善まで行い
グロースまでサポート

お気軽にご相談ください。

お問い合わせのアイコン

お問い合わせ