軟件的定義:
軟件一詞所指包括程序以及支持程序安裝、操作、修復和升級所需的所有信息及材料。這和Fred Brooks的定義是一致的,他把程序定義為一組能夠在計算機上運行的指令,把編程制品定義為程序和使程序智能、可用及可擴展的元素的集合。在這種定義方式下,軟件即指編程制品。
軟件工程的定義:
軟件工程是指將工程學、科學、原理和方法按照一定規則應用到軟件開發過程中以保證質量并節約成本。
雖然這里每個詞條都可以進行更深入的討論,但我們主要考慮規則和質量,因為其他幾個方面已經被廣泛的接受和理解。在復雜的工程和科學領域,已定義的專業規則提供了一個框架,這個框架是在過去的教訓上建立的。通過把這些規則應用到配置管理、編碼標準或者命名慣例中,一個軟件組織就能夠避免重復解決以前遇到過的問題。這些規則對于軟件工程的價值就等同干凈的房間之于半導體或者標準計量單位之于實驗學科。
質量是指一個產品在多大的程度上滿足用戶的要求。這包括功能滿足、出錯率、性能、可擴展性、可用性,或者任何其他對用戶重要的產品特征。
軟件工程過程的定義:
軟件工程過程是將用戶需求轉化為軟件所需的軟件工程活動的總集。
這個過程可能包括投入、需求分析、規格說明、設計、實施、驗證、安裝、使用支撐和文檔化,還可能包括短長期的修復和升級以滿足用戶增長的需求。因為維護沒有被普遍接受,所以在這里沒有包括進來。在美國國防部(DoD)維護包括軟件修復和升級,而在商業計算機領域它是指提供服務、修復軟件缺陷但不包括升級。
由于用戶的需求和使用環境具有不可預知性,因此軟件工程過程是一個學習改進的過程。這可能需要專門的研究用戶需求,將其具體化在需求定義中,并隨著在設計和實現過程中獲得的更多知識進行調整。
軟件工程過程的范圍:
軟件工程過程開始于實現軟件中某項任務的決定。但它不包括如下這些與系統有關的活動:定義系統的總體目標和需求;在軟硬件之間劃分系統的功能;定義軟硬件的接口;進行軟硬件之間的整合和測試;整個系統的可接受性的測試和操作。
雖然上述這些活動是必不可少的,它們或許還需要相當的軟件技能,但它們應當劃分在系統設計或者系統管理當中,而不應該是軟件工程過程的一部分。
軟件過程架構:
一個軟件過程架構是一個框架,在這個框架中一個項目的具體過程被定義了。
雖然應用在具體項目中的軟件工程過程應當反映特殊性,但一個框架卻需要提供項目間的共同屬性。一個軟件架構包括關鍵檢查點,任務,允許采用的通用技術、方法和度量的說明。這樣既帶來了標準化的許多好處,又能根據項目需要靈活調整。此外,它還提供了一個評估和改進軟件工程過程的框架。
文章來源于領測軟件測試網 http://www.kjueaiud.com/