軟件工程:軟件工程是應用計算機科學、數學和管理科學,用工程原理和方法制作軟件的工程。
軟件危機是指計算機軟件在開發和維護過程中遇到的壹系列嚴重問題。
軟件生命周期:指軟件產品或軟件系統從產生、投入使用到淘汰的全過程。
計算機系統工程是壹項解決問題的活動,其目的是分析以計算機為基礎的系統的功能和性能要求,將其分配給以計算機為基礎的系統的各種系統要素,並確定它們的約束和接口。
需求分析:主要解決待開發軟件“做什麽”的問題,確定軟件功能、性能、數據、接口的需求,生成軟件需求規格說明書。
軟件過程:是軟件生命周期中壹系列相關的過程。過程是活動的集合,活動是任務的集合。
計算機輔助軟件工程
軟件工具:用於輔助軟件開發、運行、維護、管理和支持過程中的活動的軟件。
可行性分析:主要從經濟、技術、法律等方面分析給定的解決方案是否可行,能否在規定的資源和時間的約束下完成。
經濟可行性:主要進行成本效益分析,從經濟角度確定系統是否值得開發。
投資回收期:指累積的經濟效益正好等於投資所需的時間(成本)。
凈收入:指若幹年內扣除成本後的實際收入。凈收入=累計經濟收入-成本。
技術可行性:主要根據系統的功能、性能和約束條件,分析系統在現有資源和技術條件下能否實現。
軟件需求:指用戶對目標軟件系統在功能、行為、性能、設計、約束等方面的期望。
信息領域:包括信息內容、信息流和信息結構。
信息內容:表示單壹的數據和控制對象,目標軟件處理的所有信息集都由它們組成。
信息流:表示數據和控制在系統中流動時的變化方式。輸入對象被轉換成中間信息,然後進壹步轉換成輸出。
信息結構:表示各種數據和控制項的內部組織形式。
需求管理:它是壹組幫助項目團隊在項目進展過程中的任何時候識別、控制和跟蹤需求的活動。
軟件設計:它是將軟件需求轉化為軟件表現的過程。
過程抽象(function abstraction)是指任何完成壹個明確定義的功能的操作都可以被用戶視為壹個單壹的實體。
數據抽象:指定義數據類型和應用於該類型對象的操作,限定對象的取值範圍。只有通過這些操作才能修改和觀察數據。
逐步細化:將解決問題的過程分解成若幹步驟或階段,每壹步都比前壹步更細化,更接近問題的解決。
模塊化:根據規定的原則,軟件被分成更小的、獨立但相互關聯的組件。其實就是壹個系統分解抽象的過程。
模塊獨立性:模塊實現獨立的功能,與其他模塊有簡單的接口,符合信息隱藏原則,模塊之間的關聯和依賴程度盡可能小。
信息隱藏:是指模塊內部處理細節和內部數據通過某種手段隱藏起來,外部模塊不能隨便訪問。
內聚性:它是壹個模塊中的元素相互結合的緊密程度的度量。
耦合性:是衡量模塊之間相對獨立性(互連緊密程度)的指標。
結構化編程(Structured programming):是壹種編程技術,采用順序、選擇、循環三種基本控制結構,采用自頂向下逐步細化的設計方法,采用單入口單出口的控制組件。
數據流圖(DFD):描述從輸入數據流到輸出數據流的轉換(即處理),並用於模擬系統的功能。
數據字典:它是描述性數據信息的集合。它按照規定的格式對數據流圖中的每個元素進行了詳細的描述和確切的解釋,是數據流圖的補充工具。
結構圖:描述模塊之間的調用關系和模塊之間的控制層次。
深度:指結構圖中控制的層數。
寬度:指結構圖中同級模塊總數的最大值。
扇出:指該模塊直接調用的模塊數。
扇入:指可以直接調用模塊的模塊數量。