一、需求分析
本課題主要是實現一個抽獎系統的設計與開發。本抽獎系統是由若干可以發出抽獎請求和參與抽獎的用戶與進行抽獎審核和用戶與抽獎系統管理的系統管理員組成,用戶可以在指定日期內參與抽獎,也可以發布自己的抽獎,經由系統管理員審核后抽獎發布。
基於以上的要求我們決定將系統用戶設定為兩類,一類是普通用戶,另一類是系統管理員。
系統管理員需求分析
普通用戶提交抽獎信息后,系統管理員可以查看系統內所有的抽獎申請;
用戶提交抽獎信息后,由系統管理員進行審核,目的是過濾掉不合法的抽獎信息的發布。系統管理員審核通過后可以發布抽獎,普通用戶可以進行抽獎。
系統管理員可以查看所有的已發布抽獎的信息,查看各種獎品的數量以及中獎的概率。
系統管理員一旦發現發布抽獎的用戶有異常行為,可以將該用戶發布的抽獎進行刪除。
系統管理員發現用戶有異常行為,可以對用戶的抽獎權限進行設置,包括在指定的時間內限制抽獎,以及終身限制抽獎
對於審核未通過的抽獎,系統管理員將會給該用戶發送消息來提醒該用戶,以及發送具體的審核不通過的原因
系統管理員可以利用自己的郵箱和密碼進入系統。
普通用戶需求分析
用戶可以查看自己參加過的抽獎,發布的抽獎,以及中獎的信息,包括修改密碼等操作。
用戶可以發起一個抽獎,該抽獎必須是經系統管理員審核后才能開始抽獎。
用戶可以參加其他人發布的抽獎,每次抽獎需要消耗一次抽獎機會。
用戶可以去查看其他用戶發布的抽獎
用戶可以接受中獎或沒有中獎信息,以及接收系統管理員發來的審核不通過的信息。
用戶可以查看獎品已經發布出去多少,以及還剩多少。
普通用戶可自由注冊該系統,然后用郵箱和密碼登錄入系統
二、系統用例圖
准確提取用例的方法
第一步,從需求中尋找業務領域相關的動名詞和動名詞短語,比如做什么事、什么事情必須被完成,或者執行某任務等;
第二步,驗證這些業務領域相關的動名詞和動名詞短語到底是不是用例。驗證業務領域相關的動名詞或動名詞短語是不是用例的標准是滿足四個必要條件:
• 必要條件一:它是不是一個業務過程?
• 必要條件二:它是不是由某個參與者觸發開始?
• 必要條件三:它是不是顯式地或隱式地終止於某個參與者?
• 必要條件四:它是不是為某個參與者完成了有用的業務工作?
如果以上四個必要條件都滿足的話,那么該業務領域相關的動名詞或動名詞短語就是一個用例。
第三步:在需求中識別出參與者、系統或子系統。
• 參與者會觸發某個用例開始,用例也會顯式地或隱式地終止於某個參與者;
• 用例會屬於系統或子系統。
系統的參與者
基於需求分析很容易得出該系統的參與者有兩種:系統管理員和普通用戶
用例分析
系統管理員
1.查看抽獎申請;
2.審核抽獎
3.查看抽獎信息
4.刪除抽獎
5.設置用戶的抽獎權限
6.消息接收
7.登錄
8.發布抽獎
9.發布消息
普通用戶
1.查看自己的主頁
2.發布抽獎
3.瀏覽其他抽獎
4.查看其他人的主頁
5.接受消息
6.查看獎品發布情況
7.登錄
8.參與抽獎
9.刪除抽獎
10.發布信息
系統用例圖

項目的業務類圖
業務領域建模的基本步驟
• 第一步,收集應用業務領域的信息。聚焦在功能需求層面,也考慮其他類型的需求和資料;
• 第二步,頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關系;
• 第三步,給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關系、聚合關系和關聯關系。
• 第四步,將結果用 UML 類圖畫出來。
頭腦風暴的具體做法
團隊成員聚在一起執行頭腦風暴從收集的應用業務領域的信息中按規則識別業務領域相關的概念,並分別列出。需要識別的規則如下:
• 名詞和名詞短語(nouns / noun phrases);
• “Y 的 X”(X of Y)表達方法,比如汽車的顏色;
• 及物動詞(transitive verbs);
• 形容詞(adjectives);
• 數量詞(numeric);
• 所有關系的表達方法(possession expressions),比如具有、擁有等;
• 構成關系的表達方法(constituents / “part of" expressions);
• 包含關系的表達方法(containment / containing expressions);
系統類圖
基於以上的方法可以得到以下類圖

三、數據建模
數據模型
通過對現實世界的事與物主要特征的分析、抽象,為信息系統的實施提供數據存取的數據結構以及相應的約束。 數據模型的要素由操作、數據結構以及約束。通常情況下我們在數據模型設計的時候考慮最多的是數據結構而忽視了其他兩個要素。
根據數據模型的應用層次可以分為概念數據模型模型(概念模型)、邏輯數據模型(數據模型)、以及物理數據模型(物理模型)。
概念模型
從業務的角度來考慮問題,主要用來描述事與物的概念化結構,其用途是統一業務概念,作為業務人員和技術人員之間溝通的橋梁。其描述方法有ER圖、Merise圖、Barker圖等。在建立概念模型的過程中主要考慮的是現實世界中的事與物以及他們之間的關系而不用關注事與物的具體屬性。
邏輯數據模型
從數據庫的角度來考慮問題,在概念模型的基礎上對事與物屬性的細化以及對象整合。其描述方法有ER圖。在這個層面數據模型可以分為層次、網狀、關系模型。
物理模型
面向具體的物理計算環境。
本系統中我們采用E-R圖來描述數據模型
系統實體聯系圖

概念原型及工作過程
概念原型
概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論。
概念原型是一種虛擬的、理想化的軟件產品形式。
工作過程
用戶成功登錄系統后,可以進行查看自己的信息,以及發布自己的抽獎,對於之前的抽獎在開獎后系統會推送是否中獎等信息。用戶也可以瀏覽現有的抽獎,以及進行抽獎等操作。
管理員登錄系統后,可以查看當前有多少已經提交的抽獎信息,經過審核后可以對該抽獎進行發布,如果沒有通過審核,可以通知用戶具體哪里違反規定。同時可以檢測用戶的狀態,設置用戶的抽獎權限,以及抽獎次數等操作。
