SWEBOK
SWEBOK¶
知識エリア | トピックスの分類 |
---|---|
ソフトウェア要求 | ソフトウェア要求の基礎 要求プロセス 要求抽出 要求分析 要求の仕様化 要求の妥当性確認 実践上考慮すべきことがら ソフトウェア要求ツール |
ソフトウェア設計 | ソフトウェア設計の基礎 ソフトウェア設計における主要な問題 ソフトウェア構造とアーキテクチャ ユーザインタフェース設計 ソフトウェア設計品質の分析と評価 ソフトウェア設計のための表記 ソフトウェア設計戦略および手法 ソフトウェア設計ツール |
ソフトウェア構築 | ソフトウェア構築の基礎 ソフトウェア構築のマネージメント 実践上考慮すべきことがら 構築テクノロジ ソフトウェア構築ツール |
ソフトウェアテスティング | ソフトウェアテスティングの基礎 テルトレベル テスト手法 テストに関係した計量尺度 テストプロセス ソフトウェアテスティング・ツール |
ソフトウェア保守 | ソフトウェア保守の基礎 ソフトウェア保守における主な課題 保守プロセス 保守者のための手法 ソフトウェア保守ツール |
ソフトウェア構成管理 | SCMプロセスのマネージメント ソフトウェア構成の同定 ソフトウェア構成コントロール ソフトウェア構成実態説明 ソフトウェア構成監査 ソフトウェアリリース・マネージメントおよび引渡し ソフトウェア構成管理ツール |
ソフトウェアエンジニアリングマネージメント | 始動および適用範囲の定義 ソフトウェアプロジェクト計画 ソフトウェアプロジェクトの計画実施 レビューおよび評価 集結 ソフトウェアエンジニアリング計量 ソフトウェアエンジニアリング・マネージメントツール |
ソフトウェアエンジニアリングプロセス | ソフトウェアプロセス定義 ソフトウェアライフサイクル ソフトウェアプロセス査定および改善 ソフトウェア計量 ソフトウェアエンジニアリングプロセスツール |
ソフトウェアエンジニアリングモデルおよび方法 | モデリング モデルの型 モデルの分析 ソフトウェアエンジニアリング方法 |
ソフトウェア品質 | ソフトウェア品質の基礎 ソフトウェア品質管理プロセス 実践上考慮すべきことがら ソフトウエア品質ツール |
ソフトウェアエンジニアリング専門技術者実践規律 | 専門技術者意識 グループダイナミクスおよび心理学 コミュニケーションスキル |
ソフトウェアエンジニアリング経済学 | ソフトウェアエンジニアリング経済学の基礎 ライフサイクル経済学 リスクおよび不確実性 経済学的分析法 実践上考慮すべきことがら |
計算基礎 | 問題解決手法 抽象化 プログラミング基礎 プログラミング言語基礎 デバッギングツールおよび手法 データ構造と表現 アルゴリズムと複雑性 システムの基本概念 コンピュータ組織 オペレーティングシステム基礎 コンパイラ基礎 データベース基礎およびデータマネジメント ネットワーク通信基礎 並列および分散コンピューティング ユーザ・ヒューマンファクタ基礎 開発者ヒューマンファクタ基礎 セキュアソフトウェア開発および保守 |
数学基礎 | 集合、関係、関数 論理基盤 証明法 計数基礎 グラフおよび木 離散確立 有限状態機械 文法 数値精度、正確度、誤差 数論 代数的構造 |
エンジニアリング基礎 | 経験的方法および実験的テクニック 統計的分析 計量 エンジニアリング設計 モデリング、シミュレーションおよびプロトタイピング 標準 根源原因分析 |
ソフトウェア設計原則¶
- 抽象化
- 結合と凝集
- 分割とモジュール化
- カプセル化および情報隠ぺい
- インタフェースと実現の分離
- 十分性、網羅性、および原始性
- 関心の分離
一般的なユーザインタフェース設計原則¶
- 学習容易性
- ユーザ親和性
- 一貫性
- 驚きの最小化
- 回復性
- ユーザガイダンス
- ユーザ多様性
ソフトウェア設計における主要な問題¶
- 並列処理
- イベントに対する制御と処理
- データの永続化
- コンポーネントの分散化
- エラーおよび例外処理、フォールト・トレランス
- 対話と表示
- セキュリティ