軟件工程學簡述

軟件危機

軟件危機是指計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。(考試中名詞解釋或者選擇題為主)

軟件危機的典型表現

(1)對軟件開發成本和進度的估計常常很不準確。

(2)用戶對“已完成的”軟件系統不滿意的現象經常發生。

(3)軟件產品的質量往往靠不住。

(4)軟件通常沒有適當的文檔資料。

(5)軟件成本在計算機系統總成本中所占的比例逐年上升。

(6)軟件常常是不可維護等等。

(7)軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。

?? 總之開發成本高,周期長,質量差,滿足不了市場需求。

產生軟件危機的原因

(1)軟件規模龐大,而且程序復雜性將隨著程序規模的增加而呈指數上升。

(2)軟件開發的管理困難。

(3)輕視軟件維護的重要性。(軟件維護的費用占軟件總費用的55%-70%)

(4)軟件開發費用增加。

(5)軟件開發技術落后。

消除軟件危機的途徑

(1)首先應該對計算機軟件有一個正確的認識。

(2)必須充分認識到軟件開發不是某個個體的神秘技巧,而是一種組織良好,管理嚴密,各類人員協調配合,共同完成的工程項目。

(3)必須充分吸收和借鑒人類長期以來從事各種工程項目所累積的行之有效的原理,概念,技術和方法,特別要吸收幾十年來人類從事計算機硬件研究和開發的經驗教訓。

(4)應該開發和使用更好的軟件工具。

為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。

軟件工程介紹

1968年在第一屆NATO會議上提出了軟件工程的一個早期定義:軟件工程介紹為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。

1993年IEEE進一步給出了一個更全面更具體的定義:軟件工程是:①把系統的、規范的、可度量的途徑應用于軟件開發、運行和維護的過程,也就是把工程應用于軟件;②研究①中提到的途徑。

軟件工程的本質特性

(1)軟件工程的中心課題是控制復雜性

(2)軟件經常變化。

(3)開發軟件的效率非常重要。

(4)和諧地合作是開發軟件的關鍵。

(5)軟件必須有效地支持它的用戶。

(6)軟件工程關注于大型程序的構造。

(7)在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品。

軟件工程三個觀點

技術觀點:

軟件項目的分析,設計,編碼,測試,維護等方法。依據軟件技術理論,以開發高效,健壯,可復用,可維護的軟件為目標。研究軟件體系結構,組成成本以及構造方式等。

工程觀點:

包括軟件項目的招標,投標,合同,實施,監督,驗收,推廣等方面,以經濟管理科學的理論為依據,研究軟件工程的規劃策略和經濟收益等工程問題。

管理觀點:

包括軟件開發的人員組織,過程控制進度,風險分析和質量保證體系等方面,以科學性,合理性,高效運行及可測量性為目標,來研究工程項目管理。

軟件工程的基本原理

(1)用分階段的生命周期計劃嚴格管理。

(2)堅持進行階段評審。

(3)實行嚴格的產品控制。

(4)采用現代程序設計技術。

(5)結果應能清楚地審查。

(6)開發小組的人員應該少而精。

(7)承認不斷改進軟件工程實踐的必要性。

軟件工程包括技術和管理兩個方面的內容,是技術與管理緊密結合所形成的工程學科。

所謂管理就是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。

通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型

軟件工程方法學包含3個要素:方法、工具和過程。

方法是完成軟件開發的各項任務的技術方法,回答”怎么做“的問題。

工具是為運用方法而提高的自動的或半自動的軟件工程支撐環境。

過程是為了獲得高質量軟件所需要完成的一系列的框架,他規定了完成各項任務的工作步驟。

目前使用最廣泛的軟件工程方法學,分別是傳統方法學,面向對象方法學

軟件生命周期

由軟件定義,軟件開發和運行維護3個時期組成,每個時期進一步分成若干個階段。

定義階段:問題定義,可行性分析,需求分析。

開發階段:軟件設計,程序編碼,軟件測試

維護階段:運行維護,交付

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534363.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534363.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534363.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python二級筆記(4)

知識點&#xff1a; 1&#xff0c;冒泡排序、快速排序、簡單插入排序、簡單選擇排序在最壞情況下比較次數均為n(n-1)/2&#xff0c;堆排序在最壞情況下比較次數為nlog(2↓)n,在最壞情況下希爾排序需要比較的次數是n(↑r)&#xff08;1<r<2&#xff09;。 2&#xff0c;…

Python二級筆記(5)

知識點&#xff1a; 1&#xff0c;樹的度&#xff0c;及樹中存在的最大度數&#xff1b;如樹的度為3&#xff0c;即樹中只存在度為0&#xff0c;1&#xff0c;2&#xff0c;3的結點。 2&#xff0c;設循環隊列的存儲空間為Q&#xff08;1:m&#xff09;,初始狀態為空。在循環…

Qt圖形界面編程入門(1)

一、類和對象 1&#xff0c;面向過程程序設計&#xff08;自頂向下設計&#xff09; 分析出解決問題所需的步驟&#xff0c;然后用函數把這些步驟一一實現&#xff0c;使用的時候一個一個調用 過程式設計對于比較復雜的問題&#xff0c;或是在開發中需求變化比較多的時候&am…

Qt圖形界面編程入門(2)

二&#xff0c;指針和引用 共同點&#xff1a;它們都代表其他變量占據的某一塊內存區&#xff0c;通過指針或引用都可以對他們代表的其他變量進行操作。 以下語句利用指針對變量賦值&#xff1a; int m; int *p; //指針定義 p &m; //將m的內存地址賦給p *p 5;…

Qt圖形界面編程入門(3)

公有成員和私有成員 從訪問權限上分&#xff0c;類的成員又分為&#xff1a;公有成員&#xff08;public&#xff09;、私有成員&#xff08;private&#xff09;和保護成員&#xff08;protected&#xff09;三類。 公有成員用public來說明。這部分成員可以在程序中通過“…

Qt圖形界面編程入門(4)

構造函數和析構函數 構造函數是一個與類同名的特殊的公有成員函數。 創建類對象時構造函數會被調用&#xff0c;且只調用一次/ 構造函數無返回類型。 默認構造函數格式&#xff1a; 類名&#xff08;&#xff09;{.......} Account(){ //無返回類型&#xff0c;無參數I…

Qt圖形界面編程入門(5)

三&#xff0c;繼承和多態 繼承是定義新類的一種機制&#xff0c;使用這種機制創建新類時只需要聲明新類和已創建類之間的差別 對應一個繼承關系&#xff0c;創建的新類稱為子類&#xff0c;被繼承的類稱為父類或基類。子類可以使用父類定義的屬性和方法&#xff0c;也可以…

tensorflow安裝教程

https://note.youdao.com/ynoteshare1/index.html?iddddc63e6a2dfb70605ae9753bcc71a60&typenote 如果失效請下載文件查看&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/15FZETB3rzcpH-LOOpmpjTQ 提取碼&#xff1a;6jfm 如果安裝包找不到請點擊鏈接提取&am…

TensorFlow深度學習應用開發實戰(深度學習簡介和開發環境搭建)

一、深度學習的發展及其應用 1.1 深度學習的發展歷程 1956年&#xff0c;John McCarthy&#xff08;約翰麥卡錫&#xff09;等人在美國達特茅斯學院&#xff08;Dartmounth College&#xff09;開會探討如何使用機器模擬人的智能時&#xff0c;提出了“人工智能”這一概念。 …

路由與交換技術(鋪墊內容)

一、OSI參考模型 層次 結構 功能 數據 地址 設備 7 應用層 用戶接口 原始文件 主機名 主機 6 表示層 壓縮&a…

Python二級筆記(6)

一、知識點 1&#xff0c;continue語句用于中斷本次循環的執行&#xff0c;繼續執行下一輪循環的條件&#xff0c;表示跳出當前循環&#xff1b;Python中的for、while循環都有一個可選的else語句&#xff0c;如果break語句終止循環&#xff0c;那么else語句將不會執行。 2&am…

瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型

一、瀑布模型 1、按照傳統的瀑布模型開發軟件&#xff0c;有下述幾個特點。 ①階段間具有順序性和依賴性 階段間具有順序性和依賴性&#xff0c;這個特點有兩重含義&#xff1a; 1&#xff0c;必須等前一階段的工作完成之后&#xff0c;才能開始后一階段的工作&#xff1b;…

Linux基礎命令(1)

1.強大好用的Shell Shell是一個命令工具。Shell&#xff08;也稱終端或殼&#xff09;充當的是人與內核&#xff08;硬件&#xff09;之間的翻譯官&#xff0c;用戶把一些命令“告訴”終端&#xff0c;它會調用相應的程序服務去完成某些工作。 現在紅帽系統在內的許多主流Lin…

Python二級筆記(7)

知識點&#xff1a; 1&#xff0c;鏈式存儲結構既可以針對線性結構也可以針對非線性結構&#xff0c;鏈式存儲結構中每個結點都由數據域與指針域兩部分組成&#xff0c;增加了存儲空間。 2&#xff0c;對象的基本特點&#xff1a;標識唯一性&#xff0c;分類性&#xff0c;多…

Python二級筆記(8)

知識點&#xff1a; 1&#xff0c;棧支持子程序調用。棧上一種只能在一端進行插入或刪除的線性表&#xff0c;在主程序調用子函數時要首先保存主程序當前狀態&#xff0c;然后轉去執行子程序&#xff0c;最終把子程序的執行結果返回到主程序中調用子程序的位置&#xff0c;繼續…

軟件工程(Rational統一過程)

Rational統一過程&#xff08;Rational Unified Process,RUP&#xff09;是由Rational軟件公司推出的一種完整而且完美的軟件過程。 RUP總結了經過多年商業化驗證的六條最有效軟件開發經驗&#xff0c;這些經驗被稱為“最佳實踐”。 1&#xff0c;最佳實踐 &#xff08;1&am…

軟件工程(敏捷過程和極限編程)

1&#xff0c;敏捷過程 為了使軟件開發團隊具有高效工作和快速響應變化的能力&#xff0c;17位著名的軟件專家于2001年2月聯合起草了敏捷軟件開發宣言。 敏捷軟件開發宣言由下述4個簡單的價值觀聲明組成。 &#xff08;1&#xff09;個體和交互勝過過程和工具 優秀的團隊成…

軟件工程(可行性研究講解)

可行性研究 可行性研究的目的&#xff0c;就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。&#xff08;只是尋找客戶所提需求的解決方案&#xff0c;能干還是不能干的問題。&#xff09; 可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程。 GB…

軟件工程(系統流程圖講解)

系統流程圖是概括地模型物理系統的工具。 基本符號 系統符號 系統流程圖的習慣畫法是使信息在圖中從頂向下或從左到右流動。 例子 某裝配廠有一座存放零件的倉庫&#xff0c;倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零…

軟件工程(數據流圖)

數據流圖有4種基本符號&#xff1a; 正方形或&#xff08;立方體&#xff09;表示數據的源點或者終點&#xff1b; 圓角矩形&#xff08;或圓形&#xff09;代表變換數據的處理&#xff1b; 開口矩形&#xff08;或兩條平行橫縣&#xff09;代表數據存儲&#xff1b; 箭頭表…