ソフトウェアのプロダクト(下流工程)

Hiro_Matsunoです。
今回はソフトウェアの詳細設計・開発・テスト・ビルドまで書いてみようと思います。
難しい言葉が出てくるかもしれませんがその点はご了承ください。

○詳細設計
この作業では実際に開発に利用するための本格的な設計を行います。
例えばデータベースからどのデータを読み込み加工し登録するなどの登録・更新部分やデータを消したい対象を選び削除する機能だったり色んなソフトウェア上で必要な機能の内容を決めていきます。

このあとプログラム言語をどの言語を使いプログラミングするかを決めたりもします。
改良の場合はプログラム言語の決定はありません。
改良対象に使われているプログラム言語を使います。

画面設計は画面を設計するのですが実際の場合上流工程で画面の構成が決まっているのでその画面を実際にどのように落とし込みをするのかを決めます。
実際の画面設計ではほぼ開発ソフト側で画面を先行して作成しながら設計することが多いです。

データベース設計
ここが一番の肝です。
データベースのデータをどのようにするかを決めます。
データベース設計後確認を行い関連性のあるデータにリレーションと呼ばれる関連項目を追加します。
データの中身のないときの設定はこの時点で決定します。
仕様変更もあり得るので注意が必要です。

○開発
・データベースを作成
実際のデータを入れるためのデータベースとテーブルを作成します。
このときにデータの中身のないときの処理を決定し設定項目に追加します。
これが大きな問題に発展することもあるので注意が必要です。
実際に楽だからということで項目変更されたことがあります。
この場合開発しているソースコードに大規模な影響が出るので注意が必要です。
私は悩まされました。

・データベースAPIの作成
データベースに接続するためのソースコードを作ることを言います。
私の場合データの修正・データの削除・データ読み込み・データ追加の各種APIを作り込みすることで楽をしていました。

・プログラムコーディング
実際のプログラムを作る作業のことを言います。
この部分で論議を呼びコードを書いたりすると開発責任者から怒られます。というか私も怒ってました。
一番良いのは綺麗にコーディングをすることでコーディングコメントはなるべく少なくわかりやすく書くことが重要になります。
これが出来ない人も開発責任者から怒られます。
必ず上司にレビューしていただきましょう。
レビュー無しで行うと一部だけ動かないプログラムが存在することになります。

・画面とプログラムを結合
この部分はプログラムと実際の画面とを結合する作業のことを言います。
実際の画面の項目とあっていることとボタンにて動作するものに関しては呼び出しができるように設定することが重要になります。
これで間違える人もいました。

・単体テスト
これはプログラム単体が問題なくお客様の要望にあっているかと正常性を確認するために行うテストです。
テスト項目は必ず上司にレビューを行っていただきます。
問題なければ実際にテストを行い問題が発生した場合はコードを修正し再テストを行います。
すべてが問題がなくなったら結合テストに移ります。

・結合テスト
結合テストとは一回の開発で複数のプログラムが作成されるのでこれらをすべて結合してテストをすることです。
テスト項目は上司にレビューを行っていただきます。
問題なければ実際にテストを行い問題がないことを確認します。
問題が発生した場合修正を行い単体テストから再度実施します。
すべての問題がなくなったら終了です。

Webプログラムの場合はこの時点でソース管理に登録を行い終了します。

・ビルド
全部のプログラムを結合し一つのソフトにコンパイル(翻訳)を行います。
これを行わないと実際のソフトウェアとしては成り立たないので必ず行います。
失敗する場合はコードに問題があるかそれとも設定に問題があるので確認が必要です。

ちょっと余談
これ怖い話なんですがソース管理ソフトによっては個別管理ができるものがあります。
Gitがその例なんですがリモートソースとローカルソースが管理できます。
たまにリモートソースを強引に変えてしまい自分たちが作っていたソースプログラムが送り込めなくなることがあります。
そのことをコンフリクトといいこれをやられると原因特定を行いながら全部入れ直しまたは問題のソースプログラムをもとに戻す作業を行うことがあります。
これが多発すると忍耐力も精神力もなくなることがあるのでGitを使っている人注意してください。
開発途中のものをなるべくDevelop用のリポジトリーに入れておくことをおすすめします。
本管理に入れたら大変なことになりますからね。

Hiro_Matsunoでした。

また、明日。

この記事が気に入ったらサポートをしてみませんか?