軟件工程第三章軟件設計軟件設計概述內容_第1頁
軟件工程第三章軟件設計軟件設計概述內容_第2頁
軟件工程第三章軟件設計軟件設計概述內容_第3頁
軟件工程第三章軟件設計軟件設計概述內容_第4頁
軟件工程第三章軟件設計軟件設計概述內容_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程第三章軟件設計軟件工程第三章軟件設計軟件設計概述內容軟件設計概述內容軟件設計是一個描述、組織、構造系統部件的過程,是確定軟件“怎么做”的過程。這個過程分為兩個層次:概要設計和詳細設計。軟件設計的輸入是《需求規格說明書》,輸出是《概要設計說明書》和《詳細設計說明書》軟件工程第三章軟件設計軟件設計概述內容總體設計(概要設計)從全局的高度,確定系統的總體實現方案和整體框架它要覆蓋《需求規格說明書》的全部內容,同時作為指導詳細設計的依據詳細設計確定應該怎樣具體地實現各個軟件元素,得到對目標系統的精確描述要覆蓋總體設計的全部內容,同時作為指導程序設計的依據軟件工程第三章軟件設計軟件設計概述內容總體設計的具體任務制定規范系統命名規范,模塊命名規范,構件命名規范,變量命名規范,以及數據庫中的表名、字段名、索引名、試圖名、存儲過程名、觸發器名等總體結構設計系統體系結構的設計通常采用軟件結構圖的橫向表示功能分解,縱向表示功能的層次調用軟件工程第三章軟件設計軟件設計概述內容處理方式設計數據設計數據結構設計文件設計數據庫設計質量設計文檔設計軟件工程第三章軟件設計軟件設計概述內容評審總體設計可回溯性接口定義是否清晰檢查模塊的內聚力風險性實用性質量屬性各種選擇方案限制其他問題軟件工程第三章軟件設計軟件設計概述內容總體設計的過程設想供選擇的方案根據需求分析階段的數據流程圖中處理邏輯關系,歸并形成子系統不同的子系統組合產生不同的系統實現方案材料要求:系統流程圖、組成系統的元素清單、成本/效益分析、實現這個方案的進度計劃推薦最佳方案功能分解將復雜功能分解成簡單功能,使之對應成一個模塊只完成一個適當功能,便于實現軟件工程第三章軟件設計軟件設計概述內容設計軟件結構采用層次圖或結構圖描述模塊之間調用的關系數據設計包括數據結構設計、文件設計和數據庫設計制定測試計劃針對軟件結構的測試和集成測試書寫文檔總體設計規格說明書用戶手冊測試計劃詳細的實現計劃軟件工程第三章軟件設計軟件設計概述內容設計過程的一般模型軟件工程第三章軟件設計軟件設計概述內容設計原則原則一,多樣化設計原則二,設計對于分析模型應該是可跟蹤的原則三,設計不應該從頭做起原則四,軟件設計應該盡可能縮短軟件和現實世界的距離原則五,設計應該表現出一致性和規范性原則六,設計的易修改性原則七,容錯性設計原則八,設計的粒度要適當原則九,在設計時就開始評估軟件的質量原則十,要復審設計,減少設計引入的錯誤軟件工程第三章軟件設計軟件設計概述內容影響軟件設計的因素共同設計用戶界面文化問題并發性軟件工程第三章軟件設計軟件設計概述內容軟件設計的概念模塊一個軟件系統根據其功能分解成許多較小的程序單元模塊的基本屬性功能-模塊要完成的任務邏輯–描述模塊為了完成任務,模塊內部怎么做狀態–使用該模塊時的環境和條件軟件工程第三章軟件設計軟件設計概述內容模塊化定義即把程序劃分成若干個模塊,每個模塊完成一個子功能,將多個模塊組織起來實現整個系統的功能。模塊規模的確定標準模塊應該是高內聚的模塊應該是松散耦合的軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容模塊獨立性“模塊獨立”是模塊化、抽象、逐步求精和信息隱藏等概念的直接結果,也是完成有效的模塊設計的基本標準。模塊獨立性原則的兩個定性標準度量耦合-衡量模塊之間彼此依賴的緊密程度內聚-衡量一個模塊內部各個元素彼此結合的緊密程度軟件工程第三章軟件設計軟件設計概述內容耦合–模塊間相互關聯的程度關聯程度的決定因素一個模塊對另一個模塊的訪問模塊間傳遞的數據量一個模塊傳遞給另一個模塊的控制信息模塊間接口的復雜程度軟件工程第三章軟件設計軟件設計概述內容耦合的分類內容耦合-一個模塊直接參考另一個模塊的內容例子結論-堅決避免使用內容耦合…

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:test");

stmt=con.createStatement();

rs=stmt.executeQuery("selectareano,areafangxiang,areasell,endtimefromlandInformation");

while(rs.next())

{

…軟件工程第三章軟件設計軟件設計概述內容公共耦合-多個模塊都訪問同一個公共數據環境分類松散公共耦合:一個模塊只是往公共數據環境里傳送數據,而另一個模塊只是從公共數據環境中取數據緊密公共耦合:兩個模塊都向公共數據環境中送數據,同時也都從公共數據環境中取數據例子動態并發程序的執行結論-限制使用公共耦合軟件工程第三章軟件設計軟件設計概述內容外部耦合–兩個模塊都訪問同一個全局簡單公共變量,而不是同一全局數據結構,且不是通過參數表傳遞該全局變量的信息例子結論:限制使用外部耦合while(gloableT==0){ifx>25thenModuleA();elseModuleB();}軟件工程第三章軟件設計軟件設計概述內容控制耦合–模塊A向模塊B傳遞一個控制信息例子把一個數組名作為參數傳遞給另一個模塊時,就形成了參數以傳址的形式進行傳遞,降低模塊的獨立性。結論:少用控制耦合軟件工程第三章軟件設計軟件設計概述內容數據結構耦合–一個模塊調用另一個模塊時傳遞了整個數據結構數據耦合–兩個模塊之間傳遞的是數據項結論:盡量使用數據耦合。軟件工程第三章軟件設計軟件設計概述內容非直接耦合–兩個模塊之間沒有直接關系,它們之間的聯系完全通過主模塊的控制和調用來實現例子If(x)thenmodelAelsemodelB結論:獨立性最強的耦合軟件工程第三章軟件設計軟件設計概述內容內容耦合公共耦合外部耦合控制耦合數據結構耦合數據耦合非直接耦合高低弱強模塊耦合性模塊獨立性軟件工程第三章軟件設計軟件設計概述內容耦合的類型軟件工程第三章軟件設計軟件設計概述內容如何降低模塊間的耦合根據系統的特點,選擇恰當的耦合類型降低模塊接口的復雜性把模塊之間的通信信息放在緩沖區中軟件設計的目標是降低模塊間的耦合程度,設計時遵循的原則:盡量使用數據耦合,少用控制耦合,限制使用公共耦合,堅決不用內容耦合。軟件工程第三章軟件設計軟件設計概述內容

內聚巧合內聚–一個模塊執行多個完全互不相關的動作例子為了節省空間,將多個模塊中重復出現的語句提取出來,組成一個新的模塊程度:低內聚軟件工程第三章軟件設計軟件設計概述內容邏輯內聚–一個模塊執行一系列相關動作例子程序執行的邏輯類似,并共用一部分代碼,接口參數為了區分執行過程而顯得非常復雜。程度:低內聚軟件工程第三章軟件設計軟件設計概述內容時間內聚–一個模塊內部的多個任務是與時間有關例子:程序的初始化過程程度:低內聚publicvoidinit(ServletConfigconfig)throwsServletException {moni_num_in=0; moni_num_end=0;rBundle=ResourceBundle.getBundle("immserver.servletConfig"); transportType=rBundle.getString("TRANSPORT_TYPE");……}軟件工程第三章軟件設計軟件設計概述內容過程內聚–模塊執行的若干動作之間有順序關系例子驗證用戶登錄信息If合法提取用戶個性化信息Else拒絕登錄程度:中等程度內聚軟件工程第三章軟件設計軟件設計概述內容通信內聚–模塊執行的若干動作之間有順序關系,并且所有動作是在相同的數據上執行。例子讀取文件記錄重新計算文件記錄將文件記錄進行輸出程度:中等程度內聚軟件工程第三章軟件設計軟件設計概述內容信息內聚–一個模塊中執行一系列動作,每個動作都有自己的入口點和處理代碼,所有的動作都作用在相同的數據結構上。例子程度:高內聚軟件工程第三章軟件設計軟件設計概述內容功能內聚–一個模塊中各個部分都是完成某一具體功能必不可少的組成部分。例子成功標志用戶身份驗證(用戶名,用戶密碼){驗證過程;…return成功標志;}程度:高內聚軟件工程第三章軟件設計軟件設計概述內容巧合內聚邏輯內聚時間內聚過程內聚通信內聚信息內聚功能內聚低高弱強模塊內聚性模塊獨立性軟件工程第三章軟件設計軟件設計概述內容練習1軟件設計中劃分模塊的一個準則是A。兩個模塊之間的耦合方式中,B耦合的耦合程度最高,C耦合的耦合度最低。一個模塊內部的內聚種類中D內聚的內聚程度最高,E內聚的內聚度最低。A:①低內聚低耦合

②低內聚高耦合

③高內聚低耦合

④高內聚高耦合B:①數據

②非直接

③控制

④內容C:①數據

②非直接

③控制

④內容D:①偶然

②邏輯

③功能

④過程E:①偶然

②邏輯

③功能

④過程

軟件工程第三章軟件設計軟件設計概述內容練習2軟件設計中劃分程序模塊通常遵循的原則是要使各模塊間的耦合性盡可能

A。三種可能的模塊耦合是B

。例如,一個模塊直接引用另一模塊中的數據。C

。例如,一個模塊把開關量作為參數傳遞給另一模塊。D

。例如,一個模塊把一個數值量作為參數傳遞給另一模塊。其中

E的耦合性最強。A:

①強

②適中

③弱

B~E:①公共耦合

②數據耦合

③邏輯耦合

④外部耦合

⑤內容耦合

⑥控制耦合

軟件工程第三章軟件設計軟件設計概述內容練習3模塊內聚度用于衡量模塊內部各成分之間彼此結合的緊密程度1、一組語句在程序的多處出現,為了節省內存空間把這些語句放在一個模塊中,該模塊的內聚度是A的。2、將幾個邏輯上相似的成分放在一個模塊中,該模塊的內聚度是B的。3、模塊中所有成分引用共同的數據,該模塊的內聚度是C

的。4、模塊中所有成分結合起來完成一項任務,該模塊的內聚度是D的。A~E:①功能性

②邏輯性③通信性④過程性

⑤偶然性

⑥瞬時性軟件工程第三章軟件設計軟件設計概述內容抽象定義抽出事務的本質特性而暫時不考慮它們的細節。Wasserman提出的幾種抽象方法功能分解法面向數據的分解法面向事件的分解法由外向內的設計面向對象的設計軟件工程第三章軟件設計軟件設計概述內容信息隱藏含義一個模塊中所包含的信息,不允許其他不需要這些信息的模塊使用局部化把一些關系密切的軟件元素物理地彼此靠近放置在一個局部的環境當中。軟件工程第三章軟件設計軟件設計概述內容軟件體系結構風格(模式)管道和過濾器(數據流模型)該體系結構被用于當輸入數據被通過一系列計算或操縱構件變換為輸出數據的情形。軟件工程第三章軟件設計軟件設計概述內容例子一個機構給其客戶開出帳單。每星期將付款與帳單核對一次,若賬單已經支付,則開出收據,若在一個規定的時間內尚未支付,則給出一個催款單。軟件工程第三章軟件設計軟件設計概述內容面向對象需求可以通過對象以及它們的抽象類型組織起來。隱式請求隱式請求設計模型是事件驅動的。面向數據流的設計將系統按層次劃分,每一層都為上一層提供服務。過程控制將過程輸出維持在某個指定值的范圍之內。客戶機/服務器軟件工程第三章軟件設計軟件設計概述內容程序結構程序結構反映軟件結構中的模塊劃分情況,它通常是樹狀結構或網狀結構,其中蘊含了程序控制上的層次關系。軟件工程第三章軟件設計軟件設計概述內容程序結構分類樹狀結構整個樹狀結構只有一個根模塊任何一個非根模塊,只有一個調用模塊,而且同一層模塊之間不發生聯系軟件工程第三章軟件設計軟件設計概述內容網狀結構任意兩個模塊之間都可以有雙向的關系,不存在上級模塊和下屬模塊的關系軟件工程第三章軟件設計軟件設計概述內容表示軟件結構的圖形軟件層次圖軟件工程第三章軟件設計軟件設計概述內容軟件結構圖軟件工程第三章軟件設計軟件設計概述內容數據設計數據設計的原則用于軟件的系統化方法也適用于數據要確定所有數據結構,以及在每種數據結構上實施的操作應該建立一個數據字典,用它來定義數據和軟件的設計底層數據設計的決策應該推遲到設計過程的后期進行,在數據設計中也可以使用自頂向下、逐步細化的方法數據設計時應遵從信息隱藏原則應當創建一個存放數據結構和相關操作的庫軟件設計和程序設計語言應當支持抽象數據類型的定義和實現軟件工程第三章軟件設計軟件設計概述內容數據結構設計原則盡量使用簡單的數據結構在設計數據結構時要注意數據之間的關系為了加強數據設計的可復用性,應該針對常用的數據結構和復雜的數據結構設計抽象類型盡量使用經典數據結構在確定數據結構時一般先考慮靜態結構對于復雜數據結構,應給出圖形和文字描述,以便于理解軟件工程第三章軟件設計軟件設計概述內容文件設計定義:指對數據存儲文件的設計。文件的邏輯設計整理必需的數據元素分析數據間的關系確定文件記錄的內容文件的物理設計理解文件的特性確定文件物理組織結構確定文件的存儲介質確定文件的記錄格式估計記錄的存取時間估計文件的存儲量軟件工程第三章軟件設計軟件設計概述內容數據庫設計數據庫設計的基本步驟邏輯設計–創建E-R圖物理設計–按照第三范式設計表結構安全性設計用戶只能通過賬號登錄應用軟件,通過應用軟件訪問數據庫用戶賬號的密碼進行加密處理。確保在任何地方不出現密碼的銘文表示確定每個角色對數據庫訪問的權限。性能優化優化表結構本身優化數據庫的環境參數軟件工程第三章軟件設計軟件設計概述內容第一范式(1NF)在關系模式R中的每一個具體關系r中,如果每個屬性值都是不可再分的最小數據單位,則稱R是第一范式的關系。第二范式(2NF)如果關系模式R(U,F)中的所有非主屬性都完全依賴于任意一個候選關鍵字,則稱關系R是屬于第二范式的。第三范式(3NF)如果關系模式R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞信賴,則稱關系R是屬于第三范式的。軟件工程第三章軟件設計軟件設計概述內容PowerDesign9使用方法安裝認識環境練習建立邏輯模型(CDM)建立物理模型(PDM)生成SQL文件,同時生成數據庫軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容練習軟件工程第三章軟件設計軟件設計概述內容步驟建立實體圖(Entity)填寫屬性(Attributes)建立聯系(Relationship)定義概念模型屬性Model->ModelProperties…創建概念模型的域Model->Domains…檢查CDMTools->CheckModel…由CDM生成PDMTools->GeneratenewPhysicalDataModel軟件工程第三章軟件設計軟件設計概述內容觀察標識符與聯系的轉換利用PDM創建數據庫創建一個Access空數據庫(test.mdb)配置數據源創建數據庫,同時生成SQL文件Database->GenerateDatabase選擇ODBCgeneration選項檢查Access數據庫(test.mdb)軟件工程第三章軟件設計軟件設計概述內容結構化設計方法數據流的類型交換流:可劃分為明顯的3個部分:邏輯輸入、中心變換、輸出數據。整個的數據流動以一種順序的方式并沿一條或很少的幾條“直線”路徑進行。如果一部分數據流圖體現了這些特征,這就是變換流。軟件工程第三章軟件設計軟件設計概述內容事務流一個數據數據流經過某個加工后,有若干個平行的數據流流出,將這種變換稱為事物流。事務流的特征是數據沿某輸入路徑流動,該路徑將外部信息轉換成事務,事務被估值,根據其值,啟動沿很多動作路徑之一的流。其中發射出多條動作路徑的信息流中心被稱為事務中心。

軟件工程第三章軟件設計軟件設計概述內容設計過程

流程圖類型區分事物中心和數據接受路徑區分輸入和輸出分支”事物“”變換“映射成事物結構映射成變換結構用啟發式設計規則精化軟件結構導出接口描述和全程數據結構詳細設計數據流程圖復查軟件工程第三章軟件設計軟件設計概述內容變換分析變換分方法的步驟重畫數據流圖在數據流程圖上區分系統的邏輯輸入、邏輯輸出和中心變換部分設計軟件結構的頂層和第一層設計軟件結構的第二層軟件工程第三章軟件設計軟件設計概述內容變換型數據流程圖轉化為軟件結構圖軟件工程第三章軟件設計軟件設計概述內容例子步驟1:評審和精化軟件的數據流圖。軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容步驟2:確定DFD含有變換流還是事務流步驟3:刻畫輸入和輸出流的邊界,隔離變換中心。輸入流被描述成信息從外部形式變換為內部信息的路徑。輸出流是信息從內部形式變換為外部形式的路徑。軟件工程第三章軟件設計軟件設計概述內容軟件工程第三章軟件設計軟件設計概述內容步驟4:完成軟件結構的頂層模塊和第一層結構圖軟件工程第三章軟件設計軟件設計概述內容步驟5:完成軟件結構的第二層結構轉化軟件工程第三章軟件設計軟件設計概述內容完成軟件結構的第一次迭代軟件工程第三章軟件設計軟件設計概述內容步驟6:用提高軟件質量的啟發信息,精化第一次迭代得到的程序結構軟件工程第三章軟件設計軟件設計概述內容事務分析事務分析方法的具體步驟重畫數據流圖確定事務流和變換流標識事務中心、事務接收路徑和事務處理路徑設計軟件結構的頂層和第一層設計軟件結構的第二層軟件工程第三章軟件設計軟件設計概述內容具有邊界的用戶交互子系統的第2層DFD步驟1:評審和精化軟件的數據流圖步驟2:確定DFD含有變換流還是事務流特征。步驟3:標識事務中心和每條動作路徑上的流特征。軟件結構第一層圖軟件結構第二層圖軟件工程第三章軟件設計軟件設計概述內容事務映射過程步驟4:將DFD映射到一個適合于進行事務處理的程序結構上軟件工程第三章軟件設計軟件設計概述內容用戶交互子系統的第一層軟件結構圖軟件工程第三章軟件設計軟件設計概述內容用戶交互子系統的第一次迭代軟件結構圖步驟5:完成第2層結構化并精

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論