自分らしく働く
2018.07.05

システム開発の工程や成果物、略語などまるごと解説!

  • このエントリーをはてなブックマークに追加
BY 澤田和泉

Webサービスやソフトウェアを作ることを「システム開発」といいます。どのようなシステムを作るかを定義することから始まり、プログラミング・テスト、運用などさまざまな工程を経てシステムが完成します。

本記事では、システム開発の工程と得られる成果物について解説していきます。システム開発の工程について知りたい方、システム開発に関する英語表現を知りたい方は、ぜひ参考にしてみてください。

システム開発の工程とは?

システム開発とは、業務の内容に合わせたコンピュータシステムを構築することです。開発されたシステムが業務を効率化・最適化します。

システム開発は、IPA(情報処理推進機構)が定めた「共通フレーム」というガイドラインにのっとって行われます。システム開発に関する専門用語や作業内容が業界で統一されているのは、会社間の認識の違いやトラブルを予防するためです。

共通フレームでは、システム開発の作業を8つの工程に分けています。ソフトウェアやアプリケーション、WEBサイトなど、ITのものづくりは必ずこの工程を経ています。

本章では、仕事の始まり(上流工程)から納品後のサポート(下流工程)まで、システム開発の8つの工程を解説していきます。

要件定義

システム開発は要件定義から始まります。要件定義では、要件定義書と見積もり書を作成します。要件定義書とは、システムの目的や開発期間、システムの性能、導入や運用方法など、システム開発に必要な「要件」をまとめた書類です。クライアントとエンジニアが打ち合わせを重ね、要件定義書の内容を整理し、確定します。

システム開発は要件定義書に基づいて進行していきます。トラブルを防ぐために、双方が納得できるように内容をすり合わせなければなりません。

基本設計(外部設計)

要件が確定したら、基本設計の工程に進みます。基本設計では、要件定義書を元にシステム内容をまとめた基本設計書を作成します。

基本設計書は、図やデータなどを入れて作成されたシステムの設計図です。クライアントは基本設計書を見て、システムの仕様やシステム導入後の業務改善方法を理解します。エンジニアがクライアントに向けて作成する書類なので、原則として専門用語や複雑なデータは記入しません。

基本設計書は、システムの機能ごとに作成されます。各機能を担当するエンジニアが設計書を完成させ、システム開発会社のなかで相互にフィードバックし改善。その後、完成した基本設計書をクライアントに共有し、システムの完成図を把握してもらいます。

詳細設計(内部設計)

システムの内容や完成図をクライアントと共有した後は、システム開発会社内で詳細設計書を作成します。基本設計書がクライアントのためのシステム解説用文書だとしたら、詳細設計書はエンジニアやプログラマのための作業用文書です。

詳細設計書は依頼されたシステムをどのように実現していくのかを具体的に指示する書類で、処理ロジックや変数など、プログラミングに必要な情報が記載されています。

開発(プログラミング)

設計の工程が終われば、いよいよシステムを製造する工程に入ります。詳細設計書を元に、プログラマがコーディングしていきます。

良い詳細設計書にはプログラムの仕様が細かく書き込まれており、どのプログラマがコーディングしても同品質のシステムができ上がります。しかし、曖昧な表記が多い詳細設計書の場合、プログラマによって設計書の解釈が異なってしまいます。その結果、システムに不具合が生じてしまうことがあります。

単体テスト

プログラムが完成し製造工程が終われば、テスト工程に移ります。詳細設計書通りにプログラムが動くかを検証します。プログラマは不具合が見つかったら修正をし、システムエンジニアはシステムのルールやテスト結果のフィードバックを行います。

総合テスト

プログラムの作動確認が終わった後は、単体テストで確認したプログラム動作が、システムとして基本設計書通りに機能するかを検証します。

具体的には、大量アクセス時に耐えられるか確かめる負荷テストや、安全性が保たれている確かめるセキュリティテストなど、いくつかの項目に分けて検証されます。

運用(システム)テスト

単体テスト、総合テストを経た後、最終的にシステムが実際に運用されるのと同じ環境でテストを実施します。運用テストにより、テスト環境下では発見できなかった不具合を発見し、修正します。

運用・保守

システムが完成したらクライアントに納品しますが、仕事はまだ終わっていません。実際にシステムを動かし、不具合が起こらないように監視する運用・保守の最後工程に進みます。システムが稼働していることを確認する作業が運用、不具合が起きた時に対応する作業を保守と呼びます。

運用はシステムのログをチェックしたり、サーバの起動・停止をしたりなど、日々の管理を行います。運用の最大の目的は、システムが担う業務が滞りなく行われるようにすることです。

一方、保守ではシステムの不具合修正や予測、調整など、システムに異変があった際に手を加えます。システムが問題なく動くように、根本的な問題解決に努めるのが保守であるとも言えます。

システム開発工程で有名なモデル

システム開発には、いくつか決まった進め方があります。ここでは、ウォーターフォール型開発とアジャイル型開発の2種類の開発モデルについて紹介します。

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

ウォーターフォール型開発では、開発工程を順番に進めていきます。原則として前の工程に戻ることはしません。多くのシステム開発で採用されている方法で、最もスタンダードな開発モデルです。

ウォーターフォール型開発は、段階的に開発を進めていくため、各工程の見積もりや作業がスムーズに行えるというメリットがあります。そのため、工程数が多い大規模なシステム開発に最適です。

デメリットとしては、クライアントがシステム確認をするタイミングが遅くなることが挙げられます。システム構築の終盤でミスが発覚した場合、前の工程へ戻ることになり、生産性が低くなる可能性があるのです。

V字モデル

V字モデルは、ソフトウェアの開発からリリースまでの工程を図に表したものです。それぞれの工程が対応するように、V字の左側に開発工程を、右側にテスト工程を並べます。図式化することで、実施されるテストがどの開発段階に行われているものなのかを整理しやすくなります。

また、各工程の責任者も明確になるため、システムに何か問題が生じたときの対応もスムーズに行うことができます。そのため、システムの開発とテストをそれぞれ別の企業が担当するときなど、一つのシステム開発に複数の会社が関わる場合に有効です。

V字モデルのように図で明確化することで、それぞれの工程をより正確に進めていくことができるのです。

アジャイル型開発

アジャイル型開発では、システムの不具合や修正は当然あることを前提として、短期的に実装とテストを繰り返していく方法です。ウォーターフォール型とは異なり、修正が必要となった場合に後戻りする工数が少なくなるというメリットがあります。また、短期間でテストを繰り返すため、仕様変更などがあった場合にも柔軟に対応することも可能です。

アジャイル型開発の最大のデメリットは、全体のスケジュールが把握しづらいこと。短期的な実装とテストを繰り返すため、完成時期が読みづらくなるのです。そのため、アジャイル型開発では高度なマネジメント能力が要求されるとも言えます。

システム開発工程のモデルはどう使う?

システム開発工程モデルは、作業見積もりに利用します。作業見積もりとは、作業にかかる時間を予測し、計画を立てることです。特に、システム開発をマネジメントする立場になると、工数・工期・コスト・規模など複数の作業見積もりを行うことになります。

作業見積もりをすることは簡単なことではありません。しかし、エンジニアとして、作業見積もりを正確にする必要があるのです。本章では、作業見積もりの重要性について見ていきたいと思います。

作業見積もりの重要性

作業見積もりは、自分のためだけに行うものではありません。社内のチーム等で共有し、それぞれの仕事がいつ頃終わるのかを把握するためにも利用されます。したがって、作業見積もりをしないとチーム全体に遅れが出たり、納品に遅れが出ることになります。逆にしっかりと見積もりができていれば、システム開発全体がスムーズに進めることができます。

作業見積もりをする際に大切になるのが、リスクを考えること。はじめはそこまで難易度が高くないと思っていても、実際に取り組んでみたら想定外に難易度高く工数が増えることがあり得るからです。作業見積もりを作成する際には、このように予測できないことが起こる可能性を十分に念頭に入れておくことが大切です。

システム開発工程の略語と英語一覧

システム開発では、英単語の表現を非常に頻繁に使用します。意味を知らないと作業することが難しくなるため、しっかりと覚えるようにしましょう。

システム開発工程で利用される単語を表にまとめたので、参考にしてみてください。

略語 英語 日本語の意味
BD Basic Design 基本設計
FD Function Design 機能設計
DD Detail Design 詳細設計
M Manifacture 製造
UT Unit Test 単体テスト
IT Integration Test 結合テスト
ST System Test  システムテスト

 

最終更新日
2018.08.03

新卒・中途採用 "バイリンガルエンジニア" 募集中!

IT未経験から英語を生かすバイリンガルエンジニアへと、挑戦する方を募集しています。

募集要項はこちら