版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程主要知識點串講第一講 概述1 如何理解軟件工程及其研究內(nèi)容:軟件工程:(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化應(yīng)用于軟件; (2)研究( 1)中的方法。軟件工程是一門旨在指導生產(chǎn)無缺陷軟件的學科,既指導如何生產(chǎn)能夠及時交付、成本不超預算并且滿足用戶需求的軟件產(chǎn)品。軟件工程研究內(nèi)容包括兩個方面: (1)要考慮專業(yè)軟件開發(fā)所需要的理論、方法和工具 -工程技術(shù)問題;(2)軟件工程要考慮如何有效的在軟件開發(fā)中利用有限的成本資源 -工程管理的問題2 軟件的內(nèi)涵:軟件包括: 能夠提供客戶所需功能與性能的計算機程序; 能夠使程序得以處理信息的數(shù)據(jù)結(jié)構(gòu); 用
2、以描述程序開發(fā)過程及使用的文檔。3 軟件產(chǎn)品的兩種類型包括:通用軟件和定制軟件(多數(shù)),前者是為某一類通用的市場設(shè)計開發(fā)的,后者是為一個特定的用戶設(shè)計開發(fā)。4 一個成功軟件項目的三個要素包括:按時交付,不超預算和滿足用戶要求。5 軟件過程與軟件生命周期的相關(guān)概念:軟件過程是指開發(fā)或制作軟件產(chǎn)品的一系列活動及其成果.所有的軟件過程中都包括四個基本活動:1.描述( specification)- 系統(tǒng)應(yīng)該提供的功能及其開發(fā)約束;2.開發(fā)( development)- 軟件產(chǎn)品的生產(chǎn)過程;3.有效性驗證( validation )- 檢驗軟件產(chǎn)品是否滿足了客戶的需要;4.進化( evolution
3、)- 按照用戶的變更要求不斷的改進軟件。軟件生命周期是軟件過程的另一種形象描述,通常包括需求定義、分析與描述、軟件設(shè)計、實現(xiàn)、測試、維護與退役等活動。6 優(yōu)良軟件的屬性包括可維護性、可依賴性、有效性、可接受性。7 case 是一些用于支持軟件過程活動的自動化、半自動化的軟件系統(tǒng)。(計算機扶助軟件工程)第二講軟件過程1 一個軟件過程模型是軟件過程的一種抽象表示,它通常是對軟件過程某一特定方面的抽象描述。2 瀑布模型的圖形表示及其特點:1) 這種模型把軟件過程劃分成幾個順序的階段。階段間具有依賴性, 前一個階段結(jié)束,后一個階段才能開始;2)這種模型很難對用戶變更做出調(diào)整,只適用于需求非常清楚和需求
4、變更被嚴格限制的情況下。3 進化式開發(fā)的基本思想、類型與特點:基本思想:通過開發(fā)系統(tǒng)原型和用戶反復交互,以明確需求,使系統(tǒng)在不斷調(diào)整與修改中得以進化成熟。又叫做原型式開發(fā)方法。進化式開發(fā)有兩種基本類型:探索式開發(fā) 和拋棄式原型法 。這種模型開發(fā)周期短、能夠?qū)ψ兏龀隹焖俜磻?yīng),但其開發(fā)過程缺乏過程可見性,系統(tǒng)結(jié)構(gòu)通常較差,而且需要一些特別的技術(shù)(如原型快速開發(fā)技術(shù)),這些技術(shù)通常與主流技術(shù)不兼容。所以它適用于中小規(guī)模的交互系統(tǒng)或生命周期較短的系統(tǒng),也可以用于大型系統(tǒng)的局部開發(fā)(如系統(tǒng)界面),可以和瀑布模型混合使用。4 增量式開發(fā)的圖形表示及特點:在這種開發(fā)方式中,系統(tǒng)不是作為一個整體交付,而是被
5、分解成若干個增量,每個增量交付系統(tǒng)的部分功能。用戶的需求按優(yōu)先級排隊,優(yōu)先級最高的需求被放入最早交付的增量中。這樣,優(yōu)先級最高的系統(tǒng)功能就得到最多的測試,系統(tǒng)的可靠性較高。5 螺旋模型的特點:這種模型用螺旋線表示軟件過程,而不是采用一系列活動及活動間的反饋;螺旋中的每個回路表示軟件過程中的一個階段;這種模型充分考慮了軟件開發(fā)所面臨的風險,并貫穿軟件過程始終。第三講需求工程1 需求工程過程包括可行性研究、需求導出與分析、需求描述以及需求有效性驗證等活動,如圖:2 可行性研究要決定被提議的系統(tǒng)是否值得去做,包括信息評估、信息匯總和書寫報告三部分工作。3 軟件需求有兩個不同層次的描述,即用戶需求與系
6、統(tǒng)需求:用戶需求從客戶的角度,采用自然語言配合以圖表對目標系統(tǒng)應(yīng)提供的服務(wù)以及系統(tǒng)操作要受到的約束進行的聲明。系統(tǒng)需求系統(tǒng)需求是一種結(jié)構(gòu)化文檔, 要運用一些專業(yè)的模型詳細的描述系統(tǒng)的功能及其約束。系統(tǒng)需求文檔有時也稱為功能描述,應(yīng)該是精確的,它可以成為雙方之間合同的重要內(nèi)容。4 功能性需求、非功能性需求及領(lǐng)域需求的相關(guān)概念:功能需求: 對系統(tǒng)應(yīng)提供的功能,系統(tǒng)在特定的輸入下做出的反應(yīng)及特定條件下的行為的描述。某些情況下還要包括系統(tǒng)不應(yīng)做什么。非功能需求: 對系統(tǒng)提供服務(wù)或功能時收到的約束進行描述。如時間約束、開發(fā)過程約束和標準等。領(lǐng)域需求: 這種需求來自于系統(tǒng)的應(yīng)用領(lǐng)域,反映領(lǐng)域特征??赡苁枪?/p>
7、能需求也可能是非功能需求。功能性需求與非功能性需求相比較,非功能需求往往更為關(guān)鍵,因為非功能需求表示的是系統(tǒng)的整體特征,而功能性需求描述的則是局部功能。(要求能夠識別功能性需求與非功能性需求! !看課件上例子)5 書寫用戶需求的準則:設(shè)計一個標準格式 , 以幫助減少遺漏,避免不必要的細節(jié)描述;使用一致的語言 ,尤其強調(diào)區(qū)別強制性需求與希望性需求;使用文本加亮 來突出關(guān)鍵性需求;盡量避免使用計算機專用術(shù)語。6 用自然語言描述系統(tǒng)需求存在的問題及替代方法:用自然語言描述系統(tǒng)需求存在不明確、描述隨意性大、不能進行模塊化描述的缺點,可以使用 結(jié)構(gòu)化自然語言、設(shè)計描述語言、圖形描述語言和數(shù)學描述方法來代
8、替自然語言。7 需求導出的過程活動包括:需求發(fā)現(xiàn)、需求的分類與組織、優(yōu)先排序和沖突解決、需求文檔化。8 需求信息的來源包括已有的文件,系統(tǒng)的信息持有者(stakeholders)以及相近系統(tǒng)的規(guī)約描述。9 場景的常用描述方法是自然語言和用例,描述內(nèi)容一般包括:場景開始時系統(tǒng)初始狀態(tài)的描述;一個標準事件流的描述;對可能出現(xiàn)的錯誤及解決方法的描述;其它并行事件流的描述;場景結(jié)束狀態(tài)的描述。10 結(jié)構(gòu)化分析方法以及主要的結(jié)構(gòu)化分析模型結(jié)構(gòu)化分析方法是一種面向數(shù)據(jù)流 的系統(tǒng)建模技術(shù),它從數(shù)據(jù)加工的角度對系統(tǒng)進行規(guī)格描述;結(jié)構(gòu)化分析模型主要包括數(shù)據(jù)詞典、數(shù)據(jù)流圖、實體-關(guān)系圖、狀態(tài)-遷移圖 。實體 關(guān)系
9、圖數(shù)據(jù)詞典狀態(tài) 遷移圖數(shù)據(jù)流圖數(shù)據(jù)對象描述控制規(guī)格說明加工規(guī)格說明11 為什么要進行需求有效性驗證對需求文檔的檢查主要包括哪些方面需求有效性驗證的目的是檢驗需求描述是否正確地反映了客戶的意愿,以期盡早的發(fā)現(xiàn)需求中存在的錯誤。好的需求對軟件系統(tǒng)的開發(fā)效率及軟件質(zhì)量起著至關(guān)重要的作用。一個錯誤發(fā)現(xiàn)的越晚,修改它所付出的代價就越大。需求檢查包括對 有效性、一致性、完備性、現(xiàn)實性和可檢查性 的檢查。第四講軟件設(shè)計1 軟件設(shè)計及其要解決的問題:設(shè)計是一個 把問題轉(zhuǎn)換成解決方案 的創(chuàng)造性過程;軟件設(shè)計要解決“ 軟件系統(tǒng)如何實現(xiàn) ”的問題;從工程管理的角度,軟件設(shè)計可以分成概要設(shè)計 (總體設(shè)計、系統(tǒng)設(shè)計)與
10、 細節(jié)設(shè)計 (詳細設(shè)計)2 理解信息隱藏原理以及采用信息隱藏原理指導模塊設(shè)計的好處信息隱藏原理是指 模塊應(yīng)該設(shè)計得使其所含信息 (過程和數(shù)據(jù)) 對于那些不需要這些信息的模塊來說不可訪問;每個模塊只完成一個相對獨立的特定功能;模塊之間僅交換那些為完成系統(tǒng)功能必須交換的信息,即模塊應(yīng)該功能獨立的。信息隱藏的好處:1)它支持模塊的并行開發(fā);2)減少測試和后期維護的工作量。因為測試和維護階段不可避免地要修改設(shè)計和代碼,模塊對大多數(shù)數(shù)據(jù)和過程處理細節(jié)的隱藏可以減少錯誤向外傳播。3)整個系統(tǒng)擴充功能只需 “ 插入” 新模塊,原有的多數(shù)模塊無須改動。3 模塊獨立性及其度量準則:模塊獨立性的概念是模塊化、抽象
11、和信息隱藏概念的直接產(chǎn)物,模塊獨立性是通過開發(fā)具有單一功能和與其他模塊沒有過多交互作用的模塊來達到的。獨立性好的模塊對其它的模塊依賴性小,修改時對其它模塊的影響小,易于修改和擴充,因此有良好的可維護性。模塊獨立性可用兩個定量準則來度量:耦合(coupling)和內(nèi)聚(cohesion) 。耦合性是對軟件程序結(jié)構(gòu)中各個模塊之間相互關(guān)聯(lián)程度的一種度量。內(nèi)聚性是信息隱藏和局部化概念的自然擴展,它標志一個模塊內(nèi)部各成分彼此結(jié)合的緊密程度。模塊的內(nèi)聚性越強,耦合性越弱,獨立性越強。4 體系結(jié)構(gòu)設(shè)計的任務(wù):體系結(jié)構(gòu)設(shè)計的任務(wù)是要識別出組成系統(tǒng)的子系統(tǒng)并建立子系統(tǒng)的控制和通信框架。體系結(jié)構(gòu)設(shè)計是聯(lián)系需求描述
12、與其他設(shè)計活動的橋梁。5 數(shù)據(jù)中心體系結(jié)構(gòu)(容器模型)的基本特點:所有共享數(shù)據(jù)放到一個中央數(shù)據(jù)庫(容器)中,所有子系統(tǒng)都能從中存取數(shù)據(jù);6 客戶服務(wù)器模型的主要組成:一組為其它子系統(tǒng)提供服務(wù)的單機服務(wù)器;一組向服務(wù)器請求服務(wù)的客戶機;連接客戶機與服務(wù)器的網(wǎng)絡(luò)。7 分層(抽象機)體系結(jié)構(gòu)的特點:這種模型把系統(tǒng)組織成一系列的層次(抽象機),每一層提供一組服務(wù);這種模型支持增量式的開發(fā),不同層次的服務(wù)可以單獨交付;層與層之間以接口相聯(lián)系,一個接口發(fā)生改變,只有毗鄰的層會受到影響;8 兩種基本的控制模型:集中控制: 一個子系統(tǒng)專門負責控制,控制其他子系統(tǒng)的啟動與停止?;谑录目刂疲?不將控制信息集中
13、在一個子系統(tǒng)內(nèi),每個子系統(tǒng)都能夠接受來自系統(tǒng)外部的事件并作出響應(yīng)。9 用戶界面設(shè)計過程模型如下:10 theo mandel 提出的界面設(shè)計的三條 “ 黃金規(guī)則 ” 是:1)置于用戶控制之下;2)減少用戶的記憶負擔;3)保持界面一致。11 對錯誤消息的設(shè)計要求:禮貌的、簡明的、一致的、建設(shè)性的。12 軟件幫助系統(tǒng)不能是用戶手冊的簡單復制,應(yīng)該有一個合理的組織與結(jié)構(gòu),應(yīng)該為用戶提供不同的入口。第五講 面向?qū)ο蟮姆治雠c設(shè)計1 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法相比較有以下優(yōu)勢:符合人類自然思維方式,易于理解、描述和實現(xiàn)。對需求變化有較好的適應(yīng)性: 封裝機制和消息傳遞機制將需求變化影響限制在對象內(nèi)部。支持軟件
14、復用:封裝性有助于實現(xiàn)復用;繼承、實例化實現(xiàn)了對象復用;類庫提供了大量公共代碼??删S護性好: 封裝性和消息傳遞造成低耦合,錯誤定位和修改容易;繼承與多態(tài)使得功能的擴展更加容易。開發(fā)過程銜接緊密:在軟件生命周期各階段可以使用同樣的模型描述。2 uml 是一種標準的圖形化建模語言,它為不同領(lǐng)域的人們提供一種統(tǒng)一的交流標準,這種標準使得系統(tǒng)構(gòu)造者能夠用標準的、易于理解的方式建立能表達出他們想象力的系統(tǒng)藍圖,并使客戶、分析員、設(shè)計人員、程序員和系統(tǒng)其它涉及者能夠相互理解和達成一致,從而能夠有效地共享和交流設(shè)計結(jié)果。4 了解面向?qū)ο蟮姆治鲞^程:要求掌握:1) 用例圖的畫法;2) 用例表(用例規(guī)約描述)的
15、基本結(jié)構(gòu)及描述方法;3) 用 crc 確定關(guān)鍵抽象的過程;4) 用類模型表示關(guān)鍵抽象。分析用例場景發(fā)現(xiàn)更多細節(jié)在分析的基礎(chǔ)上精化用例圖用活動圖驗證用例用crc 分析法確定關(guān)鍵抽象表述域模型中關(guān)鍵抽象之間使用從用例場景中得到的對srs5 采用魯棒性分析建立設(shè)計模型的過程(掌握建模方法):1)選擇一個用例2)構(gòu)造一個滿足用例活動的協(xié)作圖。a.識別支持用例活動的設(shè)計組件(邊界組件、服務(wù)組件、實體組件)。b.畫出這些組件間的關(guān)聯(lián)c.用消息標記這些關(guān)聯(lián)3)從另一個角度,把協(xié)作圖轉(zhuǎn)換成序列圖(可選的)。第六講 軟件實現(xiàn)與有效性驗證1 測試和調(diào)試的區(qū)別:測試和調(diào)試是不同的過程,通常交叉進行。測試的目的是確定
16、系統(tǒng)中存在缺陷;調(diào)試考慮的是定位和修改缺陷。2 驗證和有效性確認的區(qū)別:驗證: are we building the product right”.檢查軟件是否符合它的規(guī)格描述。有效性確認: are we building the right product”.檢查軟件是否滿足客戶的期待。3 驗證和有效性確認過程的兩種基本方法:軟件檢查 ,通過對系統(tǒng)的各種靜態(tài)成果,如需求文檔、設(shè)計文檔、源代碼,進行檢查和分析發(fā)現(xiàn)問題。軟件測試 ,通過使用測試數(shù)據(jù)執(zhí)行系統(tǒng),檢查運行結(jié)果來發(fā)現(xiàn)問題。4 測試的目的是為了揭示程序中存在錯誤,而不是沒有錯誤!5 仔細的 v & v 規(guī)劃能夠使程序檢查和測試的
17、工作得到更多的回報。v & v 過程的規(guī)劃應(yīng)該從開發(fā)過程的早期就開始。如圖,不同階段的測試計劃應(yīng)該來自前期分析與設(shè)計階段。 (不用畫圖)6 軟件測試過程7 測試可以分成組件測試與系統(tǒng)測試,系統(tǒng)測試又包括集成測試與發(fā)布測試。8 按照測試的不同目標可以把測試分成有效性測試與缺陷測試。9 集成測試中,為了簡化錯誤定位,應(yīng)采用增量集成的方法。10 由于組件要在一定上下文環(huán)境中運行,所以進行單元測試要為每個待測組件開發(fā)額外的驅(qū)動模塊和樁模塊。11 用例的基本構(gòu)成及等價類劃分測試的基本原理:測試用例的基本構(gòu)成可以包括:設(shè)計的輸入 、期望的輸出 、測試環(huán)境 和測試對象的描述 。等價劃分測試是測試用例
18、設(shè)計的一種方法。設(shè)計測試用例時,可以按特征把數(shù)據(jù)輸入域化分成若干等價類,等價類中的每個數(shù)據(jù)應(yīng)該以同樣的方式得到處理,因此對于揭露程序中的錯誤是等效的。這樣,就可以選取少量有代表性的輸入數(shù)據(jù)作為測試數(shù)據(jù),以期用較小的代價暴露較多的程序錯誤。12黑盒測試與白盒測試的區(qū)別:黑盒測試 又叫做 功能測試 ,測試者只關(guān)心系統(tǒng)的功能而不關(guān)心軟件的實現(xiàn)。也就是說測試者不必了解有關(guān)系統(tǒng)的任何細節(jié),只把系統(tǒng)看成是一個能夠處理輸入,產(chǎn)生輸出的“黑盒子” ,僅從功能的角度設(shè)計測試用例。白盒測試 又叫做 結(jié)構(gòu)測試 ,是一種根據(jù)軟件的結(jié)構(gòu)知識導出測試用例的設(shè)計方法。測試者把被測試組件看成是一個打開的“白盒子”,組件的內(nèi)部結(jié)構(gòu)對測試者是透明的,通過對所用算法結(jié)構(gòu)的分析設(shè)計測試用例。13 基本路經(jīng)測試的原理:在程序控制流圖的基礎(chǔ)上,分析控制結(jié)構(gòu)的環(huán)路復雜度,并用這個復雜度為指南定義執(zhí)行路徑的基本集合,從而導出基本可執(zhí)行路徑集合,設(shè)計出測試用例并保證每個可執(zhí)行語句至少執(zhí)行一次,而且每個條件在執(zhí)行時都將分別取真、假兩種值。1) 計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 弱電維修服務(wù)合同范本
- 股權(quán)轉(zhuǎn)讓居間合同正規(guī)范本
- 2025勞務(wù)分包安全管理合同協(xié)議書范本
- 科技助力學校安全教育培訓的實踐與探索
- 營養(yǎng)、快捷兩不誤-高效選配工作餐之秘訣探索
- 2025年度藝術(shù)品展覽與技術(shù)支持服務(wù)合同
- 腎臟疾病診斷的突破尿檢技術(shù)的創(chuàng)新與應(yīng)用案例分析
- 2025年度瓷磚美縫施工與驗收標準合同
- 2025年度石油化工短期勞務(wù)合同
- 二零二五年度醫(yī)療健康合資經(jīng)營合同模板
- 《招標投標法》考試題庫200題(含答案)
- 2023年寧夏中考物理試題(附答案)
- JBT 7041.1-2023 液壓泵 第1部分:葉片泵 (正式版)
- 2023年中國農(nóng)業(yè)銀行應(yīng)急預案大全
- 村衛(wèi)生室2023年度績效考核評分細則(基本公共衛(wèi)生服務(wù))
- 關(guān)聯(lián)公司合作合同
- 【建模教程】-地質(zhì)統(tǒng)計學礦體建模簡明教材
- PSM工藝安全管理
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- 最新北師大版八年級數(shù)學下冊教學課件全冊
- 危險化學品儲存柜安全技術(shù)及管理要求培訓
評論
0/150
提交評論