2023年秋季 《UML大戰需求分析》 閱讀筆記5

2022-06-03 22:45:11 字數 4257 閱讀 3548

流程分析三劍客之總結

順序圖,活**相類似表示活動,狀態機圖表示狀態。分析特點:

順序圖:

強調角色之間的互動,資訊明確;

從上到下,從左到右,按時間順序;

不適合表達複雜特殊情況(迴圈分支,條件分支,可選分支)//因為需要畫框框,看起來很亂,不清晰

活**:

強調每個角色做了什麼(泳道分開,一目了然,每個泳道就是每個角色的活動),還有事情的先後關係;

適合表達特殊流程(分支等);

狀態機圖:

事情圍繞某東西開展(例子:缺陷,假條等);

該東西有不同狀態(例子:已同意,未同意等)

狀態圖是描述某一物件的狀態轉化的,它主要表現的是該物件的狀態。從狀態圖中可以看出,該物件在接受了外界的某種刺激之後,會做出什麼樣的反應。描述的是乙個物件的事情。可以說是對類圖的一種補充,幫助開發者完善某一類。

活**是描述系統在執行某一用例時的具體步驟的,它主要表現的是系統的動作。從活**中可以看出,系統是如何一步一步的完成用例規約的,主要用於業務建模階段。活**描述的是整個系統的事情。可以說活**是對用例圖的一種細化,幫助開發者理解業務領域。

比如說:

學校用的學生選課系統。

在系統中,學生是乙個物件(uml中的物件,不是程式語言中的物件),那麼學生「未登入」「已登入」「未完成選課」「已完成選課」「已選xx課」「未選xx課」等都是學生的狀態。描述這些狀態之間是如何轉化的,就要用狀態圖。

而學生選課的這個動作涉及到:學生、課程、教師、學生課表等多個物件。同時這個動作也是學生選課系統的乙個用例,所以要描述它就要用到活**。

活**(activity diagram,動態圖)是闡明了業務用例實現的工作流程。業務工作流程說明了業務為向所服務的業務主角提供其所需的價值而必須完成的工作。業務用例由一系列活動組成,它們共同為業務主角生成某些工件。工作流程通常包括乙個基本工作流程和乙個或多個備選工作流程。工作流程的結構使用活**來進行說明。

乙個活**可能包括以下元素:

活動狀態表示在工作流程中執行某個活動或步驟。

轉移表示各種活動狀態的先後順序。這種轉移可稱為完成轉移。它不同於一般的轉移,因為它不需要明顯的觸發器事件,而是通過完成活動(用活動狀態表示)來觸發。

決策,為其定義了一組警戒條件。這些警戒條件決定在活動完成後將執行一組備選轉移中的哪乙個轉移。您也可以使用判定圖示來表示執行緒重新合併的位置。決策和警戒條件使您能夠顯示業務用例的工作流程中的備選執行緒。

同步示意條用於顯示平行分支流。同步示意條使您能夠顯示業務用例的工作流程中的並行執行緒。

活**警戒條件用於說明一組並行執行緒中的某個執行緒是有條件的。例如,在上面的「個人登記」示例中,進行登記的乘客可能是頻繁乘機旅行的顧客。在此情況下,您需要給他獎勵一些飛行里程數.

關於狀態機的乙個極度確切的描述是它是乙個有向圖形,由一組節點和一組相應的轉移函式組成。狀態機通過響應一系列事件而「執行」。每個事件都在屬於「當前」 節點的轉移函式的控制範圍內,其中函式的範圍是節點的乙個子集。函式返回「下乙個」(也許是同乙個)節點。這些節點中至少有乙個必須是終態。當到達終態, 狀態機停止。

包含一組狀態集(states)、乙個起始狀態(start state)、一組輸入符號集(alphabet)、乙個對映輸入符號和當前狀態到下一狀態的轉換函式(transition function)的計算模型。當輸入符號串,模型隨即進入起始狀態。它要改變到新的狀態,依賴於轉換函式。在有限狀態機中,會有有許多變數,例如,狀態 機有很多與動作(actions)轉換(mealy機)或狀態(摩爾機)關聯的動作,多重起始狀態,基於沒有輸入符號的轉換,或者指定符號和狀態(非定有 限狀態機)的多個轉換,指派給接收狀態(識別者)的乙個或多個狀態,等等。

傳統應用程式的控制流程基本是順序的:遵循事先設定的邏輯,從頭到尾地執行。很少有事件能改變標準執行流程;而且這些事件主要涉及異常情況。「命令列實用程式」是這種傳統應用程式的典型例子。

另一類應用程式由外部發生的事件來驅動——換言之,事件在應用程式之外生成,無法由應用程式或程式設計師來控制。具體需要執行的**取決於接收到的事件,或者它 相對於其他事件的抵達時間。所以,控制流程既不能是順序的,也不能是事先設定好的,因為它要依賴於外部事件。事件驅動的gui應用程式是這種應用程式的典 型例子,它們由命令和選擇(也就是使用者造成的事件)來驅動。

順序圖,活**相類似表示活動,狀態機圖表示狀態。分析特點:

順序圖:

強調角色之間的互動,資訊明確;

從上到下,從左到右,按時間順序;

不適合表達複雜特殊情況(迴圈分支,條件分支,可選分支)//因為需要畫框框,看起來很亂,不清晰

活**:

強調每個角色做了什麼(泳道分開,一目了然,每個泳道就是每個角色的活動),還有事情的先後關係;

適合表達特殊流程(分支等);

狀態機圖:

事情圍繞某東西開展(例子:缺陷,假條等);

該東西有不同狀態(例子:已同意,未同意等)

狀態圖是描述某一物件的狀態轉化的,它主要表現的是該物件的狀態。從狀態圖中可以看出,該物件在接受了外界的某種刺激之後,會做出什麼樣的反應。描述的是乙個物件的事情。可以說是對類圖的一種補充,幫助開發者完善某一類。

活**是描述系統在執行某一用例時的具體步驟的,它主要表現的是系統的動作。從活**中可以看出,系統是如何一步一步的完成用例規約的,主要用於業務建模階段。活**描述的是整個系統的事情。可以說活**是對用例圖的一種細化,幫助開發者理解業務領域。

比如說:

學校用的學生選課系統。

在系統中,學生是乙個物件(uml中的物件,不是程式語言中的物件),那麼學生「未登入」「已登入」「未完成選課」「已完成選課」「已選xx課」「未選xx課」等都是學生的狀態。描述這些狀態之間是如何轉化的,就要用狀態圖。

而學生選課的這個動作涉及到:學生、課程、教師、學生課表等多個物件。同時這個動作也是學生選課系統的乙個用例,所以要描述它就要用到活**。

活**(activity diagram,動態圖)是闡明了業務用例實現的工作流程。業務工作流程說明了業務為向所服務的業務主角提供其所需的價值而必須完成的工作。業務用例由一系列活動組成,它們共同為業務主角生成某些工件。工作流程通常包括乙個基本工作流程和乙個或多個備選工作流程。工作流程的結構使用活**來進行說明。

乙個活**可能包括以下元素:

活動狀態表示在工作流程中執行某個活動或步驟。

轉移表示各種活動狀態的先後順序。這種轉移可稱為完成轉移。它不同於一般的轉移,因為它不需要明顯的觸發器事件,而是通過完成活動(用活動狀態表示)來觸發。

決策,為其定義了一組警戒條件。這些警戒條件決定在活動完成後將執行一組備選轉移中的哪乙個轉移。您也可以使用判定圖示來表示執行緒重新合併的位置。決策和警戒條件使您能夠顯示業務用例的工作流程中的備選執行緒。

同步示意條用於顯示平行分支流。同步示意條使您能夠顯示業務用例的工作流程中的並行執行緒。

活**警戒條件用於說明一組並行執行緒中的某個執行緒是有條件的。例如,在上面的「個人登記」示例中,進行登記的乘客可能是頻繁乘機旅行的顧客。在此情況下,您需要給他獎勵一些飛行里程數.

關於狀態機的乙個極度確切的描述是它是乙個有向圖形,由一組節點和一組相應的轉移函式組成。狀態機通過響應一系列事件而「執行」。每個事件都在屬於「當前」 節點的轉移函式的控制範圍內,其中函式的範圍是節點的乙個子集。函式返回「下乙個」(也許是同乙個)節點。這些節點中至少有乙個必須是終態。當到達終態, 狀態機停止。

包含一組狀態集(states)、乙個起始狀態(start state)、一組輸入符號集(alphabet)、乙個對映輸入符號和當前狀態到下一狀態的轉換函式(transition function)的計算模型。當輸入符號串,模型隨即進入起始狀態。它要改變到新的狀態,依賴於轉換函式。在有限狀態機中,會有有許多變數,例如,狀態 機有很多與動作(actions)轉換(mealy機)或狀態(摩爾機)關聯的動作,多重起始狀態,基於沒有輸入符號的轉換,或者指定符號和狀態(非定有 限狀態機)的多個轉換,指派給接收狀態(識別者)的乙個或多個狀態,等等。

傳統應用程式的控制流程基本是順序的:遵循事先設定的邏輯,從頭到尾地執行。很少有事件能改變標準執行流程;而且這些事件主要涉及異常情況。「命令列實用程式」是這種傳統應用程式的典型例子。

另一類應用程式由外部發生的事件來驅動——換言之,事件在應用程式之外生成,無法由應用程式或程式設計師來控制。具體需要執行的**取決於接收到的事件,或者它 相對於其他事件的抵達時間。所以,控制流程既不能是順序的,也不能是事先設定好的,因為它要依賴於外部事件。事件驅動的gui應用程式是這種應用程式的典 型例子,它們由命令和選擇(也就是使用者造成的事件)來驅動。

2023年秋季 《UML大戰需求分析》 閱讀筆記3

描繪系統的骨架 部署圖 1.認識 24小時便利店管理系統 的網路拓撲結構圖。2.通過該系統來學習部署圖。3.演練部署圖。4.怎樣才能畫好部署圖?在 火球大戰uml需求與分析 中的第八章,在乙個需求調研的故事中,說得是 某個軟體公司為乙個客戶開發乙個系統專案中,由於軟體公司在需求調研中並沒有了解到客戶...

2016 年秋季助教總結

今年 8 月的時候,l 介紹我做助教,後來接手的是北京工業大學耿丹學院計科 4 班,工作是對同學們的作業進行檢查,以及解決同學們在學習中遇到的問題。關於這次助教的事情,有很多的東西想要寫,但是在寫的過程中,卻出現了寫了刪,刪了寫的情況。反覆多次,最終才形成了以下的文字。我對這個大章節的標題命名為 奇...

2023年秋季 軟體需求與分析 基本知識

我們應當怎樣做需求調研 初識 需求調研是需求分析最重要的一環,也最集中地體現了需求分析的特點 既是乙份體力活兒,更是乙份技術活兒。它既要求我們具有一種理解能力 設計能力,更要求我們具有一種與人交往 溝通的能力。開始首先是需求的收集,需求收集可以通過調查表,業界標準,會議討論溝通等多種方式進行。需求收...