




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章:軟件工程學(xué)概述軟件危機(jī):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件危機(jī)的表現(xiàn)形式:Ø 對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;Ø 用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;Ø 軟件產(chǎn)品的質(zhì)量往往靠不??;Ø 軟件常常是不可維護(hù)的;Ø 軟件通常沒有適當(dāng)?shù)奈臋n資料;Ø 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;Ø 軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢 。軟件危機(jī)的原因:Ø 與軟件本身的特點(diǎn)有關(guān)(難于維護(hù),邏輯復(fù)雜)Ø 與軟件開發(fā)與維護(hù)的方法不正
2、確有關(guān)n 軟件程序n 急于求成=拔苗助長n 各自為陣無方法/學(xué)消除軟件危機(jī)的途徑:Ø 消除“軟件就是程序”的錯誤觀念Ø 軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目Ø 成功的軟件開發(fā)技術(shù)和方法Ø 軟件工具和軟件工程支撐環(huán)境軟件=程序+數(shù)據(jù)+文檔軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。包含有技術(shù)和管理兩方面的內(nèi)容。軟件工程的本質(zhì)特性:Ø 軟件工程關(guān)注于大型程序的構(gòu)造Ø 軟件工程的中心課題是控制復(fù)雜性Ø 軟件經(jīng)常變化Ø 開發(fā)軟件的效率非常重要
3、16; 和諧地合作是開發(fā)軟件的關(guān)鍵Ø 軟件必須有效地支持它的用戶Ø 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程方法學(xué)三要素:工具,過程, 方法。Ø 軟件方法:完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎么做”的問題;Ø 軟件工具:為運(yùn)用方法而提供的自動的或半自動的軟件支撐環(huán)境;Ø 理論工具:逐步求精法、成本-效益分析法、軟件度量Ø CASE(Computer-Aided Software Engineering)計(jì)算機(jī)輔助軟件工程Ø 軟件過程:為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框
4、架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。傳統(tǒng)方法學(xué)強(qiáng)調(diào)自頂向下:Ø 傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型Ø 它采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn)) Ø 結(jié)構(gòu)化范型要么面向行為(即對數(shù)據(jù)的操作),要么面向數(shù)據(jù)面向?qū)ο蠓椒▽W(xué)強(qiáng)調(diào)主動地多次反復(fù)迭代:把數(shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法。面向?qū)ο蠓椒?對象+類+繼承+用消息通信面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):Ø 面向?qū)ο蠓椒▽W(xué)的盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識世界解決問題的方法與過程。Ø 面向?qū)ο蠓椒▽W(xué)開發(fā)
5、軟件的過程,是一個主動地多次反復(fù)迭代的演化過程,保證了在各項(xiàng)開發(fā)活動之間的平滑過渡。Ø 促進(jìn)了軟件重用。降低了復(fù)雜性,提高了可理解性,簡化了開發(fā)和維護(hù)工作。傳統(tǒng)方法與面向?qū)ο蠓椒ū容^:Ø 信息隱藏(Information hiding) Ø 有利用維護(hù)軟件Ø 使得軟件開發(fā)變得容易Ø 職責(zé)驅(qū)動設(shè)計(jì)或按合同設(shè)計(jì)軟件生命周期:由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))三個時期組成,每個時期又進(jìn)一步劃分成若干個階段。軟件過程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程模型:Ø 瀑布模型
6、216; 快速原型模型Ø 增量模型Ø 螺旋模型Ø 噴泉模型Ø Rational統(tǒng)一過程Ø 敏捷過程與極限編程Ø 微軟過程瀑布模型的特點(diǎn):Ø 1. 階段間具有順序性和依賴性前一階段的工作完成之后,才能開始后一階段的工作; 前一階段的輸出文檔就是后一階段的輸入文檔。Ø 2. 推遲實(shí)現(xiàn)的觀點(diǎn)對于規(guī)模較大的軟件項(xiàng)目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時間反而越長。Ø 3. 質(zhì)量保證的觀點(diǎn)每個階段都必須完成規(guī)定的文檔,是“文檔驅(qū)動”的模型;每個階段結(jié)束前都要對所完成的文檔進(jìn)行評審,盡早發(fā)現(xiàn)問題,改正錯誤
7、。瀑布模型的優(yōu)點(diǎn):Ø 可強(qiáng)迫開發(fā)人員采用規(guī)范的方法;Ø 嚴(yán)格地規(guī)定了每個階段必須提交的文檔;Ø 要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。瀑布模型的缺點(diǎn):Ø 只能通過文檔了解產(chǎn)品,不經(jīng)過實(shí)踐的需求是不切實(shí)際的。瀑布模型適用于: Ø 需求是預(yù)知的; Ø 軟件實(shí)現(xiàn)方法是成熟的; Ø 項(xiàng)目周期較短??焖僭湍P偷奶攸c(diǎn):Ø 快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。Ø 快速原型的本質(zhì)是“快速”。應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約成本。根據(jù)原型的不同作用,有
8、三類原型模型:Ø 探索型原型用于開發(fā)的需求分析階段Ø 實(shí)驗(yàn)型原型主要用于設(shè)計(jì)階段Ø 演化型原型用于及早向用戶提交一個原型系統(tǒng)比較:Ø 瀑布模型試圖一次就獲得正確的產(chǎn)品Ø 快速原型頻繁變化,然后廢棄增量模型:把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。增量模型優(yōu)缺點(diǎn):Ø 優(yōu)點(diǎn):能在較短的時間內(nèi),提供可完成部分工作的初步產(chǎn)品給用戶;用戶有較為充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品。Ø 缺點(diǎn):對開發(fā)人員技術(shù)能力要求較高,要求能從系統(tǒng)整體出發(fā)正確劃分增量構(gòu)件,并進(jìn)行分別開發(fā),
9、最后能很好地集成這些構(gòu)件。增量模型適用于:Ø 適用于需求經(jīng)常改變的軟件開發(fā)過程。Ø 如果在項(xiàng)目既定的商業(yè)要求期限之前不可能找到足夠的開發(fā)人員,在這種情況下,增量模型顯得特別有用。軟件開發(fā)總要冒一定風(fēng)險:Ø 產(chǎn)品交付用戶不滿意Ø 到交付期產(chǎn)品未完成Ø 成本超預(yù)算Ø 產(chǎn)品完成前開發(fā)人員跳槽Ø 競爭對手:價格、功能。螺旋模型:將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險分析。螺旋模型強(qiáng)調(diào)風(fēng)險分析螺旋模型的優(yōu)點(diǎn):Ø 主要優(yōu)勢在于它是風(fēng)險驅(qū)動的。Ø 對可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也
10、有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標(biāo);Ø 減少了過多測試或測試不足所帶來的風(fēng)險;Ø 維護(hù)只是模型的另一個周期,維護(hù)和開發(fā)之間沒有本質(zhì)區(qū)別。螺旋模型的缺點(diǎn):Ø 采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險評估經(jīng)驗(yàn)和專門知識,在風(fēng)險較大的項(xiàng)目開發(fā)中,如果未能夠及時標(biāo)識風(fēng)險,勢必造成重大損失。 Ø 過多的迭代次數(shù)會增加開發(fā)成本,延遲提交時間。 螺旋模型適用于:Ø 特別適用于龐大、復(fù)雜并具有高風(fēng)險的系統(tǒng)。Ø 適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。噴泉模型:是典型的面向?qū)ο笊芷谀P汀?“噴泉”這個詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。為避免使
11、用噴泉模型開發(fā)軟件時開發(fā)過程過分無序,應(yīng)該把一個線性過程(例如,快速原型模型或圖中的中心垂線)作為總目標(biāo)。噴泉模型的優(yōu)點(diǎn):Ø 該模型的各個階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。Ø 多次反復(fù)地增加或明確目標(biāo)系統(tǒng),而不是本質(zhì)性的改動,降低錯誤的可能性。噴泉模型的缺點(diǎn):Ø 由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,不利于項(xiàng)目的管理。Ø 要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。噴泉模型適用于:Ø 適用于面向?qū)ο蟮能浖_發(fā)過程。重構(gòu):Ø 提高代碼質(zhì)量,可維護(hù)性
12、;Ø 幫助盡早的發(fā)現(xiàn)錯誤;Ø 可以提高開發(fā)速度;微軟過程模型:Ø 每一個生命周期發(fā)布一個遞進(jìn)的版本,各生命周期持續(xù)快速地迭代循環(huán)Ø 優(yōu)點(diǎn): 綜合了Rational統(tǒng)一過程和敏捷過程的優(yōu)點(diǎn)Ø 缺點(diǎn):對方法、工具和產(chǎn)品等方面不夠全面第二章:軟件設(shè)計(jì)基本概念步驟:Ø 設(shè)想供選擇的方案Ø 選取合理的方案系統(tǒng)流程圖組成系統(tǒng)的物理元素清單成本/效益分析實(shí)現(xiàn)這個系統(tǒng)的進(jìn)度計(jì)劃Ø 推薦最佳方案Ø 功能分解結(jié)構(gòu)設(shè)計(jì)n 確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系n 結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段的任務(wù)過程設(shè)計(jì)n 確定每個模塊的處
13、理過程n 過程設(shè)計(jì)是詳細(xì)設(shè)計(jì)階段的任務(wù)Ø 設(shè)計(jì)軟件結(jié)構(gòu)Ø 設(shè)計(jì)數(shù)據(jù)庫Ø 制定測試計(jì)劃Ø 書寫文檔設(shè)計(jì)原理:Ø 模塊化Ø 抽象 Ø 逐步求精Ø 信息隱蔽和局部化Ø 模塊獨(dú)立模塊:是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標(biāo)識符代表它。模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求為什么要模塊化?Ø 模塊化是為了使一個復(fù)雜的大型程序能被人的智力所管理,軟件應(yīng)該具備的惟一屬性。Ø 如果一個
14、大型程序僅由一個模塊組成,它將很難被人所理解。 評價一種設(shè)計(jì)方法定義模塊能力的五條標(biāo)準(zhǔn):Ø 模塊可分解性Ø 模塊可組裝性 Ø 模塊可理解性Ø 模塊連續(xù)性 Ø 模塊保護(hù)性模塊化的作用:(了解)Ø 采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解。Ø 模塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性。Ø 模塊化能夠提高軟件的可修改性。Ø 模塊化也有助于軟件開發(fā)工程的組織管理。 抽象:現(xiàn)實(shí)世界中一定事物、狀態(tài)或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它
15、們之間的差異,這就是抽象。逐步求精:為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮。逐步求精是人類解決復(fù)雜問題時采用的基本方法,也是許多軟件工程技術(shù)的基礎(chǔ)。信息隱藏:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。局部化:所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。模塊獨(dú)立:模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。模塊獨(dú)立的重要性:Ø 有效的模塊化(即具有獨(dú)立的模塊)的軟件比較容易開發(fā)出來。Ø 獨(dú)立的模塊比較容易測試和維護(hù)。模塊獨(dú)立程度的兩個定性標(biāo)準(zhǔn)度量:Ø 耦合:
16、衡量不同模塊彼此間互相依賴(連接)的緊密程度。耦合要低,即每個模塊和其他模塊之間的關(guān)系要簡單;Ø 內(nèi)聚:衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。內(nèi)聚要高,每個模塊完成一個相對獨(dú)立的特定子功能。公共環(huán)境耦合(common coupling):當(dāng)兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用時,它們之間的耦合稱為公共環(huán)境耦合。(類型如下:)應(yīng)該采取下述設(shè)計(jì)原則:Ø 盡量使用數(shù)據(jù)耦合,Ø 少用控制耦合和特征耦合,Ø 限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。 內(nèi)聚:標(biāo)志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。簡單地說,理想內(nèi)聚
17、的模塊只做一件事情。Ø 偶然內(nèi)聚(coincidental cohesion)Ø 邏輯內(nèi)聚(logical cohesion)Ø 時間內(nèi)聚(temporal cohesion)Ø 過程內(nèi)聚(procedural cohesion)Ø 通信內(nèi)聚(communicational cohesion)Ø 順序內(nèi)聚(sequential cohesion)Ø 功能內(nèi)聚(functional cohesion)內(nèi)聚程度的度量:Ø 偶然內(nèi)聚:解決方案,將模塊分成更小的模塊,每個小模塊執(zhí)行一個操作。Ø 邏輯內(nèi)聚:解決方案
18、,模塊分解Ø 時間內(nèi)聚:如果一個模塊包含的任務(wù)必須在同一段時間內(nèi)執(zhí)行,就叫時間內(nèi)聚。如:將多個變量的初始化放在同一個模塊中實(shí)現(xiàn)Ø 過程內(nèi)聚;解決方案:分割為單獨(dú)的模塊,每個模塊執(zhí)行一個操作。Ø 通信內(nèi)聚;解決方案:分成多個模塊,每個模塊執(zhí)行一個操作。Ø 順序內(nèi)聚(sequential cohesion)Ø 功能內(nèi)聚(functional cohesion)軟件設(shè)計(jì)啟發(fā)規(guī)則:Ø 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性Ø 模塊規(guī)模應(yīng)該適中Ø 深度、寬度、扇出和扇入都應(yīng)適當(dāng)Ø 模塊的作用域應(yīng)該在控制域之內(nèi)Ø 力爭
19、降低模塊接口的復(fù)雜程度Ø 設(shè)計(jì)單入口單出口的模塊第三章:詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的根本目標(biāo):確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。結(jié)構(gòu)程序設(shè)計(jì):如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用GOTO語句的程序設(shè)計(jì)方法。人機(jī)界面設(shè)計(jì)-三條“黃金規(guī)則”:Ø 置用戶于控制之下。Ø 減少用戶記憶負(fù)擔(dān)。Ø 保持界面一致。設(shè)計(jì)人機(jī)界面過程中會遇到的4個問題:Ø 系統(tǒng)響應(yīng)時間:兩個重要屬性-長度,易變性Ø 響應(yīng)時間易變性低也有助于用戶建立起穩(wěn)定
20、的工作節(jié)奏。Ø 如果系統(tǒng)響應(yīng)時間過長,用戶就會感到緊張和沮喪;系統(tǒng)響應(yīng)時間過短會迫使用戶加快操作節(jié)奏,從而可能會犯錯誤。Ø 用戶幫助設(shè)施Ø 出錯信息處理Ø 命令交互 界面分類:Ø 一般交互界面Ø 信息顯示界面:數(shù)據(jù),字符,圖形,報(bào)告Ø 數(shù)據(jù)輸入界面:保持信息顯示和數(shù)據(jù)輸入的一致性,消除冗余輸入過程設(shè)計(jì)工具:1、圖形工具,程序流程圖,盒圖,問題分析圖,HIPO圖;2、表格工具,判定表,判定樹;3、語言工具,過程設(shè)計(jì)語言。(a)選擇; (b)注釋; (c)預(yù)處理; (d)多分支; (e)開始和結(jié)束; (f)準(zhǔn)備;(g) 循環(huán)上界
21、限; (h) 循環(huán)下界限; (i)虛線; (j)省略符; (k)并行方式;(l)處理; (m)輸入輸出; (n)連接; (o)換頁連接; (p)控制流程序流程圖的主要缺點(diǎn):Ø 程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。Ø 程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。Ø 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。 盒圖具有下述特點(diǎn):Ø 功能域明確。Ø 不可能任意轉(zhuǎn)移控制。Ø 很容易確定局部和全程數(shù)據(jù)的作用域。Ø 很容易表現(xiàn)嵌套
22、關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。PAD圖的主要優(yōu)點(diǎn)如下:Ø 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號設(shè)計(jì)出來的程序必然是結(jié)構(gòu)化程序。Ø PAD圖所描繪的程序結(jié)構(gòu)十分清晰。Ø PAD圖表現(xiàn)程序邏輯易讀、易懂、易記。Ø 容易將PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動完成。Ø 即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。Ø PAD圖的符號支持自頂向下、逐步求精方法的使用。判定樹的優(yōu)點(diǎn):Ø 它的形式簡單,一眼就可以看出其含義,因此易于掌握和使用。判定樹的缺點(diǎn):Ø 簡潔性不如判定表,數(shù)據(jù)元素的同一個值往往要重復(fù)寫多遍,而且越
23、接近樹的葉端重復(fù)次數(shù)越多。Ø 畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。 PDL的優(yōu)點(diǎn):Ø 可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。Ø 可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。Ø 已經(jīng)有自動處理程序存在,而且可以自動由PDL生成程序代碼。PDL的缺點(diǎn):Ø 不如圖形工具形象直觀,描述復(fù)雜的條件組合與動作間的對應(yīng)關(guān)系時,不如判定表清晰簡單。 Jackson圖的優(yōu)點(diǎn):Ø 便于表示層次結(jié)構(gòu),而且是對結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具;Ø
24、形象直觀可讀性好;Ø 既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。Jackson圖的缺點(diǎn):Ø 表示選擇或重復(fù)結(jié)構(gòu)時,選擇條件或循環(huán)結(jié)束條件不能直接在圖上表示出來,影響了圖的表達(dá)能力,也不易直接把圖翻譯成程序;Ø 框間連線為斜線,不易在行式打印機(jī)上輸出。 Jackson圖:用偽碼表示程序:注:PPT101例3定量度量程序復(fù)雜程度的作用:Ø 把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中錯誤的數(shù)量以及軟件開發(fā)需要用的工作量;Ø 定量度量的結(jié)果可以用來比較兩個不同的設(shè)計(jì)或兩個不同算法的優(yōu)劣;Ø 程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。McCab
25、e方法是一種軟件質(zhì)量度量方法,它是基于對程序拓?fù)浣Y(jié)構(gòu)復(fù)雜度的分析。順序結(jié)構(gòu):選擇結(jié)構(gòu):循環(huán)結(jié)構(gòu):環(huán)形復(fù)雜度的用途Ø 定量度量程序內(nèi)分支數(shù)或循環(huán)個數(shù),即程序結(jié)構(gòu)的復(fù)雜程度;Ø 定量度量測試難度;Ø 能對軟件最終的可靠性給出某種預(yù)測。Ø 實(shí)踐表明,模塊規(guī)模以V(G)10為宜。 l Halstead方法根據(jù)程序中運(yùn)算符和操作數(shù)(變量和常量)的總數(shù)來度量程序的復(fù)雜程度。l 令N1為程序中運(yùn)算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長度N定義為:N=N1+N2程序中使用的不同運(yùn)算符(包括關(guān)鍵字)的個數(shù)n1,以及不同操作數(shù)(變量和常數(shù))的個數(shù)n2。預(yù)測程序長度
26、的公式如下:H = n1 log2n1 + n2 log2n2預(yù)測程序中包含錯誤的個數(shù)的公式如下:E = N log2 (n1+n2)/3000 (這個應(yīng)該不會考很難)第四章:軟件編碼注釋分為序言性注釋和功能性注釋;序言性注釋應(yīng)置于每個模塊的起始部分,主要內(nèi)容有:Ø 說明每個模塊的用途、功能。Ø 說明模塊的接口:調(diào)用形式、參數(shù)描述及從屬模塊的清單。Ø 數(shù)據(jù)描述:重要數(shù)據(jù)的名稱、用途、限制、約束及其他信息。Ø 開發(fā)歷史:設(shè)計(jì)者、審閱者姓名及日期,修改說明及日期。注釋基本原則:Ø 注釋應(yīng)該增加代碼的清晰度。代碼注釋的目的是要使代碼更易于被其他開發(fā)人
27、員等理解。Ø 避免使用裝飾性內(nèi)容。 Ø 保持注釋的簡潔。 Ø 注釋信息不僅要包括代碼的功能,還應(yīng)給出原因。 Ø 不要為注釋而注釋。 Ø 除變量定義等較短語句的注釋可用行尾注釋外,其他注釋當(dāng)避免使用行尾注釋。文件注釋:在每個文件的頭部都應(yīng)該包含該文件的功能、作用、作者、版權(quán)以及創(chuàng)建、修改記錄等。類、接口注釋:在類、接口定義之前當(dāng)對其進(jìn)行注釋,包括類、接口的目的、作用、功能、繼承于何種父類,實(shí)現(xiàn)的接口、實(shí)現(xiàn)的算法、使用方法、示例程序等。方法注釋:Ø 明確該方法功能、作用、各參數(shù)含義以及返回值等。 Ø 參數(shù)注釋時當(dāng)注明其取值范圍等
28、。Ø 返回值當(dāng)注釋出失敗、錯誤、異常時的返回情況。 Ø 異常當(dāng)注釋出什么情況、什么時候、什么條件下會引發(fā)什么樣的異常版本控制的基本操作:Ø 1 檢入(Check in)Ø 2 檢出(Check out)Ø 3 更新(Update)Ø 4 同步(Synchronization)版本控制好處:Ø 便于團(tuán)隊(duì)代碼共享Ø 保證整個團(tuán)隊(duì)使用統(tǒng)一的代碼版本Ø 能獲得版本控制工具中保存的任何版本Ø 能夠把出錯或誤操作的最新版的項(xiàng)目恢復(fù)到正確的歷史版本Ø 快速的集成第五章:軟件測試什么是軟件測試:是為了
29、發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。發(fā)現(xiàn)錯誤是為了更正錯誤,最終得到一個高質(zhì)量的軟件系統(tǒng)。軟件測試的對象:整個軟件定義、開發(fā)周期的產(chǎn)品. 軟件測試不等于程序測試;它包括程序測試和文檔測試。測試用例:通常指測試數(shù)據(jù)和預(yù)期的輸出結(jié)果注意:測試不能表明軟件中不存在錯誤,它只能說明軟件中存在錯誤。軟件測試的準(zhǔn)則:Ø 所有測試都能追溯到用戶需求 Ø 應(yīng)該遠(yuǎn)在測試開始之前就制定出測試計(jì)劃 Ø 應(yīng)該把 Pareto原理(又叫80/20定律)應(yīng)用到軟件測試中。Ø 從“小規(guī)?!睖y試開始,逐步過渡到“大規(guī)?!睖y試 Ø 窮舉測試是不可能的測試只能證明程序有錯,不能證明程序沒有錯誤 Ø 應(yīng)由獨(dú)立的第三方從事測試工作測試的方法:靜態(tài)測試和動態(tài)測試,動態(tài)測試有黑盒法,白盒法;注:黑盒(5億年)和白盒(3170年)法兩者都不可能實(shí)現(xiàn)窮盡測試;測試的 4 個步驟:Ø 單元(模塊)測試目的:發(fā)現(xiàn)模塊內(nèi)部可能存在的差錯依據(jù):詳細(xì)設(shè)計(jì)說明書和源程序清單方法:白盒測試為主,黑盒測試為輔,多個模塊并行進(jìn)行Ø 集成測試(子系統(tǒng)和系統(tǒng)測試)Ø 確認(rèn)(驗(yàn)收)測試Ø 平行(系統(tǒng))測試第六章:軟件的維護(hù)軟件維護(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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025福建省建筑安全員C證考試題庫
- 南京師范大學(xué)《統(tǒng)計(jì)學(xué)專業(yè)前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川農(nóng)業(yè)大學(xué)《醫(yī)學(xué)論文寫作與學(xué)術(shù)誠信》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西體育高等專科學(xué)?!兜厍蛭锢韺W(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅畜牧工程職業(yè)技術(shù)學(xué)院《研究型綜合》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱工程大學(xué)《學(xué)前教育專業(yè)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年山東省百師聯(lián)考高三上學(xué)期11月考試歷史試卷
- 上海民遠(yuǎn)職業(yè)技術(shù)學(xué)院《服裝市場調(diào)研》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西信息職業(yè)技術(shù)學(xué)院《秘書學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州農(nóng)業(yè)職業(yè)學(xué)院《口腔探究性學(xué)習(xí)(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 《材料工程基礎(chǔ)》教學(xué)大綱
- 介紹國家-巴西Brazil
- 國內(nèi)外材料牌號對照
- 建設(shè)工程施工合同培訓(xùn)PPT(49頁)
- 2010哈弗H5維修手冊
- (完整版)NRS數(shù)字分級法評分表
- LY∕T 2780-2016 松皰銹病菌檢疫技術(shù)規(guī)程
- 一文看懂全部變電站電氣主接線方式
- 蘇科版四年級勞動技術(shù)下冊教學(xué)計(jì)劃
- 應(yīng)答器報(bào)文定義《運(yùn)基信號[2005]224號》
- 電網(wǎng)公司客戶資產(chǎn)接收管理細(xì)則
評論
0/150
提交評論