LoginSignup
0
0

More than 1 year has passed since last update.

[備忘録]システム開発の流れの把握とプロジェクトに参画して感じたこと

Last updated at Posted at 2023-02-28

はじめに

V字モデルとはシステム開発の工程を図式化したものですが、当時の実務未経験者の立場では、言葉からイメージはできても、実際に何をしているか理解できていませんでした。今回は、実際に少しの開発経験と少しのテスト経験を経て感じたことや重要だと思ったことを殴り書きしていきます。

下記画像は、V字モデルを元に当方で作成したものになります。(フリー画像としてお使いください。)
スクリーンショット 0005-02-28 21.04.29.png

V字モデルでは、上記の画像のように左側の工程が←→繋いでいる右側の工程が対応している図となっています。

工程概要とプロジェクトに参画して感じたこと

V字モデルはシステム開発の基本!概要やメリットを解説を参考に記載しております。

要件定義とシステムテスト

V字モデルでは最初に要件定義を行います。
要件定義では、どのような仕様にするか、必要な機能は何かを洗い出す作業です。
開発内容をより明確にし、開発計画を立てやすくする大切な工程のため、きっちり行いましょう。
要件定義に対応するテストは、V字の最後に位置するシステムテストです。
システムテストは総合テストとも呼ばれ、要件定義の内容に沿った開発ができているかをチェックします。
機能的な要件はもちろん、運用やセキュリティなどの機能以外の部分もチェックし、プログラム全体でおかしいところがないかを総合的に確認する段階になります。

上記のように記載されています。

要件定義で重要なのが、お客様の要望を全て実現してしまうのは単なる要求であり、要件定義では本当に必要な要件のみの開発をお客様と合意した上で定義している必要があります。

例えば、お客様に「本当にこの機能は必要ですか?」と質問した際に、「どちらかと言えば欲しい」というような返答の場合は、必要ではない可能性が大きいと考えられます。

開発には膨大なコストと時間を要するため、流行るサービス・売れる製品なのか分からない段階で充実した機能を盛り込むのはリスクを伴います。経験豊富な先輩からのアドバイスと個人的な意見ですが、できるだけシンプルかつ最小限で開発を進めていくのが良いと考えています。

基本設計と結合テスト

基本設計とは、要件定義の内容を実際の機能に落とし込む作業です。
具体的には、画面に表示する内容やレイアウト、画面遷移などを決めていきます。
ただし、スピード感を重視するアジャイル開発を行っている場合は詳細な設計書を作成せず、作成したらすぐに動作テストという形で開発を進める場合もあります。
基本設計はいくつかのプログラムが組み合わさっている場合が多いため、結合テストでは複数のプログラムが「結合」していても基本設計通りに動くかどうかをテストします。

当方では基本設計には関わったことがありませんが、以前に結合テストの工程に関わったことがあります。その中で特に強く感じていたことは、基本設計時に作成される成果物である設計書の重要性です。

テスト設計書を作成するには、そのテスト結果が正しいと言える根拠が必要です。根拠の元となる設計書が作成されない段階で開発が進み結合テストとなると、テスト仕様書の作成時に根拠となる資料がなく、設計書の作成を待つ時間コストや曖昧な根拠を元にテストをしてしまい製品の品質を担保することができなくなってしまいます。

そのため、個人的な意見ですが、プロジェクトに入った際に設計書がない場合は、どのロールの人物でも早めに設計書作りを周りに呼びかけることが良いと考えています。

詳細設計と単体テスト

詳細設計では、基本設計で明確にした情報や機能を達成するために、どのようなプログラムを書けばよいか決定します。
単体テストは、詳細設計で決めた各プログラムがきちんと動作をするか、文字通り単体で確認するテストです。
操作方法や条件など考えられるパターンをできる限り数多くシミュレーションして、ロジック通りに作動するか否かを確認します。

この工程については、当方の経験が無くあまり言えることがないのですが、詳細設計と単体テストがしっかり成されていることで、結合テストでのバグは圧倒的に減るものであると感じております。

つまりは、詳細設計で機能の処理や動作、エラーハンドリングなどについて細かく考えられていると、単体テストで抜け漏れが少なくなり、結合テスト時には結合の観点でテストを実行できるからです。

当たり前のことを言っているかと思われますが、プロジェクトによっては単体テストが実施されておらず、結合テスト時に単体レベルのバグが見つかることが多々ありました。経験談からしても、基本設計同様に詳細設計が十分になされていることがテスト工程を問題なく流せるコツだと感じております。

まとめ

実際にプロジェクトに参画することでシステム開発の全体の流れを掴むことができ、それぞれの工程の重要性を少しずつ理解できるようになりました。まだまだ半人前の未熟者ですが、精進していきたいと思っています。開発経験の多い先輩方、厳しいご指摘の程よろしくお願い致します。

参考文献

この記事は以下の情報を参考にして作成しております。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0