軟件工程基礎軟件工程基本概念_第1頁
軟件工程基礎軟件工程基本概念_第2頁
軟件工程基礎軟件工程基本概念_第3頁
軟件工程基礎軟件工程基本概念_第4頁
軟件工程基礎軟件工程基本概念_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章軟件工程基礎3.1軟件工程基本概念

計算機軟件是包括程序、數據及的完整集合。

軟件的特點(1)軟件是一種邏輯實體;

(23)軟件在運行、使用期間不存在磨損、老化問題;

(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題;

(5)軟件復雜性高,成本昂貴;

(6)軟件開發(fā)涉及諸多的社會因素。

軟件工程基礎軟件工程基本概念軟件按功能分為應用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。軟件危機主要表現在成本、質量、生產率等問題。軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。軟件工程包括3個要素:方法、工具和過程。

軟件工程過程是把軟件轉化為輸出的一組彼此相關的資源和活動,包含4種基本活動:

(1)P——軟件規(guī)格說明;

(2)D——軟件開發(fā);

(3)C——軟件確認;

(4)A——軟件演進。

軟件工程基礎軟件工程基本概念軟件周期:軟件產品從提出、實現、使用維護到停止使用退役的過程。軟件生命周期三個階段:軟件定義、軟件開發(fā)、運行維護,主要活動階段是:

(1)可行性研究與計劃制定;

(2)需求分析;

(3)軟件設計;

(4)軟件實現;

(5)軟件測試;

(6)運行和維護。軟件工程基礎軟件工程基本概念軟件工程的目標和與原則:目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產品?;灸繕耍焊冻鲚^低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)軟件易于移植;需要較低的費用;能按時完成開發(fā),及時交付使用?;驹瓌t:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。軟件工程基礎軟件工程基本概念軟件工程的目標和與原則:軟件工程的理論和技術性研究的內容主要包括:軟件開發(fā)技術和軟件工程管理。軟件開發(fā)技術包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。軟件工程管理包括:軟件管理學、軟件工程經濟學、軟件心理學等內容。軟件管理學包括人員組織、進度安排、質量保證、配置管理、項目計劃等。軟件工程原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。軟件工程基礎軟件工程基本概念習題1.下列敘述中,正確的是()

A)軟件就是程序清單。

B)軟件就是存放在計算機的文件。

C)軟件應包括程序清單以及結果。

D)軟件包括程序和文檔。2.下列描述中正確的是()A)程序就是軟件。B)軟件開發(fā)不受計算機系統(tǒng)的限制。C)軟件既是邏輯實體,又是物理實體。D)軟件是程序、數據與相關文檔的集合。軟件工程基礎軟件工程基本概念習題3.下列描述中正確的是()

A)軟件工程只是解決軟件產品的生產率問題。

B)軟件工程主要解決軟件產品的生產率問題。

C)軟件工程的主要思想是強調在軟件開發(fā)過程中需要應用工程化原則。

D)軟件工程只是解決軟件開發(fā)中的技術問題。4.下列選項中不屬于軟件生命周期開發(fā)階段任務的是()

A)軟件測試B)概要設計

C)軟件維護D)詳細設計5.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是

A)概要設計B)詳細設計

C)可行性分析D)需求分析軟件工程基礎軟件工程基本概念3.2結構化分析方法可行性研究可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。

1經濟可行性研究

2技術可行性研究。

技術可行性研究包括:風險分析、資源分析和技術分析

3法律可行性分析

4開發(fā)方式的選擇性研究軟件工程基礎軟件工程基本概念需求分析1需求分析

軟件需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現需求、求精、建模和定義需求的過程。

需求分析階段的工作可概括為4個方面:

①需求獲??;

②需求分析;

③編寫需求規(guī)格說明書;

④需求審評。

2需求分析方法

(l)結構化分析方法。主要包括面向數據流的結構化分析方法、面向數據結構的Jackson方法和面向數據結構的結構化數據系統(tǒng)開發(fā)方法

(2)面向對象的分析方法。從需求分析建立的模型的特點來分,需求分析方法又分為靜態(tài)分析方法和動態(tài)分析方法。軟件工程基礎軟件工程基本概念結構化分析方法

結構化分析方法(StructureAna1ysis,簡稱SA)是面向數據流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數據流圖和數據字典為主要工具,建立系統(tǒng)的邏輯模型。

結構化分析方法的步驟如下:

(l)通過對用戶的調查,以軟件的需求為線索,獲得當前系統(tǒng)的具體模型;

(2)去掉具體模型中的非本質因素,抽象出當前系統(tǒng)的邏輯模型;

(3)根據計算機的特點分析當前系統(tǒng)與目標系統(tǒng)的差別,建立目標系統(tǒng)的邏輯模型;

(4)完善目標系統(tǒng)并補充細節(jié),寫出目標系統(tǒng)的軟件需求規(guī)格說明;

(5)評審直到確認完全符合用戶對軟件的需求軟件工程基礎軟件工程基本概念結構化分析常用工具

1數據流圖即DFD圖,它以圖形的方式描繪數據在系統(tǒng)中流動和處理的過程,它只反映系統(tǒng)必須完成的邏輯功能,所以是一種功能模型。見表3-1。

軟件工程基礎軟件工程基本概念結構化分析常用工具

2數據字典

數據字典是結構化分析方法的核心。數據字典是對所有與系統(tǒng)相關的數據元素的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算結果有共同的理解。

在數據字典的編制過程中,常使用定義式描述數據結構,見右表

軟件工程基礎軟件工程基本概念結構化分析常用工具

3判定樹

使用判定樹進行描述時,應先從問題定義的文字描述中分清哪些是判定的條件,哪些是判定的結論,根據描述材料中的連接詞找出判定條件之間的從屬關系、并列關系、選擇關系,根據它們構造判定樹。

4判定表

判定表與判定樹相似,當數據流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合引發(fā)的,使用判定表比較適宜。軟件工程基礎軟件工程基本概念結構化方法開發(fā)過程結構化方法開發(fā)過程結構化方法將軟件生命周期分為:計劃、開發(fā)、運行3個時期,每個時期又分若干階段。

開發(fā)期包括分析、設計和實施兩類任務。其中分析、設計包括需求分析、總體設計和詳細設計3個階段實施則包括編碼和測試兩個階段。軟件工程基礎軟件工程基本概念軟件需求規(guī)格說明書

軟件需求規(guī)格說明書軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。

軟件需求規(guī)格說明書有以下幾個方面的內容。概述、數據描述、功能描述、性能描述、參考文獻、附錄

軟件工程基礎軟件工程基本概念軟件需求規(guī)格說明書

軟件需求規(guī)格說明書的特點:

(1)正確性;

(2)無岐義性;

(3)完整性;

(4)可驗證性;

(5)一致性;

(6)可理解性;

(7)可追蹤性。

軟件工程基礎軟件工程基本概念3.3結構化設計方法軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,軟件設計是確定系統(tǒng)的物理模型。軟件設計是開發(fā)階段最重要的步驟,是將需求準確地轉化為完整的軟件產品或系統(tǒng)的唯一途徑。從技術觀點來看,軟件設計包括軟件結構設計、數據設計、接口設計、過程設計。

結構設計:定義軟件系統(tǒng)各主要部件之間的關系。

數據設計:將分析時創(chuàng)建的模型轉化為數據結構的定義。

接口設計:描述軟件內部、軟件和協作系統(tǒng)之間以及軟件與人之間如何通信。

過程設計:把系統(tǒng)結構部件轉換成軟件的過程描述。從工程管理角度來看:概要設計和詳細設計。軟件設計的一般過程:軟件設計是一個迭代的過程;先進行高層次的結構設計;后進行低層次的過程設計;穿插進行數據設計和接口設計。

衡量軟件模塊獨立性使用耦合性和內聚性兩個定性的度量標準。

在程序結構中各模塊的內聚性越強,則耦合性越弱。優(yōu)秀軟件應高內聚,低耦合。

軟件工程基礎軟件工程基本概念概要設計軟件概要設計的基本任務是:

(1)設計軟件系統(tǒng)結構;(2)數據結構及數據庫設計;

(3)編寫概要設計文檔;(4)概要設計文檔評審。軟件工程基礎軟件工程基本概念結構圖結構圖的基本圖示:

模塊用一個矩形表示

箭頭表示模塊間的調用關系。

在結構圖中還可以用帶注釋的箭頭表示模塊調用過程中來回傳遞的信息。還可用帶實心圓的箭頭表示傳遞的是控制信息,空心圓箭心表示傳遞的是數據。軟件工程基礎軟件工程基本概念結構圖結構圖的基本形式:基本形式、順序形式、重復形式、選擇形式。結構圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協調模塊。典型的數據流類型有兩種:變換型和事務型。變換型系統(tǒng)結構圖由輸入、中心變換、輸出三部分組成。常見的過程設計工具有:圖形工具(程序流程圖)、表格工具(判定表)、語言工具(PDL)。

軟件工程基礎軟件工程基本概念3.4軟件測試軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。

軟件測試的目的:發(fā)現錯誤而執(zhí)行程序的過程。軟件測試方法:靜態(tài)測試和動態(tài)測試。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。動態(tài)測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試方法。

白盒測試:在程序內部進行,主要用于完成軟件內部操作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。

黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數據結構或外部數據庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認。主要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。

軟件測試過程一般按4個步驟進行:單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。軟件工程基礎軟件工程基本概念習題1,在測試中,下列說法錯誤的是()A)測試是為了發(fā)現程序中的錯誤而執(zhí)行程序的過程。B)測試是為了表明程序的正確性。C)好的測試方案是及可能發(fā)現迄今為止尚未發(fā)現的錯誤的測試方案。D)成功的測試是發(fā)現了迄今為止尚未發(fā)現的錯誤的測試。2,下列敘述中正確的是()A)程序設計就是編制程序。B)程序的測試必須由程序員自己去完成。C)軟件測試的目的是盡可能多地發(fā)現程序中的錯誤。D)程序經調試改錯后不必進行再測試。軟件工程基礎軟件工程基本概念3.5程序的調試

程序調試的任務是診斷和改正程序中的錯誤,主要在開發(fā)階段進行。

程序調試的基本步驟:

(1)錯誤定位;

(2)修改設計和代碼,以排除錯誤;

(3)進行回歸測試,防止引進新的錯誤。軟件調試可分表靜態(tài)調試和動態(tài)調試。靜態(tài)調試主要是指通過人的思維來分析源程序代碼和排錯,是主要的設計手段,而動態(tài)調試是輔助靜態(tài)調試。主要調試方法有:

(1)強行排錯法;

(2)回溯法;

(3)原因排除法。

軟件工程基礎軟件工程基本概念習題1.軟件測試的目的是()

A)發(fā)現錯誤B)改變錯誤C)改善軟件的性能D)挖掘軟件的潛能2.下面軟件描述中正確的是()

A)軟件測試的目的是證明程序是否正確。

B)軟件測試的目的是使程序運行結果正確。

C)軟件測試的目的是盡可能多地發(fā)現程序中的錯誤。

D)軟件測試的目的是使程序符合結構化原則。3.下了敘述中,正確的是()

A)黑箱測試方法完全不考慮程序的內部結構和內部特征。

B)黑箱測試的方法主要考慮程序的內部結構和內部特征。

C)白箱測試主要考慮程序內部的邏輯結構

D)上述3種方法都不對4.檢查軟件產品是否符合需求定義的過程稱為()A)確認測試B)集成測試C)驗證測試D)驗收測試軟件工程基礎軟件工程基本概念習題5.軟件調試的目的是()A)改正程序中的錯誤 B)提高程序執(zhí)行的效率C)增加程序的功能 D)調整程序的控制結構6.下列敘述中,正確的是()A)軟件測試應有程序開發(fā)者來完成.B)程序經調試后一般不需要再測試.C)軟件維護只包括對程序代碼的維護.D)以上3種方法都不對.7.下列敘述中,正確的是()A)程序設計就是編制程序B)程序的測試必須由程序員自己去完成C)程序經調試改正錯誤后還應進行再測試D)程序經調試改正錯誤后不必進行再測試8.下列敘述中,正確的是()A)軟件維護是指修復程序中被破壞的指令B)軟件一旦交付費用就不需要再進行維護C)軟件交付費用后還需要再進行維護D)軟件交付使用后其生命周期就結束軟件工程基礎軟件工程基本概念第二章程序設計基礎

第三章軟件工程基礎

歷年考題軟件工程基礎軟件工程基本概念2010年9月年考題(3)軟件測試的目的是()。A)評估軟件可靠性 B)發(fā)現并改正程序中的錯誤C)改正程序中的錯誤 D)發(fā)現程序中的錯誤(4)下面描述中,不屬于軟件危機表現的是()。A)軟件過程不規(guī)范 B)軟件開發(fā)生產率低C)軟件質量難以控制 D)軟件成本不斷提高(5)軟件生命周期是指()。A)軟件產品從提出、實現、使用維護到停止使用退役的過程B)軟件從需求分析、設計、實現到測試完成的過程C)軟件的開發(fā)過程D)軟件的運行維護過程軟件工程基礎軟件工程基本概念2010年9月年考題解析(3)D) 【解析】軟件測試的目的是為了發(fā)現程序中的錯誤,而軟件調試是為了更正程序中的錯誤。(4)A) 【解析】軟件危機主要表現在以下6個方面:①軟件需求的增長得不到滿足。②軟件開發(fā)成本和進度無法控制。③軟件質量難以保證。④軟件不可維護或維護程序非常低。⑤軟件的成本不斷提高。⑥軟件開發(fā)生產率的提高趕不上硬件的發(fā)展和應用需求的增長。(5)A) 【解析】軟件生命周期是指軟件產品從提出、實現、使用、維護到停止使用、退役的過程。軟件工程基礎軟件工程基本概念2011年3月年考題(4)在軟件開發(fā)中,需求分析階段產生的主要文檔是A)軟件集成測試計劃 B)軟件詳細設計說明書C)用戶手冊 D)軟件需求規(guī)格說明書(5)結構化程序所要求的基本結構不包括()。A)順序結構 B)GOTO跳轉C)選擇(分支)結構 D)重復(循環(huán))結構(6)下面描述中錯誤的是()。A)系統(tǒng)總體結構圖支持軟件系統(tǒng)的詳細設計B)軟件設計是將軟件需求轉換為軟件表示的過程C)數據結構與數據庫設計是軟件設計的任務之一D)PAD圖是軟件詳細設計的表示工具填空(3)對軟件設計的最小單位(模塊或程序單元)進行的測試通常稱為

【3】測試。軟件工程基礎軟件工程基本概念2011年3月年考題解析(4)D) 【解析】在軟件開發(fā)過程中,需求分析階段產生的主要文檔是軟件需求規(guī)格說明書。(5)B) 【解析】結構化程序的基本結構有:順序結構、選擇結構和循環(huán)結構,沒有GOTO跳轉結構。(6)A) 【解析】軟件設計是將軟件需求轉換為軟件表示的過程;數據結構與數據庫設計是軟件設計的任務之一;PAD圖,即問題分析圖,是一種主要用于描述軟件詳細設計的圖形工具。(1)【1】順序【解析】二分法查找只適用于順序存儲的有序表。這里的有序是指線性表中的元素按值非遞減排列(即從小到大,但允許相鄰元素值相等)。軟件工程基礎軟件工程基本概念2011年9月考題4)軟件按功能可以分為應用軟件、系統(tǒng)軟件、支撐軟件,下面屬于應用軟件的是A學生成績管理系統(tǒng)BC語言編譯程序CUNIX操作系統(tǒng)D數據庫管理系統(tǒng)6)程序調試的任務是A設計測試用例B驗證程序的正確性C發(fā)現程序中的錯誤D診斷和改正程序中的錯誤填空(3)

常見的軟件開發(fā)方法有結構化方法和面向對象方法。對某應用系統(tǒng)經過需求分析建立數據流圖DFD,則應采用

方法軟件工程基礎軟件工程基本概念2011年9月考題解析(4)A) 【解析】學

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論