UML(Unified Modeling Language:統一モデリング言語)
UMLとは
オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法のこと。
UMLの種類
クラス図
モデルの組み立て部品の集合のこと。クラスと関係によって、(クラスの)構造と(クラス間の)関係を表現する。
オブジェクト図
システムのある時点でのスナップショット。
ユースケース図
システムの振る舞いを表現する図で、システムに要求される機能を、ユーザの視点から示した図。
シーケンス図
オブジェクト間で送受信するメッセージによる相互作用が表せる図。
コラボレーション図
オブジェクト集団における相互作用の直接表現やオブジェクト集団の接続トポロジーとメッセージ、スレッドの順序などを表現する。
ステートチャート図
状態遷移図を基本にして、オブジェクト内に存在する状態や、その状態の移り変わりを表現する図。
アクティビティ図
1つのインタラクション全体における手続きの制御フロー。
状態図の相対表現としてワークフローに焦点を当てる図。
コンポーネント図
ソフトウェア-ユニット間の依存関係を示すもの。
ソフトウェアモジュールの構成やバージョン管理も表現することができる。
配置図
物理的な視点でシステム構成を表現した図。
オブジェクトやパッケージ、ファイルなどを実際のプラットフォームや
ネットワークノード上の配置や、どのプロセス上で実行するのか、といったことを表現する。
コミュニケーション図
オブジェクト間の相互作用を表現し,オブジェクト間のデータリンクを強調した図。
ソフトウェアの要件定義や分析・設計で用いられる技法
決定表
複数の条件とその条件の組合せに対する処理や行動の関係を一覧にした表。
複雑な条件判定を伴う要件定義の記述手段として有効である。
DFD(Data Flow Diagram)
システム間のデータの流れを示す図。
データの"源泉,吸収,流れ,処理,格納"を基本要素としており,システム内のデータの流れを表現する手段として有効である。
状態遷移図
システムの"状態"の種別とその状態が選移するための"要因"との関係を分かりやすく表現する手段として有効である。
制御フロー図
DFDに"コントロール変換とコントロールフロー"を付加したもの。
制御系システムに特有な処理を表現する手段として有効である。
ソフトウェア方式設計・詳細設計
DOA(Data Oriented Approach:データ中心アプローチ)とは
対象業務領域のモデル化に当たって,情報資源のデータ構造に着目する技法。
様々な要因により変更される可能性のある業務プロセスと比較して、データが安定した資源である事に注目している。
ソフトウェアコード作成およびテスト
レビュー技法
インスペクション
事前に役割を決められた参加者が責任ある第三者(デモレータ)の下で成果物を確認するレビュー方法。
パスアラウンド
電子メールなどを使って、対象の青果物を複数のレビュアーに配布し、フィードバックを求めるレビュー方法。
ブラックボックステストとホワイトボックステスト
ブラックボックステスト
入力と出力だけに着目して様々な入力に対して仕様書通りの出力が得られるか確認するテスト。
システムの内部構造とは無関係に、外部から見た機能について検証する。
「同値分割」、「限界値分析」、「原因結果グラフ」がテストケースとして用いられる。
ホワイトボックステスト
プログラムの内部構造に注目して行われるテスト。
制御の流れの正当性を検証する目的で行われる。
「命令網羅」、「判定条件網羅」、「条件網羅」、「判定条件/条件網羅」、「複数条件網羅」がテストケースとして用いられる。
スタブとドライバ
スタブ
・トップダウンテストにおいて必要となるテスト用モジュール。
・未完成の下位モジュールの代わりとして、上位モジュールからの呼び出しに対して適切な値を返す。
ドライバ
・ボトムアップテストにおいて必要となるテスト用モジュール。
・未完成の上位モジュールの代わりとして、テスト対象の下位モジュールを呼び出す。
アサーションチェック
アサーションとは
プログラムの実行中に使用されている変数の間で論理的に成り立つ条件の事。
アサーションチェックとは
アサーションをプログラムの適切な箇所に挿入し、プログラム実行時にそのアサーションが成立しているかを検査することで、プログラムの正当性を検証する手法。
ソフトウェア結合・適格性テスト
【リポジトリ】
「貯蔵庫」、「資源のありか」の意。
ソフトウェア開発と保守における様々な情報を一元的に管理する目的で構築されるシステム(ファイルやフォルダの場合もある)。
複数の人間が携わるシステム開発において、成果物(ドキュメントやソースコード)や仕様などを一元的に管理することで、各人のばらつきを排除し統一することができる。
【DFD(Data Flow Diagram)】
システム間のデータの流れを示す図。
データを発生・吸収・処理・蓄積するシステムの間を、データの流れを示す矢印でつないで作成する。
【クラス図】
クラス・属性・クラス間の関係からシステムの構造を記述する静的な構造図のこと。
リンク・関連・集約・汎化・特化・実現といった関係を表現できる。
【デザインレビュー】
設計の節目に成果物(設計書・ソースプログラム・テスト報告書・試作機など)に問題(要求に合っているか、曖昧な部分がないかなど)がないかを確認し、問題点の早期発見を行うために実施する。
デザインレビューを実施することで、設計の成果をプロジェクトのメンバに理解させることができる。
【オブジェクト仕様の構成要素】
カプセル化(情報隠ぺい)
オブジェクト内部をブラックボックス化すること。
これにより、ユーザは内部の情報を知らなくてもオブジェクトを扱う事ができる。
継承(インヘリタンス)
あるクラスが上位のクラスの特性を引き継いでいる関係のこと。
上位の特性を引き継ぐことで、差分プログラミングが可能になる。
多様性・多態性(ポリモルフィズム)
オブジェクトへの操作呼び出しが、呼び出し側でなく受け手側の特性で決まる特性。
同じメッセージを送っても受け手によって行われる操作が異なる様子。
【システム設計を行う手法】
データ中心アプローチ(DOA:Data Oriented Approach)
様々な要因により変更される可能性のある業務プロセスと比較して、データが安定した資源であることに注目して、データを中心としたシステム、ソフトウェアの設計を行う手法。
【ソフトウェアのテスト手法】
アサーションチェック
プログラム実行中の特定の時点で成立する変数間の関係や条件を記述した論理式を埋め込んで、そのプログラムの正当性を検証する手法。
コード追跡
命令単位でプログラムを実行し、実行直後のメモリやレジスタの内容などの情報を逐一確認する手法。
コード追跡を可能にするツールに「トレーサ」がある。
テストカバレッジ分析
プログラムの品質を定量的に把握するために、テストの網羅率(カバレッジ)を測定・分析する手法。
スナップショットダンプ
プログラム中の特定の命令文が実行されるたびに、その時のメモリやレジスタの内容を出力するツール。
最終更新:2013年02月20日 16:22