IT工程とは?開発工程モデル4種とその具体的な流れを丁寧に解説
「IT工程ってなんだろう」
「IT工程ってどんなものがあるのか知りたい」
と思うことはありませんか?
ITについての学習を始めようとしても、用語がわからず、どうすれば良いかで迷ってしまいますよね。
では、IT工程とはなんのことで、関連性のある用語にはどのようなものがあるのでしょうか?
そこで今回は、
- IT工程とは?
- 開発工程のモデル
- 各工程の流れ
について詳しく解説します。
この記事を読めば、開発工程の全体像とその流れがわかります。
ぜひ最後まで読んでみてくださいね。
IT工程とは
IT工程とは、システム開発の工程のひとつで、結合試験のことを言います。
なぜIT工程というのかというと、結合試験(IT)がIntegration Testの頭文字をとったものだからです。
一般的なITとは、Information Technologyの略として使われることが多く、IT工程のITとは異なります。
IT工程とは、各システムを一緒に動かしたときに正常に動作するのかを試す、開発工程のひとつなのです。
システム開発工程のモデル4種
システム開発の工程のモデルをご紹介します。
それぞれの開発プロセスを知り、IT工程の理解を深めましょう。
- ウォーターフォール・モデル
- アジャイル開発モデル
- プロトタイプモデル
- スパイラルモデル
それぞれの概要をご説明します。
1.ウォーターフォール・モデル
ウォーターフォール・モデルとは、開発のための作業を複数の工程に分けたうえで、開発を進める方法です。
複数の工程に分けるのは、計画しやすく、その進捗が確認しやすいからです。
開発の中で、上流・下流と言われるのはこのモデルのことで、ウォーターフォールという名のごとく、水が上流から下流に流れていくことをイメージしています。
ウォーターフォール・モデルとは、各工程でやるべきことが多いのがデメリットですが、チームとして動く場合などには全体が把握しやすく便利な手法です。
2.アジャイル開発モデル
アジャイル開発モデルとは、システムが持つ機能それぞれで、計画からテストまでを繰り返す、システムやソフトウェア開発で主流になっている手法のひとつです。
なぜアジャイル開発と呼ばれるのかと言うと、その名のとおり、素早く、機敏なことが特徴の手法だから。
ウォーターフォール・モデルのように、システム全体の要件が決まるまで設計や実装、テストがおこなえないわけではありません。
それぞれの機能単位で、繰り返し検証できるので、変化にも強いのが、その採用される理由です。
アジャイル開発モデルとは、ウォーターフォール・モデルと並んで、主流となっているシステム開発手法です。
3.プロトタイプモデル
プロトタイプモデルとは、ユーザーから試作品のフィードバックを得ながら、実際のプロダクトを開発する方法です。
顧客のニーズやシステムの要件が固まってないときでも、ひとまずのテスト品でイメージが湧きやすいのがその特徴になります。
実際に開発の現場では、顧客の意見が開発の最中に変わることも少なくありません。
テスト品を触ってもらうことで、現実的なシステムが作りやすくなるのがそのメリットです。
4.スパイラルモデル
スパイラルモデルとは、開発予定のシステムを複数のサブシステムに分け、それぞれのサブシステムごとに設計からテストまでを繰り返す手法です。
なぜ複数のサブシステムに分けるかと言うと、大規模なシステムでは、その完成まで待っていると、顧客の確認まで、長い時間がかかってしまうから。
主にスパイラルモデルでの開発の流れは以下のとおりです。
- システムを複数のサブシステムに分割する
- サブシステムのひとつ目を開発し、依頼主に確認を求める
- 1つ目のフィードバックを踏まえて、サブシステムの2つ目の開発に臨む
- サブシステム2つ目の確認を依頼する
複数のシステムに小分けすることで、それぞれの機能について、短いスパンで確認・検証ができるようになるのです。
ウォーターフォール・モデルの流れ
システム開発工程の中でも主流の手法であるウォーターフォール・モデルについて見ていきます。
多くの企業で取り入れられている方法なので、知っておくべき手法です。
それぞれのステップを詳しく見ていきましょう。
1.要件定義:RD-UI
要件定義とは、英語ではRequirements Definitionと表記され、顧客の要望を定義するフェーズになります。
なぜ要件定義を最初におこなうかというと、顧客からの注文を正しく把握しなければならないから。
どのような機能を実装すべきかを判断するためにも、どのような要求があるかをまとめなければなりません。
実装する機能をどうするかは、この要件定義により決まってくるのです。
2.基本・詳細設計:BD/DD
基本・詳細設計では、要件に基づいた機能を定義して、プログラムをどのように組み込むかを決めていきます。
基本設計・詳細設計は、顧客の要求を具体的な機能に落とし込んでいく段階のことです。
顧客からの要求でシステムの設計書を作り、プログラミングをおこなうエンジニアへと指示を出していきます。
3.プログラム設計:PD
プログラム設計とは、実際にプログラミングをおこなう直前の工程で、動作や処理の詳細を定義していくこと。
詳細設計で示された機能が、実際にどのような流れで実現できるのかを具体的に見ていく必要があるのです。
例えば、以下のような方法を用いて、定義していきます。
- アクティビティ図
- シーケンス図
- フローチャート
具体的な流れを視覚的にわかりやすくするのが、プログラム設計です。
4.プログラミング
システム開発におけるプログラミングの工程とは、実際にプログラミング言語を用いて、プログラムを作成していく段階のことです。
設計はあくまでも概要図なので、それをプログラムとして動くように組み立てていくのが、プログラミング工程になります。
実際にプログラマーが活躍するのは、こちらのフェーズで、システムにより以下のような言語を用いて、プログラムを作ります。
- Java
- C言語
- Python
同一の言語だけでなく、機能により、さまざまな言語を用いることも多いです。
5.単体テスト:UT
単体テストとは、英語ではUnit Testと表記され、各機能それぞれでおこなわれる小規模なテストのこと。
全体で連動するかをテストする前に、各機能でエラーが発生しないかを調べるのが目的です。
単体テストの手法では、以下のようなものが使われます。
- ホワイトボックステスト:動作をチェックするためのテスト
- ブラックボックステスト:仕様を満たしているかをチェックするテスト
単体のテストで問題があれば、それぞれの機能について、修正をかけていきます。
6.結合テスト:IT
結合テストとは、Integration Testのことで、各機能を同時に動かしたときに問題がないかを調べるものです。
各機能が正常でも、その連結箇所で不具合がある可能性があります。
単体テストでおこなったモジュール同士だけでなく、外部モジュールとの連動も試されるテストです。
実際にプログラムが動くかどうかは、この結合テストで確認します。
7.運用テスト:OTO
運用テストとは、Operations Testと表記され、本番直前にユーザー側が実施するテストのこと。
開発者側が機能のテストを完了させても、実際にユーザーが使ってみて不具合がないかを調べる必要があるのです。
例えば、以下のようなポイントでテストを実施していきます。
- ユーザーが操作する画面で不具合はないか
- サービスの開始や終了時に誤作動はないか
- データの保存周りなどで、想定どおりに動作しているか
運用テストをクリアして初めて、実稼働に近づけるのです。
8.システム移行
システム移行とは、運用テスト完了後、実際にシステムを動かす環境へ、システムを移行することをいいます。
運用テストまでは、開発用の環境でおこなっているのを、実際にサービスを動かすサーバーやOSに動かすのです。
システム移行の手順は以下のとおり。
- 移行の計画を立てる
- 移行するデータの調査をおこなう
- 移行プログラムを作る
- 移行のリハーサルをする
- 移行を実行する
開発環境でうまくいったからといって、本番環境でも成功するとは限りません。
ひとつずつ丁寧に準備を進めていく必要があります。
9.システム運用
システムの運用にまわるということは、システム自体をユーザーに納品し、システムがリリースされたことを意味します。
開発者は、リリース後のシステムを運用・保守する立場になるのです。
とくにリリースの直後は想定外のトラブルが起こることも多く、目が離せません。
システム運用は、システムトラブルへの対応や、システム自体のアップデートをおこなっていく工程になります。
コーディングテストとは?テスト対策方法から試験監督が見ているポイントも解説アジャイル開発モデルの流れ
こちらでは、アジャイル開発モデルの流れについても、見ていきましょう。
なぜなら、アジャイル開発もシステム開発で主流と言われる手法のひとつだからです。
- 計画の策定
- システム計画の分割
- イテレーション
ひとつずつご説明します。
1.計画の策定
アジャイル開発においての計画とは、各機能ごとにおこなうイテレーションの前準備として、必ず最初におこなうべきものです。
なぜ最初におこなうべきかというと、各機能ごとに複数のイテレーションを繰り返すため、その目的や方法が明確でなければならないから。
具体的には以下のようなものを決めていきます。
- どのような機能についての開発をおこなうか
- 開発のスケジュール
- 開発の目的
計画の策定は、複数名のチーム全体で話し合いながら決めていきます。
2.システム計画の分割
計画の策定が完了したら、その計画を各担当に割り振って、分割します。
細かく分けることで、同時並行で、複数の検証ができるようになるのです。
これらの進捗は、イテレーションが行われた後に、デイリースクラムという短いミーティングで毎日共有します。
お互いの進捗や結果に応じて、細かな修正をしながら進めていくのです。
3.イテレーション
計画とその役割が決まり、実行に移すことをイテレーションと言います。
別の名をスプリントといい、デイリースクラムで進捗を確認しながら、日々のタスクを繰り返し実行していくのが、その名の由来です。
出てきた成果物をプロジェクトオーナーへ確認し、次へつなげていきます。
アジャイル開発では、小さなイテレーションを繰り返して、大きなプロジェクトを完成させていくのです。
SE(システムエンジニア)とは?仕事内容・スキル・年収・資格など徹底解説システム開発の工程でよく使われる用語5選
システム開発の工程で使われている用語も見ていきましょう。
用語がわからなければ、各工程でやるべきこともあいまいになってしまいます。
- システムプランニング
- 構造設計
- 機能設計
- 製造
- コーディング
ひとつずつご覧ください。
1.システムプランニング
システムプランニングは、ほかの呼び名ではロードマップなどといい、計画や企画を意味する用語です。
なぜここでご紹介しているかというと、開発工程の中で、目的に向けた行動計画の場面などでよく使われるから。
もちろんITの分野だけでなく、ビジネス全般でよく使われる言葉なので、知っておくべき用語のひとつといえるでしょう。
2.構造設計
構造設計とは、開発の現場では、システム構造設計とも呼ばれ、システムの機能をどのように実装していくのかを決める段階をいいます。
構造設計があることで、特定の機能がなぜ存在するのかが明確になります。
具体的には、以下のようなことをおこないます。
- フローチャートの作成
- 画面の詳細項目の確認
- データベースの設計
クライアントの要望と解決策の機能を結び付けていくのが、構造設計といえるでしょう。
3.機能設計
機能設計とは、基本設計の一部とされることがある、機能の仕様を定義する工程のことです。
機能設計をおこなうことで、実装する機能を使用者の立場から確認・定義できます。
主には以下のようなことを決定していきます。
- 画面のレイアウトや操作方法
- 発行する帳票の設計
- 取り扱うデータやファイルの仕様
機能設計により、使用者がどのようにその機能を使えるかで、システムを設計できるようになるのです。
4.製造
システム開発における製造とは、内部設計やプログラム設計を元に、実際にプログラムを作っていく工程のこと。
システムに必要なモジュールを作成していく工程で、具体的にシステムが形になっていく段階です。
製造のあとには、テストでその内容を検証し、必要であれば再度製造の工程に戻り、修正をおこなうこともあります。
製造は、実際にシステムを形作る大切な工程で、プログラミング工程の一部とみて良いでしょう。
5.コーディング
コーデイングとは、プログラミング工程の中でも、プログラミング言語を記述する行為のことを指します。
プログラミングはコードを書くだけではなく、その前後の設計や検証も含まれた言葉で、コーディングは実際にコードを書いていくことを意味するのです。
具体的に以下のようなプログラミング言語を使って、コードを書いていきます。
- HTML
- CSS
- JavaScript
- C++
プログラミング工程の中に、コーディングが含まれていると考えておけば、間違いありません。
WEB制作の基本HTMLとは?今からでも遅くない!必ずわかるWEB知識まとめ:IT工程とは、システム開発における工程のひとつ
当記事では、IT工程とは何かや、そもそもシステム開発の工程にはどのようなものがあるかを見てきました。
- IT工程とは、開発工程中の結合テストのこと
- システム開発の工程は、主に4種類ある
- ウォーターフォール・モデルとアジャイル開発モデルは、開発方法が異なる
IT工程のITとは、結合テストを意味する、Integration Testの略称です。
よく使われるInformation TechnologyのITとは異なるので、気を付けましょう。
開発の工程を正しく理解することで、システム開発者として、柔軟に対応できるようになります。
ぜひ主要な開発工程については、その流れを覚えておきましょう。