ベーシックインカムあるので暇です、勉強します。

タイトル通り自給自足学生やってます。BI:5M JPY行ったら婚活します笑笑

情報システム開発

●情報システム開発の流れ

f:id:r0371n:20200528002812j:plain

・基本計画

情報システム開発によってどのような機能を得るかといった「要件定義」を行います。

ユーザーヒアリングによって吸い上げたものは「要件定義書」として文書化します。

逆に発注元から業者へ提案要求をするための文書を「RFP」と言い、

RFP作成のための情報提供を請求する文書を「RFI」と言います。

また、発注元とサービス提供者間で予めサービスの範囲や品質を定める契約を「SLA」、サービス内容の分析、PDCAを行い、SLAに落とし込む事を「SLM

と言います。

・設計

設計は外部設計と内部設計に分かれます。

外部設計:利用者(発注者)から見た仕様の設計

内部設計:プログラム内部の仕様を設計

・開発

設計書を元にデータベースや各種プログラムの開発

※設計・開発の詳細は後述します。

・テスト

動作のテストと修正でシステム品質の向上

・運用保守

システム稼働後のバックアップやカスタマーサービス

 

●開発手法

ウォーターフォール

上流工程から順番に実施していく方法です。プロジェクト管理はしやすいですが、用件の漏れや間違いがあった際に修正や作り直しが発生します。

・プロトタイプ型

試作品を作成し、ユーザーが確認してから本格的に開発する手法です。

ウォーターフォール型とは違い工程の浅い段階でチェックができる為修正や作り直しのリスクが軽減されます。「RAD」は、プロトタイプと呼ばれるシステムの完成イメージを何度も制作、評価し、プロトタイプを次第に完成品に近づけてゆく手法です。ウォーターフォールモデルなど従来の手法より迅速に開発を進められます。RADはエンドユーザを含む少人数のチームで担当し、開発期間を短縮する手法です。

・スパイラル型

設計、開発、テストを何度も繰り返す手法です。つまり完成度を20%、50%と徐々に上げていく方法の為、経営環境の変化スピードが早い現在において、早いサイクルで要件の変更ができる手法です。

・インクリメンタルモデル

情報システムをいくつかのサブシステムに分割して順次開発、リリースしていく手法です。サブシステムの開発は並列進行する点がスパイラル型と異なります。

 

●見積手法

CoBRA

ソフトウェア開発プロジェクトの経験豊富なプロジェクト・マネージャー等の経験・知識などを元に、様々な要因をコストの変動要因として抽出、定量化することで、透明性が高く説得力のある見積を作成する方法です。

 

・LOC法

プログラム(ソースコード)の行数により、開発規模を見積もる方法です。
・標準タスク法

開発するソフトウェア全体の工程を細かい作業工程に分解し、それをもとに作業工数やコストを積み上げ、全体の工数を見積もる方法のことです。

ファンクションポイント法

機能(ファンクション)ごとの複雑さによって点数を付け、その点数を合計することによって工数を見積る方法です。

 

●プロジェクト管理

PMBOK

プロジェクト管理の手法を体系的にまとめたものです。PMBOKには9つのジャンルがありますが、下記は代表的なマネジメントジャンルになります。

・スコープマネジメント

スコープとはプロジェクトの「範囲」を表します。プロジェクトの成果物や納期、コストの見積もりを行います。これらを階層構造で表したものを「WBS」と呼びます。

タイムマネジメント

作業時間、工数の見積もりです。

・コストマネジメント

必要な資源とコストを見積もり、予算化します。

・EVMS

プロジェクトの進捗度を「かかった金額」で表現し、管理する手法です。

例えば全工程の予算金額が100万円で、納期までにかかった金額が70万円の場合、進捗度は70%で30万円ぶん遅れが発生しているという見方ができます。

 

●設計・開発

実現したい業務要求(RFP)を情報システムとして実装可能な形にする事を「モデリング」と呼びます。モデリングのアプローチには以下のものがあります。

POA

業務プロセスに着目したアプローチです。「フローチャート」や「DFD」(データ処理の流れを表す図表)を用いて開発します。

DOA

データに着目したアプローチです。業務プロセスは経営環境の変化に伴い目まぐるしく変わりますが、扱うデータはさほど変わりません。よってPOAよりも柔軟に変化に対応可能です。DOAではデータ構造を「E-Rモデル」(データの集合とその繋がりを表す)を使って表します。

OOA

オブジェクト(データと処理がセットになったもの)指向のアプローチで、データと処理をオブジェクトとして一体化する事を「カプセル化」と言います。

OOAではオブジェクトを部品のように組み合わせて開発が可能です。

OOAでの設計の際に用いる図表に「UML」があります。

 

●プログラム開発

・モジュール設計

モジュールとはプログラムの最小単位です。モジュールを組み合わせていく事で大きな情報システムを構築します。

・プログラミング

プログラミングまたはコーディングはプログラム設計書を元にプログラミング言語を使って行います。プログラミングの支援ツールには「CACEツール」があり、設計工程や作業をコンピュータで支援します。

また、迅速にプログラムを開発するプロセスを「アジャイル開発プロセス」と言い、具体的な手法の1つに「XP(エクストリーム・プログラミング)」があります。

これは小規模開発に向いた手法で、プロジェクトを短い期間で区切り、この区間内で反復して設計・開発・テストを繰り返します。

 

●テスト

単体テスト

モジュールのテストのことです。

結合テスト

モジュールの組み合わせのテストのことです。

システムテスト

情報システム全体の機能や性能を確認するテストです。

検収テスト

利用ユーザーを中心に行う、要件通りの実行ができているかのテストです。

ホワイトボックステスト

プログラム内部構造に着目した動作確認テストです。

ブラックボックステスト

プログラムの入出力に着目した動作確認テストです。