




已閱讀5頁(yè),還剩103頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件設(shè)計(jì)的任務(wù) 把需求變換成軟件表示的過(guò)程數(shù)據(jù)結(jié)構(gòu)軟件的系統(tǒng)結(jié)構(gòu) 設(shè)計(jì)過(guò)程 制定規(guī)范總體設(shè)計(jì)處理設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)可靠性設(shè)計(jì)編寫文檔評(píng)審 設(shè)計(jì)是后續(xù)開發(fā)步驟及軟件維護(hù)工作的基礎(chǔ) 如果沒(méi)有設(shè)計(jì) 只能建立一個(gè)不穩(wěn)定的系統(tǒng)結(jié)構(gòu) 制定規(guī)范 確認(rèn)用戶要求能否實(shí)現(xiàn)選擇合適的設(shè)計(jì)方法規(guī)定設(shè)計(jì)文檔的編制標(biāo)準(zhǔn)規(guī)定編碼的信息形式 與硬件的接口規(guī)約 2 軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì) 基于功能層次結(jié)構(gòu)建立系統(tǒng) 將系統(tǒng)按功能劃分成模塊的層次結(jié)構(gòu)確定每個(gè)模塊的功能確定模塊間的調(diào)用關(guān)系確定模塊間的接口評(píng)估模塊劃分的質(zhì)量 導(dǎo)出模塊結(jié)構(gòu)的規(guī)則 3 處理設(shè)計(jì) 確定為實(shí)現(xiàn)系統(tǒng)的功能需求所必需的算法 評(píng)估算法的性能確定為滿足系統(tǒng)的性能需求所必需的算法和模塊間的控制方式確定外部信號(hào)的接收發(fā)送形式 4 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)以及數(shù)據(jù)庫(kù)的模式 子模式 進(jìn)行數(shù)據(jù)完整性和安全性的設(shè)計(jì)確定輸入 輸出文件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)結(jié)合算法設(shè)計(jì) 確定算法所必需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作確定對(duì)邏輯數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊 軟件包 若需要與操作系統(tǒng)或調(diào)度程序接口所必須的控制表等數(shù)據(jù)時(shí) 確定其詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則 5 可靠性設(shè)計(jì) 可靠性設(shè)計(jì)也叫做質(zhì)量設(shè)計(jì)在運(yùn)行過(guò)程中 為了適應(yīng)環(huán)境的變化和用戶新的要求 需經(jīng)常對(duì)軟件進(jìn)行改造和修正 在軟件開發(fā)的一開始就要確定軟件可靠性和其它質(zhì)量指標(biāo) 考慮相應(yīng)措施 以使得軟件易于修改和易于維護(hù) 6 編寫系統(tǒng)設(shè)計(jì)階段的文檔 概要設(shè)計(jì)階段完成時(shí)應(yīng)編寫以下文檔 系統(tǒng)設(shè)計(jì)說(shuō)明書數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書用戶手冊(cè)制定初步的測(cè)試計(jì)劃 7 概要設(shè)計(jì)評(píng)審 可追溯性 確認(rèn)該設(shè)計(jì)是否復(fù)蓋了所有已確定的軟件需求 軟件每一成份是否可追溯到某一項(xiàng)需求接口 確認(rèn)該軟件的內(nèi)部接口與外部接口是否已經(jīng)明確定義 模塊是否滿足高內(nèi)聚和低耦合的要求 模塊作用范圍是否在其控制范圍之內(nèi)風(fēng)險(xiǎn) 確認(rèn)該設(shè)計(jì)在現(xiàn)有技術(shù)條件下和預(yù)算范圍內(nèi)是否能按時(shí)實(shí)現(xiàn) 實(shí)用性 確認(rèn)該設(shè)計(jì)對(duì)于需求的解決方案是否實(shí)用技術(shù)清晰度 確認(rèn)該設(shè)計(jì)是否以一種易于翻譯成代碼的形式表達(dá)可維護(hù)性 確認(rèn)該設(shè)計(jì)是否考慮了方便未來(lái)的維護(hù)質(zhì)量 確認(rèn)該設(shè)計(jì)是否表現(xiàn)出良好的質(zhì)量特征 各種選擇方案 看是否考慮過(guò)其它方案 比較各種選擇方案的標(biāo)準(zhǔn)是什么限制 評(píng)估對(duì)該軟件的限制是否現(xiàn)實(shí) 是否與需求一致其它具體問(wèn)題 對(duì)于文檔 可測(cè)試性 設(shè)計(jì)過(guò)程 等進(jìn)行評(píng)估 自頂向下 逐步細(xì)化 將軟件的體系結(jié)構(gòu)按自頂向下方式 對(duì)各個(gè)層次的過(guò)程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化 直到用程序設(shè)計(jì)語(yǔ)言的語(yǔ)句能夠?qū)崿F(xiàn)為止 從而最后確立整個(gè)的體系結(jié)構(gòu) 軟件設(shè)計(jì)的原則 軟件結(jié)構(gòu) 軟件結(jié)構(gòu)包括兩部分 程序模塊的層次結(jié)構(gòu)和數(shù)據(jù)的結(jié)構(gòu)軟件的體系結(jié)構(gòu)通過(guò)一個(gè)劃分過(guò)程來(lái)完成 該劃分過(guò)程從需求分析確立的目標(biāo)系統(tǒng)的模型出發(fā) 對(duì)整個(gè)問(wèn)題進(jìn)行分割 使其每個(gè)部分用一個(gè)或幾個(gè)軟件成份加以解決 整個(gè)問(wèn)題就解決了 2 舉例 程序結(jié)構(gòu) 程序結(jié)構(gòu)表明了程序各個(gè)部件 模塊 的組織情況 是軟件的過(guò)程表示 結(jié)構(gòu)圖 結(jié)構(gòu)圖反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系 它以特定的符號(hào)表示模塊 模塊間的調(diào)用關(guān)系和模塊間信息的傳遞 模塊 模塊用矩形框表示 并用模塊的名字標(biāo)記它 模塊的調(diào)用關(guān)系和接口 模塊之間用單向箭頭聯(lián)結(jié) 箭頭從調(diào)用模塊指向被調(diào)用模塊 模塊間的信息傳遞 當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí) 調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊 以使被調(diào)用模塊能夠運(yùn)行 而被調(diào)用模塊在執(zhí)行過(guò)程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊 在模塊A的箭頭尾部標(biāo)以一個(gè)菱形符號(hào) 表示模塊A有條件地調(diào)用另一個(gè)模塊B 當(dāng)一個(gè)在調(diào)用箭頭尾部標(biāo)以一個(gè)弧形符號(hào) 表示模塊A反復(fù)調(diào)用模塊C和模塊D 程序的系統(tǒng)結(jié)構(gòu)圖 模塊化 軟件系統(tǒng)的模塊化是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分 稱之為模塊 這些模塊可以被組裝起來(lái)以滿足整個(gè)問(wèn)題的需求 把問(wèn)題 子問(wèn)題的分解與軟件開發(fā)中的系統(tǒng) 子系統(tǒng)或系統(tǒng) 模塊對(duì)應(yīng)起來(lái) 就能夠把一個(gè)大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu) 抽象化 軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí) 可有不同的抽象層次 在最高的抽象層次上 可以使用問(wèn)題所處環(huán)境的語(yǔ)言概括地描述問(wèn)題的解法 在較低的抽象層次上 則采用過(guò)程化的方法 1 過(guò)程的抽象在軟件工程中 從系統(tǒng)定義到實(shí)現(xiàn) 每進(jìn)展一步都可以看做是對(duì)軟件解決方法的抽象化過(guò)程的一次細(xì)化 在軟件需求分析階段 用 問(wèn)題所處環(huán)境的為大家所熟悉的術(shù)語(yǔ) 來(lái)描述軟件的解決方法 在從概要設(shè)計(jì)到詳細(xì)設(shè)計(jì)的過(guò)程中 抽象化的層次逐次降低 當(dāng)產(chǎn)生源程序時(shí)到達(dá)最低抽象層次 例 開發(fā)一個(gè)CAD軟件的三層抽象 抽象層次 用問(wèn)題所處環(huán)境的術(shù)語(yǔ)來(lái)描述這個(gè)軟件 該軟件包括一個(gè)計(jì)算機(jī)繪圖界面 向繪圖員顯示圖形 以及一個(gè)數(shù)字化儀界面 用以代替繪圖板和丁字尺 所有直線 折線 矩形 圓及曲線的描畫 所有的幾何計(jì)算 所有的剖面圖和輔助視圖都可以用這個(gè)CAD軟件實(shí)現(xiàn) 抽象層次 任務(wù)需求的描述 CADSOFTWARETASKSuserinteractiontask 2 Ddrawingcreationtask graphicsdisplaytask drawingfilemanagementtask end 在這個(gè)抽象層次上 未給出 怎樣做 的信息 不能直接實(shí)現(xiàn) 抽象層次 程序過(guò)程表示 以2 D 二維 繪圖生成任務(wù)為例 PROCEDURE 2 DdrawingcreationREPEATUNTIL drawingcreationtaskterminates DOWHILE digitizerinteractionoccurs digitizerinterfacetask DETERMINEdrawingrequestCASE line linedrawingtask rectangle rectangledrawingtask circle circledrawingtask 2 數(shù)據(jù)抽象在不同層次上描述數(shù)據(jù)對(duì)象的細(xì)節(jié) 定義與該數(shù)據(jù)對(duì)象相關(guān)的操作 例如 在CAD軟件中 定義一個(gè)叫做drawing的數(shù)據(jù)對(duì)象 可將drawing規(guī)定為一個(gè)抽象數(shù)據(jù)類型 定義它的內(nèi)部細(xì)節(jié)為 TYPEdrawingISSTRUCTUREDEFINDnumberISSTRINGLENGTH 12 geometryDEFIND notesISSTRINGLENGTH 256 BOMDEFINDENDdrawingTYPE 數(shù)據(jù)抽象drawing本身由另外一些數(shù)據(jù)抽象 如geometry BOM billofmaterials 構(gòu)成定義drawing的抽象數(shù)據(jù)類型之后 可引用它來(lái)定義其它數(shù)據(jù)對(duì)象 而不必涉及drawing的內(nèi)部細(xì)節(jié)例如 定義 blue printISINSTANCEOFdrawing 或schematicISINSTANCEOFdrawing 信息隱蔽 由parnas方法提倡的信息隱蔽是指 每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其它模塊來(lái)說(shuō)是隱蔽的 也就是說(shuō) 模塊中所包含的信息 包括數(shù)據(jù)和過(guò)程 不允許其它不需要這些信息的模塊使用 模塊的獨(dú)立性 模塊 Module 模塊 又稱 組件 它一般具有如下三個(gè)基本屬性 功能 描述該模塊實(shí)現(xiàn)什么功能邏輯 描述模塊內(nèi)部怎么做狀態(tài) 該模塊使用時(shí)的環(huán)境和條件 在描述一個(gè)模塊時(shí) 還必須按模塊的外部特性與內(nèi)部特性分別描述模塊的外部特性模塊的模塊名 參數(shù)表 其中的輸入?yún)?shù)和輸出參數(shù) 以及給程序以至整個(gè)系統(tǒng)造成的影響模塊的內(nèi)部特性完成其功能的程序代碼和僅供該模塊內(nèi)部使用的數(shù)據(jù) 模塊獨(dú)立性模塊獨(dú)立性 是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能 而和軟件系統(tǒng)中其它的模塊的接口是簡(jiǎn)單的例如 若一個(gè)模塊只具有單一的功能且與其它模塊沒(méi)有太多的聯(lián)系 則稱此模塊具有模塊獨(dú)立性一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性 即模塊間耦合和模塊內(nèi)聚 耦合是模塊之間的互相連接的緊密程度的度量 內(nèi)聚是模塊功能強(qiáng)度 一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度 的度量 模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊 模塊間的耦合 c 模塊內(nèi)聚 軟件體系結(jié)構(gòu) 軟件設(shè)計(jì)的一個(gè)目標(biāo)是建立軟件的體系結(jié)構(gòu)表示 將這個(gè)表示當(dāng)作一個(gè)框架 從事更詳細(xì)的設(shè)計(jì)活動(dòng) 系統(tǒng)結(jié)構(gòu) 體系結(jié)構(gòu)設(shè)計(jì)的第一步是將系統(tǒng)分解為一系列相互作用的子系統(tǒng) 在最抽象層次 系統(tǒng)可視為一個(gè)塊圖 圖中每個(gè)盒子表示一個(gè)子系統(tǒng) 每個(gè)盒子內(nèi)的盒子表明子系統(tǒng)本身還可分解為子系統(tǒng) 箭頭表示一個(gè)子系統(tǒng)向另一子系統(tǒng)傳送數(shù)據(jù)或控制 組裝機(jī)器人控制系統(tǒng)的塊圖 視覺(jué)系統(tǒng) 對(duì)象識(shí)別系統(tǒng) 手臂控制器 機(jī)械抓控制器 組裝選擇系統(tǒng) 組裝系統(tǒng) 傳送帶控制器 結(jié)構(gòu)化設(shè)計(jì)方法 首先研究 分析和審查數(shù)據(jù)流圖 從軟件的需求規(guī)格說(shuō)明中弄清數(shù)據(jù)流加工的過(guò)程 對(duì)于發(fā)現(xiàn)的問(wèn)題及時(shí)解決 然后根據(jù)數(shù)據(jù)流圖決定問(wèn)題的類型 數(shù)據(jù)處理問(wèn)題典型的類型有兩種 變換型和事務(wù)型 針對(duì)兩種不同的類型分別進(jìn)行分析處理 由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖 利用一些啟發(fā)式原則來(lái)改進(jìn)系統(tǒng)的初始結(jié)構(gòu)圖 直到得到符合要求的結(jié)構(gòu)圖為止 修改和補(bǔ)充數(shù)據(jù)詞典 制定測(cè)試計(jì)劃 在系統(tǒng)結(jié)構(gòu)圖中的模塊 傳入模塊 從下屬模塊取得數(shù)據(jù) 經(jīng)過(guò)某些處理 再將其傳送給上級(jí)模塊 它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流 傳出模塊 從上級(jí)模塊獲得數(shù)據(jù) 進(jìn)行某些處理 再將其傳送給下屬模塊 它傳送的數(shù)據(jù)流叫做邏輯輸出數(shù)據(jù)流 變換模塊 它從上級(jí)模塊取得數(shù)據(jù) 進(jìn)行特定的處理 轉(zhuǎn)換成其它形式 再傳送回上級(jí)模塊 它加工的數(shù)據(jù)流叫做變換數(shù)據(jù)流 協(xié)調(diào)模塊 對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊 變換型系統(tǒng)結(jié)構(gòu)圖 變換型數(shù)據(jù)處理問(wèn)題的工作過(guò)程大致分為三步 即取得數(shù)據(jù) 變換數(shù)據(jù)和給出數(shù)據(jù) 相應(yīng)于取得數(shù)據(jù) 變換數(shù)據(jù) 給出數(shù)據(jù) 變換型系統(tǒng)結(jié)構(gòu)圖由輸入 中心變換和輸出等三部分組成 變換分析 變換分析方法由以下四步組成 重畫數(shù)據(jù)流圖 區(qū)分有效 邏輯 輸入 有效 邏輯 輸出和中心變換部分 進(jìn)行一級(jí)分解 設(shè)計(jì)上層模塊 進(jìn)行二級(jí)分解 設(shè)計(jì)輸入 輸出和中心變換部分的中 下層模塊 在選擇模塊設(shè)計(jì)的次序時(shí) 必須對(duì)一個(gè)模塊的全部直接下屬模塊都設(shè)計(jì)完成之后 才能轉(zhuǎn)向另一個(gè)模塊的下層模塊的設(shè)計(jì) 設(shè)計(jì)原則 在設(shè)計(jì)下層模塊時(shí) 應(yīng)考慮模塊的耦合和內(nèi)聚問(wèn)題 以提高初始結(jié)構(gòu)圖的質(zhì)量 使用 黑箱 技術(shù) 在設(shè)計(jì)當(dāng)前模塊時(shí) 先把這個(gè)模塊的所有下層模塊定義成 黑箱 在設(shè)計(jì)中利用它們時(shí) 暫時(shí)不考慮其內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn) 在這一步定義好的 黑箱 在下一步就可以對(duì)它們進(jìn)行設(shè)計(jì)和加工 這樣 又會(huì)導(dǎo)致更多的 黑箱 最后 全部 黑箱 的內(nèi)容和結(jié)構(gòu)應(yīng)完全被確定 在模塊劃分時(shí) 一個(gè)模塊的直接下屬模塊一般在5個(gè)左右 如果直接下屬模塊超過(guò)10個(gè) 可設(shè)立中間層次 如果出現(xiàn)了以下情況 就停止模塊的功能分解 當(dāng)模塊不能再細(xì)分為明顯的子任務(wù)時(shí) 當(dāng)分解成用戶提供的模塊或程序庫(kù)的子程序時(shí) 當(dāng)模塊的界面是輸入 輸出設(shè)備傳送的信息時(shí) 當(dāng)模塊不宜再分解得過(guò)小時(shí) 事務(wù)流基本系統(tǒng)模型意味著變換流 因此 原則上所有信息流都可以歸結(jié)為這一類 但是 當(dāng)數(shù)據(jù)流圖具有和圖類似的形狀時(shí) 這種數(shù)據(jù)流是 以事務(wù)為中心的 也就是說(shuō) 數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理T 這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來(lái)執(zhí)行 這類數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)流 稱為事務(wù)流 圖中的處理T稱為事務(wù)中心 它完成下述任務(wù) 1 接收輸入數(shù)據(jù) 輸入數(shù)據(jù)又稱為事務(wù) 2 分析每個(gè)事務(wù)以確定它的類型 3 根據(jù)事務(wù)類型選取一條活動(dòng)通路 圖事務(wù)流 事務(wù)分析 在很多軟件應(yīng)用中 存在某種作業(yè)數(shù)據(jù)流 它可以引發(fā)一個(gè)或多個(gè)處理 這些處理能夠完成該作業(yè)要求的功能 這種數(shù)據(jù)流就叫做事務(wù) 與變換分析一樣 事務(wù)分析也是從分析數(shù)據(jù)流圖開始 自頂向下 逐步分解 建立系統(tǒng)到結(jié)構(gòu)圖 事務(wù)型系統(tǒng)結(jié)構(gòu)圖 它接受一項(xiàng)事務(wù) 根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì) 選擇分派一個(gè)適當(dāng)?shù)奶幚韱卧?然后給出結(jié)果 在事務(wù)型系統(tǒng)結(jié)構(gòu)圖中 事務(wù)中心模塊按所接受的事務(wù)的類型 選擇某一事務(wù)處理模塊執(zhí)行 各事務(wù)處理模塊并列 每個(gè)事務(wù)處理模塊可能要調(diào)用若干個(gè)操作模塊 而操作模塊又可能調(diào)用若干個(gè)細(xì)節(jié)模塊 事務(wù)分析過(guò)程 識(shí)別事務(wù)源利用數(shù)據(jù)流圖和數(shù)據(jù)詞典 從問(wèn)題定義和需求分析的結(jié)果中 找出各種需要處理的事務(wù) 通常 事務(wù)來(lái)自物理輸入裝置 有時(shí) 設(shè)計(jì)人員還必須區(qū)別系統(tǒng)的輸入 中心加工和輸出中產(chǎn)生的事務(wù) 規(guī)定適當(dāng)?shù)氖聞?wù)型結(jié)構(gòu)在確定了該數(shù)據(jù)流圖具有事務(wù)型特征之后 根據(jù)模塊劃分理論 建立適當(dāng)?shù)氖聞?wù)型結(jié)構(gòu) 識(shí)別各種事務(wù)和它們定義的操作 從問(wèn)題定義和需求分析中找出的事務(wù)及其操作所必需的全部信息 對(duì)于系統(tǒng)內(nèi)部產(chǎn)生的事務(wù) 必須仔細(xì)地定義它們的操作 注意利用公用模塊在事務(wù)分析的過(guò)程中 如果不同事務(wù)的一些中間模塊可由具有類似的語(yǔ)法和語(yǔ)義的若干個(gè)低層模塊組成 則可以把這些低層模塊構(gòu)造成公用模塊 對(duì)每一事務(wù) 或?qū)β?lián)系密切的一組事務(wù) 建立一個(gè)事務(wù)處理模塊 如果發(fā)現(xiàn)在系統(tǒng)中有類似的事務(wù) 可以把它們組成一個(gè)事務(wù)處理模塊 對(duì)事務(wù)處理模塊規(guī)定它們?nèi)康南聦硬僮髂K 對(duì)操作模塊規(guī)定它們的全部細(xì)節(jié)模塊變換分析是軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的主要方法 一般 一個(gè)大型的軟件系統(tǒng)是變換型結(jié)構(gòu)和事務(wù)型結(jié)構(gòu)的混合結(jié)構(gòu) 所以 我們通常利用以變換分析為主 事務(wù)分析為輔的方式進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì) 設(shè)計(jì)過(guò)程圖說(shuō)明了使用面向數(shù)據(jù)流方法逐步設(shè)計(jì)的過(guò)程 圖面向數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程 假設(shè)的儀表板將完成下述功能 通過(guò)模 數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口 在發(fā)光二極管面板上顯示數(shù)據(jù) 指示每小時(shí)英里數(shù) mile h 行駛的里程 每加侖油行駛的英里數(shù) mile Gal 等等 指示加速或減速 超速警告 如果車速超過(guò)55mile h 則發(fā)出超速警告鈴聲 在軟件需求分析階段應(yīng)該對(duì)上述每條要求以及系統(tǒng)的其他特點(diǎn)進(jìn)行全面的分析評(píng)價(jià) 建立起必要的文檔資料 特別是數(shù)據(jù)流圖 實(shí)例分析 設(shè)計(jì)步驟第1步復(fù)查基本系統(tǒng)模型 復(fù)查的目的是確保系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)符合實(shí)際 第2步復(fù)查并精化數(shù)據(jù)流圖 數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖 假設(shè)在需求分析階段產(chǎn)生的數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖如圖所示 這個(gè)數(shù)據(jù)流圖對(duì)于軟件結(jié)構(gòu)設(shè)計(jì)的 第一次分割 而言已經(jīng)足夠詳細(xì)了 因此不需要精化就可以進(jìn)行下一個(gè)設(shè)計(jì)步驟 第3步分析確定數(shù)據(jù)流的類型 一般地說(shuō) 一個(gè)系統(tǒng)中的所有信息流都可以認(rèn)為是變換流 但是 當(dāng)遇到有明顯事務(wù)特性的信息流時(shí) 建議采用事務(wù)分析方法進(jìn)行設(shè)計(jì) 在這一步設(shè)計(jì)人員應(yīng)該根據(jù)數(shù)據(jù)流圖中占優(yōu)勢(shì)的屬性 確定數(shù)據(jù)流的全局特性 此外還應(yīng)該把具有和全局特性不同的特點(diǎn)的局部區(qū)域孤立出來(lái) 以后可以按照這些子數(shù)據(jù)流的特點(diǎn)精化根據(jù)全局特性得出的軟件結(jié)構(gòu) 從圖可以看出 數(shù)據(jù)沿著兩條輸入通路進(jìn)入系統(tǒng) 然后沿著五條通路離開 沒(méi)有明顯的事務(wù)中心 因此可以認(rèn)為這個(gè)信息流具有變換流的總特征 第4步確定輸入流和輸出流的邊界 從而孤立出變換中心 對(duì)于汽車數(shù)字儀表板的例子 設(shè)計(jì)人員確定的流的邊界如圖所示 圖具有邊界的數(shù)據(jù)流圖 第5步完成 第一級(jí)分解 軟件結(jié)構(gòu)代表對(duì)控制的自頂向下的分配 所謂分解就是分配控制的過(guò)程 對(duì)于變換流的情況 數(shù)據(jù)流圖被映射成一個(gè)特殊的軟件結(jié)構(gòu) 這個(gè)結(jié)構(gòu)控制輸入 變換和輸出等信息處理過(guò)程 圖說(shuō)明了第一級(jí)分解的方法 位于軟件結(jié)構(gòu)最頂層的控制模塊Cm協(xié)調(diào)下述從屬的控制功能 圖第一級(jí)分解的方法 輸入信息處理控制模塊Ca 協(xié)調(diào)對(duì)所有輸入數(shù)據(jù)的接收 變換中心控制模塊Ct 管理對(duì)內(nèi)部形式的數(shù)據(jù)的所有操作 輸出信息處理控制模塊Ce 協(xié)調(diào)輸出信息的產(chǎn)生過(guò)程 雖然圖意味著一個(gè)三叉的控制結(jié)構(gòu) 但是 對(duì)一個(gè)大型系統(tǒng)中的復(fù)雜數(shù)據(jù)流可以用兩個(gè)或多個(gè)模塊完成上述一個(gè)模塊的控制功能 應(yīng)該在能夠完成控制功能并且保持好的耦合和內(nèi)聚特性的前提下 盡量使第一級(jí)控制中的模塊數(shù)目取最小值 對(duì)于數(shù)字儀表板的例子 第一級(jí)分解得出的結(jié)構(gòu)如圖所示 每個(gè)控制模塊的名字表明了為它所控制的那些模塊的功能 圖數(shù)字儀表板系統(tǒng)的第一級(jí)分解 第6步完成 第二級(jí)分解 所謂第二級(jí)分解就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中一個(gè)適當(dāng)?shù)哪K 完成第二級(jí)分解的方法是 從變換中心的邊界開始沿著輸入通路向外移動(dòng) 把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中Ca控制下的一個(gè)低層模塊 然后沿輸出通路向外移動(dòng) 把輸出通路中每個(gè)處理映射成直接或間接受模塊Ce控制的一個(gè)低層模塊 最后把變換中心內(nèi)的每個(gè)處理映射成受Ct控制的一個(gè)模塊 圖3表示進(jìn)行第二級(jí)分解的普遍途徑 圖第二級(jí)分解的方法 雖然圖描繪了在數(shù)據(jù)流圖中的處理和軟件結(jié)構(gòu)中的模塊之間的一對(duì)一的映射關(guān)系 但是 不同的映射經(jīng)常出現(xiàn) 應(yīng)該根據(jù)實(shí)際情況以及 好 設(shè)計(jì)的標(biāo)準(zhǔn) 進(jìn)行實(shí)際的第二級(jí)分解 對(duì)于數(shù)字儀表板系統(tǒng)的例子 第二級(jí)分解的結(jié)果分別用圖16 17和18描繪 圖16未經(jīng)精化的輸入結(jié)構(gòu) 圖17未經(jīng)精化的變換結(jié)構(gòu) 圖18未經(jīng)精化的輸出結(jié)構(gòu) 這三張圖表示對(duì)軟件結(jié)構(gòu)的初步設(shè)計(jì)結(jié)果 雖然圖中每個(gè)模塊的名字表明了它的基本功能 但是仍然應(yīng)該為每個(gè)模塊寫一個(gè)簡(jiǎn)要說(shuō)明 描述 進(jìn)出該模塊的信息 接口描述 模塊內(nèi)部的信息 過(guò)程陳述 包括主要判定點(diǎn)及任務(wù)等 對(duì)約束和特殊特點(diǎn)的簡(jiǎn)短討論 這些描述是第一代的設(shè)計(jì)規(guī)格說(shuō)明 在這個(gè)設(shè)計(jì)時(shí)期進(jìn)一步的精化和補(bǔ)充是經(jīng)常發(fā)生的 第7步使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化 對(duì)第一次分割得到的軟件結(jié)構(gòu) 總可以根據(jù)模塊獨(dú)立原理進(jìn)行精化 為了產(chǎn)生合理的分解 得到盡可能高的內(nèi)聚 盡可能松散的耦合 最重要的是 為了得到一個(gè)易于實(shí)現(xiàn) 易于測(cè)試和易于維護(hù)的軟件結(jié)構(gòu) 應(yīng)該對(duì)初步分割得到的模塊進(jìn)行再分解或合并 具體到數(shù)字儀表板的例子 對(duì)于從前面的設(shè)計(jì)步驟得到的軟件結(jié)構(gòu) 還可以做許多修改 下面是某些可能的修改 輸入結(jié)構(gòu)中的模塊 轉(zhuǎn)換成r min 和 收集Signal s 可以合并 模塊 確定加速 減速 可以放在模塊 計(jì)算mile h 下面 以減少耦合 模塊 加速 減速顯示 可以相應(yīng)地放在模塊 顯示mile h 的下面 圖精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu) 經(jīng)過(guò)上述修改后的軟件結(jié)構(gòu)如圖所示 上述七個(gè)設(shè)計(jì)步驟的目的是 開發(fā)出軟件的整體表示 也就是說(shuō) 一旦確定了軟件結(jié)構(gòu)就可以把它作為一個(gè)整體來(lái)復(fù)查 從而能夠評(píng)價(jià)和精化軟件結(jié)構(gòu) 在這個(gè)時(shí)期進(jìn)行修改只需要很少的附加工作 但是卻能夠?qū)浖馁|(zhì)量特別是軟件的可維護(hù)性產(chǎn)生深遠(yuǎn)的影響 思考上述設(shè)計(jì)途徑和 寫程序 的差別 如果程序代碼是對(duì)軟件的惟一描述 那么軟件開發(fā)人員將很難站在全局的高度來(lái)評(píng)價(jià)和精化軟件 而且事實(shí)上也不能做到 既見(jiàn)樹木又見(jiàn)森林 面向?qū)ο蟮脑O(shè)計(jì)方法 面向?qū)ο?對(duì)象 類 繼承 通信面向?qū)ο蟮奶匦阅K化 信息隱蔽 數(shù)據(jù)抽象繼承性 面向?qū)ο筌浖O(shè)計(jì)模型 對(duì)象模型功能模型動(dòng)態(tài)模型 對(duì)象模型 描述系統(tǒng)的靜態(tài)結(jié)構(gòu)可以看作擴(kuò)充的E R圖包括系統(tǒng)的類 對(duì)象 以及其屬性 類與對(duì)象之間的關(guān)系 動(dòng)態(tài)模型 描述時(shí)序 改變的狀態(tài)著重于控制邏輯包括狀態(tài)圖 事件追蹤圖 狀態(tài)圖 描述每一個(gè)類對(duì)象的動(dòng)態(tài)行為 1 書的狀態(tài)圖 2 借閱憑證的狀態(tài)圖 事件 事件表示在某一特定的時(shí)間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的一種運(yùn)動(dòng)變化 事件是一個(gè)激勵(lì)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 惠州經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《工程管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 西北工業(yè)大學(xué)《港澳臺(tái)廣告》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津城市建設(shè)管理職業(yè)技術(shù)學(xué)院《算法課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌首義學(xué)院《社會(huì)工作倫理》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西軟件職業(yè)技術(shù)大學(xué)《電子商務(wù)運(yùn)營(yíng)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東農(nóng)業(yè)工程學(xué)院《投資銀行學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京中醫(yī)藥大學(xué)東方學(xué)院《信息化管理與技術(shù)創(chuàng)新》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京城市學(xué)院《機(jī)械CAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 順德職業(yè)技術(shù)學(xué)院《民族建筑與文化實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江工程學(xué)院昆侖旅游學(xué)院《外貿(mào)制單英》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市境內(nèi)旅游合同 示范文本(2013版)
- 電路(2)知到智慧樹章節(jié)測(cè)試課后答案2024年秋山東大學(xué)
- 鋼構(gòu)制品加工協(xié)議
- 化肥農(nóng)藥種子購(gòu)銷合同
- 臨床護(hù)理實(shí)踐指南2024版
- 兒童糖尿病酮癥酸中毒診療指南(2024)解讀
- 老年期常見(jiàn)心理問(wèn)題的護(hù)理(老年護(hù)理課件)
- 病毒蛋白相互作用
- 2019魯教版高中地理選擇性必修第一冊(cè)《第二單元 地形變化的原因》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 《民法典》2024年知識(shí)考試題庫(kù)(含答案)
- 2023年嘉興海寧水務(wù)集團(tuán)下屬企業(yè)招聘工作人員考試真題
評(píng)論
0/150
提交評(píng)論