- 開発工程の概要及び具体的な作業の把握
- 全体の意思を統一して作業を均質化
3.開発プロセスの作成(その1)
開発プロセスとは、「開発作業を進めるための指針」を規定して以下の内容を実現します。
まず作業の指針を決めるために以下の内容及び関連を明確にします。

a.工程の定義
開発工程の位置づけ及び定義を明確にします。一般的に広く使用されているウォーターフォールモデルの場合、以下のようになります。
| カテゴリー | 工程 | 工程の定義 |
| 要求分析 | 要件定義 | ユーザがシステム化の目的を達成するために、どのような機能を提供するか(WHAT)を明確にします |
| 設計 | 基本設計 | ・ユースケースに基づきプログラムに分割し、システムの内部構造を確定します ・画面や帳票などの外部インターフェースを定義します |
| 詳細設計 | プログラムの内部構造を確定した上で、プログラムに実装するロジックを定義します | |
| 開発 | プログラミング | 詳細設計に従いプログラムを作成します |
| テスト | 単体テスト | 単体テスト仕様に従い、プログラム単位のテストを実施し品質を検証します |
| 結合テスト | ・プログラムを結合し結合テスト仕様に従い、ユースケース単位のテストを実施し品質を検証します ・全ユースケース間のインターフェースを確認します(外部システムとのインターフェースを含む) |
|
| システムテスト | 性能、信頼性、運用性、セキュリティ等、システム全体の検証を行います | |
| 運用テスト | 本番環境、本番データを使用しユーザによる仮運用を行い、実業務との妥当性を検証します | |
| 移行 | 移行 | 本番稼動に向けて各種移行(データ・機器など)を行います |
b.役割の定義
開発における組織体制及び各組織の行動指針を明確にします。一般的な開発体制における役割は以下のようになります。

| 役割 | 役割の定義 | 作業内容 | |
| 業務開発 | システムのアプリケーション設計・実装を行います | ユースケース設計・DB設計など | |
| 業務支援 | フレームワーク | ・業務開発が使用するフレームワークの処理設計を行います ・フレームワーク使用時のサポート(作業手順など)を行います |
処理設計・性能設計など |
| インフラ | システムのインフラ設計を行います(開発環境も含む) | インフラ設計など | |
| 開発管理 | ・業務開発の作業全般に関して標準化の規定及び適用を推進します ・各種成果物の管理を行います |
開発標準化・構成管理など | |
これらのうち、業務支援の位置づけ及び行動指針は以下のようになります。
【業務支援の位置づけ】
(1)開発支援
・開発標準化(WBS、成果物など)の規定と適用
・構成管理、リポジトリ管理、文書管理の実施
・開発及び本番環境の構築
(2)処理方式の提供
・ミドルウェア、フレームワークの検討及び選定
・オンライン処理方式(トランザクション制御、排他制御、ログ出力)の設計
・バッチ処理(多重化、リラン)の設計
・エラー/異常処理方式の設計
・プロトタイプを作成し処理方式の適用を推進
(1)開発支援
・構成管理、リポジトリ管理、文書管理の実施
・開発及び本番環境の構築
(2)処理方式の提供
・オンライン処理方式(トランザクション制御、排他制御、ログ出力)の設計
・バッチ処理(多重化、リラン)の設計
・エラー/異常処理方式の設計
・プロトタイプを作成し処理方式の適用を推進
【業務支援の行動指針】
(1)業務開発を繋ぐ役割
複数のチームが開発することで、組織は縦割りになりがちです。そこで開発作業の横串となってとりまとめを行います。
(2)業務開発より先行の開発
業務支援は業務開発の次工程作業が円滑に行えるように、先行して作業を進めます。
(3)作業の標準化を推進
各組織体制に依存した作業を進めることで、作業水準や成果物がばらばらにならないよう標準化を進めます。
(4)業務要件に沿った処理方式の選定
性能要求などのユーザ要件を満たすために、業務開発とともに処理方式を設計します。
(5)アプリケーションの均一化を推進
アプリケーション構造の均一化し保守性を向上されるために、規約や基準の適用を進めます。
(1)業務開発を繋ぐ役割
複数のチームが開発することで、組織は縦割りになりがちです。そこで開発作業の横串となってとりまとめを行います。
(2)業務開発より先行の開発
業務支援は業務開発の次工程作業が円滑に行えるように、先行して作業を進めます。
(3)作業の標準化を推進
各組織体制に依存した作業を進めることで、作業水準や成果物がばらばらにならないよう標準化を進めます。
(4)業務要件に沿った処理方式の選定
性能要求などのユーザ要件を満たすために、業務開発とともに処理方式を設計します。
(5)アプリケーションの均一化を推進
アプリケーション構造の均一化し保守性を向上されるために、規約や基準の適用を進めます。
c.アーキテクチャの定義
開発におけるソフトウェア(フレームワークやツールなど)や開発単位などを明確にします。一般的なWEBシステム(開発言語:Java、DB:Oracle)のアプリケーション構成は以下のようになります。

| 項目 | 説明 |
| JSP | WEBページを生成するプログラム |
| 画面PG | 画面処理(表示制御など)を行うプログラム |
| 業務PG | 業務処理(計算や入力チェックなど)を行うプログラム |
| DBアクセスPG | DBへのアクセス処理(SQL生成及び実行など)を行うプログラム |
| バッチPG | バッチ処理を行うプログラム |
| 共通PG | 共通的な処理(日付や文字列などの各種変換や外部接続など)を行うプログラム |
これらの開発を進める上で使用する各ソフトウェアと開発工程の対応関係は以下のようになります。

| 分類 | ソフトウェア | 説明 |
| 設計支援 | UMLモデリング | UMLモデリングを行いユースケース図やクラス図などを作成します |
| 設計・製造支援 | フレームワーク | ・アプリケーション処理方式など開発の基盤となるプログラムを提供します ・設計書からJavaソースの自動生成を行う |
| テスト支援 | 規約チェック | コーディング規約違反をチェックします |
| カバレッジ | カバレッジ(走行網羅テスト)を行います | |
| プロファイラ | メモリ中に確保されている各種情報(オブジェクトサイズやメソッドの実行時間など)の統計を取得して、メモリリークを調査します | |
| 性能・負荷 | 仮想シナリオを作成し性能検証及び負荷テストを行います | |
| 管理・運用支援 | 設計書管理 | 設計書の管理運用を行います |
| リポジトリ管理 | DB関連情報やコードインスタンスの管理運用を行います | |
| 構成管理 | ・ファイル(プログラム・設定ファイルなど)の管理運用を行います ・開発環境及び本番環境へのファイル反映を行います |
最後に設計/開発/テストを行う際は開発単位に対して意識を統一する必要があります。以下に開発単位を表す用語を記述します。



