Project

General

Profile

SWEBOK

SWEBOK

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

ソフトウェア設計原則

  • 抽象化
  • 結合と凝集
  • 分割とモジュール化
  • カプセル化および情報隠ぺい
  • インタフェースと実現の分離
  • 十分性、網羅性、および原始性
  • 関心の分離

一般的なユーザインタフェース設計原則

  • 学習容易性
  • ユーザ親和性
  • 一貫性
  • 驚きの最小化
  • 回復性
  • ユーザガイダンス
  • ユーザ多様性

ソフトウェア設計における主要な問題

  • 並列処理
  • イベントに対する制御と処理
  • データの永続化
  • コンポーネントの分散化
  • エラーおよび例外処理、フォールト・トレランス
  • 対話と表示
  • セキュリティ