

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 可行性研究</b></p><p> 軟件工程項目可行性研究實質(zhì)是一次大大壓縮和簡化了的分析和設(shè)計過程,主要在較高層次上以較抽象的方式進(jìn)行,其目的是在盡可能短的時間內(nèi)以最小的代價確定該項目是否能夠開發(fā),是否值得開發(fā)。 </p><p> 可行性研究不是去開發(fā)一個軟件項目,而是研究該項目能否在給定的資源和給定的時間開發(fā),是否能夠開發(fā),是
2、否值得開發(fā)。 </p><p> 可行性研究的內(nèi)容:技術(shù)可行性 (相關(guān)技術(shù)分析、資源有效性分析、風(fēng)險分析);經(jīng)濟(jì)可行性 (成本估計、效益分析 );操作可行性 ,又稱社會可行性和運行可行性(就政治意識形態(tài)、法律法規(guī)、社會道德、民族意識以及系統(tǒng)運行的組織機(jī)構(gòu)或人員等,分析系統(tǒng)能否運行及運行好壞程度)。</p><p> 可行性研究的步驟:對系統(tǒng)目標(biāo)和范圍的定義→對現(xiàn)行系統(tǒng)進(jìn)行分析研究→導(dǎo)出
3、新系統(tǒng)的邏輯模型→設(shè)計新系統(tǒng)的物理方案→推薦可行的方案。</p><p> 可行性研究階段,成本估計的方法:</p><p> ①基于已完成的類似項目進(jìn)行估算;(自頂向下估計) </p><p> 缺點:對開發(fā)中某些局部問題難以預(yù)估,導(dǎo)致考慮不周</p><p> ?、谑褂煤唵蔚摹胺纸饧夹g(shù)”來進(jìn)行成本及工作量的估算;(自底向上估計)&
4、lt;/p><p> ?、凼褂媒?jīng)驗?zāi)P瓦M(jìn)行成本及工作量的估算。(經(jīng)驗算法估計)</p><p> 主要經(jīng)驗?zāi)P停红o態(tài)單變量模型;動態(tài)多變量模型;COCOMO模型。</p><p> COCOMO模型:Boehm將軟件成本估算分成3個由粗到細(xì)的層次:基本層、中間層和詳細(xì)層。每個層次又按軟件項目的應(yīng)用領(lǐng)域和復(fù)雜程序分成3種類型:組織型、半獨立型和嵌入型。</p&g
5、t;<p> 效益分析:系統(tǒng)的效益有兩部分:經(jīng)濟(jì)效益和社會效益。 經(jīng)濟(jì)效益是指用使用新系統(tǒng)而增加的收入,包括使用新系統(tǒng)節(jié)省的運行費用,是一種有形的效益。</p><p> ?。ń?jīng)濟(jì)效益度量指標(biāo):貨幣的時間價值 、純收入、投資回收期 、投資回收率);社會效益是一種無形的效益,主要從性質(zhì)上、心理上進(jìn)行衡量,很難直接量化,但在某些情況下,無效的效益能轉(zhuǎn)化成有形的效益。</p><p&
6、gt; 系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具,可以采用系統(tǒng)流程圖來描述項目的大概業(yè)務(wù)處理流程,其基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)各部件(如程序、數(shù)據(jù)庫、文檔、人工過程等)。系統(tǒng)流程圖表達(dá)的是信息在系統(tǒng)中各部件之間流動的情況,而不是對信息進(jìn)行加工處理的控制過程。(信息有流動無處理) </p><p> 數(shù)據(jù)流圖描述的是系統(tǒng)的邏輯模型,圖中沒有具體的物理元素,只是描繪信息在系統(tǒng)中的流動和處理情況。(數(shù)據(jù)流圖
7、是邏輯系統(tǒng)的圖形表示)</p><p><b> 軟件項目計劃</b></p><p> 軟件項目計劃的目標(biāo)就是提供一個框架,使管理者有能夠?qū)Y源、成本、風(fēng)險及進(jìn)度進(jìn)行合理的估算分析和調(diào)度,為軟件工程過程提供管理依據(jù)。 項目計劃一般由軟件項目的管理員、系統(tǒng)分析員與用戶經(jīng)過“可行性研究后”共同制訂,并在“需求分析”階段確定軟件系統(tǒng)的詳細(xì)需求后定稿,隨著項目的進(jìn)展定期
8、更新。</p><p> 2、軟件項目計劃的主要內(nèi)容:風(fēng)險分析、進(jìn)度安排和項目組織。</p><p> 3、風(fēng)險分析活動:風(fēng)險標(biāo)識(項目風(fēng)險、技術(shù)風(fēng)險和商業(yè)風(fēng)險)、風(fēng)險估計、風(fēng)險評價和風(fēng)險管理與監(jiān)控。</p><p> 4、進(jìn)度安排方法:PERT技術(shù)和Gantt圖方法(看看書上的過程)。</p><p> 5、小結(jié):由于經(jīng)過風(fēng)險分析,
9、能夠做到“知已知彼”(彼即風(fēng)險),從而“百戰(zhàn)不殆”,使得開發(fā)者能夠戰(zhàn)勝風(fēng)險帶來的損失,使項目成功。 進(jìn)度安排的落空不僅會造成項目開發(fā)成本的提高,造成有形的經(jīng)濟(jì)損失,而且會使客戶的不滿意度、不信任度增加,造成無形的經(jīng)濟(jì)損失。 在軟件開發(fā)過程中,人是最活躍的部分。 </p><p><b> 需求分析</b></p><p> 需求分析是指開發(fā)人員通過細(xì)致的
10、調(diào)查分析,詳細(xì)、準(zhǔn)確和完整地理解用戶需要什么樣的軟件,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再將需求定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程。</p><p> 通常,把一整套的需求分析方法、技術(shù)和工具等的集合稱為建模方法。</p><p> 需求收集的方式:訪談(程式化的訪談和非程式化的訪談 );問卷調(diào)查;使用用例;用戶資料收集;建立快速原型。</p><p>
11、; 需求分析主要任務(wù):問題分析、需求描述、需求評審。</p><p> 需求分析主要目的:確定用戶需要系統(tǒng)做什么。</p><p> 6、需求規(guī)格說明:需求分析的主要成果是得到需求規(guī)格說明(SRS)。需求規(guī)格說明為用戶、分析人員、設(shè)計人員和測試人員之間的理解和交流提供了方便,是系統(tǒng)設(shè)計、測試和驗收的依據(jù)。</p><p> 大量統(tǒng)計數(shù)字表明,軟件系統(tǒng)中15%
12、的錯誤起源于需求的錯誤。一個有效的需求規(guī)格說明應(yīng)具有如下特征:正確性、無歧義性、完整性、一致性、可驗證性、可理解性、可修改性、可追蹤性和注釋等。</p><p> 需求分析說明書的作用:① 用戶與開發(fā)人員之間的合同 ② 概要設(shè)計的依據(jù)</p><p> ?、?軟件驗收測試的依據(jù)。</p><p> 數(shù)據(jù)流建模(功能建模)</p><p>
13、 7、數(shù)據(jù)流建模:數(shù)據(jù)流建模方法是一種結(jié)構(gòu)化分析方法(SA);自頂向下、逐層分解地定義系統(tǒng)需求;主要是利用數(shù)據(jù)流圖(DFD)來對用戶需求進(jìn)行分析。</p><p> 8、數(shù)據(jù)流圖:數(shù)據(jù)流圖描述的是系統(tǒng)的邏輯模型,圖中沒有具體的物理元素,只是描繪信息在系統(tǒng)中的流動和處理情況。(數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示)</p><p> 9、數(shù)據(jù)流圖的四種基本符號:數(shù)據(jù)流(用箭頭表示);加工(加工
14、一般用一個圓圈或圓角方框來表示 );數(shù)據(jù)存儲(一般用開口的矩形框或雙劃線來表示);數(shù)據(jù)的源點和終點(一般用正方形或立方體來表示 )。</p><p> 10、分層數(shù)據(jù)流圖:將數(shù)據(jù)流圖分為頂層數(shù)據(jù)流圖,中間層數(shù)據(jù)流圖以及底層數(shù)據(jù)流圖,可以避免一次引入過多的細(xì)節(jié),有利于控制問題的復(fù)雜度,從而便于對大型系統(tǒng)描述的實現(xiàn)。</p><p> ①頂層數(shù)據(jù)流圖:主要描述整個系統(tǒng)的作用范圍,說明系統(tǒng)的
15、邊界,反映系統(tǒng)和外部環(huán)境之間的關(guān)系,即系統(tǒng)的輸入和輸出數(shù)據(jù)流。 頂層數(shù)據(jù)流圖只有一張。</p><p> ?、谥虚g層數(shù)據(jù)流圖:通過分解高層加工得到的,其中有些加工還需進(jìn)一步分解。</p><p> ③底層數(shù)據(jù)流圖:底層數(shù)據(jù)流圖由一些不必再進(jìn)行分解的加工組成。</p><p> 11、數(shù)據(jù)流建模步驟:原則上是由外向里、自頂向下去模擬問題的處理過程.</p&g
16、t;<p> 畫頂層數(shù)據(jù)流圖; 畫分層數(shù)據(jù)流圖; 用數(shù)據(jù)詞典定義數(shù)據(jù)流圖中的所有數(shù)據(jù);用加工說明描述數(shù)據(jù)流圖中的基本加工。</p><p> 12、數(shù)據(jù)詞典:又稱數(shù)據(jù)字典,是關(guān)于數(shù)據(jù)信息的集合,是對數(shù)據(jù)流圖中的每個數(shù)據(jù),包括數(shù)據(jù)流和數(shù)據(jù)存儲,進(jìn)行嚴(yán)格定義的場所,以保持?jǐn)?shù)據(jù)在系統(tǒng)中的一致性。</p><p> 數(shù)據(jù)字典的作用:①為用戶與開發(fā)人員之間統(tǒng)一認(rèn)識 ② 作為概要設(shè)
17、計的依據(jù) ③ 便于需求分析階段定義各類條目</p><p> 13、加工說明:數(shù)據(jù)流圖中的“基本加工”由于沒有進(jìn)一步分解得到子圖,因而需要加工說明來對其進(jìn)行描述。 加工說明是描述基本加工如何把輸入數(shù)據(jù)流變換成輸出數(shù)據(jù)流的加工規(guī)則,是描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細(xì)節(jié)。</p><p> IPO圖、結(jié)構(gòu)化語言(PDL,偽代碼,是一種介于自然語言和形式語言之間的一種半形式語言)、判定表
18、、判定樹等均可作為加工說明的工具。</p><p> IDEF0圖(功能建模)</p><p> 14、IDEF0功能建模:IDEF方法是一套用來對復(fù)雜系統(tǒng)進(jìn)行建模分析和設(shè)計的系統(tǒng)方法:IDEF0進(jìn)行功能建模,IDEF1X用來建立數(shù)據(jù)模型,IDEF4方法則用于面向?qū)ο笤O(shè)計,等等。</p><p> 15、IDEF0方法用嚴(yán)格的自頂向下、逐層分解的方式來構(gòu)造系統(tǒng)
19、的功能模型,用IDEF0圖來描述。</p><p> IDEF0圖:只能反映系統(tǒng)做什么,系統(tǒng)功能由誰做,但不能反映系統(tǒng)如何做,因為盒子內(nèi)部的結(jié)構(gòu)如何無從得知。</p><p> 16、IDEF0圖:也稱為活動圖形。主要元素是簡單的盒子及箭頭。盒子代表系統(tǒng)的功能(活動)。箭頭表示系統(tǒng)處理的數(shù)據(jù)約束,可以是具體的事物,也可以是抽象的信息。 IDEF0功能建模方法要求一張IDEF0圖中的
20、盒子最多只能有6個(子圖形還要求不少于3個)。 </p><p> 17、IDEF0建模步驟:IDEF0方法在詳細(xì)的功能需求調(diào)研基礎(chǔ)上,用嚴(yán)格的自頂向下、逐層分解的方式來進(jìn)行;確定建模的范圍、觀點及目的;建立系統(tǒng)的內(nèi)外關(guān)系圖,即A-0圖;建立A0圖的一系列子圖;書寫文字說明。(P49)</p><p> IDEF1X(數(shù)據(jù)建模)</p><p> 18、ID
21、EF1X數(shù)據(jù)建模:IDEF1X方法是IDEF1方法的擴(kuò)展版本。 IDEF1用來表示系統(tǒng)的信息結(jié)構(gòu)和語義。 IDEF1X方法增強(qiáng)了圖形的表達(dá)能力,豐富了語義和簡化了開發(fā)過程。</p><p> 19、IDEF1X圖:實體是具有相同屬性或特征的現(xiàn)實或抽象事物的集合,這個集合中的一個元素便稱為實體的一個實例。 在一張IDEF1X圖中 ,一個實體只能在圖中出現(xiàn)一次。 屬性:表示現(xiàn)實或抽象的事物一種特性或性質(zhì)。<
22、/p><p> IDEF1X建模步驟:0階段——確定建模目標(biāo)和計劃;1階段——定義實體;2階段——定義聯(lián)系;3階段——定義鍵;4階段——定義屬性。</p><p> 需求分析(2)面向?qū)ο蠓椒?lt;/p><p> 1、UML建模語言:是一種可以應(yīng)用于任面向?qū)ο筌浖_發(fā)方法的標(biāo)記法和語義語言。</p><p> 2、UML各種圖:動態(tài)模型圖(
23、反映系統(tǒng)行為):用例圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖。 靜態(tài)模型圖(反映系統(tǒng)結(jié)構(gòu)):類圖、包圖、組件圖、部署圖、對象圖。</p><p> 3、UML特點 :統(tǒng)一了面向?qū)ο蠓椒ǖ幕靖拍?(UML融合了Booch方法、OMT方法和OOSE方法中的有關(guān)概念 );具有更強(qiáng)的建模能力(正如G. Booch在他的一本書中所說:“如果你有好的思想,那它也是我們的?!?);獨立于特定的開發(fā)語言和開發(fā)過程。</p&
24、gt;<p> 4、UML應(yīng)用:需求分析(用例圖---功能的需求;類圖---靜態(tài)結(jié)構(gòu) ;狀態(tài)圖、順序圖和協(xié)作圖等---類之間所需的協(xié)作,實現(xiàn)用例。);設(shè)計(定義軟件系統(tǒng)中的技術(shù)細(xì)節(jié)用到的類,如引入處理用戶交互的類、處理數(shù)據(jù)的類、處理通信和并行性的類等。);實現(xiàn)(組件圖---代碼組件的物理結(jié)構(gòu)以及組件之間的關(guān)系;部署圖---硬件的拓?fù)浣Y(jié)構(gòu)和組件的分布。);測試(類圖---單元測試;組件圖、協(xié)作圖---集成測試;用例圖 --
25、-確認(rèn)測試) </p><p><b> 概要設(shè)計</b></p><p> 軟件設(shè)計:需求分析:軟件系統(tǒng)必須“做什么” ;軟件設(shè)計:“如何做”才可以滿足需求規(guī)格說明中規(guī)定的各項需求。</p><p> 從工程管理的角度來看,軟件設(shè)計通常分為兩步,即概要設(shè)計和詳細(xì)設(shè)計。</p><p> 概要設(shè)計的基本目的是回答
26、“概括地說,軟件系統(tǒng)應(yīng)如實現(xiàn)”這一問題。因此,概要設(shè)計有時稱為初步設(shè)計或總體設(shè)計。概要設(shè)計的主要任務(wù)是確定軟件的總體結(jié)構(gòu),即確定軟件系統(tǒng)的組成成份(子系統(tǒng)或模塊)以及各組成成份之間的相互關(guān)系。方法:結(jié)構(gòu)化方法、面向?qū)ο蠓椒?。詳細(xì)設(shè)計是對概要設(shè)計結(jié)果的進(jìn)一步細(xì)化,其主要任務(wù)是確定軟件系統(tǒng)各組成成份內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和算法過程。</p><p> 抽象與求精:抽象,即過程抽象、數(shù)據(jù)抽象和控制抽象。抽象使得設(shè)計人員能夠
27、避開過早地陷入細(xì)節(jié)之中刻畫過程和數(shù)據(jù)。求精能夠幫助設(shè)計人員隨著設(shè)計過程的深入而不斷呈現(xiàn)更低層次的信息。 </p><p> 模塊化和信息隱藏:軟件應(yīng)該分解成可單獨命名的且可訪問的部件,這些部件稱為模塊。由Parnas倡導(dǎo)的“信息隱藏”是指模塊中所包含的信息(包括數(shù)據(jù)和過程)對不需要這些信息的其它模塊是不可訪問的。抽象有助于定義組成軟件的過程(或信息)實體;隱藏定義并加強(qiáng)了對模塊內(nèi)部訪問的約束,有助于分離模塊的實
28、現(xiàn)者和使用者。</p><p> 模塊獨立性:模塊獨立性是模塊化、抽象和信息隱藏的直接產(chǎn)物。模塊的功能獨立性可以使得模塊既容易開發(fā)又容易維護(hù)。模塊獨立性有兩個定性的度量標(biāo)準(zhǔn):內(nèi)聚度和耦合度。 </p><p> 內(nèi)聚度:模塊內(nèi)部各成分聯(lián)系緊密的程度。內(nèi)聚度越高,模塊的獨立性就越強(qiáng)。內(nèi)聚程度從高到低的順序是:功能內(nèi)聚、信息內(nèi)聚、通信內(nèi)聚(數(shù)據(jù)相關(guān)—數(shù)據(jù)或標(biāo)記耦合)、過程內(nèi)聚(程序流程圖;
29、過程相關(guān)---控制耦合)、時間內(nèi)聚(初始化模塊)、邏輯內(nèi)聚和偶然內(nèi)聚。 設(shè)計模塊時,應(yīng)該盡可能避免使用偶然內(nèi)聚等低級內(nèi)聚的模塊,爭取高級內(nèi)聚的模塊,以提高模塊的獨立性。 </p><p> 耦合度:模塊之間相互關(guān)聯(lián)緊密的程度。模塊的耦合度越低,模塊的獨立性越強(qiáng)。 耦合程度從低到高也可分為七種:非直接耦合、數(shù)據(jù)耦合、標(biāo)記耦合、控制耦合、外部耦合、公共耦合、內(nèi)容耦合。 在設(shè)計模塊時,應(yīng)該盡量使用數(shù)據(jù)耦合,必要時使用
30、標(biāo)記耦合,少用控制耦合,限制使用公共耦合,最好不要使用內(nèi)容耦合。</p><p><b> 結(jié)構(gòu)化設(shè)計方法</b></p><p> 面向數(shù)據(jù)流圖的軟件結(jié)構(gòu)設(shè)計 </p><p> 面向數(shù)據(jù)流圖的設(shè)計方法是一種結(jié)構(gòu)化設(shè)計方法。過程:首先,研究、分析和審查數(shù)據(jù)流圖,確保數(shù)據(jù)流圖符合實際,必要時還要進(jìn)一步精化數(shù)據(jù)流圖;然后,確定數(shù)據(jù)流圖的類型
31、,即變換型數(shù)據(jù)流或事務(wù)型數(shù)據(jù)流;再依據(jù)數(shù)據(jù)流圖的類型采用變換分析法或事務(wù)分析法導(dǎo)出系統(tǒng)初始的軟件結(jié)構(gòu);最后,依據(jù)軟件設(shè)計原理和一些優(yōu)化策略改進(jìn)系統(tǒng)初始的軟件結(jié)構(gòu),形成最終的軟件結(jié)構(gòu)。</p><p> 在結(jié)構(gòu)化設(shè)計方法中,軟件結(jié)構(gòu)是軟件系統(tǒng)模塊層次結(jié)構(gòu),反映了整個系統(tǒng)功能及其之間的關(guān)系。 軟件結(jié)構(gòu)圖的主要內(nèi)容有:模塊、模塊間的調(diào)用關(guān)系和模塊之間傳遞的信息。</p><p> 模塊:在軟
32、件系統(tǒng)的軟件結(jié)構(gòu)圖中,有6種類型的模塊:傳入模塊、傳出模塊、變換模塊、協(xié)調(diào)模塊、源模塊和漏模塊。 在軟件結(jié)構(gòu)圖中,模塊用方框來表示,并用名字標(biāo)識該方框。</p><p> 調(diào)用關(guān)系:在軟件結(jié)構(gòu)圖中,模塊間的調(diào)用關(guān)系主要有三種:順序調(diào)用、選擇調(diào)用和循環(huán)調(diào)用。方框之間的箭頭表示模塊之間的調(diào)用與被調(diào)用關(guān)系。模塊間調(diào)用的次序,習(xí)慣上是從左至右。</p><p> 數(shù)據(jù)或控制信息:在軟件結(jié)構(gòu)中,
33、模塊傳遞的信息用帶名稱的短線箭頭來表示。箭頭方向代表信息傳遞的方向。若箭頭線尾是帶空心圓圈,則表示該箭頭線代表的是數(shù)據(jù);若箭頭線尾是帶實心圓圈,則表示該箭頭線代表的是控制。</p><p> 數(shù)據(jù)流變換分析法:一種將變換型數(shù)據(jù)流圖映射為變換型軟件結(jié)構(gòu)圖的軟件系統(tǒng)設(shè)計方法。(P101)</p><p> 數(shù)據(jù)流事務(wù)分析法:是將事務(wù)型數(shù)據(jù)流圖映射為事務(wù)型軟件結(jié)構(gòu)圖的軟件系統(tǒng)設(shè)計方法。(P1
34、03)</p><p> 軟件結(jié)構(gòu)圖的改進(jìn):模塊大小適中、模塊扇入扇出合理、模塊的作用域應(yīng)在控制域內(nèi) 。 模塊的扇出是指模塊直接調(diào)用多少其它模塊。 模塊的扇入是指共有多個模塊直接調(diào)用本模塊。良好的軟件結(jié)構(gòu)圖,上層??欤ㄖ饕强刂颇K)往往具有較高的扇出,底層的模塊(主要是功能型模塊)具有較高的扇入,呈兩頭小、中間大的清真寺狀。 模塊的作用域是指模塊中判定的作用范圍,它是指所有受這個判定影響的模塊。 模塊
35、的控制域是指模塊本身及其直接或間接調(diào)用的模塊。 如果模塊的作用域不在控制域之內(nèi),則會增加模塊間數(shù)據(jù)的傳遞量,使模塊之間出現(xiàn)控制耦合。</p><p> 面向IDEF0圖的軟件結(jié)構(gòu)設(shè)計</p><p> 面向IDEF0圖的軟件結(jié)構(gòu)設(shè)計是一種結(jié)構(gòu)化設(shè)計方法,它以系統(tǒng)的功能模型和信息結(jié)構(gòu)(數(shù)據(jù))為基礎(chǔ)設(shè)計系統(tǒng)的軟件結(jié)構(gòu)。 </p><p> 概要設(shè)計時,一般可按照I
36、DEF0圖的分解層次,逐層將其轉(zhuǎn)換成軟件結(jié)構(gòu)。</p><p><b> 面向?qū)ο笤O(shè)計模式</b></p><p> 1、對象建模:主要任務(wù)是了解某個特定應(yīng)用問題域內(nèi)所涉及的對象,以及各種各樣的結(jié)構(gòu)和通信關(guān)系。 介紹Coad/Yourdon 面向?qū)ο蠓治龇椒▉磉M(jìn)行對象建模,在表示符號上采用UML建模語言提供的標(biāo)記法。</p><p>
37、2、確定對象&類的方法 :三視圖模型法(實體一關(guān)系模型、數(shù)據(jù)流模型、狀態(tài)—遷移模型)。</p><p> 3、面向?qū)ο笤O(shè)計是在對象建模的基礎(chǔ)進(jìn)行逐漸擴(kuò)充的過程。在對象建模中,是以問題域為中心,而面向?qū)ο笤O(shè)計要在軟件系統(tǒng)環(huán)境,即解空間,解決對象建模中要完成的事情。對象建模是以問題域為中心確定“做什么”,面向?qū)ο笤O(shè)計則以軟件系統(tǒng)實現(xiàn)環(huán)境為中心確定“如何做”。 </p><p> 4
38、、面向?qū)ο笤O(shè)計主要設(shè)計內(nèi)容:問題域部分設(shè)計、人機(jī)交互部分設(shè)計 、任務(wù)管理部分設(shè)計 、數(shù)據(jù)管理部分設(shè)計、系統(tǒng)交互部件的設(shè)計。(P110)</p><p> 5、面向?qū)ο笤O(shè)計模式是普通面向?qū)ο笤O(shè)計問題的解決方案,這類問題以一組交互類的形式出現(xiàn),用戶根據(jù)需要定制這些交互類以形成專門的設(shè)計。</p><p> 作用:設(shè)計模式不僅使人們可以更加方便地復(fù)用成功設(shè)計方案,提高軟件的靈活性和可復(fù)用性,
39、也能提高已有系統(tǒng)的文檔管理和系統(tǒng)維護(hù)的有效性。 </p><p> 6、創(chuàng)建型模式:創(chuàng)建型模式幫助系統(tǒng)獨立于對象的產(chǎn)生、組合和表示。</p><p> 作用:一方面均將關(guān)于系統(tǒng)使用哪些具體的類的信息封裝起來;另一方面隱蔽了這些具體類的實例是如何被創(chuàng)建和放在一起的。因此,創(chuàng)建型模式在“什么”被創(chuàng)建、“怎樣”被創(chuàng)建、“誰”創(chuàng)建它以及“何時”創(chuàng)建等方面帶來了很大的靈活性,有利于設(shè)計可復(fù)用的軟
40、件成分。 主要有兩種:工廠方法模式、抽象工廠模式。 結(jié)構(gòu)型模式:結(jié)構(gòu)型模式涉及如何組合類和對象構(gòu)成更大的結(jié)構(gòu)。一種方法是采用繼承機(jī)制來組合接口或?qū)崿F(xiàn)來形成更大的結(jié)構(gòu);另一種方法通過對象組合方式對一些對象進(jìn)行組合來形成。由于對象組合可以在運行時刻改變,而繼承機(jī)制為靜態(tài)類組合,因而對象組合方式具有更大的靈活性。 主要有兩種:適配器模式、組合模式。 行為型模式:行為型模式不僅描述對象或類的模式,還描述它們之間的通信模式。這些模式刻劃了
41、在運行時難以跟蹤的復(fù)雜的控制流。行為型模式使設(shè)計者的注意力從控制流轉(zhuǎn)移到對象間的聯(lián)系方式上。 主要有兩種:迭代器模式、觀察者模式。</p><p> 7、MVC框架中類的交互:當(dāng)用戶進(jìn)行一些輸入動作后,控制器接收用戶事件,并根據(jù)事件的類型來改變模型;視圖事先會在模型中登記,當(dāng)模型數(shù)據(jù)發(fā)生改變時,馬上通知已向此模型登記的每個視圖,視圖從模型中取得最新的數(shù)據(jù)并刷新自己。</p><p>&l
42、t;b> 概要設(shè)計文檔</b></p><p> 1、概要設(shè)計說明包括軟件系統(tǒng)的基本處理流程、軟件結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計、運行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等。概要設(shè)計說明為軟件的詳細(xì)設(shè)計提供了基礎(chǔ),也是系統(tǒng)集成測試的主要依據(jù)。</p><p> 2、概要設(shè)計文檔復(fù)審:目的:較早期地發(fā)現(xiàn)設(shè)計中存在的錯誤和缺陷。參與者:除開發(fā)人員外,必須要有用戶代表參加
43、,必要時還應(yīng)邀請有關(guān)領(lǐng)域的專家參加。 </p><p> 內(nèi)容:重點在軟件系統(tǒng)的總體結(jié)構(gòu)、模塊劃分、內(nèi)外接口以及人機(jī)界面上。方式:正式復(fù)審和非正式復(fù)審。</p><p> 小結(jié):①概要設(shè)計是由軟件結(jié)構(gòu)設(shè)計、內(nèi)外接口設(shè)計、數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計和用戶界面設(shè)計等活動組成,是將用戶需求轉(zhuǎn)化為計算機(jī)可實現(xiàn)的系統(tǒng)的一個重要步驟。②面向數(shù)據(jù)流圖的設(shè)計方法和面向IDEF0圖的設(shè)計方法是兩種常用的結(jié)構(gòu)化設(shè)計
44、方法,其特點是自頂向下,逐層細(xì)化。③Coad/Yourdon方法在面向?qū)ο笤O(shè)計方法中比較系統(tǒng)的一種方法,其四個部分的設(shè)計實際是對面向?qū)ο蠓治瞿P驮谖鍌€層次上擴(kuò)充,擴(kuò)充的內(nèi)容實質(zhì)也就是用戶界面設(shè)計、內(nèi)外接口設(shè)計、數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計等方面的內(nèi)容。 </p><p><b> 詳細(xì)設(shè)計</b></p><p> 詳細(xì)設(shè)計的目標(biāo)與任務(wù):概要設(shè)計確定了軟件系統(tǒng)的總體結(jié)構(gòu),詳細(xì)
45、設(shè)計則對概要設(shè)計結(jié)果進(jìn)一步細(xì)化,給出目標(biāo)系統(tǒng)的精確描述,以便在編碼階段直接翻譯成計算機(jī)上能夠運行的程序代碼。詳細(xì)設(shè)計的任務(wù):算法過程的設(shè)計;數(shù)據(jù)結(jié)構(gòu)的設(shè)計;數(shù)據(jù)庫物理設(shè)計;信息編碼設(shè)計;測試用例的設(shè)計;編寫“詳細(xì)設(shè)計說明書”。(主要任務(wù):確定軟件系統(tǒng)各組成成份內(nèi)部數(shù)據(jù)結(jié)構(gòu)和算法過程)</p><p> 詳細(xì)設(shè)計圖形描述工具:詳細(xì)設(shè)計中用于過程設(shè)計的圖形工具,包括程序流程圖、盒圖、問題分析圖和協(xié)作圖。</p
46、><p> Jackson程序設(shè)計方法是一種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化程序設(shè)計方法。通過分析問題的輸入、輸出數(shù)據(jù)結(jié)構(gòu)(用Jackson圖表示)的對應(yīng)關(guān)系,按一定的映射規(guī)則將其映射成軟件的過程描述,用Jackson偽代碼表示。(P134)</p><p> Warnier程序設(shè)計方法:LCP(邏輯構(gòu)造程序)程序設(shè)計方法。</p><p> 程序規(guī)格說明文檔及復(fù)審:又稱詳細(xì)
47、設(shè)計說明,與概要設(shè)計說明相比,程序規(guī)格說明著重描述模塊的細(xì)節(jié),包括算法過程和數(shù)據(jù)結(jié)構(gòu)。如果軟件系統(tǒng)比較簡單,則可將程序規(guī)格說明并入概要設(shè)計說明中。 程序規(guī)格說明的復(fù)審類似于概要設(shè)計說明的復(fù)審,但重點在于各個模塊的具體設(shè)計上。</p><p> 小結(jié):詳細(xì)設(shè)計是進(jìn)行邏輯系統(tǒng)開發(fā)的最后一個階段,其質(zhì)量的好壞將直接影響到系統(tǒng)的編碼實現(xiàn)。 合理選擇和正確使用有關(guān)工具、深入理解和掌握有關(guān)設(shè)計思想和方法,對搞好詳細(xì)設(shè)計
48、是非常重要的。 結(jié)構(gòu)化程序的詳細(xì)設(shè)計與面向?qū)ο蟪绦虻脑敿?xì)設(shè)計有許多共性。 </p><p><b> 軟件測試</b></p><p> 1、軟件驗證:是通過檢查和提供客觀證據(jù)表明軟件已經(jīng)滿足規(guī)定的需求,是確保軟件質(zhì)量和降低軟件成本的重要手段,涉及軟件的整個生存周期。</p><p> 進(jìn)行軟件驗證的方式大體有兩種:測試和證明。</
49、p><p> 測試又分靜態(tài)測試和動態(tài)測試兩種。(靜態(tài)測試,又稱評審,是對軟件進(jìn)行的一種分析和檢查活動。動態(tài)測試是通過運行軟件來檢驗其動態(tài)行為和運行結(jié)果的正確性。) 證明是一種通過形式化的數(shù)學(xué)方法來確保軟件正確性的活動。</p><p> 2、軟件測試:是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的復(fù)審,是為了發(fā)現(xiàn)錯誤,通過檢查和提供客觀證據(jù)表明軟件已經(jīng)滿足規(guī)定的需求。</p
50、><p> 軟件測試是確保軟件質(zhì)量和降低軟件成本的重要手段,涉及軟件的整個生存周期。</p><p> 軟件測試就是試圖以最少的代價發(fā)現(xiàn)軟件分析、設(shè)計和編碼中存在的各種不同類型的錯誤,從而提高軟件質(zhì)量,降低軟件成本。</p><p> 一般的軟件開發(fā)組織要將30%~40%的項目精力投入到測試之中,一些人命悠關(guān)的軟件(如航空器的飛行控制軟件)其測試費用往往更高。&l
51、t;/p><p> 軟件測試對象:軟件生存周期各階段文檔和代碼。</p><p> 4、測試與調(diào)試:測試是查找錯誤癥狀的過程,調(diào)試則是查找錯誤癥狀原因并改正錯誤的過程。 針對測試中發(fā)現(xiàn)的錯誤進(jìn)行改正,這便是調(diào)試的工作。測試和調(diào)試往往交替進(jìn)行。 </p><p> 5、軟件測試的根本任務(wù)就是發(fā)現(xiàn)軟件中存在的錯誤。 </p><p> 由于
52、軟件錯誤往往出現(xiàn)在軟件的分析和設(shè)計中,而且錯誤發(fā)現(xiàn)越晚,改正錯誤的工作量也越大,因而在開發(fā)前期利用靜態(tài)測試非常重要,而且發(fā)現(xiàn)錯誤的效率也往往比較高。 </p><p> 6、測試只能說明軟件中存在錯誤,不能表明程序沒有錯誤,因而任何軟件經(jīng)過測試后不能保證軟件中不再存在錯誤。 </p><p><b> 白盒測試</b></p><p>
53、白盒測試是一種以程序的內(nèi)部邏輯結(jié)構(gòu)為依據(jù)設(shè)計測試用例的方法,因而又稱結(jié)構(gòu)測試或玻璃盒測試。</p><p> 合理的白盒測試就是要選取足夠的測試用例,對源代碼實行比較充分的覆蓋,以便盡可能多地發(fā)現(xiàn)程序中的錯誤。(原因:窮舉測試不合理)。</p><p> 主要有兩種方法:一種稱為邏輯覆蓋法,另一種稱為路徑覆蓋法。除此外,對循環(huán)的測試,可采用循環(huán)覆蓋法。</p><p
54、> ①邏輯覆蓋: 語句覆蓋,測試用例能使被測程序的每條執(zhí)行語句至少執(zhí)行一次; 判定覆蓋:測試用例能使被測程序中的每個判定至少取得一次“真”和一次“假”。又稱分支覆蓋;條件覆蓋:測試用例能使被測程序中每個判定的每個條件至少取得一次“真”和一次“假”。如果判定中只有一個條件,則條件覆蓋便滿足判定覆蓋,否則,不一定;判定/條件覆蓋:測試用例既滿足判定覆蓋,又滿足條件覆蓋;條件組合覆蓋:測試用例使每個判定中所有可能的條件取值組合至少執(zhí)行
55、一次。 其中語句覆蓋最弱。</p><p> ?、诨韭窂礁采w法:是在程序圖的基礎(chǔ)上,通過分析環(huán)形復(fù)雜性,導(dǎo)出基本路徑集,然后設(shè)計測試用例使基本路徑集中的每條路徑至少經(jīng)過一次。</p><p> 獨立路徑:包含一組以前從未被處理的語句或條件的一條路徑。</p><p> ③循環(huán)覆蓋法: 邏輯覆蓋法和基本路徑覆蓋法對于循環(huán)只進(jìn)行了循環(huán)一次的測試,顯然是不充分的
56、。而循環(huán)是大多數(shù)軟件實現(xiàn)算法的關(guān)鍵部分,因此對循環(huán)的測試是十分重要的。對于結(jié)構(gòu)化程序而言,循環(huán)主要有三種:簡單循環(huán)、嵌套循環(huán)和串接循環(huán)。</p><p><b> 黑盒測試</b></p><p> 黑盒測試 :又稱功能測試、數(shù)據(jù)驅(qū)動測試等,它將待測試對象看成是一個黑盒子,不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和特性,只依據(jù)規(guī)格說明書檢查程序的功能是否能正常使用。通常,白盒測試
57、用于測試的早期,而黑盒測試由于不需了解程序內(nèi)部情況,因而被許多后期測試(如確認(rèn)測試、系統(tǒng)測試)采用。</p><p> 測試用例設(shè)計方法:用黑盒測試發(fā)現(xiàn)程序中的錯誤,主要根據(jù)輸入條件和輸出條件確定測試數(shù)據(jù),來檢查程序是否能產(chǎn)生正確的輸出。</p><p> 進(jìn)行黑盒測試,主要有下述幾種方法:等價分類法、邊界值分析法、猜錯法、因果圖法。</p><p> 等價分
58、類法和邊界值分析法通過選擇有代表性的測試數(shù)據(jù)來暴露程序錯誤。但不同類型不同特點的程序通常又有一些特殊的容易出錯的情況。并且,有時分別使用某些測試用例測試時程序工作正常,但其組合可能會使程序出錯; 猜錯法是根據(jù)經(jīng)驗和直覺設(shè)計測試用例,盡管能考慮到輸入組合的情況,但顯得不充分;因果圖法借助圖形來設(shè)計測試用例,特別適用于被測程序具有多種輸入條件,程序的輸出又依賴于輸入條件的各種組合的情況。 </p>
59、<p> 黑盒法綜合策略:首先用邊界值分析法設(shè)計測試用例;必要時用等價分類法補(bǔ)充測試用例;必要時再用猜錯法補(bǔ)充測試用例;如果在程序的說明中含有輸入條件的組合,宜在一開始末就采用因果法,然后再按上述步驟進(jìn)行。 </p><p><b> 動態(tài)測試</b></p><p> 動態(tài)測試:通過運行軟件來檢驗其動態(tài)行為與運行結(jié)果的正確性。</p>
60、<p> ?。?)單元測試:又稱模塊測試或分調(diào),是動態(tài)測試中的第一步,通常在編碼階段進(jìn)行。單元測試集中檢查軟件設(shè)計的最小單元——模塊,即程序中最小的獨立編譯單位。</p><p> 單元測試一般總是把白盒法和黑盒法結(jié)合運用。先用黑盒法設(shè)計出一組基本的測試用例,然后用白盒法,根據(jù)覆蓋標(biāo)準(zhǔn)要求補(bǔ)充新的測試用例滿足覆蓋標(biāo)準(zhǔn)。在一般情況下,單元測試應(yīng)以白盒法為主。 </p><p>
61、 單元測試在于考察模塊的接口和內(nèi)部結(jié)構(gòu),檢查是否符合程序規(guī)格說明(即詳細(xì)設(shè)計說明書)的要求。測試的重點在以下幾個方面:模塊的接口;局部數(shù)據(jù)結(jié)構(gòu);重要的執(zhí)行通路;出錯處理路徑;影響以上各項的邊界條件。</p><p> 測試軟件:一般地,驅(qū)動模塊應(yīng)完成接收測試數(shù)據(jù),并把數(shù)據(jù)傳給被測模塊,然后打印有關(guān)結(jié)果等任務(wù);樁模塊應(yīng)該模擬實際模塊完成少量數(shù)據(jù)處理,并檢驗和打印入口處的信息,然后將控制返回給被測模塊。 <
62、/p><p> 面向?qū)ο髥卧獪y試:最小的可測試單元是類,包含一組不同操作。對面向?qū)ο筌浖念悳y試等價于結(jié)構(gòu)化軟件的單元測試。類測試方法:基于故障的測試、隨機(jī)測試和劃分測試。</p><p> ?。?)集成測試:集成測試,又稱組裝測試、綜合測試或聯(lián)調(diào),是在單元測試完成之后,將所有模塊按概要設(shè)計要求組裝成系統(tǒng)的時候進(jìn)行的測試。</p><p> 主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)
63、的問題。主要檢查模塊接口和全局?jǐn)?shù)據(jù)。</p><p> 集成測試有組裝和檢驗兩重意義,一方面將各經(jīng)過單元測試的模塊拼裝起來形成完整可運行的系統(tǒng);另一方面要檢驗每一步拼裝過程是否正確。</p><p> 測試策略:集成測試一般應(yīng)由獨立的測試小組進(jìn)行,由測試小組提出測試用例,記錄測試結(jié)果,并編制測試報告。</p><p> 測試用例的設(shè)計通常采用黑盒法,其實施策略
64、又分為非漸增式和漸增式兩種。 </p><p> 非漸增式測試:采用非漸增式測試,一般應(yīng)先經(jīng)過單元測試,然后再把所有模塊一次性組裝在一起進(jìn)行測試,最終得到要求的軟件系統(tǒng)。 </p><p> 將模塊一次性組裝在一起運行成功的可能性并不大。其結(jié)果往往是發(fā)現(xiàn)有錯誤,但由于程序中模塊一次性引入過多,難于進(jìn)行錯誤定位。同時,一旦修正錯誤之后,新的錯誤很可能馬上會出現(xiàn)。 除規(guī)模很小的程序,一般
65、很少采用此種測試策略。 </p><p> 漸增式測試:漸增式測試采用逐步加入模塊或功能簇的方式進(jìn)行,在加入過程中邊連接邊測試,比較容易定位和修正錯誤,且接口也可以更容易進(jìn)行徹底地測試。</p><p> 按照添加模塊的方式,又可分為自頂向下的漸增測試和自底向上漸增測試。</p><p> 自頂向下的漸增式測試:首先集成主控模塊,然后按照軟件結(jié)構(gòu)的控制層次自上
66、而下進(jìn)行集成,把主控模塊的直接(或間接)調(diào)用模塊按深度優(yōu)先或廣度優(yōu)先的方式集成到整個軟件結(jié)構(gòu)中。 特點:①能較早地顯示整個程序的輪廓,對增強(qiáng)開發(fā)人員的信心,取得用戶的支持,有重要的作用;②只需編寫樁模塊供測試用,驅(qū)動模塊可以利用實際模塊;③能盡早發(fā)現(xiàn)主要控制中的問題,減少以后的返工;④可先對邏輯輸入的分支進(jìn)行組裝和測試,檢查和克服潛藏的錯誤,為其后對主加工分支的組裝和測試提供了保證;⑤由于每添加一個新模塊,就進(jìn)行一次測試,這樣雖然耗費一
67、些時間,但卻使被測程序測試更徹底,尤其是上層模塊。</p><p> 自底向上的漸增式測試:(1)把低層模塊組合成實現(xiàn)某個特定的子功能的模塊簇,并用編寫的驅(qū)動模塊控制它進(jìn)行測試;可以對若干功能簇并行進(jìn)行測試;</p><p> 用實際模塊換掉驅(qū)動模塊,沿軟件結(jié)構(gòu)自下而上移動,把子功能簇組合起來形成更大的子功能簇,并進(jìn)行測試;(3)重復(fù)(2)直到所有模塊組裝完畢。</p>
68、<p> 特點:①不能在測試的早期顯示出程序的輪廓。程序的總體結(jié)構(gòu),要等到加入最后一個模塊時才能最終形成;②測試軟件只需要驅(qū)動模塊,不需要樁模塊,而且隨著組裝層次的上移,驅(qū)動模塊將大為減少(在多數(shù)情況下,編寫驅(qū)動模塊要比樁模塊容易);③由于從低層模塊開始組合,所以較易產(chǎn)生測試用例。</p><p> 在模塊組裝起來后,新的數(shù)據(jù)流路徑建立起來了,新的控制邏輯可能激活了等等。這些改變可能會使原本工作正常
69、的功能產(chǎn)生錯誤,因此,應(yīng)對某些已經(jīng)進(jìn)行過的測試的測試用例再重新執(zhí)行一遍,以保證上述改變不會傳播意外的副作用,稱之為回歸測試。 </p><p> ?。?)確認(rèn)測試:就是驗證所開發(fā)軟件的功能和性能及其他特性是否符合軟件需求規(guī)格說明書的要求。所以,確認(rèn)測試又稱之為有效性測試。 內(nèi)容:功能測試;性能測試;強(qiáng)度測試;配置復(fù)審。</p><p> 確認(rèn)測試是由軟件開發(fā)單位組織進(jìn)行的最后一次測試
70、,也是把軟件交給用戶,進(jìn)行正式的安裝和驗收之前所作的一次重要的準(zhǔn)備。為了確保測試質(zhì)量,一方面應(yīng)組織獨立的測試小組進(jìn)行測試,另一方面吸收任務(wù)委托單位及用戶代表參加測試,以提高測試的可信度。同時,應(yīng)將測試中發(fā)現(xiàn)的錯誤填入問題清單,交開發(fā)者處理。 </p><p> ?。?)系統(tǒng)測試:是在更大范圍內(nèi)進(jìn)行的測試,它將經(jīng)過確認(rèn)測試的軟件作為整個基于計算機(jī)的系統(tǒng)的一個元素,與計算機(jī)硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元
71、素結(jié)合在一起,在實際運行環(huán)境下,對系統(tǒng)進(jìn)行的一系列集成和確認(rèn)測試。</p><p> 系統(tǒng)測試通常由任務(wù)委托單位或用戶組織的驗收小組負(fù)責(zé),一般應(yīng)根據(jù)需求分析說明書來設(shè)計測試用例,在實際使用環(huán)境中運行。系統(tǒng)測試的內(nèi)容對不同的系統(tǒng)各不相同。</p><p><b> 軟件維護(hù)</b></p><p> 1、所謂軟件維護(hù)是指軟件交付使用之后,為
72、了改正錯誤或滿足新的需求等而修改軟件以達(dá)到延長軟件壽命為目的的過程。軟件維護(hù)階段的長短決定了軟件壽命的長短;軟件維護(hù)階段的費用占軟件總成本的大部分。 </p><p> 2、軟件維護(hù)不同于硬件維護(hù),主要原因是軟件維護(hù)不是因為使用時軟件磨損或老化引起,而是由于軟件設(shè)計不正確、不完善或使用環(huán)境的變化等引起。</p><p> 3、軟件維護(hù)類型:改正性維護(hù),識別和糾正軟件錯誤,改正性能上的缺
73、陷,排除實施中的誤使用而進(jìn)行的診斷和改正錯誤的活動。約占整個維護(hù)的20%;適應(yīng)性維護(hù),使軟件適應(yīng)處理環(huán)境或數(shù)據(jù)要求的變化而修改軟件的活動。約占整個維護(hù)的25%;完善性維護(hù),修改或再開發(fā)軟件,以擴(kuò)充軟件功能,增強(qiáng)軟件性能等。約占整個維護(hù)的50%;預(yù)防性維護(hù)或再工程,采用先進(jìn)的軟件工程方法對需要維護(hù)的軟件或軟件的某一部分(重新)進(jìn)行設(shè)計、編碼和測試。連同其它維護(hù)約占整個維護(hù)的5%。</p><p> 4、軟件維護(hù)成
74、本:軟件維護(hù)活動所花費的工作量占軟件整個生存期工作量的70%以上。影響軟件維護(hù)工作量的因素有很多,就軟件系本身而言,有以下幾個主要方面: 系統(tǒng)的大小;程序設(shè)計語言;系統(tǒng)年齡;數(shù)據(jù)庫技術(shù)的應(yīng)用;軟件開發(fā)新技術(shù)的運用。</p><p> 5、軟件維護(hù)相關(guān)的模型:Boehm模型;Belady與Lehman模型。</p><p> 6、軟件維護(hù)過程本質(zhì)上是修改和壓縮了的軟件定義和軟件開發(fā)過程。
75、</p><p> 7、軟件可維護(hù)性是指糾正軟件系統(tǒng)中出現(xiàn)的錯誤或缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充和壓縮軟件的容易程度。</p><p> 軟件可維護(hù)性的7個度量指標(biāo):可理解性,可測試性,可修改性,可靠性,可移植性,可使用性及效率。</p><p> 8、影響軟件可維護(hù)性的軟件屬性:可理解性,表現(xiàn)為人們通過閱讀源代碼和相關(guān)文檔,理解軟件的結(jié)構(gòu)、接口、功能
76、和內(nèi)部過程的容易程度;可測試性,一個軟件容易被測試的程度;可修改性,程序容易修改的程度。 </p><p> 9、軟件再工程技術(shù):是一類軟件工程活動,通過對舊軟件(遺留系統(tǒng))實施處理,以增進(jìn)對軟件的理解,同時又提高了軟件自身的可維護(hù)性、可復(fù)用性等。</p><p> 逆向工程:軟件逆向工程,通過對程序的分析,導(dǎo)出更高抽象層次的表示,如從現(xiàn)存的程序中抽取數(shù)據(jù)、體系結(jié)構(gòu)、過程的設(shè)計信息等,
77、是一個設(shè)計恢復(fù)過程。</p><p> 軟件重構(gòu)是對源代碼和/或數(shù)據(jù)進(jìn)行修改,使其易于理解或維護(hù),以適應(yīng)將來的變更。 軟件重構(gòu)要求關(guān)注模塊細(xì)節(jié)。</p><p> 正向工程也稱為改造,用從現(xiàn)存軟件恢復(fù)設(shè)計中得到的信息去重構(gòu)現(xiàn)存系統(tǒng),以改善其整體質(zhì)量。 </p><p> 10、軟件維護(hù)的副作用:因修改軟件而造成的錯誤(編碼副作用、數(shù)據(jù)副作用、文檔副作用)&
78、lt;/p><p> 小結(jié):軟件工程學(xué)的一個主要目的便是提高軟件的可維護(hù)性,降低軟件維護(hù)的代價; 軟件維護(hù)是軟件生存周期的最后一個階段,也是成本最高的階段; 軟件維護(hù)大多要涉及到軟件設(shè)計內(nèi)容的修改,從而要重視軟件維護(hù)的副作用,對軟件維護(hù)要有正式的組織,制定規(guī)范化的過程,實行嚴(yán)格的維護(hù)評價。 </p><p><b> 軟件質(zhì)量</b></p>
79、<p> 軟件質(zhì)量度量的兩個方面:軟件復(fù)雜性分析、軟件可靠性分析。</p><p> 軟件質(zhì)量控制:ISO9000認(rèn)證、軟件配置管理SCM、CMM。</p><p> 評價軟件質(zhì)量可從三個方面進(jìn)行,即產(chǎn)品或中間產(chǎn)品、過程(即軟件生產(chǎn)所需的資源和活動)和項目。</p><p> 復(fù)雜性度量方法:McCabe環(huán)形計數(shù)法 </p><
80、p> 程序環(huán)形復(fù)雜度V(G)=程序流程圖中的“判定數(shù)”+1</p><p> =程序圖中的“環(huán)形數(shù)”。</p><p><b> =m-n+2</b></p><p> 其中m對應(yīng)于程序圖中的弧數(shù),n對應(yīng)于程序圖中的節(jié)點數(shù)</p><p> 軟件可靠性:軟件在給定的時間間隔及規(guī)定的使用環(huán)境條件下,按分析和
81、設(shè)計規(guī)定的要求成功地運行程序的概率;是與在規(guī)定的一段時間和條件下,軟件維持其性能水平的能力有關(guān)的一組屬性。</p><p> 軟件可靠性三要素:失效,是指最后執(zhí)行結(jié)果與有關(guān)規(guī)格不相符或用戶在軟件系統(tǒng)邊界覺察到不期望的軟件出錯行為;時間,即軟件失效的時間;環(huán)境,軟件運行時所需要的支持系統(tǒng)及有關(guān)的因素。軟件可靠性、硬件可靠性和操作可靠性三者綜合起來反映整個計算機(jī)系統(tǒng)的可靠性。</p><p>
82、;<b> 軟件可靠性測試:</b></p><p><b> ①Gilb植錯模型</b></p><p> 假設(shè):N表示軟件中原有殘留的錯誤數(shù);S表示植入軟件中的錯誤數(shù);</p><p> n表示測試中發(fā)現(xiàn)的原有錯誤數(shù);s表示測試中發(fā)現(xiàn)的植入錯誤數(shù)。</p><p> 則: N=(n/s
83、)*S</p><p> ?、贖yman分別測試模型</p><p> 假定:B0表示軟件中原有的殘留錯誤數(shù);B1表示甲測試員在某一時間內(nèi)發(fā)現(xiàn)的錯誤數(shù);B2表示乙測試員在同一時間內(nèi)發(fā)現(xiàn)的錯誤數(shù);Bc表示甲乙兩人發(fā)現(xiàn)的相同錯誤數(shù)。 則:B0=(B1*B2)/Bc</p><p> 6、軟件配置管理是一組用于計算機(jī)軟件的整個生命周期內(nèi)管理變化的活動。</p&
84、gt;<p> 主要目標(biāo):使變化更易適應(yīng),并減少變化發(fā)生時所需的工作量。</p><p> 7、CMM:1987年,美國卡內(nèi)基-梅隆大學(xué)軟件工程研究所(Software Engineering Institute, SEI)在美國國防部的支持下,提出了“軟件過程能力成熟度模型CMM (Capability Maturity Model)”。 </p><p> CMM作
85、用:一方面,可以用來評價軟件組織的質(zhì)量保證能力;另一方面,也為軟件組織改進(jìn)軟件過程,提高軟件過程能力提供了依據(jù)。</p><p> 8、軟件過程能力成熟度等級:初始級,混沌的軟件過程。焦點:英雄人物;可重復(fù)級,經(jīng)過訓(xùn)練的軟件過程。焦點:項目管理;已定義級,標(biāo)準(zhǔn)一致的軟件過程。焦點:工程過程;定量管理級,可預(yù)測的軟件過程 。焦點:產(chǎn)品和過程質(zhì)量;優(yōu)化級,能持續(xù)改善的軟件過程 。焦點:持續(xù)的改進(jìn)。</p>
86、;<p> 9、CMM與ISO9001的主要區(qū)別:CMM明確強(qiáng)調(diào)持續(xù)的過程改進(jìn),而ISO9001則確定可接受的質(zhì)量體系的最低要求;CMM嚴(yán)格適用于軟件;而ISO 9001范圍很廣,涵蓋了硬件、軟件、加工材料和服務(wù)。</p><p> 小結(jié):提高軟件質(zhì)量,一方面要在軟件開發(fā)過程中對開發(fā)成果進(jìn)行驗證,另一方面要注重軟件開發(fā)過程的規(guī)范化和可視化。前者注重的是產(chǎn)品本身的質(zhì)量,后者注重的是產(chǎn)品管理的質(zhì)量。
87、 軟件復(fù)雜性和可靠性分析技術(shù)為軟件質(zhì)量的分析提供了量化的方法。</p><p><b> 軟件復(fù)用</b></p><p> 所謂軟件復(fù)用是指利用已有的、對建立新系統(tǒng)有用的軟件制品來形成新系統(tǒng)的活動。目前,人們對軟件復(fù)用寄予厚望,認(rèn)為其有可能成為突破軟件危機(jī)的一條出路。</p><p> 軟件復(fù)用目的:縮短軟件開發(fā)和維護(hù)的時間;降低軟件開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《軟件測試技術(shù)》知識點整理
- 工程光學(xué)知識點整理
- 工程光學(xué)知識點整理
- 知識點整理
- 軟件工程復(fù)習(xí)知識點
- 采油工程知識點整理
- 采油工程知識點整理
- 過秦論 知識點整理
- 《勸學(xué)》知識點整理
- 刑法知識點整理
- 論語知識點整理
- unit-5-what-are-the-shirts-made-of知識點整理知識點整理
- 工程經(jīng)濟(jì)學(xué)知識點整理
- unitwhenwasitinvented知識點整理
- 信息知識點整理
- 電氣工程基礎(chǔ)知識點整理
- 電氣工程基礎(chǔ)知識點整理
- 小學(xué)美術(shù)知識點整理
- 《會計基礎(chǔ)》知識點整理
- 圓的知識點整理
評論
0/150
提交評論