《軟體工程方法與實踐》 1 2 什麼是軟體

2021-09-23 16:02:24 字數 1290 閱讀 7584

既然軟體工程的主角是軟體開發,那麼在現代社會中,軟體擔任的究竟是一種什麼樣的角色呢?我們使用的大部分軟體同時擔任著兩個角色,既是軟體產品,又是軟體工具。軟體產品是指為終端使用者使用並帶來益處的具有商業價值的軟體系統。軟體工具是指開發其他軟體的軟體系統。我們可以利用這些軟體系統儲存資訊或進行資訊的變換等。

1.2.1 軟體的定義與特性

什麼是軟體?軟體是計算機系統中與硬體相對應的另一部分,是一系列程式、資料及其相關文件的集合。程式、資料和文件稱為軟體的三要素,如圖1-1所示。

程式是按照特定順序組織的計算機資料和指令的集合。

資料是使程式能正常執行的資料結構。

文件是與程式的開發、維護和使用有關的資料。

計算機軟體的核心是程式,而文件則是軟體不可分割的組成部分。

要理解軟體的真正含義,需要了解軟體有哪些特徵。與軟體相對應的是硬體,在計算機的體系結構中,人們當初利用智慧型創造的硬體是有物理形態的。現在,人們利用結構化的思想創造出的軟體是邏輯的而不是有固有形態的實體,所以,計算機軟體和硬體有著截然不同的特徵。

複雜性。軟體是乙個龐大的邏輯系統,比人類構造的其他產品更複雜,甚至硬體的複雜性和軟體比起來也是微不足道的。此外,軟體主要是依靠人腦的「智力」構造出來的,多種人為因素使得軟體難以統一化,更增加了其複雜性。軟體的複雜性使得軟體產品難以理解、難以生產、難以維護,更難以對生產過程進行管理。

一致性。軟體必須和執行它的硬體保持一致,這是由軟體對硬體的依賴所決定的,一般採用軟體順應硬體介面,而不是硬體順應軟體的方案。如果硬體系統是「現存」的,軟體必須和現有硬體系統介面保持一致。此外,由於計算機的軟體和硬體具有功能互換性,所以也可能出現用軟體來替代硬體介面的功能。

退化性。軟體與硬體相比不存在磨損和老化的問題。事實上,軟體不會磨損,但它會因缺陷和過時而退化,因此,軟體在其生命週期中需要進行多次的維護,直至被淘汰。

易變性。軟體在生產過程中,甚至在投入執行之後,也可以再改變。軟體必須能夠經歷變化並容易改變,這也是軟體產品的特有屬性。軟體易變性的好處是:改變軟體往往可以收到改變或者完善系統功能的效果;修改軟體比更換硬體容易,使得軟體具有了易維護、易移植、易復用的特徵。但這種動態的變化難以**且難以控制,可能對軟體的質量產生負面影響。

移植性。軟體的執行受計算機系統的影響,不同的計算機系統平台可能會導致軟體無法正常執行,即軟體的移植性。好的軟體在設計時就要考慮到軟體如何應用到不同的系統平台。

高成本。軟體的開發是乙個複雜的過程,需要耗費大量的開發成本和管理成本,導致軟體的成本比較高。

1.2.2 軟體技術的演化

《軟體工程方法與實踐》 2 5 軟體工程活動

在軟體工程的概念被提出來之前,開發人員錯誤地認為,軟體就是開發活動,或者極端地認為其就是編碼,至於分析和設計等都是次要的。隨著軟體規模的不斷增大,軟體開發活動中暴露出很多問題。軟體工程是為克服這些問題而被提出,並在實踐中不斷地探索它的原理 技術和方法。軟體工程的工程化思想讓開發人員看到,軟體工程活動...

軟體工程 理論 方法與實踐

第一章 概述 軟體是電腦程式 規程以及計算機系統可能需要的相關文件和資料。軟體一般分為通用和定製軟體。軟體的特性 1 軟體是複雜的 2 軟體是不可見的 3 軟體是不斷變化的 4 大多數軟體是定製的,而不是通過已有的構件組裝的。軟體工程師為了經濟的獲得能夠在實際機器上高效執行的可靠軟體而建立和使用的一...

軟體工程理論方法與實踐

第一章 概述 軟體是人類思維的傑作,並成為人類現代生活的催化劑。今天軟體遍布整個世界,在生物工程 現代通訊 宇宙探索 商務處理 工業控制等方面發揮出巨大的威力,並推動了商業 科學和工程領域的跨越式發展,對整個社會的經濟和文化產生了深遠的影響。軟體工程師為了解決開發成本效益和軟體質量的問題而產生的。軟...