第7講軟件相關(guān)設(shè)計(jì)方法_第1頁(yè)
第7講軟件相關(guān)設(shè)計(jì)方法_第2頁(yè)
第7講軟件相關(guān)設(shè)計(jì)方法_第3頁(yè)
第7講軟件相關(guān)設(shè)計(jì)方法_第4頁(yè)
第7講軟件相關(guān)設(shè)計(jì)方法_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西。良好的體系結(jié)構(gòu)必須是普適、高效和穩(wěn)定的。[BAS98]:軟件的體系結(jié)構(gòu)是系統(tǒng)的一個(gè)或多個(gè)結(jié)構(gòu),包含軟件構(gòu)件、構(gòu)件對(duì)外可見(jiàn)的性質(zhì)以及它們之間的關(guān)系。體系結(jié)構(gòu)是一種表示。體系結(jié)構(gòu)設(shè)計(jì)關(guān)注構(gòu)件結(jié)構(gòu)、構(gòu)件的性質(zhì)和交互的關(guān)系。第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格style體系結(jié)構(gòu)風(fēng)格包含:一組構(gòu)件(components)(如,數(shù)據(jù)庫(kù)、計(jì)算模塊)完成系統(tǒng)所需的某種功能;一組連接子(connectors),能使構(gòu)件間通信協(xié)調(diào)和合作;約束(constraints),定義構(gòu)件如何被集成,形成系統(tǒng);語(yǔ)義模型(semanticmodel),使得設(shè)計(jì)者通過(guò)分析構(gòu)件的已知性質(zhì)而理解系統(tǒng)的整體性質(zhì)。第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格分類(lèi)數(shù)據(jù)為中心的體系結(jié)構(gòu)目標(biāo):實(shí)現(xiàn)數(shù)據(jù)的可集成性共享數(shù)據(jù)可以是數(shù)據(jù)倉(cāng)庫(kù)或是黑板??蛻?hù)端客戶(hù)端客戶(hù)端客戶(hù)端客戶(hù)端客戶(hù)端共享數(shù)據(jù)第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格分類(lèi)調(diào)用-返回體系結(jié)構(gòu)目標(biāo):系統(tǒng)的可更改性和可擴(kuò)展性主程序-子程序體系結(jié)構(gòu)將一個(gè)程序分層子部分每個(gè)子節(jié)點(diǎn)都只由父節(jié)點(diǎn)控制如遠(yuǎn)程過(guò)程調(diào)用系統(tǒng)面向?qū)ο蠡虺橄髷?shù)據(jù)類(lèi)型系統(tǒng)強(qiáng)調(diào)對(duì)數(shù)據(jù)的綁定和對(duì)數(shù)據(jù)操縱及訪問(wèn)方式的掌握實(shí)現(xiàn)可更改性層次式可更改可移植SystemSoftwareMiddlewareBusiness-specificComponentsApplicationSystems第7講軟件相關(guān)設(shè)計(jì)方法WebsitesofInterestCMUComposableSystemsGroupCMUArchitectureBasedLanguagesandEnvironmentsResearchGroupTheAcmeADLWorldwideInstituteofSoftwareArchitects第7講軟件相關(guān)設(shè)計(jì)方法WebSitesofInterestTheWRIGHTLanguageMeta-HForReal-TimeSoftwareAnalysisRapideADLC2ProjectatUCIrvine第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)結(jié)構(gòu)化開(kāi)發(fā)方法(StructuredDevelopingMethod)

是現(xiàn)有的軟件開(kāi)發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速、自然和方便。結(jié)構(gòu)化開(kāi)發(fā)方法由結(jié)構(gòu)化分析方法(SA法)、結(jié)構(gòu)化設(shè)計(jì)方法(SD法)及結(jié)構(gòu)化程序設(shè)計(jì)方法(SP法)構(gòu)成的。

結(jié)構(gòu)化設(shè)計(jì)方法(SD法StructuredDesign)是結(jié)構(gòu)化開(kāi)發(fā)方法的核心,與SA法,SD法密切聯(lián)系,主要完成軟件系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)。面向數(shù)據(jù)流的設(shè)計(jì)方法又稱(chēng)結(jié)構(gòu)化設(shè)計(jì)。

第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)基本思想:將系統(tǒng)設(shè)計(jì)成由相對(duì)獨(dú)立、單一功能的模塊組成的結(jié)構(gòu)。采用方法:

DFDSystemHierarchy步驟:確定數(shù)據(jù)流類(lèi)型;指明數(shù)據(jù)流的邊界;將DFD映射為程序結(jié)構(gòu);根據(jù)元素的分解,定義控制的層次;使用設(shè)計(jì)測(cè)量和啟發(fā)信息,對(duì)結(jié)構(gòu)進(jìn)行細(xì)化和求精;精化體系結(jié)構(gòu)的描述。第7講軟件相關(guān)設(shè)計(jì)方法結(jié)構(gòu)圖(Structurechart)ABa.基本形式ACBDb.順序ABCc.選擇ABd.重復(fù)第7講軟件相關(guān)設(shè)計(jì)方法1、DataFlow

的分類(lèi)⑴變換流(TransformFlow):InternalrepresentationInformationTransformflowOutgoingflowIncomingflowExternalrepresentationTime事實(shí)上所有信息流都可歸結(jié)為變換流面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法變換流輸入變換輸出第7講軟件相關(guān)設(shè)計(jì)方法⑵事務(wù)流(TransactionFlow)……TTransactionrequest…Actionpaths……T=Calloneoftheseveralsubroutinesdependingonthetypeoftheincomingtransactionrequest.當(dāng)信息流具有明顯的“發(fā)射中心”時(shí),可歸結(jié)為事務(wù)流。面向數(shù)據(jù)流的設(shè)計(jì)事務(wù)中心第7講軟件相關(guān)設(shè)計(jì)方法變換流設(shè)計(jì)變換流設(shè)計(jì)是從變換流的DFD到程序結(jié)構(gòu)圖的轉(zhuǎn)化。設(shè)計(jì)步驟:找出變換中心及邏輯輸入/出;變換中心-描述了系統(tǒng)的主要功能、特征,其特點(diǎn)是:輸入/出數(shù)據(jù)流較多,變換中心可以不至一個(gè)。邏輯輸入/出-是指輸入/出變換中心的數(shù)據(jù)流。輸入流-是將物理輸入轉(zhuǎn)換為邏輯輸入的數(shù)據(jù)流。輸出流-是將邏輯輸出轉(zhuǎn)換為物理輸出的數(shù)據(jù)流。設(shè)計(jì)軟件結(jié)構(gòu)的頂層;為每個(gè)輸入設(shè)計(jì)一個(gè)輸入模塊,為每個(gè)輸出設(shè)計(jì)一個(gè)輸出模塊,同時(shí)為變換中心設(shè)計(jì)一個(gè)處理模塊。自頂向下,逐步細(xì)化,設(shè)計(jì)中下層模塊。即上層各個(gè)模塊的從屬模塊,順序一般是從設(shè)計(jì)輸入模塊的下層開(kāi)始。第7講軟件相關(guān)設(shè)計(jì)方法變換流設(shè)計(jì)321456輸入變換中心輸出ABCDEFGHSystem3GetCGetBGetAMakeAintoBMakeBintoCMakeCintoDandEPutEPutDMakeEintoGPutGMakeDintoFPutFMakeGintoHPutHCCDEEDBBCAABEGGGHHDFF須檢查;每個(gè)傳遞的數(shù)據(jù)是否必須?完成模塊功能所必須的數(shù)據(jù)是否都傳遞了?傳輸?shù)臄?shù)據(jù)是否只與單一的功能有關(guān)?是否目的明確?第7講軟件相關(guān)設(shè)計(jì)方法變換流設(shè)計(jì)12.1X32.2Z2.3YABCDMNPSystem2MakeBintoCGetBPutCXYZBBCCBNNPMPCM第7講軟件相關(guān)設(shè)計(jì)方法變換流分析例:汽車(chē)數(shù)字儀表板的設(shè)計(jì)功能:①通過(guò)模-數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;②在發(fā)光二極管面板上顯示數(shù)據(jù);③指示每小時(shí)英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;④指示加速或減速;⑤如果車(chē)速超過(guò)55mph,則發(fā)出警告鈴聲。面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法第一步:DFD的分界,先分出I、P、O三塊燃料流傳感器信號(hào)SPS旋轉(zhuǎn)信號(hào)讀旋轉(zhuǎn)信號(hào)收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計(jì)算里程計(jì)算mph,超速值產(chǎn)生加/減速顯示計(jì)算燃料消耗計(jì)算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示SPSSPS箭頭指示燃燒流上箭頭水平線(xiàn)下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法一般問(wèn)題的一級(jí)分解方法:數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動(dòng)儀表板接收傳感器信號(hào)MPIO面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法第二步:映射ADCBMICBDA:每個(gè)處理直接對(duì)應(yīng)一個(gè)下層模塊。P:由邊界向回溯,將每個(gè)遇到的處理器映成相應(yīng)的層模塊。I:由邊界向外推,方法與類(lèi)似OI面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法例:數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動(dòng)儀表板接收傳感器信號(hào)計(jì)算gph讀燃料流轉(zhuǎn)換成rpm收集sps讀旋轉(zhuǎn)信號(hào)確定加/減速計(jì)算mph計(jì)算mpg計(jì)算里程加/減速顯示顯示mpg顯示mph顯示里程發(fā)出鈴聲發(fā)光二極管顯示面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法第三步:修改——本著高內(nèi)聚、低耦合的原則。例:精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)。注:每個(gè)模塊應(yīng)附一簡(jiǎn)要說(shuō)明描述①進(jìn)出該模塊的信息(接口描述);②模塊內(nèi)部的信息;③過(guò)程陳述,包括主要判定點(diǎn)及任務(wù)等;④對(duì)約束和特殊特點(diǎn)的簡(jiǎn)短討論。面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法事務(wù)流設(shè)計(jì)事務(wù)流設(shè)計(jì)是從事務(wù)流的DFD到程序結(jié)構(gòu)的轉(zhuǎn)換。設(shè)計(jì)步驟:確定流界:先從DFD中找出事務(wù)流、事務(wù)處理中心和事務(wù)路徑。事務(wù)中心前是接收事務(wù)、事務(wù)中心后是事務(wù)路徑。進(jìn)行一級(jí)分析,設(shè)計(jì)頂層模塊。進(jìn)行一級(jí)分析,設(shè)計(jì)上層模塊:從DFD中導(dǎo)出具有接收和發(fā)送分支的軟件結(jié)構(gòu)。對(duì)事務(wù)中心設(shè)計(jì)為“事務(wù)控制”、對(duì)事務(wù)流為“接收事務(wù)”、對(duì)事務(wù)路徑為“發(fā)送事務(wù)”。細(xì)化該事務(wù)結(jié)構(gòu)和每條動(dòng)作路徑的結(jié)構(gòu)。對(duì)于接收分支,采用變換流設(shè)計(jì)方法設(shè)計(jì)中下層;對(duì)于發(fā)送分支,在發(fā)送模塊下設(shè)計(jì)每條事務(wù)路徑的結(jié)構(gòu)。第7講軟件相關(guān)設(shè)計(jì)方法MIIISABC………IIISBAC………事務(wù)流設(shè)計(jì)事務(wù)流事務(wù)中心事務(wù)處理第7講軟件相關(guān)設(shè)計(jì)方法混合流設(shè)計(jì)一般采用以變換流為主,事務(wù)流為輔的方法?;静襟E:利用變換設(shè)計(jì),將DFD劃分為輸入、變換和輸出三大部分;設(shè)計(jì)軟件結(jié)構(gòu)的上層模塊,即主模塊,及其下層輸入模塊、變換模塊和輸出模塊;根據(jù)輸入、變換和輸出DFD的不同特征設(shè)計(jì)它們的下層模塊。第7講軟件相關(guān)設(shè)計(jì)方法混合流設(shè)計(jì)AABBDDEEFFGGJJKKLLT1T2T3ABB1B2B3C1C2C3DEFGHJKLMSystemMakeDintoKGetDPutKDDKK第7講軟件相關(guān)設(shè)計(jì)方法SystemMakeDintoKGetDPutKDDKKKKPutLLLPutMDDGetCEEFFGGJJGetBEditBBGetAAAT1T2T3Operate1OperatenDetail1Detailm……第7講軟件相關(guān)設(shè)計(jì)方法“變換”“事物”精化數(shù)據(jù)流圖流類(lèi)型區(qū)分事務(wù)中心和數(shù)據(jù)接收通路區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計(jì)變換分析事務(wù)分析優(yōu)化的前題是:“Getittowork,thenmakeitfast.”面向數(shù)據(jù)流的設(shè)計(jì)過(guò)程第7講軟件相關(guān)設(shè)計(jì)方法精化體系結(jié)構(gòu)設(shè)計(jì)為每個(gè)模塊開(kāi)發(fā)處理說(shuō)明;為每個(gè)模塊提供接口描述;定義局部和全局?jǐn)?shù)據(jù)結(jié)構(gòu);給出所有的設(shè)計(jì)限制或約束;進(jìn)行設(shè)計(jì)評(píng)審;如需要,進(jìn)行結(jié)構(gòu)設(shè)計(jì)優(yōu)化。第7講軟件相關(guān)設(shè)計(jì)方法SD方法的優(yōu)點(diǎn)SD方法是從以下5個(gè)方面來(lái)獲得質(zhì)量較好的軟件結(jié)構(gòu):根據(jù)描述用戶(hù)需求的數(shù)據(jù)流圖導(dǎo)出了實(shí)現(xiàn)用戶(hù)需求的結(jié)構(gòu)圖。為了控制大型軟件系統(tǒng)復(fù)雜性,運(yùn)用了下面兩個(gè)手段:將系統(tǒng)分解成許多個(gè)黑盒。將黑盒組織成適合于用計(jì)算機(jī)實(shí)現(xiàn)的一個(gè)層次結(jié)構(gòu)。用內(nèi)聚和耦合作為評(píng)價(jià)軟件結(jié)構(gòu)質(zhì)量的標(biāo)準(zhǔn)。給出一組設(shè)計(jì)技巧,如扇入和扇出、模塊大小的掌握,作用范圍和控制范圍等。用結(jié)構(gòu)圖直觀地描述軟件結(jié)構(gòu),因此易于理解,并直接可以用于評(píng)價(jià)、分析和復(fù)查等。第7講軟件相關(guān)設(shè)計(jì)方法SD方法的缺點(diǎn)SD方法的不足:軟件系統(tǒng)的概要設(shè)計(jì)應(yīng)該包括兩個(gè)方面:數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和程序結(jié)構(gòu)的設(shè)計(jì),兩者是密切相關(guān)的,但遺憾的是SD方法只考慮后者而不考慮前者,因此在使用SD方法時(shí),一般還需參考一些有關(guān)數(shù)據(jù)庫(kù)、文件結(jié)構(gòu)的設(shè)計(jì)方法?!案邇?nèi)聚、低耦合”的原則雖已被廣為接受,但這兩個(gè)概念尚無(wú)嚴(yán)格的定義,更無(wú)健全的理論基礎(chǔ),只能用些例子來(lái)解釋其含義,因而對(duì)實(shí)際系統(tǒng)的軟件結(jié)構(gòu)還難以作客觀的質(zhì)量評(píng)價(jià),這是SD方法的一個(gè)缺陷。第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)結(jié)構(gòu)化開(kāi)發(fā)方法是一種面向數(shù)據(jù)流、數(shù)據(jù)封閉性的開(kāi)發(fā)方法,來(lái)源于程序的模塊化和功能分解。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)是將問(wèn)題的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為程序結(jié)構(gòu),著重于問(wèn)題的數(shù)據(jù)結(jié)構(gòu),不強(qiáng)調(diào)模塊定義。Jackson系統(tǒng)開(kāi)發(fā)方法是JSP的擴(kuò)展,是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,其基本思想是先建立輸入輸出的數(shù)據(jù)結(jié)構(gòu),再將其轉(zhuǎn)換為軟件結(jié)構(gòu)。這種方法適用于數(shù)據(jù)處理類(lèi)問(wèn)題,特別是企業(yè)管理類(lèi)的軟件系統(tǒng)。第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)程序邏輯構(gòu)造(logicalconstructionofprograms,LCP)由Warnier開(kāi)發(fā),是建立在數(shù)據(jù)結(jié)構(gòu)和過(guò)程結(jié)構(gòu)之間關(guān)系上的方法,將I/O數(shù)據(jù)結(jié)構(gòu)映射為軟件詳細(xì)過(guò)程表達(dá)。Wariner-Orr方法是LCP的擴(kuò)展,除了設(shè)計(jì)能力之外,還增加了分析能力。第7講軟件相關(guān)設(shè)計(jì)方法JacksonSystemDevelopment(JSD)與SD的由DFD導(dǎo)出結(jié)構(gòu)設(shè)計(jì)不同,JSD是以數(shù)據(jù)結(jié)構(gòu)(datastructure)為基礎(chǔ)設(shè)計(jì)每個(gè)模塊的處理過(guò)程。分析的重點(diǎn)是構(gòu)造于系統(tǒng)相關(guān)的現(xiàn)實(shí)世界,并建立現(xiàn)實(shí)世界的信息域模型,目標(biāo)是生成軟件的過(guò)程性描述。JSD的特點(diǎn):獲得簡(jiǎn)單清晰的設(shè)計(jì)方案,因?yàn)檫@樣的方案易于理解、易于修改。

JSD的設(shè)計(jì)原則:使程序結(jié)構(gòu)同數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。第7講軟件相關(guān)設(shè)計(jì)方法ABCBCA=ABoCoSA=SCBA=BAB*I1、JacksonDiagram:注意:層次方框圖H中的方框表示模塊,而JD中的方框代表幾個(gè)語(yǔ)句構(gòu)成的簡(jiǎn)單操作;H表現(xiàn)調(diào)用關(guān)系,而JD表現(xiàn)組成關(guān)系。JacksonSystemDevelopment(JSD)第7講軟件相關(guān)設(shè)計(jì)方法

例:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是:每掃描一行輸入字符串之后,換行打印出這個(gè)字符串中的空格數(shù),最后打印出文件中空格的總個(gè)數(shù)。2、Jackson方法:JacksonSystemDe

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論