系統概要設計

  在完成了上一章的需求分析後,應該到達的目標是:對系統有一個總體的認識,包括每一個功能實現的流程,產生的數據,技術基礎等。html

  基於以上的認識,就能夠開始對該系統進行概要設計。前端

    • 首先設計系統的整體架構。
    • 而後利用順序圖描述基於該架構下各個類如何協做實現各個待開發的功能。
    • 最後整理總結出數據字典。
  • 系統整體架構設計

  在該系統中,做者採用的系統框架是Struts2,Spring4,Hibernate4和Bootstrap,根據各個框架自身的特色作出如下的系統架構設計:數據庫

  

  設計依據編程

    • 展現層

    一、Struts2是一個展示層的MVC框架,它解決了jsp頁面代碼與業務邏輯代碼耦合的問題。提供了Filter的機制,對用戶的請求進行攔截,而後分派到對應的Action類中進行處理,最後根據Action類的處理結果返回對應的響應頁面。在該Filter的幫助下頁面的代碼不須要參雜任何的業務邏輯代碼,而Action類中經過調用業務邏輯層提供的接口,則能夠實現對請求的處理。前端框架

    二、由於做者並不擅長前端頁面的開發,因此只可以採用當前網頁開發中比較流行的前端框架Bootstrap,Bootstrap也提供了比較好的排版以及基本的樣式效果,最後實現的總體效果也還算過得去。session

    • 業務邏輯層

    Spring4提供了兩個最重要的組件IoC和AOP,因此Spring最適合設計在業務邏輯層,從數據訪問層獲取數據,爲展現層提供業務邏輯的實現,做一個承上啓下的功能。數據結構

    Spring的IoC容器,簡化了開發人員對類與類之間依賴關係的維護,在利用Spring進行開發的過程當中,只需定義須要的接口,而對應的實例化過程則交給IoC容器來進行注入。這實際上也是一種解耦的操做,經過結合Spring和麪向接口的編程思想,實際開發出來的代碼十分的簡潔,並且邏輯清晰明確。同時也提升了功能類的代碼複用率。架構

    Spring的AOP,帶來最大的好處就是讓開發人員從繁瑣的事務操做代碼中解放出來,讓開發人員更加專一於業務邏輯代碼的實現。框架

    同時在Spring4和Struts2整合以後,將Action類的生成也交給了IoC容器來管理。jsp

    • 數據訪問層  

    Hibernate4是一個ORM框架,可以將實體類直接映射到數據庫表,在開發中只要定義好實體類之間的關係,數據庫表與表之間的關係也就確立下來了。

    同時Hibernate提供了一些基本的數據庫操做,讓開發人員不須要糾結於複雜的SQL。也提供了HQL,將以往面向數據庫表的查詢,改變爲面向實體類進行的數據查詢。

    • Value Object 值對象

    貫穿於各層的是值VO值對象,設計的目的,主要是考慮到業務邏輯實現過程當中須要的數據結構可能與保存到數據庫中的實體類不一致,因此纔有了值對象的出現。例如:在User類中只須要用戶名和密碼,可是在實際的註冊過程當中,可能還須要再次輸入密碼,來確保用戶輸入的正確性,此時值對象設計的意義就出現了。 

  在該系統架構中,基本業務流程處理以下:

    一、在展現層中,利用Bootstrap框架構建相應的Jsp頁面,實現用戶與系統之間的交互界面。

    二、利用Jsp頁面傳送用戶的操做請求request和接受系統返回的響應response。在系統接收到jsp頁面中傳來的操做請求後,Struts2根據Struts.xml配置文件,將不一樣的請求分派到對應的Action中進行處理,而且根據Action處理後返回的字符串,返回對應的Jsp響應頁面。

    三、在Action中,經過業務邏輯接口調用業務邏輯層的業務功能實現。

    四、在業務邏輯層中,Spring的IOC容器負責向展示層提供實體對象(Model)、值對象(Vo)以及對應的業務邏輯處理實體,同時爲Hibernate提供SessionFactory、可聲明的事務管理。

    五、在數據訪問層,Hibernate利用*.hbm.xml文件實現實體對象與數據庫表之間的映射,利用session和HQL語句實現與數據庫之間的交互。同時經過數據訪問控制接口向業務邏輯層提供數據操做功能,並返回相應的操做結果。

  利用上述的系統架構進行開發,能夠發如今展示層中,實現了視圖(view),控制器(controller),模型(model)的完全分離,同時展示層,業務邏輯層,數據訪問控制層三層之間經過接口進行鏈接,這樣就實現了三層的分離,很大程度上的下降了系統各個功能模塊之間的耦合度。只要能提供接口的實現,各層發生怎麼樣的變化都不會影響到其它層的功能實現。這樣的層次結構設計,提升了系統的可複用性,以及開發的靈活性。而且由於各個模塊之間的耦合度小,有利於開發團隊的成員可以選擇本身擅長的開發方向,進行並行開發,也能夠進行獨立的單元測試,大幅度地提升了開發的效率以及縮短了系統開發的週期。

  • 功能實現順序圖

  順序圖是系統動態方面的建模,主要是爲了分析在業務邏輯功能實現過程當中,對象建立,改變,銷燬的時間,以及它們之間相互調用的關係。更重要的是經過順序圖,能夠明確各個類在實現業務邏輯功能過程當中的職責,在接下來的詳細設計中也能夠經過順序圖,對各層中的接口進行定義。

  爲了達到上述的要求,順序圖的繪製過程也有須要注意的事項:

    一、畫圖的方向須要從左到右,從上往下。

    二、在繪製的過程當中主要考慮展示功能實現正常的狀況。

  登陸

  

  註冊

  

  添加購物車

  

  查看購物車

  

  購買

  

  查看訂單

  

  檢索商品

  

  商品信息管理

  

  用戶管理

  

  • 數據字典

  購物車表(id(自增),用戶名,商品編碼,購買數量),保存會員添加到購物車中的商品信息。會員生成訂單時,對應用戶名的購物車表所有刪除。

  

  訂單表(id(自增),用戶名,收貨地址,聯繫電話,支付狀態),保存用戶的訂單記錄信息。

  

  訂單_商品表(訂單表id,商品編碼,購買數量,商品價格),保存訂單與訂單中商品之間的聯繫。

  

  用戶表(id(自增),用戶名,密碼),保存用戶的登陸信息。

  

 

  商品表(商品編碼,商品名稱,商品類型,商品圖片,商品價格,商品概述,商品詳細介紹),保存商品的描述信息。

  

相關文章
相關標籤/搜索