版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件系統(tǒng)設計軟件系統(tǒng)的組成物理結(jié)構邏輯結(jié)構軟件系統(tǒng)設計的原則掌握設計、部署用戶表示層掌握設計、部署業(yè)務邏輯層掌握設計、部署數(shù)據(jù)層實例演示(.NET平臺)訓練:訂單管理系統(tǒng)的實現(xiàn)掌握數(shù)據(jù)傳輸對象(DTO)模式的設計與.NET實現(xiàn)企業(yè)級應用程序部署振陽軟件技術培訓中心剖析軟件系統(tǒng)的結(jié)構軟件系統(tǒng)由什么組成:程序代碼、控件、數(shù)據(jù)庫、文檔服務器、客戶機我們關注軟件系統(tǒng)內(nèi)部結(jié)構物理結(jié)構有多少類臺機器?它們的職責的是什么?如何分布?部署的問題系統(tǒng)架構邏輯結(jié)構軟件系統(tǒng)內(nèi)部如何組織?軟件(應用)架構的振陽軟件技術培訓中心軟件系統(tǒng)物理結(jié)構發(fā)展史單主機方式單機-IBM AS400客戶機-服務器(C/S)方式PB,
2、Delphi, VB6.0,FoxPro應用程序客戶機-服務器客戶機-服務器(B/S)方式WEB-BASE應用程序客戶機-WEB/應用服務器-數(shù)據(jù)庫服務器四層結(jié)構目前最為常用的部署結(jié)構客戶機-WEB服務器-應用服務器-數(shù)據(jù)庫服務器振陽軟件技術培訓中心物理結(jié)構-單主機方式特點:由單主機完成所有功能主機昂貴,并發(fā)數(shù)量有限伸縮性差,應用范圍有限用戶界面交互性差啞終端數(shù)據(jù)顯示,數(shù)據(jù)輸入示例:IBM Mainframe振陽軟件技術培訓中心物理結(jié)構- C/S結(jié)構(二節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證業(yè)務邏輯服務器數(shù)據(jù)存儲業(yè)務邏輯特點:豐富的用戶交互界面部署困難(目前向智能客戶端方面發(fā)展)兩種實現(xiàn):胖客戶端、
3、痩客戶端振陽軟件技術培訓中心客戶端/服務器的實現(xiàn)痩客戶端業(yè)務邏輯在服務端實現(xiàn)存儲過程、觸發(fā)器數(shù)據(jù)庫移可植性好客戶端配置要求一般胖客戶端業(yè)務邏輯有客戶端實現(xiàn)程序可植性好客戶端配置要求高振陽軟件技術培訓中心物理結(jié)構- B/S結(jié)構(三節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證WEB/應用服務器業(yè)務邏輯系統(tǒng)服務數(shù)據(jù)服務器數(shù)據(jù)存儲業(yè)務邏輯特點:簡化部署問題好的響應能力服務器成為系統(tǒng)瓶頸伸縮性不太好用戶界面交互能力差(AJAX方向發(fā)展)振陽軟件技術培訓中心物理結(jié)構- B/S結(jié)構(四節(jié)點)客戶機數(shù)據(jù)表示/輸入/驗證WEB服務器系統(tǒng)服務應用服務器業(yè)務邏輯數(shù)據(jù)服務器數(shù)據(jù)存儲業(yè)務邏輯特點:簡化部署問題更好的響應能力伸縮性好
4、交互能力取決于客戶端是目前最為經(jīng)典的結(jié)構振陽軟件技術培訓中心軟件系統(tǒng)邏輯結(jié)構解決問題:軟件系統(tǒng)由哪件些部件組成?各個部件成什么樣的功能?各個部件如何協(xié)作、通信?系統(tǒng)邏輯分層原理軟件系統(tǒng)邏輯分層軟件系統(tǒng)的部件經(jīng)典的三層結(jié)構振陽軟件技術培訓中心系統(tǒng)邏輯分層(Layered)原理問題”分而治之”的處理方式職責分配原理相互協(xié)作,向上服務的原理示例:ISO/OSI模型Windows系統(tǒng)振陽軟件技術培訓中心系統(tǒng)分層的分類分類Strictly layered只能調(diào)用下層提供的服務Relaxed layered可以跨層調(diào)用Layer Super type(超層)每一層的公用行為,可以由所有層調(diào)用抽象接口每一層
5、的部件對外的名稱上一層通過這個名稱調(diào)用請求服務振陽軟件技術培訓中心關健概念服務應用邏輯的分散單元把基于消息、適合通過網(wǎng)絡訪問的接口展示出來基于服務的架構允許非常靈活的部署戰(zhàn)略服務可以用來平衡網(wǎng)絡計算資源,面不要求所有的數(shù)據(jù)的邏輯駐在一臺計算機上企業(yè)應用-發(fā)展新模式面向服務體系結(jié)構SOA振陽軟件技術培訓中心面向服務結(jié)構-軟件部件的分類把功能相同/或相似的組件組織成了“層“(Layer)如我們常見的三層結(jié)構:表示層業(yè)務邏輯層數(shù)據(jù)層系統(tǒng)服務層振陽軟件技術培訓中心經(jīng)典的三層結(jié)構表示層用戶界面和界面處理數(shù)據(jù)驗證,輸入,數(shù)據(jù)顯示W(wǎng)indows Form(或智能客戶)、Web Form 邏輯層業(yè)務邏輯處理業(yè)
6、務流程控制數(shù)據(jù)層訪問外部數(shù)據(jù)源(數(shù)據(jù)庫、XML etc)振陽軟件技術培訓中心三層結(jié)構的組成部件表示層用戶界面部件(UIC)用戶界面處理部件(UPC)業(yè)務邏輯層業(yè)務部件(BC)業(yè)務工作流(BWF)業(yè)務實體業(yè)務接口數(shù)據(jù)層數(shù)據(jù)訪問組件服務代理振陽軟件技術培訓中心表示層用戶界面部件(UIC)按鈕、文本框、下拉列表等控件Win formSystem.Windows.Forms and controlsWeb formSystem.Web.UI.WebControlsSystem.Web.UI.HtmlControls用戶處理部件(UPC)分隔用戶界面和業(yè)務邏輯下一步,執(zhí)行什么?Front Control
7、ler, Application Controller模式參考振陽軟件技術培訓中心業(yè)務邏輯層業(yè)務組件處理特定的業(yè)務問題-封裝了業(yè)務邏輯/規(guī)則業(yè)務工作流協(xié)調(diào)多個業(yè)務組件,共同完成某個業(yè)務處理過程業(yè)務實體是數(shù)據(jù)容器表示業(yè)務邏輯里的一個對象業(yè)務工作流和業(yè)務組件過業(yè)務實體交互DTO的一個用法服務接口業(yè)務外觀層外部調(diào)用接口振陽軟件技術培訓中心數(shù)據(jù)層數(shù)據(jù)訪問邏輯組件隔離數(shù)據(jù)源和業(yè)務邏輯層業(yè)務層不在依賴于數(shù)據(jù)庫配置性和維護性服務代理調(diào)用外部服務接口振陽軟件技術培訓中心回顧把功能相同/或相似的組件組織成了“層“(Layer)如我們常見的三層結(jié)構:表示層業(yè)務邏輯層數(shù)據(jù)層系統(tǒng)服務層振陽軟件技術培訓中心軟件系統(tǒng)設計
8、的原則標識出您系統(tǒng)中所需要的部件每個部件中,保持設計一致性部件間低耦合、部件內(nèi)高內(nèi)聚部件間統(tǒng)一的數(shù)據(jù)交換格式XML, Serialized objects, DataReader應用程序邏輯盡可以能抽象/使用接口可以有不同的實現(xiàn)開始設計時,決定層件調(diào)用規(guī)則振陽軟件技術培訓中心零售系統(tǒng)-示例場景振陽軟件技術培訓中心設計表現(xiàn)層設計用戶接口部件設計用戶接口處理部件簡單系統(tǒng)UI 部件Win Form & Web Form復雜系統(tǒng)使用UPC用戶交互有流程如向?qū)С陶耜栜浖夹g培訓中心設計表現(xiàn)層-零售系統(tǒng)電子商務網(wǎng)站外部用戶Win Form 應用程序內(nèi)部銷售代表執(zhí)行相同的任務查看產(chǎn)品、產(chǎn)品購買、付款結(jié)帳振陽
9、軟件技術培訓中心設計用戶界面部件用戶接口-管理用戶的交互顯示數(shù)據(jù)數(shù)據(jù)輸入-文字、圖片、聲音、等解釋用戶動作不參與事務處理可以封裝數(shù)據(jù)顯示和操作控制振陽軟件技術培訓中心設計用戶界面部件數(shù)據(jù)輸入數(shù)據(jù)輸入提示數(shù)據(jù)輸入限制數(shù)據(jù)輸入驗證捕獲用戶動作事件數(shù)據(jù)顯示數(shù)據(jù)值的對照可以使用單獨部件進行數(shù)據(jù)緩存可以使用單獨部件進行分頁處理振陽軟件技術培訓中心設計用戶界面部件數(shù)據(jù)顯示調(diào)用業(yè)務層數(shù)據(jù)層獲取數(shù)據(jù)數(shù)據(jù)格式化數(shù)據(jù)本地化獲取的數(shù)據(jù)通常是業(yè)務實體,需要一些額外的代碼(UPC)去解析自定義數(shù)據(jù)展示愛好可以使用單獨部件進行數(shù)據(jù)緩存可以使用單獨部件進行分頁處理振陽軟件技術培訓中心用戶接口調(diào)用示例private void
10、 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è)務部件訪問用戶處理部件訪問數(shù)據(jù)訪問邏輯組件盡管違反分層原理,但現(xiàn)實是存在的需要將數(shù)據(jù)訪問組件與UI一起部署振陽軟件技術培訓中心用戶與系統(tǒng)的交互會按照一個特定流程例如銷售
11、系統(tǒng)中的購買流程輸入購買的產(chǎn)品和數(shù)量計算產(chǎn)品金額輸入付款信息輸入收貨地址購買流程中包含了多個步驟使用用戶處理部件完成這個購買流程設計用戶處理部件振陽軟件技術培訓中心設計用戶處理部件用戶處理組件用類來實現(xiàn)UI可以調(diào)用用戶處理組件類UPC類中方法封裝了:完成一個流程所需的動作示例:結(jié)帳處理PurchaseUserProcess.cs振陽軟件技術培訓中心表示層設計將用戶交互分成用戶界面和用戶界面處理特點:更好的管理用戶交互-如可以撤消操作多個用戶界面可以重用相同的處理處理并發(fā)用戶的活動振陽軟件技術培訓中心設計UIC和UPC標識出用戶交互要處理的業(yè)務處理標識出業(yè)務處理所需要的數(shù)據(jù)標識出用記交互過程中狀
12、態(tài)的變化設計出用戶交互流程ASP.NET的實現(xiàn)Session 表示用戶交互流程的變化-購物車Windows Form的實現(xiàn)成員變量振陽軟件技術培訓中心用戶處理組件設計振陽軟件技術培訓中心UPC設計建議確定是否需要用戶處理組件如果用戶處理過程長中間狀態(tài)需要應該保存數(shù)據(jù)庫中如果用戶處理過程短中間狀態(tài)需要應該保存在內(nèi)存/會話中將用戶處理組件設計支持序列化,可以支持成多種數(shù)據(jù)存儲振陽軟件技術培訓中心振陽軟件技術培訓中心業(yè)務層設計業(yè)務組件業(yè)務實體服務接口業(yè)務工作流振陽軟件技術培訓中心業(yè)務組件/業(yè)務工作流是否需要業(yè)務工作流?業(yè)務處理包括多個步驟?是否包括多個業(yè)務組件去完成一個業(yè)務處理?保存業(yè)務處理中間狀態(tài)
13、?使用BizTalk服務器什么時候不需要業(yè)務工作流?不需要維護業(yè)務處理中間狀態(tài)業(yè)務組件可以被多個業(yè)務處理重用振陽軟件技術培訓中心零售系統(tǒng)-訂單生成多個步驟信用卡驗證付款安排交貨交貨確認按照一定的秩序完成的每一個步驟是由單獨的業(yè)務組件完成的振陽軟件技術培訓中心設計業(yè)務部件業(yè)務部件具有最基本的事務性封裝使用業(yè)務規(guī)則/業(yè)務邏輯被表現(xiàn)層/業(yè)務工作流調(diào)用/服務接口調(diào)用數(shù)據(jù)層/數(shù)據(jù)訪問邏輯COM/COM+部署在應用服務器上振陽軟件技術培訓中心 .NET業(yè)務部件設計由類的方法實現(xiàn)業(yè)務組件處理事務數(shù)據(jù)輸入/輸出的驗證調(diào)用數(shù)據(jù)訪問數(shù)據(jù)層/服務代理起動業(yè)務工作流異常處理業(yè)務部件可以被以下:服務接口用戶處理部件業(yè)務
14、工作流其它業(yè)務部件振陽軟件技術培訓中心典型的業(yè)務部件業(yè)務組件可以被表示層調(diào)用可以被服務接口調(diào)用可以調(diào)用DALC可以服務代理層外部服務振陽軟件技術培訓中心數(shù)據(jù)傳輸方式XMLDataReaderDataSetTyped DataSetCustom object(業(yè)務實體)振陽軟件技術培訓中心業(yè)務實體設計能過屬性來訪問(Get和Set)集合數(shù)據(jù)使用索引也可用系統(tǒng)內(nèi)置的DataTable業(yè)務實體成員的命名Validate, Save, HasCheckedOut, IsLogged通過方法使用的業(yè)務實體提高可維護性、擴展性根據(jù)系統(tǒng)象命名業(yè)務實體名稱OrderCustomer振陽軟件技術培訓中心業(yè)務實體
15、設計建議考慮是否需要業(yè)務實體增加編碼工作量所有的業(yè)務實體繼承一個基類業(yè)務實體需要串行化為業(yè)務實體建個一個通用的實體接口如: Save, Load, Delete, IsDirty, andValidate.業(yè)務實體驗證數(shù)據(jù)業(yè)務實體依賴于數(shù)據(jù)訪問層而不是數(shù)據(jù)庫不要在這里寫SQL振陽軟件技術培訓中心業(yè)務層設計回顧業(yè)務組件業(yè)務實體服務接口業(yè)務工作流振陽軟件技術培訓中心振陽軟件技術培訓中心設計數(shù)據(jù)層用什么做數(shù)據(jù)存儲關系數(shù)據(jù)庫消息數(shù)據(jù)庫文件系統(tǒng)XML文件數(shù)據(jù)訪問邏輯部件部件間傳輸格式振陽軟件技術培訓中心數(shù)據(jù)訪問邏輯部件提供inserting, deleting, updating, retrieving
16、 分頁、排序使用data access helper管理數(shù)據(jù)連接,特定的數(shù)據(jù)庫操作可以使用存儲程/觸發(fā)器性能和可維護性振陽軟件技術培訓中心數(shù)據(jù)訪問邏輯部件示例OrderData.cspublic void UpdateOrder(DataSet updatedOrder) / code to update the database/ Data in as a parameter of type dataset振陽軟件技術培訓中心數(shù)據(jù)訪問邏輯部件設計建議返回僅需要的數(shù)據(jù)使用數(shù)據(jù)庫完成數(shù)據(jù)密集型的操作使用存儲過程/觸發(fā)器封裝存儲邏輯:insert, read, update, and find 功
17、能不同有客戶端使用一致的數(shù)據(jù)接口如果需要,數(shù)據(jù)加密操作/解密操作僅在需要的地方使用事務管理振陽軟件技術培訓中心設計數(shù)據(jù)訪問助理件DAOHelper重用數(shù)據(jù)庫連接,操作隔離數(shù)據(jù)庫身份認證隔離源信息簡化數(shù)據(jù)訪問代碼針對不同數(shù)據(jù)庫需要不同的DADOHelper振陽軟件技術培訓中心振陽軟件技術培訓中心演示 Sample客戶訂單查詢功能層次結(jié)構用戶界面層WinForm/Web Form業(yè)務邏輯層數(shù)據(jù)層DAO Helper振陽軟件技術培訓中心 Sample Page振陽軟件技術培訓中心Demo Step數(shù)據(jù)公用服務層數(shù)據(jù)層業(yè)務邏輯層用戶界面層(Web Form)使用DataSet 作為數(shù)據(jù)傳輸對象重用業(yè)務
18、邏輯層Win Form振陽軟件技術培訓中心項目管理數(shù)據(jù)公用服務層DAOHelperLayer數(shù)據(jù)層DataLayer業(yè)務邏輯層BusinessLayer用戶界面層(Web Form)WebFormProejct振陽軟件技術培訓中心DAOHelperLayerStirng connectionStringGetDataSet(string selectSql)GetDataRader(string dataReader)void executeSql()振陽軟件技術培訓中心數(shù)據(jù)DataLayerGetCustomerOrderByID(string customerID)生成 SQL 連接語句“
19、Select * from customer where customer ID = ” + customerID + “”;調(diào)用DAOHelper振陽軟件技術培訓中心BusinessLayer-業(yè)務層GetCustomerOrderByID(string customerID)生成 SQL 連接語句“Select * from customer where customer ID = ” + customerID + “”;調(diào)用數(shù)據(jù)層振陽軟件技術培訓中心表示層 用戶界面組件(UI)ASPX用戶處理部件(UPC)CS/VB振陽軟件技術培訓中心重用表示層Windows Form Project振陽軟件技術培訓中心
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠生產(chǎn)承包合同
- 2024貨運合同格式范本新版范文
- 2024新版廣告合同范本
- 定制辦公桌椅及安裝協(xié)議
- 投資合作談判技巧
- 招標代理合作協(xié)議樣本
- 房建工程施工分包協(xié)議
- 戶外廣告業(yè)務合作合同參考
- 廣東省室內(nèi)裝潢設計合同樣本
- 3.1.1橢圓的標準方程【同步課件】
- 危廢治理項目經(jīng)驗-危廢治理案例分析
- 南京市2024-2025學年六年級上學期11月期中調(diào)研數(shù)學試卷二(有答案)
- 汽車防凍液中毒
- 粉條產(chǎn)品購銷合同模板
- 2024至2030年中國自動車配件行業(yè)投資前景及策略咨詢研究報告
- 2024-2030年中國蔗糖行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景研究報告
- 北師版 七上 數(shù)學 第四章 基本平面圖形《角-第2課時 角的大小比較》課件
- 外研版小學英語(三起點)六年級上冊期末測試題及答案(共3套)
- 北師大版(2024新版)七年級上冊生物期中學情調(diào)研測試卷(含答案)
- 產(chǎn)品包裝規(guī)范管理制度
- 2024年海南省中考物理試題卷(含答案)
評論
0/150
提交評論