こんにちは、現役SEのゆとです!
以前このような記事を投稿させていただきました。
この記事ではプログラミングの仕組みや、具体的な作業の流れ、プログラミングによってできることなどを解説しました。内容的には初心者プログラマーの方向けの内容となっています。
今回は、そこから少し踏み込んで「ソフトウェア開発の工程」について解説します!上述の記事の内容よりも、より業務的なお話になりますので、SEにこれからなる方やなったばかりの方、開発に興味のある方などに是非読んでいただきたいです。また基本情報や応用情報などの情報処理試験にも出題される内容だと思いますので、受験される方にも見ていただきたいです!それではどうぞ!
・SEになったばかりの方
・情報処理試験を受験する方
ソフトウェア開発の工程
一般的にソフトウェア開発は、「要件定義」、「設計」、「実装」、「試験」、「納品・リリース」、「運用・保守」の6つの工程で構成されます。それぞれの工程で得られた成果物が、次の工程での入力となります。
それでは詳しくみていきましょう!
要件定義
ソフトウェア開発は要件定義から始まります。要件定義とは、開発するソフトウェアの機能や性能などについて、ユーザーから求められる要件を明確に定義することを指します。
ここでは要件を洗い出し、整理と分類をし、詳細化を行っていきます。
要件定義はソフトウェア開発の初期段階として重要な作業であるため、ここが不十分ですとプロジェクトの遅延や、予算や品質に悪影響を及ぼす可能性があります。そのため開発者側とユーザー側で密にコミュニケーションを取る必要があり、とても重要な役割を果たす工程となります。
要件定義での成果物は、ユーザが求める要件をまとめたソフトウェア要件仕様書となります。
設計
次に設計工程となります。設計では、ソフトウェア要件仕様書で定義された要件をどのように実現していくかを決めます。
また設計工程は外部設計、内部設計、プログラム設計の3つに分類され、それぞれで設計対象が異なります。
外部設計
外部設計では、ソフトウェアの機能や画面など、ユーザーが直接関与し外部から見える部分の設計を行います。
具体的には機能設計、データ設計、画面設計、帳票設計などの作業が挙げられます。
外部設計での成果物は、外部設計書としてまとめられます。
内部設計
内部設計では、外部設計書の内容を受けて、開発者側の観点から実現方法を決める工程です。
システムを構成要素に分割し、それぞれの要素の役割を定め、要素間のインタフェースや処理フローを定義します。
内部設計での成果物は、内部設計書としてまとめられます。
プログラム設計
プログラム設計では、内部設計書の内容を受けて、各システムの構成要素を、具体的な処理手続が明確になるまで細分化・具体化していきます。
この作業を進めていくと、細分化されたシステムの一つ一つが小さな部品として表されます。この部品のことを開発分野ではモジュールと呼んでいます。システムをモジュール化することで、プログラムの再利用性が向上します。例えば、同じ処理が複数回実行される場合には、該当のモジュールを都度使い回すことで対応でき、プログラムの作成や修正の手間を少なくすることができます。これに関しては以前書いたこちらの記事でも取り上げています。
またプログラム設計では、そこからモジュール間のインタフェースを定義したり、各モジュール内での具体的な処理手順を決定します。
プログラム設計での成果物は、プログラム設計書としてまとめられます。
実装
設計が終わりましたら、いよいよ実装に移ります。
実装ではプログラム設計書で定められた内容を、プログラミング言語を用いてコード化(コーディング)していきます。
これに関してはこちらの記事でまとめていますので、よろしければご覧ください。
そして実装工程により作成されたプログラムのことをソースプログラム、またはソースコードと呼びます。これが本工程の成果物となります。
試験
次に試験を行います。ここでは、作成したプログラムが開発者の意図する通り動作するかを確認します。プログラムの実行結果として考え得る全ての挙動を網羅するように洗い出し、それらに対する入力値を決定します。こうして得られた入力と出力の対応関係を試験項目仕様書にまとめ、それに基づいて試験を行なっていきます。
また一般的には、試験工程も設計工程同様、段階ごとに分けられており、それぞれで確認観点が異なります。試験工程の各段階は「単体テスト」、「結合テスト」、「システムテスト」、「受け入れテスト」と呼ばれており、実装までの工程で定められた内容が適切に実現されているか、これまでの工程とは逆の順番で確認していきます。これはソフトウェア開発におけるV字モデルと呼ばれています。
納品・リリース
さて試験が終われば、いよいよ成果物を納品・リリースします。
ソフトウェア開発では必ず納期が設けられており、この納期までに成果物を納品することが、プロジェクト成功の必須条件となっています。
納品・リリースの際は、実際にシステムを利用するユーザーと開発者で、本番環境での動作確認を行うことがあります。
運用・保守
ソフトウェア開発での最終工程は運用・保守になります。
運用・保守は、納品したシステムが止まることなく正常に稼働し続けているか監視し、問題が起これば適宜対応するといった作業になります。
本工程はシステムの安定稼働のために不可欠な工程であるため、プロジェクト終了後もシステムが必要とされる限り継続的に行われます。
まとめ
今回はソフトウェア開発における各工程の解説を行いました。
これらの知識はSEとして働く上で必要不可欠な知識であると思います。
これからSEになる方、なったばかりの方はしっかりと理解しておきましょう。
また基本情報や応用情報などの情報処理試験にも出題される内容です。これらの試験を受験する方もしっかりと覚えておきましょう。
最後まで読んでいただきありがとうございました。それではまた!
コメント