ソフトウェア概論



再利用技術(リユーステクノロジー)

ソフトウェアの再利用技術

ソフトウェアの開発に必要とされている知識をなんらかの形で標準化し、これを繰り返し利用し、そのソフトウェアの知識から新たなソフトウェアを創造すること。


リエンジニアリング

対象システムを調べ、新しい形に変更し、それを実現すること。

リバースエンジニアリング(既存ソフトウェアからシステムの仕様を導き出すこと)と

フォワードエンジニアリング(システム仕様からソフトウェアを作り出すこと)をともなう。


モジュール設計

モジュール強度

モジュール内部の関連性の強さを示す尺度。モジュール内部の関連性が強いほど、モジュールの独立性は高くなる。

暗号的強度 -プログラムを単純に分割し、重複する機能をまとめたもの。内部機能間の関連はない。


論理的強度 -複数の機能を持ち、引数の値によって処理を選択。

時間的強度 -特定の時期に逐次的に実行する機能をまとめたもの。

手順的強度 -複数の逐次的な処理をまとめたもので、各機能は独立して実行できない。

連絡的強度 -手順的強度において、各機能間でデータの受け渡しがあるもの。

情報的強度 -同一データ構造を使う機能をまとめたもので、機能ごとに入り口点と出口点をもつ。

機能的強度 -ひとつの機能からなるモジュールで、命令はすべて1つの機能を実現するためにある。


モジュール結合度

モジュール間の関連性の強さを示す尺度。モジュール結合度が弱いほど、モジュールの独立性は高いなる。


内容結合 -外部宣言していないデータを他のモジュールが直接に参照・更新

共通結合 -複数のモジュールが共通領域のデータ構造を共有して参照・更新

外部結合 -外部宣言されたデータを複数のモジュールで共有。必要なデータのみを外部宣言する。

制御結合 -機能コードを受け渡し、呼ばれたモジュールの実行を制御する。

スタンプ結合 -データの構造体を受け渡す。呼ばれたモジュールは構造体の一部を使用する。

データ結合 -処理に必要なデータのみを受け渡す。モジュール間での機能的な関係はない。


領域評価

モジュール間で、制御領域と影響領域を適切に配分すること。

制御領域とは、上位モジュールが下位モジュールの呼び出しを制御する範囲。

影響領域は、あるモジュールで設定した条件によって動作が変わるモジュールを含んだ領域。


プログラミング手法

手続き型プログラミングパラダイム(規範)

対象とする問題の解決を手続き(アルゴリズム)によって記述する方式。構造化チャートを用いた構造化プログラミングが使われている。

動的な副作用(プログラムの実行により、主記憶に確保されている領域の値が変化すること)を伴う。


関数型プログラミングパラダイム

対象とする問題の解決を関数によって記述する方式。副作用を伴わない。


論理型プログラミングパラダイム

対象とする問題の解決を事実と推論規則を用いた論理で記述する方式。基本となる制御機構は以下のとおり。

ユニフィケーション --- パターンマッチング機能。推論規則と質問のパターンを比較すること。

バックトラッキング --- 自動検索機能。ユニフィケーションに失敗すると、最初に戻り別の規則と比較する。


オブジェクト指向プログラミングパラダイム

オブジェクトの状態と振る舞い(動作)を記述する方式。


構造化チャート

構造化プログラミングで示された基本制御構造を表現するプログラミング図式。

構造化定理 - 連接・選択・繰返しの3つの基本制御構造を用いることで、すべてのアルゴリズムは表現できるという定理。

NSチャート(Nassi-Shneiderman chart)


開発管理

品質管理

QFD (Quality Function Development)

ユーザの要求する品質を具体的に評価できる品質特性に置き換え、サブシステムやモジュールに展開すること。


工程管理・進捗管理

アローダイアグラム

作業の関連と作業の所要日数を表現。


ガントチャート

日程計画を立て、作業の進行状況を管理・把握するのに用いる。


見積もり手法

トップダウン見積もり法

開発規模がわかっているという前提で、工期と工数を見積もる手法。


類似法

過去の類似したデータを基にして、相違点を調べながら推定してゆく手法。


標準値法(ボトムアップ見積もり法)

単位作業量の基準値を決定し、作業項目を単位作業項目まで分解し、その積算で全体の作業量を見積もる手法。

単位作業量の把握は「WBS (Work Breakdown Structure : 作業分解構造)に基づいて行う。

WBSとは、プロジェクトの作業を詳細までブレークダウンし、具体的な目標や作業日程・進捗管理を行うこと。


開発体制

チーフプログラマ制

チーフプログラマ1名、バックアッププログラマ1名、ライブラリアン(事務作業担当)1名と少数のプログラマ

で構成される。比較的小規模のシステム開発に有効。


階層型チーム制

リーダの下にサブリーダ、サブリーダの下にメンバが従うピラミッド型の構成。現実のほとんどの組織がこの体制を

採用している。大規模のシステム開発に有効。


トレンドチャート

費用管理と進捗管理を同時に行うために用いる。

マイルストーン --- 作業管理上のチェックポイント。


システム監査技法(CAAT:Computer Assisted Auditing Technique)

テストデータ法

テストデータを作成して監査対象プログラムに入力し、期待した結果が得られるかどうかを確認する方法。


IFT法(Integrater Test Facility法:ミニカンパニ法)

監査対象ファイルの中に監査人用の講座(ミニカンパニ)を設け、実稼動中にテストデータを流し、その講座に各種の操作をして処理の正確性を確認する方法。


スナップショット法

システムにルーチンを組み込み、条件を満たすデータが通貨する際に、その時点の主記憶装置の内容を出力する方法。


トレーシング法

特定のトランザクションの処理を追跡し、監査対象プログラムの実行順序の情報を得てプログラムの論理的な正確性を検証する方法。


コード比較法

死して無監査人によって検証されたプログラムと監査対象プログラムをコーディングレベルで一行ずつ比較し、

監査対象プログラムの改竄の有無を確認する方法。


監査プログラム法

監査人の指定した基準に従ってファイルからデータを抽出し、演算比較などを行ってレポートを作成する方法。


監査モジュール法

指定されたデータの抽出と記録を行うモジュールを作成し、それを本番用プログラムに組み込んでおくことで、本番処理中に監査用データの抽出を行う方法。


並行シミュレーション

監査人がテストプログラムを用意し、監査対象のプログラムと同じデータを入力して結果を比較する方法。


外部環境の活用

SI(System Integration)



スポンサード リンク