軟件工程需求分析課件_第1頁
軟件工程需求分析課件_第2頁
軟件工程需求分析課件_第3頁
軟件工程需求分析課件_第4頁
軟件工程需求分析課件_第5頁
已閱讀5頁,還剩247頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程學(xué)中國(guó)科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院軟件工程學(xué)中國(guó)科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院3.1軟件需求分析的任務(wù)和過程3.2結(jié)構(gòu)化分析方法3.3原型化方法3.4動(dòng)態(tài)分析方法3.5數(shù)據(jù)和數(shù)據(jù)庫(kù)需求第3章需求分析3.1軟件需求分析的任務(wù)和過程第3章需求分析3.1軟件需求分析的任務(wù)深入描述軟件的功能和性能確定軟件設(shè)計(jì)的約束和軟件同其它系統(tǒng)元素的接口細(xì)節(jié)定義軟件的其它有效性需求3.1軟件需求分析的任務(wù)深入描述軟件的功能和性能需求分析研究的對(duì)象是軟件項(xiàng)目的用戶要求準(zhǔn)確地表達(dá)被接受的用戶要求確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中需求分析研究的對(duì)象是軟件項(xiàng)目的用戶要求需求分析的任務(wù)

就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的“做什么”的問題。需求分析的任務(wù)通常軟件開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型目標(biāo)系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實(shí)例化,即具體到某個(gè)業(yè)務(wù)領(lǐng)域而得到的通常軟件開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型需求分析的過程(1)問題識(shí)別從系統(tǒng)的角度來理解軟件并評(píng)審軟件范圍是否恰當(dāng)確定對(duì)目標(biāo)系統(tǒng)的綜合要求,即軟件的需求提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)需求分析的過程(1)問題識(shí)別軟件的需求包括:功能需求性能需求環(huán)境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發(fā)進(jìn)度需求預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)軟件的需求包括:功能需求資源使用需求問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利(2)分析與綜合從信息流和信息結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。(2)分析與綜合常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蟮姆治龇椒?OOA)等常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)(3)編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊(cè)修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃(3)編制需求分析階段的文檔(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準(zhǔn)確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;所有圖表是否清楚,在不補(bǔ)充說明時(shí)能否理解;主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;設(shè)計(jì)的約束條件或限制條件是否符合實(shí)際;開發(fā)的技術(shù)風(fēng)險(xiǎn)是什么;被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;是否考慮過軟件需求的其它方案;是否考慮過將來可能會(huì)提出的軟件需求;是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn);是否考慮過軟件需求的其它方案;需求分析流程需求分析流程軟件需求分析的原則需要能夠表達(dá)和理解問題的信息域和功能域要能以層次化的方式對(duì)問題進(jìn)行分解和不斷細(xì)化要給出系統(tǒng)的邏輯視圖和物理視圖軟件需求分析的原則需要能夠表達(dá)和理解問題的信息域和功能域軟件工程需求分析課件軟件需求規(guī)格說明的原則從現(xiàn)實(shí)中分離功能,即描述要“做什么”而不是“怎樣實(shí)現(xiàn)”要求使用面向處理的規(guī)格說明語言(或稱系統(tǒng)定義語言)如果被開發(fā)軟件只是一個(gè)大系統(tǒng)中的一個(gè)元素,那么整個(gè)大系統(tǒng)也包括在規(guī)格說明的描述之中軟件需求規(guī)格說明的原則從現(xiàn)實(shí)中分離功能,即描述要“做什么”而規(guī)格說明必須包括系統(tǒng)運(yùn)行環(huán)境規(guī)格說明必須是一個(gè)認(rèn)識(shí)模型規(guī)格說明必須是可操作的規(guī)格說明必須容許不完備性并允許擴(kuò)充規(guī)格說明必須局部化和松散耦合規(guī)格說明必須包括系統(tǒng)運(yùn)行環(huán)境軟件需求方法需求分析方法由對(duì)軟件問題的信息域和功能域的系統(tǒng)分析過程及其表示方法組成大多數(shù)的需求分析方法是由信息驅(qū)動(dòng)的信息域具有三種屬性:信息流、信息內(nèi)容和信息結(jié)構(gòu)。軟件需求方法需求分析方法由對(duì)軟件問題的信息域和功能域的系統(tǒng)分3.2結(jié)構(gòu)化分析方法

面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止3.2結(jié)構(gòu)化分析方法面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法使用工具:

數(shù)據(jù)流圖數(shù)據(jù)詞典結(jié)構(gòu)化英語判定表與判定樹結(jié)構(gòu)化分析方法使用工具:數(shù)據(jù)流圖數(shù)據(jù)流圖中的主要圖形元素?cái)?shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源點(diǎn)或終點(diǎn)(外部實(shí)體)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)文件數(shù)據(jù)流圖數(shù)據(jù)流圖中的主要圖形元素?cái)?shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源描述銀行取款過程的數(shù)據(jù)流圖描述銀行取款過程的數(shù)據(jù)流圖數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采分層的數(shù)據(jù)流圖分層的數(shù)據(jù)流圖在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對(duì)其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。結(jié)構(gòu)化分析方法步驟示例

商店業(yè)務(wù)處理系統(tǒng)結(jié)構(gòu)化分析方法步驟示例

商店業(yè)務(wù)處理系統(tǒng)這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)現(xiàn)的功能數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)商店業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)經(jīng)過分析,商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售、采購(gòu)、會(huì)計(jì)三大項(xiàng)。主要數(shù)據(jù)流輸入的源點(diǎn)和輸出終點(diǎn)是顧客和供應(yīng)商。然后從輸入端開始,根據(jù)商店業(yè)務(wù)工作流程,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第一層數(shù)據(jù)流圖經(jīng)過分析,商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售、采購(gòu)、會(huì)計(jì)三大第一層數(shù)據(jù)流圖第一層數(shù)據(jù)流圖加細(xì)每一個(gè)加工框 銷售細(xì)化加細(xì)每一個(gè)加工框 銷售細(xì)化采購(gòu)細(xì)化采購(gòu)細(xì)化檢查和修改數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本圖形元素?cái)?shù)據(jù)流圖的主圖必須包括前述四種基本元素,缺一不可數(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流檢查和修改數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上下層的親子關(guān)系規(guī)定任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上圖上每個(gè)元素都必須有名字?jǐn)?shù)據(jù)流圖中不可夾帶控制流初畫時(shí)可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流圖上每個(gè)元素都必須有名字?jǐn)?shù)據(jù)詞典數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求詞條描述——對(duì)于在數(shù)據(jù)流圖中每一個(gè)被命名的圖形元素,均加以定義,其內(nèi)容有:名字,別名或編號(hào),分類,描述,定義,位置,其它,等數(shù)據(jù)詞典數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求(1)數(shù)據(jù)流詞條描述數(shù)據(jù)流名:說明:簡(jiǎn)要介紹作用即它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來源:來自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量(1)數(shù)據(jù)流詞條描述數(shù)據(jù)流名:(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素名:類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長(zhǎng)度:取值范圍:相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素名:(3)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:簡(jiǎn)述:存放的是什么數(shù)據(jù)輸入數(shù)據(jù):輸出數(shù)據(jù):數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)方式:順序,直接,關(guān)鍵碼存取頻率:(3)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:(4)加工邏輯詞條描述加工名:加工編號(hào):反映該加工的層次簡(jiǎn)要描述:加工邏輯及功能簡(jiǎn)述輸入數(shù)據(jù)流:輸出數(shù)據(jù)流:加工邏輯:簡(jiǎn)述加工程序,加工順序(4)加工邏輯詞條描述加工名:(5)源點(diǎn)及匯(終)點(diǎn)詞條描述名稱:外部實(shí)體名簡(jiǎn)要描述:什么外部實(shí)體有關(guān)數(shù)據(jù)流:數(shù)目:(5)源點(diǎn)及匯(終)點(diǎn)詞條描述名稱:外部實(shí)體名數(shù)據(jù)結(jié)構(gòu)的描述

符號(hào)

含義

舉例=被定義為+與

x=a+b[...,...]或[...|...]或

x=[a,b],x=[a|b]{...}或m{...}n重復(fù)

x={a},x=3{a}8(...)可選

x=(a)“...”基本數(shù)據(jù)元素

x=“a”.. 連結(jié)符

x=1..9數(shù)據(jù)結(jié)構(gòu)的描述符號(hào) 含義 存折格式存折格式存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=“001”..“999”帳號(hào)=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}

對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則加工邏輯說明必須描述實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)加工邏輯說明中包含的信息應(yīng)是充足的,完備的,有用的,無冗余的基本加工邏輯說明對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)基本加工邏輯說明基本用于寫加工邏輯說明的工具結(jié)構(gòu)化英語判定表判定樹用于寫加工邏輯說明的工具結(jié)構(gòu)化英語(1)結(jié)構(gòu)化英語結(jié)構(gòu)化英語的詞匯表由英語命令動(dòng)詞數(shù)據(jù)詞典中定義的名字有限的自定義詞邏輯關(guān)系詞IF_THEN_ELSE、

CASE_OF、

WHILE_DO、

REPEAT_UNTIL等組成。(1)結(jié)構(gòu)化英語結(jié)構(gòu)化英語的詞匯表由是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中的操作用自然語言短語來表示其基本控制結(jié)構(gòu)有三種:簡(jiǎn)單陳述句結(jié)構(gòu):避免復(fù)合語句;重復(fù)結(jié)構(gòu):while_do

repeat_until結(jié)構(gòu)。判定結(jié)構(gòu):if_then_else

case_of結(jié)構(gòu);是一種介于自然語言和形式化語言之間的語言商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500then

if

欠款超過了60天then

在償還欠款前不予批準(zhǔn)

else

(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單else

(發(fā)貨單金額未超過$500)

if

欠款超過60天then

發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報(bào)告

else

(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,使用判定表來描述比較合適(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,以“檢查發(fā)貨單”為例以“檢查發(fā)貨單”為例軟件工程需求分析課件(3)判定樹判定樹也是用來表達(dá)加工邏輯的一種工具。有時(shí)侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額$500欠款>60天不發(fā)出批準(zhǔn)書欠款60天發(fā)貨單發(fā)出批準(zhǔn)書、欠款>60天發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報(bào)告欠款60天發(fā)出批準(zhǔn)書、發(fā)貨單(3)判定樹判定樹也是用來表達(dá)加工邏輯的一種工具。有時(shí)侯它比3.3原型化方法在開發(fā)初期,要想得到一個(gè)完整準(zhǔn)確的規(guī)格說明不是一件容易的事。特別是對(duì)一些大型的軟件項(xiàng)目。用戶往往對(duì)系統(tǒng)只有一個(gè)模糊的想法,很難完全準(zhǔn)確地表達(dá)對(duì)系統(tǒng)的全面要求。軟件開發(fā)者對(duì)于所要解決的應(yīng)用問題認(rèn)識(shí)更是模糊不清3.3原型化方法在開發(fā)初期,要想得到一個(gè)完整準(zhǔn)確的規(guī)格說明不隨著開發(fā)工作向前推進(jìn),用戶可能會(huì)產(chǎn)生新的要求,或因環(huán)境變化,要求系統(tǒng)也能隨之變化;開發(fā)者又可能在設(shè)計(jì)與實(shí)現(xiàn)的過程中遇到些沒有預(yù)料到的實(shí)際困難,需要以改變需求來解脫困境。因此規(guī)格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會(huì)成為軟件開發(fā)順利推進(jìn)的障礙。為解決這些問題,逐漸形成了軟件系統(tǒng)的快速原型的概念。隨著開發(fā)工作向前推進(jìn),用戶可能會(huì)產(chǎn)生新的要求,或因環(huán)境變化,軟件原型的分類在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分重要特性。

探索型:目的是要弄清對(duì)目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。軟件原型的分類在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本

實(shí)驗(yàn)型:這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。

進(jìn)化型:這種原型的目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。實(shí)驗(yàn)型:這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適原型使用策略廢棄策略追加策略原型使用策略廢棄策略建立快速原型,進(jìn)行系統(tǒng)的分析和構(gòu)造的好處:增進(jìn)軟件者和用戶對(duì)系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學(xué)習(xí)手段。建立快速原型,進(jìn)行系統(tǒng)的分析和構(gòu)造的好處:增進(jìn)軟件者和用戶

使用原型化方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果。軟件原型的最終版本,有的可以原封不動(dòng)地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分,這樣有利于建成最終系統(tǒng)。使用原型化方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)軟件工程需求分析課件

原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明基于腳本(scenario)的設(shè)計(jì)自動(dòng)程序設(shè)計(jì)專用語言可復(fù)用(reusable)的軟件簡(jiǎn)化假設(shè)原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動(dòng)化技術(shù)。使用這種方法,人們可以直接觀察他們用語言規(guī)定的任何系統(tǒng)性行為。包括

代數(shù)規(guī)格說明

有限狀態(tài)模型

可執(zhí)行的數(shù)據(jù)流圖可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動(dòng)化技(1)代數(shù)規(guī)格說明代數(shù)規(guī)格說明使用集合、定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來描述對(duì)象。規(guī)格說明的操作語義用這些方程表示。(1)代數(shù)規(guī)格說明代數(shù)規(guī)格說明使用集合、定義于這些集合上的函

NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(stk,elem))=elem其中,前三行定義了操作的語法,后兩行把它們的語義定義為一些方程。舉例:定義一個(gè)無界的棧及其操作NEW_STACK:→Stack舉例:定(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說明形式。從一個(gè)初始狀態(tài)開始接收輸入,到產(chǎn)生輸出,狀態(tài)在推移變化。施加在狀態(tài)元素上的約束確定了有效狀態(tài)的推移。(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)舉例:建立用戶/程序?qū)υ捙e例:建立用戶/程序?qū)υ挘?)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說明用一種可執(zhí)行的語言程序代替定義處理邏輯的結(jié)構(gòu)化英語,數(shù)據(jù)流圖就成為由可執(zhí)行語言程序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持下就可成為一個(gè)可以執(zhí)行的原型系統(tǒng)。(3)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)基于腳本的設(shè)計(jì)腳本是指用戶界面的原型。一個(gè)腳本用以模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關(guān)對(duì)話的模型。因此,軟件開發(fā)者能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖?;谀_本的設(shè)計(jì)腳本是指用戶界面的原型。一個(gè)腳本用以模擬在系統(tǒng)可在任一腳本中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求??墒褂靡环N原型語言來描述原型系統(tǒng)。原型開發(fā)過程中用這種語言來定義屏幕、數(shù)據(jù)項(xiàng)、及其相關(guān)的操作。從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫(kù)的接口、錯(cuò)誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細(xì)節(jié)??稍谌我荒_本中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求自動(dòng)程序設(shè)計(jì)自動(dòng)程序設(shè)計(jì)是指在程序自動(dòng)生成環(huán)境的支持下,利用計(jì)算機(jī)實(shí)現(xiàn)軟件的開發(fā)。它可以自動(dòng)地或半自動(dòng)地把用戶的非過程式問題規(guī)格說明轉(zhuǎn)換為某種高級(jí)語言程序:

演繹綜合手段:基于數(shù)學(xué)推理的構(gòu)造式證明。自動(dòng)程序設(shè)計(jì)自動(dòng)程序設(shè)計(jì)是指在程序自動(dòng)生成環(huán)境的支持下,利用程序變換手段:將一程序轉(zhuǎn)換成另一功能等價(jià)的程序,并保持其正確性不變。實(shí)例推廣手段:從實(shí)例特征出發(fā),將它推廣為待編程序的特征,最后得到程序。

過程化手段:研究甚高級(jí)語言的編譯和知識(shí)的過程化。程序變換手段:專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用語言,可方便用戶和軟件開發(fā)者在計(jì)劃中的系統(tǒng)特性方面的交流。專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)造的原型系統(tǒng)。為了快速地構(gòu)造原型,這些模塊首先必須有簡(jiǎn)單而清晰的界面;其次它們應(yīng)當(dāng)盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu);第三,它們應(yīng)具有一些通用的功能。軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)簡(jiǎn)化假設(shè)簡(jiǎn)化假設(shè)是在開發(fā)過程中使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)所做的假設(shè)。盡管這些假設(shè)可能實(shí)際上并不能成立,但它們?cè)谠烷_發(fā)過程中可以使開發(fā)者的注意力集中在一些主要的方面。簡(jiǎn)化假設(shè)簡(jiǎn)化假設(shè)是在開發(fā)過程中使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)在修改一個(gè)文件時(shí),可以假設(shè)這個(gè)文件確實(shí)存在在存取文件時(shí),待存取的記錄總是存在一旦計(jì)劃中的系統(tǒng)滿足用戶所有的要求,就可以撤消這些假設(shè),并追加一些細(xì)節(jié)。在修改一個(gè)文件時(shí),可以假設(shè)這個(gè)文件確實(shí)存在系統(tǒng)動(dòng)態(tài)分析系統(tǒng)的需求規(guī)格說明通常是用自然語言來敘述的,但是用自然語言描述往往會(huì)出現(xiàn)歧義性。為了直觀地分析系統(tǒng)的動(dòng)作,從特定的視點(diǎn)出發(fā)描述系統(tǒng)的行為,需要采用動(dòng)態(tài)分析的方法。系統(tǒng)動(dòng)態(tài)分析系統(tǒng)的需求規(guī)格說明通常是用自然語言來敘述的,但是3.4最常用的動(dòng)態(tài)分析方法狀態(tài)遷移圖時(shí)序圖Petri網(wǎng)3.4最常用的動(dòng)態(tài)分析方法狀態(tài)遷移圖狀態(tài)遷移圖狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何相應(yīng)外部的信號(hào)進(jìn)行推移的一種圖形表示。

圓圈“○”表示可得到的系統(tǒng)狀態(tài)

箭頭“→”表示從一種狀態(tài)向另一種狀態(tài)的遷移。狀態(tài)遷移圖狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何相應(yīng)外部的信號(hào)進(jìn)行推例如,當(dāng)有多個(gè)申請(qǐng)占用CPU運(yùn)行的進(jìn)程時(shí),有關(guān)CPU分配的進(jìn)程的狀態(tài)遷移。例如,當(dāng)有多個(gè)申請(qǐng)占用CPU運(yùn)行的進(jìn)程時(shí),有關(guān)CPU分可得到的狀態(tài)=就緒,運(yùn)行,等待生成的事件=t1,t2,

t3,

t4t1─

中斷事件

t2─

中斷已處理t3─

分配CPUt4─

用完CPU時(shí)間可得到的狀態(tài)=就緒,運(yùn)行,等待狀態(tài)遷移圖的優(yōu)點(diǎn)狀態(tài)之間的關(guān)系能夠直觀地捕捉到由于狀態(tài)遷移圖的單純性,能夠機(jī)械地分析許多情況,可很容易地建立分析工具狀態(tài)遷移圖的優(yōu)點(diǎn)狀態(tài)之間的關(guān)系能夠直觀地捕捉到在系統(tǒng)分析中,用時(shí)序圖于對(duì)比在系統(tǒng)中處理事件的時(shí)序和相應(yīng)的處理時(shí)間。在右圖中,對(duì)于事件e,功能1~功能3

的處理時(shí)間總計(jì)為(T1

+T2+T3)其中功能間切換時(shí)間0。時(shí)序圖在系統(tǒng)分析中,用時(shí)序圖于對(duì)比在系統(tǒng)中處理事件的時(shí)序和相應(yīng)的處采用擴(kuò)充時(shí)序圖可表示進(jìn)程間的通信流,用于分析幾個(gè)事件的交錯(cuò)現(xiàn)象。,C1與C2,R1與R2是交錯(cuò)的。因此,可以做如下分析:“必須設(shè)計(jì)成HOST1在等待C1的回答R1期間要能接收從HOST2發(fā)出的命令C2。”采用擴(kuò)充時(shí)序圖可表示進(jìn)程間的通信流,用于分析幾個(gè)事件Petri網(wǎng)

Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨(dú)立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。Petri網(wǎng)Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開Petri網(wǎng)簡(jiǎn)稱PNG(PetriNetGraph),它有兩種結(jié)點(diǎn):位置(place):符號(hào)為“○”,它用來表示系統(tǒng)的狀態(tài)。轉(zhuǎn)移(transition):符號(hào)為“”,它用來表示系統(tǒng)中的事件。

圖中的有向邊表示對(duì)轉(zhuǎn)移的輸入,或由轉(zhuǎn)移的輸出Petri網(wǎng)簡(jiǎn)稱PNG(PetriNetGraph),標(biāo)記,或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志標(biāo)記,或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)軟件工程需求分析課件軟件工程需求分析課件

處理兩個(gè)進(jìn)程的同步問題

處理兩個(gè)進(jìn)程的同步問題 軟件工程需求分析課件3.5數(shù)據(jù)及數(shù)據(jù)庫(kù)需求在數(shù)據(jù)詞典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯設(shè)計(jì),并用數(shù)據(jù)結(jié)構(gòu)表達(dá)數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系。但任何一個(gè)軟件系統(tǒng)都可能有成千上萬個(gè)數(shù)據(jù)項(xiàng),僅僅描述這些數(shù)據(jù)項(xiàng)是不夠的,更重要的是如何把它們以最優(yōu)的方式組織起來,以滿足系統(tǒng)對(duì)數(shù)據(jù)的要求。3.5數(shù)據(jù)及數(shù)據(jù)庫(kù)需求在數(shù)據(jù)詞典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯有關(guān)數(shù)據(jù)庫(kù)的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實(shí)世界中存在的事物及其聯(lián)系的反映。人們通常將與數(shù)據(jù)處理有關(guān)的的領(lǐng)域分為三個(gè)世界:

現(xiàn)實(shí)世界信息世界數(shù)據(jù)世界有關(guān)數(shù)據(jù)庫(kù)的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實(shí)世界中存現(xiàn)實(shí)世界是存在于人們頭腦之外的客觀世界,現(xiàn)實(shí)世界中的事物可分成對(duì)象和性質(zhì)兩大類。對(duì)象可以是人、是物,還可以是實(shí)際的東西或概念的東西,例如,大學(xué)、城市等。對(duì)象還可以指事物與事物間的聯(lián)系。性質(zhì)則是指事物的性質(zhì)或特征?,F(xiàn)實(shí)世界是存在于人們頭腦之外的客觀世界,現(xiàn)實(shí)世界中的事物可分信息世界也叫做觀念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映??陀^世界中的事物在信息世界中叫做實(shí)體,反映事物之間聯(lián)系的叫做實(shí)體模型。實(shí)體是由若干屬性的屬性值組成。屬性是實(shí)體某一方面的特征,相應(yīng)于事物的性質(zhì)。例如,一個(gè)學(xué)生實(shí)體是如下的一個(gè)5元組:(951149,袁秋慧,女,19,軟件)信息世界也叫做觀念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映。(95元組中每一元素是學(xué)生的某一屬性的屬性值。他們對(duì)應(yīng)的屬性集合是:這些屬性集合表征了“學(xué)生”實(shí)體的類型,叫做實(shí)體型。同一類型的實(shí)體的集合叫做實(shí)體集。數(shù)據(jù)世界則是信息世界中信息的數(shù)據(jù)化,現(xiàn)實(shí)世界中的事物及其聯(lián)系在數(shù)據(jù)世界中用數(shù)據(jù)模型描述。(學(xué)號(hào),姓名,性別,年齡,專業(yè))5元組中每一元素是學(xué)生的某一屬性的屬性值。他們對(duì)應(yīng)的屬性集合描述每一實(shí)體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項(xiàng)或字段。與實(shí)體集相對(duì)應(yīng)的稱為文件。例如,學(xué)生文件就由多個(gè)記錄組成,這些記錄放在一起構(gòu)成一個(gè)二維表。表中每一橫排叫做一個(gè)記錄或元組,每一縱列叫做一個(gè)屬性。描述每一實(shí)體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項(xiàng)或字段。

記錄由數(shù)據(jù)項(xiàng)組成,正如實(shí)體由若干屬性的屬性值組成一樣。一般數(shù)據(jù)項(xiàng)沿用屬性名。用做屬性名時(shí)表示觀念信息,用做數(shù)據(jù)項(xiàng)名時(shí)表示數(shù)據(jù)信息。每個(gè)數(shù)據(jù)項(xiàng)包括兩個(gè)特征:即數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度。若干同類型的記錄構(gòu)成文件。為了對(duì)文件中的記錄有效組織和存取,通常指定一個(gè)數(shù)據(jù)項(xiàng)進(jìn)行區(qū)別,這個(gè)數(shù)據(jù)項(xiàng)叫做關(guān)鍵字。記錄由數(shù)據(jù)項(xiàng)組成,正如實(shí)體由若干屬性的屬性值組成一樣。E-R方法(Entity-RelationshipApproach)和實(shí)體模型在需求分析階段進(jìn)行數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)過程中,使用E-R圖,可定義一個(gè)實(shí)體模型。實(shí)體模型是現(xiàn)實(shí)世界的純表示,它不涉及數(shù)據(jù)世界的數(shù)據(jù)結(jié)構(gòu)、存取路徑、存取效率等問題。因此,它可以轉(zhuǎn)換成數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型。E-R方法(Entity-RelationshipAp數(shù)據(jù)可以按相應(yīng)數(shù)據(jù)模型進(jìn)行組織。E-R圖中表示實(shí)體聯(lián)系的符號(hào)如下:數(shù)據(jù)可以按相應(yīng)數(shù)據(jù)模型進(jìn)行組織。在E-R圖中,每個(gè)方框表示實(shí)體型或?qū)傩裕娇蛑g的連線表示實(shí)體之間,或?qū)嶓w與屬性之間的聯(lián)系。出現(xiàn)在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學(xué)管理中,一個(gè)教師可以教授零門、一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課程。因此,教學(xué)管理中涉及的對(duì)象(實(shí)體型)有學(xué)生、教師和課程。在E-R圖中,每個(gè)方框表示實(shí)體型或?qū)傩裕娇蛑g的連線表示實(shí)用E-R圖描述它們之間的聯(lián)系,得下圖。其中,學(xué)生與課程是多對(duì)多的聯(lián)系,而教師與課程的聯(lián)系是零、一對(duì)多。用E-R圖描述它們之間的聯(lián)系,得下圖。其中,學(xué)生與課程是多對(duì)進(jìn)一步,要確定屬性。例如,學(xué)生具有學(xué)號(hào)、姓名、性別、年齡、專業(yè)(其它略)等屬性;課程具有課程號(hào)、課程名、學(xué)分、學(xué)時(shí)數(shù)等屬性;教師具有職工號(hào)、姓名、年齡、職稱等屬性。此外,學(xué)生通過學(xué)號(hào)、分?jǐn)?shù)與課程發(fā)生聯(lián)系。如此可得教學(xué)實(shí)體模型。進(jìn)一步,要確定屬性。例如,教學(xué)實(shí)體模型教學(xué)實(shí)體模型數(shù)據(jù)結(jié)構(gòu)的規(guī)范化信息域分析需要確定數(shù)據(jù)的內(nèi)容,每個(gè)數(shù)據(jù)項(xiàng)要用表格列出,最后組織成文件的邏輯結(jié)構(gòu),即面向應(yīng)用而不是面向存儲(chǔ)的結(jié)構(gòu)。為了便于數(shù)據(jù)庫(kù)的設(shè)計(jì),常常要對(duì)這種結(jié)構(gòu)做一些簡(jiǎn)化,其中最常見的一種方法就是規(guī)范化技術(shù)。數(shù)據(jù)結(jié)構(gòu)的規(guī)范化信息域分析需要確定數(shù)據(jù)的內(nèi)容,每個(gè)數(shù)據(jù)項(xiàng)要用“規(guī)范化”將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表(關(guān)系)。

表格中每個(gè)信息項(xiàng)必須是一個(gè)不可分割的數(shù)據(jù)項(xiàng),不可是組項(xiàng)。

表格中每一列(列表示屬性)中所有信息項(xiàng)必須是同一類型,各列的名字(屬性名)互異,列的次序任意。

表格中各行(行表示元組)互不相同,行的次序任意。“規(guī)范化”將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表(關(guān)系)不滿足上述要求的二維表或關(guān)系,叫做非規(guī)范化關(guān)系。對(duì)于非規(guī)范化的關(guān)系,必須將它規(guī)范化,即利用更單純、更規(guī)則的關(guān)系來代替原來的關(guān)系。規(guī)范化的目的是:

消除數(shù)據(jù)冗余,即消除表格中數(shù)據(jù)的重復(fù);消除多義性,使關(guān)系中的屬性含義清楚、單一;不滿足上述要求的二維表或關(guān)系,叫做非規(guī)范化關(guān)系。對(duì)于非規(guī)范化使關(guān)系的“概念”單一化,讓每個(gè)數(shù)據(jù)項(xiàng)只是一個(gè)簡(jiǎn)單的數(shù)或字符串,而不是一個(gè)組項(xiàng)或重復(fù)組;方便操作。使數(shù)據(jù)的插入、刪除與修改操作可行并方便;使關(guān)系模式更靈活,易于實(shí)現(xiàn)接近自然語言的查詢方式。使關(guān)系的“概念”單一化,讓每個(gè)數(shù)據(jù)項(xiàng)只是一個(gè)簡(jiǎn)單的數(shù)或字符串用教學(xué)管理例說明如何規(guī)范化有三個(gè)實(shí)體型,即課程、學(xué)生和教師,用三個(gè)關(guān)系保存它們的信息:

學(xué)生(學(xué)號(hào),姓名,性別,年齡,專業(yè),籍貫)

教師(職工號(hào),姓名,年齡,職稱,工資級(jí)別,工資)

課程(課程號(hào),課程名,學(xué)分,學(xué)時(shí),課程類型)用教學(xué)管理例說明如何規(guī)范化有三個(gè)實(shí)體型,即課程、學(xué)生和教師,為表示實(shí)體型之間的聯(lián)系,又建立兩個(gè)關(guān)系:

選課

(學(xué)號(hào),課程號(hào),聽課出勤率,作業(yè)完成率,分?jǐn)?shù))

教課

(職工號(hào),課程號(hào))這五個(gè)關(guān)系,組成了數(shù)據(jù)庫(kù)的模型。在每個(gè)關(guān)系中,屬性名下加下劃線)指明關(guān)鍵字。并規(guī)定關(guān)鍵字能唯一地標(biāo)識(shí)一個(gè)元組。為表示實(shí)體型之間的聯(lián)系,又建立兩個(gè)關(guān)系:關(guān)系規(guī)范化的程度,通常按屬性間的依賴程度來區(qū)分,并以范式NF(NormalForm)來表達(dá)。常用的范式分為第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。設(shè)R是一個(gè)關(guān)系,X和Y是R中的兩個(gè)屬性。若對(duì)于X的任一個(gè)值,Y僅有一個(gè)值與之對(duì)應(yīng),則稱R的屬性Y函數(shù)依賴于屬性X。例如,關(guān)系規(guī)范化的程度,通常按屬性間的依賴程度來區(qū)分,并以范式N教師(職工號(hào),姓名,年齡,)其中,屬性“姓名”,“年齡”等都函數(shù)依賴于屬性“職工號(hào)”。屬性X可以是復(fù)合屬性,如:選課(學(xué)號(hào),課程號(hào),聽課出勤率,)教師(職工號(hào),姓名,年齡,)如果屬性Y函數(shù)依賴于復(fù)合屬性X,而不與X的任何真子集函數(shù)依賴,則稱屬性Y完全函數(shù)依賴于復(fù)合屬性X。例如在“選課”關(guān)系中,屬性“聽課出勤率”、“作業(yè)完成率”和“分?jǐn)?shù)”等表示某個(gè)學(xué)生學(xué)習(xí)某門課程時(shí)的學(xué)習(xí)情況。只有同時(shí)指定“學(xué)號(hào)”和“課程號(hào)”,才能準(zhǔn)確地說明是哪位學(xué)生學(xué)習(xí)哪門課程時(shí)的學(xué)習(xí)情況。如果屬性Y函數(shù)依賴于復(fù)合屬性X,而不與X的任何真子集函數(shù)依賴因此,“分?jǐn)?shù)”等屬性完全函數(shù)依賴于“學(xué)號(hào),課程號(hào)”。判斷規(guī)范化程度的條件是:關(guān)系中所有屬性都是“單純域”,即不出現(xiàn)“表中有表”非主屬性完全函數(shù)依賴于關(guān)鍵字非主屬性相互獨(dú)立,即任何非主屬性間不存在函數(shù)依賴。如果一個(gè)關(guān)系連條件

都不滿足,則這個(gè)關(guān)系是非規(guī)范化的。因此,“分?jǐn)?shù)”等屬性完全函數(shù)依賴于“學(xué)號(hào),課程號(hào)”。如果一個(gè)關(guān)系僅滿足條件

,則這個(gè)關(guān)系滿足第一范式(1NF)。如果一個(gè)關(guān)系滿足條件、,但不滿足,則這個(gè)關(guān)系滿足第二范式(2NF)。如果一個(gè)關(guān)系同時(shí)滿足條件

、和,則這個(gè)關(guān)系表滿足第三范式(3NF)。當(dāng)數(shù)據(jù)模型達(dá)到3NF,一般情況下就能滿足數(shù)據(jù)庫(kù)應(yīng)用的需要。如果一個(gè)關(guān)系僅滿足條件,則這個(gè)關(guān)系滿足第一范式(1NF數(shù)據(jù)庫(kù)分析的過程在需求分析階段進(jìn)行數(shù)據(jù)庫(kù)分析的流程數(shù)據(jù)庫(kù)分析的過程在需求分析階段進(jìn)行數(shù)據(jù)庫(kù)分析的流程為開發(fā)一個(gè)系統(tǒng)所使用的數(shù)據(jù)庫(kù),在開始分析數(shù)據(jù)庫(kù)的需求前,分析員必須了解該系統(tǒng)的總目標(biāo)和范圍。然后建立一個(gè)完整并高度細(xì)化的信息模型。此信息模型應(yīng)包括一個(gè)綜合的數(shù)據(jù)詞典,定義所有在開發(fā)數(shù)據(jù)庫(kù)時(shí)用到的數(shù)據(jù)項(xiàng)。接著數(shù)據(jù)庫(kù)分析定義數(shù)據(jù)庫(kù)的邏輯特性和物理特性。為開發(fā)一個(gè)系統(tǒng)所使用的數(shù)據(jù)庫(kù),在開始分析數(shù)據(jù)庫(kù)的需求前,分析以信息模型和系統(tǒng)規(guī)格說明為指導(dǎo),定義數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)結(jié)構(gòu)。這種邏輯結(jié)構(gòu)必須適應(yīng)數(shù)據(jù)存取、修改、關(guān)聯(lián)性及其它相關(guān)需求。一旦邏輯數(shù)據(jù)結(jié)構(gòu)建立起來,就可以研制數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理數(shù)據(jù)庫(kù)結(jié)構(gòu)定義文件結(jié)構(gòu)、記錄格式、與硬件相關(guān)的處理方式以及數(shù)據(jù)庫(kù)管理系統(tǒng)的特性。以信息模型和系統(tǒng)規(guī)格說明為指導(dǎo),定義數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)結(jié)構(gòu)。最后,要對(duì)模式和物理特性進(jìn)行完全的評(píng)審。在數(shù)據(jù)庫(kù)分析過程中所考慮的因素間存在著復(fù)雜的相互聯(lián)系。改變其中的任何一個(gè)因素都會(huì)(潛在地)影響其它的因素。所以必須在各個(gè)因素之間進(jìn)行折衷。這種折衷包括專用性和通用性的折衷,信息關(guān)聯(lián)程度、擴(kuò)充潛力及操作特性等方面的折衷。最后,要對(duì)模式和物理特性進(jìn)行完全的評(píng)審。考慮信息關(guān)聯(lián)程度和擴(kuò)充潛力(包括信息規(guī)模和信息內(nèi)容兩方面)主要基于需求分析和設(shè)計(jì)階段分派給數(shù)據(jù)庫(kù)的專用性程度。專用的數(shù)據(jù)庫(kù)要為系統(tǒng)特定的信息需求服務(wù),因此信息結(jié)構(gòu)要設(shè)計(jì)得能適應(yīng)要求的關(guān)聯(lián)性和預(yù)計(jì)的擴(kuò)充。通用的數(shù)據(jù)庫(kù)可以適應(yīng)更為廣泛的各種信息需求,但是為了獲得通用性要付出代價(jià)。考慮信息關(guān)聯(lián)程度和擴(kuò)充潛力(包括信息規(guī)模和信息內(nèi)容兩方面)主操作特性根據(jù)折衷的結(jié)果而定。數(shù)據(jù)庫(kù)的結(jié)構(gòu)、規(guī)模和邏輯設(shè)計(jì)都會(huì)對(duì)它的物理組織、硬件、存取方式以及性能產(chǎn)生重要的影響。操作特性根據(jù)折衷的結(jié)果而定。數(shù)據(jù)庫(kù)的結(jié)構(gòu)、規(guī)模和邏輯設(shè)計(jì)都會(huì)知識(shí)回顧KnowledgeReview祝您成功!知識(shí)回顧KnowledgeReview祝您成功!軟件工程學(xué)中國(guó)科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院軟件工程學(xué)中國(guó)科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院3.1軟件需求分析的任務(wù)和過程3.2結(jié)構(gòu)化分析方法3.3原型化方法3.4動(dòng)態(tài)分析方法3.5數(shù)據(jù)和數(shù)據(jù)庫(kù)需求第3章需求分析3.1軟件需求分析的任務(wù)和過程第3章需求分析3.1軟件需求分析的任務(wù)深入描述軟件的功能和性能確定軟件設(shè)計(jì)的約束和軟件同其它系統(tǒng)元素的接口細(xì)節(jié)定義軟件的其它有效性需求3.1軟件需求分析的任務(wù)深入描述軟件的功能和性能需求分析研究的對(duì)象是軟件項(xiàng)目的用戶要求準(zhǔn)確地表達(dá)被接受的用戶要求確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中需求分析研究的對(duì)象是軟件項(xiàng)目的用戶要求需求分析的任務(wù)

就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的“做什么”的問題。需求分析的任務(wù)通常軟件開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型目標(biāo)系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實(shí)例化,即具體到某個(gè)業(yè)務(wù)領(lǐng)域而得到的通常軟件開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型需求分析的過程(1)問題識(shí)別從系統(tǒng)的角度來理解軟件并評(píng)審軟件范圍是否恰當(dāng)確定對(duì)目標(biāo)系統(tǒng)的綜合要求,即軟件的需求提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)需求分析的過程(1)問題識(shí)別軟件的需求包括:功能需求性能需求環(huán)境需求可靠性需求安全保密要求用戶界面需求資源使用需求成本消耗需求開發(fā)進(jìn)度需求預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)軟件的需求包括:功能需求資源使用需求問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利(2)分析與綜合從信息流和信息結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。(2)分析與綜合常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蟮姆治龇椒?OOA)等常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)(3)編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊(cè)修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃(3)編制需求分析階段的文檔(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準(zhǔn)確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;所有圖表是否清楚,在不補(bǔ)充說明時(shí)能否理解;主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;設(shè)計(jì)的約束條件或限制條件是否符合實(shí)際;開發(fā)的技術(shù)風(fēng)險(xiǎn)是什么;被開發(fā)項(xiàng)目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;是否考慮過軟件需求的其它方案;是否考慮過將來可能會(huì)提出的軟件需求;是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn);是否考慮過軟件需求的其它方案;需求分析流程需求分析流程軟件需求分析的原則需要能夠表達(dá)和理解問題的信息域和功能域要能以層次化的方式對(duì)問題進(jìn)行分解和不斷細(xì)化要給出系統(tǒng)的邏輯視圖和物理視圖軟件需求分析的原則需要能夠表達(dá)和理解問題的信息域和功能域軟件工程需求分析課件軟件需求規(guī)格說明的原則從現(xiàn)實(shí)中分離功能,即描述要“做什么”而不是“怎樣實(shí)現(xiàn)”要求使用面向處理的規(guī)格說明語言(或稱系統(tǒng)定義語言)如果被開發(fā)軟件只是一個(gè)大系統(tǒng)中的一個(gè)元素,那么整個(gè)大系統(tǒng)也包括在規(guī)格說明的描述之中軟件需求規(guī)格說明的原則從現(xiàn)實(shí)中分離功能,即描述要“做什么”而規(guī)格說明必須包括系統(tǒng)運(yùn)行環(huán)境規(guī)格說明必須是一個(gè)認(rèn)識(shí)模型規(guī)格說明必須是可操作的規(guī)格說明必須容許不完備性并允許擴(kuò)充規(guī)格說明必須局部化和松散耦合規(guī)格說明必須包括系統(tǒng)運(yùn)行環(huán)境軟件需求方法需求分析方法由對(duì)軟件問題的信息域和功能域的系統(tǒng)分析過程及其表示方法組成大多數(shù)的需求分析方法是由信息驅(qū)動(dòng)的信息域具有三種屬性:信息流、信息內(nèi)容和信息結(jié)構(gòu)。軟件需求方法需求分析方法由對(duì)軟件問題的信息域和功能域的系統(tǒng)分3.2結(jié)構(gòu)化分析方法

面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止3.2結(jié)構(gòu)化分析方法面向數(shù)據(jù)流進(jìn)行需求分析的方法結(jié)構(gòu)化分析方法使用工具:

數(shù)據(jù)流圖數(shù)據(jù)詞典結(jié)構(gòu)化英語判定表與判定樹結(jié)構(gòu)化分析方法使用工具:數(shù)據(jù)流圖數(shù)據(jù)流圖中的主要圖形元素?cái)?shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源點(diǎn)或終點(diǎn)(外部實(shí)體)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)文件數(shù)據(jù)流圖數(shù)據(jù)流圖中的主要圖形元素?cái)?shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源描述銀行取款過程的數(shù)據(jù)流圖描述銀行取款過程的數(shù)據(jù)流圖數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系數(shù)據(jù)流與數(shù)據(jù)加工之間的關(guān)系數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采分層的數(shù)據(jù)流圖分層的數(shù)據(jù)流圖在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對(duì)其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。結(jié)構(gòu)化分析方法步驟示例

商店業(yè)務(wù)處理系統(tǒng)結(jié)構(gòu)化分析方法步驟示例

商店業(yè)務(wù)處理系統(tǒng)這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)現(xiàn)的功能數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)商店業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)經(jīng)過分析,商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售、采購(gòu)、會(huì)計(jì)三大項(xiàng)。主要數(shù)據(jù)流輸入的源點(diǎn)和輸出終點(diǎn)是顧客和供應(yīng)商。然后從輸入端開始,根據(jù)商店業(yè)務(wù)工作流程,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第一層數(shù)據(jù)流圖經(jīng)過分析,商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售、采購(gòu)、會(huì)計(jì)三大第一層數(shù)據(jù)流圖第一層數(shù)據(jù)流圖加細(xì)每一個(gè)加工框 銷售細(xì)化加細(xì)每一個(gè)加工框 銷售細(xì)化采購(gòu)細(xì)化采購(gòu)細(xì)化檢查和修改數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本圖形元素?cái)?shù)據(jù)流圖的主圖必須包括前述四種基本元素,缺一不可數(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流檢查和修改數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上下層的親子關(guān)系規(guī)定任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上圖上每個(gè)元素都必須有名字?jǐn)?shù)據(jù)流圖中不可夾帶控制流初畫時(shí)可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流圖上每個(gè)元素都必須有名字?jǐn)?shù)據(jù)詞典數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求詞條描述——對(duì)于在數(shù)據(jù)流圖中每一個(gè)被命名的圖形元素,均加以定義,其內(nèi)容有:名字,別名或編號(hào),分類,描述,定義,位置,其它,等數(shù)據(jù)詞典數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求(1)數(shù)據(jù)流詞條描述數(shù)據(jù)流名:說明:簡(jiǎn)要介紹作用即它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來源:來自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量(1)數(shù)據(jù)流詞條描述數(shù)據(jù)流名:(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素名:類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長(zhǎng)度:取值范圍:相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素名:(3)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:簡(jiǎn)述:存放的是什么數(shù)據(jù)輸入數(shù)據(jù):輸出數(shù)據(jù):數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)方式:順序,直接,關(guān)鍵碼存取頻率:(3)數(shù)據(jù)文件詞條描述數(shù)據(jù)文件名:(4)加工邏輯詞條描述加工名:加工編號(hào):反映該加工的層次簡(jiǎn)要描述:加工邏輯及功能簡(jiǎn)述輸入數(shù)據(jù)流:輸出數(shù)據(jù)流:加工邏輯:簡(jiǎn)述加工程序,加工順序(4)加工邏輯詞條描述加工名:(5)源點(diǎn)及匯(終)點(diǎn)詞條描述名稱:外部實(shí)體名簡(jiǎn)要描述:什么外部實(shí)體有關(guān)數(shù)據(jù)流:數(shù)目:(5)源點(diǎn)及匯(終)點(diǎn)詞條描述名稱:外部實(shí)體名數(shù)據(jù)結(jié)構(gòu)的描述

符號(hào)

含義

舉例=被定義為+與

x=a+b[...,...]或[...|...]或

x=[a,b],x=[a|b]{...}或m{...}n重復(fù)

x={a},x=3{a}8(...)可選

x=(a)“...”基本數(shù)據(jù)元素

x=“a”.. 連結(jié)符

x=1..9數(shù)據(jù)結(jié)構(gòu)的描述符號(hào) 含義 存折格式存折格式存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=“001”..“999”帳號(hào)=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}

對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則加工邏輯說明必須描述實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)加工邏輯說明中包含的信息應(yīng)是充足的,完備的,有用的,無冗余的基本加工邏輯說明對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)基本加工邏輯說明基本用于寫加工邏輯說明的工具結(jié)構(gòu)化英語判定表判定樹用于寫加工邏輯說明的工具結(jié)構(gòu)化英語(1)結(jié)構(gòu)化英語結(jié)構(gòu)化英語的詞匯表由英語命令動(dòng)詞數(shù)據(jù)詞典中定義的名字有限的自定義詞邏輯關(guān)系詞IF_THEN_ELSE、

CASE_OF、

WHILE_DO、

REPEAT_UNTIL等組成。(1)結(jié)構(gòu)化英語結(jié)構(gòu)化英語的詞匯表由是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中的操作用自然語言短語來表示其基本控制結(jié)構(gòu)有三種:簡(jiǎn)單陳述句結(jié)構(gòu):避免復(fù)合語句;重復(fù)結(jié)構(gòu):while_do

repeat_until結(jié)構(gòu)。判定結(jié)構(gòu):if_then_else

case_of結(jié)構(gòu);是一種介于自然語言和形式化語言之間的語言商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500then

if

欠款超過了60天then

在償還欠款前不予批準(zhǔn)

else

(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單else

(發(fā)貨單金額未超過$500)

if

欠款超過60天then

發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報(bào)告

else

(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,使用判定表來描述比較合適(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,以“檢查發(fā)貨單”為例以“檢查發(fā)貨單”為例軟件工程需求分析課件(3)判定樹判定樹也是用來表達(dá)加工邏輯的一種工具。有時(shí)侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額$500欠款>60天不發(fā)出批準(zhǔn)書欠款60天發(fā)貨單發(fā)出批準(zhǔn)書、欠款>60天發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報(bào)告欠款60天發(fā)出批準(zhǔn)書、發(fā)貨單(3)判定樹判定樹也是用來表達(dá)加工邏輯的一種工具。有時(shí)侯它比3.3原型化方法在開發(fā)初期,要想得到一個(gè)完整準(zhǔn)確的規(guī)格說明不是一件容易的事。特別是對(duì)一些大型的軟件項(xiàng)目。用戶往往對(duì)系統(tǒng)只有一個(gè)模糊的想法,很難完全準(zhǔn)確地表達(dá)對(duì)系統(tǒng)的全面要求。軟件開發(fā)者對(duì)于所要解決的應(yīng)用問題認(rèn)識(shí)更是模糊不清3.3原型化方法在開發(fā)初期,要想得到一個(gè)完整準(zhǔn)確的規(guī)格說明不隨著開發(fā)工作向前推進(jìn),用戶可能會(huì)產(chǎn)生新的要求,或因環(huán)境變化,要求系統(tǒng)也能隨之變化;開發(fā)者又可能在設(shè)計(jì)與實(shí)現(xiàn)的過程中遇到些沒有預(yù)料到的實(shí)際困難,需要以改變需求來解脫困境。因此規(guī)格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會(huì)成為軟件開發(fā)順利推進(jìn)的障礙。為解決這些問題,逐漸形成了軟件系統(tǒng)的快速原型的概念。隨著開發(fā)工作向前推進(jìn),用戶可能會(huì)產(chǎn)生新的要求,或因環(huán)境變化,軟件原型的分類在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分重要特性。

探索型:目的是要弄清對(duì)目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。軟件原型的分類在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本

實(shí)驗(yàn)型:這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。

進(jìn)化型:這種原型的目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。實(shí)驗(yàn)型:這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適原型使用策略廢棄策略追加策略原型使用策略廢棄策略建立快速原型,進(jìn)行系統(tǒng)的分析和構(gòu)造的好處:增進(jìn)軟件者和用戶對(duì)系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學(xué)習(xí)手段。建立快速原型,進(jìn)行系統(tǒng)的分析和構(gòu)造的好處:增進(jìn)軟件者和用戶

使用原型化方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果。軟件原型的最終版本,有的可以原封不動(dòng)地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分,這樣有利于建成最終系統(tǒng)。使用原型化方法,可以容易地確定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)軟件工程需求分析課件

原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明基于腳本(scenario)的設(shè)計(jì)自動(dòng)程序設(shè)計(jì)專用語言可復(fù)用(reusable)的軟件簡(jiǎn)化假設(shè)原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動(dòng)化技術(shù)。使用這種方法,人們可以直接觀察他們用語言規(guī)定的任何系統(tǒng)性行為。包括

代數(shù)規(guī)格說明

有限狀態(tài)模型

可執(zhí)行的數(shù)據(jù)流圖可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動(dòng)化技(1)代數(shù)規(guī)格說明代數(shù)規(guī)格說明使用集合、定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來描述對(duì)象。規(guī)格說明的操作語義用這些方程表示。(1)代數(shù)規(guī)格說明代數(shù)規(guī)格說明使用集合、定義于這些集合上的函

NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(stk,elem))=elem其中,前三行定義了操作的語法,后兩行把它們的語義定義為一些方程。舉例:定義一個(gè)無界的棧及其操作NEW_STACK:→Stack舉例:定(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說明形式。從一個(gè)初始狀態(tài)開始接收輸入,到產(chǎn)生輸出,狀態(tài)在推移變化。施加在狀態(tài)元素上的約束確定了有效狀態(tài)的推移。(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)舉例:建立用戶/程序?qū)υ捙e例:建立用戶/程序?qū)υ挘?)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說明用一種可執(zhí)行的語言程序代替定義處理邏輯的結(jié)構(gòu)化英語,數(shù)據(jù)流圖就成為由可執(zhí)行語言程序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持下就可成為一個(gè)可以執(zhí)行的原型系統(tǒng)。(3)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)基于腳本的設(shè)計(jì)腳本是指用戶界面的原型。一個(gè)腳本用以模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關(guān)對(duì)話的模型。因此,軟件開發(fā)者能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖。基于腳本的設(shè)計(jì)腳本是指用戶界面的原型。一個(gè)腳本用以模擬在系統(tǒng)可在任一腳本中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求??墒褂靡环N原型語言來描述原型系統(tǒng)。原型開發(fā)過程中用這種語言來定義屏幕、數(shù)據(jù)項(xiàng)、及其相關(guān)的操作。從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫(kù)的接口、錯(cuò)誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細(xì)節(jié)??稍谌我荒_本中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求自動(dòng)程序設(shè)計(jì)自動(dòng)程序設(shè)計(jì)是指在程序自動(dòng)生成環(huán)境的支持下,利用計(jì)算機(jī)實(shí)現(xiàn)軟件的開發(fā)。它可以自動(dòng)地或半自動(dòng)地把用戶的非過程式問題規(guī)格說明轉(zhuǎn)換為某種高級(jí)語言程序:

演繹綜合手段:基于數(shù)學(xué)推理的構(gòu)造式證明。自動(dòng)程序設(shè)計(jì)自動(dòng)程序設(shè)計(jì)是指在程序自動(dòng)生成環(huán)境的支持下,利用程序變換手段:將一程序轉(zhuǎn)換成另一功能等價(jià)的程序,并保持其正確性不變。實(shí)例推廣手段:從實(shí)例特征出發(fā),將它推廣為待編程序的特征,最后得到程序。

過程化手段:研究甚高級(jí)語言的編譯和知識(shí)的過程化。程序變換手段:專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用語言,可方便用戶和軟件開發(fā)者在計(jì)劃中的系統(tǒng)特性方面的交流。專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)造的原型系統(tǒng)。為了快速地構(gòu)造原型,這些模塊首先必須有簡(jiǎn)單而清晰的界面;其次它們應(yīng)當(dāng)盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu);第三,它們應(yīng)具有一些通用的功能。軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)簡(jiǎn)化假設(shè)簡(jiǎn)化假設(shè)是在開發(fā)過程中使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)所做的假設(shè)。盡管這些假設(shè)可能實(shí)際上并不能成立,但它們?cè)谠烷_發(fā)過程中可以使開發(fā)者的注意力集中在一些主要的方面。簡(jiǎn)化假設(shè)簡(jiǎn)化假設(shè)是在開發(fā)過程中使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)在修改一個(gè)文件時(shí),可以假設(shè)這個(gè)文件確實(shí)存在在存取文件時(shí),待存取的記錄總是存在一旦計(jì)劃中的系統(tǒng)滿足用戶所有的要求,就可以撤消這些假設(shè),并追加一些細(xì)節(jié)。在修改一個(gè)文件時(shí),可以假設(shè)這個(gè)文件確實(shí)存在系統(tǒng)動(dòng)態(tài)分析系統(tǒng)的需求規(guī)格說明通常是用自然語言來敘述的,但是用自然語言描述往往會(huì)出現(xiàn)歧義性。為了直觀地分析系統(tǒng)的動(dòng)作,從特定的視點(diǎn)出發(fā)描述系統(tǒng)的行為,需要采用動(dòng)態(tài)分析的方法。系統(tǒng)動(dòng)態(tài)分析系統(tǒng)的需求規(guī)格說明通常是用自然語言來敘述的,但是3.4最常用的動(dòng)態(tài)分析方法狀態(tài)遷移圖時(shí)序圖Petri網(wǎng)3.4最常用的動(dòng)態(tài)分析方法狀態(tài)遷移圖狀態(tài)遷移圖狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何相應(yīng)外部的信號(hào)進(jìn)行推移的一種圖形表示。

圓圈“○”表示可得到的系統(tǒng)狀態(tài)

箭頭“→”表示從一種狀態(tài)向另一種狀態(tài)的遷移。狀態(tài)遷移圖狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何相應(yīng)外部的信號(hào)進(jìn)行推例如,當(dāng)有多個(gè)申請(qǐng)占用CPU運(yùn)行的進(jìn)程時(shí),有關(guān)CPU分配的進(jìn)程的狀態(tài)遷移。例如,當(dāng)有多個(gè)申請(qǐng)占用CPU運(yùn)行的進(jìn)程時(shí),有關(guān)CPU分可得到的狀態(tài)=就緒,運(yùn)行,等待生成的事件=t1,t2,

t3,

t4t1─

中斷事件

t2─

中斷已處理t3─

分配CPUt4─

用完CPU時(shí)間可得到的狀態(tài)=就緒,運(yùn)行,等待狀態(tài)遷移圖的優(yōu)點(diǎn)狀態(tài)之間的關(guān)系能夠直觀地捕捉到由于狀態(tài)遷移圖的單純性,能夠機(jī)械地分析許多情況,可很容易地建立分析工具狀態(tài)遷移圖的優(yōu)點(diǎn)狀態(tài)之間的關(guān)系能夠直觀地捕捉到在系統(tǒng)分析中,用時(shí)序圖于對(duì)比在系統(tǒng)中處理事件的時(shí)序和相應(yīng)的處理時(shí)間。在右圖中,對(duì)于事件e,功能1~功能3

的處理時(shí)間總計(jì)為(T1

+T2+T3)其中功能間切換時(shí)間0。時(shí)序圖在系統(tǒng)分析中,用時(shí)序圖于對(duì)比在系統(tǒng)中處理事件的時(shí)序和相應(yīng)的處采用擴(kuò)充時(shí)序圖可表示進(jìn)程間的通信流,用于分析幾個(gè)事件的交錯(cuò)現(xiàn)象。,C1與C2,R1與R2是交錯(cuò)的。因此,可以做如下分析:“必須設(shè)計(jì)成HOST1在等待C1的回答R1期間要能接收從HOST2發(fā)出的命令C2?!辈捎脭U(kuò)充時(shí)序圖可表示進(jìn)程間的通信流,用于分析幾個(gè)事件Petri網(wǎng)

Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨(dú)立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。Petri網(wǎng)Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開Petri網(wǎng)簡(jiǎn)稱PNG(PetriNetGraph),它有兩種結(jié)點(diǎn):位置(place):符號(hào)為“○”,它用來表示系統(tǒng)的狀態(tài)。轉(zhuǎn)移(transition):符號(hào)為“”,它用來表示系統(tǒng)中的事件。

圖中的有向邊表示對(duì)轉(zhuǎn)移的輸入,或由轉(zhuǎn)移的輸出Petri網(wǎng)簡(jiǎn)稱PNG(PetriNetGraph),標(biāo)記,或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志標(biāo)記,或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)軟件工程需求分析課件軟件工程需求分析課件

處理兩個(gè)進(jìn)程的同步問題

處理兩個(gè)進(jìn)程的同步問題 軟件工程需求分析課件3.5數(shù)據(jù)及數(shù)據(jù)庫(kù)需求在數(shù)據(jù)詞典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯設(shè)計(jì),并用數(shù)據(jù)結(jié)構(gòu)表達(dá)數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系。但任何一個(gè)軟件系統(tǒng)都可能有成千上萬個(gè)數(shù)據(jù)項(xiàng),僅僅描述這些數(shù)據(jù)項(xiàng)是不夠的,更重要的是如何把它們以最優(yōu)的方式組織起來,以滿足系統(tǒng)對(duì)數(shù)據(jù)的要求。3.5數(shù)據(jù)及數(shù)據(jù)庫(kù)需求在數(shù)據(jù)詞典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯有關(guān)數(shù)據(jù)庫(kù)的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實(shí)世界中存在的事物及其聯(lián)系的反映。人們通常將與數(shù)據(jù)處理有關(guān)的的領(lǐng)域分為三個(gè)世界:

現(xiàn)實(shí)世界信息世界數(shù)據(jù)世界有關(guān)數(shù)據(jù)庫(kù)的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實(shí)世界中存現(xiàn)實(shí)世界是存在于人們頭腦之外的客觀世界,現(xiàn)實(shí)世界中的事物可分成對(duì)象和性質(zhì)兩大類。對(duì)象可以是人、是物,還可以是實(shí)際的東西或概念的東西,例如,大學(xué)、城市等。對(duì)象還可以指事物與事物間的聯(lián)系。性質(zhì)則是指事物的性質(zhì)或特征。現(xiàn)實(shí)世界是存在于人們頭腦之外的客觀世界,現(xiàn)實(shí)世界中的事物可分信息世界也叫做觀念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映。客觀世界中的事物在信息世界中叫做實(shí)體,反映事物之間聯(lián)系的叫做實(shí)體模型。實(shí)體是由若干屬性的屬性值組成。屬性是實(shí)體某一方面的特征,相應(yīng)于事物的性質(zhì)。例如,一個(gè)學(xué)生實(shí)體是如下的一個(gè)5元組:(951149,袁秋慧,女,19,軟件)信息世界也叫做觀念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映。(95元組中每一元素是學(xué)生的某一屬性的屬性值。他們對(duì)應(yīng)的屬性集合是:這些屬性集合表征了“學(xué)生”實(shí)體的類型,叫做實(shí)體型。同一類型的實(shí)體的集合叫做實(shí)體集。數(shù)據(jù)世界則是信息世界中信息的數(shù)據(jù)化,現(xiàn)實(shí)世界中的事物及其聯(lián)系在數(shù)據(jù)世界中用數(shù)據(jù)模型描述。(學(xué)號(hào),姓名,性別,年齡,專業(yè))5元組中每一元素是學(xué)生的某一屬性的屬性值。他們對(duì)應(yīng)的屬性集合描述每一實(shí)體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項(xiàng)或字段。與實(shí)體集相對(duì)應(yīng)的稱為文件。例如,學(xué)生文件就由多個(gè)記錄組成,這些記錄放在一起構(gòu)成一個(gè)二維表。表中每一橫排叫做一個(gè)記錄或元組,每一縱列叫做一個(gè)屬性。描述每一實(shí)體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項(xiàng)或字段。

記錄由數(shù)據(jù)項(xiàng)組成,正如實(shí)體由若干屬性的屬性值組成一樣。一般數(shù)據(jù)項(xiàng)沿用屬性名。用做屬性名時(shí)表示觀念信息,用做數(shù)據(jù)項(xiàng)名時(shí)表示數(shù)據(jù)信息。每個(gè)數(shù)據(jù)項(xiàng)包括兩個(gè)特征:即數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度。若干同類型的記錄構(gòu)成文件。為了對(duì)文件中的記錄有效組織和存取,通常指定一個(gè)數(shù)據(jù)項(xiàng)進(jìn)行區(qū)別,這個(gè)數(shù)據(jù)項(xiàng)叫做關(guān)鍵字。記錄由數(shù)據(jù)項(xiàng)組成,正如實(shí)體由若干屬性的屬性值組成一樣。E-R方法(Entity-RelationshipApproach)和實(shí)體模型在需求分析階段進(jìn)行數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)過程中,使用E-R圖,可定義一個(gè)實(shí)體模型。實(shí)體模型是現(xiàn)實(shí)世界的純表示,它不涉及數(shù)據(jù)世界的數(shù)據(jù)結(jié)構(gòu)、存取路徑、存取效率等問題。因此,它可以轉(zhuǎn)換成數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型。E-R方法(Entity-RelationshipAp數(shù)據(jù)可以按相應(yīng)數(shù)據(jù)模型進(jìn)行組織。E-R圖中表示實(shí)體聯(lián)系的符號(hào)如下:數(shù)據(jù)可以按相應(yīng)數(shù)據(jù)模型進(jìn)行組織。在E-R圖中,每個(gè)方框表示實(shí)體型或?qū)傩裕娇蛑g的連線表示實(shí)體之間,或?qū)嶓w與屬性之間的聯(lián)系。出現(xiàn)在連線上的短豎線可以看成是“1”,而圓圈隱含表示“0”。例如,在教學(xué)管理中,一個(gè)教師可以教授零門、一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課程。因此,教學(xué)管理中涉及的對(duì)象(實(shí)體型)有學(xué)生、教師和課程。在E-R圖中,每個(gè)方框表示實(shí)體型或?qū)傩?,方框之間的連線表示實(shí)用E-R圖描述它們之間的聯(lián)系,得下圖。其中,學(xué)生與課程是多對(duì)多的聯(lián)系,而教師與課程的聯(lián)系是零、一對(duì)多。用E-R圖描述它們之間的聯(lián)系,得下圖。其中,學(xué)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論