軟件工程領域的一百個關鍵字
- 軟件
軟件是計算機系統中與硬件相互依存的部分,它是包括程序、數據及相關文檔的完整集合。 - 軟件危機
軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。 - 軟件工程
軟件工程是研究和應用如何以系統化的、規範的、可度量的方法去開發、運行和維護軟件,即把工程化應
用到軟件上。 - 軟件生存週期
軟件生存週期是指軟件產品從考慮其概念開始到該軟件產品交付使用,直至最終退役爲止的整個過程,一
般包括計劃、分析、設計、實現、測試、集成、交付、維護等階段。 - 軟件複用
軟件複用就是利用某些已開發的、對建立新系統有用的軟件元素來生成新的軟件系統。 - 質量
質量是產品或服務滿足明確或隱含需求能力的特性和特徵的集合。在合同環境下,需求是明確的;在其他
環境下,隱含的需求需要識別和定義。 - 質量策劃
質量策劃包括產品策劃、管理和作業策劃,以及質量計劃的編制和質量改進的準備工作。 - 質量改進
質量改進是以最求最高的效益和效率爲目標的持續性活動。 - 質量控制
質量控制是對流程和產品的符合性的評估,獨立分析不足並予以更正使得產品與需求相符。 - 質量保證
質量保證是有計劃的和系統性的活動,它對部件或產品滿足確定的技術需求提供足夠的信心。 - 軟件質量
軟件質量是指明確聲明的功能和性能需求、明確文檔化的開發標準、以及專業人員開發的軟件所具有的所
有隱含特徵都得到滿足。 - 正式技術複審
正式技術複審是一種由軟件開發人員進行的軟件質量保證活動,其目的是在軟件的任何一種表示形式中發
現功能、邏輯或實現的錯誤,驗證經過複審的軟件確實滿足需求,保證軟件符合預定義的標準,使軟件按照一
致的方式開發,使項目更易於管理。 - ISO
ISO是一個組織的英語簡稱,代表International Organization for Standardization,即"國際標準化組
織"。 - ISO9000
ISO9000是由ISO/TC176制定的關於質量管理和質量保證的國際標準。 - 質量認證
質量認證是由可以充分信任的第三方證實某一經鑑定的產品或服務符合特定標準或規範性文件的活動。 - 軟件過程
軟件過程是人們用於開發和維護軟件及其相關過程的一系列活動,包括軟件工程活動和軟件管理活動。 - 軟件過程能力
軟件過程能力是描述(開發組織或項目組)遵循其軟件過程能夠實現預期結果的程度,它既可對整個軟件
開發組織而言,也可對一個軟件項目而言。 - 軟件過程性能
軟件過程性能表示(開發組織或項目組)遵循其軟件過程所得到的實際結果,軟件過程性能描述的是已得到
的實際結果,而軟件過程能力則描述的是最可能的預期結果,它既可對整個軟件開發組織而言,也可對一個特
定項目而言。 - 軟件過程成熟度
軟件過程成熟度是指一個特定軟件過程被明確和有效地定義,管理測量和控制的程度。 - 軟件成熟度等級
軟件成熟度等級是指軟件開發組織在走向成熟的途中幾個具有明確定義的表示軟件過程能力成熟度的平臺 - 關鍵過程域
每個軟件能力成熟度等級包含若干個對該成熟度等級至關重要的過程域,它們的實施對達到該成熟度等級
的目標起到保證作用,這些過程域就稱爲該成熟度等級的關鍵過程域。 - 關鍵實踐
關鍵實踐是指對關鍵過程域的實踐起關鍵作用的方針、規程、措施、活動以及相關基礎設施的建立。 - 軟件能力成熟度模型
軟件能力成熟度模型是指隨着軟件組織定義、實施、測量、控制和改進其軟件過程,軟件組織的能力也伴
隨着這些階段逐步前進,完成對軟件組織進化階段的描述模型。 - 軟件需求
軟件需求是指
(1)用戶解決問題或達到目標所需的條件或能力;
(2)系統或系統部件要滿足合同、標準、規範或其它正式規定文檔所需具有的條件或能力;
(3)一種反映上面(1)或(2)所描述的條件或能力的文檔說明。 - 業務需求
業務需求(business requirement)反映了組織機構或客戶對系統或產品高層次的目標要求,它們在項
目視圖與範圍文檔中予以說明。 - 用戶需求
用戶需求(user requirement)描述了用戶使用產品必須要完成的任務,可以在用例模型或方案腳本中
予以說明。 - 功能需求
功能需求(functional requirement)定義了開發人員必須實現的軟件功能,使得用戶能完成他們的任務
,從而滿足了業務需求。 - 非功能需求
非功能需求(non-functional requirement)是從各個角度對系統的約束和限制,反映了應用對軟件系
統質量和特性的額外要求。 - 需求工程
需求工程是應用已證實有效的原理和方法,通過合適的工具和符號,系統地描述出待開發系統及其行爲特
徵和相關約束。 - 需求分析
需求分析主要是對收集到的需求進行提煉、分析和仔細審查,以確保所有的風險承擔者都明白其含義並找
出其中的錯誤、遺漏或其它不足的地方,形成完整的分析模型。 - 軟件需求規格說明
軟件需求規格說明是需求開發的最終結果,它精確地闡述一個軟件系統必須提供的功
能和性能以及它所要考慮的限制條件。軟件需求規格說明不僅是系統測試和用戶文檔的基礎,也是所有子系列
項目規劃、設計和編碼的基礎。 - 風險承擔人
風險承擔人是任何將從新系統或應用的實現中受到實質性影響的人。 - 軟件原型
軟件原型是所提出的新產品的部分實現,其目的是爲了解決在產品開發的早期階段需求不確定的問題。 - 實體關係圖
實體關係圖描述數據對象及其關係。 - 數據流圖
數據流圖是結構化分析的基本工具,它描述了信息流和數據轉換。 - 狀態轉換圖
狀態轉換圖通過描述狀態以及導致系統改變狀態的事件來表示系統的行爲。 - 數據字典
數據字典描述數據流圖的數據存儲、數據加工(最底層加工)和數據流。 - 對象
對象(Object)是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位,由一組屬性和
對這組屬性進行操作的一組服務組成。 - 類
類(Class)是具有相同屬性和服務的一組對象的集合,它爲屬於該類的全部對象提供了統一的抽象描述
,其內部包括屬性和服務兩個主要部分。 - 封裝
封裝(Encapsulation)是把對象的屬性和服務結合成一個獨立的系統單位,並儘可能隱藏對象的內部細
節。 - 繼承
繼承(Inheritance)是指子類可以自動擁有父類的全部屬性和服務。 - 消息
消息(Message)是對象發出的服務請求,一般包含提供服務的對象標識、服務標識、輸入信息和應答
信息等信息。 - 多態性
多態性(Polymorphism)是指在父類中定義的屬性或服務被子類繼承後,可以具有不同的數據類型或表
現出不同的行爲。 - 主動對象
主動對象(Active Object)是一組屬性和一組服務的封裝體,其中至少有一個服務不需要接收消息就能
主動執行(稱爲主動服務)。 - 面向對象分析
面向對象的分析(OOA)就是運用面向對象的方法進行需求分析,其主要任務是分析和理解問題域,找
出描述問題域和系統責任所需的類及對象,分析它們的內部構成和外部關係,建立OOA模型。 - 面向對象設計
面向對象的設計(OOD)就是根據已建立的分析模型,運用面向對象技術進行系統軟件設計。它將OOA
模型直接變成OOD模型,並且補充與一些實現有關的部分,如人機界面、數據存儲、任務管理等。 - 面向對象編程
面向對象的編程(OOP)就是用一種面向對象的編程語言將OOD模型中的各個成分編寫成程序。 - 面向對象測試
面向對象的測試(OOT)是指對於運用OO技術開發的軟件,在測試過程中
繼續運用OO技術進行以對象概念爲中心的軟件測試。 - 統一建模語言UML
統一建模語言(Unified Modeling Language,UML)是一種直觀化、明確化、構建和文檔化軟件系統
產物的通用可視化建模語言。 - 用例圖
用例圖定義了系統的功能需求,它完全是從系統的外部觀看系統功能,並不描述系統內部對功能的具體實
現。 - 類圖
類圖描述系統的靜態結構,表示系統中的類以及類與類之間的關係。 - 對象圖
對象圖描述了一組對象以及它們之間的關係,表示類的對象實例。 - 狀態圖
狀態圖表示一個狀態機,強調對象行爲的事件順序。 - 時序圖
時序圖表示一組對象之間的動態協作關係,反映對象之間發送消息的時間順序。 - 協作圖
協作圖表示一組對象之間的動態協作關係,反映收發消息的對象的結構組織。 - 活動圖
活動圖反映系統中從一個活動到另一個活動的流程,強調對象間的控制流程。 - 組件圖
組件圖描述組件以及它們之間的關係,表示系統的靜態實現視圖。 - 分佈圖
分佈圖反映了系統中軟件和硬件的物理架構,表示系統運行時的處理節點以及節點中組件的配置。 - 軟件體系結構
軟件體系結構包括一組軟件部件、軟件部件的外部的可見特性及其相互關係,其中軟件外部的可見特性是
指軟件部件提供的服務、性能、特性、錯誤處理、共享資源使用等。 - 軟件測試
軟件測試是以最少的時間和人力系統地找出軟件中潛在的各種錯誤和缺陷。 - 靜態測試
靜態測試是指被測試程序不在機器上運行,而是採用人工檢測和計算機輔助靜態分析的手段對程序進行檢
測。 - 動態測試
動態測試是指通過運行程序發現錯誤,一般意義上的測試主要是指動態測試。 - 黑盒測試
黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有功能的情況下,通過測試來檢測每個功
能是否都能正常使用。 - 白盒測試
白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是
否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定
要求正確工作,而不顧它的功能。 - 軟件調試
軟件調試則是在軟件測試成功後,根據錯誤跡象確定錯誤的原因和準確位置,並加以改正。 - 軟件測試自動化
測試自動化是通過開發和使用一些工具自動測試軟件系統,特別適合於測試中重複而繁瑣的活動。 - 軟件維護
軟件維護是
指在軟件運行或維護階段對軟件產品所進行的修改。 - 改正性維護
在軟件交付使用後,由於開發時測試得不徹底或不完全,在運行階段會暴露一些開發時未能測試出來的錯
誤。爲了識別和糾正軟件錯誤,改正軟件性能上的缺陷,避免實施中的錯誤使用,應當進行的診斷和改正錯誤
的過程,這就是改正性維護。 - 適應性維護
隨着計算機技術的飛速發展和更新換代,軟件系統所需的外部環境或數據環境可能會更新和升級,如操作
系統或數據庫系統的更換等。爲了使軟件系統適應這種變化,需要對軟件進行相應的修改,這種維護活動稱爲
適應性維護。 - 完善性維護
在軟件的使用過程中,用戶往往會對軟件提出新的功能與性能要求。爲了滿足這些要求,需要修改或再開
發軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。這種情況下進行的維護活動
叫做完善性維護。 - 預防性維護
預防性維護是指採用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分重新進行設計、編制和測
試,提高軟件的可維護性和可靠性等,爲以後進一步改進軟件打下良好基礎。 - 軟件的可維護性
軟件的可維護性是指軟件能夠被理解、糾正、適應和完善以適應新環境的難易程度。 - 項目
項目就是以一套獨特而相互聯繫的任務爲前提,有效地利用資源,爲實現一個特定的目標所做的努力。 - 項目管理
項目管理就是通過合理地組織和利用一切可以利用的資源,按照計劃的成本和計劃的進度,完成一個計劃
的目標,它包含團隊管理、風險管理、採購管理、流程管理、時間管理、成本管理和質量管理等。