一、專案介紹
專案是模仿實現12306的部分功能,主要是售票系統的實現。這個系統的面向兩類人,一是使用者,二是系統管理員,其中系統設計主體部分是車次車票等資訊的儲存方式以及使用者與系統的互動對後臺資料的影響。車次資訊與車票資訊以一種什麼樣的形式相互關聯尤其重要,使用者做出自己的行為後(購買車票,檢視車票訂單資訊,退票,改簽等)怎麼影響著後臺資料是本次部落格討論的重點。
二、系統架構
本系統的設計架構是MVC架構,即Model-View-Controller(模型-檢視-控制器),其中Model代表一個儲存資料的物件及資料模型;View代表模型包含的資料的表達方式,一般表達為視覺化的介面介面;Controller作用於模型和檢視之上,控制資料流向模型物件,並在資料變化時更新檢視。控制器可以使檢視和模型分離開解耦合。
在本專案中,Model儲存一些資料模型,如使用者的資訊,使用者的訂單資訊,系統中的車次資訊,車次的對應車票資訊,系統中的總的訂單資訊等等;控Controller則處理使用者做出行為後後端資料資訊的變更,還有前端資料資訊視覺化的變更;View則是軟解介面的視覺化,主要是面向使用者設計的UI。可以看到這種架構的一個顯著的好處就是前後端分離,資料模型和檢視的關聯是要通過控制器來進行,模型只要關心怎麼讓別人取值,怎麼根據控制器的資訊修改內部狀態,不用關係它的資料怎麼展現出來;檢視也不用受限於資料模型,而且同一個資料模型可以對應多個檢視,比如說使用者的歷史訂單資訊裡會顯示所有的訂單,而當前訂單資訊裡只顯示當前生效的車票資訊的等等。
三、介面API
介面名稱 | 介面功能 | 傳入引數 | 返回資訊 |
使用者註冊 | 為新使用者註冊一個賬號 | 使用者名稱,密碼 | 註冊成功或者失敗的資訊 |
使用者登入 | 使已有賬號的使用者登入系統 | 賬號,密碼,驗證碼 | 登入是否成功 |
使用者個人資訊 | 使用者檢視個人資訊 | 無 | 使用者個人資訊的資料結構指標 |
修改個人資訊 | 修改個人資訊 | 修改欄位, 修改資訊 | 修改是否成功 |
檢視訂單 | 使用者檢視自己的訂票資訊 | 無 | 使用者訂單資訊資料結構指標 |
檢視車次資訊 | 檢視車次資訊 | 出發站,終點站 | 車次資訊資料結構指標 |
檢視車票資訊 | 檢視車票的相關資訊 | 車次資訊資料結構指標 | 車票資訊資料結構指標 |
訂車票 | 使用者購買車票 | 車票資訊資料結構 | 購買是否成功的資訊 |
退票 | 使用者退票 | 訂單資訊資料結構指標 | 是否退票成功 |
改簽 | 使用者改簽 | 訂單資訊資料結構指標 | 是否改簽成功 |
三、軟體系統概念原型的不同檢視
1. 分解檢視
分解是構建軟體架構模型的關鍵步驟,分解檢視也是描述軟體架構模型的關鍵檢視,一般分解檢視呈現為較為明晰的分解結構(breakdown structure)特點。分解檢視用軟體模組勾劃出系統結構,往往會通過不同抽象層級的軟體模組形成層次化的結構。
2. 執行檢視
執行檢視展示了系統執行時的時序結構特點,比如流程圖、時序圖等。執行檢視中的每一個執行實體,一般稱為元件(Component),都是不同於其他元件的執行實體。如果有相同或相似的執行實體那麼就把它們合併成一個。執行實體可以最終分解到軟體的基本元素和軟體的基本結構,因而與軟體程式碼具有比較直接的對映關係。在設計與實現過程中,我們一般將執行檢視轉換為虛擬碼之後,再進一步轉換為實現程式碼。
3. 工作分配檢視
工作分配檢視將系統分解成可獨立完成的工作任務,以便分配給各專案團隊和成員。工作分配檢視有利於跟蹤不同專案團隊和成員的工作任務的進度,也有利於在個專案團隊和成員之間合理地分配和調整專案資源,甚至在專案計劃階段工作分配檢視對於進度規劃、專案評估和經費預算都能起到有益的作用。
四、資料庫設計
使用者id |
名字 |
身份證 |
密碼 |
手機號 |
|
|
|
|
|
車次id |
出發站 |
終點站 |
出發時間 |
到達時間 |
|
|
|
|
|
車票id |
車次id |
價格 |
剩餘數量 |
|
|
|
|
訂單號 |
使用者id |
車票id |
訂票時間 |
|
|
|
|
五、原始碼的目錄檔案結構
|---src |---main |---model 資料庫中的資料模型 |---service 業務邏輯 |---util 主要用於處理對車票的操作 |---view 檢視 |---resources 配置檔案 |---test 測試檔案 |---java |---resources
六、專案概念原型的核心工作機制
使用者可以不登陸進入系統,也可以註冊後登入系統,不登入就不顯示個人資訊。
可以在主頁面根據首末地點查詢車票,或者點選車次彙總資訊檢視車站對用車次。
使用者可以在查詢車票後購買車票,然後可以在個人的訂單資訊中檢視或者退票改簽。
使用者可以新增乘客,可以幫同行的人買車票。