#システム設計
##DFD(データフローダイアグラム)
入力データに対して何らかの処理を施し、データを出力する流れをプロセスという。
データベースやファイルなど、 データの保管場所をデータストアという。
部品間のデータの移動経路を矢印で表したものをデータフローという。
最初に、システム全体のDFDを作成し、それぞれのプロセスを別のDFDに詳細に記述する(段階別詳細化)。
既存のシステムや業務を新しいシステムとして作成する場合、まず現状の業務を現物理モデルとして洗い出す。次に、それを一般的に抽象化して現論理モデルとし、さらに新しくイメージした新論理モデルを作成する。最終的に具体的な業務に落とし込んだ新物理モデルを作成する。
##UML(Unified Modeling Language)
http://www.itsenka.com/contents/development/uml/ を参照
#テスト
##ユニットテスト
テストするモジュールの上位モジュールが未完成の場合、その仮のモジュールをドライバと呼ぶ。
一方、テストするモジュールの下位モジュールが未完成の場合、仮に作るモジュールをスタブと呼ぶ。
##ホワイトボックステスト
ソースコードなどのシステム内部の構造についてテストする
###制御パステスト
プログラム中のソースコードが全て実行される様にテストデータを与える手法。命令網羅、判定条件網羅などでどの程度のソースコードが網羅されたかをカバレッジ(網羅率)で判定する。
###データフローテスト
制御部分ではなくデータや変数の定義、使用、消滅のステップを確認するテスト。
##ブラックボックステスト
外部から見て仕様書通りの機能を持つかどうかをテストする。原因-結果グラフや決定表を用いる。
###同値分割
出力値と入力値を同値クラスに分類し、各同値クラスを代表する値に対してテストを行う。
###限界値分析
同値クラスの境界値はエラーが起こりやすいので、そこを重点的にテストする。
##テストの管理方法
###信頼度成長曲線(ゴンベルツ曲線)
テストを消化するごとにエラーの増加割合は減少していく。この曲線が収束に向かうことを目指す。
###エラー埋め込み法
意図的にエラーを埋め込み、埋め込みエラーと真のエラーは同じ割合で発見されるとの仮定のもと、真のエラー数を推測する。
#開発モデル・プロセス
##ウォーターフォールモデル
作業工程を分解し、それを順番に進めていくモデル。
##スパイラルモデル
分割した単位で開発のサイクルを繰り返すモデル。
##アジャイル開発
迅速に無駄なくソフトウェア開発を行う手法の総称。代表的なものにXP(Extreme Programming)などがある。
##SLCP
ソフトウェアライフサイクルプロセスはSLCP-JCF2013に定義されている。取得者と供給者の間で開発作業についての作業を詳細に規定したもの。
##CMMI
Capability Maturity Model Integration(能力成熟度モデル統合)。組織のプロセスの習熟度をモデル化したもの。
レベル1:初期
レベル2:管理された
レベル3:定義された
レベル4:定量的に管理された
レベル5:最適化している
##リバースエンジニアリング
ソフトウェアの動作を解析し、ソースコードを明らかにすること。禁止されている場合もある。
##マッシュアップ
複数サービスのAPIを組み合わせて新しいサービスを作ること。