- システム分析
第一段階として、企業内の各部門で行われている業務の中から、情報処理システム
を開発する対象となる適用業務が検討される。適用業務の検討にあたっては、現状の
問題点を明らかにするとともに、その対策が検討される。また、経営管理のレベルの
向上、業務の合理化、企業の競争力強化などに関するシステム開発の目標の設定も
行う。
- システムの基本設計
システム分析のフェーズが完了すると次の段階として、システム設計のフェーズに
移行する。このフェーズは、基本設計と詳細設計とに大別される。
基本設計は、システム分析のフェーズで作成された新システムのモデルの
実行可能性を検討し、その機能を具体化して基本設計仕様書を作成する。
(1) 処理方式の決定
情報処理システムの処理方式には、センターバッチ処理、リモートバッチ処理、
オンラインリアルタイム処理などがあるので、利用部門のニーズや、システムの
処理要件に合った処理方式を選択する。
(2) 出力設計
出力設計は、出力帳票、画面など、利用部門に対して、情報処理システムが
どのように情報を提供するかということを決定するものである。ラインプリンタ、
シリアルプリンタ、ディスプレイ画面などの出力媒体の検討や、出力項目、桁数、
出力順序、集計単位などの出力レイアウトの設計を行う。
(3) 入力設計
入力データの精度やタイミングなどは、システムの信頼性に大きな影響を与える。
また、システムへのデータの入力などがしやすいかどうかの
マン・マシン・インタフェースは、システムの評価に影響する。
入力方法や、入力項目、入力タイミング、入力レイアウトなどを決定する。
(4) コード設計
コードは、データの内容を識別するために設定されるもので、識別機能、
分類機能、配列機能などをもつ。識別機能は他のものと区別する機能であり、
分類機能は同種のデータをグループ化する機能、配列機能はデータの並び順
を表す機能である。
コード設計にあたっては、コード化対象の選定、コードの付番方法の決定、
コードの追加・廃止の基準設定などを行う。
(5) ファイル設計
出力設計や入力設計によって作成された仕様に基づいて、ファイルに記憶
すべきデータ項目、ファイルの編成方法、ファイルへのアクセス法などを決定
する。
ファイル設計にあたっては、ファイルの種類、ファイルの名称、ファイル編成、
キー項目、データ項目、その桁数、文字種類(英字、数字、日本語)などを決定
する。
- システムの詳細設計
システムの詳細設計のフェーズでは、基本設計の段階で作成された概括的な
基本設計仕様書に基づいて、より詳細で具体的なシステム設計を行う。システムで
使用するハードウェアの機能や処理能力なども考慮してシステム設計を行う。
(1) プログラム構造設計
詳細設計のフェーズでは、サブシステムを構成する個々のプログラムの
モジュール化を行う。モジュール分割にあたっては、プログラムの機能を分析し、
機能的に独立した単位に分割する。
(2) 出力詳細設計
出力詳細設計では、基本設計のフェーズで作成した出力イメージをもとに
帳票設計、画面設計などを行う。帳票設計は、見出し、出力項目、出力順、
合計のとり方(小計、中計、大計)などを具体的に設計する。画面設計は、
入力項目、出力項目、メッセージ表示、入力データチェック方法などを設計する。
(3) 入力詳細設計
システムへの入力に使用する入力原票は、業務に使用するとともにデータ入力
にも使用する。そのため、データの記入量を減らすことや、入力しやすさなどに
十分注意する必要がある。
システムの信頼性を向上されるために、入力データのチェックを行うことが大切
である。そこで、重複チェック、ニューメリックチェック、リミットチェックなどの
チェック方法の決定も行う。
(4) ファイル詳細設計
ファイル詳細設計では、ファイルのレコードのレイアウトの作成などを行う。
この設計では、レコードを構成する各項目の桁数、レコード長、ブロック長
(レコード長×ブロック化係数)、記憶媒体などを決定する。
- プログラミング
プログラミングのフェーズでは、詳細設計のフェーズで作成された詳細設計書に
基づいて、一般に次のような作業が行われる。
(1) アルゴリズム作成
この段階では、プログラマが、詳細設計仕様書に基づいて、アルゴリズム
(問題解決の手順)を考える。プログラムの条件を整理するために、
デシジョンテーブル(決定表)んども用いられる。
(2) フローチャート作成
アルゴリズムを整理する方法としては、フローチャート(流れ図)の作成がある。
プログラムレベルの詳細な流れ図をこの段階で作成する。
(3) コーディング
フローチャートやデシジョンテーブルなどに基づいてコーディングを行う。
コーディングとは、プログラム言語を使って、フローチャートで表された手順に従って
プログラムを記述することである。
- テスト
プログラマは、コーディングしたプログラムをエディタなどを使用してコンピュータに
入力する。このとき、プログラムの翻訳を行い、文法上のエラーの検出を行う。そして、
文法上のエラーがなくなった時点で、プログラムの実行を行い、実行上のエラー
(論理上のエラー)を検出する。プログラムを実行させると、プログラムの異常停止
(アベンド)が発生するケースもある。
コードレビュー(他の人がソースをチェックする)は必ず行うことを心がける。
- 実用化~運用・保守
システムのテストが終了すると、新システムの実行化の段階へ移行する。
この段階では、現行システムから新システムへの移行の準備と本番への移行を行う。
(1) 文書化(ドキュメンテーション)
テスト段階で修正された設計仕様書などを最新の状態に修正する。
また、情報システム部門等の作業手順マニュアルと、利用部門の運用マニュアル
などを作成する。
(2) 本番移行スケジュール作成
現行システムから新システムへ移行するための作業項目を洗い出し、
スケジュールを作成する。新システムの実行化は、新旧システムを数回だけ
同時並行して処理し、チェックを行う並行ランの形態で行われることが多い。
(3) 教育訓練
システムの利用部門の実務担当者に対し、システムの内容説明とともに、
操作方法、データの入力方法などについての訓練を行う。
(4) データの準備
新システムで使用する各種マスタファイルのデータを最新の状態にする。
それとともに、システムで使用する初期データの整備も行う。
(5) システムの運用
並行ランの結果、問題がなければシステムが実行化される。この段階から
システムの運用の段階へ入る。システムの運用の段階では、利用部門が
システムの不具合のチェックを行いながら、情報システム部に対して不具合の
改善依頼も行う。
(6) システムの保守
システムの運用開始後しばらくすると、システムを取り巻く環境の変化や、
利用部門の業務内容の変化によって、システムの機能が現状と合わなくなる
ような事態が発生する。このような場合は、システムのレベルアップを行う。
システムのレベルアップなどのことを保守(メンテナンス)と呼んでいる。
- ソフトウェアのライフサイクル
情報処理システムの開発が検討され、システム分析、基本設計、詳細設計、
プログラミング、テストを経て実行化され、システムのレベルアップなどの保守が
行われ、最後に廃棄されるまでの全過程をソフトウェアのライフサイクルと呼ぶ。
システムの開発が決定した時点で、開発の投資規模の設定や、技術革新への
対応などを考慮して、ライフサイクルを設定する必要がある。
ソフトウェアのライフサイクルを設定するにあたっては、ハードウェア・ソフトウェア
の陳腐化の度合、外部環境の変化の度合、処理能力の限界、初期投資、
運用コスト、保守コストなどを考慮する必要がある。