天天看點

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

1.項目設計原則簡介

某市食品批發系統概要設計平台融合了主流電商交易平台的特點,同時網上交易系統的的獨特性,友善日常食材的交易,提高了其效率。 在整個系統設計的過程中遵循以下的設計原則:

1.1實用性

實用性是系統的主要設計原則,系統設計必須最大可能地滿足使用者的需求,做到操作友善、界面友好、可即時更新,能适應不同層次使用者的需求。

1.2先進性

資訊技術發展迅速,系統設計盡可能采用先進的技術标準和技術方

法。

1.3以使用者為中心的處理

個性化服務充分展現了這一點,根據使用者目前展業重點,配置頁面功能布局及展現内容,貼合使用者操作。

1.4使用便捷

系統要有設計良好的人機互動界面,即使系統的操作界面簡單易用,又能具有較強的适用性,滿足不同計算機使用水準的使用者使用。

1.5靈活、易維護

本系統采用開放的體系架構,基于開放源代碼的技術架構和資料庫系統,使用高效率的開源和免費開發工具,具備完整的文檔說明。在維護方面,主要考慮兩個層面,一是對于開發人員來講,系統編碼容易調整,可适應需求的變化和調整;二是對于系統管理維護人員來說,能夠對系統進行便捷的維護和管理。

1.6 安全可靠

選擇安全可靠的軟硬體運作平台,并在系統設計和實作的時候關注系統的安全控制和執行效率,提供相應的安全防護功能,保證系統具有較高的安全性和可靠性。安全性方面,要考慮系統的安全、資料管理的安全、網絡安全。保證使用者權限、資料安全和系統的穩定性。

1.7單一職責原則

我們系統在面向對象設計部分采取單一職責原則,其核心思想為:一個類,最好隻做一件事,隻有一個引起它的變化。單一職責原則可以看做是低耦合、高内聚在面向對象原則上的引申,将職責定義為引起變化的原因,以提高内聚性來減少引起變化的原因。進而最終提高我們系統的可修改性和可維護性。

本概要設計涵蓋了體系結構設計、子產品設計、資料庫設計等。

2.體系結構設計

食品批發系統本着軟體開發的設計原則,采用浏覽器/伺服器(B/S)的體系結構。為了滿足系統響應快速、便于操作、易于維護的要求,在軟體架構上,采用五層體系結構:表現層、控制層、業務邏輯層、資料持久層和域模型層;在設計實作上,我們采用 MVC 的設計模式:Model 模型層、View 視圖層、Controller控制層;在體系架構上,SPM 網絡課堂系統選擇用 SSH 架構。

SSH是指Struts+Spring+Hibernate的一個內建架構,是目前較流行的一種Web應用程式開源架構。SPM 網絡教學平台內建的 SSH 架構的系統從分為五層:表現層、控制層、業務邏輯層、資料持久層和域模型層,以幫助開發人員在短期内搭建結構清晰、可複用性好、維護友善的 Web 應用程式。其中使用 Struts 作為系統的整體基礎架構,負責 MVC 的分離,在 Struts 架構的模型部分,控制業務跳轉,利用 Hibernate 架構對持久層提供支援,Spring 做管理,管理 Struts 和Hibernate。

具體做法是:用面向對象的分析方法根據需求提出一些模型,将這些模型實作為基本的 Java 對象,然後編寫基本的 DAO(Data Access Objects)接口,并給出Hibernate 的 DAO 實作,采用 Hibernate 架構實作的 DAO 類來實作 Java 類與資料庫之間的轉換和通路,最後由 Spring 做管理,管理 Struts 和 Hibernate。

網絡結構圖如圖3-1所示,使用者(使用者和資訊管理者)可以通過網絡登入到網站,進行相應的操作,應用伺服器接收到相應操作反映之後對資料庫進行相應操作,并傳回進行展示。

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖2-1 系統分層結構圖

系統技術架構統如圖2-2所示。

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖2-2 系統分層結構圖

2.1表現層

結合使用者身份判定,用于展示系統的業務資訊以及接受使用者輸入資訊。将來自使用者的資訊發送到對應的業務層進行處理,并接受背景處理的結果,并結合使用者身份将其傳回到前端進行展示,實作系統與使用者的動态互動。

表現層功能包括:

  • 根據使用者身份資訊進行識别登入,顯示不同界面。
  • 根據使用者身份資訊進行識别實用系統,進行不同的資料和邏輯互動,滿足使用者需求 。
  • 采用 Struts 标簽庫以及 JSTL 标簽庫開發 JSP 頁面。
  • 通過頁面控件,完成統一風格的頁面部署,形成較好的頁面風格。
  • 采用多種展現形式,html 頁面,excel 等,圖檔,PDF,視訊播放插件等等。
  • 對前端送出資料進行合規性校驗,如登入時賬号密碼長度,類型,格式等等。
  • 将頁面請求發送到驗證層,并接受驗證層傳回,将結果在前端展示。
  • 提供過濾器,進行請求預處理。
  • 提供檔案上傳功能

表現層主要由下面元件構成:

2.1.1 分發器與攔截器元件:

該元件統一處理分發來自頁面的請求,通常将所有的請求分發情況都配置到 Struts 的配置檔案中。分發器與攔截器包結構見表 2-1。

表 2-1 視圖層包結構表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.2.2 網頁視圖元件:

該元件根據業務邏輯層的處理資料進行頁面的展示。網頁視圖部分樣例表

表 2-2 網頁視圖部分樣例表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.2 控制層

根據不同的請求觸發點,接收從表現層傳輸的使用者請求資訊,并将封裝好的實體對象發送到對應的業務處理單元,同時接收業務邏輯層處理結果,指定相應的表現層 jsp 頁面展現需求資料,實作頁面跳轉與資訊現實。

控制層功能包括:

  • 接收并處理從表現層傳入的各種輸入以及輸出各種異常提示資訊或

    處理結果資訊。

  • 對于輸入的資料進行資料校驗,過濾非法資料。
  • 向業務控制層發送處理請求。
  • 接收業務邏輯層請求處理結果。
  • 傳回狀态符,實作頁面跳轉。

    控制層主要用下面元件構成:

2.2.1.控制器元件:

執行由分發器發過來的請求。該子產品還繼承自 Struts2 的ActionSupport 實作了一些擴充,這個擴充提供了一些公用操作,比如擷取

Request、Session 對象等操作。所有業務子產品的 Action 都可以繼承該類。控制層包部分結構見表 2-3。

表 2-3 控制層包部分結構

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.3 業務邏輯層

業務邏輯層為系統的核心層,提供了大量業務服務元件,負責處理控制層發送過來的業務資料,系統總絕大部分業務處理都在該層實作。該層實作了各種邏輯判斷,即業務邏輯的封裝,實作各種需求功能,并将處理後的資料傳輸給控制層,再由控制層進行簡單處理。如果需要進行資料庫操作,則調用資料持久層進行資料庫相關操作。

業務邏輯層功能包含:

  • 實作各種業務處理邏輯或處理算法,比如業務資訊查詢、物流資訊查詢等等。
  • 向控制層傳回處理資料資訊。
  • 向持久層發送資料操作的請求,進行對資料資訊的增删改查操作。
  • 作為控制層的服務層,提供接口供周邊系統調用。

業務邏輯層主要包含下面的元件:

1.業務邏輯處理:負責處理各類業務邏輯的 service 組成,有關頁面的跳轉可以從 struts 的配置檔案中看到,由于系統業務邏輯層的實作類較多,此處列舉一些核心的實作類,如表 2-4 所示。

表 2-4 業務邏輯層包部分結構

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計
軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.4 資料持久層

在該批發交易平台系統中,資料持久層負責資料的持久操作,例如和資料庫互動與資料庫進行連接配接互動。該層抽象和封裝了所有對持久化存儲媒體的通路。資料持久層可以通路任何的資料,除了資料庫,還包括緩存存資料等。在該項目架構的搭建中,是通過封裝 Hibernate 來通路資料庫。

資料持久層包含功能:

  • 對資料庫中的使用者資訊資料進行增、删、改、查操作。
  • 對資料庫中的交易資訊、物流資訊等資訊資料自動進行增、删、改、查操作。
  • 實作事務處理,保證資料讀寫正常。
  • 實作意外錯誤操作的資料恢複。

資料持久層包結構如表 2-5 所示。

表 2-5 資料持久層部分結構表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計
軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計
軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.5 域模型層

在 J2EE 應用中,利用 Hibernate 在域模型基礎之上來實作對資料的增、删、改、查。

域模型層包含功能:

為資料庫中的表與資料實作一種資料載體,是資料庫中表中資料到 Java 對象的一種映射。域模型層見表 3-6。

表 3-6 域模型層清單

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

2.6 接口設計

内部接口

Spring 接管 Struts2 配置

  1. 在 struts.xml,通過配置 struts.objectFactory 屬性,将 struts2 交給 Spring管理,也就是由 Spring 容器來管理 Bean,包括 struts2 的 Action。具體見圖2-3。
    軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

    圖 2-3 struts.xml

    2.在 web.xml,添加配置 applicationContent.xml,需要添加一個标簽指明添加 applicationContent.xml 檔案,具體見圖3-4。(圖中顯示的是由模式比對的方式查找符合要求的檔案)

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 2-4 web.xml

3.Spring 接管 Hibernate 配置

向 applicationContent.xml 配置檔案添加名為 sessionFactory 的 bean,如圖 3-5,2-6的資訊。

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 2-5 配置Hibernate的sessionFactory

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 2-6 配置Hibernate 的其他資訊

3.功能子產品設計

3.1 功能子產品設計總述

本系統為軟體項目管理交易平台,主要包括的子產品為兩部分:FInS用戶端子系統功能子產品圖、SPM 管理端子系統功能子產品圖,如圖 4-1 所示。其中,圖 4-2 是 FInS 用戶端子系統功能子產品圖,圖 4-3 是 FInS管理端子系統功能子產品圖

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 4-1 FInS主要子產品圖

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 4-2 FInS 用戶端子系統功能子產品圖

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 4-3 FInS管理端子系統功能子產品圖

3.2 用戶端子系統子產品

3.2.1 子產品 SCM1:靜态頁面

編号:SCM1

子產品名稱:靜态頁面

功能簡介:本子產品為系統的靜态頁面子產品。

輸入:滑鼠點選事件

輸出:調用的頁面

3.2.2 子產品 SCM2:系統登入

編号:SCM2

子產品名稱:系統登入

功能簡介:本子產品為系統登入子產品,即使用者登入系統的入口。在此子產品中,使用者輸入自己的使用者名和密碼,在此使用者名為店名或者編号,系統在背景資料庫進行查詢操作後,傳回布爾值,表示該輸入是否正确,輸入正确則進入系統,錯誤則對使用者進行相應提示。

輸入:使用者名,密碼

輸出:使用者是否登入成功

3.2.3 子產品 SCM3:注冊子產品

編号:SCM3

子產品名稱:系統注冊

功能簡介:本子產品為系統注冊子產品。使用者首次進入系統時。可通過本子產品進行注冊。在此子產品中,系統顯示注冊界面,使用者輸入相關必要的身份資訊,單擊确定。若注冊成功,系統将以學生學号作為賬号,使用者設定密碼作為密碼存入背景資料庫。注冊完成後,使用者可使用注冊成功的賬号和密碼登入系統。

輸入:使用者名,密碼

輸出:使用者是否注冊成功

備注:對于未登入系統的遊客使用者,系統将自動限制一部分功能的顯示

3.2.4 子產品 SCM4:交易子產品

編号:SCM4

子產品名稱:交易

功能簡介:本子產品為交易子產品。注冊的使用者進入系統後。可通過本子產品進行交易。在此子產品中,系統顯示交易的物品、規格和數目,選擇後。系統會進行确認是否本人操作,确認後,将顯示價格與輸入支付手段的界面供客戶選擇,用選擇完成後,将輸入交易密碼。輸入交易密碼後,在賬戶餘額不足時,再次彈出支付手段框供使用者選擇,當密碼錯誤時,提示密碼錯誤,并顯示密碼框供輸入。其他失敗情況下,系統會復原至交易之前的情況,并顯示交易失敗。若無以上異常,系統将顯示交易成功。

輸入:滑鼠點選事件、交易的物品、交易物品的規格、交易物品數目、支付手段、交易密碼

輸出:使用者是否交易成功

備注:對于未登入系統的遊客使用者,該子產品不可使用

3.2.5 子產品 SCM5:物流查詢子產品

編号:SCM5

子產品名稱:物流查詢

功能簡介:本子產品為物流查詢子產品。有訂單的使用者進入系統後。可通過本子產品進行交易。在此子產品中,系統顯示提示使用者輸入訂單号,輸入後,系統将顯示訂單資訊、源位址、目的位址、目前所在的中途點以及目标的到達時間資訊。

輸入:滑鼠點選事件、訂單号

輸出:訂單資訊、源位址、目的位址、目前所在的中途點、預定到達時間

4.2.6 子產品SCM6:網上審批子產品

編号:SCM6

子產品名稱:網上審批

功能簡介:本子產品為物流查詢子產品。使用者進入系統後。可通過本子產品進行網上審批申請。

輸入:滑鼠點選事件

輸出:跳轉至當地工商局的審批申請頁面

3.3 管理端子系統子產品

3.3.1 子產品DAM1:使用者管理

編号:DAM1

子產品名稱:使用者管理

功能簡介:管理者進入“使用者管理”子產品

管理者選擇檢視系統中已經存在的使用者資訊。系統顯示全部使用者資訊,并提供删除,修改,查詢操作。使用者選擇相應的使用者進行删除,修改,并确認操作。系統更新使用者清單。使用者輸入部分關鍵字,選擇查詢操作。系統顯示所有符合的使用者,并提供删除,修改操作。使用者選擇處理使用者注冊申請确認的功能。系統顯示所有需要進行确認的使用者的注冊申請,并提供确認和删除操作。使用者選擇确認操作。系統将該使用者的相關資訊根據是食品作坊/食品供銷商的選擇分别加入到食品作坊/食品供銷商清單中。使用者選擇删除操作。系統自動向該使用者發送請求失敗的郵件。

輸入:滑鼠點選事件

輸出:無

3.3.2 子產品DAM2:網上審批

編号:DAM2

子產品名稱:網上審批

功能簡介:管理者設定網上審批快捷通道

管理者在設定使用者頁面上設定網上審批快捷通道,讓使用者可以直接通過該路徑去到工商局進行審批

輸入:滑鼠點選事件

輸出:無

4.資料庫設計

4.1資料庫種類及特點

本項目采用了MySQL 8.0.17的資料庫。MySQL是一個關系型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬于 Oracle 公司,關聯資料庫将資料儲存在不同的表中,而不是将所有資料放在一個大倉庫内,這樣就增加了速度并提高了靈活性。MySQL具有以下幾個特性:

(1) MySQL為多種程式設計語言提供了 API。這些程式設計語言包括 C、C++、Python、

Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。

(2) 優化的 SQL查詢算法,有效地提高查詢速度。

(3) 提供多語言支援,常見的編碼如中文的 GB 2312、BIG5,日文的 Shift_JIS

等都可以用作資料表名和資料列名。

(4) 提供 TCP/IP、ODBC 和 JDBC等多種資料庫連接配接途徑。

(5) 提供用于管理、檢查、優化資料庫操作的管理工具。

(6) 支援大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。

(7) MySQL 使用标準的 SQL資料語言形式。

4.2資料庫邏輯結構

經過充分的調研和分析,我們将“軟體項目管理課程平台”的資料中設計了5個實體,其中包括管理者表、供銷商資訊表、食品商資訊表、物流資訊表、食材資訊表。針對每個實體,又有其對應的屬性。他們之間的關系主要包括以下幾項:

  • 管理者表、供銷商資訊表、食品商資訊表、物流資訊表是獨立存在的,管理者負責管理供銷商資訊和食品商資訊。是以管理者與供銷商和食品商是一對多關系。
  • 供銷商負責食材加工和銷售,任何一類食材可能被多個供銷商供應,任一供銷商也可以銷售多種食材,是以供銷商和食材是多對多關系。
  • 食品商隻負責購入食材,但是食品商既可以買任意多種食材,每種食材可用于多個食品商,是以食品商和食材是多對多關系。
  • 食品商隻負責購入食材,但是食品商從多個供銷商處購買,每個供銷商可以向多個食品商銷售,是以食品商和食材是多對多關系。
  • 一份物流訂單可唯一确定供銷商和食品商,但是反過來不行,是以物流與供銷商、食品商均為一對多關系。

    綜上分析,軟體項目管理批發平台的實體關系圖(概念資料模型)如下圖所示。

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

圖 4-1 實體關系圖

4.3實體結構設計

根據上面的實體關系,設計資料庫表即根據實體資料模型圖5-1可知,系統一共應有5張表。

4.3.1 Supplier表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

4.3.2 Owner表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

4.3.3 Material表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

4.3.4 Logistic表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

4.3.5 Trade表

軟體工程作業2 - 某市食材批發系統概要設計1.項目設計原則簡介2.體系結構設計3.功能子產品設計4.資料庫設計

繼續閱讀