《軟件工程基礎》全套PPT課件
《軟件工程基礎》全套PPT課件,軟件工程基礎,軟件工程,基礎,全套,PPT,課件
2.1 軟件需求獲取的任務 軟件需求(軟件需求(software requirement)是為)是為了解決用戶的問題或?qū)崿F(xiàn)用戶的目標,用了解決用戶的問題或?qū)崿F(xiàn)用戶的目標,用戶所需的軟件必須滿足的能力和條件戶所需的軟件必須滿足的能力和條件。獲取軟件需求要涉及到多種人員,每種人獲取軟件需求要涉及到多種人員,每種人員對需求的描述是不同的員對需求的描述是不同的 主要的需求種類 業(yè)務需求:描述了使用軟件系統(tǒng)要達到什么目標。業(yè)務需求:描述了使用軟件系統(tǒng)要達到什么目標。系統(tǒng)需求:為了滿足用戶解決問題需要的條件或系統(tǒng)需求:為了滿足用戶解決問題需要的條件或能力,系統(tǒng)或系統(tǒng)成分必須滿足或具有的條件或能力,系統(tǒng)或系統(tǒng)成分必須滿足或具有的條件或能力。能力。功能需求:規(guī)定了軟件必須實現(xiàn)的功能性需求。功能需求:規(guī)定了軟件必須實現(xiàn)的功能性需求。非功能需求非功能需求:在滿足功能需求的基礎上,軟件系統(tǒng)在滿足功能需求的基礎上,軟件系統(tǒng)還必須具有一定的特性和必須遵循一定的約束,還必須具有一定的特性和必須遵循一定的約束,非功能需求描述相應的特性和約束。非功能需求描述相應的特性和約束。2.2 軟件需求的獲取與確認過程 2.3 快速原型化方法快速原型化方法原型法(原型法(prototyping)是這樣的一種軟件是這樣的一種軟件開發(fā)技術,通過開發(fā)軟件的初期版本讓用開發(fā)技術,通過開發(fā)軟件的初期版本讓用戶進行反饋來確定軟件的可行性,研究開戶進行反饋來確定軟件的可行性,研究開發(fā)技術或開發(fā)過程支持的其他問題。發(fā)技術或開發(fā)過程支持的其他問題??焖僭突焖僭突╮apidprototyping)是一種原型)是一種原型法,它的重點是在開發(fā)過程的早期就開發(fā)出原法,它的重點是在開發(fā)過程的早期就開發(fā)出原型,使反饋和分析提前,以支持開發(fā)過程型,使反饋和分析提前,以支持開發(fā)過程1。2.3 快速原型化方法快速原型化方法(1)演示原型)演示原型 通過演示原型向用戶展示一些界面,讓用通過演示原型向用戶展示一些界面,讓用戶判斷基于該原型的系統(tǒng)是否能夠滿足他戶判斷基于該原型的系統(tǒng)是否能夠滿足他們的要求。們的要求。(2)技術驗證原型技術驗證原型 該原型在技術層上實現(xiàn)軟件的部分功能,該原型在技術層上實現(xiàn)軟件的部分功能,以驗證技術上的可行性。以驗證技術上的可行性。2.4 基于用況的方法基于用況的方法基于用況的方法通過建立用況模型來獲取基于用況的方法通過建立用況模型來獲取與確定需求。與確定需求。在建立用況模型時,要確定系統(tǒng)邊界,找在建立用況模型時,要確定系統(tǒng)邊界,找出在系統(tǒng)邊界以外與系統(tǒng)交互的事物,然出在系統(tǒng)邊界以外與系統(tǒng)交互的事物,然后從這些事物與系統(tǒng)進行交互的角度,通后從這些事物與系統(tǒng)進行交互的角度,通過用況來描述這些事物怎樣使用系統(tǒng),以過用況來描述這些事物怎樣使用系統(tǒng),以及系統(tǒng)向它們提供什么功能。及系統(tǒng)向它們提供什么功能。2.4.1系統(tǒng)邊界系統(tǒng)邊界系統(tǒng)邊界系統(tǒng)邊界是系統(tǒng)的所有內(nèi)部成分與系統(tǒng)以外各種是系統(tǒng)的所有內(nèi)部成分與系統(tǒng)以外各種事物的分界線。事物的分界線。系統(tǒng)只通過邊界上的有限個接口與外部的系統(tǒng)使系統(tǒng)只通過邊界上的有限個接口與外部的系統(tǒng)使用者(人員、設備或外系統(tǒng))進行交互。用者(人員、設備或外系統(tǒng))進行交互。2.4.1系統(tǒng)邊界系統(tǒng)邊界現(xiàn)實世界中的事物與系統(tǒng)的關系包括如下幾種情況:現(xiàn)實世界中的事物與系統(tǒng)的關系包括如下幾種情況:某些事物位于系統(tǒng)邊界內(nèi),作為系統(tǒng)成分。某些事物位于系統(tǒng)邊界內(nèi),作為系統(tǒng)成分。某些事物位于系統(tǒng)邊界外,作為參與者。某些事物位于系統(tǒng)邊界外,作為參與者。某某些些事事物物可可能能既既有有一一個個對對象象作作為為其其抽抽象象描描述述,而而本本身身(作作為為現(xiàn)現(xiàn)實世界中的事物)又是在系統(tǒng)邊界以外與系統(tǒng)進行交互的參與者。實世界中的事物)又是在系統(tǒng)邊界以外與系統(tǒng)進行交互的參與者。某些事物即使屬于問題域,也與系統(tǒng)責任沒有什么關系。某些事物即使屬于問題域,也與系統(tǒng)責任沒有什么關系。認識清楚上述事物之間的關系,也就劃分出了系統(tǒng)邊界。認識清楚上述事物之間的關系,也就劃分出了系統(tǒng)邊界。2.4.2參與者參與者參與者參與者(actor)定義了一組在功能上密切相定義了一組在功能上密切相關的角色,當一個事物與系統(tǒng)交互時,該關的角色,當一個事物與系統(tǒng)交互時,該事物可以扮演這樣的角色。事物可以扮演這樣的角色。參與者的表示法 2.4.2參與者參與者識別參與者識別參與者 參與者是在系統(tǒng)之外的與系統(tǒng)進參與者是在系統(tǒng)之外的與系統(tǒng)進行交互的任何事物。這些事物可行交互的任何事物。這些事物可為人員、外部系統(tǒng)或設備。為人員、外部系統(tǒng)或設備。2.4.2參與者參與者人員人員直接使用系統(tǒng)的人員是參與者。這里強調(diào)的是直直接使用系統(tǒng)的人員是參與者。這里強調(diào)的是直接使用,而不是間接使用。接使用,而不是間接使用。外部系統(tǒng)外部系統(tǒng)所有與本系統(tǒng)交互的外部系統(tǒng)都是參與者。所有與本系統(tǒng)交互的外部系統(tǒng)都是參與者。相對相對于當前在正在開發(fā)的系統(tǒng)而言,外部系統(tǒng)可以是于當前在正在開發(fā)的系統(tǒng)而言,外部系統(tǒng)可以是其他子系統(tǒng)、下級系統(tǒng)或上級系統(tǒng),也即任何與其他子系統(tǒng)、下級系統(tǒng)或上級系統(tǒng),也即任何與它進行協(xié)作的系統(tǒng),但對這樣的系統(tǒng)的開發(fā)并不它進行協(xié)作的系統(tǒng),但對這樣的系統(tǒng)的開發(fā)并不是開發(fā)本系統(tǒng)的人員的責任。是開發(fā)本系統(tǒng)的人員的責任。設備設備識別所有與系統(tǒng)交互的設備:這樣的設備與系統(tǒng)識別所有與系統(tǒng)交互的設備:這樣的設備與系統(tǒng)相連并向系統(tǒng)提供外界信息,也可能系統(tǒng)要向這相連并向系統(tǒng)提供外界信息,也可能系統(tǒng)要向這樣的設備提供信息,設備在系統(tǒng)的控制下運行。樣的設備提供信息,設備在系統(tǒng)的控制下運行。2.4.3 用況用況用況用況(use case)是描述系統(tǒng)的一項功能的一是描述系統(tǒng)的一項功能的一組動作序列,這樣的動作序列表示參與者組動作序列,這樣的動作序列表示參與者與系統(tǒng)間的交互,系統(tǒng)執(zhí)行該動作序列要與系統(tǒng)間的交互,系統(tǒng)執(zhí)行該動作序列要為參與者產(chǎn)生結(jié)果。為參與者產(chǎn)生結(jié)果。用況名用況的表示法 2.4.3 用況用況使用用況來可視化、詳述、構(gòu)造和文檔化所希望的系統(tǒng)行使用用況來可視化、詳述、構(gòu)造和文檔化所希望的系統(tǒng)行為。盡管用況中描述的行為是系統(tǒng)級的,但在用況內(nèi)所描為。盡管用況中描述的行為是系統(tǒng)級的,但在用況內(nèi)所描述的交互中的動作應該是詳細的,準則是對用況的理解不述的交互中的動作應該是詳細的,準則是對用況的理解不產(chǎn)生歧義即可。若描述得過于綜合,則不易認識清楚系統(tǒng)產(chǎn)生歧義即可。若描述得過于綜合,則不易認識清楚系統(tǒng)的功能。的功能。用況描述中的一個動作應該描述參與者或系統(tǒng)要完成的交用況描述中的一個動作應該描述參與者或系統(tǒng)要完成的交互中的一個步驟。互中的一個步驟。在用況中只描述參與者和系統(tǒng)彼此為對方直接地做了些什在用況中只描述參與者和系統(tǒng)彼此為對方直接地做了些什么事,不描述怎么做,也不描述間接地做了些什么。么事,不描述怎么做,也不描述間接地做了些什么。系統(tǒng)所產(chǎn)生的結(jié)果,是指系統(tǒng)對參與者的動作要做出響應。系統(tǒng)所產(chǎn)生的結(jié)果,是指系統(tǒng)對參與者的動作要做出響應。用況描述的是參與者所使用的一項系統(tǒng)功能,該項功能應用況描述的是參與者所使用的一項系統(tǒng)功能,該項功能應該相對完整。也即應該保證用況是某一項功能的完整的規(guī)該相對完整。也即應該保證用況是某一項功能的完整的規(guī)格說明,而不能只是其中的一個片段。格說明,而不能只是其中的一個片段。在用況描述中,由參與者首先發(fā)起交互的可能性較大,但在用況描述中,由參與者首先發(fā)起交互的可能性較大,但有些交互也可能是由系統(tǒng)首先發(fā)起的。有些交互也可能是由系統(tǒng)首先發(fā)起的。收款員收款收款員收款輸入開始本次收款的命令;輸入開始本次收款的命令;作好收款準備,應收款總作好收款準備,應收款總 數(shù)置為數(shù)置為0 0,輸出提示信息;,輸出提示信息;for for 顧客選購的每種商品顧客選購的每種商品 dodo 輸入商品編號;輸入商品編號;if if 此種商品多于一件此種商品多于一件 thenthen 輸入商品數(shù)量輸入商品數(shù)量 end ifend if;檢索商品名稱及單價;檢索商品名稱及單價;貨架商品數(shù)減去售出數(shù);貨架商品數(shù)減去售出數(shù);if if 貨架商品數(shù)低于下限貨架商品數(shù)低于下限thenthen 通知供貨員請求上貨通知供貨員請求上貨 end ifend if;計算本種商品總價并打印編號、計算本種商品總價并打印編號、名稱、數(shù)量、單價、總價;名稱、數(shù)量、單價、總價;總價累加到應收款總數(shù);總價累加到應收款總數(shù);end forend for;打印應收款總數(shù);打印應收款總數(shù);輸入顧客交來的款數(shù);輸入顧客交來的款數(shù);計算應找回的款數(shù),計算應找回的款數(shù),打印以上兩個數(shù)目,打印以上兩個數(shù)目,應收款數(shù)計入帳冊。應收款數(shù)計入帳冊。例2.4.3 用況用況用況與參與者之間的關系用況與參與者之間的關系 一個參與者可以同多個用況交互,一個用況也一個參與者可以同多個用況交互,一個用況也可以同多個參與者交互??梢酝鄠€參與者交互。把參與者與用況間的這種交互關系稱為關聯(lián)。把參與者與用況間的這種交互關系稱為關聯(lián)。若沒做具體的規(guī)定,交互是雙向的,即參與者若沒做具體的規(guī)定,交互是雙向的,即參與者能夠?qū)ο到y(tǒng)進行請求,系統(tǒng)也能夠要求參與者能夠?qū)ο到y(tǒng)進行請求,系統(tǒng)也能夠要求參與者采取某些動作。采取某些動作。把參與者和用況之間的關聯(lián)表示成參與者和用把參與者和用況之間的關聯(lián)表示成參與者和用況之間的一條實線。若要明確地指出參與者和況之間的一條實線。若要明確地指出參與者和用況之間的通訊是單向的,就在關聯(lián)線上接收用況之間的通訊是單向的,就在關聯(lián)線上接收通訊的那端加一個箭頭,用以指示方向。通訊的那端加一個箭頭,用以指示方向。2.4.3 用況用況收款檢查售貨員售貨員售貨員售貨員統(tǒng)計員統(tǒng)計員統(tǒng)計員統(tǒng)計員2.4.3 用況用況1 1)包含)包含 A用況XA用況Y A(A)(A)用況X用況Y 2.4.3 用況用況從從基基用用況況到到被被包包含含用用況況的的包包包包含含含含關關關關系系系系表表明明:基基用用況況在在它它內(nèi)內(nèi)部部說明的某一(些)位置上顯式地使用供應者用況的行為的結(jié)果。說明的某一(些)位置上顯式地使用供應者用況的行為的結(jié)果。通通過過一一個個敞敞開開的的虛虛線線箭箭頭頭表表示示用用況況之之間間的的包包含含關關系系,該該箭箭頭頭 從從 基基 用用 況況 指指 向向 被被 包包 含含 的的 用用 況況。這這 個個 箭箭 頭頭 用用 關關 鍵鍵 字字標記。標記。被包含用況被包含用況基用況基用況2.4.3 用況用況2.4.3 用況用況1 1)擴展)擴展 If AIF CIF AIF C用況X用況Y A CIF(A)IF(C)IF(A)IF(C)用況X用況Y 2.4.3 用況用況從從基基用用況況到到擴擴展展用用況況的的擴擴擴擴展展展展關關關關系系系系表表明明:按按基基用用況況中中指指定定的的擴擴展展條條件件,把把擴擴展展用用況況的的行行為為插插入入到到由由基基用用況況中中的的擴擴展展點點定定義義的位置。的位置。通通過過敞敞開開的的虛虛線線箭箭頭頭表表示示用用況況之之間間的的擴擴展展關關系系,該該箭箭頭頭從從提提供供擴擴展展的的用用況況指指向向基基用用況況。這這個個箭箭頭頭用用關關鍵鍵字字標標記。可以在這個關鍵字附近表示這個關系的條件。記??梢栽谶@個關鍵字附近表示這個關系的條件。基用況基用況擴展用況擴展用況基用況是可單獨存在的,但是在一定的條件下,基用況是可單獨存在的,但是在一定的條件下,它的行為可以被另一個用況的行為擴展。在擴它的行為可以被另一個用況的行為擴展。在擴展用況中可定義一組行為增量,在其中定義的展用況中可定義一組行為增量,在其中定義的行為離開基用況單獨是沒意義的。行為離開基用況單獨是沒意義的。一個擴展用況可以擴展多個用況,一個用況也一個擴展用況可以擴展多個用況,一個用況也可以被多個用況擴展,甚至一個擴展用況自身可以被多個用況擴展,甚至一個擴展用況自身也可以被其他擴展用況來擴展。也可以被其他擴展用況來擴展。2.4.3 用況用況一個一個擴展點擴展點是基用況中的一個位置,是基用況中的一個位置,在這樣的位置上,如果擴展條件為真,在這樣的位置上,如果擴展條件為真,就在其中插入擴展用況中描述的全部動就在其中插入擴展用況中描述的全部動作序列或其中的一部分,并予以執(zhí)行。作序列或其中的一部分,并予以執(zhí)行。執(zhí)行完后,基用況繼續(xù)執(zhí)行擴展點下面執(zhí)行完后,基用況繼續(xù)執(zhí)行擴展點下面的行為。如果擴展條件為假,擴展不會的行為。如果擴展條件為假,擴展不會發(fā)生。發(fā)生??梢园褦U展點列在用況中的一個題可以把擴展點列在用況中的一個題頭為頭為“擴展點擴展點”的分欄中。以一種適當?shù)姆謾谥?。以一種適當?shù)姆绞浇o出擴展點的位置描述,通常采的方式給出擴展點的位置描述,通常采用普通的文本。用普通的文本?;脹r基用況擴展用況擴展用況2.4.3 用況用況3)泛化)泛化用用況況之之間間的的泛泛化化關關系系就就像像類類之之間間的的泛泛化化關關系系一一樣樣。子子用用況況繼繼承承父父用用況況的的行行為為和和含含義義;子子用用況況還還可可以以增增加加或或覆覆蓋蓋父父用用況況的的行行為為;子子用用況況可可以以出出現(xiàn)現(xiàn)在在父父用用況況出出現(xiàn)現(xiàn)的的任任何何位位置置(父父和和子均有具體的實例)。子均有具體的實例)。用一個指向父用況的帶有封閉的空心箭頭的實線來表示用一個指向父用況的帶有封閉的空心箭頭的實線來表示用況之間的泛化關系。用況之間的泛化關系。BA捕獲用況捕獲用況1 1)利用參與者捕獲用況)利用參與者捕獲用況)利用參與者捕獲用況)利用參與者捕獲用況 對所有的參與者(把自己作為參與者),提問下列問題:對所有的參與者(把自己作為參與者),提問下列問題:每個參與者的主要任務是什么?每個參與者的主要任務是什么?粗粒度粗粒度它們參加了什么在本質(zhì)上是不同的過程?它們參加了什么在本質(zhì)上是不同的過程?能能完完成成特特定定功功能能的的每每一一項項活活動動明明確確地地是是一一個個用用況況。這這些些參參與與者者參參與與的活動,通常會導致其它用況。的活動,通常會導致其它用況。2.4.3 用況用況2)從系統(tǒng)功能角度捕獲用況)從系統(tǒng)功能角度捕獲用況(1)以以窮窮舉舉的的方方式式檢檢查查用用戶戶對對系系統(tǒng)統(tǒng)的的功功能能需需求求是是否否能能在在各各個個用用況況中中體體現(xiàn)現(xiàn)出出來。來。(2)以以窮窮舉舉的的方方式式考考慮慮每每一一個個參參與與者者與與系系統(tǒng)統(tǒng)的的交交互互情情況況,看看看看每每個個參參與與者者要要求求系系統(tǒng)統(tǒng)提提供供什什么么功功能能,以以及及參參與與者者的的每每一一項項輸輸入入信信息息將將要要求求系系統(tǒng)統(tǒng)作作出出什什么么反映,進行什么處理。反映,進行什么處理。(3)考考慮慮對對例例外外情情況況的的處處理理。針針對對用用況況描描述述的的基基本本流流,要要詳詳盡盡地地考考慮慮各各種種其他的情況其他的情況(4)一一個個用用況況描描述述一一項項功功能能,這這項項功功能能不不能能過過大大。例例如如,把把一一個個企企業(yè)業(yè)信信息息管管理理系系統(tǒng)統(tǒng)粗粗略略地地分分為為生生產(chǎn)產(chǎn)管管理理、供供銷銷管管理理、財財務務管管理理和和人人事事管管理理等等幾幾大大方方面面的功能,就顯得粒度太大了,應該再進行細化。的功能,就顯得粒度太大了,應該再進行細化。(5 5)一一個個用用況況應應該該是是一一個個完完整整的的任任務務,通通常常應應該該在在一一個個相相對對短短的的時時間間段段內(nèi)內(nèi)完完成成。如如果果一一個個用用況況的的各各部部分分被被分分配配在在不不同同的的時時間間段段,尤尤其其被被不不同同的的參參與與者者執(zhí)行,最好還是將各部分作為單獨的用況對待。執(zhí)行,最好還是將各部分作為單獨的用況對待。2.4.3 用況用況場景用況抽象3)、使用場景技術、使用場景技術 如果不能順利地確定一個用況的描述,可“角色扮演”技術。2.4.3 用況用況描述用況描述用況用況文檔模板用況文檔模板用況文檔模板用況文檔模板用況名用況名描述:對該用況的一句或兩句的描述。描述:對該用況的一句或兩句的描述。參與者:該用況的參與者。參與者:該用況的參與者。包含:該用況所包含的用況,以及包含它的用況。包含:該用況所包含的用況,以及包含它的用況。擴展:該用況可以擴展的用況,以及擴展它的用況。擴展:該用況可以擴展的用況,以及擴展它的用況。泛化:該用況的子用況和父用況。泛化:該用況的子用況和父用況。前置條件:啟動該用況所必須具備的條件。前置條件:啟動該用況所必須具備的條件。細節(jié):該用況的細節(jié)。(基本流與可選流)細節(jié):該用況的細節(jié)。(基本流與可選流)后置條件:在該用況結(jié)束時確保成立的條件。后置條件:在該用況結(jié)束時確保成立的條件。例外:在該用況的執(zhí)行的過程中可能引起的例外例外:在該用況的執(zhí)行的過程中可能引起的例外*。限制:在應用中可能出現(xiàn)的任何限制限制:在應用中可能出現(xiàn)的任何限制*。注釋:對該用況是重要的任何附加信息。注釋:對該用況是重要的任何附加信息。2.4.3 用況用況2.4.4 用況圖用況圖用況圖是一幅由一組參與者、一組用況以及這些元素之間的關系組成的圖。處理取款單處理取款單業(yè)務員輸入處理取款命令Include 檢查口令收集客戶的取款單上的信息;加急(擴展點)如果客戶選擇了加急 extend 處理加急取款單檢查口令檢查口令基本流:系統(tǒng)提示客戶輸入密碼??蛻舭存I輸入密碼,并按“輸入”按鈕確認。系統(tǒng)校驗這個密碼,如果有效,系統(tǒng)承認這次登錄??蛇x流:客戶可以在任何時間按“取消”按鈕取消輸入,然后該用況重新開始??蛇x流:客戶可以在確認之前的任何時刻清除密碼,并重新輸入密碼??蛇x流:如果客戶輸入了一個無效的密碼,用況重新開始。如果連續(xù)3次無效,系統(tǒng)將禁止用戶再次輸入口令。2.5 需求管理需求管理(1)需求標識和分類)需求標識和分類若功能需求的數(shù)目較大且以后往往要發(fā)生變化,若功能需求的數(shù)目較大且以后往往要發(fā)生變化,需要為每個功能性需求指定一個唯一的標識,為需要為每個功能性需求指定一個唯一的標識,為以后的引用需求、變更需求、跟蹤需求和復用需以后的引用需求、變更需求、跟蹤需求和復用需求提供便利。求提供便利。最簡單的方式是為每個需求賦予一個唯一的序最簡單的方式是為每個需求賦予一個唯一的序列號??梢詾樾蛄刑栆?guī)定一個結(jié)構(gòu),如用序列列號??梢詾樾蛄刑栆?guī)定一個結(jié)構(gòu),如用序列號的前號的前2項描述需求的類型。項描述需求的類型。也可以按功能需求的抽象層次來進行數(shù)字編號也可以按功能需求的抽象層次來進行數(shù)字編號2.5 需求管理需求管理若需求量較大,則應該進行分類組織,以便編寫若需求量較大,則應該進行分類組織,以便編寫文檔和使用。采用數(shù)字編號的方式為需求指定標文檔和使用。采用數(shù)字編號的方式為需求指定標識時,也可能涉及對需求分類的問題。識時,也可能涉及對需求分類的問題。常見的分類方式有:現(xiàn)場記錄下來的用戶工作場常見的分類方式有:現(xiàn)場記錄下來的用戶工作場景;從場景抽象出來的用況;業(yè)務規(guī)則;功能性景;從場景抽象出來的用況;業(yè)務規(guī)則;功能性需求;軟件質(zhì)量的屬性,如安全、可靠和易用等;需求;軟件質(zhì)量的屬性,如安全、可靠和易用等;外部接口需求,如用戶界面、硬件接口與其它軟外部接口需求,如用戶界面、硬件接口與其它軟件的接口等;對設計與實現(xiàn)等約束;業(yè)務數(shù)據(jù)項件的接口等;對設計與實現(xiàn)等約束;業(yè)務數(shù)據(jù)項的定義,如數(shù)據(jù)項的數(shù)據(jù)格式、數(shù)據(jù)類型、缺省的定義,如數(shù)據(jù)項的數(shù)據(jù)格式、數(shù)據(jù)類型、缺省值等;等等。值等;等等。2.5 需求管理需求管理(2)變更管理)變更管理需求變化是不可避免的。需求變化是不可避免的。在軟件利益相關者對軟件需求達到共識后,在軟件利益相關者對軟件需求達到共識后,需要定義需求基線。需求基線是經(jīng)過正式需要定義需求基線。需求基線是經(jīng)過正式評審與同意、用作下一步開發(fā)的基礎的軟評審與同意、用作下一步開發(fā)的基礎的軟件需求。后續(xù)的需求變更必須遵循正式的件需求。后續(xù)的需求變更必須遵循正式的變更控制過程。變更控制過程。按照上述要求,進行需求管理要定義控制按照上述要求,進行需求管理要定義控制需求變更的過程,用以管理所有提議的變需求變更的過程,用以管理所有提議的變更。更。2.5 需求管理需求管理(3)需求跟蹤)需求跟蹤即使進行簡單的需求變更都會影響軟件的其它地即使進行簡單的需求變更都會影響軟件的其它地方。方。進行需求追蹤的一種常見做法是建立需求跟蹤矩進行需求追蹤的一種常見做法是建立需求跟蹤矩陣。通常用矩陣的列給出需求項,行給出與該需陣。通常用矩陣的列給出需求項,行給出與該需求項相關的其它需求項、實現(xiàn)元素或測試用例等。求項相關的其它需求項、實現(xiàn)元素或測試用例等??筛鶕?jù)需要定義需求矩陣中的需求關系,如依可根據(jù)需要定義需求矩陣中的需求關系,如依賴關系、從屬關系、精化關系和實現(xiàn)關系等。賴關系、從屬關系、精化關系和實現(xiàn)關系等。2.5 需求管理需求管理3.1 軟件需求分析階段的任務可以把軟件需求分析階段的工作分為可以把軟件需求分析階段的工作分為4 4個步驟,即個步驟,即獲取需求獲取需求、分析需求分析需求、定義需求定義需求和和驗證需求驗證需求,如,如圖所示。圖所示。軟件需求分析階段的工作步驟軟件需求分析階段的工作步驟 3.1 軟件需求分析階段的任務需求獲取需求獲取 通過啟發(fā)、引導從客戶(或用戶)那里得到的原始通過啟發(fā)、引導從客戶(或用戶)那里得到的原始需求是他們的業(yè)務要求(需求是他們的業(yè)務要求(needs),簡稱為),簡稱為N。這是分析之前獲取的需求,其中可能存在一些實際這是分析之前獲取的需求,其中可能存在一些實際問題,這些問題只有通過分析才能得到解決,直接問題,這些問題只有通過分析才能得到解決,直接把獲取的需求作為軟件設計階段的依據(jù)將會導致嚴把獲取的需求作為軟件設計階段的依據(jù)將會導致嚴重的后果。重的后果。3.1 軟件需求分析階段的任務需求分析需求分析 認真研究獲取的需求,必須考慮以下幾方面:認真研究獲取的需求,必須考慮以下幾方面:(1)完整性完整性:每項獲取的需求都應給出清楚的描述,:每項獲取的需求都應給出清楚的描述,使得軟件開發(fā)工作能夠取得設計和實現(xiàn)該功能所使得軟件開發(fā)工作能夠取得設計和實現(xiàn)該功能所需要的全部必要信息。需要的全部必要信息。(2)正確性正確性:獲取的每項需求必須是準確無誤的,:獲取的每項需求必須是準確無誤的,并且需求描述無歧義性。并且需求描述無歧義性。(3)合理性合理性:各項需求之間、軟件需求與系統(tǒng)需求:各項需求之間、軟件需求與系統(tǒng)需求之間應是協(xié)調(diào)一致的,不應存在矛盾和沖突。之間應是協(xié)調(diào)一致的,不應存在矛盾和沖突。3.1 軟件需求分析階段的任務需求分析需求分析 (4)可行性可行性:包括技術可行性:包括技術可行性、經(jīng)濟可行性、經(jīng)濟可行性、社、社會可行性會可行性。(5)充分性充分性:獲取的需求是否全面、周到。:獲取的需求是否全面、周到。3.1 軟件需求分析階段的任務需求分析需求分析 由于分析的過程會對獲取的需求做部分調(diào)整,也即由于分析的過程會對獲取的需求做部分調(diào)整,也即從獲取的需求從獲取的需求N中去掉了一些中去掉了一些a,又補充了一些,又補充了一些c,從而得到的是分析的需求從而得到的是分析的需求R1(b+c)。)。3.1 軟件需求分析階段的任務需求定義需求定義 將已經(jīng)過分析的需求清晰、全面、系統(tǒng)、準確地將已經(jīng)過分析的需求清晰、全面、系統(tǒng)、準確地描述成為正式的文檔,這一步定義需求的工作就描述成為正式的文檔,這一步定義需求的工作就是編寫需求規(guī)格說明。是編寫需求規(guī)格說明。3.1 軟件需求分析階段的任務需求驗證需求驗證 為了確保已定義的需求(需求規(guī)格說明)準確無為了確保已定義的需求(需求規(guī)格說明)準確無誤,并能為客戶(或用戶)理解和接受,需要對誤,并能為客戶(或用戶)理解和接受,需要對其進行嚴格的評審。其進行嚴格的評審。3.2 結(jié)構(gòu)化分析方法簡介結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法傳統(tǒng)的分析建模方法稱為結(jié)構(gòu)化分析傳統(tǒng)的分析建模方法稱為結(jié)構(gòu)化分析(structured analysis,SA)方法。)方法。最有代表性的是一種面向數(shù)據(jù)流進行需求分析的最有代表性的是一種面向數(shù)據(jù)流進行需求分析的方法,最初于方法,最初于20世紀世紀70年代由年代由D.Ross提出,后提出,后來又經(jīng)過擴充,形成了今天的結(jié)構(gòu)化分析方法的來又經(jīng)過擴充,形成了今天的結(jié)構(gòu)化分析方法的框架??蚣?。3.2 結(jié)構(gòu)化分析方法簡介結(jié)構(gòu)化分析模型結(jié)構(gòu)化分析模型 結(jié)構(gòu)化分析方法是一種建模技術,它建立的分析結(jié)構(gòu)化分析方法是一種建模技術,它建立的分析模型如圖所示。模型如圖所示。3.3 功能建模概念概念 功能建模的思想就是用抽象模型的概念,按照軟功能建模的思想就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分件內(nèi)部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。功能模型用為止。功能模型用數(shù)據(jù)流圖數(shù)據(jù)流圖來描述。來描述。3.3 功能建模數(shù)據(jù)流圖的基本圖形符號數(shù)據(jù)流圖的基本圖形符號3.3 功能建模 多個數(shù)據(jù)流之間的關系多個數(shù)據(jù)流之間的關系 3.3 功能建模環(huán)境圖環(huán)境圖環(huán)境圖(環(huán)境圖(context diagram)也稱為)也稱為頂層數(shù)據(jù)流頂層數(shù)據(jù)流圖圖(或(或0層數(shù)據(jù)流圖層數(shù)據(jù)流圖),它僅包括一個數(shù)據(jù)處理過),它僅包括一個數(shù)據(jù)處理過程,也就是要開發(fā)的目標系統(tǒng)。程,也就是要開發(fā)的目標系統(tǒng)。環(huán)境圖的作用是確定系統(tǒng)在其環(huán)境中的位置,通環(huán)境圖的作用是確定系統(tǒng)在其環(huán)境中的位置,通過確定系統(tǒng)的輸入和輸出與外部實體的關系確定過確定系統(tǒng)的輸入和輸出與外部實體的關系確定其邊界。其邊界。3.3 功能建模典型的環(huán)境圖典型的環(huán)境圖招生系統(tǒng)需求描述招生系統(tǒng)需求描述學校首先公布招生條件,考生根據(jù)自己的條件報學校首先公布招生條件,考生根據(jù)自己的條件報名,之后系統(tǒng)進行資格審查,并給出資格審查信名,之后系統(tǒng)進行資格審查,并給出資格審查信息;息;對于資格審查合格的考生可以參加答卷,系統(tǒng)根對于資格審查合格的考生可以參加答卷,系統(tǒng)根據(jù)學校提供的試題及答案進行自動判卷,并給出據(jù)學校提供的試題及答案進行自動判卷,并給出分數(shù)及答題信息,供考生查詢;分數(shù)及答題信息,供考生查詢;最后系統(tǒng)根據(jù)學校的錄取分數(shù)線進行錄取,并將最后系統(tǒng)根據(jù)學校的錄取分數(shù)線進行錄取,并將錄取信息發(fā)送給考生。錄取信息發(fā)送給考生。3.3 功能建模招生系統(tǒng)的環(huán)境圖招生系統(tǒng)的環(huán)境圖 3.3 功能建模數(shù)據(jù)流圖的分層數(shù)據(jù)流圖的分層對于稍微復雜一些的實際問題,在數(shù)據(jù)流圖上常對于稍微復雜一些的實際問題,在數(shù)據(jù)流圖上常常出現(xiàn)十幾個甚至幾十個加工,這樣的數(shù)據(jù)流圖常出現(xiàn)十幾個甚至幾十個加工,這樣的數(shù)據(jù)流圖看起來不直觀,不易理解,分層的數(shù)據(jù)流圖能很看起來不直觀,不易理解,分層的數(shù)據(jù)流圖能很好地解決這一問題。好地解決這一問題。按照系統(tǒng)的層次結(jié)構(gòu)進行逐步分解,并以分層的按照系統(tǒng)的層次結(jié)構(gòu)進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關系,能清楚地表達和容數(shù)據(jù)流圖反映這種結(jié)構(gòu)關系,能清楚地表達和容易理解整個系統(tǒng)。易理解整個系統(tǒng)。3.3 功能建模招生系統(tǒng)的分層數(shù)據(jù)流圖招生系統(tǒng)的分層數(shù)據(jù)流圖 3.3 功能建模數(shù)據(jù)流圖的分層示意圖數(shù)據(jù)流圖的分層示意圖 3.3 功能建模實例研究實例研究 銀行儲蓄系統(tǒng)的業(yè)務流程:銀行儲蓄系統(tǒng)的業(yè)務流程:儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng);儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng);如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期號碼)、身份證號碼、存款類型、存款日期、到期日期、利率、密碼(可選)等信息,并印出存單給日期、利率、密碼(可選)等信息,并印出存單給儲戶;儲戶;如果是取款而且開戶時留有密碼,則系統(tǒng)首先核對如果是取款而且開戶時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。計算利息并印出利息清單給儲戶。要求畫出分層的數(shù)據(jù)流圖,并細化到要求畫出分層的數(shù)據(jù)流圖,并細化到2層數(shù)據(jù)流圖。層數(shù)據(jù)流圖。3.3 功能建模(1)識別外部實體及輸入輸出數(shù)據(jù)流。識別外部實體及輸入輸出數(shù)據(jù)流。外部實體外部實體:儲戶、業(yè)務員。:儲戶、業(yè)務員。輸入數(shù)據(jù)輸入數(shù)據(jù):如果需要儲戶輸入密碼,儲戶才直接:如果需要儲戶輸入密碼,儲戶才直接與系統(tǒng)進行交互。儲戶填寫的存款或取款信息通與系統(tǒng)進行交互。儲戶填寫的存款或取款信息通過業(yè)務員鍵入系統(tǒng),可以將存款及取款信息抽象過業(yè)務員鍵入系統(tǒng),可以將存款及取款信息抽象為事務。為事務。輸出數(shù)據(jù)輸出數(shù)據(jù):存款單,利息清單。:存款單,利息清單。3.3 功能建模(2)畫出環(huán)境圖(頂層數(shù)據(jù)流圖)畫出環(huán)境圖(頂層數(shù)據(jù)流圖)3.3 功能建模(3)畫出一層數(shù)據(jù)流圖畫出一層數(shù)據(jù)流圖 3.3 功能建模(4)畫出二層數(shù)據(jù)流圖畫出二層數(shù)據(jù)流圖 對一層圖中的對一層圖中的“處理存款處理存款”及及“處理取款處理取款”進行進行進一步分解,得到二層數(shù)據(jù)流圖,即進一步分解,得到二層數(shù)據(jù)流圖,即處理存款的處理存款的數(shù)據(jù)流圖數(shù)據(jù)流圖和和處理取款的數(shù)據(jù)流圖處理取款的數(shù)據(jù)流圖。處理存款的數(shù)據(jù)流圖處理存款的數(shù)據(jù)流圖3.3 功能建模(4)畫出二層數(shù)據(jù)流圖畫出二層數(shù)據(jù)流圖處理取款的數(shù)據(jù)流圖處理取款的數(shù)據(jù)流圖3.4 數(shù)據(jù)建模在結(jié)構(gòu)化分析方法中,使用實體在結(jié)構(gòu)化分析方法中,使用實體關系建模技術關系建模技術來建立數(shù)據(jù)模型。來建立數(shù)據(jù)模型。這種技術是在較高的抽象層次(概念層)上對數(shù)這種技術是在較高的抽象層次(概念層)上對數(shù)據(jù)庫結(jié)構(gòu)進行建模的流行技術。據(jù)庫結(jié)構(gòu)進行建模的流行技術。實體實體關系模型表示為可視化的實體關系模型表示為可視化的實體關系圖關系圖(entity-relationship diagramentity-relationship diagram,ERDERD),也稱),也稱為為ERER圖。圖。ERER圖中僅包含圖中僅包含3 3種相互關聯(lián)的元素:種相互關聯(lián)的元素:數(shù)據(jù)對象數(shù)據(jù)對象(實(實體)、描述數(shù)據(jù)對象的體)、描述數(shù)據(jù)對象的屬性屬性及數(shù)據(jù)對象彼此間相及數(shù)據(jù)對象彼此間相互連接的互連接的關系關系。3.4 數(shù)據(jù)建模數(shù)據(jù)對象數(shù)據(jù)對象數(shù)據(jù)對象是目標系統(tǒng)所需要的復合信息的表示,數(shù)據(jù)對象是目標系統(tǒng)所需要的復合信息的表示,所謂復合信息是具有若干不同屬性的信息。在所謂復合信息是具有若干不同屬性的信息。在ERER圖中用矩形表示數(shù)據(jù)對象。圖中用矩形表示數(shù)據(jù)對象。在實際問題中,數(shù)據(jù)對象(實體)可以是外部實在實際問題中,數(shù)據(jù)對象(實體)可以是外部實體、事物、角色、行為或事件、組織單位、地點體、事物、角色、行為或事件、組織單位、地點或結(jié)構(gòu)等?;蚪Y(jié)構(gòu)等。3.4 數(shù)據(jù)建模屬性屬性屬性定義數(shù)據(jù)對象的特征,如數(shù)據(jù)對象屬性定義數(shù)據(jù)對象的特征,如數(shù)據(jù)對象學生學生的學號、姓名、的學號、姓名、性別、專業(yè)等,性別、專業(yè)等,課程課程的課程編號、課程名稱、學分等。的課程編號、課程名稱、學分等。在在ERER圖中用橢圓或圓角矩形表示屬性,并用無向邊將屬性圖中用橢圓或圓角矩形表示屬性,并用無向邊將屬性與相關的數(shù)據(jù)對象連接在一起。與相關的數(shù)據(jù)對象連接在一起。3.4 數(shù)據(jù)建模關系關系不同數(shù)據(jù)對象的實例之間是有關聯(lián)關系的,在不同數(shù)據(jù)對象的實例之間是有關聯(lián)關系的,在ERER圖上用圖上用無向邊無向邊表示。表示。在無向邊的兩端應標識出關聯(lián)實例的數(shù)量,也稱在無向邊的兩端應標識出關聯(lián)實例的數(shù)量,也稱為關聯(lián)的為關聯(lián)的重數(shù)重數(shù)。從關聯(lián)重數(shù)的角度可以將關聯(lián)分為種。從關聯(lián)重數(shù)的角度可以將關聯(lián)分為種。(1)(1)一對一(一對一(1:11:1)關聯(lián))關聯(lián)(2)(2)一對多(一對多(1:m1:m)關聯(lián))關聯(lián)(3)(3)多對多(多對多(m:nm:n)關聯(lián))關聯(lián)實例關聯(lián)還有實例關聯(lián)還有“必須必須”和和“可選可選”之分。之分。3.4 數(shù)據(jù)建模關聯(lián)數(shù)量的表示關聯(lián)數(shù)量的表示在在ERER圖中用圓圈表示所關聯(lián)的實例是可選的,隱含圖中用圓圈表示所關聯(lián)的實例是可選的,隱含表示表示“0 0”,沒有出現(xiàn)圓圈就意味著是必須的。出,沒有出現(xiàn)圓圈就意味著是必須的。出現(xiàn)在連線上的短豎線可以看成是現(xiàn)在連線上的短豎線可以看成是“1 1”。3.4 數(shù)據(jù)建模關聯(lián)關系舉例關聯(lián)關系舉例3.4 數(shù)據(jù)建模關系的屬性關系的屬性關系本身也可能有屬性,這在多對多的關系中尤關系本身也可能有屬性,這在多對多的關系中尤其常見,如學生和課程之間的關系可起名為其常見,如學生和課程之間的關系可起名為“選選課課”,其,其屬性屬性應該有應該有學期學期、成績成績等。等。關系屬性的表示關系屬性的表示:在表示關系的無向邊上再加一:在表示關系的無向邊上再加一個菱形框,并在菱形框中標明關系的名字,關系個菱形框,并在菱形框中標明關系的名字,關系的屬性同樣用橢圓形或圓角矩形表示,并用無向的屬性同樣用橢圓形或圓角矩形表示,并用無向邊將關系與其屬性連接起來。邊將關系與其屬性連接起來。3.4 數(shù)據(jù)建模關系的屬性關系的屬性3.4 數(shù)據(jù)建模銀行儲銀行儲蓄系統(tǒng)蓄系統(tǒng)的的ERER圖圖3.5 行為建模狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)圖中使用的主要符號如圖所示。狀態(tài)圖中使用的主要符號如圖所示。3.5 行為建模狀態(tài)狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式,狀態(tài)規(guī)定了系統(tǒng)狀態(tài)代表系統(tǒng)的一種行為模式,狀態(tài)規(guī)定了系統(tǒng)對事件的響應方式。對事件的響應方式。狀態(tài)可能有:狀態(tài)可能有:初態(tài)初態(tài)(初始狀態(tài))、(初始狀態(tài))、終態(tài)終態(tài)(最終狀(最終狀態(tài))和態(tài))和中間態(tài)中間態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有多個,也可以沒有。有多個,也可以沒有。3.5 行為建模狀態(tài)的表示:狀態(tài)的表示:初態(tài)用初態(tài)用實心圓實心圓表示,終態(tài)用表示,終態(tài)用牛眼牛眼圖形圖形表示,中間態(tài)用表示,中間態(tài)用圓角矩形圓角矩形表示。表示。3.5 行為建模狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換。換。狀態(tài)的變遷通常是由事件觸發(fā)的,在這種情況下狀態(tài)的變遷通常是由事件觸發(fā)的,在這種情況下應在表示狀態(tài)轉(zhuǎn)換的箭頭線上標出觸發(fā)轉(zhuǎn)換的事應在表示狀態(tài)轉(zhuǎn)換的箭頭線上標出觸發(fā)轉(zhuǎn)換的事件表達式。件表達式。如果在箭頭線上未標明事件,則表示在源狀態(tài)的如果在箭頭線上未標明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完之后自動觸發(fā)轉(zhuǎn)換。內(nèi)部活動執(zhí)行完之后自動觸發(fā)轉(zhuǎn)換。3.5 行為建模狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換下圖為計算機應用軟件的啟動過程,在這個過程下圖為計算機應用軟件的啟動過程,在這個過程中沒有外部事件觸發(fā),每個狀態(tài)下的活動完成時,中沒有外部事件觸發(fā),每個狀態(tài)下的活動完成時,狀態(tài)發(fā)生轉(zhuǎn)換。狀態(tài)發(fā)生轉(zhuǎn)換。3.5 行為建模事件事件事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外部事件的抽象。事件表或從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外部事件的抽象。事件表達式的語法如下:達式的語法如下:事件說明(守衛(wèi)條件)事件說明(守衛(wèi)條件)/動作表達式動作表達式(1)(1)事件說明事件說明的語法如下:的語法如下:事件名(參數(shù)表)事件名(參數(shù)表)(2)(2)守衛(wèi)條件守衛(wèi)條件是一個布爾表達式。如果同時使用守衛(wèi)條件和事是一個布爾表達式。如果同時使用守衛(wèi)條件和事件說明,則當且僅當事件發(fā)生且布爾表達式成立時,狀態(tài)轉(zhuǎn)件說明,則當且僅當事件發(fā)生且布爾表達式成立時,狀態(tài)轉(zhuǎn)換才發(fā)生。如果只有守衛(wèi)條件沒有事件說明,則只要守衛(wèi)條換才發(fā)生。如果只有守衛(wèi)條件沒有事件說明,則只要守衛(wèi)條件為真,狀態(tài)轉(zhuǎn)換就發(fā)生。件為真,狀態(tài)轉(zhuǎn)換就發(fā)生。(3)(3)動作表達式動作表達式是一個過程表達式,當狀態(tài)轉(zhuǎn)換開始時執(zhí)行該是一個過程表達式,當狀態(tài)轉(zhuǎn)換開始時執(zhí)行該表達式。表達式。3.5 行為建模存款過程的狀態(tài)圖存款過程的狀態(tài)圖(考慮新開戶考慮新開戶 )3.5 行為建模取款過程的狀態(tài)圖取款過程的狀態(tài)圖3.6 數(shù)據(jù)字典數(shù)據(jù)字典以詞條方式定義在數(shù)據(jù)模型、功能模型數(shù)據(jù)字典以詞條方式定義在數(shù)據(jù)模型、功能模型和行為模型中出現(xiàn)的數(shù)據(jù)對象及控制信息的特性,和行為模型中出現(xiàn)的數(shù)據(jù)對象及控制信息的特性,給出它們的準確定義,包括數(shù)據(jù)流、加工、數(shù)據(jù)給出它們的準確定義,包括數(shù)據(jù)流、加工、數(shù)據(jù)文件、數(shù)據(jù)元素,以及數(shù)據(jù)源點、數(shù)據(jù)匯點等。文件、數(shù)據(jù)元素,以及數(shù)據(jù)源點、數(shù)據(jù)匯點等。數(shù)據(jù)字典成為把數(shù)據(jù)字典成為把3 3種分析模型黏合在一起的種分析模型黏合在一起的“黏合黏合劑劑”,是分析模型的,是分析模型的“核心核心”。3.6 數(shù)據(jù)字典詞條描述詞條描述對于在數(shù)據(jù)流圖中每一個被命名的圖形元素均加對于在數(shù)據(jù)流圖中每一個被命名的圖形元素均加以定義;以定義;其內(nèi)容包括圖形元素的名字,圖形元素的別名或其內(nèi)容包括圖形元素的名字,圖形元素的別名或編號,圖形元素類別(如加工、數(shù)據(jù)流、數(shù)據(jù)文編號,圖形元素類別(如加工、數(shù)據(jù)流、數(shù)據(jù)文件、數(shù)據(jù)元素、數(shù)據(jù)源點或數(shù)據(jù)匯點等)、描述、件、數(shù)據(jù)元素、數(shù)據(jù)源點或數(shù)據(jù)匯點等)、描述、定義、位置等。定義、位置等。3.6 數(shù)據(jù)字典數(shù)據(jù)流詞條數(shù)據(jù)流詞條數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳播的路徑,數(shù)據(jù)流詞數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳播的路徑,數(shù)據(jù)流詞條應包括以下幾項內(nèi)容。條應包括以下幾項內(nèi)容。數(shù)據(jù)流名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。數(shù)據(jù)流名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。簡述:簡要介紹它產(chǎn)生的原因和結(jié)果。簡述:簡要介紹它產(chǎn)生的原因和結(jié)果。組成:數(shù)據(jù)流的數(shù)據(jù)結(jié)構(gòu)。組成:數(shù)據(jù)流的數(shù)據(jù)結(jié)構(gòu)。來源:數(shù)據(jù)流來自哪個加工或作為哪個數(shù)據(jù)源的外部實體。來源:數(shù)據(jù)流來自哪個加工或作為哪個數(shù)據(jù)源的外部實體。去向:數(shù)據(jù)流流向哪個加工或作為哪個數(shù)據(jù)匯點的外部實體。去向:數(shù)據(jù)流流向哪個加工或作為哪個數(shù)據(jù)匯點的外部實體。流通量:單位時間數(shù)據(jù)的流通量。流通量:單位時間數(shù)據(jù)的流通量。峰值:流通量的極限值。峰值:流通量的極限值。3.6 數(shù)據(jù)字典數(shù)據(jù)元素詞條數(shù)據(jù)元素詞條數(shù)據(jù)流圖中的每個數(shù)據(jù)結(jié)構(gòu)都是由數(shù)據(jù)元素構(gòu)成的,數(shù)據(jù)數(shù)據(jù)流圖中的每個數(shù)據(jù)結(jié)構(gòu)都是由數(shù)據(jù)元素構(gòu)成的,數(shù)據(jù)元素是數(shù)據(jù)處理中最小的、不可再分的單位,它直接反映元素是數(shù)據(jù)處理中最小的、不可再分的單位,它直接反映事物的某一特征。事物的某一特征。類型:數(shù)據(jù)元素分為數(shù)字型與文字型。數(shù)字型又分為離類型:數(shù)據(jù)元素分為數(shù)字型與文字型。數(shù)字型又分為離散值和連續(xù)值,文字的類型用編碼類型和長度區(qū)分。散值和連續(xù)值,文字的類型用編碼類型和長度區(qū)分。取值范圍:離散值的取值或是枚舉的(如取值范圍:離散值的取值或是枚舉的(如3 3,1717,2121),),或是介于上下界的一組數(shù)(如或是介于上下界的一組數(shù)(如2.1002.100);連續(xù)值一般是有);連續(xù)值一般是有取值范圍的實數(shù)集(如取值范圍的實數(shù)集(如0.0.100.00.0.100.0)。對于文字型,文字)。對于文字型,文字的取值需加以定義。的取值需加以定義。相關的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)。相關的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)。3.6 數(shù)據(jù)字典數(shù)據(jù)存儲文件詞條數(shù)據(jù)存儲文件詞條數(shù)據(jù)存儲文件是數(shù)據(jù)保存的地方。一個數(shù)據(jù)存儲文件詞條數(shù)據(jù)存儲文件是數(shù)據(jù)保存的地方。一個數(shù)據(jù)存儲文件詞條應有以下幾項內(nèi)容。應有以下幾項內(nèi)容。文件名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。文件名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。簡述:簡要介紹存放的是什么數(shù)據(jù)。簡述:簡要介紹存放的是什么數(shù)據(jù)。組成:文件的數(shù)據(jù)結(jié)構(gòu)。組成:文件的數(shù)據(jù)結(jié)構(gòu)。輸入:從哪些加工獲取數(shù)據(jù)。輸入:從哪些加工獲取數(shù)據(jù)。輸出:由哪些加工使用數(shù)據(jù)。輸出:由哪些加工使用數(shù)據(jù)。存取方式:分為順序、直接、關鍵碼等不同存取方式。存取方式:分為順序、直接、關鍵碼等不同存取方式。存取頻率:單位時間的存取次數(shù)。存取頻率:單位時間的存取次數(shù)。3.6 數(shù)據(jù)字典加工詞條加工詞條加工可以使用諸如判定表、判定樹、結(jié)構(gòu)化語言加工可以使用諸如判定表、判定樹、結(jié)構(gòu)化語言等形式表達,主要描述如下。等形式表達,主要描述如下。加工名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。加工名:要求與數(shù)據(jù)流圖中該圖形元素的名字一致。編號:用以反映該加工的層次和父子關系。編號:用以反映該加工的層次和父子關系。簡述:加工邏輯及功能簡述。簡述:加工邏輯及功能簡述。輸入:加工的輸入數(shù)據(jù)流。輸入:加工的輸入數(shù)據(jù)流。輸出:加工的輸出數(shù)據(jù)流。輸出:加工的輸出數(shù)據(jù)流。加工邏輯:簡述加工程序和加工順序。加工邏輯:簡述加工程序和加工順序。3.6 數(shù)據(jù)字典數(shù)據(jù)源點及數(shù)據(jù)匯點詞條數(shù)據(jù)源點及數(shù)據(jù)匯點詞條對于一個數(shù)據(jù)處理系統(tǒng)來說,數(shù)據(jù)源點和數(shù)據(jù)匯對于一個數(shù)據(jù)處理系統(tǒng)來說,數(shù)據(jù)源點和數(shù)據(jù)匯點應比較少。點應比較少。名稱:要求與數(shù)據(jù)流圖中該外部實體的名字一致。名稱:要求與數(shù)據(jù)流圖中該外部實體的名字一致。簡述:簡要描述是什么外部實體。簡述:簡要描述是什么外部實體。有關數(shù)據(jù)流:該實體與系統(tǒng)交互時涉及哪些數(shù)據(jù)流。有關數(shù)據(jù)流:該實體與系統(tǒng)交互時涉及哪些數(shù)據(jù)流。數(shù)目:該實體與系統(tǒng)交互的次數(shù)。數(shù)目:該實體與系統(tǒng)交互的次數(shù)。3.6 數(shù)據(jù)字典數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)描述構(gòu)描述在數(shù)據(jù)字典的編制中,分析員最常用的描述數(shù)在數(shù)據(jù)字典的編制中,分析員最常用的描述數(shù)據(jù)結(jié)構(gòu)的方式有定義式、據(jù)結(jié)構(gòu)的方式有定義式、WarnierWarnier圖等。圖等。(1)(1)定義式。在數(shù)據(jù)流圖中,數(shù)據(jù)流和數(shù)據(jù)文件都定義式。在數(shù)據(jù)流圖中,數(shù)據(jù)流和數(shù)據(jù)文件都具有一定的數(shù)據(jù)結(jié)構(gòu),因此,必須以一種清晰、具有一定的數(shù)據(jù)結(jié)構(gòu),因此,必須以一種清晰、準確、無二義性的方式來描述數(shù)據(jù)結(jié)構(gòu)。準確、無二義性的方式來描述數(shù)據(jù)結(jié)構(gòu)。(2)(2)WarnierWarnier圖。圖。WarnierWarnier圖是表示數(shù)據(jù)結(jié)構(gòu)的另一圖是表示數(shù)據(jù)結(jié)構(gòu)的另一種圖形工具,它用樹形結(jié)構(gòu)來描繪數(shù)據(jù)結(jié)構(gòu)。種圖形工具,它用樹形結(jié)構(gòu)來描繪數(shù)據(jù)結(jié)構(gòu)。3.6 數(shù)據(jù)字典定義式中的符號定義式中的符號3.6 數(shù)據(jù)字典定義式舉例:存折定義式舉例:存折3.6 數(shù)據(jù)字典存折的定義格式存折的定義格式存折戶名所號賬號開戶日性質(zhì)(印密)存折戶名所號賬號開戶日性質(zhì)(印密)11存取行存取行5050所號所號“001001”.“999999”戶名戶名22字母字母2424賬號賬號“0000000000100000000001”.“9999999999999999999999”開戶日年月日開戶日年月日性質(zhì)性質(zhì)“1 1”.“6 6”印密(印密(“0 0”|“000001000001”.“999999999999”)存取行日期(摘要)支出存入余額操作復核存取行日期(摘要)支出存入余額操作復核日期年月日日期年月日年年“00010001”.“99999999”月月“0101”.“1212”日日“0101”.“3131”3.6 數(shù)據(jù)字典存折的定義格式存折的定義格式摘要摘要11字母字母44支出金額支出金額 存入金額存入金額余額金額余額金額金額金額“0000000.010000000.01”.“9999999.999999999.99”操作操作“0000100001”.“9999999999”復核復核“0000100001”.“9999999999”字母字母“a a”.“z z”|“A A”.“Z Z”3.6 數(shù)據(jù)字典WarnierWarnier圖圖舉例:存折舉例:存折 3.7 加工規(guī)格說明在對數(shù)據(jù)流圖的分解中,位于層次樹最低層的加工在對數(shù)據(jù)流圖的分解中,位于層次樹最低層的加工也稱為也稱為基本加工基本加工或或原子加工原子加工,對于每一個基本加工,對于每一個基本加工都需要進一步說明,這稱為都需要進一步說明,這稱為加工規(guī)格說明加工規(guī)格說明。在編寫基本加工的規(guī)格說明時,主要目的是要表達在編寫基本加工的規(guī)格說明時,主要目的是要表達“做什么做什么”,而不是,而不是“怎樣做怎樣做”。3.7 加工規(guī)格說明加工規(guī)格說明應滿足如下的要求加工規(guī)格說明應滿足如下的要求:(1)(1)對數(shù)據(jù)流圖的每一個基本加工,必須有一個加對數(shù)據(jù)流圖的每一個基本加工,必須有一個加工規(guī)格說明。工規(guī)格說明。(2)(2)加工規(guī)格說明必須描述基本加工如何把輸入數(shù)加工規(guī)格說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。(3)(3)加工規(guī)格說明必須描述實現(xiàn)加工的策略而不是加工規(guī)格說明必須描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細節(jié)。實現(xiàn)加工的細節(jié)。(4)(4)加工規(guī)格說明中包含的信息應是充足的,完備加工規(guī)格說明中包含的信息應是充足的,完備的,有用的,沒有重復的多余信息。的,有用的,沒有重復的多余信息。3.7 加工規(guī)格說明決策表決策表決策表由決策表由4 4個部分組成:個部分組成:左上部分是左上部分是條件茬條件茬,在此區(qū)域列出了各種可能的單個條,在此區(qū)域列出了各種可能的單個條件;件;左下部分是左下部分是動作茬動作茬,在此區(qū)域列出了可能采取的單個動,在此區(qū)域列出了可能采取的單個動作;作;右上部分是右上部分是條件項條件項,在此區(qū)域列出了針對各種條件的每,在此區(qū)域列出了針對各種條件的每一組條件取值的組合;一組條件取值的組合;右下部分是右下部分是動作項動作項,這些動作項與條件項緊密相關,它,這些動作項與條件項緊密相關,它指出了在條件項的各組取值的組合情況下應采取的動作。指出了在條件項的各組取值的組合情況下應采取的動作。3.7 加工規(guī)格說明決策表舉例決策表舉例商店業(yè)務處理系統(tǒng)中商店業(yè)務處理系統(tǒng)中“檢查訂貨單檢查訂貨單”的決策表。的決策表。3.7 加工規(guī)格說明決策表的改進決策表的改進 如果表中有兩條或更多的處理規(guī)則具有相同的動作,并且如果表中有兩條或更多的處理規(guī)則具有相同的動作,并且其條件項之間存在著某種關系,就可設法將它們合并。其條件項之間存在著某種關系,就可設法將它們合并。3.7 加工規(guī)格說明建立決策表的步驟建立決策表的步驟(1)(1)列出與一個具體過程(或模塊)有關的所有處理。列出與一個具體過程(或模塊)有關的所有處理。(2)(2)列出過程執(zhí)行期間的所有條件(或所有判斷)。列出過程執(zhí)行期間的所有條件(或所有判斷)。(3)(3)將特定條件取值組合與特定的處理相匹配,消去不可能將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。發(fā)生的條件取值組合。(4)(4)將右部每一縱列規(guī)定為一個處理規(guī)則,即對于某一條件將右部每一縱列規(guī)定為一個處理規(guī)則,即對于某一條件取值組合將有什么動作。取值組合將有什么動作。3.7 加工規(guī)格說明決策樹決策樹決策樹(決策樹(decision treedecision tree)也是用來表達加工邏輯的一種)也是用來表達加工邏輯的一種工具,有時侯它比決策表更直觀。工具,有時侯它比決策表更直觀。檢查訂貨單的決策樹檢查訂貨單的決策樹 3.8 需求規(guī)格說明需求分析階段的重要任務之一是根據(jù)分析的結(jié)果需求分析階段的重要任務之一是根據(jù)分析的結(jié)果編寫需求規(guī)格說明,經(jīng)過嚴格評審并得到用戶確編寫需求規(guī)格說明,經(jīng)過嚴格評審并得到用戶確認之后,作為這個階段的最終成果。認之后,作為這個階段的最終成果。按照國家標準按照國家標準GB/T 8567GB/T 856720062006計算機軟件文檔計算機軟件文檔編制規(guī)范編制規(guī)范,涉及需求規(guī)格說明的文檔有,涉及需求規(guī)格說明的文檔有“軟件軟件需求規(guī)格說明(需求規(guī)格說明(SRSSRS)”、“數(shù)據(jù)需求說明數(shù)據(jù)需求說明(DRDDRD)”等。等。小結(jié)傳統(tǒng)軟件工程方法學使用結(jié)構(gòu)化分析技術完成用傳統(tǒng)軟件工程方法學使用結(jié)構(gòu)化分析技術完成用戶需求的分析工作。需求分析是發(fā)現(xiàn)、求精、建戶需求的分析工作。需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審的過程。模、規(guī)格說明和復審的過程。為了更好地理解問題,人們常常采用建立模型的為了更好地理解問題,人們常常采用建立模型的方法,結(jié)構(gòu)化分析實質(zhì)上就是一種建?;顒?,方法,結(jié)構(gòu)化分析實質(zhì)上就是一種建?;顒樱谛枨蠓治鲭A段通常建立數(shù)據(jù)模型、功能模型和在需求分析階段通常建立數(shù)據(jù)模型、功能模型和行為模型。行為模型。
收藏
編號:65494723
類型:共享資源
大小:6.60MB
格式:ZIP
上傳時間:2022-03-24
40
積分
- 關 鍵 詞:
-
軟件工程基礎
軟件工程
基礎
全套
PPT
課件
- 資源描述:
-
《軟件工程基礎》全套PPT課件,軟件工程基礎,軟件工程,基礎,全套,PPT,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。