软件工程主题列表

**軟體工程主題列表**是軟體工程條目的補充，用以為主條目提供更詳細的內容及例子。

## 對社會的影響

軟體工程師透過創造應用系統而影響整個社會。這些應用系統為使用者創造價值但有時候也會製造災難。

### 應用

軟體工程師建立應用軟體給人們使用。

工程應用通過激勵開發者以新的方法解決問題來影響軟體工程。比如，消費者用的軟體強調低成本，醫用軟體強調高品質，而網際網路商業軟體重視如何能快速的發展.

* 會計
* 分析
  * 資料採集，與資料庫關係密切
  * 決策支援系統
* 航空公司 訂位服務
* 銀行業
  * 自動櫃員機
  * 支票處理
  * 信用卡
* 商業
  * 貿易
  * 拍賣（EBay）
  * 逆向拍賣
  * 條碼掃描器
* 編譯器
  * 資料剖析器
  * 最佳化器
  * 直譯器
  * 連接器
  * 載入器
* 通信
  * 電子郵件
  * 即時通信
  * 網上語音服務
  * 日曆 - 排程及協調
  * 聯絡經理
* 電腦圖像
  * 動畫
  * 特別效果 為影片或電影服務
  * 編輯器
  * 後期處理
* 密碼學
* 資料庫
* 嵌入系統：由於嵌入系統的特殊性，不論是軟體工程師或傳統的工程師都會參與編寫嵌入系統的控制系統。
  * 汽車軟體
  * 航空電子學軟體
  * 供暖，通風和空調（HVAC）軟體
  * 醫療裝置軟體
  * 電話軟體
  * 遙測軟體
* 工程：所有傳統工程分支都已經大量採用軟體來協助日常工作。工程師用試算表比用計算機更多，而對於其產品的設計，例如路橋和大型電力裝置等，電腦輔助設計更是不可少，並配合上特別設計的軟體來進行設計，分析及類比等各種活動。這些計劃與軟體在多方面有相似之處，除了因為工作的結果包含了電子檔案以外，計劃亦經歷了分析／設計／實踐和測試四個階段。
  * 電腦輔助設計（CAD）
  * 電子設計自動化（EDA）
  * 數值分析
  * 類比
* 檔案
  * FTP
  * 檔案分享
* 金融
  * 債券市場
  * 期貨市場
  * 股票市場
* 遊戲
  * 撲克
  * 多人參與冒險遊戲
  * 電動遊戲
* 資料庫系統，支援幾乎所有領域
  * 實驗室資訊系統，實驗室資料的管理
  * 管理資訊系統，財務及人事資料的管理
* 物流業
  * 供應鏈管理
* 製造業
  * 電腦輔助生產（CAM）
  * 分散式控制系統（DCS）
* 音樂
  * 音響效果
  * 音樂合成
* 網路 和 網際網路
  * 域名系統（DNS）
  * 協定
  * 路由器
* 辦公套件
  * 文書處理
  * 電子表
  * 演示
* 作業系統
  * 嵌入式
  * 圖形
  * 多工處理
  * 即時
* 機器人
* 訊號分析
  * 圖象處理，視覺資訊的編碼解碼
  * 訊號處理，訊號的編碼解碼
  * 語音處理
  * 文字辨識
  * 筆跡辨認
* 類比，支援幾乎所有領域
  * 工程，軟體類比可以比物理工程模型更廉價地建立且更靈活地改變。
  * 科學
* 科學
  * 基因組學
* 交通管制系統
  * 航空交通管制系統
  * 海上交通管制系統
  * 陸上交通管制系統
* 訓練系統
  * 鑽井
  * 類比系統
  * 測試
* 視覺化，支援幾乎所有領域
  * 體系架構
  * 工程
  * 科學
* 投票系統
* 網際網路
  * 瀏覽器
  * 伺服器

### 災難

軟體曾是許多著名災害的重要原因。

* 阿麗亞娜 - 5 運載火箭
* 火星探測器
* 丹佛國際機場
* Therac-25 - 因軟體設計時的缺陷造成六起醫療事故的一种放射治療機器。

## 技術和實踐

有技術的軟體工程師運用技術及不同範疇的實踐來改進生產力及品質。從而編程更快更容易。下列的技術和方法是在生產中天天被使用到的。

### 軟體工程主題

許多技術和做法（幾乎所有）是軟體工程所特有的，儘管其中很多與電腦科學是共同的。

#### 程式設計語言

* 程式語言列表
* 手稿語言
* COBOL
* C
* C++
* C#
* Fortran
* Java
* Perl
* PHP
* Python
* Tcl
* Visual Basic

#### 編程範式，基於程式語言技術

* 面向方面的程式設計（面向方面的編程）
* 功能分解
* 物件導向程式設計（物件導向的編程）
* Post-object programming
* 結構化程式設計

#### 資料庫

* 階層式資料庫
* 物件資料庫
* 關聯式資料庫
* SQL/XML
* SQL

#### 圖形化使用者介面

#### 程式設計工具

* 組態管理和原始碼管理
  * 並列版本系統
  * 編譯
  * 修訂控制系統
* 編輯器
  * 程式編輯器（_另見：IDE_）
  * 文字編輯器
  * 文書處理器

#### 庫

* 軟體部件

#### 設計語言

* 統一建模語言

#### 模式，一些通用的編程以及專案管理的技術

* 反模式
* 設計模式

#### 軟體開發過程和方法 (電腦科學)

* 敏捷軟體開發
  * 敏捷軟體開發
  * Crystal
  * 極限編程
  * 精益軟體開發
  * Scrum (in management)
* 重量級
  * Cleanroom
  * ISO 12207，軟體生命周期過程
  * ISO 9000 and ISO 9001
  * RUP
* 過程評價框架
  * CMM and CMMI
  * ISO 15504（SPICE）

#### 系統平台

平台結合了電腦的硬體和作業系統。平台變得越來越強大和廉價的同時，操作和工具被更廣泛地使用。

* BREW
* 克雷超級電腦
* DEC 微型電腦
* IBM 大型電腦
* Linux PC
* Mac OS 和 Mac OS X PC
* Microsoft .NET 網路軟體平台
* Palm OS PDA
* Sun 工作站
* Windows PC（Wintel）

#### 其他應用

* 通訊
* 結對編程
* 代碼重構
* Software inspections / 代碼審查
* 代碼復用
* 系統整合（Systems integration）
* 團隊合作
* 軟體驗證及確認

#### 其他工具

* 決策表
* 軟體特色
* Story
* 用例

### 電腦科學主題

* * 排序演算法
* 編譯器理論

### 數學主題

離散數學（Discrete mathematics）是軟體工程學的重要基石。

* 集合

其他

* 統計學

### 生命週期的階段

## 社群主題

### 先驅者

## 參考文獻

## 外部連結

* 專業組織
  * British Computer Society （頁面存檔備份，存於網際網路檔案館）
  * Association for Computing Machinery （頁面存檔備份，存於網際網路檔案館）
  * IEEE Computer Society （頁面存檔備份，存於網際網路檔案館）
* Professionalism
  * SE Code of Ethics （頁面存檔備份，存於網際網路檔案館）
  * Professional licensing in Texas （頁面存檔備份，存於網際網路檔案館）
* Education
  * CCSE Undergraduate curriculum （頁面存檔備份，存於網際網路檔案館）
* 一般組織
  * IEEE Software Engineering Standards （頁面存檔備份，存於網際網路檔案館）
  * Internet Engineering Task Force （頁面存檔備份，存於網際網路檔案館）
  * ISO
* 政府組織
  * European Software Institute （頁面存檔備份，存於網際網路檔案館）
  * Software Engineering Institute （頁面存檔備份，存於網際網路檔案館）
* Agile
  * Organization to promote Agile software development （頁面存檔備份，存於網際網路檔案館）
  * Test driven development （頁面存檔備份，存於網際網路檔案館）
  * Extreme programming （頁面存檔備份，存於網際網路檔案館）
* Other Organizations
  * Online community for software engineers
* Demographics
  * U.S. Bureau of Labor Statistics on SE （頁面存檔備份，存於網際網路檔案館）
* Surveys
  * David Redmiles page from the University of California site （頁面存檔備份，存於網際網路檔案館）
* 其他
  * Full text in PDF from the NATO conference in Garmisch （頁面存檔備份，存於網際網路檔案館）
  * Computer Risks （頁面存檔備份，存於網際網路檔案館） Peter G. Neumann's risks column.