




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十一章
結(jié)構(gòu)化軟件開發(fā)11.1面向數(shù)據(jù)流的分析方法數(shù)據(jù)流圖與數(shù)據(jù)字典、實(shí)體—關(guān)系圖數(shù)據(jù)流圖的實(shí)時(shí)系統(tǒng)擴(kuò)充、基于數(shù)據(jù)流的分析方法11.2面向數(shù)據(jù)流的設(shè)計(jì)方法基本概念、設(shè)計(jì)過程、事務(wù)分析11.3實(shí)時(shí)系統(tǒng)設(shè)計(jì)實(shí)時(shí)系統(tǒng)性能要求、實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)實(shí)例2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1第十一章
結(jié)構(gòu)化軟件開發(fā)前面幾章主要討論了面向?qū)ο蟮能浖_發(fā)方法,它是目前軟件工程的主流技術(shù)。除了面向?qū)ο蠓椒?,各種結(jié)構(gòu)化軟件開發(fā)方法,如功能分解法、面向數(shù)據(jù)流和面向控制流的方法、面向數(shù)據(jù)的方法等,在軟件工程發(fā)展史上曾一度占據(jù)重要的位置。今天,結(jié)構(gòu)化軟件開發(fā)方法由于簡(jiǎn)潔、成熟,在實(shí)時(shí)嵌入式系統(tǒng)、過程控制、科學(xué)與工程計(jì)算等領(lǐng)域仍然應(yīng)用廣泛。多數(shù)遺留系統(tǒng)是采用結(jié)構(gòu)化方法開發(fā)的,對(duì)它們的維護(hù)將持續(xù)很長(zhǎng)時(shí)間。本章選擇面向數(shù)據(jù)流的方法系統(tǒng)地介紹結(jié)構(gòu)化的軟件開發(fā)方法和過程。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院211.1面向數(shù)據(jù)流的分析方法面向數(shù)據(jù)流的分析方法是結(jié)構(gòu)化分析方法族中的一員結(jié)構(gòu)化分析方法的雛型出現(xiàn)于1960年代后期,1979年DeMarco將其作為一種需求分析方法正式提出,此后它不斷充實(shí)并被廣泛應(yīng)用,對(duì)軟件工程的發(fā)展,緩解當(dāng)時(shí)的軟件危機(jī)做出了重要貢獻(xiàn)。本節(jié)介紹面向數(shù)據(jù)流的分析方法及其擴(kuò)充,仍以“家庭保安系統(tǒng)”為例展示使用過程。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院311.1.1數(shù)據(jù)流圖與數(shù)據(jù)字典可以認(rèn)為,一個(gè)基于計(jì)算機(jī)的信息處理系統(tǒng)由數(shù)據(jù)流和一系列的轉(zhuǎn)換構(gòu)成,即IPO模型。軟件系統(tǒng)通過一系列的轉(zhuǎn)換(也稱“加工”)將輸入數(shù)據(jù)變換為輸出數(shù)據(jù)。數(shù)據(jù)流圖就是用來刻畫數(shù)據(jù)流和轉(zhuǎn)換的信息系統(tǒng)建模技術(shù),任何軟件系統(tǒng)都可以用數(shù)據(jù)流圖表示。數(shù)據(jù)流圖用簡(jiǎn)單的圖形記號(hào)分別表示數(shù)據(jù)源、數(shù)據(jù)流、轉(zhuǎn)換以及外部實(shí)體,如圖11.1所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院4數(shù)據(jù)流圖與數(shù)據(jù)字典它提供層次結(jié)構(gòu),使分析人員能夠方便地表示任意抽象級(jí)別上的信息系統(tǒng)或其子系統(tǒng),支持問題分解、逐步求精的分析方法。初始時(shí),整個(gè)信息處理系統(tǒng)可以用圖11.2所示的頂級(jí)(第0級(jí))數(shù)據(jù)流圖表示。隨著需求分析活動(dòng)的逐漸深入,較高抽象級(jí)別上的復(fù)雜轉(zhuǎn)換可以精化為一系列相互關(guān)聯(lián)的數(shù)據(jù)流和子轉(zhuǎn)換,如圖11.3所示。在數(shù)據(jù)流方法中,數(shù)據(jù)(數(shù)據(jù)流)的精化伴隨轉(zhuǎn)換的精化同步進(jìn)行。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院5圖11.1數(shù)據(jù)流圖的圖形記號(hào)2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6圖11.2頂級(jí)數(shù)據(jù)流圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院7數(shù)據(jù)流圖與數(shù)據(jù)字典在進(jìn)行逐層精化的過程中,必須維持層間數(shù)據(jù)流圖的平衡,即被精化的轉(zhuǎn)換的輸入、輸出流必須與精化它的數(shù)據(jù)流子圖的初始輸入流和最終輸出流保持嚴(yán)格一致(見圖11.3)。這是確保需求模型一致性的一條重要原則。與此同時(shí),要注意逐層精化必須適可而止,因?yàn)樾枨蠓治龌顒?dòng)只求對(duì)問題的全面、清晰的理解,并不關(guān)心軟件的設(shè)計(jì)細(xì)節(jié)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8圖11.3數(shù)據(jù)流圖的精化與層間平衡2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院9數(shù)據(jù)流圖與數(shù)據(jù)字典前述的數(shù)據(jù)流圖并不足以完整地描述軟件需求,因?yàn)樗鼪]有描述數(shù)據(jù)流的內(nèi)容。數(shù)據(jù)流圖必須與描述、組織和管理數(shù)據(jù)條目的數(shù)據(jù)字典配套使用。數(shù)據(jù)字典每一數(shù)據(jù)條目的內(nèi)容:(1)在數(shù)據(jù)流圖中標(biāo)識(shí)的數(shù)據(jù)源、數(shù)據(jù)流或外部實(shí)體的名稱與別名;(2)數(shù)據(jù)類型;(3)所有以它作為輸入流或輸出流的轉(zhuǎn)換列表;(4)如何使用該數(shù)據(jù)條目的簡(jiǎn)要說明;(5)數(shù)據(jù)條目的解釋性說明;
(6)其它補(bǔ)充說明,如取值范圍與缺省值,有關(guān)的設(shè)計(jì)約束等。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院10數(shù)據(jù)流圖與數(shù)據(jù)字典數(shù)據(jù)條目的定義必須精確、簡(jiǎn)潔,能為用戶方和軟件開發(fā)方共同理解。轉(zhuǎn)換需要比圖形記號(hào)更詳盡的表示機(jī)制,即結(jié)構(gòu)化的文字描述。分析人員可以在數(shù)據(jù)流圖的任一轉(zhuǎn)換上附加一段文字,說明轉(zhuǎn)換的功能、性能要求及設(shè)計(jì)約束等。文字說明應(yīng)盡可能簡(jiǎn)潔、清晰、易于理解。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1111.1.2實(shí)體—關(guān)系圖在數(shù)據(jù)密集型應(yīng)用問題中,對(duì)復(fù)雜數(shù)據(jù)及數(shù)據(jù)之間復(fù)雜關(guān)系的分析和建模將成為需求分析的重要任務(wù)。這項(xiàng)任務(wù)是簡(jiǎn)單的數(shù)據(jù)字典機(jī)制無法勝任的。在數(shù)據(jù)流分析方法中引進(jìn)適合復(fù)雜數(shù)據(jù)建模的實(shí)體—關(guān)系圖。數(shù)據(jù)對(duì)象是現(xiàn)實(shí)世界中省略了功能和行為的實(shí)體,是現(xiàn)實(shí)世界中實(shí)體的數(shù)據(jù)側(cè)面。在數(shù)據(jù)流分析方法中,數(shù)據(jù)對(duì)象包括11.1節(jié)提及的數(shù)據(jù)源、外部實(shí)體的數(shù)據(jù)部分以及數(shù)據(jù)流的內(nèi)容。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院12實(shí)體—關(guān)系圖數(shù)據(jù)對(duì)象由其屬性刻畫,包括:(1)命名性屬性
為數(shù)據(jù)對(duì)象的實(shí)例命名,其中必含有一個(gè)或一組關(guān)鍵屬性,以便唯一地標(biāo)識(shí)數(shù)據(jù)對(duì)象的實(shí)例。(2)描述性屬性
對(duì)數(shù)據(jù)對(duì)象實(shí)例的性質(zhì)進(jìn)行刻畫。(3)引用性屬性
將自身與其它數(shù)據(jù)對(duì)象的實(shí)例關(guān)聯(lián)起來?,F(xiàn)實(shí)世界中任何給定實(shí)體都具有許多屬性,分析人員只需考慮與應(yīng)用問題有關(guān)的屬性。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院13圖11.4數(shù)據(jù)對(duì)象描述表
數(shù)據(jù)對(duì)象可以用一張表描述,見圖11.4。如,銷售管理系統(tǒng)“商品”具有屬性:
商品ID、商品名稱、供應(yīng)商ID、類別ID、單價(jià)、庫(kù)存量、定購(gòu)量,等等。其中商品ID為命名性屬性,其它為描述性屬性。圖11.4商品ID商品名稱
供應(yīng)商ID類別ID單價(jià)
庫(kù)存量
定購(gòu)量2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院14實(shí)體—關(guān)系圖應(yīng)用問題中,任何數(shù)據(jù)對(duì)象都不是孤立的,它們與其它數(shù)據(jù)對(duì)象存在各種形式的關(guān)聯(lián)。如,在銷售管理系統(tǒng)中,“供應(yīng)商”與“商品”之間存在“供貨”關(guān)系,“銷售人員”與“客戶”之間存在“聯(lián)絡(luò)”關(guān)系。關(guān)系的命名及內(nèi)涵因具體問題而異。分析人員必須善于剔除與應(yīng)用問題無關(guān)的關(guān)系。基于數(shù)據(jù)對(duì)象、屬性與關(guān)系,分析人員可以為應(yīng)用問題建立數(shù)據(jù)模型。實(shí)體—關(guān)系圖(簡(jiǎn)稱ER圖)是表示數(shù)據(jù)對(duì)象及其關(guān)系的圖形工具,圖11.5顯示了采用UML簡(jiǎn)化類圖圖元描述的一個(gè)銷售管理系統(tǒng)的部分實(shí)體關(guān)系圖。
2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院15圖11.5一個(gè)銷售管理系統(tǒng)的部分實(shí)體關(guān)系圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1611.1.3數(shù)據(jù)流圖的實(shí)時(shí)系統(tǒng)擴(kuò)充實(shí)時(shí)系統(tǒng)與現(xiàn)實(shí)世界的外部實(shí)體進(jìn)行交互時(shí)具有鮮明的時(shí)間特征。實(shí)時(shí)系統(tǒng)的數(shù)據(jù)流應(yīng)顯式區(qū)分為時(shí)間上連續(xù)的數(shù)據(jù)流和離散的數(shù)據(jù)流(控制信號(hào)或事件)。隨著時(shí)間的變化及各個(gè)時(shí)間點(diǎn)上各種事件的激勵(lì),實(shí)時(shí)系統(tǒng)將處于不同的狀態(tài)。實(shí)時(shí)系統(tǒng)負(fù)責(zé)事件響應(yīng)的“轉(zhuǎn)換”改稱“控制”,它在限定的時(shí)間間隔內(nèi)完成對(duì)事件的識(shí)別,向其它“控制”發(fā)送輸出事件,并將系統(tǒng)置于新狀態(tài)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院17數(shù)據(jù)流圖的實(shí)時(shí)系統(tǒng)擴(kuò)充實(shí)時(shí)系統(tǒng)對(duì)響應(yīng)速度和可靠性有嚴(yán)格的要求。分析人員必須顯式區(qū)分?jǐn)?shù)據(jù)與連續(xù)數(shù)據(jù)流、數(shù)據(jù)與離散數(shù)據(jù)流(事件)、轉(zhuǎn)換與控制等概念。開發(fā)人員在需求分析、軟件設(shè)計(jì)、編碼實(shí)現(xiàn)活動(dòng)中要特別關(guān)注實(shí)時(shí)控制部件的性能和可靠性。傳統(tǒng)數(shù)據(jù)流方法不能勝任實(shí)時(shí)系統(tǒng)的需求分析任務(wù)。Ward&Mellor和Hatley&Pirbhai在數(shù)據(jù)流圖中引入實(shí)時(shí)機(jī)制對(duì)傳統(tǒng)數(shù)據(jù)流方法進(jìn)行擴(kuò)充。Hatley&Pirbhai引進(jìn)了狀態(tài)轉(zhuǎn)換圖以刻畫系統(tǒng)的外部行為。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院181.Ward&Mellor擴(kuò)充Ward&Mellor對(duì)實(shí)時(shí)系統(tǒng)的擴(kuò)充主要體現(xiàn)在術(shù)語方面。他們引入了用以表示連續(xù)數(shù)據(jù)流、事件、事件源以及控制的圖形記號(hào),如圖11.6所示。圖中最后一個(gè)記號(hào)是為了表示多任務(wù)環(huán)境下同一控制的多個(gè)進(jìn)程實(shí)例。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院19圖11.7連續(xù)數(shù)據(jù)流與普通數(shù)據(jù)流為了說明Ward&Mellor擴(kuò)充的意義,我們簡(jiǎn)單地討論基于計(jì)算機(jī)的水溫監(jiān)測(cè)與調(diào)節(jié)系統(tǒng)。水溫測(cè)量?jī)x傳給溫度監(jiān)控轉(zhuǎn)換的測(cè)量數(shù)據(jù)是連續(xù)的。溫度監(jiān)控轉(zhuǎn)換將水溫
數(shù)據(jù)與允許的波動(dòng)范
圍進(jìn)行比較,然后連
續(xù)地輸出調(diào)節(jié)后的溫
度值,如圖所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院20Ward&Mellor擴(kuò)充擴(kuò)充的圖形記號(hào)可以與傳統(tǒng)的數(shù)據(jù)流圖符號(hào)混合使用。事件可以作為普通轉(zhuǎn)換的輸入流,控制也可接收普通的數(shù)據(jù)輸入。應(yīng)該對(duì)數(shù)據(jù)字典進(jìn)行擴(kuò)充,數(shù)據(jù)字典要包含連續(xù)數(shù)據(jù)流和離散事件的描述。數(shù)據(jù)流圖的控制描述應(yīng)包括響應(yīng)時(shí)間、可靠性等設(shè)計(jì)約束說明。圖11.8利用Ward&Mellor擴(kuò)充給出了機(jī)器人控制問題的部分?jǐn)?shù)據(jù)流圖,機(jī)器人將一些就緒的機(jī)械部件裝配至某固定位置。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院21圖11.8離散數(shù)據(jù)流(事件)與普通數(shù)據(jù)流2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院22Ward&Mellor擴(kuò)充當(dāng)所有待裝配部件都處于就緒狀態(tài)(即到達(dá)預(yù)定位置)后,“部件監(jiān)控與操作員界面”過程讀入操作員命令,經(jīng)必要處理后發(fā)送“啟動(dòng)信號(hào)”命令“機(jī)器人初始化”控制作裝配前的準(zhǔn)備工作。在初始化完成后,該控制發(fā)送“進(jìn)程激活信號(hào)”啟動(dòng)“移位命令處理”完成裝配工作。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院232.Hatley&Pirhai擴(kuò)充Hatley&Pirbhai方法的關(guān)鍵點(diǎn)是,分別建立實(shí)時(shí)系統(tǒng)的過程模型和控制模型。Hatley&Pirbhai
引進(jìn)了兩個(gè)新的圖形記號(hào),
如圖11.9所示。在Hatley&Pirbhai擴(kuò)充中,
傳統(tǒng)的數(shù)據(jù)流圖僅用來刻畫
實(shí)時(shí)系統(tǒng)的靜態(tài)側(cè)面——
過程模型,而動(dòng)態(tài)側(cè)面則由
分離的控制流圖描述。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院24
圖11.9Hetley&Pirbhai
擴(kuò)充的圖形記號(hào)Hatley&Pirhai擴(kuò)充同一實(shí)時(shí)系統(tǒng)或系統(tǒng)的同一子部分,數(shù)據(jù)流圖和控制流圖具有完全同名的“轉(zhuǎn)換”,但數(shù)據(jù)流圖中的所有元素均無時(shí)間意義,控制流圖則正好相反??刂屏鲌D中的“轉(zhuǎn)換”改稱“進(jìn)程”。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院25圖11.10Hatley&Pirbhai的實(shí)時(shí)系統(tǒng)模型Hatley&Pirbhai擴(kuò)充所確立的實(shí)時(shí)系統(tǒng)模型如圖11.10所示。為了理解數(shù)據(jù)流圖和控制流圖之間的對(duì)應(yīng)關(guān)系,請(qǐng)比較圖11.11(a)和圖11.11(b)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院26例11.1復(fù)印機(jī)工作流程控制結(jié)構(gòu)的描述用Hatley&Pirbhai表示法,描述復(fù)印機(jī)控制軟件工作時(shí)的數(shù)據(jù)流圖、控制流圖、狀態(tài)轉(zhuǎn)換圖和進(jìn)程活躍表。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院27圖11.11復(fù)印機(jī)工作流程控制軟件圖示2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院282.Hatley&Pirhai擴(kuò)充對(duì)于數(shù)據(jù)流圖中的過程轉(zhuǎn)換,可以附加一段結(jié)構(gòu)化的文字描述,這種描述在Hatley&Pirbhai擴(kuò)充中稱為過程規(guī)約。由于數(shù)據(jù)流圖和控制流圖的對(duì)應(yīng)關(guān)系,過程規(guī)約也被擴(kuò)充以便描述對(duì)進(jìn)程的輸入事件的處理以及進(jìn)程的輸出事件。實(shí)時(shí)系統(tǒng)由于受事件激勵(lì),隨著時(shí)間點(diǎn)的不同而處于不同的狀態(tài),這是實(shí)時(shí)系統(tǒng)重要的行為特征。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院29Hatley&Pirhai擴(kuò)充Hatley&Pirbhai在控制流圖中除事件外引進(jìn)了“控制”圖標(biāo)記符,內(nèi)容包括狀態(tài)轉(zhuǎn)換圖和進(jìn)程活躍表的控制規(guī)約。狀態(tài)轉(zhuǎn)換圖是一張有向圖,每個(gè)結(jié)點(diǎn)表示實(shí)時(shí)系統(tǒng)的狀態(tài),每條邊表示引發(fā)狀態(tài)轉(zhuǎn)換的事件,以及轉(zhuǎn)換發(fā)生時(shí)系統(tǒng)的動(dòng)作:?jiǎn)?dòng)、終止、掛起或恢復(fù)進(jìn)程。進(jìn)程活躍表以普通表格的形式給出在控制流圖中定義的各個(gè)事件激活的全部進(jìn)程。下面結(jié)合復(fù)印機(jī)工作流程的控制結(jié)構(gòu)說明上述過程。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院30圖11.11復(fù)印機(jī)工作流程控制軟件圖示2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院31Hatley&Pirhai擴(kuò)充經(jīng)Hatley&Pirbhai的擴(kuò)充,數(shù)據(jù)流圖(過程模型)用來表示實(shí)時(shí)系統(tǒng)的數(shù)據(jù)以及對(duì)數(shù)據(jù)進(jìn)行操作的過程控制流圖則用來描述進(jìn)程之間的控制流并刻畫系統(tǒng)的行為特征:每個(gè)事件所引發(fā)的系統(tǒng)狀態(tài)變更和進(jìn)程活躍情況。過程模型和控制模型以數(shù)據(jù)流圖和控制流圖之間的簡(jiǎn)單對(duì)應(yīng)關(guān)系互為關(guān)聯(lián)。過程模型中的過程規(guī)約可能產(chǎn)生事件輸出,從而引發(fā)控制規(guī)約所描述的狀態(tài)轉(zhuǎn)換。進(jìn)程規(guī)約可以產(chǎn)生進(jìn)程活躍信號(hào),進(jìn)而作用于數(shù)據(jù)流圖。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院3211.1.4基于數(shù)據(jù)流的分析方法以上介紹了數(shù)據(jù)流圖及其擴(kuò)充的語言機(jī)制。本節(jié)結(jié)合“家庭保安系統(tǒng)”介紹基于數(shù)據(jù)流的分析方法,從而為分析人員建造用戶需求的數(shù)據(jù)流模型提供方法學(xué)指導(dǎo)。1.創(chuàng)建數(shù)據(jù)流模型數(shù)據(jù)流圖是軟件系統(tǒng)各子功能,及它們之間數(shù)據(jù)流動(dòng)的圖形表示。數(shù)據(jù)流圖的精化過程實(shí)際上是各個(gè)子功能和數(shù)據(jù)流的細(xì)化過程。隨著過程的進(jìn)化,用戶需求逐步精確、完全,并保持一致。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院33基于數(shù)據(jù)流的分析方法分析人員創(chuàng)建用戶需求的數(shù)據(jù)流模型應(yīng)遵循以下原則:⑴建立頂級(jí)數(shù)據(jù)流圖,其中只含有一個(gè)代表目標(biāo)軟件系統(tǒng)整體處理功能的轉(zhuǎn)換。根據(jù)軟件系統(tǒng)與外部環(huán)境的關(guān)系確定頂級(jí)數(shù)據(jù)流圖中的外部實(shí)體,及它們與軟件系統(tǒng)之間的數(shù)據(jù)流??紤]2.1節(jié)給出的家庭保安系統(tǒng)案例,若采用3.2節(jié)介紹的需求調(diào)查方法,得到如下的初步用戶需求:2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院34基于數(shù)據(jù)流的分析方法“家庭保安系統(tǒng)”的軟件允許用戶在安裝時(shí)進(jìn)行系統(tǒng)配置,實(shí)施對(duì)傳感器的監(jiān)控并通過控制面板與用戶進(jìn)行信息交互。配置操作包括:指定每一傳感器的種類和編號(hào);設(shè)置開、關(guān)機(jī)密碼;指定報(bào)警電話號(hào)碼;指定報(bào)警延遲和電話重拔延遲時(shí)間(以秒為單位)。當(dāng)軟件系統(tǒng)收到傳感器發(fā)出的數(shù)據(jù)后,判別是否出現(xiàn)異常事件。如果是,則在指定的延遲時(shí)間內(nèi)拔報(bào)警電話號(hào)碼,拔號(hào)操作將按照重拔延遲反復(fù)進(jìn)行,直至電話接通。軟件系統(tǒng)負(fù)責(zé)報(bào)告時(shí)間、地點(diǎn)和異常事件的性質(zhì)。開機(jī)后,軟件系統(tǒng)負(fù)責(zé)顯示當(dāng)前工作狀態(tài),接收并處理用戶指令。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院35圖11.12“家庭保安系統(tǒng)”頂級(jí)數(shù)據(jù)流圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院36基于數(shù)據(jù)流的分析方法⑵對(duì)用戶需求的文字描述進(jìn)行語法分析,其中的名詞和名詞短語構(gòu)成潛在的外部實(shí)體、數(shù)據(jù)源或數(shù)據(jù)流,動(dòng)詞構(gòu)成潛在的處理功能。結(jié)合分析人員對(duì)問題域和用戶需求的理解,確定軟件系統(tǒng)的主要功能以及它們之間的數(shù)據(jù)流。見圖11.13。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院37圖11.13“家庭保安系統(tǒng)”1級(jí)數(shù)據(jù)流圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院38基于數(shù)據(jù)流的分析方法⑶采用通常的功能分解方法,按照“強(qiáng)內(nèi)聚、松耦合”原則逐個(gè)對(duì)處理功能進(jìn)行精化;
與此同時(shí)逐步完成對(duì)數(shù)據(jù)流的精化,并針對(duì)被精化的處理功能生成下一級(jí)數(shù)據(jù)流圖?!皬?qiáng)內(nèi)聚、松耦合”原則指,分解出來的各子功能之間的聯(lián)系盡量松散、簡(jiǎn)單,子功能內(nèi)部各部分的聯(lián)系盡量緊密。這一原則對(duì)于目標(biāo)軟件系統(tǒng)的可修改性、可擴(kuò)充性大有益處,因?yàn)殚_發(fā)人員可以縮小軟件修改或擴(kuò)充的影響范圍。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院39基于數(shù)據(jù)流的分析方法數(shù)據(jù)流精化的意義。⑴伴隨著功能分解,數(shù)據(jù)流的內(nèi)容及各項(xiàng)特征逐步彰現(xiàn),將其作為數(shù)據(jù)字典的一個(gè)條目,并不斷精化、調(diào)整內(nèi)容。⑵父數(shù)據(jù)流圖的復(fù)合數(shù)據(jù)項(xiàng)被分解為子數(shù)據(jù)項(xiàng),數(shù)據(jù)流分解符合平衡準(zhǔn)則。如,如果將圖11.13中的“啟動(dòng)/停止系統(tǒng)”功能分解為“啟動(dòng)系統(tǒng)”和“停止系統(tǒng)”,那么“啟動(dòng)/停止命令”相應(yīng)地精化為“啟動(dòng)命令”和“停止命令”?!凹彝ケ0蚕到y(tǒng)”中“傳感器監(jiān)測(cè)”子功能的數(shù)據(jù)流子圖如圖11.14所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院40圖11.14“家庭保安系統(tǒng)”2級(jí)數(shù)據(jù)流圖:對(duì)“傳感器監(jiān)測(cè)”的分解2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院41基于數(shù)據(jù)流的分析方法⑷在精化過程中必須保持各級(jí)數(shù)據(jù)流圖的平衡。⑸精化過程應(yīng)適可而止,避免涉及軟件設(shè)計(jì)細(xì)節(jié)。如果某子功能可以用一段簡(jiǎn)潔、精確的文字描述清楚,就無需進(jìn)一步分解。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院422.創(chuàng)建控制流模型對(duì)于實(shí)時(shí)系統(tǒng),在創(chuàng)建數(shù)據(jù)流模型之后還必須創(chuàng)建控制流模型,以便描述相關(guān)的事件以及系統(tǒng)狀態(tài)在時(shí)間坐標(biāo)系中的變遷。按照Hatley&Pirbhai的擴(kuò)充,目標(biāo)軟件系統(tǒng)的控制流模型脫胎于數(shù)據(jù)流模型。關(guān)鍵要素在于事件以及由它引發(fā)的進(jìn)程與系統(tǒng)的狀態(tài)變化。分析人員可利用以下經(jīng)驗(yàn)識(shí)別事件、繪出狀態(tài)轉(zhuǎn)換圖和進(jìn)程活躍表。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院43創(chuàng)建控制流模型⑴外部實(shí)體的傳感器或類似裝置可引發(fā)事件。⑵開關(guān)裝置及其它離散狀態(tài)裝置可引發(fā)事件。⑶活躍、中止、恢復(fù)進(jìn)程執(zhí)行的數(shù)據(jù)流應(yīng)視為事件⑷對(duì)用戶需求的文字描述進(jìn)行語法分析,其中具有瞬時(shí)性的名詞或名詞短語可能成為控制流模型中的事件。⑸分析系統(tǒng)可能具有的狀態(tài),研究每個(gè)狀態(tài)是如何到達(dá)的,然后確定從每一狀態(tài)轉(zhuǎn)換到其它所有可能狀態(tài)的誘發(fā)事件。⑹回答下述問題避免事件及狀態(tài)轉(zhuǎn)換圖中的遺漏:是否還有其它途徑到達(dá)某一狀態(tài)或從該狀態(tài)轉(zhuǎn)換至其它狀態(tài)?2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院44圖11.15“家庭保安系統(tǒng)”的控制流圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院45圖11.16“家庭保安系統(tǒng)”的狀態(tài)轉(zhuǎn)換圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院463.過程規(guī)約對(duì)于數(shù)據(jù)流圖中不再分解的處理功能,分析人員要借助結(jié)構(gòu)化的自然語言對(duì)其功能進(jìn)行精確、簡(jiǎn)潔的描述。圖11.13中“口令核對(duì)”子功能分解出來的“重置口令”子功能描述:⑴參數(shù):口令;類別:字符串⑵處理步驟:(a)檢查系統(tǒng)是否已有口令。若有,則驗(yàn)證用戶輸入口令的有效性。如果有效,則顯示提示信息要求輸入新口令;否則,顯示失敗信息并退出。(b)檢查新口令長(zhǎng)度是否合法。如果非法則顯示提示信息要求重新輸入。(c)要求用戶再次鍵入新口令以便用戶確認(rèn)和記憶。如果兩次鍵入的口令不符,則返回。(d)將確認(rèn)后的新口令按某種加密方法轉(zhuǎn)換為另一字符串存放于系統(tǒng)配置文件中。顯示成功信息并退出。⑶約束條件:在上述(a),(b),(c)步驟中,用戶重試的機(jī)會(huì)分別不超過3次。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院4711.2面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法,即結(jié)構(gòu)化設(shè)計(jì)法(簡(jiǎn)稱SD方法)是根據(jù)需求階段對(duì)數(shù)據(jù)流的分析進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)。數(shù)據(jù)流圖主要描繪信息在系統(tǒng)內(nèi)部加工和流動(dòng)的情況。面向數(shù)據(jù)流的設(shè)計(jì)方法根據(jù)數(shù)據(jù)流圖的特性定義兩種“映射”。這兩種映射能機(jī)械地將數(shù)據(jù)流圖轉(zhuǎn)換為程序結(jié)構(gòu)。該方法的目標(biāo)是為軟件結(jié)構(gòu)設(shè)計(jì)提供一個(gè)系統(tǒng)化的途徑,使設(shè)計(jì)人員對(duì)軟件有一個(gè)整體的認(rèn)識(shí)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院4811.2.1基本概念和設(shè)計(jì)過程SD方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過程分為五步:⑴確定信息流的類型;⑵劃定流界;⑶將數(shù)據(jù)流圖映射為程序結(jié)構(gòu);⑷提取層次控制結(jié)構(gòu);⑸通過設(shè)計(jì)復(fù)審和使用啟發(fā)式策略精化得到的結(jié)構(gòu)。該過程第三步所用映射方法涉及信息流的類型。信息流分為變換流和事務(wù)流兩種。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院491.變換流基本系統(tǒng)模型(即頂級(jí)數(shù)據(jù)流圖)中信息通常以“外部世界”所具有的形式進(jìn)入系統(tǒng)經(jīng)過處理后又以這種形式離開系統(tǒng)如圖11.17所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院50圖11.17信息流變換流輸入信息流沿傳入路徑進(jìn)入系統(tǒng),同時(shí)由外部形式變換為內(nèi)部形式經(jīng)系統(tǒng)變換中心加工、處理,作為輸出信息流又沿傳出路徑離開系統(tǒng),并還原為外部形式。若數(shù)據(jù)流圖所描述的信息流具有上述特征則稱作變換流。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院512.事務(wù)流由于基本系統(tǒng)模型呈變換流,故任意系統(tǒng)中的信息均可用變換流刻畫。若數(shù)據(jù)流具有圖11.18所示形狀,則稱“事務(wù)流”單個(gè)數(shù)據(jù)項(xiàng)稱為事務(wù)(transaction)沿傳入路徑,也稱接受通道進(jìn)入系統(tǒng),由外部形式變換為內(nèi)部
形式后到達(dá)事務(wù)中心,
事務(wù)中心根據(jù)數(shù)據(jù)項(xiàng)計(jì)
值結(jié)果從若干動(dòng)作路徑
中選定一條繼續(xù)執(zhí)行。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院52
圖11.18事務(wù)流事務(wù)流在大系統(tǒng)的DFD中,變換流與事務(wù)流往往交織在一起。如,在基于事務(wù)流的系統(tǒng)中,當(dāng)信息沿動(dòng)作路徑流動(dòng)時(shí)可能呈現(xiàn)變換流的特征。下面兩小節(jié)討論的變換分析法與事務(wù)分析法常常交叉使用。圖11.19描繪了面向數(shù)據(jù)流的軟件設(shè)計(jì)過程,當(dāng)然,任何設(shè)計(jì)過程都不應(yīng)該也不可能完全機(jī)械化,人的判斷力和創(chuàng)造性往往起決定作用。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院53圖11.19
面向數(shù)據(jù)流的設(shè)計(jì)2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院5411.2.2變換分析變換分析由一系列設(shè)計(jì)步驟組成,經(jīng)過這些步驟把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。下面以“家庭保安系統(tǒng)”的傳感器監(jiān)測(cè)子系統(tǒng)為例說明變換分析的各個(gè)步驟。步驟1復(fù)審基本系統(tǒng)模型基本系統(tǒng)模型指,頂級(jí)DFD和所有由外部提供的信息。這一設(shè)計(jì)步驟是對(duì)系統(tǒng)規(guī)約和軟件需求規(guī)約進(jìn)行評(píng)估。這兩個(gè)文檔描述軟件界面上信息的流程和結(jié)構(gòu)。復(fù)審“家庭保安系統(tǒng)”的基本模型要利用圖11.12、圖11.13和圖11.14分別表示的“家庭保安系統(tǒng)”的頂層、第一層和第二層數(shù)據(jù)流圖。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院55變換分析步驟2復(fù)審和精化軟件數(shù)據(jù)流圖對(duì)軟件需求規(guī)約中的分析模型進(jìn)行精化,直至獲得足夠詳細(xì)的DFD。如,由“傳感器監(jiān)測(cè)子系統(tǒng)”的第二級(jí)(圖11.14)DFD進(jìn)一步推導(dǎo)出第三級(jí)數(shù)據(jù)流圖(圖11.20)此時(shí),每個(gè)變換對(duì)應(yīng)一個(gè)獨(dú)立的功能,可望用一個(gè)具有較高內(nèi)聚度的模塊實(shí)現(xiàn),至此已有足夠的信息可用于設(shè)計(jì)“傳感器監(jiān)測(cè)子系統(tǒng)”的程序結(jié)構(gòu),精化過程亦可結(jié)束。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院56圖11.20“傳感器監(jiān)測(cè)子系統(tǒng)”的
第三級(jí)DFD2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院57變換分析步驟3確定DFD的特性,判定它為變換流還是事務(wù)流。系統(tǒng)內(nèi)部的信息流用變換流表示,倘若具有明顯的事務(wù)特性,還應(yīng)該采用事務(wù)流的映射方法。因此,設(shè)計(jì)人員首先要判定DFD中占主導(dǎo)地位的信息流,并確定其特性,然后孤立出具有變換特性或事務(wù)特性的支流,這些支流將用于精化由主導(dǎo)數(shù)據(jù)流推出的程序結(jié)構(gòu)。仍以圖11.20所示DFD為例,數(shù)據(jù)沿一個(gè)傳入路徑進(jìn)來,沿三個(gè)傳出路徑離開,無明顯的事務(wù)中心,因此,該信息流應(yīng)屬變換流。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院58變換分析步驟4通過劃定輸入流和輸出流的邊界來孤立變換中心。輸入、輸出流邊界的劃分可能因人而異,不同的設(shè)計(jì)人員可能把邊界沿著數(shù)據(jù)通道向前推進(jìn)或后退一個(gè)處理框,不過這對(duì)最后的軟件結(jié)構(gòu)影響不大?!皞鞲衅鞅O(jiān)測(cè)子系統(tǒng)”的邊界在圖11.20中用虛線表示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院59變換分析步驟5執(zhí)行“一級(jí)分解”
(FirstLevelFactoring)一級(jí)分解的目標(biāo)是導(dǎo)出具有三個(gè)層次的程序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行輸入、計(jì)算和輸出功能;中層模塊控制、協(xié)調(diào)底層的工作。如圖11.21所示,主控模塊負(fù)責(zé)協(xié)調(diào)下面幾個(gè)中層控制模塊:·輸入流控制模塊,接收所有輸入數(shù)據(jù);·變換流控制模塊,對(duì)內(nèi)部形式數(shù)據(jù)進(jìn)行加工、處理;·輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院60圖11.21一級(jí)分解2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院61變換分析圖11.21展示的頂層到中層是一個(gè)簡(jiǎn)單的一分三結(jié)構(gòu),實(shí)際處理大型系統(tǒng)的復(fù)雜數(shù)據(jù)流時(shí),可能需要兩個(gè)甚至多個(gè)模塊對(duì)應(yīng)一個(gè)中層模塊的功能?!耙患?jí)分解”總的原則是,在完成控制功能并保持低耦合度、高內(nèi)聚度的前提下盡可能減少模塊數(shù)?!皞鞲衅鞅O(jiān)測(cè)子系統(tǒng)”一級(jí)分解如圖11.22所示,其中中層控制模塊的名字概括了所有下屬模塊的功能。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院62圖11.22傳感器監(jiān)測(cè)子系統(tǒng)一級(jí)分解結(jié)果2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院63圖11.23二級(jí)分解步驟6執(zhí)行“二級(jí)分解”任務(wù)是把數(shù)據(jù)流圖中每個(gè)處理框映射成程序結(jié)構(gòu)中一個(gè)適當(dāng)?shù)哪K二級(jí)分解過程是從變換中心的邊界開始沿輸入、輸出通道向外移動(dòng),把遇到的每個(gè)處理框映射為程序結(jié)構(gòu)中的一個(gè)模塊如圖11.23所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院64變換分析雖然圖11.23中,DFD的處理框與程序結(jié)構(gòu)模塊一一對(duì)應(yīng),但按照軟件設(shè)計(jì)原則進(jìn)行設(shè)計(jì)時(shí),可能需要把幾個(gè)處理框聚合為一個(gè)模塊,或者把一個(gè)處理框分解為幾個(gè)模塊。應(yīng)根據(jù)“良好”設(shè)計(jì)的標(biāo)準(zhǔn),進(jìn)行二級(jí)分解。由圖11.20輸出流部分導(dǎo)出的程序結(jié)構(gòu)如圖11.24所示。整個(gè)“傳感器監(jiān)測(cè)子系統(tǒng)”二級(jí)分解的結(jié)果見圖11.25,它僅僅是程序結(jié)構(gòu)的雛形,后續(xù)的復(fù)審和精化會(huì)反復(fù)修改。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院65變換分析程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍有必要為每個(gè)模塊寫一個(gè)簡(jiǎn)要的處理說明,應(yīng)包括:
①進(jìn)出模塊的信息(接口描述);②模塊的局部信息;③處理過程陳述,包括主要的判斷點(diǎn)和任務(wù);④對(duì)有關(guān)限制和一些專門特性的簡(jiǎn)要說明(例如,文件I/0,獨(dú)立于硬件的特性,特殊的實(shí)時(shí)要求等等)。這些描述構(gòu)成第一版設(shè)計(jì)規(guī)約。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院66圖11.24傳感器監(jiān)測(cè)子系統(tǒng)輸出流部分導(dǎo)出的程序結(jié)構(gòu)2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院67圖11.25傳感器監(jiān)測(cè)子系統(tǒng)的程序結(jié)構(gòu)“雛形”2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院68變換分析步驟7采用啟發(fā)式設(shè)計(jì)策略,精化所得程序結(jié)構(gòu)雛形,以求改良軟件質(zhì)量。對(duì)于程序結(jié)構(gòu)的雛形,以“模塊獨(dú)立”為指導(dǎo)思想,對(duì)模塊或合或拆,旨在追求高內(nèi)聚、低耦合,易實(shí)現(xiàn)、易測(cè)試、易維護(hù)的軟件結(jié)構(gòu),整個(gè)過程要保持正確性和一致性。例如,“傳感器監(jiān)測(cè)子系統(tǒng)”的程序結(jié)構(gòu)雛形可修改如下(1)因只存在一條傳入路徑,故輸入控制模塊可刪除;(2)由變換中心產(chǎn)生的整個(gè)子結(jié)構(gòu)可歸并為“建立警報(bào)條件”一個(gè)模塊(選擇電話號(hào)碼的功能納入其中),變換控制模塊不再需要;(3)“格式化顯示”和“生成顯示”兩個(gè)模塊歸并為“產(chǎn)生顯示”一個(gè)模塊?!皞鞲衅鞅O(jiān)測(cè)子系統(tǒng)”精化后的程序結(jié)構(gòu)如圖11.26所示。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院69圖11.26傳感器監(jiān)測(cè)子系統(tǒng)精化后的
程序結(jié)構(gòu)2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院70變換分析上述七個(gè)設(shè)計(jì)步驟的目標(biāo)是給出軟件的一個(gè)整體描述。一旦有了這樣一個(gè)描述,設(shè)計(jì)人員即可從整體角度評(píng)價(jià)和精化軟件的總體結(jié)構(gòu),此時(shí)修改所需耗費(fèi)不多,卻能大大提高軟件質(zhì)量。比較上述設(shè)計(jì)過程與一般直接編碼過程可知,如果源代碼是軟件唯一的表現(xiàn)形式,設(shè)計(jì)人員很難從整體的觀點(diǎn)評(píng)價(jià)和精化軟件。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院7111.2.3事務(wù)分析當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時(shí),即能找到一個(gè)事務(wù)(亦稱觸發(fā)數(shù)據(jù)項(xiàng))和一個(gè)事務(wù)中心,采用事務(wù)分析法更為適宜。下面以“家庭保安系統(tǒng)”中“用戶交互子系統(tǒng)”為例,說明事務(wù)分析法。該子系統(tǒng)的第一級(jí)數(shù)據(jù)流圖如圖11.13所示,精化后得到如圖11.27所示第二級(jí)數(shù)據(jù)流圖。圖中“用戶命令數(shù)據(jù)”流入系統(tǒng)后,沿三條動(dòng)作路徑之一離開系統(tǒng),若將數(shù)據(jù)項(xiàng)“命令類型”看作事務(wù),該子系統(tǒng)的信息流具有明顯的事務(wù)特征。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院72圖11.27用戶交互子系統(tǒng)的二級(jí)數(shù)據(jù)流圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院73事務(wù)分析事務(wù)分析法的步驟與變換分析方法基本類似,主要差別在于從數(shù)據(jù)流圖到程序結(jié)構(gòu)的映射。事務(wù)分析法七個(gè)步驟:步驟1復(fù)審基本系統(tǒng)模型;步驟2復(fù)審并精化軟件數(shù)據(jù)流圖;步驟3確定數(shù)據(jù)流圖的特性;
前三步與變換分析法相同。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院74事務(wù)分析步驟4指出事務(wù)中心,確定由事務(wù)中心發(fā)出的每一動(dòng)作路徑的數(shù)據(jù)流特性。數(shù)條動(dòng)作路徑的公共源頭即為事務(wù)中心,如圖11.27所示,事物中心定位為“啟動(dòng)命令處理”框。事務(wù)中心一經(jīng)確定,即可劃定接受路徑與所有動(dòng)作路徑的界限(圖11.28),隨后判定每一動(dòng)作路徑上數(shù)據(jù)流的特征。例如,圖11.27“口令處理”路徑具有明顯變換特征,可立即劃定輸入、變換和輸出的邊界(圖11.28),當(dāng)進(jìn)行自頂向下設(shè)計(jì)時(shí)再具體實(shí)施映射。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院75圖11.28確定流界2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院76事務(wù)分析步驟5把數(shù)據(jù)流圖映射為事務(wù)處理型的程序結(jié)構(gòu)。事務(wù)處理型的程序結(jié)構(gòu)由“輸入”和“散轉(zhuǎn)”兩部分組成,輸入部分的構(gòu)成方法如變換分析法,即從事務(wù)處理中心開始,沿輸入通路向外推進(jìn),每個(gè)處理框映射為一個(gè)模塊?!吧⑥D(zhuǎn)”部分頂層為一“散轉(zhuǎn)”模塊,它總控所有對(duì)應(yīng)于每一動(dòng)作路徑的控制模塊,每條動(dòng)作路徑都根據(jù)它的信息流特征映射為一個(gè)程序子結(jié)構(gòu)。整個(gè)過程可用圖11.29說明。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院77圖11.29事務(wù)流映射2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院78圖11.30用戶交互子系統(tǒng)的一級(jí)分解2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院79事務(wù)分析步驟6分解并精化事務(wù)結(jié)構(gòu)以及每條動(dòng)作路徑所對(duì)應(yīng)的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)流經(jīng)每一動(dòng)作路徑的數(shù)據(jù)流特征,采用本小節(jié)或上小節(jié)所述設(shè)計(jì)步驟一一導(dǎo)出的。圖11.31給出了各條動(dòng)作路徑映射后的程序結(jié)構(gòu)。步驟7使用啟發(fā)式設(shè)計(jì)策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一步驟與變換分析法相同。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院80圖11.31用戶交互子系統(tǒng)的程序結(jié)構(gòu)雛形2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8111.3實(shí)時(shí)系統(tǒng)設(shè)計(jì)實(shí)時(shí)軟件要求在指定的時(shí)間間隔內(nèi)響應(yīng)客觀事件,所以實(shí)時(shí)軟件設(shè)計(jì)除了要解決一般軟件設(shè)計(jì)遇到的問題外,還要考慮一些特殊因素。如,中斷處理與數(shù)據(jù)傳輸率、分布式數(shù)據(jù)庫(kù)與實(shí)時(shí)操作系統(tǒng)、特定的程序設(shè)計(jì)語言與同步方式等等。因此,各類設(shè)計(jì)活動(dòng)(指總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)等)都變得更為復(fù)雜和困難,同時(shí)對(duì)此類軟件的測(cè)試也需要特殊的技術(shù)和方法。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8211.3.1實(shí)時(shí)系統(tǒng)性能要求實(shí)時(shí)系統(tǒng)的性能與功能同樣重要。因此除了在系統(tǒng)分析時(shí)應(yīng)適當(dāng)?shù)貙⑷蝿?wù)分配到硬件、軟件、用戶與數(shù)據(jù)庫(kù)各系統(tǒng)元素外,軟件設(shè)計(jì)時(shí)更需要很好地協(xié)調(diào)實(shí)時(shí)任務(wù)、系統(tǒng)中斷處理、I/O處理三者的關(guān)系。實(shí)時(shí)系統(tǒng)的性能一般表現(xiàn)為若干與時(shí)間相關(guān)的特性,如響應(yīng)時(shí)間、數(shù)據(jù)傳輸率、故障間隔時(shí)間等等。其中響應(yīng)時(shí)間和數(shù)據(jù)傳輸率是最常用的度量,系統(tǒng)往往追求最大負(fù)載(peakloading)時(shí)的最優(yōu)值。影響系統(tǒng)響應(yīng)時(shí)間的因素包括任務(wù)切換(contextswitching)和中斷等待(interruptlatency)時(shí)間,以及CPU和訪問存儲(chǔ)器的速度。數(shù)據(jù)傳輸率與I/O設(shè)備的性能、總線等待時(shí)間、緩沖區(qū)大小及磁盤性能等因素有關(guān)。任何一個(gè)軟件系統(tǒng)都應(yīng)該具有可靠性,但實(shí)時(shí)系統(tǒng)在可靠性、可重新啟動(dòng)(restart)和故障恢復(fù)等方面有更高的要求,否則可能造成無法估量的損失。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8311.3.2實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素中斷處理是實(shí)時(shí)系統(tǒng)區(qū)別于其他系統(tǒng)的特征之一。這是因?yàn)閷?shí)時(shí)系統(tǒng)必須在由客觀世界確定的時(shí)間間隔內(nèi)響應(yīng)外部激勵(lì)——中斷,由于多個(gè)外部激勵(lì)可能同時(shí)存在,中斷處理應(yīng)設(shè)立優(yōu)先級(jí),保證最重要的任務(wù)總能在指定的時(shí)間約束內(nèi)得到服務(wù),即高優(yōu)先級(jí)事件能中斷低優(yōu)先級(jí)事件的處理過程。中斷處理機(jī)制除了要妥善保存中斷現(xiàn)場(chǎng)以便事后正確恢復(fù)被中斷任務(wù)外,還要避免死鎖和無窮循環(huán)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院84實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素大多數(shù)實(shí)時(shí)操作系統(tǒng)都能根據(jù)事件平均出現(xiàn)頻率、處理事件平均所耗時(shí)間等指標(biāo)動(dòng)態(tài)估測(cè)滿足系統(tǒng)功能與性能的可能性,一旦發(fā)現(xiàn)不能滿足時(shí)間約束,系統(tǒng)應(yīng)立即采取措施,例如將數(shù)據(jù)事先納入緩沖區(qū),以便快速提交系統(tǒng)處理,等等。與許多數(shù)據(jù)處理系統(tǒng)一樣,實(shí)時(shí)系統(tǒng)也經(jīng)常需要數(shù)據(jù)庫(kù)管理功能。分布式數(shù)據(jù)庫(kù)是較好的選擇。采用分布式數(shù)據(jù)庫(kù),系統(tǒng)各任務(wù)能獨(dú)立、快速、可靠地訪問各自的數(shù)據(jù),避免長(zhǎng)時(shí)間在等待隊(duì)列排隊(duì),I/O瓶頸現(xiàn)象得到緩解。若數(shù)據(jù)保持合理冗余,當(dāng)數(shù)據(jù)庫(kù)失效后,整個(gè)系統(tǒng)仍能正常工作。當(dāng)然因此又引發(fā)如何保持?jǐn)?shù)據(jù)一致性和并發(fā)控制等諸多問題。關(guān)于它們的進(jìn)一步討論請(qǐng)見[104]。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院85實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素為實(shí)時(shí)應(yīng)用選擇一個(gè)合適的操作系統(tǒng)并非容易。目前大致有兩類系統(tǒng)可用,一類是為實(shí)時(shí)應(yīng)用開發(fā)的實(shí)時(shí)操作系統(tǒng)(RTOS);另一類是嵌入實(shí)時(shí)服務(wù)例程(real-timeexecutive)的通用操作系統(tǒng)。RTOS除了具有通常的優(yōu)先調(diào)度機(jī)制外,還提供優(yōu)先中斷機(jī)制,并且由于某些中斷事件的處理不允許耽擱從內(nèi)存換出被中斷程序所用的時(shí)間,RTOS還應(yīng)提供內(nèi)存鎖定(memorylocking)功能,以避免程序換入換出所用系統(tǒng)開銷。衡量一個(gè)RTOS實(shí)時(shí)性的重要指標(biāo)是任務(wù)切換時(shí)間和中斷等待時(shí)間,它們代表系統(tǒng)中斷處理的能力。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院86實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素由于對(duì)可靠性和性能方面的特殊要求,為實(shí)時(shí)應(yīng)用選擇適宜的程序設(shè)計(jì)語言也很重要。一般用于實(shí)時(shí)系統(tǒng)的語言應(yīng)包括多任務(wù)能力、直接支持實(shí)時(shí)功能的部件以及有助于程序正確性和可靠性的若干現(xiàn)代程序設(shè)計(jì)特性,如模塊化、抽象數(shù)據(jù)類型、異常處理機(jī)制等等。所謂多任務(wù)能力除了支持多個(gè)任務(wù)并行工作外,還應(yīng)提供它們之間的通訊和同步控制。多任務(wù)能力可在操作系統(tǒng)或程序設(shè)計(jì)語言中實(shí)現(xiàn)。常用的技術(shù)包括信息燈隊(duì)列(queuingsemphores)、郵箱(mailboxes)和消息收發(fā)系統(tǒng)(messagesystems)等。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院87實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素對(duì)于可靠性、安全性要求極高的強(qiáng)實(shí)時(shí)系統(tǒng)(系統(tǒng)響應(yīng)時(shí)間以毫秒計(jì)),為了保證軟件的正確性、實(shí)時(shí)性、可靠性、安全性,不得不限制程序語言中經(jīng)常出錯(cuò)的某些成分的使用,并制定出嚴(yán)格的行業(yè)標(biāo)準(zhǔn)。如國(guó)外汽車工業(yè)軟件可靠性聯(lián)合會(huì)制定的C語言編程規(guī)范“MISRA-C:1998”、我國(guó)制定的“航天器軟件C語言編程規(guī)范”等。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院88實(shí)時(shí)系統(tǒng)設(shè)計(jì)要素這些規(guī)范對(duì)使用C語言編程做了100多條限制,涉及數(shù)據(jù)類型、標(biāo)識(shí)符、表達(dá)式、數(shù)組、指針、函數(shù)與過程、預(yù)處理命令、括號(hào)、注釋、字符集、編譯器、初始化等諸多方面。如,不得使用容易造成混淆的邏輯比較符“==”,不得使用指針,不得使用動(dòng)態(tài)數(shù)組等。編譯器生成的目標(biāo)代碼、初始化和軟件運(yùn)行環(huán)境也必須規(guī)范。這些規(guī)則降低了編程的難度和軟件的復(fù)雜性,明確了編程和運(yùn)行環(huán)境,增強(qiáng)了軟件的可理解性、可測(cè)試性、可維護(hù)性,從而達(dá)到保證軟件正確性、安全性、實(shí)時(shí)性的目標(biāo)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8911.3.3實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法實(shí)時(shí)軟件設(shè)計(jì)除了要體現(xiàn)一般高質(zhì)量軟件的特性外,還要考慮下列問題:(1)中斷與任務(wù)切換的表示;(2)多任務(wù)或多處理機(jī)系統(tǒng)出現(xiàn)的并發(fā);(3)任務(wù)間的通信與同步;(4)數(shù)據(jù)傳輸率的大幅度變化;(5)異常處理;(6)軟件與數(shù)據(jù)庫(kù)、操作系統(tǒng)、硬件及其他系統(tǒng)元素的交互。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院90實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法實(shí)時(shí)軟件設(shè)計(jì)方法應(yīng)能部分或全部解決上述問題。過去二十多年里,用于實(shí)時(shí)軟件設(shè)計(jì)的方法可分為兩類。⑴在面向數(shù)據(jù)流、面向?qū)ο蠛兔嫦驍?shù)據(jù)的方法上擴(kuò)充實(shí)時(shí)能力;⑵基于有窮狀態(tài)機(jī)、或基于Petri網(wǎng)、或基于消息傳遞機(jī)制、或基于特殊的實(shí)時(shí)語言。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院91實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法本章第一節(jié)曾對(duì)數(shù)據(jù)流圖進(jìn)行實(shí)時(shí)擴(kuò)充,使之用于實(shí)時(shí)系統(tǒng)分析。沿用這一思路,Gomaa在面向數(shù)據(jù)流的軟件設(shè)計(jì)方法中,擴(kuò)充了任務(wù)通信與同步的表示、狀態(tài)依賴的表示以及將通常的數(shù)據(jù)流與實(shí)時(shí)客觀世界連接的方法,產(chǎn)生了適用于實(shí)時(shí)系統(tǒng)設(shè)計(jì)的方法DARTS。該方法的任務(wù)同步采用互斥等待和信號(hào)燈交叉激活的方式;任務(wù)通信則用消息收發(fā)機(jī)制實(shí)現(xiàn)。若產(chǎn)生消息的任務(wù)向接收消息的任務(wù)送出消息后立即等待回答,則稱緊耦合通信;反之兩任務(wù)各行其是,用消息隊(duì)列緩沖消息,則稱松耦合通信。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院92實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法DARTS方法是在面向數(shù)據(jù)流分析的基礎(chǔ)上,識(shí)別系統(tǒng)中存在的任務(wù)并定義任務(wù)界面。DFD中不反映各個(gè)轉(zhuǎn)換之間的并發(fā)和同步特性。DARTS方法指明,在DFD中具有下列性質(zhì)的某個(gè)或某組轉(zhuǎn)換可設(shè)計(jì)為一個(gè)獨(dú)立的任務(wù):①實(shí)現(xiàn)I/O交互功能的轉(zhuǎn)換;②實(shí)現(xiàn)時(shí)間敏感功能的轉(zhuǎn)換;③實(shí)現(xiàn)計(jì)算功能的轉(zhuǎn)換;④具有功能內(nèi)聚性的一組轉(zhuǎn)換;⑤具有時(shí)間內(nèi)聚性的一組轉(zhuǎn)換;⑥需要按同一周期執(zhí)行的一組轉(zhuǎn)換。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院93實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法系統(tǒng)任務(wù)確定后,DARTS通過任務(wù)通信模塊和任務(wù)同步模塊描述任務(wù)間的通信。任務(wù)通信模塊分為消息通信模塊和信息隱藏模塊前者支持消息通信,通過管理消息隊(duì)列和同步原語分別實(shí)現(xiàn)緊耦合通信和松耦合通信,圖11.32(a)信息隱藏模塊集中實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和訪問方法,支持其他任務(wù)對(duì)數(shù)據(jù)集的訪問,圖11.32(b)任務(wù)同步模塊的作用是管理“控制”,而不是“數(shù)據(jù)”任務(wù)間的傳遞。
一個(gè)任務(wù)可向另一任務(wù)發(fā)出信號(hào)告知某個(gè)事件發(fā)生,另一任務(wù)可能正等待這一信號(hào),圖11.32(c)2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院94圖11.32DARTS的各種任務(wù)接口模塊2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院95實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法一個(gè)任務(wù)可看作是一段獨(dú)立的順序程序。當(dāng)一個(gè)任務(wù)的邊界確定后,在此邊界內(nèi)可用“變換分析”和“事務(wù)分析”技術(shù)映射出程序結(jié)構(gòu)。控制流程不但與任務(wù)的輸入信息有關(guān),還依賴系統(tǒng)當(dāng)前所處狀態(tài)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院9611.3.4設(shè)計(jì)實(shí)例以某空中交通控制系統(tǒng)(ATCS)為例,說明用DARTS方法如何進(jìn)行頂層設(shè)計(jì)。例11.2在如圖11.33所示的ATCS控制區(qū)域中,系統(tǒng)雷達(dá)可以測(cè)得飛機(jī)類型、方位和高度等數(shù)據(jù),這些數(shù)據(jù)經(jīng)分析確認(rèn)后立即存入數(shù)據(jù)庫(kù)并顯示給空中交通管理員,他還能從數(shù)據(jù)庫(kù)中檢索其他所需信息。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院97圖11.33ATCS示意圖圖11.34ATCS的頂級(jí)DFD該系統(tǒng)對(duì)實(shí)時(shí)性和可靠性有嚴(yán)格的要求,數(shù)據(jù)獲取、數(shù)據(jù)分析及數(shù)據(jù)庫(kù)更新都必須在指定的時(shí)間內(nèi)完成。交通管理員與系統(tǒng)的交互不得影響系統(tǒng)的正常運(yùn)行。采用面向數(shù)據(jù)流分析方法可得到ATCS的頂級(jí)和1級(jí)DFD(圖11.34和圖11.35)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院98圖11.35
ATCS的1級(jí)DFD2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院99設(shè)計(jì)實(shí)例按照DARTS識(shí)別任務(wù)的標(biāo)準(zhǔn),在1級(jí)DFD中可定義下列系統(tǒng)任務(wù):
數(shù)據(jù)獲取任務(wù)、數(shù)據(jù)分析任務(wù)、數(shù)據(jù)庫(kù)I/O任務(wù)、顯示任務(wù)和管理員交互任務(wù)。它們?cè)趫D11.36上分別用陰影部分標(biāo)出。上述任務(wù)有可能進(jìn)一步分割成若干并發(fā)任務(wù)。圖11.37是ATCS的控制轉(zhuǎn)換圖,描述系統(tǒng)在事件驅(qū)動(dòng)下從一個(gè)狀態(tài)(此時(shí)狀態(tài)對(duì)應(yīng)著任務(wù))轉(zhuǎn)變?yōu)榱硪粻顟B(tài)的過程。圖11.38給出DARTS方法表示的各任務(wù)之間的接口。以此為基礎(chǔ),可為每一任務(wù)建立2級(jí)DFD,并用通常的方法將DFD映射為程序結(jié)構(gòu),程序結(jié)構(gòu)的內(nèi)部模塊設(shè)計(jì)也采用通常的過程設(shè)計(jì)方法。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院100圖11.36ATCS的任務(wù)劃分2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院101圖11.37簡(jiǎn)化的ATCS狀態(tài)圖2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院102圖11.38ATCS的控制與通信采用DARTS方法。設(shè)計(jì)人員可方便地定義任務(wù),表示任務(wù)之間的通信和并發(fā),并用任務(wù)接口模塊實(shí)現(xiàn)任務(wù)的同步和通信活動(dòng)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院103小
結(jié)面向數(shù)據(jù)流的分析與設(shè)計(jì)技術(shù)在軟件工程發(fā)展史上具有重要地位,目前仍在廣泛應(yīng)用,特別是實(shí)時(shí)嵌入式系統(tǒng)。數(shù)據(jù)流圖、數(shù)據(jù)字典和實(shí)體-關(guān)系圖是面向數(shù)據(jù)流分析的基本機(jī)制。基于數(shù)據(jù)流圖進(jìn)行需求分析的過程為:創(chuàng)建數(shù)據(jù)流模型、創(chuàng)建控制流模型、針對(duì)原子級(jí)處理功能給出過程規(guī)約。維持?jǐn)?shù)據(jù)流圖各層次平衡、保證需求和設(shè)計(jì)模型一致性是非常重要的原則。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院104小
結(jié)基于數(shù)據(jù)流圖進(jìn)行軟件設(shè)計(jì)的過程為:①確定信息流的類型;②劃定流界;③將DFD映射為程序結(jié)構(gòu);④提取層次控制結(jié)構(gòu);⑤通過設(shè)計(jì)復(fù)審和使用啟發(fā)式策略進(jìn)一步精化模型結(jié)構(gòu)。本章結(jié)合“家庭保安系統(tǒng)”實(shí)例給出了面向數(shù)據(jù)流分析與設(shè)計(jì)的過程。為將面向數(shù)據(jù)流的分析與設(shè)計(jì)方法用于實(shí)時(shí)系統(tǒng)開發(fā),Ward&Mellor以及Hatley&Pirbhai分別在數(shù)據(jù)流圖中引入實(shí)時(shí)機(jī)制。DARTS方法適于實(shí)時(shí)系統(tǒng)設(shè)計(jì)。2023/6/12國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院105習(xí)
題11.1簡(jiǎn)述數(shù)據(jù)流圖的主要思想,概述使用數(shù)據(jù)流圖進(jìn)行需求分析的過程。11.2分別采用數(shù)據(jù)流方法中的哪些技術(shù)來完成用戶需求的精確化、一致化和完全化任務(wù)?11.3
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年麥芽糖漿項(xiàng)目可行性研究報(bào)告
- 投資建設(shè)鋁合金型材、配件項(xiàng)目可行性研究報(bào)告模板
- 2025年中國(guó)井式氣體滲透碳爐行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 河道整治土方開挖運(yùn)輸協(xié)議
- 2025年度汽車借用免責(zé)及車輛使用安全協(xié)議書
- 旅游景點(diǎn)特色裝修合同模板
- 2025年度充電樁充電設(shè)施投資合作協(xié)議
- 2025年度快遞倉(cāng)庫(kù)租賃合同(含快遞安全監(jiān)控服務(wù))
- 2025年度項(xiàng)目組臨時(shí)食宿補(bǔ)貼保障協(xié)議
- 2025年度房屋房貸貸款合同法律風(fēng)險(xiǎn)防范指南
- 固定翼無人機(jī)飛行原理課件
- 軟基處治面積四方聯(lián)測(cè)測(cè)量記錄表(清淤后)
- XXXXX醫(yī)院腎友會(huì)活動(dòng)方案
- 隧道施工重大危險(xiǎn)源辨識(shí)
- 環(huán)境監(jiān)理業(yè)務(wù)手冊(cè)(word)
- 人文關(guān)懷與優(yōu)質(zhì)護(hù)理課件
- 知識(shí)圖譜可視化-Neo4j(windows)
- 光伏電站作業(yè)危險(xiǎn)點(diǎn)分析及預(yù)控措施手冊(cè)
- 2021年深圳實(shí)驗(yàn)學(xué)校初中部七年級(jí)入學(xué)分班考試數(shù)學(xué)試卷及答案解析
- 水文流量測(cè)驗(yàn)
- 合作共贏商務(wù)合作PPT模板(基礎(chǔ)教育)
評(píng)論
0/150
提交評(píng)論