軟體工程自學指導書

2022-05-10 10:24:06 字數 5259 閱讀 4802

軟體工程

自學指導書

宋海南2023年於東北石油大學

第一章軟體與軟體工程

教學內容

1.軟體

軟體的發展、軟體的定義、軟體的特點、軟體的種類。

2.軟體工程的概念

軟體危機與軟體工程的定義、軟體工程的目標、軟體工程的原則。

3.軟體生存週期與軟體開發模型

瀑布模型、原型模型、螺旋模型。

教學要求

掌握:軟體和軟體工程的基本概念。了解:軟體生命週期及軟體開發的各個模型。

自學要點

軟體、軟體工程、軟體生存週期和軟體開發模型

學時分配

3學時(自學學時:6學時)

1.1 軟體的定義及其特點

軟體的定義

計算機系統是通過執行程式來實現各種不同的應用。把各種不同功能的程式,包括使用者為自己的特定目的編寫的應用程式、檢查和診斷機器系統的程式、支援使用者應用程式執行的系統程式、管理和控制機器系統資源的程式等通常稱為軟體。

軟體的非精確定義:

軟體是計算機系統中與硬體相互依存的另一部分,它是包括程式、資料及其相關文件組成的完整集合。

比較公認的軟體定義由以下三部分組成:

在執行中能提供所希望的功能和效能的指令集(即程式);使程式能夠正確執行的資料結構;描述程式研製過程、方法所用的文件。

軟體的特點

·軟體具有抽象特徵。軟體是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性

·軟體是智力勞動的結果。軟體是通過人們的智力活動,把知識與技術轉化成資訊的一種產品,是在研製、開發中被創造出來的。

·軟體無備件特徵。在軟體的執行和使用期間,沒有硬體那樣的機械磨損、老化問題。

·軟體對硬體有明顯的依存性。軟體的開發和執行經常受到計算機系統的限制,對計算機系統有著不同程度的依賴性。在軟體的開發和執行中必須以硬體提供的條件為基礎。

·軟體的研發主要由人工完成。軟體的開發至今尚未完全擺脫手工的開發方式。

·軟體無明顯的製造過程。軟體的開發費用越來越高,成本相當昂貴。

軟體的分類

軟體依據不同的標準,可劃分為不同的分類。根據軟體的應用領域可分為:系統軟體、實時軟體、商業軟體、科學計算軟體、嵌入式軟體、人工智慧軟體。

1.2 軟體工程概念

軟體危機與軟體工程定義

軟體危機

軟體危機指的是軟體開發和維護過程中遇到的一系列嚴重問題。

軟體危機的表現

·產品不符合使用者的實際需要。

·軟體開發生產率提高的速度遠遠不能滿足客觀需要,軟體的生產率遠遠低於硬體生產率和計算機應用的增長,使人們不能充分利用現代計算機硬體提供的巨大潛力。

·軟體產品的質量差。

·對軟體開發成本和進度的估計常常不準確。

·軟體的可維護性差。

·軟體文件資料通常既不完整也不合格。

·軟體的**昂貴,軟體成本在計算機系統總成本中所佔的比例逐年上公升。

產生軟體危機的原因

·軟體不同於硬體,它是計算機系統中的邏輯部件而不是物理部件。在寫出程式**並在計算機上試執行之前,很難檢驗開發的正確性,而且軟體開發的質量也較難評價。

·軟體不同於一般程式,它的乙個顯著特點是規模龐大。

·雖然軟體本身獨有的特點確實給開發和維護帶來一些客觀困難,但是人們在開發和使用計算機系統的長期實踐中,也確實積累和總結出了許多成功的經驗。

·開發和管理人員只重視開發而輕視問題的定義,使軟體產品無法滿足使用者的需求。

·軟體管理技術不能滿足現代軟體開發的需要,沒有統一的軟體質量管理規範。

·在軟體的開發與維護關係問題上存在錯誤的概念。

軟體工程的定義

軟體工程是指導計算機軟體開發和維護的工程學科。採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,這就是軟體工程。

軟體工程準則可以概括為如下六條基本原理。

·(1)用分階段的生存週期計畫嚴格管理

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

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

·(4)採用現代程式設計技術

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

·(6)合理安排軟體開發小組的人員

軟體工程的基本內容與目標

軟體工程的基本內容

從內容上劃分軟體工程學可分為理論、結構、方法、工具、環境、管理、規範等。

軟體工程學研究的基本目標

·定義良好的方法學,面向計畫、開發維護整個軟體生存週期的方法學。

·確定的軟體成分,記錄軟體生存週期每一步的軟體檔案資料,按步顯示軌跡。

·可**的結果,在生存週期中,每隔一定時間可以進行複審。

軟體工程學的最終目標是以較少投資獲得易維護、易理解、可靠、高效率的軟體產品。軟體工程學是研究軟體結構、軟體設計與維護方法、軟體工具與環境、軟體工程標準與規範 、軟體開發技術與管理技術的相關理論。

軟體工程的原則

為了開發出低成本高質量的軟體產品,軟體工程學應遵守以下基本原則:分解、獨立性、一致性、確定性。

1.3 軟體生存週期與軟體開發模型

軟體工程採用的生存週期方法就是從時間角度對軟體的開發與維護這個複雜問題進行分解,將軟體生存漫長的時期分為若干階段,每個階段都有其相對獨立的任務,然後逐步完成各個階段的任務。

軟體生存週期

乙個軟體從定義到開發、使用和維護,直到最終被廢棄,要經歷乙個漫長的時期,通常把軟體經歷的這個漫長的時期稱為生存週期。軟體生存週期就是從提出軟體產品開始,直到該軟體產品被淘汰的全過程。

軟體生存週期一般可分為以下階段:

·問題定義

·可行性研究

·需求分析

·設計·編碼

·測試·執行與維護

軟體生存期也可以分為三個大的階段:計畫階段、開發階段和維護階段。

軟體開發模型

為了反映軟體生存週期內各種工作應如何組織及軟體生存週期各個階段應如何銜接,需要用軟體開發模型給出直觀的圖示表達。軟體開發模型是軟體工程思想的具體化,是實施於過程模型中的軟體開發方法和工具,是在軟體開發實踐中總結出來的軟體開發方法和步驟。總的說來,軟體開發模型是跨越整個軟體生存週期的系統開發、執行、維護所實施的全部工作和任務的結構框架。

1.瀑布模型

瀑布模型: 瀑布模型規定了各項軟體工程活動,包括:制定開發計畫,進行需求分析和說明,軟體設計,程式編碼。

測試及執行維護,參看圖1.1。並且規定了它們自上而下,相互銜接的固定次序,如同瀑布流水,逐級下落。

圖1.1 軟體生存週期的瀑布模型

然而軟體開發的實踐表明,上述各項活動之間並非完全是自上而下,呈線性圖式。實際情況是,每項開發活動均處於乙個質量環(輸入-處理-輸出-評審)中。只有當其工作得到確認,才能繼續進行下一項活動,在圖1.

1中用向下的箭頭表示;否則返工,由向上的箭頭表示。

2.螺旋模型

對於複雜的大型軟體,開發乙個原型往往達不到要求。螺旋模型將瀑布模型與演化模型結合起來,並且加入兩種模型均忽略了的風險分析。螺旋模型沿著螺線旋轉,如圖1.

2所示,在笛卡爾座標的四個象限上分別表達了四個方面的活動,即:

制定計畫──確定軟體目標,選定實施方案,弄清專案開發的限制條件;

風險分析──分析所選方案,考慮如何識別和消除風險;

實施工程──實施軟體開發

客戶評估──評價開發工作,提出修正建議。

沿螺線自內向外每旋轉一圈便開發出更為完善的乙個新的軟體版本。

圖1.2 螺旋模型

3.原型模型

又稱快速成型模型,快速原型模型正是為了克服瀑布模型的缺點而提出來的。一般用於最終系統的早期使用者評價,開發工期短,質量***。其本質是「快速」,開發人員應該盡可能快地建造出原型系統,以加速軟體開發過程,節約軟體開發成本。

原型的用途是獲知使用者的真正需求,一旦需求確定了,原型將被拋棄。

主要優點:

使用這種軟體過程開發出的軟體產品通常能滿足使用者的真實的需求;

軟體產品的開發過程基本上是線性順序過程。

4. 變換模型

是基於形式化規格說明語言以及程式變換技術的軟體系統開發模型。

第二章可行性研究

教學內容

1. 問題的定義

2. 可行性研究的任務

3. 可行性研究的步驟

4. 系統流程圖

5. 成本/效益分析

教學要求

了解:可行性分析的步驟

自學要點

可行性研究的任務和步驟、系統流程圖。

學時分配

2學時(自學學時:4學時)

可行性研究

問題的定義

問題定義階段需解決問題是「該軟體開發專案要解決什麼問題」。

可行性研究的任務

可行性研究的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。也就是說可行性研究的目的不是解決問題,而是確定問題是否值得去解,研究在當前的具體條件下,開發新系統是否具備必要的資源和其它條件。

一般說來,應從經濟可行性、技術可行性、執行可行性、法律可行性和開發方案的選擇等方面研究可行性。

可行性研究需要的時間長短取決於工程的規模,一般說來,可行性研究的成本只佔預期的工程中成本的5-10%。

可行性研究的步驟

1.確定系統規模和目標

2.分析目前正在使用的系統

3. 設計出新系統的高層邏輯模型

4. 評審系統模型

5. 設計和評價供選擇的方案

6. 推薦乙個方案並說明理由

7. 制定行動方針

8. 擬定開發計畫並書寫計畫任務書

9. 編制可性報告並提交審查

可行性研究工具――系統流程圖

系統流程圖是描繪物理系統的傳統工具。它的基本思想是用圖形符號以黑盒子形式描繪系統裡面的每個部件(程式、資料庫、圖表、人工處理等)。系統流程圖不同於程式流程圖。

系統流程圖的基本符號

系統流程圖的作用

1. 製作系統流程圖的過程是系統分析員全面了解系統業務處理概況的過程,它是系統分析員作進一步分析的依據。

2. 系統流程圖是系統分析員、管理人員、業務操作人員相互交流的工具。

3. 系統分析員可直接在系統流程圖上擬出可以實現計算機處理的部分。

4. 可利用系統流程圖來分析業務流程的合理性。

成本效益分析

成本/效益分析的目的是要從經濟角度分析開發乙個特定的新系統是否划算,從而幫助使用部門負責人正確地做出是否投資於這項開發工程的決定。

成本估計

本課程把主要的成本估計方法歸併為自頂向下估計、自底向上估計和演算法模型估計三類。費用估計

1. **行技術

一旦估計出源**行數以後,用每行**的平均成本乘以行數就可以確定軟體的成本。每行**的平均成本主要取決於軟體的複雜程度和工資水平。

2. 任務分解技術

這種方法首先把軟體開發工程分解為若干個相對獨立的任務。再分別估計每個單獨的開發任務的成本,最後加起來得出軟體開發工程的總成本。

《軟體工程》試驗指導書

目錄第一章前言 1 第二章撰寫需求規格說明書 2 第三章撰寫概要設計說明書 3 第四章撰寫詳細設計說明書 4 第五章軟體測試和除錯 5 附錄一 6 附錄二 8 附錄三 11 附錄四 13 第一章前言 一 試驗目的 文件是軟體的重要組成部分,軟體開發人員不僅能閱讀文件資料,而且能夠正確的書寫各種文件。...

軟體工程實驗指導書

前言軟體工程實驗是為計算機相關專業本科 軟體工程 課程配套設定的,是 軟體工程 課程講授中乙個重要的 不可或缺的實踐環節。其目的是使學生能夠針對具體軟體工程專案,全面掌握軟體工程管理 軟體需求分析 軟體初步設計 軟體詳細設計 軟體測試等階段的方法和技術,通過該課程設計使學生進一步理解和掌握軟體開發模...

《軟體工程》專業實習指導書

海南大學三亞學院 海南大學三亞學院理工分院 2011年 6月 軟體工程 專業實習指導書 一 實習目的 專業實習是我校教學實踐環節的乙個重要階段。通過實習,驗證和鞏固充實所學理論知識,加深對相關內容的理解,接觸課堂以外的實踐知識,加深了解社會對本專業的需要。培養獨立處理和解決複雜問題的能力,並開闊眼界...