對軟件需求的深刻理解是成功開發的前提和關鍵。
開發軟件系統最困難的部分是準確解釋要開發什麽,最困難的概念性工作是寫下詳細的需求,包括用戶、機器和其他軟件系統的所有界面。
壹旦這項工作做錯了,將會給系統帶來巨大的破壞,並且在將來修改它將是極其困難的。
二、結構化分析的核心思想
分解和簡化問題
物理和邏輯表示是分離的。
抽象數據和邏輯。
三、結構化分析的具體步驟
發現需求
與用戶交談並向他們提問;
訪問用戶的工作流程,觀察用戶的操作;
向用戶組發送調查問卷;
與同行和專家交談,聽取他們的意見;
分析現有的類似軟件產品並提取需求;
從行業標準和規則中提取需求;
從互聯網上搜索相關信息等。
改善
對初始需求的反復完善和細化。
制作模型
建立壹個模型,用圖形符號和組織規則以書面形式描述事物。
模型核心:數據字典
描述軟件使用和生成的所有數據對象。
數據模型:實體關系圖(E-R圖)的表示
描述數據對象之間的關系
圖表中數據對象的屬性由“數據對象描述”表示
功能模型:DFD表達式
描述軟件中的數據移動、轉換和相應功能。
圖中的工作可以用“過程規範”來表示
行為模型:狀態轉換圖
描述系統狀態和不同狀態之間的轉換模式。
圖中軟件控制的附加信息由“控制規範”表示
規範
編寫軟件需求規範作為分析階段的最終結果。
復試
3.1數據模型
數據模型組成
數據對象
軟件必須理解的復合信息意味著復合信息是具有壹系列不同特性或屬性的東西。
交易(報告)、位置(倉庫)、角色(教師、學生)、單位(會計部門)、行為(電話)等。
數據對象之間的關系
對象相互連接方式,也稱為接觸。
有三類:1: 1 1: n m: n。
屬性
定義數據對象屬性。
數據對象學生的屬性可以是學號、姓名、班級等。
實體關系圖
在此插入圖片描述。
例子
請設計壹個倉庫管理的ER模型,該模型主要管理零件的訂購和供應。倉庫向項目供應零件,並根據需要從供應商處訂購零件。
“零件”的主要屬性有:零件號、零件名稱、顏色和重量。
“工程項目”的屬性主要有:項目編號、項目名稱、開工日期。
“供應商”的屬性主要包括:供應商編號、供應商名稱和地址。
在此插入圖片描述。
3.2數據流圖
數據流圖(DFD)描述了系統的邏輯模型,圖中沒有具體的物理元素,只是描述了信息在系統中的流動和處理。
它是通信工具和軟件設計的壹個非常好的起點。
3.2.1數據流圖符號
四個基本符號:
正方形(或立方體):表示數據的源點或終點。
在此插入圖片描述。
圓角矩形(或圓形):表示對轉換數據的處理。
在此插入圖片描述。
空心矩形(兩條平行的水平線):表示數據存儲。
在此插入圖片描述。
箭頭:表示數據流的方向,即特定數據的流向。
在此插入圖片描述。
數據流圖的附加符號
在此插入圖片描述。
數據流圖示例
模型
工廠采購部的采購員每天都需要壹份訂單報告,其中根據零件編號列出了需要訂購的零件。
列出訂購零件的以下數據:零件編號、名稱、訂單數量、當前價格、主要和次要供應商等。
進出倉庫的零件稱為交易,交易通過倉庫終端報告給訂購系統。零件庫存小於庫存臨界值。
解決方案:
從問題描述中提取數據流圖的四個組成部分
首先考慮來源和目的地。
來源點:倉庫管理員
終點:買方
重新考慮處理
處理:處理交易、生成報告等。
最後,考慮數據流和數據存儲。
數據流:交易、訂單信息和訂單報告。
數據存儲:訂購信息和庫存信息。
著手繪制數據流程圖的基本系統模型
在此插入圖片描述。
細化基本系統模型並描述系統的主要功能。
在此插入圖片描述。
主要功能進壹步細化
在此插入圖片描述。
當結束和進壹步分解涉及如何實現功能時,不應再進行分解。