版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件設(shè)計基礎(chǔ)第1頁,課件共82頁,創(chuàng)作于2023年2月1提綱概述軟件設(shè)計的目標衡量設(shè)計的技術(shù)標準設(shè)計過程設(shè)計原則:(抽象、逐級求精、模塊化、信息隱藏、模塊獨立)軟件體系結(jié)構(gòu)設(shè)計部件級設(shè)計設(shè)計規(guī)約與評審第2頁,課件共82頁,創(chuàng)作于2023年2月2軟件設(shè)計概述軟件需求分析解決“做什么”的問題,軟件設(shè)計過程則解決“怎么做”的問題。軟件設(shè)計是把軟件需求變換成軟件表示的過程,主要包括兩個階段:概要設(shè)計(軟件體系結(jié)構(gòu)設(shè)計階段)和詳細設(shè)計(部件級設(shè)計階段)第3頁,課件共82頁,創(chuàng)作于2023年2月3還要加上接口設(shè)計、界面設(shè)計(人機接口設(shè)計)第4頁,課件共82頁,創(chuàng)作于2023年2月4需求規(guī)格說明書設(shè)計文檔編碼在搞清楚做什么、怎么做后才能進行!第5頁,課件共82頁,創(chuàng)作于2023年2月5軟件設(shè)計是后續(xù)開發(fā)步驟及軟件維護工作的基礎(chǔ)。如果沒有設(shè)計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構(gòu)。第6頁,課件共82頁,創(chuàng)作于2023年2月6軟件設(shè)計的任務(wù)使用一種設(shè)計方法,軟件分析模型中通過數(shù)據(jù)、功能和行為模型所展示的軟件需求的信息被傳送給設(shè)計階段,產(chǎn)生數(shù)據(jù)/類設(shè)計、體系結(jié)構(gòu)設(shè)計、接口設(shè)計、構(gòu)件級設(shè)計第7頁,課件共82頁,創(chuàng)作于2023年2月7還要加上接口設(shè)計、界面設(shè)計(人機接口設(shè)計)第8頁,課件共82頁,創(chuàng)作于2023年2月8分析模型設(shè)計模型基于類的元素
分析模型
用例文本用例圖活動圖泳道圖
數(shù)據(jù)流圖控制流圖處理說明
面向流的元素
行為元素基于場景的元素
類圖分析包數(shù)據(jù)字典協(xié)作圖
狀態(tài)圖序列圖數(shù)據(jù)/類設(shè)計
接口設(shè)計-
構(gòu)件級設(shè)計設(shè)計模型體系結(jié)構(gòu)設(shè)計設(shè)計的原料從哪里來?第9頁,課件共82頁,創(chuàng)作于2023年2月9數(shù)據(jù)/類設(shè)計:將分析-類模型變成類的實現(xiàn)和軟件實現(xiàn)所需要的數(shù)據(jù)結(jié)構(gòu)體系結(jié)構(gòu)設(shè)計:體系結(jié)構(gòu)設(shè)計定義了軟件的整體結(jié)構(gòu)接口設(shè)計:接口設(shè)計描述了軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件同人之間如何通信構(gòu)件級設(shè)計:構(gòu)件級設(shè)計將軟件體系結(jié)構(gòu)的結(jié)構(gòu)性元素變換為對軟件部件的過程性描述第10頁,課件共82頁,創(chuàng)作于2023年2月10(1)數(shù)據(jù)/類設(shè)計在類和由CRC中定義的數(shù)據(jù)對象和關(guān)系以及數(shù)據(jù)字典中描述的詳細數(shù)據(jù)內(nèi)容提供了數(shù)據(jù)設(shè)計活動的基礎(chǔ)數(shù)據(jù)設(shè)計的過程包括以下兩步:1)為在需求分析階段所確定的數(shù)據(jù)對象選擇邏輯表示,需要對不同結(jié)構(gòu)進行算法分析,以便選擇一個最有效的設(shè)計方案。2)確定對邏輯數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊,以便限制或確定各個數(shù)據(jù)設(shè)計決策的影響范圍。
有一句名言教材P63第11頁,課件共82頁,創(chuàng)作于2023年2月11(2)體系結(jié)構(gòu)設(shè)計體系結(jié)構(gòu)設(shè)計定義了軟件的整體結(jié)構(gòu),它由軟件構(gòu)件、外部可見的屬性和它們之間的關(guān)系組成。體系結(jié)構(gòu)設(shè)計表示可以從系統(tǒng)規(guī)約、分析模型和分析模型中定義的子系統(tǒng)的交互導(dǎo)出。第12頁,課件共82頁,創(chuàng)作于2023年2月12(3)接口設(shè)計接口設(shè)計主要包括三個方面:-設(shè)計軟件模塊間的接口-設(shè)計模塊和其他非人的信息生產(chǎn)者和消費者(比如外部實體)之間的接口-設(shè)計人(用戶)和計算機間的接口第13頁,課件共82頁,創(chuàng)作于2023年2月13(4)構(gòu)件級設(shè)計構(gòu)件級設(shè)計將軟件體系結(jié)構(gòu)的結(jié)構(gòu)性元素變換為對軟件構(gòu)件的過程性描述從類為基礎(chǔ)的模型、流模型、行為模型中得到的信息是構(gòu)件設(shè)計的基礎(chǔ)第14頁,課件共82頁,創(chuàng)作于2023年2月14軟件設(shè)計的目標在進行軟件設(shè)計的過程中,要密切關(guān)注軟件的質(zhì)量因素。軟件設(shè)計過程的目標是:1)設(shè)計必須實現(xiàn)分析模型中所描述的所有顯示需求,必須滿足用戶希望的所有隱式需求2)設(shè)計必須是可讀的、可理解的,使得將來易于編程、易于測試、易于維護。3)設(shè)計應(yīng)從實現(xiàn)角度出發(fā),給出與數(shù)據(jù)、功能、行為相關(guān)的軟件全貌。第15頁,課件共82頁,創(chuàng)作于2023年2月15衡量設(shè)計的技術(shù)標準1)設(shè)計出來的結(jié)構(gòu)應(yīng)該是分層結(jié)構(gòu),從而建立軟件之間的控制2)設(shè)計應(yīng)當模塊化,從邏輯上將軟件劃分為完成特定功能或子功能的部件3)設(shè)計應(yīng)當既包含數(shù)據(jù)抽象,也包含過程抽象。4)設(shè)計應(yīng)當建立具有獨立功能特征的模塊。5)設(shè)計應(yīng)當建立能夠降低模塊與外部環(huán)境之間復(fù)雜連接的接口。6)設(shè)計應(yīng)能根據(jù)軟件需求分析獲取的信息,建立可驅(qū)動、可重復(fù)的方法。第16頁,課件共82頁,創(chuàng)作于2023年2月16軟件設(shè)計的過程制定規(guī)范體系結(jié)構(gòu)和接口設(shè)計數(shù)據(jù)/類設(shè)計構(gòu)件級(過程)設(shè)計編寫設(shè)計文檔設(shè)計評審第17頁,課件共82頁,創(chuàng)作于2023年2月17軟件設(shè)計原則第18頁,課件共82頁,創(chuàng)作于2023年2月18抽象化與逐步求精抽象,是在軟件設(shè)計的規(guī)模逐漸增大的情況下,控制復(fù)雜性的基本策略抽象的過程是從特殊到一般的過程,上層概念是下層概念的抽象,下層概念是上層概念的精化和細化軟件工程過程的每一步都是對較高一級抽象的解作一次具體化的描述第19頁,課件共82頁,創(chuàng)作于2023年2月19軟件設(shè)計中主要抽象手段有:過程抽象和數(shù)據(jù)抽象過程抽象(也稱功能抽象)是指任何一個完成明確定義功能的操作都可以被使用者當作單個實體看待,盡管這個操作實際上是由一系列更低級的操作來完成的數(shù)據(jù)抽象是指定義數(shù)據(jù)類型和施加于該類型對象的操作,并限定了對象的取值范圍,只能通過這些操作修改和觀察使用數(shù)據(jù)程序設(shè)計語言的支持第20頁,課件共82頁,創(chuàng)作于2023年2月20逐步求精逐步求精,把問題的求解過程分解成若干步驟或階段,每步都比上步更精化,更接近問題的解法抽象使得設(shè)計者能夠描述過程和數(shù)據(jù)而忽略低層的細節(jié),而求精有助于設(shè)計者在設(shè)計過程中揭示低層的細節(jié)第21頁,課件共82頁,創(chuàng)作于2023年2月21模塊化模塊化,即把軟件按照規(guī)定原則,劃分為一個個較小的,相互獨立的但又相互關(guān)聯(lián)的部件,實際上是系統(tǒng)分解和抽象的過程模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,它是單獨命名的,并且可以通過名字來訪問-例如,過程。函數(shù)、子程序、宏等第22頁,課件共82頁,創(chuàng)作于2023年2月22設(shè)C(x)是描述問題x復(fù)雜性的函數(shù),E(x)是解決問題x所需工作量(按時間計算)的函數(shù)。對于兩個問題p1和p2,如果C(p1)>C(p2)……(7.1a)那么E(p1)>E(p2)……(7.1b)即問題越復(fù)雜,解決問題所需要的花費更多。第23頁,課件共82頁,創(chuàng)作于2023年2月23通過對人解決問題的實驗,又存在另一個有趣的規(guī)律:C(p1+p2)>C(p1)+C(p2)……(7.2)方程式(7.2)意味著p1和p2組合后的復(fù)雜性比單獨考慮每個問題的復(fù)雜性要大??紤]方程式(7.2)和方程式(7.1)隱含的條件,可以得出E(p1+p2)>E(p1)+E(p2)……(7.3)第24頁,課件共82頁,創(chuàng)作于2023年2月24不等式(7.3)表達出了對于模塊化和軟件具有十分重要意義的結(jié)論(即,模塊化的論據(jù)):將復(fù)雜問題分解成可以管理的片段會使問題更加容易?!叭绻覀儫o限制地劃分軟件,開發(fā)它所需的工作量會變得小到可以忽略嗎?”第25頁,課件共82頁,創(chuàng)作于2023年2月25實際情況是,影響軟件開發(fā)的工作量的因素還有很多,例如模塊接口費用等等上述不等式只能說明,當模塊的總數(shù)增加時,單獨開發(fā)各個子模塊的工作量之和會有所減少如果模塊是相互獨立的,當模塊變得越小,每個模塊花費的工作量越低;但當模塊數(shù)增加時,模塊間的聯(lián)系也隨之增加,把這些模塊聯(lián)接起來的工作量也隨之增加第26頁,課件共82頁,創(chuàng)作于2023年2月26第27頁,課件共82頁,創(chuàng)作于2023年2月27信息隱藏每個模塊的實現(xiàn)細節(jié)對于其它模塊來說應(yīng)該是隱蔽的塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用通過信息隱藏,則可定義和實施對模塊的過程細節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制第28頁,課件共82頁,創(chuàng)作于2023年2月28模塊獨立模塊獨立:模塊完成獨立的功能并且與其它模塊的接口簡單,符合信息隱藏和信息局部化原則,模塊間關(guān)聯(lián)和依賴程度盡可能小模塊獨立的重要性-功能被劃分,并且接口被簡化,所以具有有效模塊化的軟件更易于開發(fā)-由于因設(shè)計和編碼修改引起的副作用受到局限,錯誤傳播被減小,并且模塊復(fù)用成為可能,所以獨立的模塊更易于維護和測試第29頁,課件共82頁,創(chuàng)作于2023年2月29模塊的獨立性可以由兩項指標來衡量:內(nèi)聚度與耦合度內(nèi)聚(cohesion)是一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量耦合(coupling)是模塊之間的相對獨立性(互相連接的緊密程度)的度量第30頁,課件共82頁,創(chuàng)作于2023年2月30內(nèi)聚一般模塊的內(nèi)聚性分為七種類型第31頁,課件共82頁,創(chuàng)作于2023年2月311)巧合內(nèi)聚(偶然內(nèi)聚):將幾個模塊中沒有明確表現(xiàn)出獨立功能的相同程序代碼段獨立出來建立的模塊稱為巧合內(nèi)聚模塊。2)邏輯內(nèi)聚:指完成一組邏輯相關(guān)任務(wù)的模塊,調(diào)用該模塊時,由傳送給模塊的控制參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。3)時間內(nèi)聚:指一個模塊中的所有任務(wù)必須在同一時間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊?!痰?2頁,課件共82頁,創(chuàng)作于2023年2月324)過程內(nèi)聚:指一個模塊完成多個任務(wù),這些任務(wù)必須按指定的過程(procedural)執(zhí)行。5)通信內(nèi)聚:指一個模塊內(nèi)所有處理元素都集中在某個數(shù)據(jù)結(jié)構(gòu)的一塊區(qū)域中。6)順序內(nèi)聚:指一個模塊完成多個功能,這些功能又必須順序執(zhí)行。一個成分的輸出是下一個成分的輸入。7)功能內(nèi)聚:指一個模塊中各個部分都是為完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割?!痰?3頁,課件共82頁,創(chuàng)作于2023年2月33巧合內(nèi)聚第34頁,課件共82頁,創(chuàng)作于2023年2月34邏輯內(nèi)聚第35頁,課件共82頁,創(chuàng)作于2023年2月35通信內(nèi)聚第36頁,課件共82頁,創(chuàng)作于2023年2月36功能內(nèi)聚第37頁,課件共82頁,創(chuàng)作于2023年2月37第38頁,課件共82頁,創(chuàng)作于2023年2月38耦合一般模塊之間可能的耦合方式有七種類型第39頁,課件共82頁,創(chuàng)作于2023年2月391)內(nèi)容耦合:如果一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);或者一個模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;或者兩個模塊有一部分程序代碼重迭;或者一個模塊有多個入口,則兩個模塊之間就發(fā)生了內(nèi)容耦合。2)公共耦合:若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。3)外部耦合:指模塊間通過軟件之外的環(huán)境聯(lián)結(jié)(如I/O將模塊耦合到特定的設(shè)備、格式、通信協(xié)議上)時,稱為外部耦合。第40頁,課件共82頁,創(chuàng)作于2023年2月404)控制耦合:如果一個模塊傳送給另一個模塊的參數(shù)中包含了控制信息,該控制信息用于控制接收模塊中的執(zhí)行邏輯,則稱為控制耦合。5)標記耦合:兩個模塊之間通過參數(shù)表傳遞一個數(shù)據(jù)結(jié)構(gòu)的一部分(如某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)),就是標記耦合。6)數(shù)據(jù)耦合:兩個模塊之間僅通過參數(shù)表傳遞簡單數(shù)據(jù),則稱為數(shù)據(jù)耦合。7)非直接耦合:如果兩個模塊之間沒有直接關(guān)系,即它們中的任何一個都不依賴于另一個而能獨立工作,這種耦合稱為非直接耦合。第41頁,課件共82頁,創(chuàng)作于2023年2月41內(nèi)容耦合第42頁,課件共82頁,創(chuàng)作于2023年2月42公共耦合第43頁,課件共82頁,創(chuàng)作于2023年2月43控制耦合第44頁,課件共82頁,創(chuàng)作于2023年2月44非直接耦合第45頁,課件共82頁,創(chuàng)作于2023年2月45模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其模塊獨立性就越弱一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高模塊獨立性比較強的模塊應(yīng)是高內(nèi)聚低耦合的模塊第46頁,課件共82頁,創(chuàng)作于2023年2月46軟件體系結(jié)構(gòu)設(shè)計軟件體系結(jié)構(gòu)設(shè)計概述體系結(jié)構(gòu)發(fā)展過程軟件體系結(jié)構(gòu)風(fēng)格(實例)體系結(jié)構(gòu)評估、分析方法第47頁,課件共82頁,創(chuàng)作于2023年2月47軟件體系結(jié)構(gòu)設(shè)計軟件體系結(jié)構(gòu)關(guān)注系統(tǒng)的一個或多個結(jié)構(gòu),包含軟件構(gòu)件、這些構(gòu)件的對外可見的性質(zhì)以及它們之間的關(guān)系Bass提出體系結(jié)構(gòu)重要的三個關(guān)鍵理由:
–①方便利益相關(guān)人員的交流
–②有利于系統(tǒng)設(shè)計的前期決策
–③可傳遞的系統(tǒng)級抽象第48頁,課件共82頁,創(chuàng)作于2023年2月48體系結(jié)構(gòu)發(fā)展過程常見的軟件體系結(jié)構(gòu)
–單主機結(jié)構(gòu)
–C/S(Client/Server)結(jié)構(gòu)
–B/S(Browser/Server)結(jié)構(gòu)第49頁,課件共82頁,創(chuàng)作于2023年2月49軟件體系結(jié)構(gòu)的風(fēng)格絕大多數(shù)可以被歸類為相對小數(shù)量的體系結(jié)構(gòu)風(fēng)格之一每種風(fēng)格描述一種系統(tǒng)范疇,范疇包括:
–①一些實現(xiàn)系統(tǒng)所需的功能的部件(如數(shù)據(jù)庫、計算模塊);
–②一組用來連接部件“通信、協(xié)調(diào)和合作”的“連接子”;
–③定義部件之間怎樣整合的系統(tǒng)約束;
–④使設(shè)計者能夠理解整個系統(tǒng)屬性并分析已知屬性的語義模型。第50頁,課件共82頁,創(chuàng)作于2023年2月50數(shù)據(jù)為中心體系結(jié)構(gòu)一些數(shù)據(jù)(比如一個文件或者數(shù)據(jù)庫)保存在整個結(jié)構(gòu)的中心,并且被其他部件頻繁地使用、添加、刪除、或者修改第51頁,課件共82頁,創(chuàng)作于2023年2月51數(shù)據(jù)流風(fēng)格的體系結(jié)構(gòu)這種結(jié)構(gòu)適用于輸入數(shù)據(jù)被一系列的計算或者處理部件變換成輸出數(shù)據(jù)。第52頁,課件共82頁,創(chuàng)作于2023年2月52調(diào)用和返回風(fēng)格的體系結(jié)構(gòu)
教材P73這種風(fēng)格使一個軟件設(shè)計者設(shè)計出非常容易修改和擴充的體系結(jié)構(gòu)。包含:主程序/子程序風(fēng)格體系結(jié)構(gòu)和遠程過程調(diào)用風(fēng)格的體系結(jié)構(gòu)第53頁,課件共82頁,創(chuàng)作于2023年2月53在這里要了解幾個概念:–程序結(jié)構(gòu)的深度:程序結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)的深度。結(jié)構(gòu)的深度在一定意義上反映了程序結(jié)構(gòu)的規(guī)模和復(fù)雜程度。–程序結(jié)構(gòu)的寬度:層次結(jié)構(gòu)中同一層模塊的最大模塊個數(shù)稱為結(jié)構(gòu)的寬度。–模塊的扇入和扇出:扇出表示一個模塊直接調(diào)用(或控制)的其它模塊數(shù)目。扇入則定義為調(diào)用(或控制)一個給定模塊的模塊個數(shù)。多扇出意味著需要控制和協(xié)調(diào)許多下屬模塊。而多扇入的模塊通常是公用模塊。第54頁,課件共82頁,創(chuàng)作于2023年2月54面向?qū)ο箫L(fēng)格的體系結(jié)構(gòu)系統(tǒng)部件封裝數(shù)據(jù)和操作數(shù)據(jù)的方法。部件之間的交互和協(xié)調(diào)通過消息來傳遞。第55頁,課件共82頁,創(chuàng)作于2023年2月55層次式風(fēng)格的體系結(jié)構(gòu)在這種結(jié)構(gòu)中,定義不同的層次,每層都完成了相對外層更靠近機器指令的操作第56頁,課件共82頁,創(chuàng)作于2023年2月56評估可選的體系結(jié)構(gòu)對于同一個軟件需求,由于各種設(shè)計方法的原理不同,會導(dǎo)出不同的軟件結(jié)構(gòu)。同一問題的不同軟件結(jié)構(gòu):第57頁,課件共82頁,創(chuàng)作于2023年2月57體系結(jié)構(gòu)選擇分析方法1)定義應(yīng)用場景(scenarios):通過usecase圖來從用戶的角度表現(xiàn)系統(tǒng)2)得出需求、約束和環(huán)境描述:這是需求工程的一部分,以確定所有客戶方關(guān)心的問題都被一一列出3)描述能處理上述情境和需求的體系結(jié)構(gòu)風(fēng)格4)單獨地評價系統(tǒng)的各項性能。針對體系結(jié)構(gòu)設(shè)計的性能包括:可靠性,性能,安全性,可維護性,靈活性,可測試性,可移植性,可用性和互操作性等。第58頁,課件共82頁,創(chuàng)作于2023年2月585)針對不同的架構(gòu)形式,評價第4步提到的這些性能的敏感程度。可以通過這樣的方法來評價:在整個架構(gòu)中做一些小的變更,分析并確定上述性能有沒有很敏感的變化。那些在體系結(jié)構(gòu)改動中受到較大影響的性能被稱為敏感點(sensitivepoint)。6)通過第5步的敏感點分析來評價第3步中提出的那些體系結(jié)構(gòu)。方法如下:當一個架構(gòu)的敏感點被確定,就需要權(quán)衡利弊的因素(trade-offpoint)。權(quán)衡因素是指改變架構(gòu)中的這項內(nèi)容,系統(tǒng)的很多性能就會發(fā)生敏感的變化。比如說,一個client-server結(jié)構(gòu)的系統(tǒng)的表現(xiàn)性能和系統(tǒng)中server的數(shù)量是息息相關(guān)的(增加server的數(shù)量,一定程度上系統(tǒng)的表現(xiàn)性能就會提高)……這樣的話,server的數(shù)量就是這個架構(gòu)中的平衡點。第59頁,課件共82頁,創(chuàng)作于2023年2月59在進行軟件體系結(jié)構(gòu)設(shè)計時,可以參考如下規(guī)則:(1)改進軟件結(jié)構(gòu)提高模塊獨立性(2)模塊適當?shù)纳疃?、寬度、扇出和扇入?)模塊判斷作用范圍應(yīng)在其控制作用范圍內(nèi)(4)力爭降低模塊接口的復(fù)雜度(5)設(shè)計單入口單出口的模塊(6)模塊功能應(yīng)該是可以預(yù)測的,模塊大小適中(7)一般一個模塊包含的語句在30-50條左右比較好(模塊在500行代碼以內(nèi))(8)一個設(shè)計好的軟件結(jié)構(gòu),通常頂層扇出比較高,中間層扇出比較少,低層有高扇入。第60頁,課件共82頁,創(chuàng)作于2023年2月60構(gòu)件級設(shè)計技術(shù)第61頁,課件共82頁,創(chuàng)作于2023年2月61構(gòu)件級設(shè)計技術(shù)在構(gòu)件級設(shè)計階段,主要完成如下工作:(1)為每個構(gòu)件確定采用的算法,選擇某種適當?shù)墓ぞ弑磉_算法的過程,編寫構(gòu)件的詳細過程性描述(2)確定每一構(gòu)件內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu)(3)在構(gòu)件級設(shè)計結(jié)束時,應(yīng)該把上述結(jié)果寫入構(gòu)件級設(shè)計說明書,并且通過復(fù)審形成正式文檔,作為一下階段(編碼階段)的工作依據(jù)。第62頁,課件共82頁,創(chuàng)作于2023年2月62結(jié)構(gòu)化程序設(shè)計方法“如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種基本控制結(jié)構(gòu)進行連結(jié),并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的”。隨著面向?qū)ο蠛蛙浖?fù)用等新的軟件開發(fā)方法和技術(shù)的發(fā)展,更現(xiàn)實、更有效的開發(fā)途徑可能是自頂向下和自底向上兩種方法有機的結(jié)合。第63頁,課件共82頁,創(chuàng)作于2023年2月63圖形表示法程序流程圖
N-S圖
PAD(請同學(xué)們自學(xué))第64頁,課件共82頁,創(chuàng)作于2023年2月64程序流程圖程序流程圖獨立于任何一種程序設(shè)計語言,比較直觀、清晰、易于學(xué)習(xí)掌握為使用流程圖描述結(jié)構(gòu)化程序,必須限制流程圖只能使用五種基本控制結(jié)構(gòu)第65頁,課件共82頁,創(chuàng)作于2023年2月65第66頁,課件共82頁,創(chuàng)作于2023年2月66控制結(jié)構(gòu)相互組合和嵌套的實例第67頁,課件共82頁,創(chuàng)作于2023年2月67N-S圖Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具,叫做盒圖,也叫做N-S圖五種基本控制結(jié)構(gòu)第68頁,課件共82頁,創(chuàng)作于2023年2月68控制結(jié)構(gòu)相互組合和嵌套的實例第69頁,課件共82頁,創(chuàng)作于2023年2月69判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、N-S圖或PAD都不易清楚地描述。然而,判定表卻能清晰地表達復(fù)雜的條件組合與應(yīng)做動作之間的對應(yīng)關(guān)系第70頁,課件共82頁,創(chuàng)作于2023年2月70不包含多分支結(jié)構(gòu)的流程圖實例第71頁,課件共82頁,創(chuàng)作于2023年2月71反映程序邏輯的判定表第72頁,課件共82頁,創(chuàng)作于2023年2月72判定表的優(yōu)點是能夠簡潔,無二義性地描述所有的處理規(guī)則。但判定表表示的是靜態(tài)邏輯,是在某種條件取值組合情況下可能的結(jié)果,它不能表達加工的順序,也不能表達循環(huán)結(jié)構(gòu)第73頁,課件共82頁,創(chuàng)作于2023年2月73設(shè)計規(guī)約與設(shè)計評審第74頁,課件共82頁,創(chuàng)作于2023年2月74設(shè)計規(guī)約I.工作范圍A.系統(tǒng)目標B.運行環(huán)境C.主要軟件需求D.設(shè)計約束/限制II.體系結(jié)構(gòu)設(shè)計A.數(shù)據(jù)流與控制流復(fù)審B.導(dǎo)出的程序結(jié)構(gòu)C.功能與程序交叉索引III.數(shù)據(jù)設(shè)計A.數(shù)據(jù)對象與形成的數(shù)據(jù)結(jié)構(gòu)B.文件和數(shù)據(jù)庫(文件的邏輯結(jié)構(gòu),文件邏輯記錄描述,訪問方式)C.全局數(shù)據(jù)D.文件/數(shù)據(jù)與程序交叉索引IV.接口設(shè)計A.人機界面規(guī)格說明B.人機界面設(shè)計規(guī)則C.外部接口設(shè)計i.外部數(shù)據(jù)接口ii.外部系統(tǒng)或設(shè)備接口D.內(nèi)部接口設(shè)計規(guī)則第75頁,課件共82頁,創(chuàng)作于2023年2月75V.各部件的過程設(shè)計A.處理與算法描述B.接口描述C.設(shè)計語言(或其他描述)D.使用的部
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部門工作計劃表模板(共5篇)
- 2023年-2024年企業(yè)主要負責(zé)人安全培訓(xùn)考試題附參考答案【鞏固】
- 高壓線區(qū)域樁機施工安全專項措施
- 施工現(xiàn)場安全用電管理措施
- 門窗工程施工管理流程
- 裝飾裝修工程施工組織計劃
- 飯店轉(zhuǎn)讓合同協(xié)議書范本
- 網(wǎng)上期貨交易合同書
- 房建工程合同范本
- 電商代運營合作協(xié)議范本
- 整本書閱讀《鄉(xiāng)土中國》課件+2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 夏天奔跑的聲音(2022年浙江杭州中考語文試卷記敘文閱讀題及答案)
- 人力資源許可證制度(服務(wù)流程、服務(wù)協(xié)議、收費標準、信息發(fā)布審查和投訴處理)
- 延期留用崗位協(xié)議書模板
- 借條的正規(guī)模板(2024版)
- 人教PEP版小學(xué)英語六年級上冊Unit1-6單元單元檢測試卷(含聽力材料)
- 銷售合同編號規(guī)則(2024版)
- 2024至2030年中國生活權(quán)益卡券行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- 大學(xué)美育-美育賞湖南智慧樹知到期末考試答案章節(jié)答案2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院
- 數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
- 2024-2025學(xué)年度第一學(xué)期小學(xué)一年級語文教學(xué)計劃及進度表
評論
0/150
提交評論