ソフトウェア開発の仕事
  ・開発の流れ
企画(提案・見積もり)
受注
開発
納品
運用開始
  ・開発
ソフトウェア開発者が担当

ライフサイクルプロセス
  ・要件定義
システムに求められる機能や性能を明確にする。
内部の振る舞いや実装方法は設計しない。
  ・基本設計
要件定義を基に、システムを外部(利用者側)から見た時の機能や構成を決める。
システム全体をモジュール単位に分割し、各モジュールの外部仕様を決める。
システムと外部システム(外部デバイス)とのインターフェースの仕様を明らかにする。
基本設計書(外部設計書、概要設計書)
  ・詳細設計
基本設計書を基にプログラムの内部データ、処理手順などを決める。
詳細設計書、内部設計書(外部設計書)
  ・実装(プログラミング、製造)
コーディング、実行モジュール作成、配置
リバースエンジニアリング:開発工程に逆行して成果物を作成
  ・テスト
ソフトウェアテスト
  ・保守
  ・ライフサイクルプロセスの主な規格
SDEM、JIS、ISO、IEEEなど

モジュール
  ・ひとまとまりの機能を持った部品で、システムを構成する要素。
  ・モジュールの独立性が高いと、システムの保守性や拡張性が高まる。
  ・モジュールの独立性を計る指標
モジュール強度(モジュール内の構成要素(機能や扱うデータ)間の関係の強さ)
単一の機能(強)、万能性(弱)、多くの場合強い方が「良い」
モジュール結合度(モジュール間の情報のやり取りによる結びつきの強さ)
複数のモジュール間でのデータの独立化(カプセル化)は結合度が弱(疎)
多くの場合弱い(疎)方が「良い」

外部仕様
  ・機能
  ・データ
  ・画面/帳票など

サブプロセス
  ・プロジェクト管理
スケジュール管理、メンバー管理など
  ・品質管理
テスト計画管理、バグ管理など
  ・バージョン管理
構成管理、バージョン/レビジョン管理など
  ・開発環境管理
ハードウェアの管理、ソフトウェアの管理など
  ・セキュリティ管理
外部からの侵入防止、内部に持つ機密情報の漏洩防止など
  ・リスク管理
想定される危機対策

開発プロセスモデル(開発プロセス、開発モデル、プロセスモデル)
  ・ウォーターフォール型
  ・プロトタイピング型
顧客の要求と開発側の認識のズレの解消
  ・スパイラル型(反復型開発)
開発のライフサイクルの繰り返し
  ・アジャイル型開発
迅速かつ対面的にソフトウェア開発を行う、軽量開発手法の総称

分析・設計の指向タイプ(ソフトウェア開発の各工程で用いる手法)
  ・プロシージャ指向(新しい言葉、スタンダードな手法)
データ設計とプログラムの流れの設計を分離
  ・オブジェクト指向
データ設計とプログラムの流れの設計を単一の「オブジェクト」という存在で扱う。
オブジェクト同士のメッセージコラボレーション(要求関係)によって機能を満たす。