1.1軟件工程概述


軟件工程概述

什么是軟件?

軟件 = 程序 + 數據 + 文檔

程序按事先設計的功能和性能需求執行的指令序列

數據是程序能正常操縱信息的數據結構

文檔與程序開發、維護和使用有關的圖文材料

。程序是指一系列按照事先設定的功能和性能需求執行的指令序列;數據是程序能正常操縱信息的數據結構;文檔是與程序開發、維護和使用有關的圖文資料。

三者之中,程序是軟件的可執行部分,而數據與文檔是不可執行部分,他們三者之間共同協作才能構成一個完整的軟件。

特征

第一,軟件是由人來開發或者工程化的,並不像桌子椅子一樣用機器能制造出來;

第二,軟件的生產,可以只是計算機上的一個簡單的復制粘貼過程;

第三,軟件產品更易於被多次修改,而你買的茶杯想從方的變成圓的則沒那么容易;

第四,軟件開發的環境對產品影響較大,因為開發者在開發過程中易於受到各種環境因素干擾,而生產線上的家具則不管周邊噪音再大出來的也是同樣的東西;

第五,軟件開發的時間和工作量難以估計,而不像生成機器的速率那樣容易度量;

第六,與工業產品不同,軟件的開發進度幾乎沒有客觀衡量標准;

第七,軟件的測試非常困難,測試一輛自行車能不能騎,總是比從成千上萬行代碼中找錯誤容易得多;

第八,軟件不會磨損和老化,哪怕用上十年八年,也不會像輪胎一樣需要報廢,只要你不嫌棄就可以一直用下去;

第九,與家具家電的售后維護不同,軟件維護不是簡單的更換元器件,由於代碼之間更為復雜的邏輯結構,變更容易產生新的問題。

軟件雙重作用

軟件它是一種產品,為用戶提供計算能力,產生、管理、獲取、修改、顯示或傳輸信息,比如我們經常用到的word、excel、photoshop等等。

另一方面也是開發工具,用於開發其他軟件產品,支持或直接提供系統所需的功能、控制其他程序、改善通信、幫助開發其它軟件等,比如windows操作系統、蘋各類編程語言的集成開發環境等等。

軟件的分類(按軟件功能)

按照軟件的功能,可以將軟件分為三類。

類別 包含 舉例
系統軟件 操作系統、數據庫管理系統、設備驅動程序、通信處理程序等 windows、oracle等等;
支撐軟件 文本編輯程序、文件格式化程序、磁盤或磁帶間數據傳輸的程序、程序庫系統、支持需求分析、設計、實現、測試和支持管理的軟件 word、pqmagic、rational rose
應用軟件 商業數據處理軟件、工程與科學計算軟件、計算機輔助設計/制造軟件、系統仿真軟件、智能產品嵌入軟件、醫療/制葯軟件、事務管理/辦公自動化軟件、計算機輔助教學軟件 如MATLAB、AutoCAD、騰訊QQ

軟件的分類(按服務對象)

兩類

項目軟件的服務對象:來自於一個具體項目范圍內的客戶集合,比如某高校的教務管理系統;

產品軟件的服務對象:客戶數量龐大,如各類互聯網軟件,它們的目標服務對象都是全國乃至全世界的網民。

軟件的發展階段

四個階段。

個體化發展階段:軟件往往只是為解決某個實際問題而專門編寫的程序,開發者即使用者。

作坊式發展階段:早期軟件作坊缺乏組織管理,程序編寫結合了一定的說明。

工程化發展階段:軟件公司化運作,更加產品化、系列化、標准化、工程化,文檔被引入軟件的內涵。

產業化特點:市場更加廣闊,品類更加豐富,產品生態鏈愈加完整

軟件規模越來越大

知名的谷歌軟件迄今已包含了20億行代碼。

所以可以想象這樣的軟件產品的設計開發與維護難度,不是普通的工業產品所能比擬的。

為什么軟件發展如此之快?

1、計算需求,軟件必須不斷的發展以適應新的計算環境或者技術的變化,比如從單機計算到現在的雲計算;

2、業務需求,軟件必須不斷改善以實現新的業務需求,比如從小微企業單機OA軟件到集團互聯網OA軟件;

3、嵌入需求,軟件必須不斷擴展,以滿足和新一代系統或數據庫之間的互操作性,比如從access單機數據庫到HBASE雲數據庫;

4、架構需求,軟件必須重新設計以使其在新的網絡環境中是可用的,比如從互聯網軟件再到移動互聯網軟件等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM