软件工程综合型实验
實驗名稱:軟件工程綜合實驗
實驗類別:設計型實驗
實驗目的:了解軟件工程開發過程,學會寫可行性分析、需求分析(兩個分析),掌握總體設計和詳細設計(兩個設計)。
高鐵訂票系統的設計與實現
前言
? ?經過30年的改革開放,中國經濟得到快速發展,技術得到長足進步。目前我國高速鐵路的工程的技術不僅達到了世界先進水平,而且形成了具有自主知識產權的高速鐵路成套技術體系。高鐵現在已經滲透到了我們生活旅游的方方面面,給人們的出行帶來了極大的便利。高鐵訂票系統是通過網絡,旅客預訂或者退訂高速鐵路列車車票的系統,避免排長隊購票或退票的麻煩。通過網絡該系統能夠為旅客用戶們提供一個高鐵車票預訂、退訂快捷,便利的渠道,對促進我國高速鐵路運輸業的發展具有重要意義。
一、需求分析
1、功能需求
該高鐵訂票系統應該具備如下功能:?
(1)前臺模塊
用戶登錄注冊模塊:此系統通過注冊會員成為本系統的會員, 來獲得用戶名和密碼, 才能進入本系統。
要求:1)該模塊需要包含訂票須知模塊,閱讀過該模塊內容才能成為會員通過訂票須知, 可以回答用戶一些簡單的疑惑, 如高鐵上不允許帶的違禁物品, 坐高鐵要注意的事項, 多少升高以下的兒童可以免票等相應的情況,用戶可以通過訂票須知知道。 因此, 在訂票之前, 不妨仔細閱讀一下須知, 詳細了解樂坐高鐵的種種事項后, 再開始訂票。
車票車次查詢模塊:分為對車次信息的查詢和客戶對已訂車票信息的查詢。
要求:?
1)對車次的查詢,可以按照發車車次進行查詢;?
2)車次信息包括:火車列次、出發地、目的地、發車日期、開出時刻、票價。?
3)座位類型設定。?
4)車次信息只允許用戶查詢,不能修改。?
訂單管理模塊:在車票車次查詢模塊,根據用戶自己的需求找到滿意的車次,再輸入個人信息后,進入訂單管理模塊,直接通過網上確定已預訂選中的車票,同時由于某些原因, 或者突發情況, 無法趕到預定車票的時間或者想換車次, 客戶通過退回車票, 可以找到預定的車票, 可以通過取消預定來退去已購車票。
要求:?
1)該模塊需要包含車票預訂,車票退訂,車票改簽,訂單記錄模塊。
2)售票記錄應包括:會員名、車號、發車日期、訂購票數、總價。?
意見反饋模塊:
用戶可以通過該模塊發表心中的疑惑, 對售票人員的服務滿意度, 對高鐵上服務人員的看法等問題都可以通過該模塊來留言, 讓管理人員及時了解情況, 以便迅速做出調整, 做到每一個乘客滿意放心。
(2)后臺模塊
管理員登錄模塊:管理員需要輸入密碼正確才能進入本系統。
要求:?該模塊需要包含信息修改與密碼修改模塊。
車票管理模塊:提供車次信息、票價修改、站點修改、增加車次,減少車次、車次的臨時調度和臨時路線更改等操作。?
車次管理模塊:將要統計的車次號輸進到統計界面,根據車次的售票情況作出銷售額、客流情況統計表。
公告發布模塊:通過信息公告, 可以讓用戶知道高鐵是否運行, 有時可能由于天氣原因等情況, 火車站會采取停止高鐵的運行, 這些信息可以通過信息公告來知道,以便乘客能夠及時知曉, 對訂票有很大的幫助。
用戶管理模塊:管理員可以查看所有會員的信息,還可以刪除用戶。
要求:此模塊包含從前臺的意見反饋模塊里提供用戶反饋的內容供管理員閱讀以及回復。
2、性能需求
1) 系統要有能讓人快速適應的人機界面。
2)要有簡易方便的增加、修改、車次車票信息的功能。
3) 要有快速準確的車次、車票信息查詢,并且要支持多條件的查詢。
4) 要有快速定退票功能。
5) 修改數據要方便簡單,數據穩定性要好。
3、數據流圖
基礎數據流圖
功能級數據流圖
第二層數據流圖
二、系統功能模塊的設計
系統模塊結構圖如下:
?用戶注冊或登錄進入高鐵訂票系統主頁面(前臺),能夠實時地了解高速鐵路票務情況的相關信息。通過查詢模塊功能,選擇時間和乘車區間,能夠找出自己想乘坐的車次,然后進入訂票管理模塊進行車票的預訂,如果想要退票或者轉班也可進入訂單管理模塊進行這些操作,同時這些操作都會在訂單記錄模塊有記錄。
同時,管理員用密碼以管理員的身份進入系統管理模塊(后臺),能對系統進行各種查詢及維護等操作,包括車次信息的更新,車票信息的更新以及如果出現突發事件能夠在系統發布公告以提醒來訂票的用戶。
三、軟件測試
這里選擇用戶注冊登錄模塊進行白盒測試。
代碼如下:
void dl(){int i;system("pause");system("cls");printf("\n\n\t\t\t歡迎使用高鐵訂票登錄系統\n\n");for(i=1;i<=3;i++) //三次登錄驗證{printf("\t\t請輸入用戶名:");scanf("%s",on_name);printf("\n\t\t請輸入密碼:");scanf("%s",on_pwd);if(strcmp(reg_name,on_name)==0&&strcmp(reg_pwd,on_pwd)==0){printf("\n\n\t\t登錄成功,歡迎使用高鐵訂票系統\n\n");break;}else{printf("\n\n\t\t登錄失敗,請重新登錄,您還有%d次機會\n\n",3-i);}}?}程序流程圖如下:
白盒測試(假設用戶名為she,密碼為123456):
邏輯覆蓋:
1.語句覆蓋
(1)輸入: 輸入用戶名she,密碼123456
測試路徑:sabcdhi
(2)輸入: 輸入用戶名syy,密碼123456,連續三次
測試路徑:sabcdefbcdefbcgi
2.判定/條件覆蓋
| 輸入內容 | 輸入次數 | 備注 | 測試路徑 |
| 輸入用戶名she 密碼123456 | 1 | 用戶名與密碼都正確 | sabcdhi |
| 輸入用戶名she 密碼1234567 | 3 | 用戶名正確, 密碼不正確 | sabcdefbcdefbcgi |
| 輸入用戶名syy 密碼123456 | 3 | 用戶名不正確,密碼正確 | sabcdefbcdefbcgi |
| 輸入用戶名syy 密碼1234567 | 3 | 用戶名與密碼都不正確 | sabcdefbcdefbcgi |
控制結構測試:
循環測試
| 輸入內容 | 輸入次數(循環次數為其減1) | 備注 | 測試路徑 |
| 輸入用戶名she 密碼123456 | 1 | 用戶名與密碼都正確 | sabcdhi |
| 先輸入用戶名she 密碼1234567,后輸入用戶名she 密碼123456 | 2 | 開始用戶名正確, 密碼不正確; 之后,用戶名與密碼都正確 | sabcdefbcdbcdhi |
| 先輸入兩次輸入用戶名syy 密碼123456,在輸入輸入用戶名she 密碼123456 | 3 | 開始用戶名不正確,密碼正確 之后,用戶名與密碼都正確 | sabcdefbcdefbcdhi |
| 輸入用戶名syy 密碼123456,連續3次 | 4 | 用戶名不正確,密碼正確 | sabcdefbcdefbcdefbcgi |
總結
- 上一篇: 轻量级DITA - 让公司全员贡献结构化
- 下一篇: POI的不同版本的兼容问题