1.5 プロジェクトライフサイクル


(1)プロジェクトの立ち上げ
スケジュール立ち上げに当たっては、下記の要件を定義しておくことが必須である。
・ プロジェクトの目的
・ プロジェクトで開発する案件の範囲
・ プロジェクトの期間
・ 大まかなスケジューリング
・ プロジェクト完了の条件(何をして完了とするか)
・ 体制、メンバ構成
・ 各メンバの役割

(2)システム企画
システム開発を行う上での、システム化目標を明確にする。
・ 開発手法の策定
・ 各フェーズの作業の定義
・ 開発案についての意識合わせ

(3)システム分析
現状を把握した上で、業務方式を分析しシステム全体の機能の概要設計を行う。同時にハードウェアの機器構成概要も策定し、プロジェクト体制の確立も行う。
a.現状認識工程
現状業務及びシステムの調査と、問題点の洗い出しを行う。
・ 現状調査
・ 現状把握
・ 現状認識レビュー
b.要求認識工程
現状認識工程で出された問題点を整理、分析し、対応する項目の確定を行う。
・ 問題点の認識、把握
・ 対応項目の確定
・ 要求認識レビュー
c.概要設計工程
要求認識工程で整理された問題点、要望点をもとにシステム化対象範囲を確定し、システム化のイメージを作成する。
・ 新規システム化対象範囲の確定
・ システム機能設計
・ システム化計画
・ 概要設計レビュー

(4)ユーザインタフェース設計
システムの機能要求仕様を決定する。セキュリティ、障害対策やシステム運用、保守性、システムテストの仕様も勘案する。また、ハードウェアの機器構成を決定する。
・ 外部とのインタフェース確定
・ 既存システムとのインタフェース確定
・ システム機能の設計
・ プロセスの設計
・ 入出力画面、帳票の設計
・ データ項目の確定、論理ファイルの設計

上流工程にて最も重要なポイントは、システム構造設計以降の工程にいかにスムーズにつなげるか、ということである。また、この上流工程のできいかんでシステムがほぼ決まってしまうということも、常に念頭においておく必要がある。

(5)システム構造設計
・ ユーザの狙いや要求、期待を正しく把握すること。
・ 問題の把握は、まず何をやるか正しくつかむこと。
・ 疑問の全てをクリアにしておくこと。
・ 設計した人は必ず完成まで責任を取る体制とすること。
・ 外部仕様を分析し、必要な要素をもれなく取り出し、その要素で全体を組み立てる。
・ 出来のよい設計は、効率的に外部仕様を実現しかつ、変更に強く理解するのが容易な、合理的仕組みになっているもの。
・ まず大つかみに全体を把握すること。
・ できるだけ少人数で設計を行うこと。または、中心人物を決めること。統一された考えでの設計が重要である。
・ デザインはコンセンサスでなく、その論理の善し悪しで決まる。少数意見でも正しいものは正しい。
・ 単純な要素に分別し、部品化し階層構造に構築する。
・ 効率よりも機能の発揮できるシステムを設計する。
・ 設計の実現可能性の検証。レビューが重要。
・ 設計ドキュメントの中には、
デザインに際しての方針(設計方針)
主要な判断の根拠
を盛り込む。
・ 必ずいくつかの解決策との利害得失比較を行い、その中から実現可能でかつ最も設計目標をクリアできる案を選択する。
・ 「複雑」であることと「難解」であることのちがいの認識をすること。
・ 顧客と連絡を密にし、満足させるシステムを設計すべきである。
・ 設計の意図を十分に顧客に説明し、理解を得るべき。
・ 論理的に正しくないものはきちんと説明し、納得させるべきである。

(6)プログラム構造設計
・ この段階で問題が続出するようなプロジェクトは論外。
・ わかりやすいプログラム設計こそ最良のプログラムである。
・ 短絡的な効率要求より、わかりやすさを犠牲すべきである。
・ チームプレーを重視し、他人との間で理解しやすい規則を遵守してプログラムを設計すること。
・ よいプログラムとは、平凡であるがきわめてわかりやすく、規則に忠実なプログラムのことである。
・ きちんとした設計で、構造化プログラミングを行うこと。
・ 何をするためのものか書かれているプログラム設計書であること。

(7)プログラミング
・ プログラミングとは、プログラム設計書をみながら、プログラムに変換していく作業のこと。いわゆる翻訳である。
・ プログラム作成の段階で処理、論理を考えねばならないような作業はしてはならない。
・ テスト段階への配慮をしたプログラミングであること。テストしやすいプログラムを作ること。

(8)テスト
・ テストに入る前に必ず計画を立て、その中で終了条件を決めておく。いきあたりばったりではだめ。
・ システム設計段階からのテストの具体的手法を確かめ、必要な対処をしておくこと。
・ やり方により生産性は左右される。
・ テストとは、プログラムに潜在的にあると思われている誤りを、効率的に見つけ出していく過程。
・ リスクの高いものから効率的にチェックしていくようなテスト計画であること。
・ 実行順序も十分考えて、効率的に行うこと。
・ システム開発の腕のよさ
・ 設計での手際のよさ
・ テストでの効率的なこなし方
・ ある程度フェーズまできたら、残件の問題点を整理し、テストのリスケジューリングも考えること。
・ エラーの再現ができるテスト環境であること。
・ テスト結果において顧客の納得、承認を得ること。テスト終了の最重要の要素である。
a.プログラムテスト
b.結合テスト
¨ 単体個々の部品としての仕様を満足しているかの確認をする。
¨ 今後の柔軟性、拡張性のあるシステム作成上の検査工程として重要。
¨ テストツールの善し悪しで効率が左右される。
c.システムテスト
¨ システム全体的な機能を確認するテスト。いわゆるシステム設計に対応する確認レベルである。
¨ テスト計画で事前に計画したことを効率的に実施するフェーズである。
¨ この段階で問題がわかっても、その多くの問題は解決のための時間がない。
¨ 組織的なのテストが必要。柔軟な要員の運用が要求される。
¨ 仮に問題が存在し、悪い事態が予想されるなら、顧客との自体進展の話し合いはできるだけ早い時期に行うべき。最後の最後まで誠意を尽くすこと。
d.運用テスト
¨ 本番運用に即したテストは、本番移行してはじめてわかる障害等を事前に察知することができる。
¨ 例)オンライン操作にて十分なパフォーマンスが得られること
¨ 新規バッチ処理が現行の運用スケジュールに対し妥当であること
¨ キャパシティプランニングの確認を行うことができる。

(9)本番移行



情報技術スキルアップの種のページへ
GLORY's OFFICEへ

Copyright(c)1998-1999 by glory