軟件系統(tǒng)設(shè)計_第1頁
軟件系統(tǒng)設(shè)計_第2頁
軟件系統(tǒng)設(shè)計_第3頁
軟件系統(tǒng)設(shè)計_第4頁
軟件系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件系統(tǒng)設(shè)計軟件系統(tǒng)的組成物理結(jié)構(gòu)邏輯結(jié)構(gòu)軟件系統(tǒng)設(shè)計的原則掌握設(shè)計、部署用戶表示層掌握設(shè)計、部署業(yè)務(wù)邏輯層掌握設(shè)計、部署數(shù)據(jù)層實例演示(.NET)訓(xùn)練:訂單管理系統(tǒng)的實現(xiàn)掌握數(shù)據(jù)傳輸對象(DTO)模式的設(shè)計與.NET實現(xiàn)企業(yè)級應(yīng)用程序部署剖析軟件系統(tǒng)的結(jié)構(gòu)軟件系統(tǒng)由什么組成:程序代碼、控件、數(shù)據(jù)庫、文檔服務(wù)器、客戶機我們關(guān)注軟件系統(tǒng)內(nèi)部結(jié)構(gòu)物理結(jié)構(gòu)有多少類臺機器?它們的職責(zé)的是什么?如何分布?部署的問題系統(tǒng)架構(gòu)邏輯結(jié)構(gòu)軟件系統(tǒng)內(nèi)部如何組織?軟件(應(yīng)用)架構(gòu)的軟件系統(tǒng)物理結(jié)構(gòu)發(fā)展史單主機方式單機-IBM AS400客戶機-服務(wù)器(C/S)方式PB, Delphi, VB6.0,FoxPro應(yīng)用

2、程序客戶機-服務(wù)器客戶機-服務(wù)器(B/S)方式WEB-BASE應(yīng)用程序客戶機-WEB/應(yīng)用服務(wù)器-數(shù)據(jù)庫服務(wù)器四層結(jié)構(gòu)目前最為常用的部署結(jié)構(gòu)客戶機-WEB服務(wù)器-應(yīng)用服務(wù)器-數(shù)據(jù)庫服務(wù)器物理結(jié)構(gòu)-單主機方式特點:由單主機完成所有功能主機昂貴,并發(fā)數(shù)量有限伸縮性差,應(yīng)用范圍有限用戶界面交互性差啞終端數(shù)據(jù)顯示,數(shù)據(jù)輸入示例:IBM Mainframe物理結(jié)構(gòu)- C/S結(jié)構(gòu)(二節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證業(yè)務(wù)邏輯服務(wù)器數(shù)據(jù)存儲業(yè)務(wù)邏輯特點:豐富的用戶交互界面部署困難(目前向智能客戶端方面發(fā)展)兩種實現(xiàn):胖客戶端、痩客戶端客戶端/服務(wù)器的實現(xiàn)痩客戶端業(yè)務(wù)邏輯在服務(wù)端實現(xiàn)存儲過程、觸發(fā)器數(shù)據(jù)庫移可植

3、性好客戶端配置要求一般胖客戶端業(yè)務(wù)邏輯有客戶端實現(xiàn)程序可植性好客戶端配置要求高物理結(jié)構(gòu)- B/S結(jié)構(gòu)(三節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證WEB/應(yīng)用服務(wù)器業(yè)務(wù)邏輯系統(tǒng)服務(wù)數(shù)據(jù)服務(wù)器數(shù)據(jù)存儲業(yè)務(wù)邏輯特點:簡化部署問題好的響應(yīng)能力服務(wù)器成為系統(tǒng)瓶頸伸縮性不太好用戶界面交互能力差(AJAX方向發(fā)展)物理結(jié)構(gòu)- B/S結(jié)構(gòu)(四節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證WEB服務(wù)器系統(tǒng)服務(wù)應(yīng)用服務(wù)器業(yè)務(wù)邏輯數(shù)據(jù)服務(wù)器數(shù)據(jù)存儲業(yè)務(wù)邏輯特點:簡化部署問題更好的響應(yīng)能力伸縮性好交互能力取決于客戶端是目前最為經(jīng)典的結(jié)構(gòu)軟件系統(tǒng)邏輯結(jié)構(gòu)解決問題:軟件系統(tǒng)由哪件些部件組成?各個部件成什么樣的功能?各個部件如何協(xié)作、通信?系統(tǒng)

4、邏輯分層原理軟件系統(tǒng)邏輯分層軟件系統(tǒng)的部件經(jīng)典的三層結(jié)構(gòu)系統(tǒng)邏輯分層(Layered)原理問題”分而治之”的處理方式職責(zé)分配原理相互協(xié)作,向上服務(wù)的原理示例:ISO/OSI模型Windows系統(tǒng)系統(tǒng)分層的分類分類Strictly layered只能調(diào)用下層提供的服務(wù)Relaxed layered可以跨層調(diào)用Layer Super type(超層)每一層的公用行為,可以由所有層調(diào)用抽象接口每一層的部件對外的名稱上一層通過這個名稱調(diào)用請求服務(wù)關(guān)健概念服務(wù)應(yīng)用邏輯的分散單元把基于消息、適合通過網(wǎng)絡(luò)訪問的接口展示出來基于服務(wù)的架構(gòu)允許非常靈活的部署戰(zhàn)略服務(wù)可以用來平衡網(wǎng)絡(luò)計算資源,面不要求所有的數(shù)據(jù)的

5、邏輯駐在一臺計算機上企業(yè)應(yīng)用-發(fā)展新模式面向服務(wù)體系結(jié)構(gòu)SOA面向服務(wù)結(jié)構(gòu)-軟件部件的分類把功能相同/或相似的組件組織成了“層“(Layer)如我們常見的三層結(jié)構(gòu):表示層業(yè)務(wù)邏輯層數(shù)據(jù)層系統(tǒng)服務(wù)層經(jīng)典的三層結(jié)構(gòu)表示層用戶界面和界面處理數(shù)據(jù)驗證,輸入,數(shù)據(jù)顯示W(wǎng)indows Form(或智能客戶)、Web Form 邏輯層業(yè)務(wù)邏輯處理業(yè)務(wù)流程控制數(shù)據(jù)層訪問外部數(shù)據(jù)源(數(shù)據(jù)庫、XML etc)三層結(jié)構(gòu)的組成部件表示層用戶界面部件(UIC)用戶界面處理部件(UPC)業(yè)務(wù)邏輯層業(yè)務(wù)部件(BC)業(yè)務(wù)工作流(BWF)業(yè)務(wù)實體業(yè)務(wù)接口數(shù)據(jù)層數(shù)據(jù)訪問組件服務(wù)代理表示層用戶界面部件(UIC)按鈕、文本框、下拉列

6、表等控件Win formSystem.Windows.Forms and controlsWeb formSystem.Web.UI.WebControlsSystem.Web.UI.HtmlControls用戶處理部件(UPC)分隔用戶界面和業(yè)務(wù)邏輯下一步,執(zhí)行什么?Front Controller, Application Controller模式參考業(yè)務(wù)邏輯層業(yè)務(wù)組件處理特定的業(yè)務(wù)問題-封裝了業(yè)務(wù)邏輯/規(guī)則業(yè)務(wù)工作流協(xié)調(diào)多個業(yè)務(wù)組件,共同完成某個業(yè)務(wù)處理過程業(yè)務(wù)實體是數(shù)據(jù)容器表示業(yè)務(wù)邏輯里的一個對象業(yè)務(wù)工作流和業(yè)務(wù)組件過業(yè)務(wù)實體交互DTO的一個用法服務(wù)接口業(yè)務(wù)外觀層外部調(diào)用接口數(shù)據(jù)層數(shù)據(jù)

7、訪問邏輯組件隔離數(shù)據(jù)源和業(yè)務(wù)邏輯層業(yè)務(wù)層不在依賴于數(shù)據(jù)庫配置性和維護(hù)性服務(wù)代理調(diào)用外部服務(wù)接口回顧把功能相同/或相似的組件組織成了“層“(Layer)如我們常見的三層結(jié)構(gòu):表示層業(yè)務(wù)邏輯層數(shù)據(jù)層系統(tǒng)服務(wù)層軟件系統(tǒng)設(shè)計的原則標(biāo)識出您系統(tǒng)中所需要的部件每個部件中,保持設(shè)計一致性部件間低耦合、部件內(nèi)高內(nèi)聚部件間統(tǒng)一的數(shù)據(jù)交換格式XML, Serialized objects, DataReader應(yīng)用程序邏輯盡可以能抽象/使用接口可以有不同的實現(xiàn)開始設(shè)計時,決定層件調(diào)用規(guī)則零售系統(tǒng)-示例場景設(shè)計表現(xiàn)層設(shè)計用戶接口部件設(shè)計用戶接口處理部件簡單系統(tǒng)UI 部件Win Form & Web Form復(fù)雜系統(tǒng)

8、使用UPC用戶交互有流程如向?qū)С淘O(shè)計表現(xiàn)層-零售系統(tǒng)電子商務(wù)網(wǎng)站外部用戶Win Form 應(yīng)用程序內(nèi)部銷售代表執(zhí)行相同的任務(wù)查看產(chǎn)品、產(chǎn)品購買、付款結(jié)帳設(shè)計用戶界面部件用戶接口-管理用戶的交互顯示數(shù)據(jù)數(shù)據(jù)輸入-文字、圖片、聲音、等解釋用戶動作不參與事務(wù)處理可以封裝數(shù)據(jù)顯示和操作控制設(shè)計用戶界面部件數(shù)據(jù)輸入數(shù)據(jù)輸入提示數(shù)據(jù)輸入限制數(shù)據(jù)輸入驗證捕獲用戶動作事件數(shù)據(jù)顯示數(shù)據(jù)值的對照可以使用單獨部件進(jìn)行數(shù)據(jù)緩存可以使用單獨部件進(jìn)行分頁處理設(shè)計用戶界面部件數(shù)據(jù)顯示調(diào)用業(yè)務(wù)層數(shù)據(jù)層獲取數(shù)據(jù)數(shù)據(jù)格式化數(shù)據(jù)本地化獲取的數(shù)據(jù)通常是業(yè)務(wù)實體,需要一些額外的代碼(UPC)去解析自定義數(shù)據(jù)展示愛好可以使用單獨部件進(jìn)行

9、數(shù)據(jù)緩存可以使用單獨部件進(jìn)行分頁處理用戶接口調(diào)用示例private void addItem_Click(object sender, System.EventArgs e) AddItemToBasket(selectedProduct, selectedQuantity) public void AddItemToBasket(int ProductID, int Quantity) / code to add the item to the basket用戶接口部件的交互訪問業(yè)務(wù)部件訪問用戶處理部件訪問數(shù)據(jù)訪問邏輯組件盡管違反分層原理,但現(xiàn)實是存在的需要將數(shù)據(jù)訪問組件與UI一起部署用戶與

10、系統(tǒng)的交互會按照一個特定流程例如銷售系統(tǒng)中的購買流程輸入購買的產(chǎn)品和數(shù)量計算產(chǎn)品金額輸入付款信息輸入收貨地址購買流程中包含了多個步驟使用用戶處理部件完成這個購買流程設(shè)計用戶處理部件設(shè)計用戶處理部件用戶處理組件用類來實現(xiàn)UI可以調(diào)用用戶處理組件類UPC類中方法封裝了:完成一個流程所需的動作示例:結(jié)帳處理PurchaseUserProcess.cs表示層設(shè)計將用戶交互分成用戶界面和用戶界面處理特點:更好的管理用戶交互-如可以撤消操作多個用戶界面可以重用相同的處理處理并發(fā)用戶的活動設(shè)計UIC和UPC標(biāo)識出用戶交互要處理的業(yè)務(wù)處理標(biāo)識出業(yè)務(wù)處理所需要的數(shù)據(jù)標(biāo)識出用記交互過程中狀態(tài)的變化設(shè)計出用戶交互流

11、程ASP.NET的實現(xiàn)Session 表示用戶交互流程的變化-購物車Windows Form的實現(xiàn)成員變量用戶處理組件設(shè)計UPC設(shè)計建議確定是否需要用戶處理組件如果用戶處理過程長中間狀態(tài)需要應(yīng)該保存數(shù)據(jù)庫中如果用戶處理過程短中間狀態(tài)需要應(yīng)該保存在內(nèi)存/會話中將用戶處理組件設(shè)計支持序列化,可以支持成多種數(shù)據(jù)存儲業(yè)務(wù)層設(shè)計業(yè)務(wù)組件業(yè)務(wù)實體服務(wù)接口業(yè)務(wù)工作流業(yè)務(wù)組件/業(yè)務(wù)工作流是否需要業(yè)務(wù)工作流?業(yè)務(wù)處理包括多個步驟?是否包括多個業(yè)務(wù)組件去完成一個業(yè)務(wù)處理?保存業(yè)務(wù)處理中間狀態(tài)?使用BizTalk服務(wù)器什么時候不需要業(yè)務(wù)工作流?不需要維護(hù)業(yè)務(wù)處理中間狀態(tài)業(yè)務(wù)組件可以被多個業(yè)務(wù)處理重用零售系統(tǒng)-訂單生

12、成多個步驟信用卡驗證付款安排交貨交貨確認(rèn)按照一定的秩序完成的每一個步驟是由單獨的業(yè)務(wù)組件完成的設(shè)計業(yè)務(wù)部件業(yè)務(wù)部件具有最基本的事務(wù)性封裝使用業(yè)務(wù)規(guī)則/業(yè)務(wù)邏輯被表現(xiàn)層/業(yè)務(wù)工作流調(diào)用/服務(wù)接口調(diào)用數(shù)據(jù)層/數(shù)據(jù)訪問邏輯COM/COM+部署在應(yīng)用服務(wù)器上 .NET業(yè)務(wù)部件設(shè)計由類的方法實現(xiàn)業(yè)務(wù)組件處理事務(wù)數(shù)據(jù)輸入/輸出的驗證調(diào)用數(shù)據(jù)訪問數(shù)據(jù)層/服務(wù)代理起動業(yè)務(wù)工作流異常處理業(yè)務(wù)部件可以被以下:服務(wù)接口用戶處理部件業(yè)務(wù)工作流其它業(yè)務(wù)部件典型的業(yè)務(wù)部件業(yè)務(wù)組件可以被表示層調(diào)用可以被服務(wù)接口調(diào)用可以調(diào)用DALC可以服務(wù)代理層外部服務(wù)數(shù)據(jù)傳輸方式XMLDataReaderDataSetTyped Data

13、SetCustom object(業(yè)務(wù)實體)業(yè)務(wù)實體設(shè)計能過屬性來訪問(Get和Set)集合數(shù)據(jù)使用索引也可用系統(tǒng)內(nèi)置的DataTable業(yè)務(wù)實體成員的命名Validate, Save, HasCheckedOut, IsLogged通過方法使用的業(yè)務(wù)實體提高可維護(hù)性、擴展性根據(jù)系統(tǒng)象命名業(yè)務(wù)實體名稱OrderCustomer業(yè)務(wù)實體設(shè)計建議考慮是否需要業(yè)務(wù)實體增加編碼工作量所有的業(yè)務(wù)實體繼承一個基類業(yè)務(wù)實體需要串行化為業(yè)務(wù)實體建個一個通用的實體接口如: Save, Load, Delete, IsDirty, andValidate.業(yè)務(wù)實體驗證數(shù)據(jù)業(yè)務(wù)實體依賴于數(shù)據(jù)訪問層而不是數(shù)據(jù)庫不要在

14、這里寫SQL業(yè)務(wù)層設(shè)計回顧業(yè)務(wù)組件業(yè)務(wù)實體服務(wù)接口業(yè)務(wù)工作流設(shè)計數(shù)據(jù)層用什么做數(shù)據(jù)存儲關(guān)系數(shù)據(jù)庫消息數(shù)據(jù)庫文件系統(tǒng)XML文件數(shù)據(jù)訪問邏輯部件部件間傳輸格式數(shù)據(jù)訪問邏輯部件提供inserting, deleting, updating, retrieving 分頁、排序使用data access helper管理數(shù)據(jù)連接,特定的數(shù)據(jù)庫操作可以使用存儲程/觸發(fā)器性能和可維護(hù)性數(shù)據(jù)訪問邏輯部件示例OrderData.cspublic void UpdateOrder(DataSet updatedOrder) / code to update the database/ Data in as a p

15、arameter of type dataset數(shù)據(jù)訪問邏輯部件設(shè)計建議返回僅需要的數(shù)據(jù)使用數(shù)據(jù)庫完成數(shù)據(jù)密集型的操作使用存儲過程/觸發(fā)器封裝存儲邏輯:insert, read, update, and find 功能不同有客戶端使用一致的數(shù)據(jù)接口如果需要,數(shù)據(jù)加密操作/解密操作僅在需要的地方使用事務(wù)管理設(shè)計數(shù)據(jù)訪問助理件DAOHelper重用數(shù)據(jù)庫連接,操作隔離數(shù)據(jù)庫身份認(rèn)證隔離源信息簡化數(shù)據(jù)訪問代碼針對不同數(shù)據(jù)庫需要不同的DADOHelper演示 Sample客戶訂單查詢功能層次結(jié)構(gòu)用戶界面層WinForm/Web Form業(yè)務(wù)邏輯層數(shù)據(jù)層DAO Helper Sample PageDem

16、o Step數(shù)據(jù)公用服務(wù)層數(shù)據(jù)層業(yè)務(wù)邏輯層用戶界面層(Web Form)使用DataSet 作為數(shù)據(jù)傳輸對象重用業(yè)務(wù)邏輯層Win Form項目管理數(shù)據(jù)公用服務(wù)層DAOHelperLayer數(shù)據(jù)層DataLayer業(yè)務(wù)邏輯層BusinessLayer用戶界面層(Web Form)WebFormProejctDAOHelperLayerStirng connectionStringGetDataSet(string selectSql)GetDataRader(string dataReader)void executeSql()數(shù)據(jù)DataLayerGetCustomerOrderByID(st

17、ring customerID)生成 SQL 連接語句“Select * from customer where customer ID = ” + customerID + “”;調(diào)用DAOHelperBusinessLayer-業(yè)務(wù)層GetCustomerOrderByID(string customerID)生成 SQL 連接語句“Select * from customer where customer ID = ” + customerID + “”;調(diào)用數(shù)據(jù)層表示層 用戶界面組件(UI)ASPX用戶處理部件(UPC)CS/VB重用表示層Windows Form Project訓(xùn)練-訂單管理系統(tǒng)客戶檔案管理產(chǎn)品管理訂單管理新增訂單查詢訂單客戶訂單查詢數(shù)據(jù)庫northwindDemo Step數(shù)據(jù)公用服務(wù)層數(shù)據(jù)層業(yè)務(wù)邏輯層用戶界面層(Web Form)使用DataSet 作為數(shù)據(jù)傳輸對象重用業(yè)務(wù)邏輯層Win Form項目管理數(shù)據(jù)公用服務(wù)層DAOHelperLayer數(shù)據(jù)層Data Layer業(yè)務(wù)邏輯層BusinessLayer用戶界面層WebForm Project實現(xiàn)總結(jié)討論分層理解服務(wù)接口實現(xiàn)外部調(diào)用接口Web Service 實現(xiàn)D

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論