![第7講軟件相關(guān)設(shè)計(jì)方法_第1頁](http://file4.renrendoc.com/view/825bc16f6a62f6557523c5d5cc052bd8/825bc16f6a62f6557523c5d5cc052bd81.gif)
![第7講軟件相關(guān)設(shè)計(jì)方法_第2頁](http://file4.renrendoc.com/view/825bc16f6a62f6557523c5d5cc052bd8/825bc16f6a62f6557523c5d5cc052bd82.gif)
![第7講軟件相關(guān)設(shè)計(jì)方法_第3頁](http://file4.renrendoc.com/view/825bc16f6a62f6557523c5d5cc052bd8/825bc16f6a62f6557523c5d5cc052bd83.gif)
![第7講軟件相關(guān)設(shè)計(jì)方法_第4頁](http://file4.renrendoc.com/view/825bc16f6a62f6557523c5d5cc052bd8/825bc16f6a62f6557523c5d5cc052bd84.gif)
![第7講軟件相關(guān)設(shè)計(jì)方法_第5頁](http://file4.renrendoc.com/view/825bc16f6a62f6557523c5d5cc052bd8/825bc16f6a62f6557523c5d5cc052bd85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第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)的一個或多個結(jié)構(gòu),包含軟件構(gòu)件、構(gòu)件對外可見的性質(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ù)庫、計(jì)算模塊)完成系統(tǒng)所需的某種功能;一組連接子(connectors),能使構(gòu)件間通信協(xié)調(diào)和合作;約束(constraints),定義構(gòu)件如何被集成,形成系統(tǒng);語義模型(semanticmodel),使得設(shè)計(jì)者通過分析構(gòu)件的已知性質(zhì)而理解系統(tǒng)的整體性質(zhì)。第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格分類數(shù)據(jù)為中心的體系結(jié)構(gòu)目標(biāo):實(shí)現(xiàn)數(shù)據(jù)的可集成性共享數(shù)據(jù)可以是數(shù)據(jù)倉庫或是黑板??蛻舳丝蛻舳丝蛻舳丝蛻舳丝蛻舳丝蛻舳斯蚕頂?shù)據(jù)第7講軟件相關(guān)設(shè)計(jì)方法體系結(jié)構(gòu)風(fēng)格分類調(diào)用-返回體系結(jié)構(gòu)目標(biāo):系統(tǒng)的可更改性和可擴(kuò)展性主程序-子程序體系結(jié)構(gòu)將一個程序分層子部分每個子節(jié)點(diǎn)都只由父節(jié)點(diǎn)控制如遠(yuǎn)程過程調(diào)用系統(tǒng)面向?qū)ο蠡虺橄髷?shù)據(jù)類型系統(tǒng)強(qiáng)調(diào)對數(shù)據(jù)的綁定和對數(shù)據(jù)操縱及訪問方式的掌握實(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)化開發(fā)方法(StructuredDevelopingMethod)
是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速、自然和方便。結(jié)構(gòu)化開發(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)化開發(fā)方法的核心,與SA法,SD法密切聯(lián)系,主要完成軟件系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)。面向數(shù)據(jù)流的設(shè)計(jì)方法又稱結(jié)構(gòu)化設(shè)計(jì)。
第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)基本思想:將系統(tǒng)設(shè)計(jì)成由相對獨(dú)立、單一功能的模塊組成的結(jié)構(gòu)。采用方法:
DFDSystemHierarchy步驟:確定數(shù)據(jù)流類型;指明數(shù)據(jù)流的邊界;將DFD映射為程序結(jié)構(gòu);根據(jù)元素的分解,定義控制的層次;使用設(shè)計(jì)測量和啟發(fā)信息,對結(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
的分類⑴變換流(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ā)射中心”時,可歸結(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ù)流較多,變換中心可以不至一個。邏輯輸入/出-是指輸入/出變換中心的數(shù)據(jù)流。輸入流-是將物理輸入轉(zhuǎn)換為邏輯輸入的數(shù)據(jù)流。輸出流-是將邏輯輸出轉(zhuǎn)換為物理輸出的數(shù)據(jù)流。設(shè)計(jì)軟件結(jié)構(gòu)的頂層;為每個輸入設(shè)計(jì)一個輸入模塊,為每個輸出設(shè)計(jì)一個輸出模塊,同時為變換中心設(shè)計(jì)一個處理模塊。自頂向下,逐步細(xì)化,設(shè)計(jì)中下層模塊。即上層各個模塊的從屬模塊,順序一般是從設(shè)計(jì)輸入模塊的下層開始。第7講軟件相關(guān)設(shè)計(jì)方法變換流設(shè)計(jì)321456輸入變換中心輸出ABCDEFGHSystem3GetCGetBGetAMakeAintoBMakeBintoCMakeCintoDandEPutEPutDMakeEintoGPutGMakeDintoFPutFMakeGintoHPutHCCDEEDBBCAABEGGGHHDFF須檢查;每個傳遞的數(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ì)方法變換流分析例:汽車數(shù)字儀表板的設(shè)計(jì)功能:①通過模-數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;②在發(fā)光二極管面板上顯示數(shù)據(jù);③指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;④指示加速或減速;⑤如果車速超過55mph,則發(fā)出警告鈴聲。面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法第一步:DFD的分界,先分出I、P、O三塊燃料流傳感器信號SPS旋轉(zhuǎn)信號讀旋轉(zhuǎn)信號收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計(jì)算里程計(jì)算mph,超速值產(chǎn)生加/減速顯示計(jì)算燃料消耗計(jì)算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示SPSSPS箭頭指示燃燒流上箭頭水平線下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法一般問題的一級分解方法:數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板接收傳感器信號MPIO面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法第二步:映射ADCBMICBDA:每個處理直接對應(yīng)一個下層模塊。P:由邊界向回溯,將每個遇到的處理器映成相應(yīng)的層模塊。I:由邊界向外推,方法與類似OI面向數(shù)據(jù)流的設(shè)計(jì)第7講軟件相關(guān)設(shè)計(jì)方法例:數(shù)字儀表板控制數(shù)據(jù)轉(zhuǎn)換控制驅(qū)動儀表板接收傳感器信號計(jì)算gph讀燃料流轉(zhuǎn)換成rpm收集sps讀旋轉(zhuǎn)信號確定加/減速計(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)。注:每個模塊應(yīng)附一簡要說明描述①進(jìn)出該模塊的信息(接口描述);②模塊內(nèi)部的信息;③過程陳述,包括主要判定點(diǎn)及任務(wù)等;④對約束和特殊特點(diǎ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)行一級分析,設(shè)計(jì)頂層模塊。進(jìn)行一級分析,設(shè)計(jì)上層模塊:從DFD中導(dǎo)出具有接收和發(fā)送分支的軟件結(jié)構(gòu)。對事務(wù)中心設(shè)計(jì)為“事務(wù)控制”、對事務(wù)流為“接收事務(wù)”、對事務(wù)路徑為“發(fā)送事務(wù)”。細(xì)化該事務(wù)結(jié)構(gòu)和每條動作路徑的結(jié)構(gòu)。對于接收分支,采用變換流設(shè)計(jì)方法設(shè)計(jì)中下層;對于發(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ù)流圖流類型區(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ì)過程第7講軟件相關(guān)設(shè)計(jì)方法精化體系結(jié)構(gòu)設(shè)計(jì)為每個模塊開發(fā)處理說明;為每個模塊提供接口描述;定義局部和全局?jǐn)?shù)據(jù)結(jié)構(gòu);給出所有的設(shè)計(jì)限制或約束;進(jìn)行設(shè)計(jì)評審;如需要,進(jìn)行結(jié)構(gòu)設(shè)計(jì)優(yōu)化。第7講軟件相關(guān)設(shè)計(jì)方法SD方法的優(yōu)點(diǎn)SD方法是從以下5個方面來獲得質(zhì)量較好的軟件結(jié)構(gòu):根據(jù)描述用戶需求的數(shù)據(jù)流圖導(dǎo)出了實(shí)現(xiàn)用戶需求的結(jié)構(gòu)圖。為了控制大型軟件系統(tǒng)復(fù)雜性,運(yùn)用了下面兩個手段:將系統(tǒng)分解成許多個黑盒。將黑盒組織成適合于用計(jì)算機(jī)實(shí)現(xiàn)的一個層次結(jié)構(gòu)。用內(nèi)聚和耦合作為評價(jià)軟件結(jié)構(gòu)質(zhì)量的標(biāo)準(zhǔn)。給出一組設(shè)計(jì)技巧,如扇入和扇出、模塊大小的掌握,作用范圍和控制范圍等。用結(jié)構(gòu)圖直觀地描述軟件結(jié)構(gòu),因此易于理解,并直接可以用于評價(jià)、分析和復(fù)查等。第7講軟件相關(guān)設(shè)計(jì)方法SD方法的缺點(diǎn)SD方法的不足:軟件系統(tǒng)的概要設(shè)計(jì)應(yīng)該包括兩個方面:數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)和程序結(jié)構(gòu)的設(shè)計(jì),兩者是密切相關(guān)的,但遺憾的是SD方法只考慮后者而不考慮前者,因此在使用SD方法時,一般還需參考一些有關(guān)數(shù)據(jù)庫、文件結(jié)構(gòu)的設(shè)計(jì)方法?!案邇?nèi)聚、低耦合”的原則雖已被廣為接受,但這兩個概念尚無嚴(yán)格的定義,更無健全的理論基礎(chǔ),只能用些例子來解釋其含義,因而對實(shí)際系統(tǒng)的軟件結(jié)構(gòu)還難以作客觀的質(zhì)量評價(jià),這是SD方法的一個缺陷。第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)結(jié)構(gòu)化開發(fā)方法是一種面向數(shù)據(jù)流、數(shù)據(jù)封閉性的開發(fā)方法,來源于程序的模塊化和功能分解。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)是將問題的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為程序結(jié)構(gòu),著重于問題的數(shù)據(jù)結(jié)構(gòu),不強(qiáng)調(diào)模塊定義。Jackson系統(tǒng)開發(fā)方法是JSP的擴(kuò)展,是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,其基本思想是先建立輸入輸出的數(shù)據(jù)結(jié)構(gòu),再將其轉(zhuǎn)換為軟件結(jié)構(gòu)。這種方法適用于數(shù)據(jù)處理類問題,特別是企業(yè)管理類的軟件系統(tǒng)。第7講軟件相關(guān)設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)程序邏輯構(gòu)造(logicalconstructionofprograms,LCP)由Warnier開發(fā),是建立在數(shù)據(jù)結(jié)構(gòu)和過程結(jié)構(gòu)之間關(guān)系上的方法,將I/O數(shù)據(jù)結(jié)構(gòu)映射為軟件詳細(xì)過程表達(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ì)每個模塊的處理過程。分析的重點(diǎn)是構(gòu)造于系統(tǒng)相關(guān)的現(xiàn)實(shí)世界,并建立現(xiàn)實(shí)世界的信息域模型,目標(biāo)是生成軟件的過程性描述。JSD的特點(diǎn):獲得簡單清晰的設(shè)計(jì)方案,因?yàn)檫@樣的方案易于理解、易于修改。
JSD的設(shè)計(jì)原則:使程序結(jié)構(gòu)同數(shù)據(jù)結(jié)構(gòu)相對應(yīng)。第7講軟件相關(guān)設(shè)計(jì)方法ABCBCA=ABoCoSA=SCBA=BAB*I1、JacksonDiagram:注意:層次方框圖H中的方框表示模塊,而JD中的方框代表幾個語句構(gòu)成的簡單操作;H表現(xiàn)調(diào)用關(guān)系,而JD表現(xiàn)組成關(guān)系。JacksonSystemDevelopment(JSD)第7講軟件相關(guān)設(shè)計(jì)方法
例:一個正文文件由若干個記錄組成,每個記錄是一個字符串。要求統(tǒng)計(jì)每個記錄中空格字符的個數(shù),以及文件中空格字符的總個數(shù)。要求的輸出數(shù)據(jù)格式是:每掃描一行輸入字符串之后,換行打印出這個字符串中的空格數(shù),最后打印出文件中空格的總個數(shù)。2、Jackson方法:JacksonSystemDe
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)暫時性工作合同協(xié)議
- 2025年離婚協(xié)議財(cái)產(chǎn)保護(hù)策劃與實(shí)施策略
- 2025年體育場館管理服務(wù)合同
- 2025年獵頭項(xiàng)目申請報(bào)告
- 2025年高精度二維伺服系統(tǒng)項(xiàng)目規(guī)劃申請報(bào)告
- 2025年住宅租賃協(xié)議法律規(guī)范
- 2025年中國內(nèi)地建筑工程合同管理全書
- 2025年企業(yè)團(tuán)隊(duì)建設(shè)培訓(xùn)費(fèi)用預(yù)算協(xié)議樣本
- 2025年公司租用辦公地點(diǎn)合同樣本
- 2025年典當(dāng)行經(jīng)營許可協(xié)議書
- Petrel中文操作手冊(1-3)
- 《工業(yè)自動化技術(shù)》課件
- 代理分銷銷售協(xié)議書
- (績效考核)鉗工技能鑒定考核試題庫
- 215kWh工商業(yè)液冷儲能電池一體柜用戶手冊
- 裝卸工安全培訓(xùn)課件
- 鉗工實(shí)訓(xùn)安全
- 腿部經(jīng)絡(luò)課件教學(xué)課件
- 中小學(xué)校崗位安全工作指南
- 《鋼鐵是怎樣煉成的》讀書分享課件
- 小數(shù)加減乘除計(jì)算題大全(300題大全)
評論
0/150
提交評論