




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 軟件需求分析與建模22022-4-12第3章軟件需求分析與建模軟件工程教研室教學內容:教學內容:1.需求分析的任務和步驟2.結構化分析與建模(數據流建模、實體-關系建模、功能建模、行為建模)3.驗證軟件需求 基本要求:基本要求:1. 了解:需求分析的任務和步驟2. 理解:結構化分析方法的指導原則;3. 掌握:結構化分析與建模的方法32022-4-12第3章軟件需求分析與建模軟件工程教研室3.1 需求分析需求分析是軟件設計的基礎,需求分析建造了軟件處理的數據模型、功能模型和行為模型。系統工程系統工程軟件需軟件需求分析求分析軟件設計軟件設計 需求分析是開發者對待開發軟件項目的“理解、分解與
2、表達”的過程,指明系統必須實現什么的規格說明,而并非產品的設計、構造特征和方法,也就是說需求定義描述的是“系統要做什么”,而不是“系統如何做”。它是從邏輯上確定系統功能,并用圖表和文字建立新系統的邏輯模型。42022-4-12第3章軟件需求分析與建模軟件工程教研室3.1.1 需求分析的任務和原則 需求分析的具體任務在于:確定對系統的綜合需求,提出系統的邏輯模型,修正系統開發計劃,快速建立軟件原型。通過對用戶進行訪談和調研,獲取和確定用戶需求,并 將需求分為功能需求、非功能需求兩類需求。(1) (1) 功能性需求功能性需求: : 定義了系統做什么(描述系統必須支持的功能和過程)(2) (2) 非
3、功能性需求(技術需求)非功能性需求(技術需求): : 定義了系統工作時的特性(描述操作環境和性能目標, 如:響應時間、平均無故障工作時間、自動恢復時間等)。52022-4-12第3章軟件需求分析與建模軟件工程教研室項目案例:基于本體知識庫的循環經項目案例:基于本體知識庫的循環經濟系統決策技術研究的功能需求濟系統決策技術研究的功能需求n數據輸入及編輯q項目經濟和技術指標的輸入、添加、修改和刪除功能 n查詢及監測q以行政級別、經濟類型和經濟名稱、圖形斑塊等為單位的查詢和分析比較; n評價及決策q經濟狀況評價、環境狀況評價、綜合效益評價、質量評價等 n系統維護q數據庫管理、網頁管理、目錄管理、用戶管
4、理、事件監視等 62022-4-12第3章軟件需求分析與建模軟件工程教研室兩類需求包括的主要需求內容舉例(1)功能:系統的工作內容、系統何時做、系統如何修改與升級;(2)性能:存儲容量限制、執行速度、響應時間、吞吐量(3)環境:機型、外設、接口、地點、分布、操作系統、網絡、數據庫;(4)界面:有和其它系統的輸入與輸出、界面風格要求;(5)用戶或人的因素:理解/使用系統的難度、錯誤操作的可能性;(6)文檔:文檔類型和種類、使用對象;(7)數據:輸入/輸出數據的格式、數據的準確性和精度、數據量、數據需保持的時間;72022-4-12第3章軟件需求分析與建模軟件工程教研室(8)(8)資源:軟件運行時
5、所需的數據、軟件、內存空間等,軟件資源:軟件運行時所需的數據、軟件、內存空間等,軟件開發、維護所需的人力、支撐軟件、開發設備等。開發、維護所需的人力、支撐軟件、開發設備等。(9)(9)安全保密:對訪問系統或系統信息的控制、隔離用戶之間安全保密:對訪問系統或系統信息的控制、隔離用戶之間的數據、用戶程序與其它程序間的處理、系統隔離與系統的數據、用戶程序與其它程序間的處理、系統隔離與系統備份要求;備份要求;(10)(10)軟件成本消耗與開發進度:開發的時間規定、軟硬件投軟件成本消耗與開發進度:開發的時間規定、軟硬件投資有無限制;資有無限制;(11)(11)質量保證:系統的可靠性要求、系統是否要監測和
6、隔離質量保證:系統的可靠性要求、系統是否要監測和隔離錯誤、規定系統平均出錯時間、出錯后重啟系統允許的時錯誤、規定系統平均出錯時間、出錯后重啟系統允許的時間、維護是否包括對系統的改進、系統的可移植性。間、維護是否包括對系統的改進、系統的可移植性。(12)(12)各種計劃、單據和報表的處理:計劃單據和報表都是信各種計劃、單據和報表的處理:計劃單據和報表都是信息的載體,實質上是進一步落實現行系統的數據收集、整息的載體,實質上是進一步落實現行系統的數據收集、整理、輸入、存儲、處理、輸出等各個環節,從而得到完整理、輸入、存儲、處理、輸出等各個環節,從而得到完整的信息流程。的信息流程。 82022-4-1
7、2第3章軟件需求分析與建模軟件工程教研室需求分析的原則:1、詳細了解用戶的業務及目標,充分理解用戶對功能和質量的要求。2、運用合適的方法、模型和工具,正確的、完整的、清晰的表示可理解的問題信息域、定義軟件將完成的功能和軟件的主要行為。3、能夠對問題進行分解和不斷細化,建立問題的層次結構。作為一個整體來看,可能很大、很復雜、很難理解。但可以通過把問題以某種方式分解為幾個較易理解的部分,并確定各部分間的接口,從而實現整體功能。4、盡量重用已有的軟件組件,以便開發人員能夠降低新系統的開發成本和節省時間。5、準確、規范、詳細地編寫需求分析文檔和認真細致地評審需求分析文檔。92022-4-12第3章軟件
8、需求分析與建模軟件工程教研室3.1.2 獲取需求的方法獲取需求的方法需求獲取可能是軟件開發中最需要與用戶交流的方面。進行需求分析要腳踏實地地圍繞兩個核心問題來開展:應該了解什么?通過什么方式去了解?這兩個問題也就是:目標、方法、處理三個部分。1、目標用書面的方式記錄和歸整用戶的需求報告。(1)首先調查組織機構情況包括了解該組織的部門組成情況,各部門的職能等,為分析信息流程做準備。(2)然后調查各部門的業務活動情況包括了解各個部門輸入和使用什么數據,如何加工處理這些數據,輸出什么信息,輸出到什么部門,輸出結果的格式是什么。102022-4-12第3章軟件需求分析與建模軟件工程教研室(3)協助用戶
9、明確對系統的各種要求)協助用戶明確對系統的各種要求包括信息要求、功能要求、處理要求、安全性要求、包括信息要求、功能要求、處理要求、安全性要求、完整性要求。完整性要求。(4)確定系統的邊界)確定系統的邊界確定哪些功能由計算機完成或將來準備讓計算機完確定哪些功能由計算機完成或將來準備讓計算機完成,哪些活動由人工完成。由計算機完成的功能就成,哪些活動由人工完成。由計算機完成的功能就是新系統應該實現的功能是新系統應該實現的功能。112022-4-12第3章軟件需求分析與建模軟件工程教研室2、獲取需求的方法、獲取需求的方法(1)跟班作業)跟班作業通過親身參加業務工作來了解業務活動的情況。這種方法通過親身
10、參加業務工作來了解業務活動的情況。這種方法可以比較準確地理解用戶的需求,但比較耗費時間。可以比較準確地理解用戶的需求,但比較耗費時間。(2)開調查會)開調查會通過與用戶座談來了解業務活動情況及用戶需求。座談時,通過與用戶座談來了解業務活動情況及用戶需求。座談時,參加者之間可以相互啟發。參加者之間可以相互啟發。(3)請專人介紹和咨詢)請專人介紹和咨詢對某些調查中的問題,可以找專人詢問。對某些調查中的問題,可以找專人詢問。122022-4-12第3章軟件需求分析與建模軟件工程教研室(4)設計調查表請用戶填寫)設計調查表請用戶填寫如果調查表設計得合理,這種方法是很有效,也很易于如果調查表設計得合理,
11、這種方法是很有效,也很易于為用戶接受的。為用戶接受的。(5)查閱檔案記錄)查閱檔案記錄即查閱與原系統有關的數據記錄,包括原始單據、賬簿、即查閱與原系統有關的數據記錄,包括原始單據、賬簿、報表等。報表等。3、處理、處理通過調查了解了用戶需求后,還需要進一步分析和表達通過調查了解了用戶需求后,還需要進一步分析和表達用戶的需求,并建立快速原型,以便于進行技術評審。用戶的需求,并建立快速原型,以便于進行技術評審。132022-4-12第3章軟件需求分析與建模軟件工程教研室3.1.3 需求分析的模型和方法需求分析的模型和方法 提出目標系統的數據模型、功能模型和行為模型是需提出目標系統的數據模型、功能模型
12、和行為模型是需求分析的核心任務。求分析的核心任務。 所謂模型就是系統的一種書面描述,通過抽象、概括所謂模型就是系統的一種書面描述,通過抽象、概括和一般化,把研究的對象或問題轉化為本質相同的另一對象和一般化,把研究的對象或問題轉化為本質相同的另一對象或問題,以便解決的方法。模型不一定必須用某種數學公式或問題,以便解決的方法。模型不一定必須用某種數學公式表示,可以是圖形,甚至可以是文字敘述。表示,可以是圖形,甚至可以是文字敘述。142022-4-12第3章軟件需求分析與建模軟件工程教研室1、邏輯模型需求分析是將現實世界的問題映射到信息世界,因此,在這一映射過程中涉物理模型、概念模型和邏輯模型。(1
13、)物理模型是對現實世界客觀表示,描述的是對象系統“如何做”、“如何實現”系統的物理過程。當它用于表示邏輯模型的一個實例時,主要用于軟件系統操作層次的描述。常用的建模工具有系統流程圖等。(2)概念模型是是現實世界到信息世界的第一層本質抽象,即它是物理模型的映射,是對象系統的整體概括描述,主要用于軟件系統宏觀層次的描述。(3)邏輯模型是概念模型的延伸和細化,在技術規范中表示概念之間的邏輯次序,描述的是對象系統要“做什么”,或者說具有哪些功能,主要用于軟件系統方法層次的描述。邏輯模型包含數據模型、行為模型和功能模型。152022-4-12第3章軟件需求分析與建模軟件工程教研室邏輯模型(本質模型、概念
14、模型) 物理模型(實施模型、技術模型)現行系統描述重要的業務功能,不考慮系統是如何實施的。描述現實系統是如何在物理上實現的。目標系統描述新系統的主要業務功能和用戶新的需求,無論系統應如何實施。描述新系統是如何實施的(包括技術)。 需求分析過程應該建立3種模型,它們分別是數據模型、功能模型和行為模型。162022-4-12第3章軟件需求分析與建模軟件工程教研室數據模型描述對象系統的本質屬性及其關系。常用的建模工具有實體-聯系圖等。功能模型描述對象系統所能實現的所有功能。而不考慮每個功能實現的次序。常用的建模工具有數據流圖、IDEF0等。行為模型描述對象系統為實現某項功能而發生的動態行為。常用的建
15、模工具有控制流圖、狀態轉換圖等。172022-4-12第3章軟件需求分析與建模軟件工程教研室2、需求分析方法需求分析方法由對軟件問題的信息域和功能域的系統分析過程及其表示方法組成;大多數的需求分析方法是由信息驅動的信息域具有三種屬性: 信息流、信息內容和信息結構。常用的分析方法有:1) 面向數據流的結構化分析方法 (SA)2) 面向對象的分析方法 (OOA)182022-4-12第3章軟件需求分析與建模軟件工程教研室3.1.4 需求分析的主要過程需求分析的主要過程需求分析過程主要有以下5個步驟構成(見圖3-1)。192022-4-12第3章軟件需求分析與建模軟件工程教研室需求分析過程示意(1)
16、 通過對現實環境的調查,獲得當前系統的物理模型學生學生購書申請購書單發票領書單書107張教務科206王會計室206李出納員303趙教材科學生購買教材的物理模型202022-4-12第3章軟件需求分析與建模軟件工程教研室(2) 去掉具體模型中的非本質因素,抽象出當前系統的邏輯模型學生學生購書申請購書單發票領書單書審查有效性開發票開領書單發書212022-4-12第3章軟件需求分析與建模軟件工程教研室(3) 分析當前系統與目標系統的差別,建立目標系統的邏輯模型計算機售書系統的邏輯模型學生學生購書單發票領書單審查并開發票開領書單無效書單222022-4-12第3章軟件需求分析與建模軟件工程教研室系統
17、分析運行/維護轉換補充詳細設計初步設計系統分析基本業務基本需求滿意否?構造原型使用原型修改、擴充YN分析階段的原型化生命周期分析階段的原型化生命周期232022-4-12第3章軟件需求分析與建模軟件工程教研室Y確定基本信息需求基本需求估計成本確定數據開發初始原型初始原型使用原型系統并澄清需求用戶和設計者是否滿意是否放棄運行的原型運行原型修正和改進原型運行原型改進的原型把原型作為應用系統把原型作為應用系統開發的基礎YNN242022-4-12第3章軟件需求分析與建模軟件工程教研室3.2 結構化分析方法3.2.1基本思想和分析過程結構化分析方法的基本思想是“分解”和“抽象”。分解是指對于一個比較復
18、雜的系統,為了將其復雜性降低到可以掌握的程度,從而把大問題分解成若干個小問題,然后分別求解,這是一種分治策略。如圖3-3是一幅自頂向下逐層分解的示意圖。頂層抽象地描述了整個系統,底層具體地刻畫了系統的每一個細節,而中間層是從抽象到具體的逐層過渡。252022-4-12第3章軟件需求分析與建模軟件工程教研室圖3-3 自頂向下逐層分解圖262022-4-12第3章軟件需求分析與建模軟件工程教研室結構化分析的過程如下1建立當前系統(現在工作方式)的概念模型。系統的概念模型就是現實環境的忠實寫照,可用系統流程圖來表示。這樣的表達與當前系統完全對應,用戶容易理解。2抽象出當前系統的邏輯模型。分析系統的概
19、念模型,抽象出其本質的因素,排除次要因素,獲得用數據流圖DFD 圖等描述的當前系統的邏輯模型。3建立目標系統的邏輯模型。分析目標系統與當前系統邏輯上的差別,從而進一步明確目標系統“做什么”,建立目標系統的“邏輯模型”(修改后的數據流圖DFD 圖等)。4建立人機交互接口和其他必要的模型,確定各種方案的成本和風險等級,據此對各種方案進行分析,選擇其中一種方案,建立完整的需求規約。分析模型的結構如圖3-4所示。272022-4-12第3章軟件需求分析與建模軟件工程教研室282022-4-12第3章軟件需求分析與建模軟件工程教研室總之,結構化分析是一種建模活動, 主要是根據軟件內部的數據傳遞、變換關系
20、,自頂向下逐層分解,描繪出滿足功能要求的軟件模型。使用的手段主要有系統流程圖、數據流圖、數據字典、實體-關系圖和狀態轉換圖等。292022-4-12第3章軟件需求分析與建模軟件工程教研室3.2.2 系統流程圖 系統流程圖將系統中的各個物理部件用相應的圖形符號表示,并按照系統工作的實際流程(或者業務處理的流程)加入數據或者信息流動方向的描述,形成高度概括整個系統工作過程的流程圖。 系統流程圖所表達的是數據或者信息在各個部件中的流動過程,而不表達數據或者信息加工的控制過程,302022-4-12第3章軟件需求分析與建模軟件工程教研室1、系統流程圖符號系統流程圖的圖形元素比較簡單,容易理解。一個圖形
21、符號表示一種物理部件,這些部件可以是程序、文件、數據庫、表格、人工過程等。312022-4-12第3章軟件需求分析與建模軟件工程教研室該系統分為三個部分:報名處理(處理報名、生成報名表、運動項目冊)、成績處理(成績錄入、分類、統計、計算)、成績發布與獎勵(發布所有運動員比賽成績、給破校記錄運動員以及成績前三名者頒獎)。每一個部分用虛線方框圈定,并且加上文字說明。在系統流程圖的每一個部件上標注了該部件的名稱,部件之間用信息流向線表示出信息流動的方向。322022-4-12第3章軟件需求分析與建模軟件工程教研室3.2.2 數據流圖數據流圖數據流圖(Data Flow Diagram,簡稱DFD),
22、是一種用來刻劃數據處理過程的工具,它從數據傳遞和數據處理的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程。它是系統邏輯功能的圖形化描述,能被非專業技術人員容易地理解,可作為分析設計人員和用戶之間進行溝通的媒介。1、基本圖元數據流圖有四種基本圖形元素,如圖-6所示。332022-4-12第3章軟件需求分析與建模軟件工程教研室圖3-6 數據流圖基本圖元342022-4-12第3章軟件需求分析與建模軟件工程教研室352022-4-12第3章軟件需求分析與建模軟件工程教研室例如,有一圖書管理系統,首先接收顧客發來的訂單,對訂單進行驗證,驗證過程是根據圖書目錄檢查訂單的正確性,同時根據顧客檔案確
23、定是新顧客還是老顧客,是否有信譽。經過驗證的正確訂單,暫存放在待處理的訂單文件中。然后對訂單進行成批處理,根據出版社檔案,將訂單按照出版社進行分類匯總,并保存訂單存根,最后將匯總訂單發往各出版社。要求畫出圖書預定系統的DFD圖。362022-4-12第3章軟件需求分析與建模軟件工程教研室畫圖步驟為:(1)確定源點、終點(顧客、出版社)及輸入、輸出數據流(訂單、出版社訂單)。(2)分解頂層的處理(驗證訂單、匯總訂單)。(3)確定所用的數據存儲(圖書目錄、顧客檔案等)。(4)用數據流把各個部分連接起來,形成連通數據流。按上述步驟畫出的圖書預定系統DFD如圖-8所示:372022-4-12第3章軟件
24、需求分析與建模軟件工程教研室2、分層的數據流圖對于相對復雜的問題,為了刻畫數據處理過程,僅用一個數據流圖往往難以描述清楚,會使得系統變得復雜,且難以理解,為了降低系統復雜度,采用逐層分解的技術,畫分層的DFD圖。 畫分層DFD圖的一般原則是:“先全局后局部,先整體后細節,先抽象后具體”。382022-4-12第3章軟件需求分析與建模軟件工程教研室392022-4-12第3章軟件需求分析與建模軟件工程教研室在畫分層數據流圖時, 有以下幾條原則可供參考:(1)分解應自然,概念上要合理、清晰,最多不要超過7層;(2)注意上下分層圖之間數據流對應平衡;(3)數據守恒與數據封閉原則。即加工的輸入、輸出數
25、據流是否匹配;父圖、子圖的輸入、輸出數據流是否對應;一個加工至少有一個數據流入和一個數據流出。父圖、子圖不平衡的例子:402022-4-12第3章軟件需求分析與建模軟件工程教研室數據流圖舉例:計算機教材購銷系統學生購書,首先填寫購書單,系統根據各班學生用書表及售書登記表審查購書單的有效性。若有效,計算機根據教材庫存表進一步判斷書庫是否有書;若有書,計算機把領書單返回給學生,學生憑領書單到書庫領書。對脫銷的教材,系統用缺書單的形式通知書庫,新書購進庫后,也由書庫將進書通知返回給系統。412022-4-12第3章軟件需求分析與建模軟件工程教研室教材購書系統的頂層數據流圖(DFD)422022-4-
26、12第3章軟件需求分析與建模軟件工程教研室銷售子系統的第三層數據流圖如下圖所示:432022-4-12第3章軟件需求分析與建模軟件工程教研室3.2.4 數據字典 數據詞典(Data Dictionary,簡稱DD)和數據流圖密切配合,能清楚地表達數據處理的要求。數據詞典用于對數據流圖中出現的所有成分給出定義,它使數據流圖上的數據流名字、加工名字和數據存貯名字具有確切的解釋。每一條解釋就是一條詞條,按一定的順序將所有詞條排列起來,就構成了數據詞典,就象日常使用的英漢詞典、新華詞典一樣。1數據字典的內容通常,數據字典應該包含下列5類元素的定義:數據流;數據元素;數據存儲;變換處理;源點及終點(匯點
27、)。442022-4-12第3章軟件需求分析與建模軟件工程教研室1) 數據流詞條描述(1) 數據流名:(2) 說明:簡要介紹作用即它產生的原因和結果(3) 數據流來源:來自何方(4) 數據流去向:去向何處(5) 數據流組成:數據結構(6) 數據量流通量:數據量,流通量452022-4-12第3章軟件需求分析與建模軟件工程教研室數據流詞條說明舉例數據流詞條說明舉例1 1:條目名:學生基本信息 編號:F1來源:學生S1 去處:學籍查詢和歸檔D1數據流結構:學號學生姓名學生性別出生日期班號聯系電話入校時間家庭住址注釋數據流量:1000次/周,高峰值:開學期間1000次/天 簡要說明:需在學生檔案中記
28、錄的個人信息462022-4-12第3章軟件需求分析與建模軟件工程教研室數據流詞條說明舉例數據流詞條說明舉例2 2:學生證學號密碼 申請單學號(課程號選課學期) 謝絕“非法證件”|“不合格單”|“證單不符” 學號00000001.99999999 密碼000001.999999 課程號1英文字母40001.9999 選課學期0001.9999春季|秋季 472022-4-12第3章軟件需求分析與建模軟件工程教研室2) 數據元素(數據項)詞條描述(1) 數據元素名:(2) 類型:數字(離散值,連續值),文字(編碼類型)(3) 長度:(4) 取值范圍:(5) 相關的數據元素及數據結構482022-
29、4-12第3章軟件需求分析與建模軟件工程教研室數據項條目說明舉例數據項條目說明舉例1 1q數據項名:貨物編號q別名:G-No,G-numq簡述:本公司的所有貨物的編號q類型:字符串q長度:10q取值范圍及含義:q第1位:JG (進口/國產) q第2 4位:LB01. LB29 (類別)q第5 7位:“A00”.“A99” (規格)q第8 10位:“001”.“999”(品名編號)492022-4-12第3章軟件需求分析與建模軟件工程教研室數據項名稱:學號存儲處:D1學籍檔案,D2成績檔案類型:整數 長度:10位屬于數據流:F1F4,F7F9,F14,F15取值范圍及含義:班號+流水號(2位)數
30、據項條目說明舉例數據項條目說明舉例2 2502022-4-12第3章軟件需求分析與建模軟件工程教研室3) 數據文件詞條描述(1) 數據文件名:(2) 簡述:存放的是什么數據(3) 輸入數據:(4) 輸出數據:(5) 數據文件組成:數據結構(6) 存儲方式:順序,直接,關鍵碼(7) 存取頻率:512022-4-12第3章軟件需求分析與建模軟件工程教研室2數據結構的描述在數據字典的編制中,常用的數據結構的方式有定義式和Warnier圖。522022-4-12第3章軟件需求分析與建模軟件工程教研室(1)定義式通常采用符號的描述符符 號號 含含 義義 舉舉 例例 被定義為被定義為 與與 x = ab.
31、,. 或或 .|. 或或 x = a , b,x = a | b . 或或 m.n 重復重復 x = a, x = 3a8(.) 可選可選 x = (a)“.” 基本數據元素基本數據元素 x = “a” . 界域界域 x = 1.9說明:重復上下限說明:重復上下限m m和和n n相同時,表示重復次數固定。相同時,表示重復次數固定。532022-4-12第3章軟件需求分析與建模軟件工程教研室應用實例應用實例1 1 某高校可用的電話號碼有以下幾類:校內電話號碼由4位數字組成,第1位數字不是0;校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0,若是本市電話則再接著撥8位數字(第1位不是0),
32、若是外地電話則撥3位區碼再撥8位電話號碼(第1位不是0)。請用定義數據字典的方法,定義上述的電話號碼。電話號碼=校內電話號碼|校外電話號碼校內電話號碼=非零數字 + 3位數字 /后面繼續定義校外電話號碼=本市號碼|外地號碼本市號碼=數字零+8位數字外地號碼=數字零+3位數字+8位數字非零數字=1|2|3|4|5|6|7|8|9數字零03位數字3數字3 /3至3個數字8位數字=非零數字+7位數字7位數字=7數字7數字0|1|2|3|4|5|6|7|8|9542022-4-12第3章軟件需求分析與建模軟件工程教研室3.2.4 加工邏輯說明盡管數據流圖給出了系統數據流向和加工等情況,但其各個成分的具
33、體含義仍然不清楚或不明確,因此,在實際中常采用一些方法對其作進一步的詳細說明。 552022-4-12第3章軟件需求分析與建模軟件工程教研室3.2.4加工邏輯詞條描述(1) 加工名:(2) 加工編號:反映該加工的層次(3) 簡要描述:加工邏輯及功能簡述(4) 輸入數據流:(5) 輸出數據流:(6) 加工邏輯:簡述加工程序,加工順序 盡管數據流圖給出了系統數據流向和加工等情況,但其各個成分的具體含義仍然不清楚或不明確,因此,在實際中常采用以下一些方法對其作進一步的詳細說明。 1) 結構化語言562022-4-12第3章軟件需求分析與建模軟件工程教研室加工名:添加信息激發條件:接受添加信息輸入:新
34、信息輸出:更新數據庫加工邏輯:輸入信息IF信息格式正確 and 不與數據庫的信息重復THEN 將信息追加到數據庫ELSE 輸出錯誤,重新輸入或退出ENDIF加工邏輯詞條說明舉例加工邏輯詞條說明舉例572022-4-12第3章軟件需求分析與建模軟件工程教研室A.是一種介于自然語言和形式化語言之間的語言B.語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示C.其基本控制結構有三種:簡單陳述句結構簡單陳述句結構:避免復合語句;:避免復合語句;重復結構重復結構:whilewhile_ _dodo 或或 repeatrepeat_ _untiluntil 結構。結構。判定結構:判定結構:
35、if_then_elseif_then_else 或或 case_ofcase_of 結構;結構;D.結構化英語的詞匯表由2) 2) 結構化英語結構化英語582022-4-12第3章軟件需求分析與建模軟件工程教研室發貨單金額超過發貨單金額超過$500$500欠款超過了欠款超過了6060天天在償還欠款前不予批準在償還欠款前不予批準(欠款未超期)(欠款未超期)發批準書,發貨單發批準書,發貨單(發貨單金額未超過(發貨單金額未超過$500$500)欠款超過欠款超過6060天天發批準書,發貨單及賒欠報告發批準書,發貨單及賒欠報告(欠款未超期)(欠款未超期)發批準書,發貨單發批準書,發貨單592022-4
36、-12第3章軟件需求分析與建模軟件工程教研室處理名處理名: :核實訂票處理(MHGP3200MD)編號編號: : 3.2激活條件激活條件: :收到取訂票信息處理邏輯處理邏輯: :1讀訂票旅客信息文件 2搜索此文件中是否有與輸入信息 中姓名及身份證號相符的項 IF 有 THEN 判斷余項是否與文件中信 息相符 IF 是 THEN 輸出已訂票信息 ELSE 輸出未訂票信息 ELSE 輸出未訂票信息執行頻率執行頻率: : 實時602022-4-12第3章軟件需求分析與建模軟件工程教研室3) 3) 判定表判定表 如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。612022-4
37、-12第3章軟件需求分析與建模軟件工程教研室以“檢查發貨單”為例622022-4-12第3章軟件需求分析與建模軟件工程教研室處理名處理名: :計算折扣率(MHGP534MD)編號編號: : 5.3.4激活條件激活條件: :收到預訂票信息處理邏輯處理邏輯: :計算折扣率執行頻率執行頻率: : 實時旅游時間訂 票 量折 扣 量79,12月16,10,11月2020 20 20 15% 5% 20% 30%632022-4-12第3章軟件需求分析與建模軟件工程教研室4) 4) 判定樹判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。642022-4-12第3章軟件需求分析與建模軟件
38、工程教研室5) IPO5) IPO圖圖 加工邏輯可以用結構化語言形式表示,也可用 IPO(Input/Process/Output)圖的方法也是加工說明的描述方法。 IPO圖使用的圖形符號很少,其基本形式是在左邊的輸入數據框中列出有關的輸入數據,在中間的處理框中按順序列出主要的處理,在右邊的輸出數據框中列出處理產生的輸出數據(包括中間結果),在IPO圖中還用類似向量符號的粗大箭頭清楚地指出數據通信的情況。652022-4-12第3章軟件需求分析與建模軟件工程教研室3.3 功能建模3.3.1 IDEF0模型功能建模中最為傳統的方法是IDEF0法,IDEF是ICAM DEFinition meth
39、od 的縮寫。662022-4-12第3章軟件需求分析與建模軟件工程教研室3.3.2 IDEF0建模方法 IDEF0模式的建立主要是由方塊(Boxes)及箭號(Arrows)這兩種基本組件所組成的。當中的每一個方塊代表的是系統的功能,功能可能是一種行動(Action)、作業(Operation)或是過程(Processes)。箭號代表方塊中所需的信息,例如:輸入、輸出、控制、機制以及呼叫等。IDEF0圖形中將各項作業分為輸入(Input)、輸出(Ouput)、控制(Control)及機制(Mechanism),并將功能之間彼此相關聯性加以分解,因此可以正確的獲取及傳達流程與描述系統的功能。67
40、2022-4-12第3章軟件需求分析與建模軟件工程教研室矩形盒子輸入(左邊線):指出完成功能(活動)所需要的數據;(Input)輸出(右邊線):指出功能(活動)執行后產生的數據;(Output)控制(上邊線):指出功能(活動)受到的約束條件;(Control)機制(下邊線):指出功能(活動)由誰完成;(How)682022-4-12第3章軟件需求分析與建模軟件工程教研室(2)箭頭代表數據約束,而不是數據流或執行順序。分支箭頭:表示多個功能(活動)需要同一種數據的不同成分,如圖3-13所示。匯合箭頭:表示多個活動產生(或合并)同一種數據,如圖3-14所示。通道箭頭:表示箭頭將不出現在子圖(或父圖
41、)中,如圖3-15、3-16所示。692022-4-12第3章軟件需求分析與建模軟件工程教研室雙向箭頭:表示兩個盒子互為輸入或互為控制,且先被觸發的盒子在上,后被觸發的在下,如圖3-17所示。702022-4-12第3章軟件需求分析與建模軟件工程教研室虛線箭頭:表示觸發順序,即虛的輸出控制,如圖3-18所示。選擇箭頭:表示數據的選擇關系,如圖3-19所示。712022-4-12第3章軟件需求分析與建模軟件工程教研室(3)ICOM碼對于來自父盒子的數據約束,分別用ICOM 代表(輸入、控制、輸出、機制),然后再加上順序號,就構成了ICOM碼。并在字母之后添加該數據在父盒子中的數字順序號(編號順序
42、為從左至右、從上至下),以表明其在父盒子中的位置,如圖3-20所示。722022-4-12第3章軟件需求分析與建模軟件工程教研室(4)結點結點號是用來表示圖形或盒子在層次中的位置,其編碼規則是:所有結點都用A (Activity)開頭;最頂層圖形稱為A0;A0以上只用一個盒子代表系統的內外關系,如A-1 A-2等;子圖的編碼要繼承父圖,如A21、A331;732022-4-12第3章軟件需求分析與建模軟件工程教研室3.3.3 IDEF0建模步驟IDEF0方法是在詳細功能需求調研的基礎上,用嚴格的自頂向下、逐層分解的方式來進行的,其基本步驟如下:(1)確定建模的范圍、觀點、目的范圍描述的是系統的
43、外部接口,即系統與環境之間的界線,它確定了要討論的問題是什么;觀點表明了從什么角度去觀察問題,以及在一定范圍能看到什么;目的則反映了建立模型的意圖和理由。(2)建立系統的內外關系(A-0圖)A-0圖確定了系統的邊界,是進一步分解的基礎。如果想從更大的范圍來考慮全局性的問題,則可以畫A-1、A-2圖等,以從更大范圍表明各模塊間的相互關系。(3)畫出頂層圖 (A0圖)按建模的特點,將A-0圖在建模范圍內分解3-6個主要功能,便得到A0圖。742022-4-12第3章軟件需求分析與建模軟件工程教研室(4)畫出A0圖的一系列子圖 (A.圖)在對圖中的盒子進行分解,形成一系列的子圖時,應注意以下兩個問題
44、,其一是分解應盡量在同一層次上進行,其二是在選擇要被分解的盒子時,先選擇較難的盒子。一個模塊在向下分解時,分解成不少于3個且不多于6個的子模塊。上界6,保證了采用遞階層次來描述復雜事物時,同一層次中的模塊數不會太多。 (5)書寫文字說明一般說來,每張IDEF0圖應該附有一頁簡短的文字說明,補充圖形不能表達的重要信息,并對有關的名詞在第一次出現時給予解釋。但是,如果圖形本身已表達得足夠清楚,則可以不要文字說明。752022-4-12第3章軟件需求分析與建模軟件工程教研室762022-4-12第3章軟件需求分析與建模軟件工程教研室772022-4-12第3章軟件需求分析與建模軟件工程教研室7820
45、22-4-12第3章軟件需求分析與建模軟件工程教研室792022-4-12第3章軟件需求分析與建模軟件工程教研室802022-4-12第3章軟件需求分析與建模軟件工程教研室812022-4-12第3章軟件需求分析與建模軟件工程教研室3.4 數據建模與數據建模與ER圖圖為了把用戶要求的復雜數據以及數據之間的相互關系清晰、準確地描述出來,系統分析人員通常需要建立一個概念性的數據模型。它是按照用戶的觀點對數據進行建模,是現實世界到機器世界的一個中間層。概念模型中包含3種相互關聯的信息:實體、對象屬性以及對象間的相互關系。目前常用實體-關系圖(Entity-Relationship Diagram,簡
46、稱ER圖)來表示概念模型。822022-4-12第3章軟件需求分析與建模軟件工程教研室教學管理ER圖 實體-關系模型中包含3種相互關聯的信息:數據對象(實體)、數據對象的屬性(實體屬性)及數據對象彼此間相互連接的關系(實體關系)。832022-4-12第3章軟件需求分析與建模軟件工程教研室1)1)實體實體 實體是對軟件必須理解的復合信息的抽象。所謂復合信息是指具有一系列不同性質或屬性的事物。 可以由一組屬性來定義的數據對象都可以被認為是實體。例如:產生和使用信息的事物、行為(打電話)、事件(響警報)、角色(學生)、單位(財務科)、地點(倉庫)、結構(文件)等。僅有單個值的事物(例如,寬度)不是
47、實體。 實體彼此間是有關聯的。實體只封裝了數據而沒有對施加于數據上的操作的引用,這是與面向對象范型中的“類”或“對象”的顯著區別。通常用矩形框代表實體 。842022-4-12第3章軟件需求分析與建模軟件工程教研室2)2)聯系聯系 實體之間可能會有各種關系。例如,“學生”與“課程”之間有“選課”的關系。這種實體和實體之間的關系被抽象為聯系。在實體聯系圖中,聯系用聯結有關實體的菱形框表示。 聯系可分為以下3種類型:(1) 一對一聯系(11)例如,部門與經理的聯系是一對一的。(2) 一對多聯系(1N) 例如,某校教師與課程之間存在一對多的聯系“教”。 (3) 多對多聯系(MN) 例如,表示學生與課
48、程間的聯系(“學”)是多對多的。852022-4-12第3章軟件需求分析與建模軟件工程教研室3)3)屬性屬性 實體一般具有若干特征,這些特征就稱為實體的屬性,例如實體“學生”,具有學號、姓名、性別、出生日期和系別等特征,這些就是它的屬性。 用橢圓或圓角矩形表示實體(或關系)的屬性,并用直線把實體(或關系)與其屬性連接起來。862022-4-12第3章軟件需求分析與建模軟件工程教研室4)4)其它幾個重要概念其它幾個重要概念獨立實體和從屬實體 實體可以分為獨立實體和從屬實體或弱實體,獨立實體是不依賴于其它實體和聯系而可以獨立存在的實體, “學生檔案”、“課程檔案”等等,獨立實體常常被直接簡稱為實體
49、;從屬實體是這樣一類實體,其存在依賴于其它實體和聯系,例如 “選課單”是從屬實體,它的存在依賴于實體 “學生檔案” ”、“課程檔案”和聯系“選課”。872022-4-12第3章軟件需求分析與建模軟件工程教研室聯系也可以有屬性 聯系也可以有屬性,例如學生選修某門課程,它既依賴于某個特定的學生,又依賴于某門特定的課程,所以它是學生與課程之間的聯系“選課”的屬性。在下圖中,聯系“選課”的屬性被概括在從屬實體“選課單”中。 882022-4-12第3章軟件需求分析與建模軟件工程教研室屬性的主鍵 如果實體的某一屬性或某幾個屬性組成的屬性組的值能能唯一地標識該實體,而其任何真子集無此性質,則這個屬性或屬性
50、組稱為實體鍵。如果一個實體有多個實體鍵存在,則可從其中選一個最常用到的作為實體的主鍵。例如實體“學生”的主鍵是學號,一個學生的學號確定了,那么他的姓名、性別、出生日期和系別等屬性也就確定了。 屬性的外鍵 如果實體的主鍵或屬性(組)的取值依賴于其它實體的主鍵,那么該主鍵或屬性(組)稱為外鍵。例如,從屬實體“注冊記錄”的主鍵“學號”的取值依賴于實體“學生”的主鍵“學號” 。892022-4-12第3章軟件需求分析與建模軟件工程教研室屬性的屬性域 屬性可以是單域的簡單屬性,也可以是多域的組合屬性。組合屬性由簡單屬性和其它組合屬性組成。屬性的屬性值 屬性可以是單值的,也可以是多值的。例如一個人所獲得的
51、學位可能是多值的。當某個屬性對某個實體不適應或屬性值未知時,可用空缺符NULL表示。902022-4-12第3章軟件需求分析與建模軟件工程教研室5)擴充實體聯系圖 以實體、聯系和屬性等基本概念為基礎的實體聯系圖是基本實體聯系圖。為了滿足新的應用需求和表達更多的語義,通過引入分類概念和聚集概念而擴充的實體聯系圖 。912022-4-12第3章軟件需求分析與建模軟件工程教研室(1 1)分類)分類 從一般到特殊,從特殊到一般,學生可以分為進修生、本科生和研究生,進修生、本科生和研究生也可以概括為學生。 922022-4-12第3章軟件需求分析與建模軟件工程教研室(2 2)聚集)聚集 在基本實體聯系圖
52、中,只有實體參與聯系,聯系不能參與聯系。在擴充實體聯系圖中,可以把聯系與參與聯系的實體組合成一個新的實體,這個新的實體稱為參與聯系的實體的聚集,它的屬性就是參與聯系的實體的屬性和聯系的屬性的并。 乒乓隊田徑隊籃球隊足球隊組成國 家 隊932022-4-12第3章軟件需求分析與建模軟件工程教研室6)實體聯系圖屬性說明 實體聯系圖中的屬性可以利用數據詞典方法加以說明。在進行說明時,如果屬性與數據流中的相關數據相同,則應引用數據流中的相應定義,而不應重新定義,這樣可以避免因同一數據定義二次而出現多義性的現象。 E1: 學生檔案 (E1.01) 學號d01.1 (E1.02) 姓名1漢字20 (E1.
53、03) 性別男|女 (E1.04) 出生日期日期 (E1.05) 入學日期日期 (E1.06) 系別1漢字24 (E1.04.1) 日期0000.9999/01.12/01.31 942022-4-12第3章軟件需求分析與建模軟件工程教研室7 7)創建實體)創建實體聯系圖步驟聯系圖步驟 u標識和定義在建模問題范圍內的實體。u標識實體和定義實體之間的基本聯系,其中有些聯系可能是非確定的,需要在以后的階段中改進。u主要包括開發屬性池,定義屬性,建立屬性的所有權,改善模型等。u定義主鍵和外鍵,以便標識唯一的實體。 4個階段的關系如圖3-27所示。952022-4-12第3章軟件需求分析與建模軟件工程
54、教研室例:為某倉庫的管理設計一個ER模型。該倉庫主要管理零件的訂購和供應等事項。倉庫向工程項目供應零件,并且根據需要向供應商訂購零件。1.確定事物:本問題中共有三類(事物)實體,分別是“零件”、“工程項目”和“供應商”。2.確定事物之間的關系:一種零件可供應多個工程項目,一個工程項目需要使用多種零件,因此,零件與工程項目之間的聯系“供應”,是多對多( M N )聯系;類似地,零件與供應商之間的聯系“訂購”,也是多對多( M N )聯系。3.定義屬性:實體類型“零件”的主要屬性是:零件編號,零件名稱,顏色,重量。實體類型“工程項目”的屬性主要是:項目編號,項目名稱,開工日期。實體類型“供應商”的
55、屬性主要有:供應商編號,供應商名稱,地址。聯系類型“供應”的屬性是,向某工程項目供應的某種零件的數量。聯系類型“訂購”的屬性是,向某供應商訂購的某種零件的數量。962022-4-12第3章軟件需求分析與建模軟件工程教研室972022-4-12第3章軟件需求分析與建模軟件工程教研室3.5 行為建模與行為建模與STD圖圖 除了功能模型和數據模型以外,有時也需要建立系統的行為模型(或稱為控制模型)。因為存在這樣的一大類應用軟件它們是事件驅動的,而不是數據驅動的;產生控制信息,而不是報告或顯示值;處理信息時非常關注時間和性能。這些應用軟件在數據流建模以外還需要使用控制建模。行為建模的方法有控制流圖和狀
56、態圖。1 1)控制流圖)控制流圖CFD(Control Flow Diagram)CFD(Control Flow Diagram) 正如功能模型(或稱為處理模型)主要由數據流圖和相應的處理規格說明兩部分表示一樣,行為模型(或稱為控制模型)也由兩部分表示:由控制項(或事件)表示的控制流圖和控制流圖對應的控制規格說明。982022-4-12第3章軟件需求分析與建模軟件工程教研室3.5.1處理模型和控制模型之間的關系處理模型和控制模型之間的關系n在處理模型和控制模型之間的關系的圖中(見圖3-28),這兩個模型之間通過兩種方式連接:數據條件和處理激活。作用于處理模型的數據輸入產生控制輸出時,系統就會設置響應的數據條件。處理激活則是通過包含在控制規范說明中的處理激活信息實現的。992022-4-12第3章軟件需求分析與建模軟件工程教研室 在控制流圖中主要表示出“流入”和“流出”的各個加工的控制流向,以及響應的控制規范說明。 控制符號以虛線表示,虛箭頭上標明控制項(或事件)名。平行虛線表示控制項存儲,豎線模表示控制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工麻木測試題及答案
- 檢驗技師考試題及答案
- 大學物理考試題及答案
- 建筑選拔面試題及答案
- java筆試面試題及答案
- 人生是一場修行作文800字(15篇)
- 從名句中理解語言之規律:英語語法在初中教學篇
- 2024-2025學年江蘇省興化市四校聯考高二下學期期中考試英語試題(解析版)
- 藝術繪畫技法及風格主題試題集
- 小型農業種植基地合同
- 2025年四川富潤招聘筆試沖刺題(帶答案解析)
- 2025年全國安全生產月活動安全知識競賽題庫(附答案)
- 2025醫療健康行業AI應用白皮書-阿里云
- 高溫環境電纜散熱措施
- 公交站牌制作合同協議書
- 初三班級學生中考加油家長會課件
- 部編版道德與法治五年級下冊期末綜合測試卷含答案(共6套)
- 工廠過程檢驗記錄表(自檢)模板
- 工程創優質量承諾和保證措施(投標技術部分)
- 年循環再生20萬噸高值化改性塑料智能制造項目環境影響報告書
- 軟件產品質量評價標準
評論
0/150
提交評論