結構化分析建模


結構化分析模型
1.基本術語
2.模型表達工具
2.1DFD圖
2.2數據字典
2.3加工小說明
1.基本術語

2.模型表達工具
需求分析的首要任務是建立系統功能模型

2.1DFD圖
1.數據流圖(Data Flow Diagram):簡稱DFD,它從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟件模型的一種圖示方法。
2.注意:
數據流圖不是傳統的流程圖或框圖,數據流也不是控制流。數據流圖是從數據的角度來描述一個系統,而框圖是從對數據進行加工的工作人員的角度來描述系統。
3.數據流:
數據流是一組數據。在數據流圖中數據流用帶箭頭的線表示,在其線旁標注數據流名。在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現某個數據流的條件。
在數據流圖中加工用圓圈表示,在圓圈內寫上加工名。一個處理框可以代表一系列程序、單個程序或者程序的一個模塊。
4.組成元素:
數據流。數據流是數據在系統內傳播的路徑,因此由一組成分固定的數據組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等數據項組成。由於數據流是流動中的數據,所以必須有流向,除了與數據存儲之間的數據流不用命名外,數據流應該用名詞或名詞短語命名。
數據源或宿(“宿”表示數據的終點)。代表系統之外的實體,可以是人、物或其他軟件系統。
對數據的加工(處理)。加工是對數據進行處理的單元,它接收一定的數據輸入,對其進行處理,並產生輸出。
數據存儲。表示信息的靜態存儲,可以代表文件、文件的一部分、數據庫的元素等。
5.原則:
1).一個加工的輸出數據流不應與輸入數據流同名,即使它們的組成成分相同。
2).保持數據守恆。也就是說,一個加工所有輸出數據流中的數據必須能從該加工的輸入數據流中直接獲得,或者說是通過該加工能產生的數據。
3).每個加工必須既有輸入數據流,又有輸出數據流。
4).所有的數據流必須以一個外部實體開始,並以一個外部實體結束。
5).外部實體之間不應該存在數據流
6.畫法:

2-軟件工程-數據流圖+ER圖繪制

(一)確定系統的輸入輸出
由於系統究竟包括哪些功能可能一時難於弄清楚,可使范圍盡量大一些,把可能有的內容全部都包括進去。此時,應該向用戶了解“系統從外界接受什么數據”、“系統向外界送出什么數據”等信息,然后,根據用戶的答復畫出數據流圖的外圍。
(二)由外向里畫系統的頂層數據流圖
首先,將系統的輸入數據和輸出數據用一連串的加工連接起來。在數據流的值發生變化的地方就是一個加工。接着,給各個加工命名。然后,給加工之間的數據命名。最后,給文件命名。
(三)自頂向下逐層分解,繪出分層數據流圖
對於大型的系統,為了控制復雜性,便於理解,需要采用自頂向下逐層分解的方法進行,即用分層的方法將一個數據流圖分解成幾個數據流圖來分別表示
7.舉例:

(1)首先畫系統的輸入輸出,即先畫頂層數據流圖。頂層流圖只包含一個加工,用以表示被開發的系統,然后考慮該系統有哪些輸入數據、輸出數據流。頂層圖的作用在於表明被開發系統的范圍以及它和周圍環境的數據交換關系。下圖為飛機機票預訂系統的頂層圖。
(2)畫系統內部,即畫下層數據流圖。不再分解的加工稱為基本加工。一般將層號從0開始編號,采用自頂向下,由外向內的原則。畫0層數據流圖時,分解頂層流圖的系統為若干子系統,決定每個子系統間的數據接口和活動關系。例如,在上面的機票預訂系統按功能可分成兩部分,一部分為旅行社預訂機票,另一部分為旅客取票,兩部分通過機票文件的數據存儲聯系起來,0層數據流圖如圖3-4。
(3)注意事項。
①命名。不論數據流、數據存儲還是加工,合適的命名使人們易於理解其含義。
②畫數據流而不是控制流。數據流反映系統“做什么”,不反映“如何做”,因此箭頭上的數據流名稱只能是名詞或名詞短語,整個圖中不反映加工的執行順序。
③一般不畫物質流。數據流反映能用計算機處理的數據,並不是實物,因此對目標系統的數據流圖一般不要畫物質流。
④每個加工至少有一個輸入數據流和一個輸出數據流,反映出此加工數據的來源與加工的結果。
⑤編號。如果一張數據流圖中的某個加工分解成另一張數據流圖時,則上層圖為父圖,直接下層圖為子圖。子圖及其所有的加工都應編號。
⑥父圖與子圖的平衡。子圖的輸入輸出數據流同父圖相應加工的輸入輸出數據流必須一致,此即父圖與子圖的平衡。
⑦局部數據存儲。當某層數據流圖中的數據存儲不是父圖中相應加工的外部接口,而只是本圖中某些加工之間的數據接口,則稱這些數據存儲為局部數據存儲。
⑧提高數據流圖的易懂性。注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工,這樣可以減少加工之間輸入、輸出數據流的數目,增加數據流圖的可理解性

2.2數據字典

例如:

2.3加工小說明

一、軟件建模基本內容:

(一)領域建模

(二)需求建模

描述軟件向用戶所能提供的外在特性,包括軟件的目標、功能等特性。

(三)設計模型

軟件的設計方案,包括軟件的實現結構、構件、文件等。

(四)測試模型

測試軟件的模型描述

二、軟件建模方法

大致分為以下三種,但在實際的軟件建模過程中將其三和一進行建模。

(一)面向功能建模——功能分層划分

(二)面向數據建模

(三)面向對象建模

三、UML九大類圖

1、用例圖
    描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統,以及他們使用該系統可以做些什么。一個用例圖包含了多個模型元素,如系統、參與者和用例,並且顯示了這些元素之間的各種關系,如泛化、關聯和依賴。
2、類圖
    類圖是描述系統中的類,以及各個類之間的關系的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。
3、對象圖
    與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關系,而是對象之間的關系。
4、活動圖
    描述用例要求所要進行的活動,以及活動間的約束關系,有利於識別並行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
5、狀態圖
    描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。他們可以告知一個對象可以擁有的狀態,並且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎么隨着時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和復雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
6、序列圖(順序圖)
    序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被發送和接收的。
7、協作圖

    和序列圖相似,顯示對象間的動態合作關系。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關系,則選擇協作圖;這兩種圖合稱為交互圖。

8、構件圖 (組件圖)
    描述代碼構件的物理結構以及各種構建之間的依賴關系。用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。在組件圖中,構件時軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
9、部署圖 (配置圖)
    是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。
 
幾種圖的區別:

一:這九種模型圖各有側重,

1:用例圖側重描述用戶需求,

2:類圖側重描述系統具體實現;

二:描述的方面都不相同,

1:類圖描述的是系統的結構,

2:序列圖描述的是系統的行為;

三:抽象的層次也不同,

1:構件圖描述系統的模塊結構,抽象層次較高,

2:類圖是描述具體模塊的結構,抽象層次一般,

3:對象圖描述了具體的模塊實現,抽象層次較低。

在有的文獻書籍中,將這九種模型圖分為三大類:

結構分類、動態行為和模型管理:

1:結構分類包括用例圖、類圖、對象圖、構件圖和部署圖,

2:動態行為包括狀態圖、活動圖、順序圖和協作圖,

3:模型管理則包含類圖。

畫圖說明

UML(統一建模語言):是面向對象的可視化建模的一種語言。是數據庫設計過程中,在E-R圖(實體-聯系圖)的設計后的進一步建模。
UML中有3種構造塊:事物、關系和圖,事物是對模型中最具有代表性的成分的抽象;關系是把事物結合在一起;圖聚集了相關的的事物。
 
說明:
構件事物是名詞,是模型的靜態部分。
行為事物是動態部分,表示行為。
分組事物是組織部分。
注釋事物是解釋部分。
依賴:一個事物變化會引起另一個事物變化。
聚集:特殊的關聯,描述整體與部分的組合關系。
泛化:是一種特殊與一般的關系,如子元素(特殊)與父元素(一般),箭頭指向父元素。
實現:類元之間的關系,其中一個類元指定了由另一個類元保證執行的契約。一般用在接口和實現他們的類之間或用例和實現它們的協作之間。
UML提供9種視圖:類圖、對象圖,用例圖,序列圖、協作圖,狀態圖、活動圖,構件圖和部署圖。

在UML系統開發中有三個主要的模型:
功能模型: 從用戶的角度展示系統的功能,包括用例圖。
對象模型: 采用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖。
動態模型: 展現系統的內部行為。 包括序列圖,活動圖,狀態圖。

下面具體說明:

1.類圖:描述一組對象、接口、協作等事物之間的關系。
注:#表示protected,+表示Public,-表示private


2.對象圖:描述一組對象之間的關系,是具有具體屬性值和行為的一個具體事物,其是類圖中所建事物實例的靜態快照,其與類圖的主要區別是一個是抽象的,而對象圖是具體的。

3.用例圖:描述一組用例、參與者以及它們之間的關系,其展示的是該系統在它的外面環境中所提供的外部可見服務。
 
4.交互圖:包括序列圖(順序圖)和協作圖,兩者對應,順序圖是強調消息時間順序,有對象生命線和控制焦點。協作圖是強調接收和發送消息的對象的結構組織,有路徑和順序號。
 
5.狀態圖:展示了一個狀態機,由狀態、轉換、事件和活動組成。強調事件行為的順序。
 
6.活動圖:是一種特殊的狀態圖,實現一個活動到另一個活動的流程。
 
7.構件圖和部署圖:構件圖展示一組構件之間的組織和依賴關系,並以全局的模型展示出來。部署圖是構件的配置及描述系統如何在硬件上部署。

四、系統分析工具

流程視圖、功能視圖、對象視圖、任務/崗位視圖等。

五、組織結構分析

通過組織結構分析,進行組織結構調查,便於繪制組織結構圖。

其中包括的內容為:了解各部門職責、領導與被領導關系、信息資料傳遞(數據流向)、物資與資金流向等。

六、業務建模分析

通過業務建模分析,繪制管理業務流程圖,從而真實反映活動發生及產生的數據。(業務流程圖整體來看較為繁瑣,主要用於詳細業務流程中的關系,描述內部實體、外部實體、業務流、單據報表及賬目的四者關系,因此此過程不適用於做業務優化。)

四種業務流程圖圖形符號:

 

 

轉載於:https://www.cnblogs.com/somedayLi/p/9074778.html


免責聲明!

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



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