軟件系統(tǒng)分析與設(shè)計4需求2_第1頁
軟件系統(tǒng)分析與設(shè)計4需求2_第2頁
軟件系統(tǒng)分析與設(shè)計4需求2_第3頁
軟件系統(tǒng)分析與設(shè)計4需求2_第4頁
軟件系統(tǒng)分析與設(shè)計4需求2_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章軟件系統(tǒng)需求獲取、分析及描述2023/2/62教學(xué)內(nèi)容4.1軟件需求基礎(chǔ)4.2需求過程

4.3需求獲取4.4需求分析4.5需求確定4.6需求規(guī)格說明書2023/2/634.5.1問題框定4.5.2五個問題框架4.5.3多問題框架§4.5問題確定

2023/2/64域共享現(xiàn)象連接域現(xiàn)實域框架圖從圖到文檔§4.5問題確定

4.5.1問題框定2023/2/65馬的遍歷:馬開始于棋盤的中央如圖3-1所示。問題是找到一系列的移動步驟,使馬走完每個方框,而落入任何一個方框僅一次。圖4-3馬的遍歷§4.5問題確定

2023/2/66§4.5問題確定

書寫軟件需求最重要的步驟是框定問題:把問題的特定部分,以及部分間特定的關(guān)系,放入一個特定的形式中。問題框定方法應(yīng)該使問題得細(xì)節(jié)(不管如何復(fù)雜)適合一個簡單連貫的框架,以便使人們能夠系統(tǒng)地分析他們而不會被問題所壓倒。在馬的遍歷中,方塊上的數(shù)字是潛在的壓倒性細(xì)節(jié)。如圖3-2所示。2023/2/6713§4.5問題確定

圖4-4馬的遍歷,重構(gòu)123456789101112131415161718192021222324251121119810322292061724154723165142518212023/2/68§4.5問題確定

圖4-5分解成域兩個世界取貨

送貨到目的地

打印報表數(shù)據(jù)庫方案接口子程序問題域機(jī)器域需求程序規(guī)格說明書4.5.1問題框定1.域2023/2/69從圖中我們可以看出,每個域包含一組個體即我們想要陳述的顯著事情。如圖3-3中問題域的個體就是:卡車、城市、貨物、司機(jī)、客戶和用戶等等——客觀世界的物理實體。注意:個體的唯一準(zhǔn)則是你總能區(qū)分每個個體——沒有一個個體同時是另一個個體?!?.5問題確定

4.5.1問題框定1.域2023/2/610在每個域中也包含我們想討論這些個體的每件事情,想肯定或者否定一個或多個個體的每一件事,叫做斷言。機(jī)器域包含一組不同的斷言:一個子例程占據(jù)一定的內(nèi)存位置,一個子例程調(diào)用另一個等等。

§4.5問題確定

4.5.1問題框定1.域2023/2/611域也就是一組個體以及伴隨它們的斷言。個體不是現(xiàn)在或過去已存在的個體;它們是軟件必須能夠應(yīng)付的潛在的個體。所以潛在的客戶是問題域的一部分。當(dāng)定義一個域時,我們不需要知道域中現(xiàn)在或?qū)硪乃袑嶋H個體;但我們要詳細(xì)指定將要用于他們的所有斷言。§4.5問題確定

4.5.1問題框定1.域2023/2/612信息類型

域中存在是實體種類——例如:人、車、音樂作品、燃料、道路名稱等實體具有的屬性種類——例如:顏色、狀態(tài)、支付日期、賬戶上有多少錢等實體之間的關(guān)系——例如:司機(jī)擁有一輛汽車、訴訟中的拉辨雙方等

域中發(fā)生的事件類型——例如:轎車可以被賣掉、滾筒可以傳動等實體行為所遵循的因果法則——例如:當(dāng)切僅當(dāng)I/O端口0xf00的bit7為高時,伺服電機(jī)A啟動,當(dāng)伺服電機(jī)A啟動時,滾筒RJ順時鐘傳動表4-2域信息4.5.1問題框定1.域§4.5問題確定

2023/2/613當(dāng)框定問題時,你不需要知道哪個事件將要發(fā)生,但必須知道事件所擁有的所有可能屬性以及它們之間重要的關(guān)系。一個事件的屬性就是參與在事件中的實體;或事件可能發(fā)生的時間和繼續(xù)的時間;事件間的關(guān)系就是之前或之后這樣的事情。§4.5問題確定

4.5.1問題框定1.域2023/2/614提議:確定的實體擁有確定的屬性或相互之間具有的特定關(guān)系。屬性和關(guān)系可以識別一個個體來為自己產(chǎn)生一個提議,或者他們可以為斷言個體進(jìn)行服務(wù)。一般軟件項目,要知道的全部東西是描述每個域中的東西,根據(jù)這些描述,必須解釋全部詞匯以及根據(jù)詞匯框定你的所有描述。§4.5問題確定

4.5.1問題框定1.域2023/2/615有關(guān)如何選擇“什么去調(diào)用一個個體”和“什么去調(diào)用一個斷言”往往依賴于你感興趣斷言和詢問什么。并不是說每一個物理對象一定是個體,而無形的東西像名稱和號碼等一定是斷言。唯一的規(guī)則是無論域的哪個部分都不可立刻成為兩個個體,而且你必須已經(jīng)知道所有你想對個體下的斷言。§4.5問題確定

4.5.1問題框定1.域2023/2/616例子:為一個公共汽車從一地到另一地計算路程編寫需求。我們感興趣的提議是什么?§4.5問題確定

4.5.1問題框定1.域2023/2/617分解成域是框定問題最重要的技巧。我們分解域有兩個主要原因。第一,如果我們明智地選擇個體和斷言,可以限制我們所關(guān)注的范圍。第二,我們可以討論貫穿于兩個域中的因果關(guān)系,或域之間的其他關(guān)系,為了使一個域能夠?qū)崿F(xiàn)一定的效果或能夠與其他域交流信息,它必須與其他域有重疊部分。4.5.1問題框定2.共享現(xiàn)象§4.5問題確定

2023/2/618域中的重疊部分為共享現(xiàn)象。共享現(xiàn)象是兩個域之間所共有的狀態(tài)、事件和對象。如:規(guī)格說明書中描述的輸入/輸出設(shè)備的行為就是一類型的共享現(xiàn)象。如果你把卡車和司機(jī)作為兩個不同的域,那么司機(jī)駕駛卡車就同時發(fā)生在兩個域中,也就是這個事件使他們兩個都從同一個地方移動到另一個地方。4.5.1問題框定2.共享現(xiàn)象§4.5問題確定

2023/2/619共享實例:用戶敲擊的鍵也是軟件接收的鍵。每個軟件在監(jiān)視器上所顯示的像素也是用戶所看見的像素。計算機(jī)中的兩個正在運行的進(jìn)程共享一塊內(nèi)存,保持著一個信號量,一個進(jìn)程通過它來告訴另一個進(jìn)程它本身是否安全地運行一個操作。4.5.1問題框定2.共享現(xiàn)象§4.5問題確定

2023/2/620氧傳感器傳送給轎車內(nèi)微處理器的信號。由同一個微處理器給轎車燃料噴射器傳送信號。一個目錄,程序在其中存放文件供另一個程序以后恢復(fù)使用,或一個郵件夾,用來接收存放新郵件,以后供郵件閱讀者翻閱。職員打出勤卡也是電子出勤卡記錄事件。4.5.1問題框定2.共享現(xiàn)象§4.5問題確定

2023/2/621圖4-6是一個氣象分析研究系統(tǒng),問題域:溫度、氣象站和研究員。圖4-6四個域中的軟件問題溫度氣象站計算機(jī)研究員4.5.1問題框定3.連接域§4.5問題確定

2023/2/622軟件需求是要在研究員和地區(qū)的溫度之間創(chuàng)建一個聯(lián)系:研究員必須能夠按照要求查詢溫度。因此氣象站組成了一個特殊的域類型:連接域。連接域:一個域同我們希望有直接聯(lián)接的域產(chǎn)生共享現(xiàn)象。4.5.1問題框定3.連接域§4.5問題確定

2023/2/623先來看一個例子:藥房和醫(yī)療保險公司之間存在計算機(jī)進(jìn)行交互。當(dāng)病人提供給藥房一個處方時,藥房計算機(jī)要向保險公司的計算機(jī)發(fā)送許可申請。如果此事物符合保險公司所承諾的規(guī)則,保險公司計算機(jī)返還回由病人支付的一筆共付款項金額。藥劑師就收取共付款項,并且保險公司欠藥房藥價減去共付款項后的一筆金額。4.5.1問題框定4.實現(xiàn)域§4.5問題確定

2023/2/624為了設(shè)計包含兩套計算機(jī)的系統(tǒng),我們必須知道這個債權(quán)在哪里,因為要想去控制它們或報告它們,我們必須知道系統(tǒng)如何訪問它們。

債權(quán)必須存在系統(tǒng)之中,系統(tǒng)可以無條件地控制它們。系統(tǒng)要為它們內(nèi)部的債權(quán)創(chuàng)建一個代理。藥房和保險公司承認(rèn)當(dāng)某一特定的比特位模式在計算機(jī)中存在時,保險公司將欠藥房相應(yīng)的一筆金額,要根據(jù)一定的規(guī)則,這個比特位模式就被創(chuàng)建。4.5.1問題框定4.實現(xiàn)域§4.5問題確定

2023/2/625這個規(guī)則就是:在系統(tǒng)中設(shè)置一個授權(quán)能創(chuàng)建一個債權(quán)。這時我們就說系統(tǒng)在他內(nèi)部實現(xiàn)了債權(quán),債權(quán)就是一個實現(xiàn)域。為真實債權(quán)創(chuàng)建一個實現(xiàn)域作為代理,系統(tǒng)就可以控制債權(quán)。沒有保險公司和藥房的協(xié)定,就沒有任何點去亂動計算機(jī)內(nèi)部的比特位。沒有哪一方將付錢給另一方。4.5.1問題框定4.實現(xiàn)域§4.5問題確定

2023/2/626對于人們之間任何類型的承諾,如果一個計算機(jī)想要去操作它,在需求文檔中就必須以實現(xiàn)域來表示。這包括大多是債權(quán)、賬目、運行任務(wù)的責(zé)任、約定的相見時間、在某一時間有權(quán)使用會議室等等。4.5.1問題框定4.實現(xiàn)域§4.5問題確定

2023/2/627用圖形符號來描述軟件問題的所有基本部分,我們把用這種符號繪制的圖稱為框架圖。每個域用一個矩形來表示,兩個域之間的共享現(xiàn)象用一根連接兩個矩形的線來表示。要編程的機(jī)器用雙邊框矩形來表示。寫在雙邊框內(nèi)的詞語表示編程后的計算機(jī)是什么類型的機(jī)器。4.5.1問題框定5.框架圖§4.5問題確定

2023/2/628溫度氣象站信息系統(tǒng)研究員圖4-7溫度信息系統(tǒng)部分框架圖:僅僅是域4.5.1問題框定5.框架圖§4.5問題確定

2023/2/629如果一個域完全包含在另一個域當(dāng)中,如果一組文檔就完全包含在計算機(jī)中,框架圖用一個大實黑點來表示它。文檔字處理系統(tǒng)圖4-8大實黑點顯示一個域完全包含在另一個域中4.5.1問題框定5.框架圖§4.5問題確定

2023/2/630大實黑點還表示那種共享于三個或多個域之間現(xiàn)象的極少情況??ㄜ囻{駛事件貨物圖4-9大實黑點表示多個域卡車司機(jī)地點4.5.1問題框定5.框架圖§4.5問題確定

2023/2/631圖4-10溫度信息系統(tǒng)的完整框架圖用橢圓表示需求,用一根或者多根連線來連接需求所述的域。機(jī)器M在域D內(nèi)產(chǎn)生效果R溫度氣象站信息系統(tǒng)研究員查詢RDM4.5.1問題框定5.框架圖§4.5問題確定

2023/2/632圖4-11溫度信息系統(tǒng)的完整框架圖一個處理數(shù)字圖像的部分軟件框架圖如圖4-11所示。閱讀框架圖的方法所遵循的原則:橢圓屬于哪個域;機(jī)器域與感興趣的域的聯(lián)系。輸入圖像過濾器輸出圖像圖像處理算法RDMD4.5.1問題框定5.框架圖§4.5問題確定

2023/2/633圖4-12溫度信息系統(tǒng)的完整框架圖例如:查詢是需求,機(jī)器M與我們所感興趣的溫度域間接相連。機(jī)器不能直接訪問溫度,需要通過氣象站間接與溫度通訊。溫度氣象站信息系統(tǒng)研究員查詢RDM4.5.1問題框定5.框架圖§4.5問題確定

2023/2/634已經(jīng)框定了溫度信息系統(tǒng)所解決的問題,就可以根據(jù)框架圖的每一個元素文檔化相應(yīng)的細(xì)節(jié)。需求文檔要包含的足夠信息:用戶能初始化的所有查詢列表(如有關(guān)溫度的所有問題)。溫度的描述。氣象站如何與溫度交互的描述(記錄溫度參數(shù)的過程方法等)。4.5.1問題框定6.從圖到文檔§4.5問題確定

2023/2/635氣象站如何與計算機(jī)交互的描述。研究員和計算機(jī)之間聯(lián)系的描述。如果研究員可能有一些不同尋常的行為能影響用戶接口設(shè)計,要對研究員進(jìn)行描述。4.5.1問題框定6.從圖到文檔§4.5問題確定

2023/2/6364.5.2五個問題框架1.概要2.信息問題

3.控制問題4.變換問題5.工件問題6.連接問題§4.5問題確定

2023/2/637需求類型描述問題框架

查詢對有關(guān)部分問題域的信息的請求信息行為規(guī)則問題域?qū)嵤┬袨樗罁?jù)的規(guī)則控制映射輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的映射變換實現(xiàn)域上的操作

用戶對僅存在于軟件內(nèi)的對象所執(zhí)行的操作工件域間一致性使沒有共享現(xiàn)象的域保持相同的狀態(tài)連接五個不同的問題框架與表4-3種所呈現(xiàn)的五種需求類型相對應(yīng)。4.5.2五個問題框架1.概要表4-3五種不同的問題框架§4.5問題確定

2023/2/638大多數(shù)軟件問題同時包含上述幾種需求類型。這里我們總結(jié)如下:

框定問題的目的不是強(qiáng)行使它們適應(yīng)已經(jīng)存在的問題類型;相反,當(dāng)你遇到這些問題時,通過識別熟悉的問題并通過熟悉的問題,來著手解決不熟悉的問題?!?.5問題確定

4.5.2五個問題框架1.概要2023/2/639為信息問題書寫需求,必須描述客觀世界的相關(guān)部分、查詢以及發(fā)起(初始化)查詢的人或事物。真實世界信息系統(tǒng)信息請求者查詢圖4-13信息問題4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/640注意:只有需求滿足查詢,而因果關(guān)系不是信息問題的一部分。如,系統(tǒng)報告狀態(tài),但不對影響狀態(tài)的行為負(fù)責(zé),因為這是兩種類型的需求。因果關(guān)系是另一種需求將在控制問題中討論。下面是解決信息問題的軟件實例:存貨清單控制系統(tǒng)的一部分:顯示所有項庫存數(shù)量,打印有關(guān)庫存數(shù)量少得項目報表,打印每日、每周、每月和每年結(jié)束時的銷售報表。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/641一個網(wǎng)頁搜索引擎:在萬維網(wǎng)上搜索與用戶指定主題相關(guān)的網(wǎng)頁。圖書館目錄系統(tǒng):通知用戶圖書館內(nèi)有什么書籍,它們的書號和其他一些屬性,以及該書是否被借出。圖書館目錄系統(tǒng)的一小部分:登陸圖書館查詢細(xì)節(jié)、發(fā)起查詢來自于哪個終端以及有多少匹配項,幫助人們搜索用于提高上述查詢系統(tǒng)的方法。在這種情況下軟件解決另一個信息問題部分是真實世界部分。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/6421)連接域幾乎所有的信息域都包含一個連接域,從真實世界到將要制作的軟件之間傳遞信息。一般情況下,這個連接域是人手工輸入數(shù)據(jù)。數(shù)據(jù)采集設(shè)備可能是另外一個連接域,氣象站是一個例子。一個列出計算機(jī)內(nèi)目錄下的所有文件的程序,就沒有連接域,但這是個例外。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/6432)靜態(tài)和動態(tài)信息系統(tǒng)報告一個持續(xù)變化的真實世界的狀態(tài)或者歷史,比如賬目余額、目前的股票價格、目前的倉庫貨物變化情況等。這些我們稱其為動態(tài)信息系統(tǒng)。信息系統(tǒng)報告一個變化很小甚至根本沒有變化的真實世界,比如藥片的相互屬性、材料的長度等。這些我們稱其為靜態(tài)信息系統(tǒng)?!?.2.2

信息問題

4.5.2五個問題框架2.信息問題

2023/2/644書寫一個動態(tài)信息問題,你要說明軟件如何訪問那些可能改變查詢結(jié)果的每一個事件。書寫一個靜態(tài)信息問題,你要說明的不是軟件如何訪問真實世界的相關(guān)部分,而是軟件開發(fā)人員如何訪問。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/6453)被動與主動用戶發(fā)出的查詢:用戶輸入有關(guān)X的查詢,系統(tǒng)顯示有關(guān)X的被請求信息。這樣的信息系統(tǒng)對用戶的輸入做出被動的反應(yīng)。一些信息系統(tǒng)在用戶沒有請求信息時也發(fā)出信息給他們。這樣的信息系統(tǒng)對用戶來說系統(tǒng)做出主動的反應(yīng)。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/6464)解決信息問題通常信息問題的解決方案是在計算機(jī)內(nèi)構(gòu)造一個真實世界的模型。模型有計算機(jī)內(nèi)的比特位組成,它們根據(jù)規(guī)則改變狀態(tài),而把比特位映射到真實世界的活動需要遵循這些規(guī)則。描述信息問題解決方案的規(guī)格說明書區(qū)域描述由軟件所維護(hù)的模型,也能夠改變一些查詢結(jié)果的真實世界的每一事件,以及改變模型的相應(yīng)的接口事件。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/647涉及用戶的事件響應(yīng)有兩部分:用戶負(fù)責(zé)執(zhí)行的行為和更新模型。用戶行為是軟件的一個操作規(guī)程。靜態(tài)信息系統(tǒng)的規(guī)格說明書不包含任何事件的響應(yīng),因為沒有事件發(fā)生在問題域。如果問題域偶爾改變,或者它的知識改變(如藥物學(xué)家有關(guān)藥物相互作用的知識),那么規(guī)格說明書必須描述這些事件如何導(dǎo)致對模型的修改。4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/6485)檢查清單

表4-4和4-5列舉了書寫一個信息問題的需求和規(guī)格說明書所需要的信息。表4-4信息問題:需求文檔主題現(xiàn)實世界中的對象和他們的屬性以及關(guān)系存儲有關(guān)對象的數(shù)據(jù)改變查詢結(jié)果的所有真實世界的事件,及這些事件發(fā)生的所有可能順序查詢系統(tǒng)如何訪問對象和事件?(或在靜態(tài)信息問題中,軟件如何訪問它們?)

系統(tǒng)需要訪問的現(xiàn)存文件的文件格式(或者引用現(xiàn)存文檔)

由連接域引入的失真和延遲§4.5問題確定

2023/2/649表4-5信息問題:規(guī)格說明書主題事件響應(yīng)有效性規(guī)則用戶接口,用戶接口所需要的數(shù)據(jù)模型附加物,如優(yōu)先原則操作規(guī)程4.5.2五個問題框架2.信息問題

§4.5問題確定

2023/2/650書寫一個控制問題,需要描述三件事情:(1)客觀世界相關(guān)部分的因果屬性和其中的對象根據(jù)它們自身的本質(zhì)而不是軟件所應(yīng)遵循的規(guī)則;(2)我們想讓它們遵循的規(guī)則;(3)計算機(jī)和問題域所共享的現(xiàn)象,通過它們軟件控制問題域并發(fā)起動作,從而產(chǎn)生必須遵守的2)中的規(guī)則。如圖3-10所示。4.5.2五個問題框架3.控制問題

§4.5問題確定

2023/2/651一個控制問題惟一關(guān)注的是因果關(guān)系。控制器受控域行為規(guī)則圖4-14控制問題4.5.2五個問題框架3.控制問題

§4.5問題確定

2023/2/6521)連接域有些控制問題需要指導(dǎo)人們執(zhí)行各種活動,計算機(jī)起到指導(dǎo)人們行為的作用,但不能完全控制他們,這就在控制問題中出現(xiàn)了連接域。庫存控制系統(tǒng)業(yè)務(wù)規(guī)則雇員倉庫訂單圖4-15控制問題種的連接域4.5.2五個問題框架3.控制問題

§4.5問題確定

2023/2/653當(dāng)接收或者根據(jù)訂單發(fā)送貨物給客戶時,行為規(guī)則僅說明在倉庫內(nèi)移動貨物。存貨控制系統(tǒng)必須依賴于職員告訴它什么時候收到貨物或新的訂單。存貨控制系統(tǒng)能使貨物移動的唯一方法是指導(dǎo)人們?nèi)ヒ苿铀?。失真和延遲:有時發(fā)生了錯誤的貨物移動,錯誤地輸入訂單數(shù)據(jù)等。系統(tǒng)給出一個指示和職員移動貨物之間有一個時間延遲在訂貨部門接受一個訂單和職員把訂單輸入到系統(tǒng)之間也有一個延遲,軟件不能告訴什么時候或是否貨物已經(jīng)真正裝運了等。4.5.2五個問題框架3.控制問題

§4.5問題確定

2023/2/6543)檢查清單表4-6和表4-7例舉了完整書寫一個控制問題需要和規(guī)格說明書所需要的信息。表4-6信息問題:需求文檔主題控制域中的對象:數(shù)據(jù)模型(如果有)控制域的因果法則,包括對象可能發(fā)生的事件行為規(guī)則計算機(jī)在問題域發(fā)起的行為計算機(jī)用于監(jiān)視控制域的共享現(xiàn)象

任何連接域§4.5問題確定

2023/2/655表4-7信息問題:規(guī)格說明書主題觸發(fā)規(guī)格或狀態(tài)表,有計算機(jī)初始化的用于監(jiān)控問題域活動的相關(guān)行為如果系統(tǒng)維護(hù)一個數(shù)據(jù)模型,它的事件響應(yīng)用戶接口和操作規(guī)程(如果有)4.5.2五個問題框架3.控制問題

§4.5問題確定

2023/2/656根據(jù)特定的規(guī)格產(chǎn)生影射到輸入數(shù)據(jù)的輸出數(shù)據(jù)。它的問題框架如圖4-16所示。

圖4-16變換問題輸入數(shù)據(jù)過濾器輸出數(shù)據(jù)映射4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/657輸入數(shù)據(jù)和輸出數(shù)據(jù)是來自于兩個集合的元素。書寫一個變換問題由描述以下內(nèi)容組成:所有可能輸入的集合,所有可能輸出的集合,有關(guān)每一個可能輸入到它相應(yīng)輸出的規(guī)則。規(guī)則,在框架圖中表示為映射,是惟一的需求。一個變換問題能夠簡單地叫做計算或映射問題。計算是根據(jù)一個規(guī)則簡單地輸入數(shù)字映射到輸出數(shù)字。4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/658解決變換問題的例子:在兩個不同字處理器之間轉(zhuǎn)換文件格式的程序。把條形碼轉(zhuǎn)換成數(shù)字的子例程。在大學(xué)的一個學(xué)期中,為學(xué)生、教師、課程分配教室的程序。圖形處理軟件,執(zhí)行一些操作,如從數(shù)字圖像上除去雜質(zhì)。4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/659一個程序,告訴一個公共汽車司機(jī)駕駛哪輛汽車從一個地方到另一個地方,并在指定時間到達(dá)。一個根據(jù)氣象資料產(chǎn)生天氣圖的程序。打印機(jī)驅(qū)動程序:把來自操作系統(tǒng)的打印控制命令轉(zhuǎn)換成等價的控制特定打印機(jī)的命令。根據(jù)衛(wèi)星資料幫助考古學(xué)家發(fā)現(xiàn)沉沒村莊的軟件,這種軟件運用復(fù)雜的規(guī)則把有關(guān)地球表面如何反射可見光的信息轉(zhuǎn)換成為對地表下面存在什么的猜想。4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/6601)解決變換問題解決變換問題的最主要工作是編程,而不是接口設(shè)計。如果軟件要被其它程序訪問,規(guī)格說明必須向需求中添加的所有東西就是接口設(shè)計,或者一個API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)

。2)檢查清單表4-8和表4-9例舉了完整書寫一個變換問題需求和規(guī)格說明書所需要的信息。4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/661表4-8變換問題:需求文檔表4-9信息問題:規(guī)格說明書主題輸入和輸出集合數(shù)據(jù)源和目的地輸入輸出集合之間的映射主題用戶接口和操作規(guī)程(如果有)API(如果有)4.5.2五個問題框架4.變換問題

§4.5問題確定

2023/2/662在工件問題中,軟件的任務(wù)是能使用戶創(chuàng)建對象,如文檔和需求,就如車床幫助一個木匠創(chuàng)造木質(zhì)工件一樣。工件是無形的、僅存在于實現(xiàn)域中的軟件對象,雖然軟件可能產(chǎn)生它們有形的版本,如打印的文檔等。有兩種需求:使用戶能在工件上執(zhí)行指定的操作,在軟件內(nèi)實現(xiàn)工件。書寫一個工件問題大部分工作是描述工件。4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/663它的問題框架如圖4-17。圖4-17工件問題用戶工具工件操作4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/664解決工件問題軟件的例子如下:一個字處理器:在計算機(jī)內(nèi)創(chuàng)建文檔。文檔包含章節(jié)、頁、段落、字符、圖形等等。所有這些都具有軟件設(shè)計人員所創(chuàng)造的屬性和行為。常見交易圖的程序。一個設(shè)計有限電視網(wǎng)絡(luò)的程序。用戶在鄰居間放置各種電纜和設(shè)備去接受服務(wù)。4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/665一個用于創(chuàng)建和顯示有機(jī)分子模型的程序。音樂編輯器。產(chǎn)生警察猜想的犯罪嫌疑人和成草圖的程序。選取下巴、嘴、眼睛、頭發(fā)、顴骨等的證據(jù),去創(chuàng)建一個他們所見到人物的準(zhǔn)確畫像。一個食譜文件。4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/6661)解決工件問題解決工件問題的主要工作通常是用戶接口設(shè)計,剩下的是編寫程序:陳述工件和執(zhí)行操作(我們不涉及這些)。2)檢查清單表3-9和表3-10例舉了書寫一個完整的工件問題需求和規(guī)格說明書所需要的信息。4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/667表4-10工件問題:需求文檔表4-11工件問題:規(guī)格說明書主題工件操作主題用戶接口和操作規(guī)程4.5.2五個問題框架5.工件問題

§4.5問題確定

2023/2/668在連接問題中,存在許多不直接共享現(xiàn)象的域,相反在它們之間通過其他域進(jìn)行連接——連接域。問題是使兩個不直接相連的域在運行時就像它們直接相連一樣,在某種程度上這是可能的。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/669圖4-18顯示了連接域的兩個基本類型。在類型a中,系統(tǒng)需要與所關(guān)心的域相互作用,但必須處理連接域所帶來的從所關(guān)心的域到系統(tǒng)的信息延遲,或者執(zhí)行由系統(tǒng)發(fā)出的命令。系統(tǒng)連接域所關(guān)心的域成功通信圖4-18連接問題a)通過間接連接進(jìn)行4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/670系統(tǒng)A通信系統(tǒng)系統(tǒng)B成功通信圖4-18連接問題b)創(chuàng)建間接連接在類型b中,所要創(chuàng)建的系統(tǒng)是連接域,當(dāng)系統(tǒng)A變化時,它根據(jù)系統(tǒng)A目前的狀態(tài)負(fù)責(zé)改變系統(tǒng)B的狀態(tài)(反之亦然)。在這兩種情況下,需要僅是可以獲得狀態(tài)通信,不是一個完整的通信,因為一個完美通信是不可能得到的。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/671一些連接問題的例子如下:支持一個信息系統(tǒng)的數(shù)據(jù)錄入人員。人工數(shù)據(jù)錄入會引入失真,通常以排版錯誤的形式出現(xiàn),由該錯誤引起的延遲經(jīng)常會在人們真正輸入正確數(shù)據(jù)之前。數(shù)據(jù)倉庫根據(jù)大量的可操作數(shù)據(jù)存儲的數(shù)據(jù)來答復(fù)查詢——數(shù)據(jù)庫中的數(shù)據(jù),如訂購錄入系統(tǒng)、庫存系統(tǒng)等,每個都是按照支持日常需求這個特定任務(wù)來訂做的。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/672書寫一個像圖4-18a中的連接問題要包括描述共享現(xiàn)象之間的映射,這些共享現(xiàn)象包括鏈接連接域和所關(guān)心的域之間的共享現(xiàn)象,以及系統(tǒng)和連接域之間的共享現(xiàn)象,這個映射應(yīng)包括失真類型和由連接域所引入的延遲。記錄系統(tǒng)用于檢測連接域是否正常工作所使用的方法是很有價值的。氣象站例子中:如果有共享現(xiàn)象,系統(tǒng)可以利用它來檢測氣象站不工作或需要校正的情況,這些應(yīng)當(dāng)在需求文檔中進(jìn)行描述。在所關(guān)心的域中什么類型的行為是可能的和不可能的,這些信息可使系統(tǒng)檢測錯誤。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/673

圖4-19所示。如果有多個連接域連接相同的所關(guān)心的域,那么每個連接域的可靠性就認(rèn)為與其它域相關(guān)聯(lián)。例如,如果有三個不同的數(shù)據(jù)庫包含人員姓名、地址、電話號碼等信息,需求文檔可這樣陳述:對于名稱,數(shù)據(jù)庫A比數(shù)據(jù)庫B可靠,B比C可靠,但是對于地址,B和C的可靠性是相同的,都比A要好。需求文檔應(yīng)該說明,這樣規(guī)格說明書就可以利用它。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/674所關(guān)心的域通信系統(tǒng)用戶查詢數(shù)據(jù)庫C數(shù)據(jù)庫B數(shù)據(jù)庫A圖4-19相同所關(guān)心的域的多重連接4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/675書寫一個如圖4-18b所示的連接問題要包含:在狀態(tài)或事件之間相同類型的映射,除非它已是所期望的映射,并具有所期望的失真和延遲特征。在類型b的連接問題中,問題域經(jīng)常包括其它連接域,如圖4-20所示。一個錯誤校正協(xié)議在由通信媒介分離的兩個不同系統(tǒng)中同時運行。媒質(zhì)的失真特征要在需求文檔中描述,正如類型a中連接問題。

通信媒介,如銅芯線,對于不同的數(shù)據(jù)傳輸、不同的無線電頻率等有不同的失真特性,在不同的時間有不同的失真特性。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/676通信系統(tǒng)系統(tǒng)A查詢通信媒介通信B圖4-20創(chuàng)建跨通信媒介的連接通信系統(tǒng)4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/6771)解決連接問題解決連接問題主要是利用問題域中的冗余,在連接問題類型b中,為此需要創(chuàng)建冗余。

在類型b的連接問題中,通常的解決方案是為數(shù)據(jù)添加各種校驗。這些依次稱為如類型a問題中相同的可用冗余。求和校驗與數(shù)據(jù)一起傳輸,通過一個精確的數(shù)學(xué)規(guī)則與數(shù)據(jù)相關(guān)。接收者就可以拋棄那些經(jīng)過校驗與數(shù)據(jù)不匹配的數(shù)據(jù)塊。4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/6782)檢查清單

表4-12和4-13列舉了書寫一個連接問題的需求和規(guī)格說明書所需要的信息。表4-12連接問題:需求文檔主題所關(guān)心域中的狀態(tài)和事件所關(guān)系域中的冗余不同域的狀態(tài)和事件之間的真實或期望的映射真是或期望的由連接域引入的失真或延遲用于說明哪個連接域中存在最可靠數(shù)據(jù)的規(guī)則4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/679表4-13連接問題:規(guī)格說明書主題有效性規(guī)則;當(dāng)違反了有效性規(guī)則時系統(tǒng)所采取的行動增加冗余的操作規(guī)程通信協(xié)議猜測規(guī)則4.5.2五個問題框架6.連接問題

§4.5問題確定

2023/2/6804.5.3多框架問題1.組合問題框架2.庫存控制系統(tǒng)3.統(tǒng)計包4.數(shù)字應(yīng)答機(jī)

5.編譯器6.電子郵件7.衛(wèi)星勘測§4.5問題確定

2023/2/681理論上,當(dāng)你遇到一個復(fù)雜的軟件問題,你可以把它分解成不同的問題框架,這些問題框架只通過類似與一個狹窄的邏輯通道來相互作用,而這些通道適合一個框架的問題部分很少涉及另一個框架的問題部分。

把一個總的問題框定成為一組重疊很少的小問題—僅共享一個或幾個域——是你在需求文檔中對付復(fù)雜性問題的最重要的武器。4.5.3多框架問題1.組合問題框架

§4.5問題確定

2023/2/682庫存控制系統(tǒng)的主要工作是指導(dǎo)運輸貨物進(jìn)出一個倉庫:當(dāng)進(jìn)貨時,指導(dǎo)雇員存儲貨物,而當(dāng)訂單到達(dá)時,指導(dǎo)雇員找到貨物并裝運給客戶。然而,填寫訂單要遵循一定的規(guī)則:如果客戶遠(yuǎn)沒有能力付款,他們的訂單是不能填寫的,不同的訂單有不同的優(yōu)先權(quán)等。庫存控制系統(tǒng)的另一個任務(wù)是匯報倉庫的活動:它現(xiàn)在的狀態(tài)和過去的資金和貨物流動。所以需要兩個問題框架,控制框架和信息框架。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/683

它們?nèi)缈蚣軋D4-21和4-22所示。雇員庫存控制系統(tǒng)業(yè)務(wù)規(guī)則訂單倉庫貨物圖4-21庫存問題“從倉庫中搬移貨物”部分4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/684雇員是惟一直接與系統(tǒng)相聯(lián)系的。業(yè)務(wù)規(guī)則:即根據(jù)訂單定義貨物從倉庫中流動的業(yè)務(wù)規(guī)則,屬于貨物、倉庫和訂單,但不屬于雇員。雇員是由控制系統(tǒng)調(diào)用來執(zhí)行業(yè)務(wù)規(guī)則的簡單手段。因為這是一個控制框架,它要求書寫雇員的因果動因:他們可以做什么和庫存控制系統(tǒng)如何叫他們?nèi)プ鲞@些。雇員可以影響貨物、倉庫和訂單,所以在它(他)們之間有一根線連接著。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/685圖4-22庫存問題“打印報表”部分雇員庫存控制系統(tǒng)報表訂單倉庫貨物圖4-22顯示了信息問題:根據(jù)雇員的需求產(chǎn)生有關(guān)貨物、倉庫和訂單的報表,雇員再次成為一個連接域。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/686

把兩種類型的需求放在同一個圖中,如圖4-23所示。雇員庫存控制系統(tǒng)報表訂單倉庫貨物圖4-23一副圖中庫存問題的控制和信息方面業(yè)務(wù)規(guī)則4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/687對于用戶來說一個很常見的需求是能夠修改系統(tǒng)運行所依賴的規(guī)則。管理人員修改業(yè)務(wù)規(guī)則,這就意味著我們必須有一個工件問題:管理人員必須能夠定義業(yè)務(wù)規(guī)則。

圖3-19種的框架圖同時顯示三種類型的需求。

把業(yè)務(wù)規(guī)則作為一個域來處理,實際上所有的需求集合都是域??梢杂猛唤M概念討論的任何事情都是一個域。甚至報表也能成為一個實現(xiàn)域。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/688圖4-24庫存控制系統(tǒng)的復(fù)合框架圖雇員庫存控制系統(tǒng)報表訂單倉庫貨物管理人員業(yè)務(wù)規(guī)則管理人員定義規(guī)則4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/689所以從“管理人員定義規(guī)則”問題(工件問題)的觀點來看,業(yè)務(wù)規(guī)則是在系統(tǒng)內(nèi)實現(xiàn)的工件。從“倉庫移動貨物”問題(控制問題)的觀點來看業(yè)務(wù)規(guī)則(可變的)是需求。在這里問題框架中是非常典型的重疊。在更復(fù)雜的問題中,如果沒有仔細(xì)分解成小的問題框架,這種重疊是非常麻煩的。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/690業(yè)務(wù)規(guī)則可能很復(fù)雜,但你要明白如何書寫它們。用一節(jié)來說明它們是什么以及它們和貨物進(jìn)出倉庫的關(guān)系。另一節(jié)描述管理人員可對業(yè)務(wù)規(guī)則執(zhí)行的操作。在移動貨物中,不同的雇員任務(wù)可能相當(dāng)復(fù)雜,這些不要與業(yè)務(wù)規(guī)則同時討論。不管問題多么復(fù)雜你必須把它分解成為人們可以理解的子問題,否則沒有人能夠把它作為一個整體來理解。4.5.3多框架問題2.庫存控制系統(tǒng)

§4.5問題確定

2023/2/691一個用于執(zhí)行用戶定義的復(fù)雜的統(tǒng)計計算的程序合并了變換框架和工件框架。當(dāng)然變換框架包含了計算。工件框架包含了用戶定義的,用于計算中的公式。兩個子問題都同時呈現(xiàn)在圖4-25中。4.5.3多框架問題3.統(tǒng)計包

§4.5問題確定

2023/2/692圖4-25統(tǒng)計包框架圖,結(jié)合了變換框架和工件框架公式統(tǒng)計包計算規(guī)則輸入數(shù)據(jù)輸出數(shù)據(jù)用戶創(chuàng)建和編輯公式4.5.3多框架問題3.統(tǒng)計包

§4.5問題確定

2023/2/693應(yīng)答機(jī)存儲著數(shù)字化信息而不是音頻磁帶上的信息,它內(nèi)部的軟件合并了控制框架和一個變換框架??刂瓶蚣苷f明記錄和播放信息以對控制方和電話線上的活動進(jìn)行響應(yīng)。變換框架說明聲音和其在內(nèi)存中表示之間的映射。4.5.3多框架問題4.數(shù)字應(yīng)答機(jī)

§4.5問題確定

2023/2/694圖4-26數(shù)字應(yīng)答機(jī)框架圖,結(jié)合了變換框架和控制框架內(nèi)存軟件語音數(shù)字化規(guī)則語音電話線揚聲器/麥克風(fēng)錄音/回放控件4.5.3多框架問題4.數(shù)字應(yīng)答機(jī)

§4.5問題確定

2023/2/695源文件編譯器目標(biāo)文件語言語義圖4-27編輯器被錯誤地框定為變換問題編譯器經(jīng)常被認(rèn)為是一個變換問題,如圖4-27所示。在源代碼和目標(biāo)文件之間有一個映射,編譯器的任務(wù)就是根據(jù)映射產(chǎn)生目標(biāo)文件。4.5.3多框架問題5.編譯器

§4.5問題確定

2023/2/696事實上創(chuàng)建映射是編譯器涉及的真正主要工作。其規(guī)則是映射必須是這樣:當(dāng)被編譯程序運行時,目標(biāo)機(jī)器要按照原文件的語義來運行。所以在這里,對問題框架組合的通用方法做一些修改。部分解決方案是去定義變換問題,解決它的同時也可以解決一個控制問題。變換問題是從源語句到機(jī)器指令的映射。控制問題是使目標(biāo)機(jī)器按照源文件指定的方式運行。正確的問題框架如圖4-28所示。4.5.3多框架問題5.編譯器

溫馨提示

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

評論

0/150

提交評論