システム開発とは、企業や社会が抱える課題を解決するために、要件の整理から設計・プログラミング・テストを経てシステムを完成させるまでの一連の活動のことです。業務システムやWebサービス、スマートフォンアプリなど、幅広い分野で行われています。
現実世界に例えると、システム開発は家を建てる工程のようなものです。設計図を描き、基礎を固め、骨組みを組み、内装を仕上げてようやく引き渡しに至るように、システムも段階を踏んで少しずつ形になっていきます。
開発の主な工程
システム開発は、一般的に「要件定義」「設計」「開発(プログラミング)」「テスト」「リリース」「運用保守」という工程を順に進めていきます。工程ごとに担当する作業内容や成果物が異なり、前の工程の内容が後工程の土台になります。
| 工程 | 主な内容 |
|---|---|
| 要件定義 | 発注者の要望をヒアリングし、実現する機能や範囲を整理する |
| 設計 | 画面や機能の仕様、データベースの構造などを具体化する |
| 開発 | 設計内容にもとづき、プログラムを実際に書いていく |
| テスト | 不具合がないか、仕様通りに動くかを確認する |
| リリース | 完成したシステムを本番環境へ展開し、利用を開始する |
| 運用保守 | 稼働後の不具合対応や機能追加を継続的に行う |
代表的な開発モデル
開発の進め方には、大きく分けて「ウォーターフォール型」と「アジャイル型」という2つのモデルがあります。ウォーターフォール型は工程を上流から下流へ順番に進める方式で、アジャイル型は短い期間で開発とリリースを繰り返しながら少しずつ機能を追加していく方式です。
開発に関わる主な職種
システム開発の現場には、要件をまとめる「システムエンジニア(SE)」、プログラムを書く「プログラマー」、進行を管理する「プロジェクトマネージャー(PM)」など、さまざまな職種の人が関わります。役割を分担することで、大規模な開発でも効率よく進められます。
発注・体制の形
システム開発は、自社で内製するケースのほか、外部の会社に丸ごと任せる「受託開発」や、技術者を常駐させて支援する「SES」といった形で進められることもあります。予算や社内のリソースに応じて、最適な体制が選ばれています。
開発規模の違い
開発の規模は、個人が短期間で作る小さなツールから、数百人規模のチームが何年もかけて手がける基幹システムまで幅広く存在します。規模が大きくなるほど、関わる人数や工程の管理がより重要になります。
品質を左右するテスト
完成したプログラムが正しく動くかを確認するテスト工程は、システムの品質を大きく左右します。細かい機能単位で確認する「単体テスト」から、システム全体を通して確認する「総合テスト」まで、段階を分けて行うのが一般的です。
リリース後の運用・保守
システムは、完成して終わりではなく、実際に使われ始めてからの「運用・保守」も欠かせない工程です。不具合の修正や、利用状況に応じた機能改善などを継続的に行うことで、長く安定して使い続けられます。
システム開発を成功させるポイント
システム開発を円滑に進めるには、要件を早い段階で明確にし、発注者と開発者がこまめに認識をすり合わせることが欠かせません。仕様の解釈違いや後工程での大きな手戻りを防ぐことが、期間内・予算内での完成につながります。
システム開発の工程を表す略語一覧
要件を決める工程
| 略語 | 日本語 | もとの英語 |
|---|---|---|
| SP | システム企画 | System Planning |
| RD | 要件定義 | Requirement Definition |
| SA | システム方式設計 | System Architectural design |
設計の工程
| 略語 | 日本語 | もとの英語 |
|---|---|---|
| BD | 基本設計 | Basic Design |
| UI | 基本設計・外部設計 | User Interface design |
| SS | 構造設計 | System Structure design |
| FD | 機能設計 | Function Design |
| DD | 詳細設計 | Detail Design |
| PS | 詳細設計・内部設計 | Program Structure design |
| PD | プログラム設計 | Program Design |
作る工程
| 略語 | 日本語 | もとの英語 |
|---|---|---|
| PG | 製造・プログラミング | Programming |
| CD | コーディング | Coding |
テストの工程
| 略語 | 日本語 | もとの英語 |
|---|---|---|
| UT | 単体テスト | Unit Test |
| IT | 結合テスト | Integration Test |
| CT | 結合テスト | Combined Test |
| ST | システムテスト・総合テスト | System Test |
| PT | 性能テスト | Performance Test |
| OT | 運用テスト | Operation Test |
| UAT | 受入テスト | User Acceptance Test |
設計とテストの対応
| 決めた工程 | 確かめる工程 | 何を確かめるか |
|---|---|---|
| 要件定義(RD) | 受入テスト(UAT) | 求めたものができているか |
| 基本設計(BD・UI) | システムテスト(ST) | 全体として動くか |
| 詳細設計(DD・PS) | 結合テスト(IT) | つなげて動くか |
| 製造(PG) | 単体テスト(UT) | 部品ごとに正しく動くか |
この対応関係を図にするとアルファベットのVの形になることから、「V字モデル」と呼ばれています。決めた工程と、それを確かめる工程が向かい合う関係にあります。
あわせて知っておきたい用語
- 要件定義:
開発の最初に、実現したい機能や範囲を整理する工程です。 - ウォーターフォール開発:
工程を上流から下流へ順番に進めていく開発手法です。 - SE(システムエンジニア):
要件整理やシステム設計を担当する技術者です。 - SES:
技術者を客先に常駐させて開発を支援する契約形態です。

コメント