本文主要在學習高階軟體工程課的基礎上,對工程實踐的題目進行分析,將課本上的知識運用到實際的工程專案中。
我的工程實踐題目是「設計乙個類似12306售票系統「,首先我要對我的題目進行需求分析。
需求就是使用者期望的軟體行為的表述,需求分析就是在獲取需求的基礎上進一步對軟體設計的物件或試題的狀態、特徵和行為進行準確描述或建模的工作。
我們的系統主要服務於兩類人群:使用者和管理員。
1、註冊賬戶:使用者第一次進入系統需要提交註冊請求並完善賬戶資訊。
2、登入賬戶:使用者通過核驗賬戶及密碼可以登入系統。
3、查詢車票:使用者通過指定出發地、目的地和時間查詢可購買的車票,並可以通過對出發時間段、有無餘票、指定同城不同火車站等資訊對車票進行篩選。
4、購買車票:通過查詢頁面,使用者可以選擇購買指定車次、指定座位的車票。
5、退改車票:使用者可以對已經購買的車票進行退票、改簽等操作。
6、候補下單:對於當前無票的車次,使用者可以選擇候補下單,當預定的車次有車票時,優先發放給候補人員。
1、增刪車型:管理員可以做到增加、刪除車型的座位定價、列車車廂數、車廂座位數。
2、增刪站點:管理員可以做到增加、刪除站點。
3、增刪車次:管理員可以做到增加、刪除車次的出發時間、到達時間、出發地點、到達地點、途徑站點。
準確提取用例的基本方法:
1、從需求中尋找業務領域相關的動名詞和動名詞短語,比如做什麼事、什麼事情必須被完成,或者執行某任務等;
如果以上四個必要條件都滿足的話,那麼該業務領域相關的動名詞或動名詞短語就是乙個用例。
3、在需求中識別出參與者、系統或子系統。
業務領域建模是開發團隊用於獲取業務領域知識的過程。因為軟體工程師往往需要工作在不同的業務領域或者不同專案中,他們需要業務領域知識來開發軟體系統。軟體工程師往往來自不同的專業背景,這可能會影響他們對業務領域的認知。因此業務領域建模有助於開發團隊獲取業務領域知識形成統一的業務認知。
開發團隊獲取業務領域知識的過程一般包括收集業務領域相關資訊、執行團隊頭腦風暴、對業務領域相關的知識概念進行分類,最後用uml類圖將業務領域知識圖形化展示。
業務領域建模的基本步驟:
1、收集應用業務領域的資訊。聚焦在功能需求層面,也考慮其他型別的需求和資料;
2、頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關係;
3、給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關係、聚合關係和關聯關係。
4、將結果用 uml 類圖畫出來。
通過我們對需求的分析和用例建模,得到了如下的類和屬性:
1、使用者:使用者名稱、密碼、姓名、暱稱、身份證號、手機、許可權資訊、會員資訊
2、車次:車次編號、車次號、列車編號、起點、終點、開車時間、到達時間
3、列車:列車編號、列車型別、車廂數量、列車狀態
4、車廂:車廂編號、列車編號、車廂號、車廂型別、車廂座位數、車廂**係數
5、座位:座位編號、車廂編號、列車編號、座位號、座位使用區間狀態圖
6、站點:站點編號、站點名稱、車次編號、列車到站時間、列車出發時間
7、訂單:訂單編號、訂單時間、訂單聯絡人、訂單座位號、訂單狀態
通過對上述的分析,我們提取出各個類的資料之間的關係,得到如下的資料模型:
1、使用者表:
變數名稱
變數型別
備註id
varchar
賬戶名password
varchar
密碼name
varchar
姓名nickname
varchar
暱稱credential_type
varchar
證件型別
credential_number
varchar
證件號telephone
varchar
手機號member
varchar
會員資訊
2、車次表:
變數名稱
變數型別
備註train_id
int車次編號
train_number
varchar
車次號train_identification
varchar
列車編號
begin_place
varchar
起點end_place
varchar
終點begin_time
datetime
開車時間
end_time
datetime
到達時間
3、列車表:
變數名稱
變數型別
備註train_identification
varchar
列車編號
train_type
varchar
列車型別
carriage_sum
varchar
車廂數量
carriage_type
varchar
列車狀態
4、車廂表:
變數名稱
變數型別
備註carriage_id
varchar
車廂編號
train_identification
varchar
列車編號
carriage_number
int車廂號
carriage_type
varchar
車廂型別
seat_number
int車廂座位數
seat_price
double
車廂座位**係數
5、座位表:
變數名稱
變數型別
備註seat_id
varchar
座位編號
carriage_id
varchar
車廂編號
train_identification
varchar
列車編號
seat_number
varchar
座位號seat_use
varchar
座位使用情況
6、站點表:
變數名稱
變數型別
備註station_id
varchar
站點編號
station_name
varchar
站點名稱
train_id
varchar
車次編號
begin_time
datetime
列車到站時間
end_time
datetime
列車出發時間
7、訂單表:
變數名稱
變數型別
備註order_id
varchar
訂單編號
order_time
varchar
訂單時間
order_person
varchar
訂單聯絡人
seat_id
varchar
訂單座位號
order_status
varchar
訂單狀態
概念是人對能代表某種事物或者發展過程的特點及其意義所形成的思維結論,概念原型是一種虛擬化的、理想化的軟體產品形式。
所以,概念原型=用例+資料模型。
使用者可以通過系統註冊自己的賬戶,然後登入自己的賬戶,完善個人資訊。在系統首頁選擇出發城市、到達城市和日期,然後在篩選出的車次中選擇乙個具體的車次,選擇座位,然後系統生成訂單,使用者支付訂單。使用者可以通過訂單頁面選擇改簽或退票。
管理員可以登入系統,增加或刪除某天的車次、某種車型,還可以增加和刪除某個具體的站點及站點資訊。
需求分析和概念原型 文字情感分析系統
本文基於本人的工程實踐專案 文字情感分析,對其進行相應的用例建模和業務領域建模,以及資料建模,最終形成概念原型。該項目的重點是對情感相關資訊進行分類,旨在將文字情感分為積極 中立和消極三種類別或者更細緻的情感類。需求就是對使用者期望的軟體行為的表述 獲取需求就是需求分析師通過關注使用者的期望和需要,...
需求分析和概念原型 學生選課系統
前言 由於我的工程實踐專案是關於安全工具sqlmap的復現,難以完成需求分析,故藉學生選課系統進行本次學習。一 需求分析 學生需求 查詢課程資訊,選擇課程,退選課程,檢視已選上的課程資訊 管理員需求 維護課程資訊,可以查詢 新增 修改 刪除課程資訊 二 用例建模 用例 use case 的核心概念中...
需求分析與概念原型(以電影推薦系統為例)
需求是對使用者期望的軟體行為的表述 獲取需求就是需求分析師通過關注使用者的期望和需要,從而獲得使用者期望的軟體行為,然後對其進行表述的工作 需求分析是在獲取需求的基礎上進一步對軟體涉及的物件或實體的狀態 特徵和行為進行準確描述或建模的工作。用例的核心概念中首先它是乙個業務過程,經過邏輯整理抽象出來的...