システムの規模が大きくなるにつれて、手当たり次第にシステムを作り上げることは困難になり、システム開発の体型立てた枠組みが必要になりました。このような枠組みとして、JIS X0160:2021で定めているソフトウェアライフサイクルプロセスや共通フレームがあります。いずれも、システムの構想から開発、運用、保守、廃棄までまでの各段階で、どのような作業が必要か、作業の役割は何かを規定した「ITシステム開発の作業規定」とも言える枠組みです。
また、これらの枠組み以外にも、システム開発工程の流れを標準化した開発モデルがあります。代表的な開発モデルとして、ウォータフォールモデル、スパイラルモデル、プロトタイプモデルがあります。
1:ソフトウェアライフサイクルプロセス
ソフトウェアライフサイクルプロセスとは、システムの構想段階から、システムを引退させる段階までにおいて、ソフトウェアをどのように設計し、開発して、保守するのかという過程を体系立ててまとめたものです。JIS X0160:2021という規格で定めています。
ソフトウェアライフサイクルプロセスは、以下のようになります。
①システム要件定義 ソフトウェア要件定義:システム全体やシステムを実現するソフトウェアについて、機能要件や非機能要件を定義する。
②システム設計:システムの機能をハードウェア、ソフトウェア、サービスなどに分割し、システムの処理方式を決定する。
③ソフトウェア設計:ソフトウェアを構成する部品(モジュール)とソフトウェアの構造を設計する。
④実装・構築:ソフトウェアを構成する部品(モジュール)をプログラミング(コーディング)する。作成したプログラムが、単体として、正しく動作するかをテストする。このようなテストは、単体テスト(ユニットテスト)という。
⑤結合・テスト:ソフトウェアを構成する部品(モジュール)が、正しく連携して動作することを確認するために、結合テストを実施する。また、システムが仕様を満たしていることを確認するために、検証テストを実施する。
⑥導入・受け入れ支援:システムを運用環境に導入して、運用環境下でユーザの意図通りにシステムが動作することを確認するために妥当性確認テスト(受け入れテスト)を実施する。いわゆる、試運転である。
⑦保守・廃棄:機能追加、性能向上、バグ修正などのシステムの保守作業を行う。使わなくなったシステムを廃棄する。
機能要件とは、システムやソフトウェアが備えるべき機能をまとめた要件です。非機能要検討は、機能要件以外のすべての要件のことです。日機能要件として代表的なものに、性能(スループットやレスポンスタイムなど)、信頼性(稼働率や故障率など)、セキュリティレベルがあります。