軟件工程-知識(shí)點(diǎn)集_第1頁(yè)
軟件工程-知識(shí)點(diǎn)集_第2頁(yè)
軟件工程-知識(shí)點(diǎn)集_第3頁(yè)
軟件工程-知識(shí)點(diǎn)集_第4頁(yè)
軟件工程-知識(shí)點(diǎn)集_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章:軟件工程學(xué)概述軟件危機(jī):是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件危機(jī)的表現(xiàn)形式:Ø 對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;Ø 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;Ø 軟件產(chǎn)品的質(zhì)量往往靠不??;Ø 軟件常常是不可維護(hù)的;Ø 軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料;Ø 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;Ø 軟件開(kāi)發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì) 。軟件危機(jī)的原因:Ø 與軟件本身的特點(diǎn)有關(guān)(難于維護(hù),邏輯復(fù)雜)Ø 與軟件開(kāi)發(fā)與維護(hù)的方法不正

2、確有關(guān)n 軟件程序n 急于求成=拔苗助長(zhǎng)n 各自為陣無(wú)方法/學(xué)消除軟件危機(jī)的途徑:Ø 消除“軟件就是程序”的錯(cuò)誤觀念Ø 軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目Ø 成功的軟件開(kāi)發(fā)技術(shù)和方法Ø 軟件工具和軟件工程支撐環(huán)境軟件=程序+數(shù)據(jù)+文檔軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。包含有技術(shù)和管理兩方面的內(nèi)容。軟件工程的本質(zhì)特性:Ø 軟件工程關(guān)注于大型程序的構(gòu)造Ø 軟件工程的中心課題是控制復(fù)雜性Ø 軟件經(jīng)常變化Ø 開(kāi)發(fā)軟件的效率非常重要

3、16; 和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵Ø 軟件必須有效地支持它的用戶Ø 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程方法學(xué)三要素:工具,過(guò)程, 方法。Ø 軟件方法:完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎么做”的問(wèn)題;Ø 軟件工具:為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境;Ø 理論工具:逐步求精法、成本-效益分析法、軟件度量Ø CASE(Computer-Aided Software Engineering)計(jì)算機(jī)輔助軟件工程Ø 軟件過(guò)程:為了獲得高質(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)化范型要么面向行為(即對(duì)數(shù)據(jù)的操作),要么面向數(shù)據(jù)面向?qū)ο蠓椒▽W(xué)強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代:把數(shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。面向?qū)ο蠓椒?對(duì)象+類+繼承+用消息通信面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):Ø 面向?qū)ο蠓椒▽W(xué)的盡量模擬人類習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程。Ø 面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)

5、軟件的過(guò)程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過(guò)程,保證了在各項(xiàng)開(kāi)發(fā)活動(dòng)之間的平滑過(guò)渡。Ø 促進(jìn)了軟件重用。降低了復(fù)雜性,提高了可理解性,簡(jiǎn)化了開(kāi)發(fā)和維護(hù)工作。傳統(tǒng)方法與面向?qū)ο蠓椒ū容^:Ø 信息隱藏(Information hiding) Ø 有利用維護(hù)軟件Ø 使得軟件開(kāi)發(fā)變得容易Ø 職責(zé)驅(qū)動(dòng)設(shè)計(jì)或按合同設(shè)計(jì)軟件生命周期:由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。軟件過(guò)程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過(guò)程模型:Ø 瀑布模型&#

6、216; 快速原型模型Ø 增量模型Ø 螺旋模型Ø 噴泉模型Ø Rational統(tǒng)一過(guò)程Ø 敏捷過(guò)程與極限編程Ø 微軟過(guò)程瀑布模型的特點(diǎn):Ø 1. 階段間具有順序性和依賴性前一階段的工作完成之后,才能開(kāi)始后一階段的工作; 前一階段的輸出文檔就是后一階段的輸入文檔。Ø 2. 推遲實(shí)現(xiàn)的觀點(diǎn)對(duì)于規(guī)模較大的軟件項(xiàng)目來(lái)說(shuō),往往編碼開(kāi)始得越早最終完成開(kāi)發(fā)工作所需要的時(shí)間反而越長(zhǎng)。Ø 3. 質(zhì)量保證的觀點(diǎn)每個(gè)階段都必須完成規(guī)定的文檔,是“文檔驅(qū)動(dòng)”的模型;每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤

7、。瀑布模型的優(yōu)點(diǎn):Ø 可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法;Ø 嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;Ø 要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。瀑布模型的缺點(diǎn):Ø 只能通過(guò)文檔了解產(chǎn)品,不經(jīng)過(guò)實(shí)踐的需求是不切實(shí)際的。瀑布模型適用于: Ø 需求是預(yù)知的; Ø 軟件實(shí)現(xiàn)方法是成熟的; Ø 項(xiàng)目周期較短??焖僭湍P偷奶攸c(diǎn):Ø 快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。Ø 快速原型的本質(zhì)是“快速”。應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開(kāi)發(fā)過(guò)程,節(jié)約成本。根據(jù)原型的不同作用,有

8、三類原型模型:Ø 探索型原型用于開(kāi)發(fā)的需求分析階段Ø 實(shí)驗(yàn)型原型主要用于設(shè)計(jì)階段Ø 演化型原型用于及早向用戶提交一個(gè)原型系統(tǒng)比較:Ø 瀑布模型試圖一次就獲得正確的產(chǎn)品Ø 快速原型頻繁變化,然后廢棄增量模型:把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。增量模型優(yōu)缺點(diǎn):Ø 優(yōu)點(diǎn):能在較短的時(shí)間內(nèi),提供可完成部分工作的初步產(chǎn)品給用戶;用戶有較為充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。Ø 缺點(diǎn):對(duì)開(kāi)發(fā)人員技術(shù)能力要求較高,要求能從系統(tǒng)整體出發(fā)正確劃分增量構(gòu)件,并進(jìn)行分別開(kāi)發(fā),

9、最后能很好地集成這些構(gòu)件。增量模型適用于:Ø 適用于需求經(jīng)常改變的軟件開(kāi)發(fā)過(guò)程。Ø 如果在項(xiàng)目既定的商業(yè)要求期限之前不可能找到足夠的開(kāi)發(fā)人員,在這種情況下,增量模型顯得特別有用。軟件開(kāi)發(fā)總要冒一定風(fēng)險(xiǎn):Ø 產(chǎn)品交付用戶不滿意Ø 到交付期產(chǎn)品未完成Ø 成本超預(yù)算Ø 產(chǎn)品完成前開(kāi)發(fā)人員跳槽Ø 競(jìng)爭(zhēng)對(duì)手:價(jià)格、功能。螺旋模型:將瀑布模型和快速原型模型結(jié)合起來(lái),強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析。螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析螺旋模型的優(yōu)點(diǎn):Ø 主要優(yōu)勢(shì)在于它是風(fēng)險(xiǎn)驅(qū)動(dòng)的。Ø 對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也

10、有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo);Ø 減少了過(guò)多測(cè)試或測(cè)試不足所帶來(lái)的風(fēng)險(xiǎn);Ø 維護(hù)只是模型的另一個(gè)周期,維護(hù)和開(kāi)發(fā)之間沒(méi)有本質(zhì)區(qū)別。螺旋模型的缺點(diǎn):Ø 采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門(mén)知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開(kāi)發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢(shì)必造成重大損失。 Ø 過(guò)多的迭代次數(shù)會(huì)增加開(kāi)發(fā)成本,延遲提交時(shí)間。 螺旋模型適用于:Ø 特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。Ø 適用于內(nèi)部開(kāi)發(fā)的大規(guī)模軟件項(xiàng)目。噴泉模型:是典型的面向?qū)ο笊芷谀P汀?“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。為避免使

11、用噴泉模型開(kāi)發(fā)軟件時(shí)開(kāi)發(fā)過(guò)程過(guò)分無(wú)序,應(yīng)該把一個(gè)線性過(guò)程(例如,快速原型模型或圖中的中心垂線)作為總目標(biāo)。噴泉模型的優(yōu)點(diǎn):Ø 該模型的各個(gè)階段沒(méi)有明顯的界限,開(kāi)發(fā)人員可以同步進(jìn)行開(kāi)發(fā)。Ø 多次反復(fù)地增加或明確目標(biāo)系統(tǒng),而不是本質(zhì)性的改動(dòng),降低錯(cuò)誤的可能性。噴泉模型的缺點(diǎn):Ø 由于噴泉模型在各個(gè)開(kāi)發(fā)階段是重疊的,因此在開(kāi)發(fā)過(guò)程中需要大量的開(kāi)發(fā)人員,不利于項(xiàng)目的管理。Ø 要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。噴泉模型適用于:Ø 適用于面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。重構(gòu):Ø 提高代碼質(zhì)量,可維護(hù)性

12、;Ø 幫助盡早的發(fā)現(xiàn)錯(cuò)誤;Ø 可以提高開(kāi)發(fā)速度;微軟過(guò)程模型:Ø 每一個(gè)生命周期發(fā)布一個(gè)遞進(jìn)的版本,各生命周期持續(xù)快速地迭代循環(huán)Ø 優(yōu)點(diǎn): 綜合了Rational統(tǒng)一過(guò)程和敏捷過(guò)程的優(yōu)點(diǎn)Ø 缺點(diǎn):對(duì)方法、工具和產(chǎn)品等方面不夠全面第二章:軟件設(shè)計(jì)基本概念步驟:Ø 設(shè)想供選擇的方案Ø 選取合理的方案系統(tǒng)流程圖組成系統(tǒng)的物理元素清單成本/效益分析實(shí)現(xiàn)這個(gè)系統(tǒng)的進(jìn)度計(jì)劃Ø 推薦最佳方案Ø 功能分解結(jié)構(gòu)設(shè)計(jì)n 確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系n 結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段的任務(wù)過(guò)程設(shè)計(jì)n 確定每個(gè)模塊的處

13、理過(guò)程n 過(guò)程設(shè)計(jì)是詳細(xì)設(shè)計(jì)階段的任務(wù)Ø 設(shè)計(jì)軟件結(jié)構(gòu)Ø 設(shè)計(jì)數(shù)據(jù)庫(kù)Ø 制定測(cè)試計(jì)劃Ø 書(shū)寫(xiě)文檔設(shè)計(jì)原理:Ø 模塊化Ø 抽象 Ø 逐步求精Ø 信息隱蔽和局部化Ø 模塊獨(dú)立模塊:是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求為什么要模塊化?Ø 模塊化是為了使一個(gè)復(fù)雜的大型程序能被人的智力所管理,軟件應(yīng)該具備的惟一屬性。Ø 如果一個(gè)

14、大型程序僅由一個(gè)模塊組成,它將很難被人所理解。 評(píng)價(jià)一種設(shè)計(jì)方法定義模塊能力的五條標(biāo)準(zhǔn):Ø 模塊可分解性Ø 模塊可組裝性 Ø 模塊可理解性Ø 模塊連續(xù)性 Ø 模塊保護(hù)性模塊化的作用:(了解)Ø 采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解。Ø 模塊化使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可靠性。Ø 模塊化能夠提高軟件的可修改性。Ø 模塊化也有助于軟件開(kāi)發(fā)工程的組織管理。 抽象:現(xiàn)實(shí)世界中一定事物、狀態(tài)或過(guò)程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來(lái),暫時(shí)忽略它

15、們之間的差異,這就是抽象。逐步求精:為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。逐步求精是人類解決復(fù)雜問(wèn)題時(shí)采用的基本方法,也是許多軟件工程技術(shù)的基礎(chǔ)。信息隱藏:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。局部化:所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。模塊獨(dú)立:模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。模塊獨(dú)立的重要性:Ø 有效的模塊化(即具有獨(dú)立的模塊)的軟件比較容易開(kāi)發(fā)出來(lái)。Ø 獨(dú)立的模塊比較容易測(cè)試和維護(hù)。模塊獨(dú)立程度的兩個(gè)定性標(biāo)準(zhǔn)度量:Ø 耦合:

16、衡量不同模塊彼此間互相依賴(連接)的緊密程度。耦合要低,即每個(gè)模塊和其他模塊之間的關(guān)系要簡(jiǎn)單;Ø 內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。內(nèi)聚要高,每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能。公共環(huán)境耦合(common coupling):當(dāng)兩個(gè)或多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí),它們之間的耦合稱為公共環(huán)境耦合。(類型如下:)應(yīng)該采取下述設(shè)計(jì)原則:Ø 盡量使用數(shù)據(jù)耦合,Ø 少用控制耦合和特征耦合,Ø 限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。 內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展。簡(jiǎn)單地說(shuō),理想內(nèi)聚

17、的模塊只做一件事情。Ø 偶然內(nèi)聚(coincidental cohesion)Ø 邏輯內(nèi)聚(logical cohesion)Ø 時(shí)間內(nèi)聚(temporal cohesion)Ø 過(guò)程內(nèi)聚(procedural cohesion)Ø 通信內(nèi)聚(communicational cohesion)Ø 順序內(nèi)聚(sequential cohesion)Ø 功能內(nèi)聚(functional cohesion)內(nèi)聚程度的度量:Ø 偶然內(nèi)聚:解決方案,將模塊分成更小的模塊,每個(gè)小模塊執(zhí)行一個(gè)操作。Ø 邏輯內(nèi)聚:解決方案

18、,模塊分解Ø 時(shí)間內(nèi)聚:如果一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行,就叫時(shí)間內(nèi)聚。如:將多個(gè)變量的初始化放在同一個(gè)模塊中實(shí)現(xiàn)Ø 過(guò)程內(nèi)聚;解決方案:分割為單獨(dú)的模塊,每個(gè)模塊執(zhí)行一個(gè)操作。Ø 通信內(nèi)聚;解決方案:分成多個(gè)模塊,每個(gè)模塊執(zhí)行一個(gè)操作。Ø 順序內(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)Ø 力爭(zhēng)

19、降低模塊接口的復(fù)雜程度Ø 設(shè)計(jì)單入口單出口的模塊第三章:詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段的根本目標(biāo):確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng)。結(jié)構(gòu)程序設(shè)計(jì):如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱這個(gè)程序是結(jié)構(gòu)化的。結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用GOTO語(yǔ)句的程序設(shè)計(jì)方法。人機(jī)界面設(shè)計(jì)-三條“黃金規(guī)則”:Ø 置用戶于控制之下。Ø 減少用戶記憶負(fù)擔(dān)。Ø 保持界面一致。設(shè)計(jì)人機(jī)界面過(guò)程中會(huì)遇到的4個(gè)問(wèn)題:Ø 系統(tǒng)響應(yīng)時(shí)間:兩個(gè)重要屬性-長(zhǎng)度,易變性Ø 響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定

20、的工作節(jié)奏。Ø 如果系統(tǒng)響應(yīng)時(shí)間過(guò)長(zhǎng),用戶就會(huì)感到緊張和沮喪;系統(tǒng)響應(yīng)時(shí)間過(guò)短會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤。Ø 用戶幫助設(shè)施Ø 出錯(cuò)信息處理Ø 命令交互 界面分類:Ø 一般交互界面Ø 信息顯示界面:數(shù)據(jù),字符,圖形,報(bào)告Ø 數(shù)據(jù)輸入界面:保持信息顯示和數(shù)據(jù)輸入的一致性,消除冗余輸入過(guò)程設(shè)計(jì)工具:1、圖形工具,程序流程圖,盒圖,問(wèn)題分析圖,HIPO圖;2、表格工具,判定表,判定樹(shù);3、語(yǔ)言工具,過(guò)程設(shè)計(jì)語(yǔ)言。(a)選擇; (b)注釋; (c)預(yù)處理; (d)多分支; (e)開(kāi)始和結(jié)束; (f)準(zhǔn)備;(g) 循環(huán)上界

21、限; (h) 循環(huán)下界限; (i)虛線; (j)省略符; (k)并行方式;(l)處理; (m)輸入輸出; (n)連接; (o)換頁(yè)連接; (p)控制流程序流程圖的主要缺點(diǎn):Ø 程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(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符號(hào)設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。Ø PAD圖所描繪的程序結(jié)構(gòu)十分清晰。Ø PAD圖表現(xiàn)程序邏輯易讀、易懂、易記。Ø 容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成。Ø 即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。Ø PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。判定樹(shù)的優(yōu)點(diǎn):Ø 它的形式簡(jiǎn)單,一眼就可以看出其含義,因此易于掌握和使用。判定樹(shù)的缺點(diǎn):Ø 簡(jiǎn)潔性不如判定表,數(shù)據(jù)元素的同一個(gè)值往往要重復(fù)寫(xiě)多遍,而且越

23、接近樹(shù)的葉端重復(fù)次數(shù)越多。Ø 畫(huà)判定樹(shù)時(shí)分枝的次序可能對(duì)最終畫(huà)出的判定樹(shù)的簡(jiǎn)潔程度有較大影響。 PDL的優(yōu)點(diǎn):Ø 可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。Ø 可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書(shū)寫(xiě)和編輯工作。Ø 已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。PDL的缺點(diǎn):Ø 不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。 Jackson圖的優(yōu)點(diǎn):Ø 便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具;Ø

24、形象直觀可讀性好;Ø 既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)。Jackson圖的缺點(diǎn):Ø 表示選擇或重復(fù)結(jié)構(gòu)時(shí),選擇條件或循環(huán)結(jié)束條件不能直接在圖上表示出來(lái),影響了圖的表達(dá)能力,也不易直接把圖翻譯成程序;Ø 框間連線為斜線,不易在行式打印機(jī)上輸出。 Jackson圖:用偽碼表示程序:注:PPT101例3定量度量程序復(fù)雜程度的作用:Ø 把程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中錯(cuò)誤的數(shù)量以及軟件開(kāi)發(fā)需要用的工作量;Ø 定量度量的結(jié)果可以用來(lái)比較兩個(gè)不同的設(shè)計(jì)或兩個(gè)不同算法的優(yōu)劣;Ø 程序的定量的復(fù)雜程度可以作為模塊規(guī)模的精確限度。McCab

25、e方法是一種軟件質(zhì)量度量方法,它是基于對(duì)程序拓?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)個(gè)數(shù),即程序結(jié)構(gòu)的復(fù)雜程度;Ø 定量度量測(cè)試難度;Ø 能對(duì)軟件最終的可靠性給出某種預(yù)測(cè)。Ø 實(shí)踐表明,模塊規(guī)模以V(G)10為宜。 l Halstead方法根據(jù)程序中運(yùn)算符和操作數(shù)(變量和常量)的總數(shù)來(lái)度量程序的復(fù)雜程度。l 令N1為程序中運(yùn)算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長(zhǎng)度N定義為:N=N1+N2程序中使用的不同運(yùn)算符(包括關(guān)鍵字)的個(gè)數(shù)n1,以及不同操作數(shù)(變量和常數(shù))的個(gè)數(shù)n2。預(yù)測(cè)程序長(zhǎng)度

26、的公式如下:H = n1 log2n1 + n2 log2n2預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式如下:E = N log2 (n1+n2)/3000 (這個(gè)應(yīng)該不會(huì)考很難)第四章:軟件編碼注釋分為序言性注釋和功能性注釋;序言性注釋?xiě)?yīng)置于每個(gè)模塊的起始部分,主要內(nèi)容有:Ø 說(shuō)明每個(gè)模塊的用途、功能。Ø 說(shuō)明模塊的接口:調(diào)用形式、參數(shù)描述及從屬模塊的清單。Ø 數(shù)據(jù)描述:重要數(shù)據(jù)的名稱、用途、限制、約束及其他信息。Ø 開(kāi)發(fā)歷史:設(shè)計(jì)者、審閱者姓名及日期,修改說(shuō)明及日期。注釋基本原則:Ø 注釋?xiě)?yīng)該增加代碼的清晰度。代碼注釋的目的是要使代碼更易于被其他開(kāi)發(fā)人

27、員等理解。Ø 避免使用裝飾性內(nèi)容。 Ø 保持注釋的簡(jiǎn)潔。 Ø 注釋信息不僅要包括代碼的功能,還應(yīng)給出原因。 Ø 不要為注釋而注釋。 Ø 除變量定義等較短語(yǔ)句的注釋可用行尾注釋外,其他注釋當(dāng)避免使用行尾注釋。文件注釋:在每個(gè)文件的頭部都應(yīng)該包含該文件的功能、作用、作者、版權(quán)以及創(chuàng)建、修改記錄等。類、接口注釋:在類、接口定義之前當(dāng)對(duì)其進(jìn)行注釋,包括類、接口的目的、作用、功能、繼承于何種父類,實(shí)現(xiàn)的接口、實(shí)現(xiàn)的算法、使用方法、示例程序等。方法注釋:Ø 明確該方法功能、作用、各參數(shù)含義以及返回值等。 Ø 參數(shù)注釋時(shí)當(dāng)注明其取值范圍等

28、。Ø 返回值當(dāng)注釋出失敗、錯(cuò)誤、異常時(shí)的返回情況。 Ø 異常當(dāng)注釋出什么情況、什么時(shí)候、什么條件下會(huì)引發(fā)什么樣的異常版本控制的基本操作:Ø 1 檢入(Check in)Ø 2 檢出(Check out)Ø 3 更新(Update)Ø 4 同步(Synchronization)版本控制好處:Ø 便于團(tuán)隊(duì)代碼共享Ø 保證整個(gè)團(tuán)隊(duì)使用統(tǒng)一的代碼版本Ø 能獲得版本控制工具中保存的任何版本Ø 能夠把出錯(cuò)或誤操作的最新版的項(xiàng)目恢復(fù)到正確的歷史版本Ø 快速的集成第五章:軟件測(cè)試什么是軟件測(cè)試:是為了

29、發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。發(fā)現(xiàn)錯(cuò)誤是為了更正錯(cuò)誤,最終得到一個(gè)高質(zhì)量的軟件系統(tǒng)。軟件測(cè)試的對(duì)象:整個(gè)軟件定義、開(kāi)發(fā)周期的產(chǎn)品. 軟件測(cè)試不等于程序測(cè)試;它包括程序測(cè)試和文檔測(cè)試。測(cè)試用例:通常指測(cè)試數(shù)據(jù)和預(yù)期的輸出結(jié)果注意:測(cè)試不能表明軟件中不存在錯(cuò)誤,它只能說(shuō)明軟件中存在錯(cuò)誤。軟件測(cè)試的準(zhǔn)則:Ø 所有測(cè)試都能追溯到用戶需求 Ø 應(yīng)該遠(yuǎn)在測(cè)試開(kāi)始之前就制定出測(cè)試計(jì)劃 Ø 應(yīng)該把 Pareto原理(又叫80/20定律)應(yīng)用到軟件測(cè)試中。Ø 從“小規(guī)?!睖y(cè)試開(kāi)始,逐步過(guò)渡到“大規(guī)?!睖y(cè)試 Ø 窮舉測(cè)試是不可能的測(cè)試只能證明程序有錯(cuò),不能證明程序沒(méi)有錯(cuò)誤 Ø 應(yīng)由獨(dú)立的第三方從事測(cè)試工作測(cè)試的方法:靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,動(dòng)態(tài)測(cè)試有黑盒法,白盒法;注:黑盒(5億年)和白盒(3170年)法兩者都不可能實(shí)現(xiàn)窮盡測(cè)試;測(cè)試的 4 個(gè)步驟:Ø 單元(模塊)測(cè)試目的:發(fā)現(xiàn)模塊內(nèi)部可能存在的差錯(cuò)依據(jù):詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單方法:白盒測(cè)試為主,黑盒測(cè)試為輔,多個(gè)模塊并行進(jìn)行Ø 集成測(cè)試(子系統(tǒng)和系統(tǒng)測(cè)試)Ø 確認(rèn)(驗(yàn)收)測(cè)試Ø 平行(系統(tǒng))測(cè)試第六章:軟件的維護(hù)軟件維護(hù):就是在軟

溫馨提示

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

評(píng)論

0/150

提交評(píng)論