傳統(tǒng)軟件工程方法_第1頁
傳統(tǒng)軟件工程方法_第2頁
傳統(tǒng)軟件工程方法_第3頁
傳統(tǒng)軟件工程方法_第4頁
傳統(tǒng)軟件工程方法_第5頁
已閱讀5頁,還剩230頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

傳統(tǒng)軟件工程方法李宣東南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系主要內(nèi)容傳統(tǒng)軟件工程方法面向?qū)ο筌浖こ蹋ńy(tǒng)一建模語言UML)軟件過程、管理與質(zhì)量傳統(tǒng)軟件工程方法問題定義需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試維護(hù)基本概念軟件計(jì)算機(jī)系統(tǒng)中的程序及其有關(guān)文件。程序計(jì)算任務(wù)中的處理對(duì)象和處理規(guī)則的描述。文件為了便于了解程序所需的資料說明。基本概念軟件的作用用戶與硬件的接口計(jì)算機(jī)系統(tǒng)的指揮者計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的重要依據(jù)基本概念軟件的發(fā)展過程第一階段:從第一臺(tái)計(jì)算機(jī)上的第一個(gè)程序的出現(xiàn)到實(shí)用的高級(jí)程序設(shè)計(jì)語言出現(xiàn)之前(1946-1956);第二階段:從實(shí)用的高級(jí)程序設(shè)計(jì)語言出現(xiàn)到軟件工程出現(xiàn)之前(1956-1968);第三階段:軟件工程(1968-)。基本概念軟件的分類:系統(tǒng)軟件支撐軟件應(yīng)用軟件基本概念軟件危機(jī)供求關(guān)系失調(diào)開發(fā)費(fèi)用失控,進(jìn)度拖延可靠性差難以維護(hù)基本概念產(chǎn)生軟件危機(jī)的原因(軟件本身的特點(diǎn))軟件開發(fā)進(jìn)展情況較難衡量軟件開發(fā)質(zhì)量難以評(píng)價(jià)管理和控制軟件開發(fā)過程相當(dāng)困難軟件沒有“磨損”概念,軟件維護(hù)通常意味著該進(jìn)或修改原來的設(shè)計(jì)基本概念產(chǎn)生軟件危機(jī)的原因(軟件開發(fā)人員的錯(cuò)誤觀點(diǎn))“有一個(gè)對(duì)目標(biāo)的概括描述就足以著手編寫程序了,許多細(xì)節(jié)可以在以后再補(bǔ)充”“所謂軟件開發(fā)就是編寫程序并設(shè)法使它運(yùn)行”“用戶對(duì)軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動(dòng)”“軟件投入生產(chǎn)性運(yùn)行以后需要的維護(hù)工作并不多,而且維護(hù)是一件很容易做的簡(jiǎn)單工作”基本概念念軟件工程程應(yīng)用計(jì)算算機(jī)科學(xué)學(xué)、數(shù)學(xué)學(xué)及管理理科學(xué)等等原理,,以工程程化原則則、方法法解決軟軟件問題題的工程程。其中中,計(jì)算算機(jī)科學(xué)學(xué)、數(shù)學(xué)學(xué)用于構(gòu)構(gòu)造模型型與算法法,工程程科學(xué)用用于制定定規(guī)范、、設(shè)計(jì)范范型、降降低成本本及確定定權(quán)衡,,管理科科學(xué)用于于計(jì)劃、、資源、、質(zhì)量、、成本等等管理。?;靖拍钅钴浖こ坛痰幕颈緝?nèi)容::軟件設(shè)計(jì)計(jì)方法論論軟件工具具軟件工程程標(biāo)準(zhǔn)和和規(guī)范軟件工程程管理軟件工程程理論基本概念念軟件工程程的基本本原理::嚴(yán)格按照照計(jì)劃進(jìn)進(jìn)行管理理堅(jiān)持進(jìn)行行階段評(píng)評(píng)審實(shí)行嚴(yán)格格的產(chǎn)品品控制采用現(xiàn)代代的程序序技術(shù)結(jié)果要能能清晰地地審計(jì)開發(fā)小組組人員素素質(zhì)要好好,數(shù)量量不宜多多要承認(rèn)不不斷改善善軟件工工程實(shí)踐踐的必要要性基本概念念軟件生存存期(過過程)模模型:軟件生存存期是軟軟件產(chǎn)品品或系統(tǒng)統(tǒng)一系列列相關(guān)活活動(dòng)的全全周期。。從形成成概念開開始,經(jīng)經(jīng)過研制制,交付付使用,,在使用用中不斷斷增補(bǔ)修修訂,直直到最后后被淘汰汰,讓位位于新的的軟件產(chǎn)產(chǎn)品的過過程。對(duì)對(duì)軟件生生存期的的不同劃劃分,形形成了不不同的軟軟件生存存期模型型。基本概念念瀑布式軟軟件生存存期模型型強(qiáng)調(diào)階段段的劃分分及其順序序性、各各階段工工作及其文檔檔的完備備性,是是一種嚴(yán)嚴(yán)格線性性的、按階段順順序的、、逐步細(xì)細(xì)化的開開發(fā)模式式。定義分析設(shè)計(jì)編碼測(cè)試維護(hù)基本概念念瀑布式軟軟件生存存期模型型把軟件件開發(fā)過過程劃分分成若干干階段,,每個(gè)階階段的任任務(wù)相對(duì)對(duì)獨(dú)立,,便于不不同人員員分工協(xié)協(xié)作,從從而降低低了整個(gè)個(gè)軟件開開發(fā)工程程的困難難程度。。在軟件件生存期期的每個(gè)個(gè)階段都都采用科科學(xué)的管管理技術(shù)術(shù)和良好好的方法法與技術(shù)術(shù),而且且每個(gè)階階段結(jié)束束之前,,都從技技術(shù)和管管理兩個(gè)個(gè)角度進(jìn)進(jìn)行嚴(yán)格格的審查查,經(jīng)確確認(rèn)之后后才開始始下一階階段的工工作?;靖拍钅钇俨际侥DP偷奶靥攸c(diǎn):結(jié)構(gòu)簡(jiǎn)單單明了;;歷史較較長(zhǎng)、應(yīng)應(yīng)用面廣廣泛、為為廣大軟軟件工作作者所熟熟悉;已已有與之之配套的的一組十十分成熟熟的開發(fā)發(fā)方法和和豐富的的支撐工工具。確定了需需求分析析的絕對(duì)對(duì)重要性性,但是是在實(shí)踐踐中要想想獲得完完善的需需求說明明是非常常困難的的;反饋饋信息慢慢?;靖拍钅钴浖|(zhì)量量要素::正確性::軟件產(chǎn)產(chǎn)品準(zhǔn)確確執(zhí)行軟軟件規(guī)格格說明中中所規(guī)定定的能力力。健壯性::在異常常條件下下軟件仍仍能運(yùn)行行的能力力??煽啃裕海很浖谠诮o定的的時(shí)間內(nèi)內(nèi)和規(guī)定定的環(huán)境境條件下下,按規(guī)規(guī)格說明明的規(guī)定定成功地地運(yùn)行的的概率。??煽啃孕岳斫鉃闉檎_性性和健壯壯性之和和。問題定定義問題定定義的的關(guān)鍵鍵任務(wù)務(wù)是確確切地地定義義用戶戶要求求解決決的問問題,,也就就是確確定問問題的的性質(zhì)質(zhì)、工工程的的目標(biāo)標(biāo)和規(guī)規(guī)模。??尚行孕匝芯烤繉?duì)軟件件進(jìn)行行分析析與估估算確定軟軟件作作用范范圍問題定定義可行性性研究究:經(jīng)濟(jì)可可行性性技術(shù)可可行性性法律可行性性不同的方案案問題定義對(duì)軟件進(jìn)行行分析與估估算:確定軟件的的范圍估算完成軟軟件開發(fā)任任務(wù)所需的的資源估算軟件的的成本估算和安排排軟件開發(fā)發(fā)項(xiàng)目的進(jìn)進(jìn)度問題定義確定軟件的的作用范圍圍:詳細(xì)描述軟軟件的任務(wù)務(wù)和具體的的要求,抱抱括軟件的的功能、性性能、接口口和可靠性性等四個(gè)方方面的內(nèi)容容。問題定義軟件計(jì)劃::范圍(研制制的目標(biāo),,主要功能能,其他特特性,開發(fā)發(fā)概況)資源(人力力資源、硬硬件資源、、軟件資源源、可用性性資源窗口口)成本進(jìn)度安排需求分析軟件需求分分析是軟件件生存期的的一個(gè)重要要階段,是是軟件開發(fā)發(fā)項(xiàng)目得以以成功的基基礎(chǔ)。其最最根本的任任務(wù)是確定定為了滿足足用戶的需需要軟件系系統(tǒng)必須做做什么。軟件需求分分析是一個(gè)個(gè)不斷發(fā)現(xiàn)現(xiàn)和決定的的過程,在在此過程中中,軟件開開發(fā)者和軟軟件申請(qǐng)者者(用戶))同樣起著著重要的作作用。在需求分析析與說明過過程中,需需要大量交交換意見,,其間充滿滿著傳錯(cuò)信信息和發(fā)生生誤解的可可能性:“我知道你你相信你明明白了你認(rèn)認(rèn)為我所說說的是什么么,但是我我不能肯定定你是否意意識(shí)到你聽聽到的并不不是我所指指的意思......”。。需求分析軟件需求分分析實(shí)現(xiàn)以以下幾個(gè)目目標(biāo):給出軟件系系統(tǒng)的數(shù)據(jù)據(jù)流程圖與與數(shù)據(jù)結(jié)構(gòu)構(gòu),構(gòu)造一一個(gè)完全的的系統(tǒng)邏輯輯模型;提出詳細(xì)的的功能說明明確定設(shè)計(jì)計(jì)限定條件件,規(guī)定性性能要求;;密切與用戶戶的聯(lián)系,,使用戶明明確自己的的任務(wù),以以便實(shí)現(xiàn)上上述兩項(xiàng)目目標(biāo)。需求分析軟件需求分分析包括的的工作:?jiǎn)栴}的認(rèn)識(shí)識(shí)需求分析人人員通過頻頻繁與用戶戶聯(lián)系,充充分理解用用戶提出的的每一個(gè)功功能與性能能要求,從從軟件系統(tǒng)統(tǒng)特征、軟軟件開發(fā)全全過程以及及軟件計(jì)劃劃給出的資資源和時(shí)間間約束,來來確定軟件件開發(fā)的總總策略。評(píng)價(jià)與綜合合需求分析人人員必須求求得數(shù)據(jù)的的流程和數(shù)數(shù)據(jù)結(jié)構(gòu),,評(píng)價(jià)優(yōu)缺缺點(diǎn);結(jié)合合用戶要求求,修改現(xiàn)現(xiàn)行的系統(tǒng)統(tǒng),提出新新系統(tǒng)的功功能,加以以細(xì)化;提提出軟件的的約束條件件、響應(yīng)時(shí)時(shí)間、存儲(chǔ)儲(chǔ)條件等。。需求分析軟件需求分分析包括的的工作:建立需求說說明書軟件需求說說明書包含含軟件功能能、性能、、接口、有有效性和邏邏輯模型的的描述。為為了證實(shí)軟軟件能否被被成功實(shí)現(xiàn)現(xiàn)就要規(guī)定定相應(yīng)的檢檢驗(yàn)標(biāo)準(zhǔn),,這些標(biāo)準(zhǔn)準(zhǔn)在軟件開開發(fā)期間將將作為測(cè)試試的依據(jù)。。復(fù)審由軟件開發(fā)發(fā)人員和用用戶共同對(duì)對(duì)需求說明明書進(jìn)行嚴(yán)嚴(yán)格的審查查。需求求分分析析軟件件需需求求分分析析人人員員應(yīng)應(yīng)該該具具備備的的特特征征::善于于領(lǐng)領(lǐng)會(huì)會(huì)一一些些抽抽象象的的概概念念,,重重新新整整理理使使之之成成為為各各種種邏邏輯輯成成分分,,并并根根據(jù)據(jù)各各種種邏邏輯輯成成分分綜綜合合出出問問題題的的解解決決辦辦法法;;善于于從從各各種種相相互互沖沖突突或或混混淆淆的的原原始始資資料料中中吸吸取取恰恰當(dāng)當(dāng)?shù)牡恼撜摀?jù)據(jù);;能夠夠理理解解用用戶戶的的環(huán)環(huán)境境及及領(lǐng)領(lǐng)域域知知識(shí)識(shí);;需求求分分析析軟件件需需求求分分析析人人員員應(yīng)應(yīng)該該具具備備的的特特征征::具備備把把系系統(tǒng)統(tǒng)的的硬硬件件和和軟軟件件部部分分應(yīng)應(yīng)用用于于用用戶戶環(huán)環(huán)境境的的能能力力;;具備備良良好好的的書書面面和和口口頭頭形形式式進(jìn)進(jìn)行行討討論論和和交交換換意意見見的的能能力力;;具有有““既既能能看看到到樹樹木木,,又又能能看看到到森森林林””的的能能力力。。需求求分分析析基本本系系統(tǒng)統(tǒng)模模型型::軟件件系系統(tǒng)統(tǒng)的的全全部部功功能能被被表表示示成成一一個(gè)個(gè)單單一一的的信信息息變變換換過過程程::軟件件系系統(tǒng)統(tǒng)輸入入1輸入入2輸入入n輸出出n輸出出2輸出出1......需求求分分析析需求求分分析析信息息信息息流流程程信息息結(jié)結(jié)構(gòu)構(gòu)出來來的的是是什什么么進(jìn)去去的的是是什什么么中間間如如何何變變換換單個(gè)個(gè)元元件件是是什什么么怎樣樣把把它它們們安安置置在在一一起起一組組元元件件合合在在一一起起分分類類各組組元元件件之之間間的的關(guān)關(guān)系系需求求分分析析結(jié)構(gòu)構(gòu)化化分分析析方方法法((SA))SA方方法法采采用用““抽抽象象””和和““分分解解””兩兩個(gè)個(gè)基基本本手手段段,,用用抽抽象象模模型型的的概概念念,,按按照照軟軟件件內(nèi)內(nèi)部部數(shù)數(shù)據(jù)據(jù)傳傳遞遞、、變變換換關(guān)關(guān)系系,,由由頂頂向向下下逐逐層層分分解解,,直直到到找找到到滿滿足足功功能能需需要要的的所所有有可可實(shí)實(shí)現(xiàn)現(xiàn)的的軟軟件件元元素素為為止止。。SA方方法法采采用用““分分解解””的的方方式式來來理理解解一一個(gè)個(gè)復(fù)復(fù)雜雜系系統(tǒng)統(tǒng),,““分分解解””需需要要有有描描述述手手段段,,數(shù)數(shù)據(jù)據(jù)流流程程圖圖就就是是作作為為描描述述信信息息流流程程和和分分解解的的手手段段而而引引入入的的。。需求分析數(shù)據(jù)流程圖::表示外部實(shí)體體,代表數(shù)據(jù)據(jù)源和數(shù)據(jù)池池。表示加工,代代表接收輸入入,經(jīng)過變換換,繼而產(chǎn)生生輸出的處理理過程。表示數(shù)據(jù)流,,代表數(shù)據(jù)的的流向和路徑徑。表示數(shù)據(jù)存儲(chǔ)儲(chǔ),代表系統(tǒng)統(tǒng)加工的數(shù)據(jù)據(jù)所存儲(chǔ)的地地方。需求分析數(shù)據(jù)流程圖的的特點(diǎn):可以表示任何何一個(gè)系統(tǒng)((人工的、自自動(dòng)的、或混混合的)中的的數(shù)據(jù)流程;;每個(gè)表示加工工的圓圈可能能需要進(jìn)一步步分解以求得得對(duì)問題的全全面理解;著重強(qiáng)調(diào)的是是數(shù)據(jù)流程而而不是控制流流程。需求分析例:病員監(jiān)視視系統(tǒng)病員監(jiān)視系統(tǒng)病員護(hù)士護(hù)士病員病歷基本模型病情信號(hào)報(bào)告警告信號(hào)病歷數(shù)據(jù)請(qǐng)求提出報(bào)告告需求分析本地監(jiān)視中央監(jiān)視報(bào)告產(chǎn)生更新病歷護(hù)士護(hù)士病員病員病歷病員的病情界界限警告信號(hào)病員數(shù)據(jù)請(qǐng)求報(bào)告經(jīng)過整理后的的病員數(shù)據(jù)病情信號(hào)需求分析分解病情信號(hào)整理病員數(shù)據(jù)檢查是否超出界限產(chǎn)生警告信號(hào)時(shí)鐘整理后的病員員數(shù)據(jù)日期時(shí)間病員病情界限限體溫血壓脈搏病員數(shù)據(jù)警告信號(hào)需求分析推導(dǎo)數(shù)據(jù)流程程圖的簡(jiǎn)單準(zhǔn)準(zhǔn)則:第一層數(shù)據(jù)流流程圖應(yīng)當(dāng)是是基本的系統(tǒng)統(tǒng)模型;應(yīng)當(dāng)仔細(xì)說明明原始的輸入入/輸出文件件;所有箭頭和圓圓圈均應(yīng)當(dāng)加加上標(biāo)注(使使用有意義的的名字);必須保持信息息的連續(xù)性;;每次只加工一一個(gè)圓圈。需求分析數(shù)據(jù)字典數(shù)據(jù)流流程圖圖中,,所有有的圖圖形元元素都都進(jìn)行行了命命名,,所有有名字字的定定義集集中起起來就就構(gòu)成成一本本數(shù)據(jù)據(jù)字典典。數(shù)據(jù)字字典最最重要要的用用途是是作為為分析析階段段的工工具。。在數(shù)數(shù)據(jù)字字典中中建立立的一一組嚴(yán)嚴(yán)密一一致的的定義義有助助于改改進(jìn)分分析員員和用用戶之之間的的通信信,因因此將將消除除許多多可能能的誤誤解。。對(duì)數(shù)數(shù)據(jù)的的這一一系列列嚴(yán)密密一致致的定定義也也有助助于改改進(jìn)在在不同同的開開發(fā)人人員之之間或或者不不同開開發(fā)小小組之之間的的通信信。如如果要要求所所有開開發(fā)人人員都都根據(jù)據(jù)公共共的數(shù)數(shù)據(jù)字字典描描述數(shù)數(shù)據(jù)或或設(shè)計(jì)計(jì)模塊塊,則則能避避免許許多麻麻煩的的接口口問題題。需求分分析信息結(jié)結(jié)構(gòu)信息結(jié)結(jié)構(gòu)是是各個(gè)個(gè)數(shù)據(jù)據(jù)成分分之間間邏輯輯關(guān)系系的一一種表表示方方法。。數(shù)據(jù)結(jié)結(jié)構(gòu)決決定信信息的的組織織、存存取方方法、、結(jié)合合性程程度以以及不不同的的處理理方案案。典型的的數(shù)據(jù)據(jù)結(jié)構(gòu)構(gòu)包括括標(biāo)量量項(xiàng)、、順序序向量量、n維空空間、、鏈接接表等等。需求分分析分層數(shù)數(shù)據(jù)結(jié)結(jié)構(gòu)表表示法法:分層框框圖Warnier圖需求分分析分層框框圖分層框框圖把把信息息用多多層方方框按按照樹樹形結(jié)結(jié)構(gòu)組組織起起來。。在結(jié)結(jié)構(gòu)的的頂層層,用用一個(gè)個(gè)方框框代表表整個(gè)個(gè)結(jié)構(gòu)構(gòu)。下下面各各層由由表示示不同同信息息類別別的方方框組組成,,它們們可以以看成成是上上一層層方框框的子子集。。在該該圖的的最低低一層層,每每個(gè)框框包含含單獨(dú)獨(dú)的數(shù)數(shù)據(jù)實(shí)實(shí)體。。需求分析XX公司銷銷售產(chǎn)品計(jì)算機(jī)軟件件計(jì)算機(jī)服務(wù)務(wù)計(jì)算機(jī)硬件件存儲(chǔ)器備件處理機(jī)應(yīng)用系統(tǒng)軟件服務(wù)培訓(xùn)操作系統(tǒng)編譯程序工具編輯程序測(cè)試驅(qū)動(dòng)程序設(shè)計(jì)輔助工具............................需求分析Warnier圖Warnier圖把把信息表示示成一種樹樹形數(shù)據(jù)結(jié)結(jié)構(gòu)??梢砸砸?guī)定某些些信息種類類或信息量量是重復(fù)性性的,也可可以說明在在某一種類類中信息是是有條件出出現(xiàn)的。需求分析計(jì)算機(jī)系統(tǒng)統(tǒng)系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)((P1)編譯程序((P2)工具具編輯輯(P3)測(cè)試驅(qū)動(dòng)((P4)設(shè)計(jì)輔助((P5)需求分析軟件需求說說明書1.概述述2.信息息描述(1)數(shù)數(shù)據(jù)流程圖圖(2)數(shù)數(shù)據(jù)字典(3)數(shù)數(shù)據(jù)結(jié)構(gòu)(4)系系統(tǒng)接口說說明(5)內(nèi)內(nèi)部接口需求分析軟件需求說說明書3.功能能說明(1)功功能(2)處處理說明(3)設(shè)計(jì)的限制制4.檢驗(yàn)驗(yàn)標(biāo)準(zhǔn)(1)性性能界限(2)測(cè)測(cè)試種類(3)預(yù)預(yù)期的軟件件響應(yīng)(4)應(yīng)應(yīng)考慮的特特殊問題5.參考考文獻(xiàn)6.附錄錄需求分析初步的用戶戶手冊(cè)當(dāng)確定了人人機(jī)交互作作用的軟件件需求后,,準(zhǔn)備一份份初步的用用戶手冊(cè)是是作為對(duì)所所要求文件件的補(bǔ)充往往往是有用用的,這種種手冊(cè)將起起到兩個(gè)作作用:手冊(cè)的準(zhǔn)備備迫使分析析人員從用用戶的角度度來看待軟軟件,從而而及早考慮慮接口方面面的人機(jī)環(huán)環(huán)境工程。。用戶可以審審查一個(gè)明明確描述人人機(jī)接口的的實(shí)際文件件。需求分析軟件需求說說明的審查查審查需求的的一致性審查需求的的現(xiàn)實(shí)性審查需求的的完整性和和有效性需求分析軟件需求說說明審查中中的問題::所規(guī)定的軟軟件目標(biāo)和和任務(wù)與系系統(tǒng)的目標(biāo)標(biāo)和任務(wù)相相符合嗎??與所有系統(tǒng)統(tǒng)成分的重重要接口都都已被描述述了嗎?研制項(xiàng)目的的數(shù)據(jù)流程程圖、數(shù)據(jù)據(jù)字典、數(shù)數(shù)據(jù)結(jié)構(gòu)充充分確定了了嗎?圖表都清楚楚嗎?每個(gè)個(gè)圖表在不不加補(bǔ)充說說明的情況況下能被理理解嗎?主要功能在在規(guī)定的范范圍之內(nèi)嗎嗎?每一種種功能被充充分說明了了嗎?需求分析軟件需求說說明審查中中的問題::設(shè)計(jì)的限制制條件是現(xiàn)現(xiàn)實(shí)的嗎??開發(fā)的技技術(shù)風(fēng)險(xiǎn)險(xiǎn)是什么么?考慮過軟軟件需求求的其他他方案嗎嗎?檢驗(yàn)標(biāo)準(zhǔn)準(zhǔn)是否詳詳細(xì)?他他們能否否確認(rèn)系系統(tǒng)是成成功的??有無遺漏漏、重復(fù)復(fù)或不一一致的地地方?用戶是否否審查了了初步的的用戶手手冊(cè)?軟件計(jì)劃劃中的估估算是否否需要修修改?需求分析析用于軟件件需求分分析的工工具概要設(shè)計(jì)計(jì)軟件設(shè)計(jì)計(jì)是把軟軟件需求求變?yōu)檐涇浖木呔唧w方案案軟件設(shè)計(jì)計(jì)包括兩兩個(gè)階段段:概要要設(shè)計(jì)和和詳細(xì)設(shè)設(shè)計(jì)概要設(shè)計(jì)計(jì)根據(jù)軟軟件需求求所確定定的信息息流程或或信息結(jié)結(jié)構(gòu),導(dǎo)導(dǎo)出軟件件的總體體表示----軟件結(jié)結(jié)構(gòu)或程程序過程程概要設(shè)計(jì)計(jì)軟件結(jié)構(gòu)構(gòu):軟件結(jié)構(gòu)構(gòu)是一種種層次化化的表示示,其指指出了由由需求分分析隱含含地確定定的某一一問題的的軟件解解法的各各個(gè)元素素(稱之之為模塊塊)之間間的相互互控制關(guān)關(guān)系軟件結(jié)構(gòu)構(gòu)的演變變從確定定問題開開始,當(dāng)當(dāng)該問題題的每個(gè)個(gè)部分用用一個(gè)或或多個(gè)軟軟件加以以解決以以后,整整個(gè)問題題的解也也就有了了概要設(shè)計(jì)P3P1P2P4P5S1S2S3S4S5概要設(shè)計(jì)軟件結(jié)構(gòu)的度度量和術(shù)語::深度:表示控控制的層數(shù)。。寬度:表示控控制(同一層層次)總跨度度。扇出數(shù):指由由一模塊直接接控制的其他他模塊的數(shù)目目。扇入數(shù):指有有多少個(gè)模塊塊直接控制一一個(gè)給定的模模塊。上級(jí)模塊下級(jí)模塊概要設(shè)計(jì)程序過程:程序過程是用用于描述每個(gè)個(gè)模塊的操作作細(xì)節(jié),是關(guān)關(guān)于模塊算法法的詳細(xì)描述述,它應(yīng)當(dāng)包包括處理的順順序、精確的的判定位置、、重復(fù)的操作作以及數(shù)據(jù)組組織和結(jié)構(gòu)等等。概要設(shè)計(jì)模塊:模塊是數(shù)據(jù)說說明、可執(zhí)行行語句等程序序?qū)ο蟮募虾?,是單?dú)命命名的并且可可以通過名字字來訪問,例例如過程、函函數(shù)、子程序序、宏、modula等。概要設(shè)計(jì)模塊化:軟件被劃分成成獨(dú)立命名和和可獨(dú)立訪問問的被稱作模模塊的構(gòu)件,,每個(gè)模塊完完成一個(gè)子功功能,它們集集成到一起滿滿足問題需求求。概要設(shè)計(jì)模塊化論據(jù)::C(x)定義義為問題x的的感知復(fù)雜性性E(x)定義義為解決問題題x所需要的的工作量對(duì)p1和p2兩個(gè)問題,,若C(p1)>C(p2),,則E(p1)>E(p2)C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)概要設(shè)計(jì)軟件總成本集成成本成本/模塊模塊數(shù)量成本或工作量量最小成本區(qū)域域M概要設(shè)計(jì)實(shí)現(xiàn)模塊化的的手段:抽象:抽出事事物的本質(zhì)特特性而暫時(shí)不不考慮它們的的細(xì)節(jié)。信息隱蔽:應(yīng)應(yīng)該這樣設(shè)計(jì)計(jì)和確定模塊塊,使得一個(gè)個(gè)模塊內(nèi)包含含的信息(過過程和數(shù)據(jù)))對(duì)于不需要要這些信息的的模塊來說,,是不可訪問問的。概要設(shè)計(jì)模塊獨(dú)立性::模塊獨(dú)立是指指開發(fā)具有獨(dú)獨(dú)立功能而且且和其它模塊塊之間沒有過過多的相互作作用的模塊。。模塊獨(dú)立的意意義:功能分割,簡(jiǎn)簡(jiǎn)化接口,易易于多人合作作開發(fā)同一軟軟件;獨(dú)立的模塊易易于測(cè)試和維維護(hù)。概要設(shè)計(jì)模塊獨(dú)立程程度的衡量量標(biāo)準(zhǔn):耦合性:對(duì)對(duì)一個(gè)軟件件結(jié)構(gòu)內(nèi)不不同模塊間間互連程度度的度量。。內(nèi)聚性:標(biāo)標(biāo)志一個(gè)模模塊內(nèi)各個(gè)個(gè)處理元素素彼此結(jié)合合的緊密程程度,理想想的內(nèi)聚模模塊只做一一件事情。。概要設(shè)計(jì)耦合分類::無任何連接接:兩個(gè)模模塊中的每每一個(gè)都能能獨(dú)立地工工作而不需需要另一個(gè)個(gè)的存在((最低耦合合)。數(shù)據(jù)耦合::兩個(gè)模塊塊彼此通過過參數(shù)交換換信息,且且交換的僅僅僅是數(shù)據(jù)據(jù)(低耦合合)??刂岂詈希海簝蓚€(gè)模塊塊之間傳遞遞的信息有有控制成分分(中耦合合)。概要設(shè)計(jì)耦合分類::公共環(huán)境耦耦合:兩個(gè)個(gè)或多個(gè)模模塊通過一一個(gè)公共環(huán)環(huán)境相互作作用:1.一個(gè)個(gè)存數(shù)據(jù),,一個(gè)取數(shù)數(shù)據(jù)(低耦耦合);2.都存存取數(shù)據(jù)((低--中中之間)。。內(nèi)容耦合::1.一個(gè)個(gè)模塊訪問問另一個(gè)模模塊的內(nèi)部部數(shù)據(jù);2.兩個(gè)個(gè)模塊有一一部分程序序代碼重疊疊;3.一個(gè)個(gè)模塊不通通過正常入入口而轉(zhuǎn)移移的另一個(gè)個(gè)的內(nèi)部;;4.一個(gè)個(gè)模塊有多多個(gè)入口((意味著該該模塊有多多個(gè)功能))。概要設(shè)計(jì)內(nèi)聚分類::偶然內(nèi)聚::一組任務(wù)務(wù)關(guān)系松散散(低)邏輯內(nèi)聚::一組任務(wù)務(wù)在邏輯上上同屬一類類,例如均均為輸出((低)時(shí)間內(nèi)聚::一組任務(wù)務(wù)必須在同同一段時(shí)間間內(nèi)執(zhí)行((低)概要設(shè)計(jì)內(nèi)聚分類::信息內(nèi)聚::模塊內(nèi)所所有元素都都引用相同同的輸入或或輸出數(shù)據(jù)據(jù)集合(中中)順序內(nèi)聚::模塊中的的每個(gè)元素素都是與同同一功能緊緊密相關(guān),,一個(gè)元素素的輸出是是下一個(gè)元元素的輸入入(高)功能內(nèi)聚::一個(gè)模塊塊完成一個(gè)個(gè)且僅完成成一個(gè)功能能(高)概要設(shè)計(jì)關(guān)于耦合性性和內(nèi)聚性性的設(shè)計(jì)原原則:力爭(zhēng)盡可能能弱的耦合合性:盡量量使用數(shù)據(jù)據(jù)耦合,少少用控制耦耦合,限制制公共環(huán)境境耦合的范范圍,完全全不用內(nèi)容容耦合力爭(zhēng)盡可能能高的內(nèi)聚聚性:力爭(zhēng)爭(zhēng)盡可能高高的內(nèi)聚性性,并能識(shí)識(shí)別出低內(nèi)內(nèi)聚性概要設(shè)計(jì)概要設(shè)計(jì)的的啟發(fā)式準(zhǔn)準(zhǔn)則:改進(jìn)軟件結(jié)結(jié)構(gòu),提高高模塊獨(dú)立立性模塊塊規(guī)規(guī)模模應(yīng)應(yīng)該該適適中中((最最好好能能寫寫在在一一頁頁紙紙上上))大模模塊塊分分解解不不充充分分;;小小模模塊塊使使用用開開銷銷大大,,接接口口復(fù)復(fù)雜雜。。盡量量減減少少高高扇扇出出結(jié)結(jié)構(gòu)構(gòu)的的數(shù)數(shù)目目,,隨隨著著深深度度的的增增加加爭(zhēng)爭(zhēng)取取更更多多的的扇扇入入扇出出過過大大意意味味著著模模塊塊過過分分復(fù)復(fù)雜雜,,需需要要控控制制和和協(xié)協(xié)調(diào)調(diào)過過多多的的下下級(jí)級(jí)模模塊塊。。一一般般來來說說,,頂頂層層扇扇出出高高,,中中間間扇扇出出少少,,低低層層高高扇扇入入。。概要設(shè)計(jì)計(jì)概要設(shè)計(jì)計(jì)的啟發(fā)發(fā)式準(zhǔn)則則:模塊的作作用范圍圍保持在在該模塊塊的控制制范圍內(nèi)內(nèi)模塊的的作用用范圍圍是指指該模模塊中中一個(gè)個(gè)判斷斷所影影響的的所有有其它它模塊塊;模模塊的的控制制范圍圍指該該模塊塊本身身以及及所有有直接接或間間接從從屬于于它的的模塊塊。力爭(zhēng)降降低模模塊接接口的的復(fù)雜雜程度度模塊接接口的的復(fù)雜雜性是是引起起軟件件錯(cuò)誤誤的一一個(gè)主主要原原因。。接口口設(shè)計(jì)計(jì)應(yīng)該該使得得信息息傳遞遞簡(jiǎn)單單并且且與模模塊的的功能能一致致。概要設(shè)設(shè)計(jì)概要設(shè)設(shè)計(jì)的的啟發(fā)發(fā)式準(zhǔn)準(zhǔn)則::設(shè)計(jì)單單入口口單出出口的的模塊塊避免內(nèi)內(nèi)容耦耦合,,易于于理解解和維維護(hù)。。模塊的的功能能應(yīng)該該可以以預(yù)測(cè)測(cè)相同的的輸入入應(yīng)該該有相相同的的輸出出,否否則難難以理理解、、測(cè)試試和維維護(hù)。。概要設(shè)設(shè)計(jì)設(shè)計(jì)方方法::逐步精精化----自自頂向向下設(shè)設(shè)計(jì)方方法結(jié)構(gòu)化化程序序設(shè)計(jì)計(jì)結(jié)構(gòu)化化程序序設(shè)計(jì)計(jì)的基基礎(chǔ)建建立在在三種種能夠夠構(gòu)成成結(jié)構(gòu)構(gòu)化程程序的的邏輯輯構(gòu)造造(順順序,,選擇擇,重重復(fù)))上。。面向數(shù)數(shù)據(jù)的的設(shè)計(jì)計(jì)方法法面向數(shù)數(shù)據(jù)流流的設(shè)設(shè)計(jì)面向數(shù)數(shù)據(jù)結(jié)結(jié)構(gòu)的的設(shè)計(jì)計(jì)面向?qū)?duì)象的的設(shè)計(jì)計(jì)方法法概要設(shè)設(shè)計(jì)面向數(shù)數(shù)據(jù)流流的設(shè)設(shè)計(jì)::面向數(shù)數(shù)據(jù)流流的設(shè)設(shè)計(jì)方方法把把信息息流映映射成成軟件件結(jié)構(gòu)構(gòu)信息流的類類型決定了了映射的方方法信息流有兩兩種類型::變換流事務(wù)流概要設(shè)計(jì)變換流:信息沿輸入入通路進(jìn)入入系統(tǒng),同同時(shí)由外部部形式變換換成內(nèi)部形形式。進(jìn)入入系統(tǒng)的信信息通過變變換中心,,經(jīng)過加工工處理以后后再沿著輸輸出通路變變換成外部部形式離開開系統(tǒng)。概要設(shè)計(jì)信息外部表示內(nèi)部表示時(shí)間輸入流輸出流變換中心概要設(shè)計(jì)事務(wù)流:事務(wù)流的特特點(diǎn)是數(shù)據(jù)據(jù)沿著接收收通路把外外部世界的的信息轉(zhuǎn)換換成一個(gè)事事務(wù)項(xiàng),然然后,計(jì)算算該事務(wù)項(xiàng)項(xiàng)的值,根根據(jù)它的值值激勵(lì)起多多條活動(dòng)通通路中的一一條數(shù)據(jù)流流。發(fā)出多多條通路的的信息流中中樞被稱為為“事務(wù)中中心”。概要設(shè)計(jì)T事務(wù)事務(wù)中心活動(dòng)通路概要設(shè)計(jì)變換型分析第1步復(fù)復(fù)查基本本系統(tǒng)模型。。第2步復(fù)復(fù)查并精精化數(shù)據(jù)流圖圖。第3步確確定數(shù)據(jù)據(jù)流圖具有變變換特性還是是事務(wù)特性。。第4步確確定輸入入流和輸出流流的邊界,從從而孤立出變變換中心。概要設(shè)計(jì)變換型分析第5步完完成“第第一級(jí)分解””。軟件結(jié)構(gòu)代表表對(duì)控制的自自頂向下的分分配,所謂分分解就是分配配控制的過程程。對(duì)于變換流,,數(shù)據(jù)圖將被被映射成一個(gè)個(gè)特殊的軟件件結(jié)構(gòu),這個(gè)個(gè)結(jié)構(gòu)控制輸輸入、變換和和輸出信息等等處理過程::位于軟件結(jié)結(jié)構(gòu)最頂層的的控制模塊Cm協(xié)調(diào)下述從屬屬的控制功能能:(1)輸入信信息處理控制制模塊Ca,,協(xié)調(diào)對(duì)所有有輸入數(shù)據(jù)的的接收;(2)變換中中心控制模塊塊Ct,管理理對(duì)內(nèi)部形式式的數(shù)據(jù)的所所有操作;(3)輸出出信息控制制模塊Ce,協(xié)調(diào)輸輸出信息的的產(chǎn)生過程程。概要設(shè)計(jì)CmCtCaCe概要設(shè)計(jì)變換型分析析第6步完完成成“第二級(jí)級(jí)分解”。。把數(shù)據(jù)流圖圖中的每一一個(gè)處理映映射成軟件件結(jié)構(gòu)中一一個(gè)適當(dāng)?shù)牡哪K:從從變換中心心的邊界開開始沿著輸輸入通路向向外移動(dòng),,把輸入通通路中每個(gè)個(gè)處理映射射成軟件結(jié)結(jié)構(gòu)中Ca控制下的的一個(gè)低層層模塊;然然后沿輸出出通路向外外移動(dòng),把把輸出通路路中每個(gè)處處理映射成成直接或間間接受Ce控制的一一個(gè)低層模模塊;最后后把變換中中心內(nèi)的每每個(gè)處理映映射成受Ct控制的的一個(gè)模塊塊。第7步使使用用設(shè)計(jì)度量量和啟發(fā)式式規(guī)則對(duì)得得到的軟件件結(jié)構(gòu)進(jìn)一一步精化。。概要設(shè)計(jì)BCDACmCaBCAD概要設(shè)計(jì)事務(wù)型分析析第1步復(fù)復(fù)查查基本系統(tǒng)統(tǒng)模型。第2步復(fù)復(fù)查查并精化數(shù)數(shù)據(jù)流圖。。第3步確確定定數(shù)據(jù)流圖圖具有變換換特性還是是事務(wù)特性性。第4步步確確定定事事務(wù)務(wù)中中心心和和每每個(gè)個(gè)活活動(dòng)動(dòng)通通路路的的流流程程特特征征。。概要要設(shè)設(shè)計(jì)計(jì)事務(wù)務(wù)型型分分析析第5步步把把數(shù)數(shù)據(jù)據(jù)流流圖圖映映射射成成一一個(gè)個(gè)適適合合于于事事務(wù)務(wù)處處理理的的軟軟件件結(jié)結(jié)構(gòu)構(gòu)。。第6步步對(duì)對(duì)事事務(wù)務(wù)中中心心的的結(jié)結(jié)構(gòu)構(gòu)和和每每個(gè)個(gè)活活動(dòng)動(dòng)通通路路的的結(jié)結(jié)構(gòu)構(gòu)進(jìn)進(jìn)行行分分解解、、合合并并和和改改進(jìn)進(jìn)。。第7步步使使用用設(shè)設(shè)計(jì)計(jì)度度量量和和啟啟發(fā)發(fā)式式規(guī)規(guī)則則對(duì)對(duì)得得到到的的軟軟件件結(jié)結(jié)構(gòu)構(gòu)進(jìn)進(jìn)一一步步精精化化。。概要要設(shè)設(shè)計(jì)計(jì)DGFE總控控E調(diào)度度DGA-CTLB-CTLC-CTLF接收收通通路路C通通路路B通通路路A通通路路概要要設(shè)設(shè)計(jì)計(jì)面向向數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)的的設(shè)設(shè)計(jì)計(jì)::面向向數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)的的設(shè)設(shè)計(jì)計(jì)方方法法用用信信息息結(jié)結(jié)構(gòu)構(gòu)導(dǎo)導(dǎo)出出程程序序過過程程面向向數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)的的設(shè)設(shè)計(jì)計(jì)過過程程分分為為如如下下幾幾步步::(1))分分析析數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)的的特特性性;;(2))用用一一些些基基本本類類型型((如如::順順序序,,選選擇擇和和重重復(fù)復(fù)))來來描描述述數(shù)數(shù)據(jù)據(jù);;(3))把把數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)表表示示映映射射成成軟軟件件的的控控制制層層次次;;(4))利利用用一一組組規(guī)規(guī)則則改改進(jìn)進(jìn)軟軟件件的的層層次次結(jié)結(jié)構(gòu)構(gòu);;(5))最最后后得得到到軟軟件件的的過過程程性性描描述述。。概要要設(shè)設(shè)計(jì)計(jì)Jackson方方法法Jackson方方法法的的精精髓髓在在于于::應(yīng)應(yīng)該該把把問問題題分分解解成成僅僅用用三三種種結(jié)結(jié)構(gòu)構(gòu)化化形形式式((順順序序,,選選擇擇和和重重復(fù)復(fù)))來來表表示示的的層層次次結(jié)結(jié)構(gòu)構(gòu)。。Jackson方方法法包包括括一一種種數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)符符號(hào)號(hào)和和一一組組映映射射或或轉(zhuǎn)轉(zhuǎn)換換步步驟驟。。概要要設(shè)設(shè)計(jì)計(jì)Jackson圖圖((數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)符符號(hào)號(hào)))::AAAC#D#B*CDB#B順序序重復(fù)復(fù)選擇擇AseqdoB;doC;doD;AendAiterdoB;AendAselectdoB;AordoC;AordoD;Aend概要要設(shè)設(shè)計(jì)計(jì)Jackson圖圖的的特特點(diǎn)點(diǎn)::便于表示層次次結(jié)構(gòu),而且且是對(duì)結(jié)構(gòu)進(jìn)進(jìn)行自頂向下下分解的有力力工具;形象直觀,可可讀性好;既能表示數(shù)據(jù)據(jù)結(jié)構(gòu),又能能表示程序結(jié)結(jié)構(gòu)。概要設(shè)計(jì)建立程序結(jié)構(gòu)構(gòu)例1:設(shè)計(jì)一一個(gè)打印表格格的程序。表表格如下:姓名年齡類別狀態(tài)這里類別可以以是“教師””或“學(xué)生””兩種?!盃顮顟B(tài)”一項(xiàng),,如果是教師則印出出他的“工齡齡”,如果是是學(xué)生則印出出他的年級(jí)。。概要設(shè)計(jì)表格表頭表體行*姓名年齡類別狀態(tài)工齡年級(jí)概要設(shè)計(jì)產(chǎn)生表表格產(chǎn)生表表頭產(chǎn)生表表體產(chǎn)生行行*產(chǎn)生工工齡#產(chǎn)生年年級(jí)#產(chǎn)生姓姓名產(chǎn)生年年齡產(chǎn)生類類別產(chǎn)生狀狀態(tài)概要設(shè)設(shè)計(jì)建立程程序結(jié)結(jié)構(gòu)例2::倉庫庫中存存放了了多種種零件件,每每種零零件的的每次次變動(dòng)動(dòng)(收收到或或發(fā)出出)都都有一一張卡卡片作作出記記錄,,庫存存管理理系統(tǒng)統(tǒng)每月月要根根據(jù)這這些卡卡片打打印一一張?jiān)略聢?bào)表表,列列出各各種零零件在在這個(gè)個(gè)月中中庫存存量的的凈變變化。。概要設(shè)設(shè)計(jì)零件組組*卡片*發(fā)#收#月報(bào)表表表頭表體行*輸入文文件概要設(shè)設(shè)計(jì)根據(jù)輸輸入文文件產(chǎn)產(chǎn)生月月報(bào)表表產(chǎn)生表表頭產(chǎn)生表表體從零件件組產(chǎn)產(chǎn)生行行*處理文文件產(chǎn)生行行處理卡片*處理發(fā)#處理收#概要設(shè)計(jì)Jackson方法法的基本步步驟:(1)分析析并確定輸輸入數(shù)據(jù)和和輸出數(shù)據(jù)據(jù)的邏輯結(jié)結(jié)構(gòu),并用用Jackson圖圖描述這些些數(shù)據(jù)結(jié)構(gòu)構(gòu);(2)找出出輸入數(shù)據(jù)據(jù)和輸出數(shù)數(shù)據(jù)結(jié)構(gòu)中中有對(duì)應(yīng)關(guān)關(guān)系的數(shù)據(jù)據(jù)單元。所所謂對(duì)應(yīng)關(guān)關(guān)系是指有有直接的因因果關(guān)系,,在程序中中可以同時(shí)時(shí)處理的數(shù)數(shù)據(jù)單元((對(duì)于重復(fù)復(fù)出現(xiàn)的數(shù)數(shù)據(jù)單元必必須重復(fù)的的次數(shù)相同同才可能有有對(duì)應(yīng)關(guān)系系);概要設(shè)計(jì)Jackson方法法的基本步步驟:(3)用下下述三條規(guī)規(guī)則從描述述數(shù)據(jù)結(jié)構(gòu)構(gòu)的Jackson圖導(dǎo)出描述述程序結(jié)構(gòu)構(gòu)的Jackson圖:第一,為每每對(duì)有對(duì)應(yīng)應(yīng)關(guān)系的數(shù)數(shù)據(jù)單元,,按照它們們?cè)跀?shù)據(jù)結(jié)結(jié)構(gòu)圖中的的層次在程程序結(jié)構(gòu)圖圖的相應(yīng)層層次畫一個(gè)個(gè)處理框((注意,若若這對(duì)數(shù)據(jù)據(jù)單元在輸輸入數(shù)據(jù)結(jié)結(jié)構(gòu)和輸出出數(shù)據(jù)結(jié)構(gòu)構(gòu)中所處的的層次不同同,則和它它們對(duì)應(yīng)的的處理框在在程序結(jié)構(gòu)構(gòu)圖中所處處的層次與與它們之中中在數(shù)據(jù)結(jié)結(jié)構(gòu)圖中層層次低的那那個(gè)對(duì)應(yīng)));第二,根據(jù)據(jù)輸入數(shù)據(jù)據(jù)結(jié)構(gòu)中剩剩余的每個(gè)個(gè)數(shù)據(jù)單元元所處的層層次,在程程序結(jié)構(gòu)圖圖中的相應(yīng)應(yīng)層次分別別為它們畫畫上對(duì)應(yīng)的的處理框;;第三,根據(jù)據(jù)輸出數(shù)據(jù)據(jù)結(jié)構(gòu)中剩剩余的每個(gè)個(gè)數(shù)據(jù)單元元所處的層層次,在程程序結(jié)構(gòu)圖圖中的相應(yīng)應(yīng)層次分別別為它們畫畫上對(duì)應(yīng)的的處理框。。概要設(shè)計(jì)Jackson方法法的基本步步驟:(4)列出出所有操作作和條件((包括分支支條件和循循環(huán)結(jié)束條條件),并并且把它們們分配到程程序結(jié)構(gòu)圖圖的適當(dāng)位位置。(5)用偽偽碼標(biāo)示程程序。概要設(shè)計(jì)例:輸入一一個(gè)文件FIPT,,此文件只只包含三種種記錄類型型T1、T2和T3,現(xiàn)在要要對(duì)該文件件作如下處處理:(1)統(tǒng)計(jì)計(jì)出現(xiàn)的第第一個(gè)T1類型的記記錄前的記記錄總數(shù)((計(jì)數(shù)A));(2)顯示示第一個(gè)T1類型的的記錄;(3)顯示示最后一個(gè)個(gè)記錄,最最后一個(gè)記記錄是在第第一個(gè)T1類型的記記錄后的第第一個(gè)T2類型的記記錄;(4)計(jì)算算第一個(gè)T1類型的的記錄后的的記錄批數(shù)數(shù)(一批記記錄指一串串連續(xù)的T1類型的的記錄或一一串連續(xù)的的T3類型型的記錄(((計(jì)數(shù)B);(5)統(tǒng)計(jì)計(jì)在第一個(gè)個(gè)T1類型型的記錄后后出現(xiàn)的T1類型記記錄的總數(shù)數(shù)(計(jì)數(shù)C));(6)計(jì)算算在第一個(gè)個(gè)T1類型型的記錄后后的T3類類型記錄的的批數(shù)(計(jì)計(jì)數(shù)D)。。概要設(shè)計(jì)FIPT前綴批數(shù)部分T2非T1*批*T1批#T3批#T1*T3*第一個(gè)T1概要設(shè)計(jì)處理FIPT處理前綴處理批數(shù)部分處理T2處理非T1*處理批*處理T1批#處理T3批#處理T1*處理T3*處理第一個(gè)T1概要設(shè)計(jì)列出所有的的操作:(1)CA:=0((2))CB:=0(3)CC::=0(4)CD::=0(5)CA:=CA+1((6)CB:=CB+1((7))CC:=CC+1(8)CD:=CD+1((9)顯顯示第一個(gè)個(gè)T1記錄錄(10)顯顯示最后一一個(gè)T1記記錄(11)顯顯示所有計(jì)計(jì)數(shù)器的內(nèi)內(nèi)容(12)打打開FIPT文件(13)關(guān)關(guān)閉FIPT文件(14)終終止運(yùn)行(15)讀讀FIPT文件記錄錄概要設(shè)計(jì)處理FIPT12151處理前綴處理非T1*處理第一個(gè)T1234批數(shù)部分處理T2111314處理批*處理批部分51015915515處理T1批#處理T3批#處理T1*處理T3體處理T3*315715概要設(shè)計(jì)設(shè)計(jì)方法比較較:沒有一種方法法能夠適用于于所有的應(yīng)用用領(lǐng)域;設(shè)計(jì)“優(yōu)劣程程度”的評(píng)定定標(biāo)準(zhǔn),大都都建立在不可可證明的假設(shè)設(shè)的基礎(chǔ)之上上;“設(shè)計(jì)”首先先是解決問題題的活動(dòng),而而解決問題的的過程和辦法法是因人而異異的;方法是重要的的,但只有在在支撐環(huán)境中中運(yùn)用它們才才能得到成功功。詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)是給給出軟件結(jié)構(gòu)構(gòu)中各模塊的的內(nèi)部過程描描述模塊的內(nèi)部過過程描述也就就是模塊內(nèi)部部的算法設(shè)計(jì)計(jì)詳細(xì)設(shè)計(jì)也既既是要導(dǎo)出一一種算法設(shè)計(jì)計(jì)表示,由此此可以直接而而簡(jiǎn)單地導(dǎo)出出程序代碼詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的邏邏輯基礎(chǔ):使用結(jié)構(gòu)化構(gòu)構(gòu)造(即用順順序、選擇和和重復(fù)三種程程序結(jié)構(gòu))表表示程序過程程,降低程序序的復(fù)雜性,,從而提高可可靠性、易測(cè)測(cè)試性和易維維護(hù)性。詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)工具具對(duì)軟件開發(fā)人人員來說,提提高軟件開發(fā)發(fā)效率對(duì)軟件測(cè)試和和維護(hù)人員來來說,提供擺擺脫繁瑣的程程序代碼,了了解模塊程序序結(jié)構(gòu)的途徑徑詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)工具具:圖形工具將過程細(xì)節(jié)用用圖來表示,,在圖中,邏邏輯結(jié)構(gòu)用具具體的圖形表表示列表工具利用表來表示示過程細(xì)節(jié),,表列出了各各種操作和相相應(yīng)的條件語言工具用類語言(偽偽碼)表示過過程的細(xì)節(jié),,很接近編程程語言詳細(xì)設(shè)計(jì)圖形工具:流程圖方塊圖PAD圖詳細(xì)設(shè)計(jì)流程圖方框表示處理理步菱形表示邏輯輯判斷箭頭表示控制制流注意:用流程程圖表示過程程細(xì)節(jié)時(shí),要要注意不要亂亂用箭頭,否否則會(huì)使結(jié)構(gòu)構(gòu)不清晰詳細(xì)設(shè)計(jì)S1C4C5C3C2C1S2S3S4S5NYNYNNNYYY詳細(xì)設(shè)計(jì)流程圖的主要要缺點(diǎn):流程圖本質(zhì)上上不是逐步求求精的好工具具,它誘使程程序員過早地地考慮程序的的控制流程,,而不去考慮慮程序的全局局結(jié)構(gòu)。流程圖中用箭箭頭代表控制制流,因此程程序員不受任任何約束,可可以完全不顧顧結(jié)構(gòu)程序設(shè)設(shè)計(jì)的精神,,隨意轉(zhuǎn)移控控制。流程圖不易表表示數(shù)據(jù)結(jié)構(gòu)構(gòu)。詳細(xì)設(shè)計(jì)方塊圖(N-S圖)研制方塊圖的的目的是:既既要制定一種種圖形工具,,又不允許它它違反結(jié)構(gòu)化化原則。方塊圖具有以以下特點(diǎn):(1)功能域域(即某一具具體構(gòu)造的功功能范圍)有有明確的規(guī)定定,并且很只只觀地從圖形形表示中看出出來;(2)想隨意意分支或轉(zhuǎn)移移是不可能的的;(3)局部數(shù)數(shù)據(jù)和全程數(shù)數(shù)據(jù)的作用域域可以很容易易確定;(4)容易表表示出遞歸結(jié)結(jié)構(gòu)。詳細(xì)設(shè)計(jì)第一個(gè)任務(wù)第二個(gè)任務(wù)第三個(gè)任務(wù)條件FTELSE部分THEN部分CASE條件件值1值2…...值nCASE1部分A循環(huán)條件Do-While部分Do-Until部分循環(huán)條件調(diào)用子程序A循環(huán)順序IF-THEN-ELSE分支CASE分支支詳細(xì)設(shè)計(jì)C1C4C5NYS1S4S2S3S5NNYYC2C3詳細(xì)設(shè)計(jì)PAD圖(ProblemAnalysisDiagram)P1P2P2P1PnP2P1...X=L1L2LnC順序選擇CASE型型選擇擇詳細(xì)設(shè)設(shè)計(jì)WHILECUNTILCPP循環(huán)語句標(biāo)標(biāo)號(hào)定義def詳細(xì)設(shè)設(shè)計(jì)P1P3P2P5P4P2P6P10P8UNTILC3P7UNTILC2P9defCC1詳細(xì)設(shè)設(shè)計(jì)WHILEC1UNTILC4S5S3S1S2S4C2C3C5詳細(xì)設(shè)設(shè)計(jì)PAD圖的的特點(diǎn)點(diǎn):使用表表示結(jié)結(jié)構(gòu)化化控制制結(jié)構(gòu)構(gòu)的PAD符號(hào)號(hào)所設(shè)設(shè)計(jì)出出的程程序必必然是是結(jié)構(gòu)構(gòu)化程程序。。PAD圖所所描述述的程程序結(jié)結(jié)構(gòu)十十分清清晰,,圖中中最左左面的的豎線線是程程序的的主線線,即即第一一層結(jié)結(jié)構(gòu),,隨著著程序序?qū)哟未蔚脑鲈黾?,,PAD圖圖逐漸漸向右右延伸伸,每每增加加一個(gè)個(gè)層次次,圖圖形向向右擴(kuò)擴(kuò)展一一條豎豎線,,PAD圖圖中的的豎線線的總總條數(shù)數(shù)就是是程序序的層層次數(shù)數(shù)。詳細(xì)設(shè)設(shè)計(jì)PAD圖的的特點(diǎn)點(diǎn):用PAD圖圖表現(xiàn)現(xiàn)程序序邏輯輯,易易讀、、易懂懂、易易記,,PAD圖圖是二二維樹樹形結(jié)結(jié)構(gòu)的的圖形形,程程序從從圖中中最左左豎線線上端端的結(jié)結(jié)點(diǎn)開開始執(zhí)執(zhí)行,,自上上而下下,從從左向向右順順序執(zhí)執(zhí)行,,遍歷歷所有有結(jié)點(diǎn)點(diǎn)。容易將將PAD圖圖轉(zhuǎn)換換成高高級(jí)語語言源源程序序,這這種轉(zhuǎn)轉(zhuǎn)換可可用軟軟件工工具自自動(dòng)完完成。。詳細(xì)設(shè)設(shè)計(jì)PAD圖的的特點(diǎn)點(diǎn):既可可以以用用于于表表示示程程序序邏邏輯輯,,也也可可用用于于描描述述數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)。。PAD圖圖的的符符號(hào)號(hào)具具有有支支持持自自頂頂向向下下、、逐逐步步求求精精方方法法的的作作用用。。開開始始時(shí)時(shí)設(shè)設(shè)計(jì)計(jì)者者可可以以定定義義一一個(gè)個(gè)抽抽象象的的程程序序,,隨隨著著設(shè)設(shè)計(jì)計(jì)工工作作的的深深入入而而用用def符符號(hào)號(hào)逐逐步步增增加加細(xì)細(xì)節(jié)節(jié),,直直至至完完成成詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)。。詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)語言言工工具具--PDL(ProgramDesignLanguage)PDL具有嚴(yán)格格的關(guān)鍵鍵字外部部語法,,用于定定義控制制結(jié)構(gòu)和和數(shù)據(jù)結(jié)結(jié)構(gòu);另另一方面面,PDL表示示實(shí)際操操作和條條件的內(nèi)內(nèi)容語法法通常又又是靈活活自由的的以便可可以適應(yīng)應(yīng)各種工工程項(xiàng)目目的需要要。一般說來來PDL是一種種“混合””語言,,它使用用一種語語言(通通常是某某種自然然語言))的詞匯匯,同時(shí)時(shí)卻使用用另一種種語言((某種結(jié)結(jié)構(gòu)化的的程序設(shè)設(shè)計(jì)語言言)的語語法。詳細(xì)設(shè)計(jì)計(jì)PDL應(yīng)應(yīng)當(dāng)具有有以下特特征:關(guān)鍵字應(yīng)應(yīng)有固定定語法,,以便提提供全部部結(jié)構(gòu)化化構(gòu)造、、數(shù)據(jù)說說明和模模塊化特特性,并并且使結(jié)結(jié)構(gòu)清晰晰和易讀讀性好;;一種自然然語言的的自由文文法,用用來描述述處理特特點(diǎn);應(yīng)有數(shù)據(jù)據(jù)說明機(jī)機(jī)制,應(yīng)應(yīng)該包括括既簡(jiǎn)單單的數(shù)據(jù)據(jù)結(jié)構(gòu)((標(biāo)量與與數(shù)組)),又包包括復(fù)雜雜的數(shù)據(jù)據(jù)結(jié)構(gòu)((鏈表或或?qū)哟谓Y(jié)結(jié)構(gòu));;應(yīng)有子子程序序定義義與調(diào)調(diào)用方方法,,用來來表示示各種種方式式的接接口描描述。。詳細(xì)設(shè)設(shè)計(jì)設(shè)計(jì)工工具應(yīng)應(yīng)具有有的屬屬性::模塊性、簡(jiǎn)簡(jiǎn)明性、便便于編輯、、機(jī)器可讀讀性、易維護(hù)性、、強(qiáng)行結(jié)構(gòu)構(gòu)化、自動(dòng)動(dòng)處理、數(shù)據(jù)表示、、邏輯驗(yàn)證證、編程能能力詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書1.范圍圍(1)系統(tǒng)統(tǒng)的目標(biāo)和和作為系統(tǒng)統(tǒng)元素的軟軟件的作用用;(2)硬件件、軟件與與人機(jī)接口口;(3)主要要的軟件功功能;(4)外部部定義的數(shù)數(shù)據(jù)庫;(5)主要要的設(shè)計(jì)約約束與限制制。詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書2.參考考文檔(1)現(xiàn)有有的軟件文文檔;(2)系統(tǒng)統(tǒng)文檔;(3)外購購產(chǎn)品文檔檔(硬件或或軟件);;(4)技術(shù)術(shù)參考資料料。詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書3.設(shè)計(jì)計(jì)說明(1)數(shù)據(jù)據(jù)說明信息流的復(fù)復(fù)審信信息息結(jié)構(gòu)的復(fù)復(fù)審(2)導(dǎo)出出的軟件結(jié)結(jié)構(gòu)(3)結(jié)構(gòu)構(gòu)內(nèi)的接口口詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書4.模塊塊(對(duì)每一一個(gè)模塊))(1)處理理說明(2)接口口說明(3)設(shè)計(jì)計(jì)語言(或或其他)的的說明(4)使用用的模塊(5)數(shù)據(jù)據(jù)的組織(6)注解解詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書5.文件件結(jié)構(gòu)和全全程數(shù)據(jù)(1)外部部文件結(jié)構(gòu)構(gòu)邏輯結(jié)構(gòu)邏邏輯記錄說說明存存取取方法(2)全程程數(shù)據(jù)(3)文件件和數(shù)據(jù)的的交叉引用用6.需求求與模塊的的對(duì)照表詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)說說明書7.測(cè)試試的準(zhǔn)備測(cè)試大綱組組裝策略略專專門門的考慮8.裝配配專門的程序序覆蓋考慮慮轉(zhuǎn)轉(zhuǎn)錄錄考慮9.專專門門注注解解10.附附錄錄詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)設(shè)計(jì)計(jì)的的復(fù)復(fù)審審軟件件的的設(shè)設(shè)計(jì)計(jì)由由管管理理方方面面的的代代表表、、技技術(shù)術(shù)開開發(fā)發(fā)方方面面的的代代表表和和其其他他有有關(guān)關(guān)人人員員((諸諸如如用用戶戶、、質(zhì)質(zhì)量量保保障障和和軟軟件件支支持持者者等等))共共同同進(jìn)進(jìn)行行復(fù)復(fù)審審。。對(duì)設(shè)設(shè)計(jì)計(jì)進(jìn)進(jìn)行行復(fù)復(fù)審審的的明明顯顯好好處處是是可可以以比比較較早早地地發(fā)發(fā)現(xiàn)現(xiàn)軟軟件件的的缺缺陷陷,,從從而而可可以以使使每每個(gè)個(gè)缺缺陷陷在在進(jìn)進(jìn)行行編編程程、、測(cè)測(cè)試試和和交交付付之之前前予予以以糾糾正正,,從從而而顯顯著著地地降降低低隨隨后后的的開開發(fā)發(fā)階階段段和和維維護(hù)護(hù)階階段段的的費(fèi)費(fèi)用用。。設(shè)計(jì)計(jì)復(fù)復(fù)審審包包括括正正規(guī)規(guī)的的審審查查、、非非正正規(guī)規(guī)的的審審查查和和檢檢查查三三種種方方式式。。詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)設(shè)計(jì)計(jì)復(fù)復(fù)審審的的標(biāo)標(biāo)準(zhǔn)準(zhǔn)::易追追溯溯性性該該軟軟件件設(shè)設(shè)計(jì)計(jì)包包括括了了軟軟件件需需求求規(guī)規(guī)格格說說明明的的所所有有要要求求了了嗎嗎??該該軟軟件件的的每每個(gè)個(gè)部部件件與與某某個(gè)個(gè)具具體體的的軟軟件件要要求求有有關(guān)關(guān)嗎嗎??風(fēng)險(xiǎn)險(xiǎn)實(shí)實(shí)現(xiàn)現(xiàn)該該設(shè)設(shè)計(jì)計(jì)會(huì)會(huì)有有很很大大風(fēng)風(fēng)險(xiǎn)險(xiǎn)嗎嗎??也也就就是是說說,,沒沒有有技技術(shù)術(shù)性性的的突突破破該該設(shè)設(shè)計(jì)計(jì)也也能能完完成成嗎嗎??實(shí)用用性性該該軟軟件件對(duì)對(duì)軟軟件件要要求求所所確確定定的的問問題題是是一一種種實(shí)實(shí)用用的的解解決決辦辦法法嗎嗎??易維維護(hù)護(hù)性性該該設(shè)設(shè)計(jì)計(jì)是是否否將將導(dǎo)導(dǎo)致致一一個(gè)個(gè)便便于于維維護(hù)護(hù)的的系系統(tǒng)統(tǒng)??質(zhì)量量該該設(shè)設(shè)計(jì)計(jì)具具備備一一個(gè)個(gè)““好好””的的軟軟件件應(yīng)應(yīng)有有的的質(zhì)質(zhì)量量特特征征嗎嗎??接口口外外部部和和內(nèi)內(nèi)部部的的接接口口已已經(jīng)經(jīng)規(guī)規(guī)定定得得足足夠夠明明確確了了嗎嗎??技術(shù)術(shù)清清晰晰度度該該設(shè)設(shè)計(jì)計(jì)的的表表達(dá)達(dá)方方式式是是否否使使它它便便于于轉(zhuǎn)轉(zhuǎn)化化成成程程序序??選擇方案考考慮了了其他設(shè)計(jì)方方案了嗎?采采用什么標(biāo)準(zhǔn)準(zhǔn)來選擇最后后方案呢?限制軟軟件限制是是否現(xiàn)實(shí)?與與要求相符合合嗎?某些具體的問問題該該軟件便于于人控制機(jī)器器嗎?便于測(cè)測(cè)試嗎?與其其他系統(tǒng)部分分相適應(yīng)嗎??有足夠的文文檔嗎?詳細(xì)設(shè)計(jì)正規(guī)的復(fù)審?fù)ǔJ菫榱嗽u(píng)評(píng)價(jià)軟件的結(jié)結(jié)構(gòu)和接口;;這種類型的復(fù)復(fù)審的特點(diǎn)在在于:設(shè)計(jì)人人員和復(fù)審人人員都要認(rèn)真真的準(zhǔn)備;有有相當(dāng)多的復(fù)復(fù)審者參加,,他們對(duì)該軟軟件研制項(xiàng)目目有不同程度度的興趣;管理方面和技技術(shù)方面站得得高,視野開開闊;提供正式的設(shè)設(shè)計(jì)文檔;由通知到開會(huì)會(huì)的時(shí)間間隔隔至少有兩個(gè)個(gè)星期。詳細(xì)設(shè)計(jì)非正規(guī)的復(fù)審審所謂非正規(guī)的的復(fù)審指的是是從臨時(shí)通知知的碰頭會(huì)到到有關(guān)同事參參加的比較有有組織的復(fù)審審這整個(gè)范圍圍而言的,一一般由通知到到開會(huì)的時(shí)間間間隔只有二二至三天。詳細(xì)設(shè)計(jì)設(shè)計(jì)的檢查檢查具有正規(guī)規(guī)的復(fù)審和非非正規(guī)的復(fù)審審兩方面的特特點(diǎn);從復(fù)審的形式式與內(nèi)容上看看,檢查方法法是相當(dāng)正規(guī)規(guī)的--有專專門的職責(zé)、、活動(dòng)安排、、交付的文檔檔、核對(duì)表以以及管理辦法法等等,一切切都是事先規(guī)規(guī)定好的;然而,涉及到到的人員以及及他們的相互互聯(lián)系則是比比較隨便的,,通常都以小小組進(jìn)行活動(dòng)動(dòng)。編碼碼程序設(shè)計(jì)語言言的性能和程程序的編碼風(fēng)風(fēng)格,在很大大程度上影響響著軟件的質(zhì)質(zhì)量和維護(hù)性性能。程序設(shè)計(jì)語言言性能的討論論程序設(shè)計(jì)語言言的分類與選選擇程序編碼風(fēng)格格編碼碼程序設(shè)計(jì)語言言性能的討論論軟件心理學(xué)觀觀點(diǎn)(1)一致性性:表示語言言使用符號(hào)的的兼容程度、、約束條件及及語法和語義義上的例外等等等。(2)歧義性性:歧義性導(dǎo)導(dǎo)致程序員對(duì)對(duì)程序理解的的混亂。(3)簡(jiǎn)潔性性:對(duì)用該語語言編程的程程序員必須記記憶的信息量量的衡量。(4)局部性性和線性:人人們的記憶和和辨別能力分分為聯(lián)想和順順序兩個(gè)方面面。聯(lián)想能使使我們整體地地記住和辨別別某件東西。。順序記憶能能從回憶序列列中找出一個(gè)個(gè)元素。局部部性是語言的的聯(lián)想性;線線性是語言的的順序性。編碼碼程序設(shè)計(jì)語言言性能的討論論工程觀點(diǎn)(1)使設(shè)計(jì)計(jì)易于代碼翻翻譯;(2)編譯程程序的功效;;(3)源代碼碼的可移植性性;(4)開發(fā)工工具的可利用用性;(5)源代碼碼的可維護(hù)性性。技術(shù)性能能觀點(diǎn)(1)復(fù)復(fù)雜數(shù)據(jù)據(jù)結(jié)構(gòu)((2)實(shí)實(shí)時(shí)系統(tǒng)統(tǒng)((3)特特殊應(yīng)用用領(lǐng)域編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按語言言抽象級(jí)級(jí)別分類類)低級(jí)語言言:機(jī)器器語言,,匯編語語言高級(jí)語言言:與機(jī)機(jī)器無關(guān)關(guān),實(shí)現(xiàn)現(xiàn)性語言言甚高級(jí)語語言:高高抽象級(jí)級(jí),有用用以描述述功能的的成分編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按應(yīng)用用領(lǐng)域分分類)通用語言言專用語言言編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按語言言成分性性質(zhì)分類類)順序語言言:只含含順序成成分并發(fā)語言言:含有有并發(fā)成成分分布式語語言:考考慮了分分布式計(jì)計(jì)算要求求網(wǎng)絡(luò)語言言:考慮慮了網(wǎng)絡(luò)絡(luò)計(jì)算要要求編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按作用用方式分分類)命令式語語言:不不論其描描述“做做什么””還是““怎樣做做”,相相應(yīng)描述述的組成成部分是是命令式式的,先先做什么么、后做做什么都都規(guī)定好好了明確確的次序序。作用式語語言:從從相應(yīng)的的描述中中不能明明顯看出出其組成成部分執(zhí)執(zhí)行的先先后次序序。編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按描述述級(jí)別分分類)功能性語語言設(shè)計(jì)性語語言實(shí)現(xiàn)性語語言編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按模擬擬客觀世世界的角角度分類類)對(duì)象式語語言(面面向?qū)ο笙笳Z言))非對(duì)象式式語言編碼碼程序設(shè)計(jì)計(jì)語言的的分類(按其它它方式分分類)函數(shù)式語語言邏輯式語語言編碼碼一般而言言,衡量量某種程程序語言言是否適適合于特特定的項(xiàng)項(xiàng)目,應(yīng)應(yīng)考慮下下面一些些因素::應(yīng)用領(lǐng)域域算法和計(jì)計(jì)算復(fù)雜雜性軟件運(yùn)行行環(huán)境用戶需求求中關(guān)于于性能方方面的需需要數(shù)據(jù)結(jié)構(gòu)構(gòu)的復(fù)雜雜性軟件開發(fā)發(fā)人員的的知識(shí)水水平可用的編編譯系統(tǒng)統(tǒng)編碼碼編碼風(fēng)格格在很大大程度上上影響著著程序的的易讀性性、易測(cè)測(cè)試性和和易維護(hù)護(hù)性,鑒鑒于軟件件的絕大大部分成成本消耗耗在測(cè)試試和維護(hù)護(hù)階段,,提倡好好的編碼碼風(fēng)格,,努力提提高易測(cè)測(cè)試性和和易維護(hù)護(hù)性極其其重要。。好的編碼碼風(fēng)格是是在不影影響性能能的前提提下,有有效地編編排和組組織程序序,以提提高易讀讀性和易易維護(hù)性性。編碼碼為了編制制出清晰晰、緊湊湊、高效效的程序序,一般般應(yīng)依次次考慮下下列原則則:(1)編編制易于于修改和和維護(hù)的的代碼(2)編編制易于于測(cè)試的的代碼(3)必必須將編編程和編編文檔的的工作統(tǒng)統(tǒng)一起來來(4)編編程中采采用統(tǒng)一一的標(biāo)準(zhǔn)準(zhǔn)和約定定,降低低程序復(fù)復(fù)雜性(5)限限定每一一層的副副作用,,減少耦耦合度(6)盡盡可能地地復(fù)用編碼碼編碼風(fēng)格格包括以以下三個(gè)個(gè)方面::代碼文件件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論