




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程學中國科學技術大學網絡學院軟件工程學中國科學技術大學網絡學院3.1軟件需求分析的任務和過程3.2結構化分析方法3.3原型化方法3.4動態分析方法3.5數據和數據庫需求第3章需求分析3.1軟件需求分析的任務和過程第3章需求分析3.1軟件需求分析的任務深入描述軟件的功能和性能確定軟件設計的約束和軟件同其它系統元素的接口細節定義軟件的其它有效性需求3.1軟件需求分析的任務深入描述軟件的功能和性能需求分析研究的對象是軟件項目的用戶要求準確地表達被接受的用戶要求確定被開發軟件系統的系統元素將功能和信息結構分配到這些系統元素中需求分析研究的對象是軟件項目的用戶要求需求分析的任務
就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的“做什么”的問題。需求分析的任務通常軟件開發項目是要實現目標系統的物理模型目標系統的具體物理模型是由它的邏輯模型經實例化,即具體到某個業務領域而得到的通常軟件開發項目是要實現目標系統的物理模型需求分析的過程(1)問題識別從系統的角度來理解軟件并評審軟件范圍是否恰當確定對目標系統的綜合要求,即軟件的需求提出這些需求實現條件,以及需求應達到的標準需求分析的過程(1)問題識別軟件的需求包括:功能需求性能需求環境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發進度需求預先估計以后系統可能達到的目標軟件的需求包括:功能需求資源使用需求問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利地對問題進行分析。問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利(2)分析與綜合從信息流和信息結構出發,逐步細化所有的軟件功能,找出系統各元素之間的聯系、接口特性和設計上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統的解決方案,給出目標系統的詳細邏輯模型。(2)分析與綜合常用的分析方法面向數據流的結構化分析方法(SA)面向數據結構的Jackson方法(JSD)面向數據結構的結構化數據系統開發方法(DSSD)面向對象的分析方法(OOA)等常用的分析方法面向數據流的結構化分析方法(SA)(3)編制需求分析階段的文檔軟件需求說明書數據要求說明書初步的用戶手冊修改、完善與確定軟件開發實施計劃(3)編制需求分析階段的文檔(4)需求分析評審系統定義的目標是否與用戶的要求一致;系統需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準確反映用戶要求;與所有其它系統成分的重要接口是否都已經描述;(4)需求分析評審系統定義的目標是否與用戶的要求一致;被開發項目的數據流與數據結構是否足夠,確定;所有圖表是否清楚,在不補充說明時能否理解;主要功能是否已包括在規定的軟件范圍之內,是否都已充分說明;設計的約束條件或限制條件是否符合實際;開發的技術風險是什么;被開發項目的數據流與數據結構是否足夠,確定;是否考慮過軟件需求的其它方案;是否考慮過將來可能會提出的軟件需求;是否詳細制定了檢驗標準,它們能否對系統定義是否成功進行確認;是否考慮過軟件需求的其它方案;需求分析流程需求分析流程軟件需求分析的原則需要能夠表達和理解問題的信息域和功能域要能以層次化的方式對問題進行分解和不斷細化要給出系統的邏輯視圖和物理視圖軟件需求分析的原則需要能夠表達和理解問題的信息域和功能域軟件工程需求分析課件軟件需求規格說明的原則從現實中分離功能,即描述要“做什么”而不是“怎樣實現”要求使用面向處理的規格說明語言(或稱系統定義語言)如果被開發軟件只是一個大系統中的一個元素,那么整個大系統也包括在規格說明的描述之中軟件需求規格說明的原則從現實中分離功能,即描述要“做什么”而規格說明必須包括系統運行環境規格說明必須是一個認識模型規格說明必須是可操作的規格說明必須容許不完備性并允許擴充規格說明必須局部化和松散耦合規格說明必須包括系統運行環境軟件需求方法需求分析方法由對軟件問題的信息域和功能域的系統分析過程及其表示方法組成大多數的需求分析方法是由信息驅動的信息域具有三種屬性:信息流、信息內容和信息結構。軟件需求方法需求分析方法由對軟件問題的信息域和功能域的系統分3.2結構化分析方法
面向數據流進行需求分析的方法結構化分析方法適合于數據處理類型軟件的需求分析具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現的軟件為止3.2結構化分析方法面向數據流進行需求分析的方法結構化分析方法使用工具:
數據流圖數據詞典結構化英語判定表與判定樹結構化分析方法使用工具:數據流圖數據流圖中的主要圖形元素數據加工(數據變換)數據源點或終點(外部實體)數據流數據存儲文件數據流圖數據流圖中的主要圖形元素數據加工(數據變換)數據源描述銀行取款過程的數據流圖描述銀行取款過程的數據流圖數據流與數據加工之間的關系數據流與數據加工之間的關系數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采用層次結構的數據流圖。按照系統的層次結構進行逐步分解,并以分層的數據流圖反映這種結構關系,能清楚地表達和容易理解整個系統數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采分層的數據流圖分層的數據流圖在多層數據流圖中,頂層流圖僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統所輸出數據底層流圖是指其加工不需再做分解的數據流圖,它處在最底層中間層流圖則表示對其上層父圖的細化。它的每一加工可能繼續細化,形成子圖。在多層數據流圖中,頂層流圖僅包含一個加工,它代表被開發系統。結構化分析方法步驟示例
商店業務處理系統結構化分析方法步驟示例
商店業務處理系統這個數據流圖只是一個高層的系統邏輯模型,它反映了目標系統要實現的功能數據流圖繪制步驟首先確定系統的輸入和輸出根據商店業務,畫出頂層數據流圖,以反映最主要業務處理流程這個數據流圖只是一個高層的系統邏輯模型,它反映了目標系統要實經過分析,商店業務處理的主要功能應當有銷售、采購、會計三大項。主要數據流輸入的源點和輸出終點是顧客和供應商。然后從輸入端開始,根據商店業務工作流程,畫出數據流流經的各加工框,逐步畫到輸出端,得到第一層數據流圖經過分析,商店業務處理的主要功能應當有銷售、采購、會計三大第一層數據流圖第一層數據流圖加細每一個加工框 銷售細化加細每一個加工框 銷售細化采購細化采購細化檢查和修改數據流圖的原則數據流圖上所有圖形符號只限于前述四種基本圖形元素數據流圖的主圖必須包括前述四種基本元素,缺一不可數據流圖的主圖上的數據流必須封閉在外部實體之間每個加工至少有一個輸入數據流和一個輸出數據流檢查和修改數據流圖的原則數據流圖上所有圖形符號只限于前述四種在數據流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關系規定任何一個數據流子圖必須與它上一層的一個加工對應,兩者的輸入數據流和輸出數據流必須一致。此即父圖與子圖的平衡可以在數據流圖中加入物質流,幫助用戶理解數據流圖在數據流圖中,需按層給加工框編號。編號表明該加工所處層次及上圖上每個元素都必須有名字數據流圖中不可夾帶控制流初畫時可以忽略瑣碎的細節,以集中精力于主要數據流圖上每個元素都必須有名字數據詞典數據詞典與數據流圖配合,能清楚地表達數據處理的要求詞條描述——對于在數據流圖中每一個被命名的圖形元素,均加以定義,其內容有:名字,別名或編號,分類,描述,定義,位置,其它,等數據詞典數據詞典與數據流圖配合,能清楚地表達數據處理的要求(1)數據流詞條描述數據流名:說明:簡要介紹作用即它產生的原因和結果數據流來源:來自何方數據流去向:去向何處數據流組成:數據結構數據量流通量:數據量,流通量(1)數據流詞條描述數據流名:(2)數據元素詞條描述數據元素名:類型:數字(離散值,連續值),文字(編碼類型)長度:取值范圍:相關的數據元素及數據結構:(2)數據元素詞條描述數據元素名:(3)數據文件詞條描述數據文件名:簡述:存放的是什么數據輸入數據:輸出數據:數據文件組成:數據結構存儲方式:順序,直接,關鍵碼存取頻率:(3)數據文件詞條描述數據文件名:(4)加工邏輯詞條描述加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入數據流:輸出數據流:加工邏輯:簡述加工程序,加工順序(4)加工邏輯詞條描述加工名:(5)源點及匯(終)點詞條描述名稱:外部實體名簡要描述:什么外部實體有關數據流:數目:(5)源點及匯(終)點詞條描述名稱:外部實體名數據結構的描述
符號
含義
舉例=被定義為+與
x=a+b[...,...]或[...|...]或
x=[a,b],x=[a|b]{...}或m{...}n重復
x={a},x=3{a}8(...)可選
x=(a)“...”基本數據元素
x=“a”.. 連結符
x=1..9數據結構的描述符號 含義 存折格式存折格式存折=戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}50戶名=2{字母}24所號=“001”..“999”帳號=“00000001”..“99999999”開戶日=年+月+日性質=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復核存折=戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}
對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數據流變換為輸出數據流的加工規則加工邏輯說明必須描述實現加工的策略而不是實現加工的細節加工邏輯說明中包含的信息應是充足的,完備的,有用的,無冗余的基本加工邏輯說明對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明基本用于寫加工邏輯說明的工具結構化英語判定表判定樹用于寫加工邏輯說明的工具結構化英語(1)結構化英語結構化英語的詞匯表由英語命令動詞數據詞典中定義的名字有限的自定義詞邏輯關系詞IF_THEN_ELSE、
CASE_OF、
WHILE_DO、
REPEAT_UNTIL等組成。(1)結構化英語結構化英語的詞匯表由是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述句結構:避免復合語句;重復結構:while_do
或
repeat_until結構。判定結構:if_then_else
或
case_of結構;是一種介于自然語言和形式化語言之間的語言商店業務處理系統中“檢查發貨單”if發貨單金額超過$500then
if
欠款超過了60天then
在償還欠款前不予批準
else
(欠款未超期)發批準書,發貨單else
(發貨單金額未超過$500)
if
欠款超過60天then
發批準書,發貨單及賒欠報告
else
(欠款未超期)發批準書,發貨單商店業務處理系統中“檢查發貨單”if發貨單金額超過$500(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,以“檢查發貨單”為例以“檢查發貨單”為例軟件工程需求分析課件(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。檢查發貨單金額>$500金額$500欠款>60天不發出批準書欠款60天發貨單發出批準書、欠款>60天發出批準書、發貨單及賒欠報告欠款60天發出批準書、發貨單(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比3.3原型化方法在開發初期,要想得到一個完整準確的規格說明不是一件容易的事。特別是對一些大型的軟件項目。用戶往往對系統只有一個模糊的想法,很難完全準確地表達對系統的全面要求。軟件開發者對于所要解決的應用問題認識更是模糊不清3.3原型化方法在開發初期,要想得到一個完整準確的規格說明不隨著開發工作向前推進,用戶可能會產生新的要求,或因環境變化,要求系統也能隨之變化;開發者又可能在設計與實現的過程中遇到些沒有預料到的實際困難,需要以改變需求來解脫困境。因此規格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會成為軟件開發順利推進的障礙。為解決這些問題,逐漸形成了軟件系統的快速原型的概念。隨著開發工作向前推進,用戶可能會產生新的要求,或因環境變化,軟件原型的分類在軟件開發中,原型是軟件的一個早期可運行的版本,它反映最終系統的部分重要特性。
探索型:目的是要弄清對目標系統的要求,確定所希望的特性,并探討多種方案的可行性。軟件原型的分類在軟件開發中,原型是軟件的一個早期可運行的版本
實驗型:這種原型用于大規模開發和實現之前,考核方案是否合適,規格說明是否可靠。
進化型:這種原型的目的不在于改進規格說明,而是將系統建造得易于變化,在改進原型的過程中,逐步將原型進化成最終系統。實驗型:這種原型用于大規模開發和實現之前,考核方案是否合適原型使用策略廢棄策略追加策略原型使用策略廢棄策略建立快速原型,進行系統的分析和構造的好處:增進軟件者和用戶對系統服務需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學習手段。建立快速原型,進行系統的分析和構造的好處:增進軟件者和用戶
使用原型化方法,可以容易地確定系統的性能,確認各項主要系統服務的可應用性,確認系統設計的可行性,確認系統作為產品的結果。軟件原型的最終版本,有的可以原封不動地成為產品,有的略加修改就可以成為最終系統的一個組成部分,這樣有利于建成最終系統。使用原型化方法,可以容易地確定系統的性能,確認各項主要系統軟件工程需求分析課件
原型開發技術可執行規格說明基于腳本(scenario)的設計自動程序設計專用語言可復用(reusable)的軟件簡化假設原型開發技術可執行規格說明可執行規格說明可執行規格說明是用于需求規格說明的一種自動化技術。使用這種方法,人們可以直接觀察他們用語言規定的任何系統性行為。包括
代數規格說明
有限狀態模型
可執行的數據流圖可執行規格說明可執行規格說明是用于需求規格說明的一種自動化技(1)代數規格說明代數規格說明使用集合、定義于這些集合上的函數和定義于這些函數上的方程來描述對象。規格說明的操作語義用這些方程表示。(1)代數規格說明代數規格說明使用集合、定義于這些集合上的函
NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(stk,elem))=elem其中,前三行定義了操作的語法,后兩行把它們的語義定義為一些方程。舉例:定義一個無界的棧及其操作NEW_STACK:→Stack舉例:定(2)有限狀態模型parnas提出的使用最廣泛的一種可執行規格說明形式。從一個初始狀態開始接收輸入,到產生輸出,狀態在推移變化。施加在狀態元素上的約束確定了有效狀態的推移。(2)有限狀態模型parnas提出的使用最廣泛的一種可執行規舉例:建立用戶/程序對話舉例:建立用戶/程序對話(3)可執行的數據流圖數據流圖是基于結構化開發方法的結構化規格說明用一種可執行的語言程序代替定義處理邏輯的結構化英語,數據流圖就成為由可執行語言程序模塊組成的網絡,在一定環境或工具的支持下就可成為一個可以執行的原型系統。(3)可執行的數據流圖數據流圖是基于結構化開發方法的結構化規基于腳本的設計腳本是指用戶界面的原型。一個腳本用以模擬在系統運行期間用戶經歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關對話的模型。因此,軟件開發者能夠給用戶顯示系統的逼真的視圖,使用戶得以判斷是否符合他的意圖。基于腳本的設計腳本是指用戶界面的原型。一個腳本用以模擬在系統可在任一腳本中使用一套可復用的軟件模塊,以表達某一方面的要求。可使用一種原型語言來描述原型系統。原型開發過程中用這種語言來定義屏幕、數據項、及其相關的操作。從系統的外部描述開始,開發與數據庫的接口、錯誤處理和恢復過程等系統的與外部視圖一致的細節。可在任一腳本中使用一套可復用的軟件模塊,以表達某一方面的要求自動程序設計自動程序設計是指在程序自動生成環境的支持下,利用計算機實現軟件的開發。它可以自動地或半自動地把用戶的非過程式問題規格說明轉換為某種高級語言程序:
演繹綜合手段:基于數學推理的構造式證明。自動程序設計自動程序設計是指在程序自動生成環境的支持下,利用程序變換手段:將一程序轉換成另一功能等價的程序,并保持其正確性不變。實例推廣手段:從實例特征出發,將它推廣為待編程序的特征,最后得到程序。
過程化手段:研究甚高級語言的編譯和知識的過程化。程序變換手段:專用語言專用語言是應用領域的模型化語言。在原型開發中使用專用語言,可方便用戶和軟件開發者在計劃中的系統特性方面的交流。專用語言專用語言是應用領域的模型化語言。在原型開發中使用專用軟件復用技術利用可復用的模塊,做出適當的組合,就可得到快速構造的原型系統。為了快速地構造原型,這些模塊首先必須有簡單而清晰的界面;其次它們應當盡量不依賴其它的模塊或數據結構;第三,它們應具有一些通用的功能。軟件復用技術利用可復用的模塊,做出適當的組合,就可得到快速構簡化假設簡化假設是在開發過程中使設計者迅速得到一個簡化的系統所做的假設。盡管這些假設可能實際上并不能成立,但它們在原型開發過程中可以使開發者的注意力集中在一些主要的方面。簡化假設簡化假設是在開發過程中使設計者迅速得到一個簡化的系統在修改一個文件時,可以假設這個文件確實存在在存取文件時,待存取的記錄總是存在一旦計劃中的系統滿足用戶所有的要求,就可以撤消這些假設,并追加一些細節。在修改一個文件時,可以假設這個文件確實存在系統動態分析系統的需求規格說明通常是用自然語言來敘述的,但是用自然語言描述往往會出現歧義性。為了直觀地分析系統的動作,從特定的視點出發描述系統的行為,需要采用動態分析的方法。系統動態分析系統的需求規格說明通常是用自然語言來敘述的,但是3.4最常用的動態分析方法狀態遷移圖時序圖Petri網3.4最常用的動態分析方法狀態遷移圖狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推移的一種圖形表示。
圓圈“○”表示可得到的系統狀態
箭頭“→”表示從一種狀態向另一種狀態的遷移。狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推例如,當有多個申請占用CPU運行的進程時,有關CPU分配的進程的狀態遷移。例如,當有多個申請占用CPU運行的進程時,有關CPU分可得到的狀態=就緒,運行,等待生成的事件=t1,t2,
t3,
t4t1─
中斷事件
t2─
中斷已處理t3─
分配CPUt4─
用完CPU時間可得到的狀態=就緒,運行,等待狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到由于狀態遷移圖的單純性,能夠機械地分析許多情況,可很容易地建立分析工具狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到在系統分析中,用時序圖于對比在系統中處理事件的時序和相應的處理時間。在右圖中,對于事件e,功能1~功能3
的處理時間總計為(T1
+T2+T3)其中功能間切換時間0。時序圖在系統分析中,用時序圖于對比在系統中處理事件的時序和相應的處采用擴充時序圖可表示進程間的通信流,用于分析幾個事件的交錯現象。,C1與C2,R1與R2是交錯的。因此,可以做如下分析:“必須設計成HOST1在等待C1的回答R1期間要能接收從HOST2發出的命令C2。”采用擴充時序圖可表示進程間的通信流,用于分析幾個事件Petri網
Petri網已廣泛地應用于硬件與軟件系統的開發中,它適用于描述與分析相互獨立、協同操作的處理系統,也就是并發執行的處理系統。Petri網Petri網已廣泛地應用于硬件與軟件系統的開Petri網簡稱PNG(PetriNetGraph),它有兩種結點:位置(place):符號為“○”,它用來表示系統的狀態。轉移(transition):符號為“”,它用來表示系統中的事件。
圖中的有向邊表示對轉移的輸入,或由轉移的輸出Petri網簡稱PNG(PetriNetGraph),標記,或稱令牌(token),是表明系統當前處于什么狀態的標志標記,或稱令牌(token),是表明系統當前處于什么狀態的標軟件工程需求分析課件軟件工程需求分析課件
處理兩個進程的同步問題
處理兩個進程的同步問題 軟件工程需求分析課件3.5數據及數據庫需求在數據詞典中,強調對數據存儲結構的邏輯設計,并用數據結構表達數據項之間的邏輯關系。但任何一個軟件系統都可能有成千上萬個數據項,僅僅描述這些數據項是不夠的,更重要的是如何把它們以最優的方式組織起來,以滿足系統對數據的要求。3.5數據及數據庫需求在數據詞典中,強調對數據存儲結構的邏輯有關數據庫的基本概念在軟件系統中需要處理的數據是現實世界中存在的事物及其聯系的反映。人們通常將與數據處理有關的的領域分為三個世界:
現實世界信息世界數據世界有關數據庫的基本概念在軟件系統中需要處理的數據是現實世界中存現實世界是存在于人們頭腦之外的客觀世界,現實世界中的事物可分成對象和性質兩大類。對象可以是人、是物,還可以是實際的東西或概念的東西,例如,大學、城市等。對象還可以指事物與事物間的聯系。性質則是指事物的性質或特征。現實世界是存在于人們頭腦之外的客觀世界,現實世界中的事物可分信息世界也叫做觀念世界,是現實世界在人們頭腦中的反映。客觀世界中的事物在信息世界中叫做實體,反映事物之間聯系的叫做實體模型。實體是由若干屬性的屬性值組成。屬性是實體某一方面的特征,相應于事物的性質。例如,一個學生實體是如下的一個5元組:(951149,袁秋慧,女,19,軟件)信息世界也叫做觀念世界,是現實世界在人們頭腦中的反映。(95元組中每一元素是學生的某一屬性的屬性值。他們對應的屬性集合是:這些屬性集合表征了“學生”實體的類型,叫做實體型。同一類型的實體的集合叫做實體集。數據世界則是信息世界中信息的數據化,現實世界中的事物及其聯系在數據世界中用數據模型描述。(學號,姓名,性別,年齡,專業)5元組中每一元素是學生的某一屬性的屬性值。他們對應的屬性集合描述每一實體的數據稱為記錄,描述屬性的數據叫做數據項或字段。與實體集相對應的稱為文件。例如,學生文件就由多個記錄組成,這些記錄放在一起構成一個二維表。表中每一橫排叫做一個記錄或元組,每一縱列叫做一個屬性。描述每一實體的數據稱為記錄,描述屬性的數據叫做數據項或字段。
記錄由數據項組成,正如實體由若干屬性的屬性值組成一樣。一般數據項沿用屬性名。用做屬性名時表示觀念信息,用做數據項名時表示數據信息。每個數據項包括兩個特征:即數據類型和數據長度。若干同類型的記錄構成文件。為了對文件中的記錄有效組織和存取,通常指定一個數據項進行區別,這個數據項叫做關鍵字。記錄由數據項組成,正如實體由若干屬性的屬性值組成一樣。E-R方法(Entity-RelationshipApproach)和實體模型在需求分析階段進行數據庫邏輯設計過程中,使用E-R圖,可定義一個實體模型。實體模型是現實世界的純表示,它不涉及數據世界的數據結構、存取路徑、存取效率等問題。因此,它可以轉換成數據庫中的數據模型。E-R方法(Entity-RelationshipAp數據可以按相應數據模型進行組織。E-R圖中表示實體聯系的符號如下:數據可以按相應數據模型進行組織。在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實體之間,或實體與屬性之間的聯系。出現在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學管理中,一個教師可以教授零門、一門或多門課程,每位學生也需要學習幾門課程。因此,教學管理中涉及的對象(實體型)有學生、教師和課程。在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實用E-R圖描述它們之間的聯系,得下圖。其中,學生與課程是多對多的聯系,而教師與課程的聯系是零、一對多。用E-R圖描述它們之間的聯系,得下圖。其中,學生與課程是多對進一步,要確定屬性。例如,學生具有學號、姓名、性別、年齡、專業(其它略)等屬性;課程具有課程號、課程名、學分、學時數等屬性;教師具有職工號、姓名、年齡、職稱等屬性。此外,學生通過學號、分數與課程發生聯系。如此可得教學實體模型。進一步,要確定屬性。例如,教學實體模型教學實體模型數據結構的規范化信息域分析需要確定數據的內容,每個數據項要用表格列出,最后組織成文件的邏輯結構,即面向應用而不是面向存儲的結構。為了便于數據庫的設計,常常要對這種結構做一些簡化,其中最常見的一種方法就是規范化技術。數據結構的規范化信息域分析需要確定數據的內容,每個數據項要用“規范化”將數據的邏輯結構歸結為滿足一定條件的二維表(關系)。
表格中每個信息項必須是一個不可分割的數據項,不可是組項。
表格中每一列(列表示屬性)中所有信息項必須是同一類型,各列的名字(屬性名)互異,列的次序任意。
表格中各行(行表示元組)互不相同,行的次序任意。“規范化”將數據的邏輯結構歸結為滿足一定條件的二維表(關系)不滿足上述要求的二維表或關系,叫做非規范化關系。對于非規范化的關系,必須將它規范化,即利用更單純、更規則的關系來代替原來的關系。規范化的目的是:
消除數據冗余,即消除表格中數據的重復;消除多義性,使關系中的屬性含義清楚、單一;不滿足上述要求的二維表或關系,叫做非規范化關系。對于非規范化使關系的“概念”單一化,讓每個數據項只是一個簡單的數或字符串,而不是一個組項或重復組;方便操作。使數據的插入、刪除與修改操作可行并方便;使關系模式更靈活,易于實現接近自然語言的查詢方式。使關系的“概念”單一化,讓每個數據項只是一個簡單的數或字符串用教學管理例說明如何規范化有三個實體型,即課程、學生和教師,用三個關系保存它們的信息:
學生(學號,姓名,性別,年齡,專業,籍貫)
教師(職工號,姓名,年齡,職稱,工資級別,工資)
課程(課程號,課程名,學分,學時,課程類型)用教學管理例說明如何規范化有三個實體型,即課程、學生和教師,為表示實體型之間的聯系,又建立兩個關系:
選課
(學號,課程號,聽課出勤率,作業完成率,分數)
教課
(職工號,課程號)這五個關系,組成了數據庫的模型。在每個關系中,屬性名下加下劃線)指明關鍵字。并規定關鍵字能唯一地標識一個元組。為表示實體型之間的聯系,又建立兩個關系:關系規范化的程度,通常按屬性間的依賴程度來區分,并以范式NF(NormalForm)來表達。常用的范式分為第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。設R是一個關系,X和Y是R中的兩個屬性。若對于X的任一個值,Y僅有一個值與之對應,則稱R的屬性Y函數依賴于屬性X。例如,關系規范化的程度,通常按屬性間的依賴程度來區分,并以范式N教師(職工號,姓名,年齡,)其中,屬性“姓名”,“年齡”等都函數依賴于屬性“職工號”。屬性X可以是復合屬性,如:選課(學號,課程號,聽課出勤率,)教師(職工號,姓名,年齡,)如果屬性Y函數依賴于復合屬性X,而不與X的任何真子集函數依賴,則稱屬性Y完全函數依賴于復合屬性X。例如在“選課”關系中,屬性“聽課出勤率”、“作業完成率”和“分數”等表示某個學生學習某門課程時的學習情況。只有同時指定“學號”和“課程號”,才能準確地說明是哪位學生學習哪門課程時的學習情況。如果屬性Y函數依賴于復合屬性X,而不與X的任何真子集函數依賴因此,“分數”等屬性完全函數依賴于“學號,課程號”。判斷規范化程度的條件是:關系中所有屬性都是“單純域”,即不出現“表中有表”非主屬性完全函數依賴于關鍵字非主屬性相互獨立,即任何非主屬性間不存在函數依賴。如果一個關系連條件
都不滿足,則這個關系是非規范化的。因此,“分數”等屬性完全函數依賴于“學號,課程號”。如果一個關系僅滿足條件
,則這個關系滿足第一范式(1NF)。如果一個關系滿足條件、,但不滿足,則這個關系滿足第二范式(2NF)。如果一個關系同時滿足條件
、和,則這個關系表滿足第三范式(3NF)。當數據模型達到3NF,一般情況下就能滿足數據庫應用的需要。如果一個關系僅滿足條件,則這個關系滿足第一范式(1NF數據庫分析的過程在需求分析階段進行數據庫分析的流程數據庫分析的過程在需求分析階段進行數據庫分析的流程為開發一個系統所使用的數據庫,在開始分析數據庫的需求前,分析員必須了解該系統的總目標和范圍。然后建立一個完整并高度細化的信息模型。此信息模型應包括一個綜合的數據詞典,定義所有在開發數據庫時用到的數據項。接著數據庫分析定義數據庫的邏輯特性和物理特性。為開發一個系統所使用的數據庫,在開始分析數據庫的需求前,分析以信息模型和系統規格說明為指導,定義數據庫的邏輯數據結構。這種邏輯結構必須適應數據存取、修改、關聯性及其它相關需求。一旦邏輯數據結構建立起來,就可以研制數據庫的物理結構。物理數據庫結構定義文件結構、記錄格式、與硬件相關的處理方式以及數據庫管理系統的特性。以信息模型和系統規格說明為指導,定義數據庫的邏輯數據結構。最后,要對模式和物理特性進行完全的評審。在數據庫分析過程中所考慮的因素間存在著復雜的相互聯系。改變其中的任何一個因素都會(潛在地)影響其它的因素。所以必須在各個因素之間進行折衷。這種折衷包括專用性和通用性的折衷,信息關聯程度、擴充潛力及操作特性等方面的折衷。最后,要對模式和物理特性進行完全的評審。考慮信息關聯程度和擴充潛力(包括信息規模和信息內容兩方面)主要基于需求分析和設計階段分派給數據庫的專用性程度。專用的數據庫要為系統特定的信息需求服務,因此信息結構要設計得能適應要求的關聯性和預計的擴充。通用的數據庫可以適應更為廣泛的各種信息需求,但是為了獲得通用性要付出代價。考慮信息關聯程度和擴充潛力(包括信息規模和信息內容兩方面)主操作特性根據折衷的結果而定。數據庫的結構、規模和邏輯設計都會對它的物理組織、硬件、存取方式以及性能產生重要的影響。操作特性根據折衷的結果而定。數據庫的結構、規模和邏輯設計都會知識回顧KnowledgeReview祝您成功!知識回顧KnowledgeReview祝您成功!軟件工程學中國科學技術大學網絡學院軟件工程學中國科學技術大學網絡學院3.1軟件需求分析的任務和過程3.2結構化分析方法3.3原型化方法3.4動態分析方法3.5數據和數據庫需求第3章需求分析3.1軟件需求分析的任務和過程第3章需求分析3.1軟件需求分析的任務深入描述軟件的功能和性能確定軟件設計的約束和軟件同其它系統元素的接口細節定義軟件的其它有效性需求3.1軟件需求分析的任務深入描述軟件的功能和性能需求分析研究的對象是軟件項目的用戶要求準確地表達被接受的用戶要求確定被開發軟件系統的系統元素將功能和信息結構分配到這些系統元素中需求分析研究的對象是軟件項目的用戶要求需求分析的任務
就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的“做什么”的問題。需求分析的任務通常軟件開發項目是要實現目標系統的物理模型目標系統的具體物理模型是由它的邏輯模型經實例化,即具體到某個業務領域而得到的通常軟件開發項目是要實現目標系統的物理模型需求分析的過程(1)問題識別從系統的角度來理解軟件并評審軟件范圍是否恰當確定對目標系統的綜合要求,即軟件的需求提出這些需求實現條件,以及需求應達到的標準需求分析的過程(1)問題識別軟件的需求包括:功能需求性能需求環境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發進度需求預先估計以后系統可能達到的目標軟件的需求包括:功能需求資源使用需求問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利地對問題進行分析。問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利(2)分析與綜合從信息流和信息結構出發,逐步細化所有的軟件功能,找出系統各元素之間的聯系、接口特性和設計上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統的解決方案,給出目標系統的詳細邏輯模型。(2)分析與綜合常用的分析方法面向數據流的結構化分析方法(SA)面向數據結構的Jackson方法(JSD)面向數據結構的結構化數據系統開發方法(DSSD)面向對象的分析方法(OOA)等常用的分析方法面向數據流的結構化分析方法(SA)(3)編制需求分析階段的文檔軟件需求說明書數據要求說明書初步的用戶手冊修改、完善與確定軟件開發實施計劃(3)編制需求分析階段的文檔(4)需求分析評審系統定義的目標是否與用戶的要求一致;系統需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準確反映用戶要求;與所有其它系統成分的重要接口是否都已經描述;(4)需求分析評審系統定義的目標是否與用戶的要求一致;被開發項目的數據流與數據結構是否足夠,確定;所有圖表是否清楚,在不補充說明時能否理解;主要功能是否已包括在規定的軟件范圍之內,是否都已充分說明;設計的約束條件或限制條件是否符合實際;開發的技術風險是什么;被開發項目的數據流與數據結構是否足夠,確定;是否考慮過軟件需求的其它方案;是否考慮過將來可能會提出的軟件需求;是否詳細制定了檢驗標準,它們能否對系統定義是否成功進行確認;是否考慮過軟件需求的其它方案;需求分析流程需求分析流程軟件需求分析的原則需要能夠表達和理解問題的信息域和功能域要能以層次化的方式對問題進行分解和不斷細化要給出系統的邏輯視圖和物理視圖軟件需求分析的原則需要能夠表達和理解問題的信息域和功能域軟件工程需求分析課件軟件需求規格說明的原則從現實中分離功能,即描述要“做什么”而不是“怎樣實現”要求使用面向處理的規格說明語言(或稱系統定義語言)如果被開發軟件只是一個大系統中的一個元素,那么整個大系統也包括在規格說明的描述之中軟件需求規格說明的原則從現實中分離功能,即描述要“做什么”而規格說明必須包括系統運行環境規格說明必須是一個認識模型規格說明必須是可操作的規格說明必須容許不完備性并允許擴充規格說明必須局部化和松散耦合規格說明必須包括系統運行環境軟件需求方法需求分析方法由對軟件問題的信息域和功能域的系統分析過程及其表示方法組成大多數的需求分析方法是由信息驅動的信息域具有三種屬性:信息流、信息內容和信息結構。軟件需求方法需求分析方法由對軟件問題的信息域和功能域的系統分3.2結構化分析方法
面向數據流進行需求分析的方法結構化分析方法適合于數據處理類型軟件的需求分析具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現的軟件為止3.2結構化分析方法面向數據流進行需求分析的方法結構化分析方法使用工具:
數據流圖數據詞典結構化英語判定表與判定樹結構化分析方法使用工具:數據流圖數據流圖中的主要圖形元素數據加工(數據變換)數據源點或終點(外部實體)數據流數據存儲文件數據流圖數據流圖中的主要圖形元素數據加工(數據變換)數據源描述銀行取款過程的數據流圖描述銀行取款過程的數據流圖數據流與數據加工之間的關系數據流與數據加工之間的關系數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采用層次結構的數據流圖。按照系統的層次結構進行逐步分解,并以分層的數據流圖反映這種結構關系,能清楚地表達和容易理解整個系統數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采分層的數據流圖分層的數據流圖在多層數據流圖中,頂層流圖僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統所輸出數據底層流圖是指其加工不需再做分解的數據流圖,它處在最底層中間層流圖則表示對其上層父圖的細化。它的每一加工可能繼續細化,形成子圖。在多層數據流圖中,頂層流圖僅包含一個加工,它代表被開發系統。結構化分析方法步驟示例
商店業務處理系統結構化分析方法步驟示例
商店業務處理系統這個數據流圖只是一個高層的系統邏輯模型,它反映了目標系統要實現的功能數據流圖繪制步驟首先確定系統的輸入和輸出根據商店業務,畫出頂層數據流圖,以反映最主要業務處理流程這個數據流圖只是一個高層的系統邏輯模型,它反映了目標系統要實經過分析,商店業務處理的主要功能應當有銷售、采購、會計三大項。主要數據流輸入的源點和輸出終點是顧客和供應商。然后從輸入端開始,根據商店業務工作流程,畫出數據流流經的各加工框,逐步畫到輸出端,得到第一層數據流圖經過分析,商店業務處理的主要功能應當有銷售、采購、會計三大第一層數據流圖第一層數據流圖加細每一個加工框 銷售細化加細每一個加工框 銷售細化采購細化采購細化檢查和修改數據流圖的原則數據流圖上所有圖形符號只限于前述四種基本圖形元素數據流圖的主圖必須包括前述四種基本元素,缺一不可數據流圖的主圖上的數據流必須封閉在外部實體之間每個加工至少有一個輸入數據流和一個輸出數據流檢查和修改數據流圖的原則數據流圖上所有圖形符號只限于前述四種在數據流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關系規定任何一個數據流子圖必須與它上一層的一個加工對應,兩者的輸入數據流和輸出數據流必須一致。此即父圖與子圖的平衡可以在數據流圖中加入物質流,幫助用戶理解數據流圖在數據流圖中,需按層給加工框編號。編號表明該加工所處層次及上圖上每個元素都必須有名字數據流圖中不可夾帶控制流初畫時可以忽略瑣碎的細節,以集中精力于主要數據流圖上每個元素都必須有名字數據詞典數據詞典與數據流圖配合,能清楚地表達數據處理的要求詞條描述——對于在數據流圖中每一個被命名的圖形元素,均加以定義,其內容有:名字,別名或編號,分類,描述,定義,位置,其它,等數據詞典數據詞典與數據流圖配合,能清楚地表達數據處理的要求(1)數據流詞條描述數據流名:說明:簡要介紹作用即它產生的原因和結果數據流來源:來自何方數據流去向:去向何處數據流組成:數據結構數據量流通量:數據量,流通量(1)數據流詞條描述數據流名:(2)數據元素詞條描述數據元素名:類型:數字(離散值,連續值),文字(編碼類型)長度:取值范圍:相關的數據元素及數據結構:(2)數據元素詞條描述數據元素名:(3)數據文件詞條描述數據文件名:簡述:存放的是什么數據輸入數據:輸出數據:數據文件組成:數據結構存儲方式:順序,直接,關鍵碼存取頻率:(3)數據文件詞條描述數據文件名:(4)加工邏輯詞條描述加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入數據流:輸出數據流:加工邏輯:簡述加工程序,加工順序(4)加工邏輯詞條描述加工名:(5)源點及匯(終)點詞條描述名稱:外部實體名簡要描述:什么外部實體有關數據流:數目:(5)源點及匯(終)點詞條描述名稱:外部實體名數據結構的描述
符號
含義
舉例=被定義為+與
x=a+b[...,...]或[...|...]或
x=[a,b],x=[a|b]{...}或m{...}n重復
x={a},x=3{a}8(...)可選
x=(a)“...”基本數據元素
x=“a”.. 連結符
x=1..9數據結構的描述符號 含義 存折格式存折格式存折=戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}50戶名=2{字母}24所號=“001”..“999”帳號=“00000001”..“99999999”開戶日=年+月+日性質=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復核存折=戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}
對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數據流變換為輸出數據流的加工規則加工邏輯說明必須描述實現加工的策略而不是實現加工的細節加工邏輯說明中包含的信息應是充足的,完備的,有用的,無冗余的基本加工邏輯說明對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明基本用于寫加工邏輯說明的工具結構化英語判定表判定樹用于寫加工邏輯說明的工具結構化英語(1)結構化英語結構化英語的詞匯表由英語命令動詞數據詞典中定義的名字有限的自定義詞邏輯關系詞IF_THEN_ELSE、
CASE_OF、
WHILE_DO、
REPEAT_UNTIL等組成。(1)結構化英語結構化英語的詞匯表由是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述句結構:避免復合語句;重復結構:while_do
或
repeat_until結構。判定結構:if_then_else
或
case_of結構;是一種介于自然語言和形式化語言之間的語言商店業務處理系統中“檢查發貨單”if發貨單金額超過$500then
if
欠款超過了60天then
在償還欠款前不予批準
else
(欠款未超期)發批準書,發貨單else
(發貨單金額未超過$500)
if
欠款超過60天then
發批準書,發貨單及賒欠報告
else
(欠款未超期)發批準書,發貨單商店業務處理系統中“檢查發貨單”if發貨單金額超過$500(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,以“檢查發貨單”為例以“檢查發貨單”為例軟件工程需求分析課件(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。檢查發貨單金額>$500金額$500欠款>60天不發出批準書欠款60天發貨單發出批準書、欠款>60天發出批準書、發貨單及賒欠報告欠款60天發出批準書、發貨單(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比3.3原型化方法在開發初期,要想得到一個完整準確的規格說明不是一件容易的事。特別是對一些大型的軟件項目。用戶往往對系統只有一個模糊的想法,很難完全準確地表達對系統的全面要求。軟件開發者對于所要解決的應用問題認識更是模糊不清3.3原型化方法在開發初期,要想得到一個完整準確的規格說明不隨著開發工作向前推進,用戶可能會產生新的要求,或因環境變化,要求系統也能隨之變化;開發者又可能在設計與實現的過程中遇到些沒有預料到的實際困難,需要以改變需求來解脫困境。因此規格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會成為軟件開發順利推進的障礙。為解決這些問題,逐漸形成了軟件系統的快速原型的概念。隨著開發工作向前推進,用戶可能會產生新的要求,或因環境變化,軟件原型的分類在軟件開發中,原型是軟件的一個早期可運行的版本,它反映最終系統的部分重要特性。
探索型:目的是要弄清對目標系統的要求,確定所希望的特性,并探討多種方案的可行性。軟件原型的分類在軟件開發中,原型是軟件的一個早期可運行的版本
實驗型:這種原型用于大規模開發和實現之前,考核方案是否合適,規格說明是否可靠。
進化型:這種原型的目的不在于改進規格說明,而是將系統建造得易于變化,在改進原型的過程中,逐步將原型進化成最終系統。實驗型:這種原型用于大規模開發和實現之前,考核方案是否合適原型使用策略廢棄策略追加策略原型使用策略廢棄策略建立快速原型,進行系統的分析和構造的好處:增進軟件者和用戶對系統服務需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學習手段。建立快速原型,進行系統的分析和構造的好處:增進軟件者和用戶
使用原型化方法,可以容易地確定系統的性能,確認各項主要系統服務的可應用性,確認系統設計的可行性,確認系統作為產品的結果。軟件原型的最終版本,有的可以原封不動地成為產品,有的略加修改就可以成為最終系統的一個組成部分,這樣有利于建成最終系統。使用原型化方法,可以容易地確定系統的性能,確認各項主要系統軟件工程需求分析課件
原型開發技術可執行規格說明基于腳本(scenario)的設計自動程序設計專用語言可復用(reusable)的軟件簡化假設原型開發技術可執行規格說明可執行規格說明可執行規格說明是用于需求規格說明的一種自動化技術。使用這種方法,人們可以直接觀察他們用語言規定的任何系統性行為。包括
代數規格說明
有限狀態模型
可執行的數據流圖可執行規格說明可執行規格說明是用于需求規格說明的一種自動化技(1)代數規格說明代數規格說明使用集合、定義于這些集合上的函數和定義于這些函數上的方程來描述對象。規格說明的操作語義用這些方程表示。(1)代數規格說明代數規格說明使用集合、定義于這些集合上的函
NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(stk,elem))=elem其中,前三行定義了操作的語法,后兩行把它們的語義定義為一些方程。舉例:定義一個無界的棧及其操作NEW_STACK:→Stack舉例:定(2)有限狀態模型parnas提出的使用最廣泛的一種可執行規格說明形式。從一個初始狀態開始接收輸入,到產生輸出,狀態在推移變化。施加在狀態元素上的約束確定了有效狀態的推移。(2)有限狀態模型parnas提出的使用最廣泛的一種可執行規舉例:建立用戶/程序對話舉例:建立用戶/程序對話(3)可執行的數據流圖數據流圖是基于結構化開發方法的結構化規格說明用一種可執行的語言程序代替定義處理邏輯的結構化英語,數據流圖就成為由可執行語言程序模塊組成的網絡,在一定環境或工具的支持下就可成為一個可以執行的原型系統。(3)可執行的數據流圖數據流圖是基于結構化開發方法的結構化規基于腳本的設計腳本是指用戶界面的原型。一個腳本用以模擬在系統運行期間用戶經歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關對話的模型。因此,軟件開發者能夠給用戶顯示系統的逼真的視圖,使用戶得以判斷是否符合他的意圖。基于腳本的設計腳本是指用戶界面的原型。一個腳本用以模擬在系統可在任一腳本中使用一套可復用的軟件模塊,以表達某一方面的要求。可使用一種原型語言來描述原型系統。原型開發過程中用這種語言來定義屏幕、數據項、及其相關的操作。從系統的外部描述開始,開發與數據庫的接口、錯誤處理和恢復過程等系統的與外部視圖一致的細節。可在任一腳本中使用一套可復用的軟件模塊,以表達某一方面的要求自動程序設計自動程序設計是指在程序自動生成環境的支持下,利用計算機實現軟件的開發。它可以自動地或半自動地把用戶的非過程式問題規格說明轉換為某種高級語言程序:
演繹綜合手段:基于數學推理的構造式證明。自動程序設計自動程序設計是指在程序自動生成環境的支持下,利用程序變換手段:將一程序轉換成另一功能等價的程序,并保持其正確性不變。實例推廣手段:從實例特征出發,將它推廣為待編程序的特征,最后得到程序。
過程化手段:研究甚高級語言的編譯和知識的過程化。程序變換手段:專用語言專用語言是應用領域的模型化語言。在原型開發中使用專用語言,可方便用戶和軟件開發者在計劃中的系統特性方面的交流。專用語言專用語言是應用領域的模型化語言。在原型開發中使用專用軟件復用技術利用可復用的模塊,做出適當的組合,就可得到快速構造的原型系統。為了快速地構造原型,這些模塊首先必須有簡單而清晰的界面;其次它們應當盡量不依賴其它的模塊或數據結構;第三,它們應具有一些通用的功能。軟件復用技術利用可復用的模塊,做出適當的組合,就可得到快速構簡化假設簡化假設是在開發過程中使設計者迅速得到一個簡化的系統所做的假設。盡管這些假設可能實際上并不能成立,但它們在原型開發過程中可以使開發者的注意力集中在一些主要的方面。簡化假設簡化假設是在開發過程中使設計者迅速得到一個簡化的系統在修改一個文件時,可以假設這個文件確實存在在存取文件時,待存取的記錄總是存在一旦計劃中的系統滿足用戶所有的要求,就可以撤消這些假設,并追加一些細節。在修改一個文件時,可以假設這個文件確實存在系統動態分析系統的需求規格說明通常是用自然語言來敘述的,但是用自然語言描述往往會出現歧義性。為了直觀地分析系統的動作,從特定的視點出發描述系統的行為,需要采用動態分析的方法。系統動態分析系統的需求規格說明通常是用自然語言來敘述的,但是3.4最常用的動態分析方法狀態遷移圖時序圖Petri網3.4最常用的動態分析方法狀態遷移圖狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推移的一種圖形表示。
圓圈“○”表示可得到的系統狀態
箭頭“→”表示從一種狀態向另一種狀態的遷移。狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推例如,當有多個申請占用CPU運行的進程時,有關CPU分配的進程的狀態遷移。例如,當有多個申請占用CPU運行的進程時,有關CPU分可得到的狀態=就緒,運行,等待生成的事件=t1,t2,
t3,
t4t1─
中斷事件
t2─
中斷已處理t3─
分配CPUt4─
用完CPU時間可得到的狀態=就緒,運行,等待狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到由于狀態遷移圖的單純性,能夠機械地分析許多情況,可很容易地建立分析工具狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到在系統分析中,用時序圖于對比在系統中處理事件的時序和相應的處理時間。在右圖中,對于事件e,功能1~功能3
的處理時間總計為(T1
+T2+T3)其中功能間切換時間0。時序圖在系統分析中,用時序圖于對比在系統中處理事件的時序和相應的處采用擴充時序圖可表示進程間的通信流,用于分析幾個事件的交錯現象。,C1與C2,R1與R2是交錯的。因此,可以做如下分析:“必須設計成HOST1在等待C1的回答R1期間要能接收從HOST2發出的命令C2。”采用擴充時序圖可表示進程間的通信流,用于分析幾個事件Petri網
Petri網已廣泛地應用于硬件與軟件系統的開發中,它適用于描述與分析相互獨立、協同操作的處理系統,也就是并發執行的處理系統。Petri網Petri網已廣泛地應用于硬件與軟件系統的開Petri網簡稱PNG(PetriNetGraph),它有兩種結點:位置(place):符號為“○”,它用來表示系統的狀態。轉移(transition):符號為“”,它用來表示系統中的事件。
圖中的有向邊表示對轉移的輸入,或由轉移的輸出Petri網簡稱PNG(PetriNetGraph),標記,或稱令牌(token),是表明系統當前處于什么狀態的標志標記,或稱令牌(token),是表明系統當前處于什么狀態的標軟件工程需求分析課件軟件工程需求分析課件
處理兩個進程的同步問題
處理兩個進程的同步問題 軟件工程需求分析課件3.5數據及數據庫需求在數據詞典中,強調對數據存儲結構的邏輯設計,并用數據結構表達數據項之間的邏輯關系。但任何一個軟件系統都可能有成千上萬個數據項,僅僅描述這些數據項是不夠的,更重要的是如何把它們以最優的方式組織起來,以滿足系統對數據的要求。3.5數據及數據庫需求在數據詞典中,強調對數據存儲結構的邏輯有關數據庫的基本概念在軟件系統中需要處理的數據是現實世界中存在的事物及其聯系的反映。人們通常將與數據處理有關的的領域分為三個世界:
現實世界信息世界數據世界有關數據庫的基本概念在軟件系統中需要處理的數據是現實世界中存現實世界是存在于人們頭腦之外的客觀世界,現實世界中的事物可分成對象和性質兩大類。對象可以是人、是物,還可以是實際的東西或概念的東西,例如,大學、城市等。對象還可以指事物與事物間的聯系。性質則是指事物的性質或特征。現實世界是存在于人們頭腦之外的客觀世界,現實世界中的事物可分信息世界也叫做觀念世界,是現實世界在人們頭腦中的反映。客觀世界中的事物在信息世界中叫做實體,反映事物之間聯系的叫做實體模型。實體是由若干屬性的屬性值組成。屬性是實體某一方面的特征,相應于事物的性質。例如,一個學生實體是如下的一個5元組:(951149,袁秋慧,女,19,軟件)信息世界也叫做觀念世界,是現實世界在人們頭腦中的反映。(95元組中每一元素是學生的某一屬性的屬性值。他們對應的屬性集合是:這些屬性集合表征了“學生”實體的類型,叫做實體型。同一類型的實體的集合叫做實體集。數據世界則是信息世界中信息的數據化,現實世界中的事物及其聯系在數據世界中用數據模型描述。(學號,姓名,性別,年齡,專業)5元組中每一元素是學生的某一屬性的屬性值。他們對應的屬性集合描述每一實體的數據稱為記錄,描述屬性的數據叫做數據項或字段。與實體集相對應的稱為文件。例如,學生文件就由多個記錄組成,這些記錄放在一起構成一個二維表。表中每一橫排叫做一個記錄或元組,每一縱列叫做一個屬性。描述每一實體的數據稱為記錄,描述屬性的數據叫做數據項或字段。
記錄由數據項組成,正如實體由若干屬性的屬性值組成一樣。一般數據項沿用屬性名。用做屬性名時表示觀念信息,用做數據項名時表示數據信息。每個數據項包括兩個特征:即數據類型和數據長度。若干同類型的記錄構成文件。為了對文件中的記錄有效組織和存取,通常指定一個數據項進行區別,這個數據項叫做關鍵字。記錄由數據項組成,正如實體由若干屬性的屬性值組成一樣。E-R方法(Entity-RelationshipApproach)和實體模型在需求分析階段進行數據庫邏輯設計過程中,使用E-R圖,可定義一個實體模型。實體模型是現實世界的純表示,它不涉及數據世界的數據結構、存取路徑、存取效率等問題。因此,它可以轉換成數據庫中的數據模型。E-R方法(Entity-RelationshipAp數據可以按相應數據模型進行組織。E-R圖中表示實體聯系的符號如下:數據可以按相應數據模型進行組織。在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實體之間,或實體與屬性之間的聯系。出現在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學管理中,一個教師可以教授零門、一門或多門課程,每位學生也需要學習幾門課程。因此,教學管理中涉及的對象(實體型)有學生、教師和課程。在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實用E-R圖描述它們之間的聯系,得下圖。其中,學生與課程是多對多的聯系,而教師與課程的聯系是零、一對多。用E-R圖描述它們之間的聯系,得下圖。其中,學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 628-2017在用工業熱交換器能效測試及綜合評價方法
- DB31/T 585-2012小菜蛾測報技術規范
- DB31/T 1395-2023綠色數據中心評價導則
- DB31/T 1335-2021醫療機構輸血標本運送與廢血袋回收管理規范
- DB31/T 1183-2019特種設備隱患排查治理實施指南
- DB31/T 1122-2018城市軌道交通運營評價指標體系
- DB31/T 1105-2018城市軌道交通車站服務中心服務規范
- DB31/T 1103.1-2018商務信用評價方法第1部分:酒類零售企業
- DB31/T 1050-2017豬偽狂犬病凈化規程
- DB31/ 357-2015在用點燃式發動機輕型汽車簡易瞬態工況法排氣污染物排放限值
- 2025年中國低溫等離子體環境消毒機市場調查研究報告
- 2025法語DELFA15級閱讀理解試卷及答案
- 2025年全球經濟策略試題及答案
- 2025年絕緣紙原紙行業深度研究報告
- 火災自動報警系統設計規范完整版2025年
- 2025年日歷表(A4版含農歷可編輯)
- MOOC 數值天氣預報-南京信息工程大學 中國大學慕課答案
- 小作坊生產工藝流程圖(共2頁)
- 生態瓶記錄單
- 食品飲料購銷合同
- 民法典部分條文新舊對比解讀PPT課件
評論
0/150
提交評論