uml 在需求分析階段的應用


         上一篇博客寫了uml在軟件開發過程中的應用,這以篇要詳細介紹一下UML在需求分析過程中的應用。

         以機房收費系統為例進行講解,先介紹一個該系統。

         首先該系統的用戶分為三個等級,一般用戶,操作員,管理員,一般用戶的權限,能夠查看學生余額,充值記錄,上機記錄,學生上機狀態查看等。操作員可以進行學生注冊,充值,退卡,收取金額查詢,學生退卡查詢,學生基本信息的維護,查看操作員的工作記錄。管理員負責對上機的一些基本數據的設定,結賬。添加,刪除用戶,查看日結賬單,周結賬單。首先看一下設備連接圖:

        

讀卡器的工作就是讀取卡的id號,並觸發系統中一次enter 事件。

工作流程就是,

 

 

 

主要的流程就是這五個步驟,其他的在這個過程中,或者以后都可以進行實現。

一.用戶需求:

         了解了工作過程之后,就可以開始獲取用戶需求了,所以開始進行需求分析。

         通過了解,與系統相關的人員主要有以下幾種,

         (1)      學生。提供細心給操作員,進行注冊。拿着卡進行刷卡上下機。

         (2)      一般用戶。能夠查看學生余額,充值記錄,上機記錄,學生上機狀態查看,強制下機。

         (3)      操作員。學生注冊,充值,退卡,收取金額查詢,學生退卡查詢,學生基本信息的維護,查看操作員的工作記錄。

         (4)      管理員。基本數據的設定,結賬。添加,刪除用戶,查看日結賬單,周結賬單的打印。

         (5)      系統開發人員。負責開發機房收費系統的項目組成員。

         (6)      機房主任。查看所有賬務項目。

          備注:在收集用戶的需求時,要考慮到關心軟件系統開發所有人員的需求,不僅要了解最終用戶的需求,還有了解其他使用系統的需求,(如機房主任),還要了解軟件開發人員的需求。

二.需求分析與描述

         首先要對用戶提出的需求進行分析,以此來確定其中要實現的系統功能,然后再同用戶進行更加深入的討論交流,確定哪些需求是功能性,那些是非功能性的,哪些是軟件系統的需求,哪些不是,哪些需求是可以實現的,哪些需求是無法實現或暫時無法實現。

         由於需求過多,所以以其中的一條需求為例

         需求原文:操作員的學生注冊功能。

         操作員需要對學校所有要上機的學生進行注冊,注冊的內容包括姓名,性別,學號,班級,年級,備注,和每個學生卡的卡號。他是機房收費系統中最基本的一項需求,在開發的過程中,要認真的進行考慮。

         將所有的需求分析進行完成以后,得到了用戶需求分析結構,為了更好的表示一般采用表格的形式:(這里不全部例出)

                                                      表(1)

序號

用戶需求

軟件需求

功能需求

可以實現

01

提供自己關於注冊卡的所有信息給操作員,進行注冊

可以

02

查看學生卡內的余額

可以

03

學生卡注冊

可以

04

設定上機需要的基本數據

可以

.

….

……

三.用例分析

         在需求分析完成后,開始進行用例分析,為了能夠正確的找出系統的用例,需要確定系統的邊界,找出系統的執行者。根據表1的需求結果進行用例分析。

1.      系統的邊界

         從需求中可以看出,學生可以將卡放在讀卡器上進行讀取信息,讀卡器將信息發送到系統中,並觸發enter事件。

         這時要考慮機房收費系統是否包括讀卡器。機房收費系統是一個軟件系統,因此不包括讀卡器。

 

2.      系統的執行者

         有了系統的邊界,就可以更容易的找出系統的執行者,從系統的邊界中可以知道讀卡器是系統的執行者。

         執行者主要分析每一個操作是由誰來執行的。由需求描述可以看出,用例的執行者還有,一般用戶,操作員,管理員。所有該系統總共有四個執行者。讀卡器,一般用戶,操作員,管理員。

 

3.      系統的用例

          有了邊界和執行者,就可以分析這些執行者是如何與系統進行交互的,進一步找出系統的用例。通過需求的分析,可以看出每個執行者的目標和希望得到的價值。

         讀卡器     讀取卡的卡號,發送給系統。

        一般用戶。能夠查看學生余額,充值記錄,上機記錄,學生上機狀態查看。

        操作員。學生注冊,充值,退卡,收取金額查詢,學生退卡查詢,學生基本信息的維護,查看操作員的工作記錄。

        管理員。基本數據的設定,結賬。添加,刪除用戶,查看日結賬單,周結賬單的打印。

 

4.      畫出系統用例模型圖


 

            可以看出這個系統有四個執行者,和24個用例。如果這里的每個用例需要進行詳細的解釋,還需要些用例描述,這里不再給出。

四.領域模型分析

           這里所說的領域是用例的業務領域,也就是需要解決問題的領域。對領域知識的理解直接關系到系統開發的成敗。

1.      領域概念

          領域概念就是描述一個現實世界中的某個問題的一些名詞和術語。建立領域模型的第一步是找出描述這些問題的概念和術語。

         對機房收費系統的所有用例和用戶需求分析,找到盡力能找到的所有的明細,動詞,動詞詞組。

                                                        需求過程中的名詞

 學生

讀卡器

一般用戶

操作員

管理員

機房管理人員

學生基本信息

日結賬單

周結賬單

充值記錄

基本數據

                           

                                          需求過程中的動詞或動詞詞組

查看學生余額

基本數據設定

注冊

充值

退卡

收取金額查詢

學生退卡查詢

學生基本信息維護

強制下機

結賬

添加用戶

刪除用戶

打印賬單

 

 

 

 

 

在記錄用戶的需求時,應該盡可能的記錄所有出現過的詞匯,方便以后挑選,避免漏掉重要的詞匯。

2.      概念類

        從上邊列出的名詞開始篩選,找出可能的概念類。

        學生:是一個概念類。

        卡:是一個概念類

        讀卡器:與系統沒有關系,所以不是概念類。

        一般用戶:是概念類,操作時,要知道是誰進行的操作

        操作員:是概念類,操作時,要知道是誰進行的操作

        管理員:是概念類,操作時,要知道是誰進行的操作

        機房管理人員: 不是一個概念類,與系統的開發無關

        學生基本信息:是一個概念類,注冊的時候需要。但是包含在學生類里。

        日結賬單:是一個概念類

        周結賬單:是一個概念類

        基本數據:是一個概念類

        經過上面對所有的名詞進行分析,可以得到所有的概念類,在應用時為了方便,每個概念類都有一個英文名稱。

概念類名稱

英文名稱

概念類名稱

英文名稱

概念類名稱

英文名稱

學生

Student

一般用戶

General user

操作員

Operator

管理員

Admin

日結賬單

Daycheck

周結賬單

Weekcheck

基本數據

BasicData

Card

 

 

 

         找出了所有的概念類以后,然后找到類與類之間的關系,並找到他們呢所具有的方法與屬性,如何找這里不再解釋,最后畫出一張類圖。


 

機房收費系統的領域模型 1

五.工作流程分析

 

         流程圖

          前邊建立的領域模型,描述了系統的各個類之間的靜態結構,下面使用活動圖順序圖來描述系統的動態行為。

         機房收費系統的核心工作就是,注冊卡,充值,負責學生刷卡上下機,然后打印賬單。

 

 

                                                機房收費系統學生卡注冊上機流程圖 1

            管理員登陸系統以后,先要進行基本數據的設定,基本數據設定成功以后,就可以進行注冊,充值,然后就可以刷卡上機,刷卡下機,或者進行一些其他的操作(上邊需求分析提到的用例)。

 

順序圖

         前邊分析了系統的領域模型,和系統流程,下面看一下系統是如何與外界進行交互的。用例描述時是用文字描述的,下面用順序圖來描述一個用例的執行過程。他主要描述系統的外在行為,即系統的輸入域輸出。

系統是軟件系統的抽象,順序圖描述了系統接受一條數據和對這條數據進行的處理過程。首先要從讀卡器哪里獲取數據。然后由系統或者操作員進行操作。

這個順序圖描述的內容與用例的文本是完全一樣的。順序圖更加直觀的描述了用例的執行過程。為進一步設計系統打下基礎。

         需求分析是軟件開發的起始部分,也是軟件中最為關鍵的部分,對於用戶的需求理解,直接決定了系統的正確性。所以在進行需求分析的時候,一定要全面,正確的分析。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM