




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
系統設計4.1概述4.2任務4.3設計原理4.4模塊獨立性4.5圖形工具4.6面向數據流的設計方法4.7數據庫設計4.8小結系統設計4.1概述4.3設計原理4.4模塊獨立性4.64.1概述軟件設計分為兩個階段:總體設計(又稱概要設計)通過仔細分析軟件規格說明,適當地對軟件進行功能分解,從而把軟件劃分為模塊,并且設計出完成預定功能的模塊結構。詳細設計詳細設計階段詳細地設計每個模塊,確定完成每個模塊功能所需要的算法和數據結構。4.1概述軟件設計分為兩個階段:總體設計(又稱概要設計)通4.1概述軟件分析映射軟件設計4.1概述軟件分析映射軟件設計4.1概述4.1概述4.2任務1.制定規范確定設計的目標和優先順序選定設計方法規定設計文檔的編制標準文檔體系、詳細程度、圖形畫法、紙張樣式編碼形式接口約定、命名規則4.2任務1.制定規范確定設計的目標和優先順序規定設計4.2任務2.系統的結構設計劃分層次結構確定模塊功能確定模塊調用關系確定模塊的接口評估模塊劃分的質量、導出模塊結構規則4.2任務2.系統的結構設計劃分層次結構確定模塊調用關4.2任務3.數據結構設計確定輸入、輸出文件的結構數據庫設計4.可靠性設計(質量設計)5.書寫文檔概要設計說明書、數據庫設計說明書、用戶手冊、初步的測試計劃4.2任務3.數據結構設計確定輸入、輸出文件的結構4.4.2任務6.評審可追溯性確認該設計是否復蓋了所有已確定的軟件需求,軟件每一成份是否可追溯到某一項需求接口確認該軟件的內部接口與外部接口是否已經明確定義。模塊是否滿足高內聚和低耦合的要求。模塊作用范圍是否在其控制范圍之內風險確認該設計在現有技術條件下和預算范圍內是否能按時實現4.2任務6.評審可追溯性確認該設計是否復蓋了所有已確定4.2任務實用性確認該設計對于需求的解決方案是否實用技術清晰度確認該設計是否以一種易于翻譯成代碼的形式表達可維護性確認該設計是否考慮了方便未來的維護質量確認該設計是否表現出良好的質量特征4.2任務實用性確認該設計對于需求的解決方案是否實用技術清4.2任務各種選擇方案看是否考慮過其它方案,比較各種選擇方案的標準是什么限制評估對該軟件的限制是否現實,是否與需求一致其它具體問題對于文檔、可測試性、設計過程……等進行評估4.2任務各種選擇方案看是否考慮過其它方案,比較各種選擇方4.3設計原理模塊化抽象逐步求精信息隱藏4.3設計原理模塊化逐步求精4.3.1模塊化什么是模塊?模塊是由邊界元素限定的相鄰的程序元素(例如,數據說明,可執行的語句)的序列,而且有一個總體標識符來代表它。過程、函數、子程序和宏等,都可作為模塊。面向對象范型中的對象是模塊,對象內的方法也是模塊。模塊是構成程序的基本構件。4.3.1模塊化什么是模塊?模塊是由邊界元素限定的相鄰的程4.3.1模塊化什么是模塊化?就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。4.3.1模塊化什么是模塊化?就是把程序劃分成獨立命名且可圖:模塊化和軟件成本圖:模塊化和軟件成本4.3.1模塊化五條標準模塊可分解性把問題分解為子問題模塊可組裝性可復用模塊可理解性無需參考其他模塊,易于構造和修改模塊連續性微小修改只導致對個別模塊模塊保護性異常影響局限在模塊內部4.3.1模塊化五條標準模塊可分解性把問題分解為子問題模塊人類在認識復雜現象的過程中使用的最強有力的思維工具是抽象。人們在實踐中認識到,在現實世界中一定事物、狀態或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。或者說抽象就是抽出事物的本質特性而暫時不考慮它們的細節。4.3.2抽象人類在認識復雜現象的過程中使用的最強有力的思維4.3.2抽象4.3.3逐步求精求精實際上是細化過程。我們從在高抽象級別定義的功能陳述(或信息描述)開始。也就是說,該陳述僅僅概念性地描述了功能或信息,但是并沒有提供功能的內部工作情況或信息的內部結構。求精要求設計者細化原始陳述,隨著每個后續求精(細化)步驟的完成而提供越來越多的細節。4.3.3逐步求精求精實際上是細化過程。我們從在高抽象級別4.3.4信息隱藏設計和確定模塊時,使得一個模塊內包含的信息(過程和數據)對于不需要這些信息的模塊來說,是不能訪問的。模塊內部的數據與過程,應該對不需要了解這些數據與過程的模塊隱藏起來。只有那些為了完成軟件的總體功能而必需在模塊間交換的信息,才允許在模塊間進行傳遞。4.3.4信息隱藏設計和確定模塊時,使得一個模塊內包含的信4.4模塊獨立性模塊獨立性概括了把軟件劃分為模塊時要遵守的準則,也是判斷模塊構造是否合理的標準。模塊的獨立性可以由兩個定性標準度量:耦合用于衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚用于衡量一個模塊內部各個元素間彼此結合的緊密程度。4.4模塊獨立性模塊獨立性概括了把軟件劃分為模塊時要遵守耦4.4.1耦合耦合是對一個軟件結構內不同模塊之間互聯程度的度量。耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數據。在軟件設計中應該追求模塊間盡可能松散耦合的系統。4.4.1耦合耦合是對一個軟件結構內不同模塊之間互聯程耦合4.4.1耦合耦合的七種類型1.非直接耦合2.數據耦合3.特征耦合4.控制耦合5.外部耦合6.公共耦合7.內容耦合4.4.1耦合耦合的七種類型1.非直接耦合4.4.1耦合1、非直接耦合(NondirectCoupling)
如果兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的,這就是非直接耦合。這種耦合的模塊獨立性最強。4.4.1耦合1、非直接耦合(NondirectCoup4.4.1耦合2、數據耦合(DataCoupling)如果一個模塊訪問另一個模塊時,彼此之間是通過簡單數據參數(不是控制參數、公共數據結構或外部變量)來交換輸入、輸出信息的,則稱這種耦合為數據耦合。4.4.1耦合2、數據耦合(DataCoupling)4.4.1耦合3、標記耦合(StampCoupling)如果一組模塊通過參數表傳遞記錄信息,就是標記耦合。這個記錄是某一數據結構的子結構,而不是簡單變量。4.4.1耦合3、標記耦合(StampCoupling4.4.1耦合4、控制耦合(ControlCoupling)如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。4.4.1耦合4、控制耦合(ControlCoupli4.4.1耦合5、外部耦合(ExternalCoupling)一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。6、公共耦合(CommonCoupling)若一組模塊都訪問同一個公共數據環境,則它們之間的耦合就稱為公共耦合。公共的數據環境可以是全局數據結構、共享的通信區、內存的公共覆蓋區等。4.4.1耦合5、外部耦合(ExternalCoupli4.4.1耦合公共耦合的復雜程度隨耦合模塊的個數增加而顯著增加。若只是兩模塊間有公共數據環境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。4.4.1耦合公共耦合的復雜程度隨耦合模塊的個數增加而顯著4.4.1耦合7、內容耦合(ContentCoupling)如果發生下列情形,兩個模塊之間就發生了內容耦合:一個模塊直接訪問另一個模塊的內部數據;一個模塊不通過正常入口轉到另一模塊內部;兩個模塊有一部分程序代碼重迭(只可能出現在匯編語言中);一個模塊有多個入口。4.4.1耦合7、內容耦合(ContentCoupli4.4.1耦合耦合性應采取下述設計原則:盡量使用數據耦合,少用控制耦合,限制公共環境耦合的范圍,完全不用內容耦合。4.4.1耦合耦合性應采取下述設計原則:盡量使用數據耦合,
4.4.2內聚
七種內聚:1.偶然內聚2.邏輯內聚3.時間內聚4.過程內聚5.通信內聚6.順序內聚7.功能內聚信息內聚 4.4.2內聚6.順序內聚信息內聚4.4.2內聚1、偶然內聚(CoincidentalCohesion)又稱巧合內聚當模塊內各部分之間 沒有聯系,或者即使 有聯系,這種聯系也 很松散,則稱這種模 塊為偶然內聚模塊。 它是內聚程度最低的 模塊。4.4.2內聚1、偶然內聚(CoincidentalCo4.4.2內聚2、邏輯內聚(LogicalCohesion)這種模塊把邏輯相關的功能組合在一起,每次被調用時,由傳送給模塊的判定參數來確定該模塊應執行哪一種功能。例如一個模塊讀取各種不同類型外設的輸入。4.4.2內聚2、邏輯內聚(LogicalCohesio4.4.2內聚3、時間內聚(ClassicalCohesion)時間內聚又稱為經典內聚,或瞬時內聚(TemporalCohesion)。這種模塊大多為多功能模塊,但模塊的各個功能的執行與時間有關,通常要求所有功能必須在同一時間段內執行。問題:一般在某個系統中什么模塊會是時間內聚的?答案:程序的初始化模塊和終止模塊。4.4.2內聚3、時間內聚(ClassicalCohes4.4.2內聚4、過程內聚(ProceduralCohesion)如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執行,則稱為過程內聚。使用流程圖做為工具設計程序時,把流程圖中的某一部分劃出組成模塊,就得到過程內聚模塊。例如,把流程圖中的循環部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內聚模塊。問題:請大家舉個生活中必須遵照特定次序的例子?答案:排隊買飯(隊列,要求先進先出)。4.4.2內聚4、過程內聚(ProceduralCohe
4.4.2
內聚5、通信內聚(CommunicationCohesion)
如果一個模塊內各功能部分都使用了相同的輸入 數據,或產生了相同的輸出數據,則稱之為通信 內聚模塊。A打印報告1打印報告2打印B存入打印C修改刪除打印
報告2其他定義:如果一個模塊的所有成分都操作同一數據集或生成同一數據集。 4.4.2內聚A打印報告1打印打印B存入打印C修改刪除4.4.2內聚4.4.2內聚
4.4.2內聚6、順序內聚(SequenceCohesion)
這種模塊要求各個成分順序執行,并且通常上一個 輸出是下一個輸入。讀入編輯A數據累加打印B結果 4.4.2內聚讀入編輯A數據累加打印B結果4.4.2內聚信息內聚(InformationalCohesion)模塊多個功能在同一數據結構上操作,每一項功能有一個唯一的入口點。由于這個模塊的所有功能都是基于同一個數據結構(符號表),因此它是一個信息內聚的模塊。4.4.2內聚信息內聚(InformationalCo4.4.2內聚7、功能內聚(FunctionalCohesion)一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協同工作,緊密聯系,不可分割的。則稱該模塊為功能內聚模塊。4.4.2內聚7、功能內聚(FunctionalCoh4.4.2內聚內聚度設計內聚原則:設計時應力爭做到高內聚,并且能夠辨認出低內聚的模塊,并采取措施進行修改,以提高模塊的內聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性。4.4.2內聚內聚度設計內聚原則:設計時應力爭做到高內聚,4.5圖形工具層次圖HIPO圖結構圖4.5圖形工具層次圖HIPO圖4.5.1層次圖也稱H圖是在總體設計階段最常使用的圖形工具之一,它常用于描繪軟件的層次結構。層次圖中的每個方框代表一個模塊,方框間的連線表示模塊間的調用關系。4.5.1層次圖也稱H圖是在總體設計階段最常使用的圖形工具4.5.2HIPO圖
由H圖和IPO圖兩部分組成4.5.2HIPO圖 由H圖和IPO4.5.3結構圖4.5.3結構圖4.5.3結構圖
結構圖中的每個方框代表一個模塊,框內注明模塊的名字或主要功能;方框之間的箭頭(或直線)表示模塊間的調用關系。在結構圖中通常還用帶注釋的箭頭表示模塊調用過程中模塊之間傳遞的信息。注釋箭頭尾部是空心圓表示傳遞的是數據。注釋箭頭尾部是實心圓則表示傳遞的是控制信息。4.5.3結構圖 結構圖中的每個方框代表一個模塊,框內注明4.5.3結構圖大學職業介紹系統4.5.3結構圖大學職業介紹系統4.5.3結構圖模塊模塊用矩形框表示,并用模塊的名字標記它。4.5.3結構圖模塊模塊用矩形框表示,并用模塊的名字標記它4.5.3結構圖模塊的調用關系和接口模塊之間用單向箭頭聯結,箭頭從調用模塊指向被調用模塊,表示調用模塊調用了被調用模塊。4.5.3結構圖模塊的調用關系和接口模塊之間用單向箭頭聯結4.5.3結構圖條件調用循環調用4.5.3結構圖條件調用循環調用4.5.3結構圖4.5.3結構圖4.6面向數據流的設計方法目標是給出設計軟件結構的一個系統化的途徑。面向數據流的設計方法定義了一些不同的“映射”,利用這些映射可以把數據流圖變換成軟件結構。通常所說的結構化設計方法,也就是基于數據流的設計方法。4.6面向數據流的設計方法目標是給出設計軟件結構的一個系統4.6.1概念面向數據流的設計方法把數據流映射成軟件結構,數據流的類型決定了映射的方法。數據流有兩種類型:變換流事務流4.6.1概念面向數據流的設計方法把數據流映射成軟件結變換
圖:變換流
54 圖:變換流54圖:事務流圖:事務流圖:混合型整體?中間?圖:混合型整體?2023/8/18目標系統的DFDSC圖---StructuredChart該圖常用來表示系統的軟件結構。利用它可以清楚地表達軟件結構中模塊間的層次調用關系和模塊之間的聯系。SD目標系統的SC2023/8/5目標系統的DFDSC圖---Struc2023/8/18ASC
圖中的主要內容1、模塊--在SC圖中用矩形框表示,并用名字來標記它--模塊調用關系2、模塊的調用關系和接口B被調用模塊調用模塊A(查詢學生)B(查找學生記錄)數據信號控制信號學號查找成功信號--模塊間接口的表示2023/8/5ASC圖中的主要內容1、模塊--在SC圖中2023/8/18產生最佳解得到好的輸入計算最佳解輸出結果讀輸入編輯輸入好輸入好輸入解解原始輸入原始輸入編輯結果結果格式化顯示結果解格式化的解SC
圖的一般格式2023/8/5產生最佳解得到好的輸入計算最佳解輸出結果讀輸2023/8/181、在系統結構圖中的模塊一、典型的系統結構形式原子模塊:在系統結構圖中通常是指不能再分割的底層模塊完全因子分解系統如果一個軟件系統,它的全部實際加工(即數據計算或處理)都是由底層的原子模塊來完成,而其它所有非原子模塊僅僅執行控制或協調功能。2023/8/51、在系統結構圖中的模塊一、典型的系統結構形2023/8/18傳入模塊AA傳入模塊從下屬模塊取得數據,進行某些處理,再將其結果傳給上級模塊。在此,將它傳送的數據流稱為邏輯輸入數據流。在系統結構圖中有四種類型的模塊:邏輯輸入數據流成績處理成績錄入2023/8/5傳入模塊AA傳入模塊從下屬模塊取2023/8/18傳出模塊從上級模塊獲得數據,進行某些處理,再將其結果傳給下屬模塊。在此,將它傳送的數據流稱為邏輯輸出數據流。傳出模塊DD邏輯輸出數據流成績處理成績輸出2023/8/5傳出模塊從上級模塊獲得數據,進行2023/8/18變換模塊也叫加工模塊。它是從上級模塊獲得數據,進行特定的處理,將其轉換為其他形式,再傳回上級模塊它所加工的數據流叫做變換數據流。變換模塊CB變換數據流審查并開發票發票購書單2023/8/5變換模塊也叫加工模塊。它是從上級2023/8/18協調模塊對所有下屬模塊進行協調和管理的模塊。在一個好的系統結構圖中,協調模塊應在較高層出現。協調模塊YXYX2023/8/5協調模塊對所有下屬模塊進行協調和2023/8/182、典型的系統結構形式之一(變換型系統結構圖)取得數據iaeo變換數據給出數據傳入部分變換中心傳出部分--------具有變換型數據流圖2023/8/52、典型的系統結構形式之一(變換型系統結構圖2023/8/18主模塊C變換成D取得C給出D取得BB變換成CD變換成E給出E取得AA變換成BAABBBCCDCDED取得數據CD變換數據給出數據協調模塊變換模塊傳出模塊--------具有變換型系統結構圖DFD--SC傳入模塊2023/8/5主模塊C變換成D取得C給出D取得BB變換成C2023/8/183、典型的系統結構形式之二(事務型系統結構圖)“事務”引起、觸發或啟動某一動作或一串動作的任何數據、控制信號、事件或狀態的變化。由它接受一項事務,根據事務處理的特點和性質
選擇分配一個適當的處理單元,然后給出結果。2023/8/53、典型的系統結構形式之二(事務型系統結構圖2023/8/18輸入------事務型數據流圖1ABC3DEFGH24567中心變換輸出邏輯輸入物理輸入邏輯輸出物理輸出2023/8/5輸入------事務型數據流圖1ABC32023/8/181ABC3DEFGH24567MT3邏輯輸入邏輯輸出CDCD,E,F456------事務型數據流圖(DFD)------事務型系統結構圖(SC)2023/8/51ABC3DEFGH24567MT3邏輯輸入2023/8/18事務中心輸入已分析的作業內部表示的作業結果------事務型系統結構(層次)圖輸出結果調度作業信息讀入作業分析作業事務1事務2事務3事務4操作2操作3操作4操作5操作6操作1細節2細節3細節4細節5細節6細節1細節7結果2023/8/5事務中心輸入已分內部表示的作業結果-----2023/8/18------簡化的事務型系統結構圖事務中心得到作業作業結果輸出結果分析調度事務1事務2事務32023/8/5------簡化的事務型系統結構圖事務中心得2023/8/18二、從DFD圖導出SC圖的步驟開始細化修改SRS中的DFD圖判斷DFD圖的結構類型是變換型嗎?F事務分析變換分析完善SC圖T對最終的SC圖進行評審結束2023/8/5二、從DFD圖導出SC圖的步驟開始細2023/8/181、變換分析----是將具有變換型的DFD圖導出SC圖變換分析從物理輸入、物理輸出及變換中心進行由頂向下的分解得出各個分支的所有組成模塊在數據流圖上區分系統的邏輯輸入、邏輯輸出和變換中心部分,并標出它們的分界。進行一級分解,設計系統模塊結構的頂層和第一層。進行二級分解,設計中、下層模塊。2023/8/51、變換分析----是將具有變換型的DFD圖2023/8/18(1)在DFD
圖上標出邏輯輸入、邏輯輸出和變換中心的分界AeBaCbDcEdPQRwuvwuvrp變換中心c,e邏輯輸入w,u邏輯輸出--------具有變換型數據流圖2023/8/5(1)在DFD圖上標出邏輯輸入、邏輯輸出2023/8/18(2)完成第第一級分解AabcPwuvrpBCDdeEQRWUVMcMAMTMEC,eC,eU,wU,w變換中心頂層第一層第一級分解后的SC圖協調模塊YXYX2023/8/5(2)完成第第一級分解AabcPwuvrp2023/8/18AabcPwuvrpBCDdeEQRWUV第一級分解后的SC圖(另一種畫法)McMA1ME1C
eUMA2QPRME2e
c,p
pr
r
w,uw2023/8/5AabcPwuvrpBCDdeEQRWUV第2023/8/18(3)完成第第二級分解AabcPwuvrpBCDdeEQRWUVMA變換中心對邏輯輸入的分解CEBADabdeccbaABCMAEDde邏輯輸入模塊的調用與執行過程2023/8/5(3)完成第第二級分解AabcPwuvrp2023/8/18MACEBADabdecMAGetCGetEBtoCAtoBDtoEaecReadDGetBReadAc,eabbbcde2023/8/5MACEBADabdecMAGetCGet2023/8/18AabcPwuvrpBCDdeEQRWUVME變換中心對輸出的分解WUVvuwMTQPR
eC,prU,w對變換中心加工的分解
prw,u2023/8/5AabcPwuvrpBCDdeEQRWUVM2023/8/18MACBAEDMTQPR從變換分析導出的初始SC
圖MEWUVMCc,eW,uW,uC,e(4)獲得完整的SC
圖2023/8/5MACBAEDMTQPR從變換分析導出的初始2023/8/18運用變換分析方法建立系統的SC時需注意以下幾點:
模塊設計的次序時,應遵循對一個模塊的全部直接下屬模塊都設計完成后,再轉向另一個模塊的下層模塊的設計。在設計下層模塊時,應考慮模塊的耦合和內聚問題,以提高設計初始SC圖的質量。注意“黑盒”技術的使用。2023/8/5運用變換分析方法建立系統的SC時需注意以下幾2023/8/18主模塊ABCA1A2A3A11A12A132023/8/5主模塊ABCA1A2A3A11A12A132023/8/18低功能內聚信息內聚通信內聚過程內聚時間內聚邏輯內聚巧合性內聚高強弱
內聚性模塊獨立性低非直接耦合數據耦合標記耦合控制耦合外部耦合公共耦合內容耦合高弱強耦合性模塊獨立性具有高內聚低耦合的模塊才是模塊獨立性比較強的模塊。2023/8/5低功能信息通信過程時間邏輯巧合性內聚高強弱2023/8/18具有高內聚低耦合的模塊才是模塊獨立性比較強的模塊。模塊A模塊D模塊C模塊B非直接耦合通過參數傳遞數據(數據耦合)通過參數表傳遞數據結構(標記耦合)具有松散型
的耦合類型2023/8/5具有高內聚低耦合的模塊模塊A2023/8/18請將上列給出的具有變換型的DFD圖導出它的SC圖練習A1A2a1a2PB
b1C1c1C2c1p1P22023/8/5請將上列給出的具有變換型的DFD圖導出它的S2023/8/182、事務分析----是將具有事務型的DFD圖導出SC圖IALMNOBCDEFGH事務中心事務源2023/8/52、事務分析----是將具有事務型的DFD圖2023/8/18IALMNOBCDEFGH主模塊給出H取得ALMNA
GHBECF
D2023/8/5IALMNOBCDEFGH主模塊給出H取得A2023/8/18發送部分請將下列給出的采購子系統DFD
圖轉換成SC圖練習2.12.22.3書庫保管員F2F1F5F6F7加工名稱:2.1按書號匯總缺書2.2按出版社匯總缺書2.3修改教材庫存和待購量文件名稱:F1
教材存量表F2
缺書登記表F5
待購教材表F6
教材一覽表F7
進書登記表2023/8/5發送部分請將下列給出的采購子系統DFD圖2023/8/18發送部分采購按書號匯總缺書登記表統計缺書登記進書按出版社匯總打印缺書單修改教材存量表修改教材待購量統計命令登記命令待購教材表暫缺書單暫缺書單進書通知進書通知------采購子系統的SC圖-------缺書登記表={班號+姓名+書號+數量}2023/8/5發送部分采購按書號缺書統計缺書登記進書按2023/8/18三、軟件模塊結構的改進一、模塊功能的完善化執行指定的功能部分出錯處理的部分。2023/8/5三、軟件模塊結構的改進一、執行指定的功能部分2023/8/18二、消除重復功能,改善軟件結構。完全相似局部相似2023/8/5二、完全相似局部相似消除重復功能,改善軟件結構完全相似:在結構上完全相似,可能只是在數據類型上不一致。此時可以采取完全合并的方法。局部相似:找出其相同部分,分離出去,重新定義成一個獨立的下一層模塊。還可以與它的上級模塊合并。消除重復功能,改善軟件結構完全相似:在結構上完全相似,可能只2023/8/18XYR1R2
物理輸入相似部分XYR1R2RX+R1Y+R2R相似模塊的各種合并方案的示意圖2023/8/5XYR1R2物理相似部分XYR1R2R2023/8/18三、模塊的作用范圍應在控制范圍之內。作用范圍:是模塊的作用范圍是指模塊內一個判定的作用范圍,凡是受這個判定影響的所有模塊都屬于這個判定的作用范圍。控制范圍:包括模塊本身及其所有的從屬模塊(即供它調用的模塊)。
如果一個判定的作用范圍包含在這個判定所在模塊的控制范圍之內,則這種結構是簡單的,否則,它的結構是不簡單的。2023/8/5三、作用范圍:是模塊的作用范圍2023/8/18模塊的控制范圍:包括模塊本身及其所有的從屬模塊(即供它調用的模塊)。ABDCEFG關于模塊的控制范圍示意圖
2023/8/5模塊的控制范圍:包括模塊本身及其所有的從AB2023/8/18一個模塊的作用范圍,是指受這個模塊中的判定所影響的模塊。關于模塊的作用范圍/控制范圍的關系示意圖
TopABCDEGGDBC控制耦合2023/8/5一個模塊的作用范圍,是指受這個模塊中2023/8/18TopCDEB2BDGC理想的情況,應該使判定的作用范圍和判定所在模塊的控制范圍盡可能地吻合(即應使模塊的作用范圍盡可能地在控制范圍之內)。符合作用范圍/控制范圍的理想判定位置
DCGBA對于一個理想SC圖中的模塊設計,所有受到一個判定影響的模塊應該都從屬該判定所在的模塊,最好位于作出判定的那個模塊本身及它的直接下屬模塊。2023/8/5TopCDEB2BDGC理想的情況2023/8/18計算實發工資取得工資數據計時工人實發工資計薪工人實發工資編外人員實發工資計時制工資額稅收扣款薪金制工資額常規扣款編外人員工資編外人員稅款編外人員扣款2023/8/5計算取得計時工人計薪工人編外人員計時制稅收薪2023/8/18四、盡可能地減少高扇出結構,隨著深度增大扇入。扇入:指模塊的上級模塊數。(即共有多少個模塊需要調用這個模塊)扇出:指模塊調用其下屬模塊數目。調用的下屬模塊數應控制在小于3-4個模塊。MM2023/8/5四、扇入:指模塊的上級模塊數。2023/8/18PPP1P2QQ1Q2Q3Q一個設計得好的軟件模塊結構,通常上層扇出比較高,中間層扇出較少,底層扇入到有高扇入的公用模塊中。2023/8/5PPP1P2QQ1Q2Q3Q一個設計得好的2023/8/18五、模塊的大小要適中。模塊的大小,可以用模塊中所含語句的數量的多少來衡量。把模塊的大小限制在一定的范圍之內。通常規定其語句行數在50~100左右,保持在一頁紙之內,最多不超過500行。體積大的模塊往往是由于分解不充分,因此可以對功能進一步分解,生成一些下級模塊或同級模塊。反之,對于體積過小的模塊也可以考慮是否可能與調用它的上級模塊合并。2023/8/5五、模塊的大小,可以用模塊中所含體積20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論