まずは簡単に無料登録! 今すぐ新しい冒険を始めよう!

フリーランスエンジニアのための
求人サイト - フリート

システム開発の工程と流れ|工程別の成果物とよく使われる略語を解説

 

今回は、「システム開発の工程と流れ」について取り上げます。

「システム開発」と聞くとプログラミングのイメージが先行してしまいがちですが、システム開発の中でプログラミングは一つの工程であり、プログラミング以外にも様々な工程があります。

システム開発のモデルにも種類がありますので、システム開発の工程と流れについて成果物と合わせてお伝えしながら、代表的な開発モデルを2つご紹介します。また、開発の中で使われている略語についてもお伝えします。

 

 

・システム開発の工程と流れ

 

ここでは一般的なシステム開発の工程と流れについてお伝えします。

 

システム開発全体の一連の流れは以下のようになります。

1.要件定義

2.基本設計(外部設計)

3.詳細設計(内部設計)

4.プログラミング

5.単体テスト

6.結合テスト

7.総合(システム)テスト

8.運用テスト

9.リリース(システム移行)

10.運用・保守

 

=システムエンジニア(SE)案件はこちらから=

 

 

・要件定義

クライアントから要望(これから開発するシステムにどのような性能や機能を盛り込むか、運用方法など)をヒアリングし、要件を決定して要件定義書にまとめます。システムを開発する側とクライアントの間に認識の齟齬が生まれないように摺り合わせを行う大切なシステム開発のスタート地点となります。

成果物:要件定義書(システム導入の目的、システム概要、機能・非機能要件など)

 

・基本設計(外部設計)

要件定義をもとに、「このようなシステムを作りましょう」とシステムの基本や概要をまとめ、どのような動作をするか(What)を決める工程です。画面遷移や各画面デザイン動作など、ユーザーインターフェース部分の設計となります。

成果物:機能仕様書(画面・帳票・バッチ機能内容、画面遷移図など)

 

・詳細設計(内部設計)

詳細設計は、基本設計で決められた設計をどのように実現するか(How)を決める工程です。基本設計がユーザー視点だったのに対し、詳細設計は開発者側からコードやプログラミングなどのシステム設計を行います。

成果物:技術仕様書(内部仕様、機能設計など)

 

・プログラミング

詳細設計をもとにプログラミング言語を使ってシステム構築を行う工程です。

成果物:プログラム(プログラム設計書)

 

 

=プログラマー(PG)案件はこちらから=

 

 

・単体テスト

プログラミングが完了したら、作成したプログラムが正常に動作するかテストを行います。単体テストの工程では、プログラミングの対象単位(モジュール)毎にテストが行われます。

 

・結合テスト

単体テストが完了してモジュール単位で問題がなければ結合テストの工程に移行します。結合テストでは、テストが完了した各モジュールを結合してプログラムが正常に動作するか確認します。

 

・総合(システム)テスト

結合テストが問題なく完了すれば、全てのプログラムが要件定義通りに動作するかテストを行います。処理速度やアクセス負荷への耐久性などについて確認するテストです。

 

・運用テスト

上記のテストに問題がなければ最後に運用テストを実施します。実際のシステム運用環境で、開発したシステムに不具合が起こらないか確認する工程です。

テスト関連の成果物:テスト設計書、テスト実施書

 

・リリース(システム移行)

実際に使えるように、開発した新しいシステムに移行する工程です。

 

・運用/保守

開発したシステムが継続的に不具合を起こすことなく正常に動作するように常に監視、不具合が発生した時に対応する運用・保守の工程です。システムが稼働している間に行われる持続的な管理作業となります。

 

 

=運用/保守に関する案件はこちらから=

 

 

・システム開発の代表的な2つのモデル

 

 

システム開発の代表的なモデルとして、『ウォーターフォール開発』と『アジャイル開発』があります。

それぞれの開発モデルについて、簡単に内容を確認してみましょう。

 

■ウォーターフォール開発

ウォーターフォール開発は、システム開発の現場でよく用いられている開発モデルです。

ウォーターフォール(滝)の名前のように、先ほどお伝えしたシステム開発の各工程が上から下へ一方通行の形で進められます。ウォーターフォール開発では原則として、一つの工程が完了して次の工程に移行すると完了している工程に戻ることができません。

原則として前の工程に戻ることができないとなるとデメリットのように感じられますが、これは仕様変更が原則できないことから開発の途中で方向性がブレることを防ぐことができるため「品質の担保」につながっているメリット部分でもあります。

 

また、各工程が明確になっていることから開発スケジュールもたてやすく、開発の進捗管理もしやすくなっている点もメリットとして挙げることができます。

しかし、設計ミスなどのやむを得ない理由で仕様の変更が必要となった場合、大幅に工数がかかってしまう点、またこれに関連して、システム開発の途中でユーザーの声を反映させることが難しい点はデメリットと言えるでしょう。

 

■アジャイル開発

アジャイル開発は、機能ごとにシステム開発の工程を繰り返して行う開発モデルです。

ウォーターフォール開発では、大きな枠組みの中でシステム開発の工程を一つずつ完了させながら進められますが、アジャイル開発ではシステム全体を短い期間で開発できる機能単位に分割して、機能ごとに各工程が繰り返し行われます。

そのため、開発スピードが速いという特徴があります。仕様変更の必要が出てきた時でも機能単位での開発で進められていることから他の機能への影響も少なく済みます。また、開発途中であってもユーザーの声を必要に応じて柔軟に取り入れることができることもメリットと言えます。

しかし、仕様変更に対応することで開発当初の方向性が変わってしまい、品質低下につながってしまう可能性が出てくる点はデメリットとなります。

 

なお、ウォーターフォール開発とアジャイル開発については、下記記事がありますので、ぜひご覧ください。

 関連記事:フリーランス案件はある?ウォーターフォールとアジャイルの特徴とは

 

=無料個別相談会の実施中=

 

 

・知っておきたいシステム開発で使われる略語

 

それでは最後に、システム開発で使われることがある略語についてまとめます。円滑なコミュニケーションをとるために知っておきたい略語ですので、ぜひ参考までにご覧ください。

 

・SP(System Planning) 企画

・SA(Service Analysis) 要求分析

・RD(Requirement Definition) 要件定義

・UI(User Interface) 基本設計

・BD(Basic Design) 基本設計

・ED(External Design) 外部設計

・ID(Internal Design) 内部設計

・FD(Function Design) 機能設計

・DD(Detail Design) 詳細設計

・PS(Program Structure Design) 詳細設計

・PD(Program Design) プログラム設計

・PG(Program) プログラミング

・UT(Unit Test) 単体テスト

・IT(Integration Test) 結合テスト

・PT(Product Test) 総合テスト

・OT(Operations Test) 運用テスト

 

 

・まとめ

今回はシステム開発の工程と流れについてお伝えしました。

システム開発で使われる略語についてもいくつか挙げましたのでおさえておきましょう。

また、Freetoでは、フリーランスエンジニアの案件を探している方に向けて求人案件をご用意しています。「こだわり」や「スキル・分野」、「ポジション」などから自分が求めているフリーランスとしての条件にぴったりのフリーランス求人案件を検索することができます。あなただけの専任コンサルタントがフリーランスのエンジニアとして理想のキャリアを実現できるようにサポートします。現在エンジニアとして働いていてフリーランスになりたい方、既にフリーランスだけど自分に合った求人案件を探している方は、無料での個別相談会も行っていますので是非お気軽にご相談ください。

 

=無料相談会の詳細はこちら=

 

個別相談会イメージ

私たちプロのコンサルタントが
あなたの独立をサポート・支援します。

これからフリーランスになりたい方に向けて
専任のコンサルタントがあなたの理想のキャリアを
実現するために、無料で個別相談会を行っています。

個別相談会の情報はこちら