軟體危機:
60年代中期以前:通用硬體相當普遍,軟體卻是為某個具體的應用而編寫的。
60年代中到70年代中:軟體作坊。
軟體危機:計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。(正常、不正常執行軟體都具有這種問題)
軟體危機原因:
1)軟體本身特點造成;
2)軟體開發與維護的方法不正確。
主要表現:
(a)忽視軟體需求分析;
(b)認為軟體開發就是寫程式並使之執行;
(c)輕視軟體維護;
解決軟體危機的途徑:
1)推廣使用在實踐中總結出來的開發軟體的成功技術和方法,並研究探索更有效的技術和方法;
2)開發和使用更好的軟體工具;
3)良好的組織管理措施。
為了解決軟體危機產生的問題,軟體工程與方法學逐漸形成,然後出現了兩個相互相承又各有側重的學科:
1)軟體工程學:主要應用工程的方法和技術研究軟體開發與維護的方法、工具和管理的一門交叉學科。
2)程式設計方法學:主要應用數學的方法研究程式的性質以及程式設計的理論和方法的學科。
軟體工程的介紹
2023年nato會議:軟體工程就是為了經濟地獲得可靠的且能在實際機器上有效地執行的軟體,而建立和使用完善的工程原理。
2023年ieee:軟體工程是:
(1)把系統的、規範的、可度量的途徑應用於軟體開發、執行和維護過程;
(2)研究(1)中提到的途徑。
軟體工程的本質特性:
1. 軟體工程關注於大型程式的構造;
2. 軟體工程的中心課題是控制複雜性;
3. 軟體經常變化;
4. 開發軟體的效率非常重要;
5. 和諧地合作是軟體開發的關鍵;
6. 軟體必須有效地支援它的使用者;
7. 在軟體工程領域中是由具有一種文化背景的人替具有另一種文化背景的人創造產品。
軟體工程的基本原理
1. 用分階段的生命週期計畫嚴格管理;
2. 堅持進行階段評審;
3. 實行嚴格的產品控制;
4. 採用現代程式設計技術;
5. 結果能清楚地審查;
6. 開發小組的人員應該少而精;
7. 承認不斷改進軟體工程實踐的必要性。
軟體工程方法學
通常把在軟體生命週期全過程中使用的一整套技術方法的集合稱為方法學(methodology),也稱為范型(paradigm)。
軟體工程方法學的3要素:方法、工具和過程
傳統方法學
也稱為生命週期方法學或結構化范型。
結構化方法(structure method)有:
1)結構化設計方法(sd);
2)結構化分析方法(sa);
3)結構化分析與設計技術(sadt)
4)jackson方法
5)warnier方法
物件導向方法學
把資料和對資料的操作緊密結合起來的方法,模擬人類認識世界解決問題的方法和過程。
物件導向的方法
=物件(屬性與服務的封裝)
+分類
+繼承
+通過訊息的通訊
其他開發方法
1)適用於實時事物處理系統的有限狀態機方法(fsm);
2)適用於併發軟體系統的petri網方法;
3)以數學概念和理論為基礎的形式化方法,如
sdc公司的形式化開發方法fdm:
(formal development methodology)
ibm公司的維也納開發方法vdm:
(vienna development method )
軟體生命週期
指軟體從提出到最終被淘汰的這個存在期。
軟體生命週期組成:
1)軟體定義;
a.問題定義 b.可行性研究 c.需求分析
2)軟體開發;
d.總體設計 e.詳細設計
f.編碼和單元測試 g.綜合測試
3)執行維護。
軟體生命週期各個階段:
1.問題定義;
2.可行性研究;
3.需求分析;
4.總體設計(概要設計);
5.詳細設計;
6.編碼與單元測試;
7.綜合測試;
8.維護。
軟體工程(一) 軟體工程緒論
軟體工程是應用電腦科學理論和技術以及工程管理原則和方法,按預算和進度滿足使用者要求的軟體產品的工程,或以此為研究物件的學科。軟體工程的發展大體可以分為兩個時期 20世紀60年代末到80年代初 這一時期主要圍繞軟體專案,開展了有關開發模型 開發方法和支援工具的研究。主要成果體現為 提出了瀑布模型,試圖...
軟體工程(一)
一 隨機生成300道四則運算題目的程式 c語言 一 小學低年級題目為例 分析 1.編寫測試題,且為100道,就要用到迴圈函式,因此想到用for 函式 2.隨機產生兩個數,就想到用rand 函式。注 1.rand 函式在使用時應有標頭檔案 include,我上課時由於沒有用此標頭檔案,程式一直無法執行...
軟體工程 軟體工程概述
一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...