版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章軟件工程2.1軟件工程的基本概念2.2軟件開(kāi)發(fā)過(guò)程2.3系統(tǒng)定義2.4軟件實(shí)現(xiàn)2.5軟件維護(hù)2.6軟件開(kāi)發(fā)管理2.1軟件工程的基本概念2.1.1軟件危機(jī)及其形成原因2.1.2軟件工程的定義2.1.3軟件工程的基本原則2.1.4軟件工程的基本內(nèi)容一、軟件的概念
軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。 其中,程序是按事先設(shè)計(jì)的功能和性能要求編寫(xiě)的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文材料。 注:程序并不是軟件,程序只是軟件的組成部分。2.1.1軟件危機(jī)及其形成原因二、軟件的特點(diǎn)(1)軟件是一種邏輯實(shí)體。(2)軟件的開(kāi)發(fā),是人的智力的高度發(fā)揮,而不是傳統(tǒng)意義上的硬件制造。(3)軟件維護(hù)與硬件的維修有著本質(zhì)的差別。(4)軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴(lài)性。(5)軟件的開(kāi)發(fā)至今尚未完全擺脫手工藝的開(kāi)發(fā)方式,使軟件的開(kāi)發(fā)效率受到很大限制。(6)軟件的開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程。(7)軟件的成本非常高昂。三、軟件危機(jī)及其形成原因什么是軟件危機(jī)軟件不符合用戶(hù)的實(shí)際需要軟件價(jià)格昂貴軟件開(kāi)發(fā)項(xiàng)目超支和延期軟件質(zhì)量低,可靠性差軟件缺少適當(dāng)?shù)奈臋n資料難于修改和維護(hù)軟件軟件危機(jī)的形成原因軟件本身是邏輯部件,質(zhì)量難以評(píng)價(jià),潛在的錯(cuò)誤在所難免軟件規(guī)模越來(lái)越大,軟件結(jié)構(gòu)越來(lái)越復(fù)雜忽視需求分析的重要性,急于開(kāi)始編程輕視軟件測(cè)試和輕視軟件維護(hù)軟件開(kāi)發(fā)技術(shù)落后,生產(chǎn)方式落后,開(kāi)發(fā)工具落后軟件危機(jī)的解決方法
必須消除存在的錯(cuò)誤認(rèn)識(shí)、樹(shù)立軟件工程觀念用工程化方法和途徑來(lái)開(kāi)發(fā)和維護(hù)軟件
開(kāi)發(fā)和使用更好的軟件工具
應(yīng)該采取必要的管理措施
總之:技術(shù)措施+組織管理措施按工程化的原則和方法來(lái)組織和規(guī)范軟件開(kāi)發(fā)過(guò)程,解決軟件研制中面臨的困難和混亂,從而根本上解決軟件危機(jī)。所謂軟件工程,就是研究大規(guī)模程序設(shè)計(jì)中的方法、工具和管理的一門(mén)工程科學(xué)。1968年北約組織在前聯(lián)邦德國(guó)格密斯舉行的國(guó)際學(xué)術(shù)會(huì)議上正式提出并使用了“軟件工程”的概念,運(yùn)用工程學(xué)的基本原理和方法來(lái)組織和管理軟件生產(chǎn)。后來(lái)還發(fā)展了相關(guān)的心理學(xué)、生理學(xué)和經(jīng)濟(jì)學(xué)等方面的學(xué)科。軟件工程誕生了,它是解決軟件危機(jī)唯一有效的方法。定義一:軟件工程是科學(xué)知識(shí)在設(shè)計(jì)和構(gòu)造計(jì)算機(jī)程序以及開(kāi)發(fā)、運(yùn)作和維護(hù)這些程序所要求的有關(guān)文檔編制中的實(shí)際應(yīng)用。定義二:為了經(jīng)濟(jì)地獲得可靠的能在實(shí)際的計(jì)算機(jī)上運(yùn)行的軟件所確立和使用的健全的工程原理。定義三:對(duì)軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、退役的系統(tǒng)研究方法。
定義四:對(duì)軟件開(kāi)發(fā)、運(yùn)行、維護(hù)的系統(tǒng)化的、有紀(jì)律的、可定量的方法的應(yīng)用,即對(duì)軟件的工程化的應(yīng)用。定義五:軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)學(xué)科,它采用工程的概念、原理、技術(shù)和方法,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明是正確的管理技術(shù)和與技術(shù)方法結(jié)合起來(lái)用于開(kāi)發(fā)軟件。2.1.2軟件工程的定義用分階段的生命周期計(jì)劃嚴(yán)格管理
堅(jiān)持進(jìn)行階段評(píng)審
實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)
工作成果應(yīng)當(dāng)能夠清楚地評(píng)審開(kāi)發(fā)小組的成員應(yīng)少而精
承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2.1.3七條基本原則軟件生存周期模型指導(dǎo)整個(gè)軟件開(kāi)發(fā)過(guò)程軟件分析系統(tǒng)分析、可行性分析、軟件開(kāi)發(fā)計(jì)劃、需求分析軟件設(shè)計(jì)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)
軟件實(shí)現(xiàn)編程序軟件測(cè)試
軟件維護(hù)
軟件管理
成本估算、風(fēng)險(xiǎn)分析、進(jìn)度安排、人員組織、軟件質(zhì)量保證2.1.4軟件工程的基本內(nèi)容2.2軟件開(kāi)發(fā)過(guò)程2.2.1軟件開(kāi)發(fā)的主要階段2.2.2軟件生命周期模型2.2.3模塊化軟件開(kāi)發(fā)原則2.2.4軟件開(kāi)發(fā)方法軟件從產(chǎn)生、發(fā)展到淘汰要經(jīng)歷定義、開(kāi)發(fā)和維護(hù)三大階段定義階段細(xì)分成可行性論證、需求分析開(kāi)發(fā)階段細(xì)分成總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、集成測(cè)試和確認(rèn)測(cè)試維護(hù)階段細(xì)分成軟件使用、修改維護(hù)、退役2.2.1軟件開(kāi)發(fā)的主要階段軟件產(chǎn)品從形成概念開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到退役的全過(guò)程九個(gè)階段:2.2.2軟件生命周期模型軟件生命周期瀑布模型將軟件生存周期的各項(xiàng)活動(dòng)規(guī)定為依照固定順序連接的若干階段工作,形如瀑布流水,最終得到軟件產(chǎn)品。瀑布模型的特點(diǎn)線性開(kāi)發(fā)序列:每一階段任務(wù)必須通過(guò)評(píng)審才能進(jìn)入下一階段,直線前進(jìn)避免大的返工,允許局部的返工瀑布模型的局限性明確全部需求困難甚至不現(xiàn)實(shí)開(kāi)發(fā)周期過(guò)長(zhǎng)、用戶(hù)不能及時(shí)提出修改意見(jiàn)軟件生存周期漸增模型又稱(chēng)演化模型又稱(chēng)原型模型用主動(dòng)的正常的迭代避免被迫的不正常的反復(fù)程序員與用戶(hù)反復(fù)交互原型模型的特點(diǎn)采用軟件重用技術(shù)和強(qiáng)有力的快速開(kāi)發(fā)工具采用主動(dòng)的、正常的迭代避免了瀑布模型被迫的、不正常的返工有助于用戶(hù)和軟件開(kāi)發(fā)人員對(duì)需求的定義和確認(rèn)原型模型的局限性不收斂于開(kāi)發(fā)者預(yù)定目標(biāo)資源規(guī)劃和管理較為困難更新文檔麻煩抽象自頂向下逐步求精模塊化信息隱蔽與局部化模塊獨(dú)立啟發(fā)式規(guī)則2.2.3模塊化軟件開(kāi)發(fā)原則把大型軟件按照規(guī)定的原則劃分為一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相關(guān)的模塊的設(shè)計(jì)方法,叫做模塊化設(shè)計(jì)(modulardesign)。模塊(module)是數(shù)據(jù)說(shuō)明和可執(zhí)行語(yǔ)句等程序?qū)ο蟮募?,每個(gè)模塊單獨(dú)命名并且可以通過(guò)名字對(duì)模塊進(jìn)行訪問(wèn)實(shí)現(xiàn)模塊化設(shè)計(jì)的重要指導(dǎo)思想是分解、信息隱藏和模塊獨(dú)立性。分解 設(shè)函數(shù)C(x)定義問(wèn)題x的復(fù)雜程度,函數(shù)E(x)確定解決問(wèn)題x所需要的工作量(時(shí)間)。對(duì)于兩個(gè)問(wèn)題Pl和P2,如果C(P1)>C(P2),
顯然 E(P1)>E(P2)
根據(jù)人類(lèi)解決一般問(wèn)題的經(jīng)驗(yàn),如果一個(gè)問(wèn)題由Pl和P2兩個(gè)問(wèn)題組合而成,那么它的復(fù)雜程序大于分別考慮每個(gè)問(wèn)題時(shí)的復(fù)雜程度之和,即
C(Pl+P2)>C(P1)+C(P2)
綜上所述,可得到下面的不等式
E(Pl+P2)>E(Pl)+E(P2)模塊化模塊完成特定的子功能可以組合、分解、更換的單元,如過(guò)程、函數(shù)、子程序、宏等模塊化解決一個(gè)復(fù)雜問(wèn)題時(shí),自頂向下逐層將軟件分解成若干模塊的過(guò)程目的:降低軟件的復(fù)雜性模塊化軟件開(kāi)發(fā)原則模塊劃分的指導(dǎo)原則模塊可分解性:能把問(wèn)題分解為子問(wèn)題的系統(tǒng)化機(jī)制模塊可組裝性:能把現(xiàn)有的模塊組裝成新系統(tǒng)模塊可理解性:一個(gè)模塊作為獨(dú)立單元無(wú)需參考其它模塊來(lái)理解模塊連續(xù)性:系統(tǒng)需求的微小修改只導(dǎo)致對(duì)個(gè)別模塊,而不是對(duì)整個(gè)系統(tǒng)的修改模塊保護(hù)性:一個(gè)模塊內(nèi)出現(xiàn)異常情況時(shí),它的影響局限在該模塊內(nèi)部模塊化軟件開(kāi)發(fā)原則模塊與成本的關(guān)系模塊化軟件開(kāi)發(fā)原則信息隱蔽與局部化信息隱蔽:一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù))對(duì)于不需要這些信息的其它模塊來(lái)說(shuō)不可見(jiàn)(不能訪問(wèn))局部化:將關(guān)系密切的軟件元素的位置盡量靠近信息隱蔽與局部化有利于軟件的可維護(hù)性,可以防止誤操作和誤修改模塊化軟件開(kāi)發(fā)原則模塊獨(dú)立模塊獨(dú)立性:模塊化、抽象、信息隱蔽和局部化直接結(jié)果模塊獨(dú)立的好處:使軟件開(kāi)發(fā)更容易、適合分工合作使軟件測(cè)試和維護(hù)更容易模塊獨(dú)立的度量?jī)?nèi)聚:一個(gè)模塊內(nèi)部各元素之間彼此結(jié)合的緊密程度的度量耦合:不同模塊之間互連程度的度量模塊化軟件開(kāi)發(fā)原則啟發(fā)式規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中模塊之間的調(diào)用關(guān)系應(yīng)當(dāng)按照層次化組織模塊的深度、寬度、扇出和扇入都應(yīng)適當(dāng)設(shè)計(jì)單入口單出口的模塊模塊功能應(yīng)該可以預(yù)測(cè)模塊化軟件開(kāi)發(fā)原則對(duì)軟件分析方法、軟件設(shè)計(jì)方法軟件實(shí)現(xiàn)(編碼)方法的總稱(chēng)。結(jié)構(gòu)化方法(StructuredMethod)面向?qū)ο蠓椒ǎ∣bject-OrientedMethod)2.2.4軟件開(kāi)發(fā)方法2.3系統(tǒng)定義2.3.1可行性分析2.3.2需求分析可行性分析目的用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決任務(wù)在澄清了問(wèn)題定義之后,分析員首先應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型,然后從系統(tǒng)邏輯模型出發(fā),探索出若干種可供選擇的主要解法(即系統(tǒng)實(shí)現(xiàn)方案)。最后仔細(xì)研究每種解法的可行性。2.3.1可行性分析一般說(shuō)來(lái),可行性研究應(yīng)該從下述幾方面進(jìn)行:(1)技術(shù)可行性:指使用現(xiàn)有的技術(shù)能否完成這個(gè)項(xiàng)目。(2)經(jīng)濟(jì)可行性:指通過(guò)對(duì)軟件開(kāi)發(fā)項(xiàng)目進(jìn)行成本/效益估計(jì),以確定軟件系統(tǒng)可能帶來(lái)的經(jīng)濟(jì)效益能否超過(guò)研制和維護(hù)此系統(tǒng)所需的費(fèi)用。(3)社會(huì)因素的考慮:軟件開(kāi)發(fā)是否會(huì)侵犯他人、集體或國(guó)家的利益,是否違反國(guó)家的法律并可能由此而承擔(dān)法律責(zé)任。步驟確定項(xiàng)目規(guī)模和目標(biāo)研究正在運(yùn)行的系統(tǒng)建立新系統(tǒng)的高層邏輯模型導(dǎo)出和評(píng)價(jià)各種方案推薦可行方案編寫(xiě)可行性分析報(bào)告軟件開(kāi)發(fā)計(jì)劃通過(guò)可行性分析,如果開(kāi)發(fā)軟件系統(tǒng)可行的話,接著要制定軟件的開(kāi)發(fā)計(jì)劃。內(nèi)容資源計(jì)劃:人力資源、硬件資源、軟件資源成本預(yù)算:估計(jì)總的開(kāi)發(fā)成本進(jìn)度安排:確定最終的軟件交付日期、在交付日期內(nèi)安排和分配工作量需求分析需求分析目標(biāo)解決“做什么(Whattodo)”,而不是“怎么做(Howtodo)”既是軟件開(kāi)發(fā)依據(jù),也是軟件驗(yàn)收標(biāo)準(zhǔn)與用戶(hù)充分溝通,去偽存真,去粗存精通信瓶頸:用戶(hù)vs
開(kāi)發(fā)人員階段性標(biāo)志:軟件需求規(guī)格說(shuō)明(SRS:SoftwareRequirementsSpecification)
2.3.2需求分析一、需求分析任務(wù)確定軟件系統(tǒng)的綜合要求功能要求性能要求系統(tǒng)數(shù)據(jù)接口要求安全性保密性和可靠性要求系統(tǒng)運(yùn)行要求異常處理要求等分析軟件系統(tǒng)的數(shù)據(jù)要求建立系統(tǒng)的邏輯模型評(píng)估項(xiàng)目開(kāi)發(fā)計(jì)劃(成本、進(jìn)度)二、需求分析工具層次方框圖Warnier圖IPO圖(輸入/處理/輸出)三、需求分析方法結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法(StructuredAnalysis,簡(jiǎn)稱(chēng)SA方法)是70年代中期提出的一種面向數(shù)據(jù)流、自頂向下、逐步求精進(jìn)行需求分析的方法。結(jié)構(gòu)化分析方法中使用的工具主要包括:數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語(yǔ)言、判定表和判定樹(shù)。 其中數(shù)據(jù)流圖用以表達(dá)系統(tǒng)內(nèi)數(shù)據(jù)的運(yùn)動(dòng)情況;數(shù)據(jù)字典用以定義系統(tǒng)中的數(shù)據(jù);結(jié)構(gòu)化語(yǔ)言、判定表和判定樹(shù)都是用以描述數(shù)據(jù)流的加工的工具。面向?qū)ο蠓治龇椒?.4軟件實(shí)現(xiàn)2.4.1總體設(shè)計(jì)2.4.2詳細(xì)設(shè)計(jì)2.4.3編碼2.4.4測(cè)試一、總體設(shè)計(jì)內(nèi)容總體設(shè)計(jì)又稱(chēng)概要設(shè)計(jì)解決“如何做(Howtodo)”設(shè)計(jì)供選擇的方案推薦最佳方案設(shè)計(jì)軟件結(jié)構(gòu),劃分功能模塊,定義各功能模塊的接口設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)用戶(hù)界面設(shè)計(jì)制定測(cè)試計(jì)劃編寫(xiě)總體設(shè)計(jì)階段的文檔評(píng)審總體設(shè)計(jì)方案2.4.1總體設(shè)計(jì)軟件實(shí)現(xiàn)二、總體設(shè)計(jì)的圖形工具層次圖HIPO圖(層次圖加輸入/處理/輸出圖)結(jié)構(gòu)圖軟件實(shí)現(xiàn)三、總體設(shè)計(jì)的設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)自頂向下基于數(shù)據(jù)流的設(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)軟件實(shí)現(xiàn)
詳細(xì)設(shè)計(jì)以總體設(shè)計(jì)階段的工作為基礎(chǔ)的,但又不同于總體設(shè)計(jì),主要表現(xiàn)為以下兩個(gè)方面:(1)在總體設(shè)計(jì)階段,數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以比較抽象的方式描述,而詳細(xì)設(shè)計(jì)階段則應(yīng)在此基礎(chǔ)上給出足夠詳細(xì)描述。(2)詳細(xì)設(shè)計(jì)要提供關(guān)于算法的更多的細(xì)節(jié),例如:總體設(shè)計(jì)可以聲明一個(gè)模塊的作用是對(duì)一個(gè)表進(jìn)行排序,詳細(xì)設(shè)計(jì)則要確定使用哪種排序算法。在詳細(xì)設(shè)計(jì)階段為每個(gè)模塊增加了足夠的細(xì)節(jié)后,程序員才能夠以相當(dāng)直接的方式進(jìn)行下一階段的編碼工作。2.4.2詳細(xì)設(shè)計(jì)軟件實(shí)現(xiàn) 詳細(xì)設(shè)計(jì)的任務(wù)和原則一、詳細(xì)設(shè)計(jì)的任務(wù)1)確定每個(gè)模塊的算法。
2)確定每一個(gè)模塊的數(shù)據(jù)組織。
3)為每個(gè)模塊設(shè)計(jì)一組測(cè)試用例。
4)編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)。軟件實(shí)現(xiàn)
二、詳細(xì)設(shè)計(jì)的原則(1)模塊的邏輯描述正確可靠、清晰易讀。(2)采用結(jié)構(gòu)化程序設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序復(fù)雜度,提高程序的可讀性、可測(cè)試性和可維護(hù)性。
軟件實(shí)現(xiàn)三、詳細(xì)設(shè)計(jì)的工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL:ProcedureDesignLanguage)又稱(chēng)偽碼,半形式化、易編輯、易自動(dòng)生成程序流程圖易上手、非結(jié)構(gòu)化盒圖(N-S圖)結(jié)構(gòu)化、功能域明確PAD圖結(jié)構(gòu)化、可用于數(shù)據(jù)結(jié)構(gòu)、易自動(dòng)生成軟件實(shí)現(xiàn)四、詳細(xì)設(shè)計(jì)的方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法:以數(shù)據(jù)結(jié)構(gòu)為中心結(jié)構(gòu)化設(shè)計(jì)方法以數(shù)據(jù)流為中心面向?qū)ο笤O(shè)計(jì)方法以對(duì)象為中心軟件實(shí)現(xiàn)2.4.3編碼編碼(實(shí)現(xiàn)):俗稱(chēng)編程序(Programming)編碼任務(wù)選擇一種程序設(shè)計(jì)語(yǔ)言將詳細(xì)設(shè)計(jì)文檔“翻譯”為程序(源程序代碼)單元測(cè)試(調(diào)試)編碼原則高效+技巧安全+可靠時(shí)間、空間效率可用性、可維護(hù)性、可移植性良好的編程風(fēng)格可以減少軟件錯(cuò)誤階段性標(biāo)志:源程序代碼編碼風(fēng)格
編碼風(fēng)格實(shí)際上是一種編碼原則。從20世紀(jì)70年代以來(lái),編碼的目標(biāo)從強(qiáng)調(diào)效率轉(zhuǎn)變到強(qiáng)調(diào)清晰。與此相應(yīng),編碼風(fēng)格也從追求“聰明”和“技巧”,變?yōu)樘岢昂?jiǎn)明”和“直接”。人們逐漸認(rèn)識(shí)到,良好的編碼風(fēng)格能在一定程度上彌補(bǔ)程序設(shè)計(jì)語(yǔ)言存在的缺點(diǎn)。反之,如果不注意編碼風(fēng)格,即使使用了結(jié)構(gòu)化的現(xiàn)代語(yǔ)言,也很難寫(xiě)出高質(zhì)量的程序。一、代碼文檔化:指編碼時(shí)適當(dāng)選擇標(biāo)識(shí)符的名字、適當(dāng)安排注釋和注重程序的整個(gè)組織形式。二、數(shù)據(jù)說(shuō)明:程序或模塊在其可執(zhí)行部分的前面都集中了一些說(shuō)明語(yǔ)句,出于閱讀理解和維護(hù)的要求,最好使其規(guī)范化,使說(shuō)明的先后次序固定。三、語(yǔ)句構(gòu)造:每條語(yǔ)句都應(yīng)當(dāng)簡(jiǎn)單而直接,同時(shí)也不應(yīng)為了追求運(yùn)行效率而使代碼復(fù)雜化,這樣會(huì)減低程序的可讀性。四、輸入/輸出:源程序的輸入輸出風(fēng)格必須滿足運(yùn)行工程學(xué)的需要。程序效率 盡管效率是值得追求的目標(biāo),但不應(yīng)為了非必需的效率提高而犧牲代碼的清晰性、可讀性和正確性。應(yīng)記住下面三條準(zhǔn)則。(1)效率是一種性能需求,目標(biāo)值應(yīng)當(dāng)在需求分析階段給出。軟件效率應(yīng)以需求為準(zhǔn),不應(yīng)以人力所及為準(zhǔn)。(2)好的設(shè)計(jì)可以提高效率。(3)代碼效率與代碼的簡(jiǎn)單性相關(guān)。一、代碼效率
(1)應(yīng)先簡(jiǎn)化算術(shù)和邏輯的表達(dá)式。
(2)仔細(xì)研究嵌套的循環(huán),以確定是否有語(yǔ)句可以從內(nèi)層往外移。
(3)盡量避免使用多維數(shù)組。
(4)盡量避免使用指針。
(5)使用執(zhí)行時(shí)間短的算術(shù)運(yùn)算。
(6)即使語(yǔ)言允許,一般也不要采用混合數(shù)據(jù)類(lèi)型。
(7)盡量使用整數(shù)表達(dá)式和布爾表達(dá)式。二、輸入/輸出的效率(1)所有輸入/輸出都應(yīng)該有緩沖,以減少過(guò)多的通信次數(shù)。
(2)對(duì)輔存(如磁盤(pán)),應(yīng)選用最簡(jiǎn)單的訪問(wèn)方法。
(3)輔存的輸入/輸出,應(yīng)該以塊為單位進(jìn)行。
(4)終端和打印機(jī)的輸入/輸出,應(yīng)當(dāng)考慮設(shè)備的特性,以提高輸入/輸出的質(zhì)量和速度。
(5)不應(yīng)當(dāng)采用不能被人們所理解的超高效的輸入/輸出。結(jié)構(gòu)化程序設(shè)計(jì)采用自頂向下、逐步求精的設(shè)計(jì)方法;采用單入口單出口的控制結(jié)構(gòu);只包含順序、選擇和循環(huán)三種控制結(jié)構(gòu);軟件實(shí)現(xiàn)一、軟件測(cè)試的目標(biāo)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程;好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。二、測(cè)試原則測(cè)試不能證明軟件沒(méi)有錯(cuò)誤應(yīng)避免程序員測(cè)試自己的程序?qū)戏ǖ暮头欠ǖ妮斎攵家獪y(cè)試測(cè)試用例(包括輸入及預(yù)期輸出)必須高效2.4.4軟件測(cè)試軟件實(shí)現(xiàn)測(cè)試原則盡早地和不斷地進(jìn)行軟件測(cè)試程序員應(yīng)避免檢查自己的程序要預(yù)先確定測(cè)試用例設(shè)計(jì)的測(cè)試用例應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件充分注意測(cè)試中的群集現(xiàn)象嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性應(yīng)當(dāng)對(duì)每個(gè)測(cè)試結(jié)果做全面檢查妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告軟件實(shí)現(xiàn)三、測(cè)試分類(lèi)單元測(cè)試(又稱(chēng)模塊測(cè)試)時(shí)期:編碼階段定義:對(duì)軟件設(shè)計(jì)的最小單位(程序模塊)進(jìn)行的測(cè)試方法:采用白盒測(cè)試法輔之以黑盒測(cè)試法內(nèi)容:模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、路徑測(cè)試、錯(cuò)誤處理測(cè)試、邊界測(cè)試組裝測(cè)試(又稱(chēng)集成測(cè)試)時(shí)期:編碼完成階段定義:在單元測(cè)試的基礎(chǔ)上將所有模塊按照設(shè)計(jì)要求組裝為完整的系統(tǒng)方法:漸增式測(cè)試和非漸增式測(cè)試內(nèi)容:各模塊的接口軟件實(shí)現(xiàn)確認(rèn)測(cè)試定義:驗(yàn)證軟件的功能、性能及其他特性是否與用戶(hù)的要求一致方法:測(cè)試、β測(cè)試內(nèi)容:有效性測(cè)試和驗(yàn)收測(cè)試階段:即將交付使用系統(tǒng)測(cè)試定義:把通過(guò)確認(rèn)測(cè)試的軟件作為整個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)元素與其他元素結(jié)合在一起在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試軟件實(shí)現(xiàn)四、白盒測(cè)試前提:完全了解程序的結(jié)構(gòu)和處理過(guò)程方法:窮盡測(cè)試、邏輯覆蓋
邏輯覆蓋的不同標(biāo)準(zhǔn)語(yǔ)句覆蓋選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋軟件實(shí)現(xiàn)五、黑盒測(cè)試定義:只檢查程序功能是否能按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常運(yùn)行,程序是否能接收輸入數(shù)據(jù)并產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。方法:等價(jià)類(lèi)劃分僅選取少量最有代表性的輸入數(shù)據(jù)邊界值分析使程序運(yùn)行在邊界情況(下標(biāo),循環(huán)次數(shù))下錯(cuò)誤推測(cè)軟件實(shí)現(xiàn)六、軟件調(diào)試
任務(wù):測(cè)試之后進(jìn)一步診斷和改正程序中的錯(cuò)誤步驟:確定錯(cuò)誤的位置確定問(wèn)題的原因方法:輸出存儲(chǔ)器內(nèi)容適當(dāng)插入打印語(yǔ)句使用專(zhuān)門(mén)的調(diào)試工具調(diào)試策略
試探法、回溯法、歸納法、演繹法軟件實(shí)現(xiàn)2.5軟件維護(hù)2.5.1什么是軟件維護(hù)2.5.2軟件維護(hù)分類(lèi)2.5.3軟件維護(hù)的過(guò)程軟件維護(hù)是軟件生命周期的最后一個(gè)階段,它是指已完成開(kāi)發(fā)工作,交付使用后,對(duì)軟件產(chǎn)品所進(jìn)行的一些軟件工程活動(dòng)。軟件維護(hù)的必要性運(yùn)行中發(fā)現(xiàn)錯(cuò)誤適應(yīng)軟硬件環(huán)境變化適應(yīng)功能需求變化維護(hù)成本通常高大開(kāi)發(fā)成本的4倍2.5.1什么是軟件維護(hù)軟件維護(hù)決定可維護(hù)性的因素可理解性:理解軟件的難易程度可測(cè)試性:測(cè)試和診斷軟件中錯(cuò)誤的難易程度可修改性:修改軟件的難易程度各類(lèi)文檔軟件維護(hù)的分類(lèi)改正性維護(hù):在軟件運(yùn)行中發(fā)生異常或故障時(shí)進(jìn)行。適應(yīng)性維護(hù):為使該軟件能適應(yīng)外部環(huán)境的變動(dòng)。完善性維護(hù):為擴(kuò)充軟件的功能,提高原有軟件性能而開(kāi)展的軟件工程活動(dòng)。軟件維護(hù)在軟件維護(hù)時(shí),必然會(huì)對(duì)源程序進(jìn)行修改,為了正確、有效地修改源程序,需要經(jīng)歷下列步驟:分析和理解程序修改程序重新驗(yàn)證程序軟件維護(hù)的組織維護(hù)文檔的編寫(xiě)軟件維護(hù)2.5.3軟件維護(hù)的過(guò)程2.6軟件開(kāi)發(fā)管理2.6.1質(zhì)量管理2.6.2進(jìn)度安排2.6.3人員管理2.6.4風(fēng)險(xiǎn)分析2.6.5成本/效益分析軟件質(zhì)量:定量比較困難ISO軟件質(zhì)量模型的質(zhì)量特性和質(zhì)量子特性組成:功能性適應(yīng)性、準(zhǔn)確性、互用性、依從性、安全性可靠性成熟、容錯(cuò)、易恢復(fù)易使用性易理解、易學(xué)、易操作效率時(shí)間特性、資源特性可維護(hù)性易分析、易修改、穩(wěn)定、易測(cè)試可移植性適應(yīng)性、易安裝、一致性、易替換軟件開(kāi)發(fā)管理2.6.1質(zhì)量管理
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療衛(wèi)生BT施工合同
- 倉(cāng)儲(chǔ)物流中心施工協(xié)議范本
- 航空客服人員招聘協(xié)議
- 透析中心護(hù)士聘用合同
- 影視制作公司編劇聘用合同模板
- 高端制造業(yè)園區(qū)按揭合同樣本
- 展覽館互動(dòng)展區(qū)欄桿安裝合同
- 動(dòng)物園人工打水井施工合同
- 鏟車(chē)過(guò)戶(hù)合同范例
- 預(yù)交款合同三篇
- 電動(dòng)給水泵液力耦合器基礎(chǔ)知識(shí)ppt課件
- 樣品管理控制流程圖
- 超實(shí)用-組合房貸計(jì)算表
- 屋面細(xì)石混凝土保護(hù)層施工方案及方法
- 西方經(jīng)濟(jì)學(xué)考試題庫(kù)含答案
- 監(jiān)理公司各部門(mén)職責(zé)
- 論辛棄疾詞作的愁情主題及其審美價(jià)值
- 新形勢(shì)下我國(guó)保險(xiǎn)市場(chǎng)營(yíng)銷(xiāo)的現(xiàn)狀、問(wèn)題及對(duì)策
- 完整版焦慮抑郁自評(píng)量表SASSDS
- ISO14001內(nèi)審檢查表
- 新形勢(shì)下加強(qiáng)市場(chǎng)監(jiān)管局檔案管理工作的策略
評(píng)論
0/150
提交評(píng)論