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

下載本文檔

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

文檔簡(jiǎn)介

第3章 需求分析3.1需求分析的任務(wù) 需求分析的任務(wù)就是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題,是通過系統(tǒng)分析員與用戶一起商定,清晰、準(zhǔn)確、具體地描述軟件產(chǎn)品必須具有的功能、性能、運(yùn)行規(guī)格等要求。軟件需求分析階段的目的是澄清用戶的要求,并把雙方共同的理解明確地表達(dá)成一份書面文檔——軟件需求規(guī)格說明書。第3章 需求分析3.1需求分析的任務(wù)1用戶與分析員的責(zé)任用戶與分析員的責(zé)任2第3章 需求分析需求分析的具體任務(wù)包括:1.功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。2.性能需求性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。第3章 需求分析需求分析的具體任務(wù)包括:33.可靠性和可用性需求可靠性需求定量地指定系統(tǒng)的可靠性??捎眯耘c可靠性密切相關(guān),它量化了用戶可以使用系統(tǒng)的程度。4.出錯(cuò)處理需求這類需求說明系統(tǒng)對(duì)環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。例如,如果它接收到從另一個(gè)系統(tǒng)發(fā)來的違反協(xié)議格式的消息,應(yīng)該做什么?注意,上述這類錯(cuò)誤并不是由該應(yīng)用系統(tǒng)本身造成的。3.可靠性和可用性需求4在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)錯(cuò)誤時(shí)所采取的行動(dòng)。但是,應(yīng)該有選擇地提出這類出錯(cuò)處理需求。我們的目的是開發(fā)出正確的系統(tǒng),而不是用無休止的出錯(cuò)處理代碼掩蓋自己的錯(cuò)誤。總之,對(duì)應(yīng)用系統(tǒng)本身錯(cuò)誤的檢測(cè)應(yīng)該僅限于系統(tǒng)的關(guān)鍵部分,而且應(yīng)該盡可能少。5.接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)56.約束設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。在需求分析階段提出這類需求,并不是要取代設(shè)計(jì)(或?qū)崿F(xiàn))過程,只是說明用戶或環(huán)境強(qiáng)加給項(xiàng)目的限制條件。常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)。7.逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆向需求,我們應(yīng)該僅選取能澄清真實(shí)需求且可消除可能發(fā)生的誤解的那些逆向需求。6.約束68.將來可能提出的要求應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會(huì)提出來的要求。這樣做的目的是,在設(shè)計(jì)過程中對(duì)系統(tǒng)將來可能的擴(kuò)充和修改預(yù)做準(zhǔn)備,以便一旦確實(shí)需要時(shí)能比較容易地進(jìn)行這種擴(kuò)充和修改。8.將來可能提出的要求7需求分類一、綜合需求3.1.3軟件需求分析的任務(wù)環(huán)境需求功能需求性能需求需求分類一、綜合需求3.1.3軟件需求分析的任務(wù)環(huán)境需求功8軟件工程導(dǎo)論第3章需求分析9(1)功能需求

系統(tǒng)做什么?系統(tǒng)何時(shí)做什么?系統(tǒng)何時(shí)及如何修改或升級(jí)?(1)功能需求系統(tǒng)做什么?10(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)例如:存儲(chǔ)容量限制執(zhí)行速度、相應(yīng)時(shí)間吞吐量(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)11(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、地點(diǎn)、分布、溫度、濕度、磁場(chǎng)干擾等軟件:操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、12(4)界面需求有來自其它系統(tǒng)的輸入嗎?到自其它系統(tǒng)的輸出嗎?對(duì)數(shù)據(jù)格式有規(guī)定嗎?對(duì)數(shù)據(jù)存儲(chǔ)介質(zhì)有規(guī)定嗎?(4)界面需求有來自其它系統(tǒng)的輸入嗎?13(5)用戶或人的因素

用戶類型?各種用戶熟練程度?需受何種訓(xùn)練?用戶理解、使用系統(tǒng)的難度?用戶錯(cuò)誤操作系統(tǒng)的可能性?(5)用戶或人的因素用戶類型?14(6)數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率?數(shù)據(jù)的準(zhǔn)確性和精度?數(shù)據(jù)流量?數(shù)據(jù)需保持的時(shí)間?(6)數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?15(7)資源需求

軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資源。軟件開發(fā)、維護(hù)所需的人力、支撐軟件、開發(fā)設(shè)備等。(7)資源需求軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資16(8)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)?用戶程序如何與其它程序和操作系統(tǒng)隔離?系統(tǒng)備份要求?(8)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?17二、邏輯模型結(jié)構(gòu)化分析——數(shù)據(jù)流圖(DFD)面向?qū)ο蠓治觥悎D和用例圖二、邏輯模型結(jié)構(gòu)化分析——數(shù)據(jù)流圖(DFD)面向?qū)ο蠓治觥?8三、需求評(píng)審對(duì)需求文檔進(jìn)行正式審查以需求為依據(jù)編寫測(cè)試用例編寫用戶手冊(cè)在需求開發(fā)早期即可起草一份用戶手冊(cè)確定合格的標(biāo)準(zhǔn)讓用戶描述什么樣的產(chǎn)品才算滿足他們的要求和適合他們使用的

三、需求評(píng)審對(duì)需求文檔進(jìn)行正式審查19四、編寫文檔1.編寫“需求說明書”;2.編寫初步的用戶使用手冊(cè);3.編寫確認(rèn)測(cè)試計(jì)劃;4.修改完善項(xiàng)目開發(fā)計(jì)劃。四、編寫文檔1.編寫“需求說明書”;20第3章 需求分析3.2需求分析的過程 需求分析階段可分為四個(gè)過程:調(diào)查研究、分析與綜合、書寫需求分析的文檔和評(píng)審。(1)調(diào)查研究 系統(tǒng)分析員協(xié)同程序員向用戶做需求調(diào)查,閱軟件計(jì)劃中的可行性報(bào)告和項(xiàng)目開發(fā)計(jì)劃報(bào)告,訪問系統(tǒng)現(xiàn)場(chǎng),并由此確定當(dāng)前系統(tǒng)必須做什么,并獲得當(dāng)前系統(tǒng)的具體模型,用數(shù)據(jù)流圖或IPO圖表示出來。

第3章 需求分析3.2需求分析的過程21軟件工程導(dǎo)論第3章需求分析22軟件工程導(dǎo)論第3章需求分析23第3章 需求分析(2)分析與綜合 分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)中各元素之間的聯(lián)系、接口特征和設(shè)計(jì)上的限制,分析它們能否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行環(huán)境需求等,剔除其中不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案后,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。第3章 需求分析(2)分析與綜合24軟件工程導(dǎo)論第3章需求分析25軟件工程導(dǎo)論第3章需求分析26(3)編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊(cè)修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃(3)編制需求分析階段的文檔27(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準(zhǔn)確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;28被開發(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)是否足夠,確定;29是否考慮過軟件需求的其它方案;是否考慮過將來可能會(huì)提出的軟件需求;是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn);是否考慮過軟件需求的其它方案;30軟件工程導(dǎo)論第3章需求分析313.3與用戶溝通獲取需求的方法

訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,分別是正式的和非正式的訪談。正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題。在非正式訪談中,分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說出自己的想法。3.3.1訪談3.3與用戶溝通獲取需求的方法

訪談是最早開始使用的獲取32會(huì)談法(1)識(shí)別信息源(2)計(jì)劃會(huì)談內(nèi)容(3)進(jìn)行訪問(4)概括獲取內(nèi)容優(yōu)點(diǎn):面對(duì)面,靈活,適應(yīng)性強(qiáng);探討較深入缺點(diǎn):費(fèi)時(shí);獲取信息難以評(píng)價(jià);訪問者帶有偏見;被訪者刻意隱瞞會(huì)談法(1)識(shí)別信息源優(yōu)點(diǎn):面對(duì)面,靈活,適應(yīng)性強(qiáng);33發(fā)調(diào)查表法發(fā)調(diào)查表法34軟件工程導(dǎo)論第3章需求分析35所有問題應(yīng)局限于一個(gè)主題應(yīng)考慮回答者的背景:如受教育程度、行話等應(yīng)易于打分所提供答案應(yīng)具有排他性所提問題用詞應(yīng)準(zhǔn)確優(yōu)點(diǎn):經(jīng)濟(jì)、易于管理;可以快速將結(jié)果制表并分析缺點(diǎn):只能采集一些特殊的、數(shù)量有限的信息;不具備靈活性;不能對(duì)問題的回答做進(jìn)一步的探索和研究設(shè)計(jì)調(diào)查表應(yīng)注意:優(yōu)點(diǎn):經(jīng)濟(jì)、易于管理;設(shè)計(jì)調(diào)查表應(yīng)注意:36觀察法

觀看與系統(tǒng)有關(guān)的實(shí)際處理過程進(jìn)行信息采集工作取樣

采集有關(guān)現(xiàn)行系統(tǒng)運(yùn)行情況的信息,如錯(cuò)誤率和錯(cuò)誤分布情況

觀察法37軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都是把輸入數(shù)據(jù)轉(zhuǎn)變成需要的輸出信息。數(shù)據(jù)決定了需要的處理和算法,數(shù)據(jù)顯然是需求分析的出發(fā)點(diǎn)。在可行性研究階段許多實(shí)際的數(shù)據(jù)元素被忽略了,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)定義到元素級(jí)。3.3.2面向數(shù)據(jù)流自頂向下求精軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都38面向數(shù)據(jù)流自頂向下求精過程軟件工程導(dǎo)論第3章需求分析39使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位而且往往有意無意地與開發(fā)者區(qū)分“彼此”。由于不能像同一個(gè)團(tuán)隊(duì)的人那樣齊心協(xié)力地識(shí)別和精化需求,這兩種方法的效果有時(shí)并不理想。為了解決上述問題,人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)。這種方法提倡用戶與開發(fā)者密切合作,共同標(biāo)識(shí)問題,提出解決方案要素,商討不同方案并指定基本需求。3.3.3簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處40快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)??焖僭途褪强焖俳⑵饋淼闹荚谘菔灸繕?biāo)系統(tǒng)主要功能的可運(yùn)行的程序。構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶看得見的功能(例如,屏幕顯示或打印報(bào)表),省略目標(biāo)系統(tǒng)的“隱含”功能(例如,修改文件)。3.3.4快速建立軟件原型快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)??焖?1用戶不清楚軟件將會(huì)以什么形式實(shí)現(xiàn)業(yè)務(wù),而對(duì)現(xiàn)有業(yè)務(wù)是非常清楚的。通過原型法,用戶能直觀的看到將來用軟件是怎樣實(shí)現(xiàn)業(yè)務(wù),是否符合用戶的期望值。

原型主要描述2個(gè)問題:用戶不清楚軟件將會(huì)以什么形式實(shí)現(xiàn)業(yè)務(wù),而對(duì)現(xiàn)有業(yè)務(wù)是非常清楚421

界面處理流程和后臺(tái)業(yè)務(wù)處理流程是否正確。

界面處理流程:界面是指用戶面對(duì)的界面。用戶只有看到具體的軟件界面,才會(huì)形成感性的知識(shí),才能對(duì)開發(fā)的系統(tǒng)提出具體要求,和進(jìn)一步的改進(jìn)需求。才能理解我們推薦的解決方案。另一方面,這也是檢驗(yàn)PM對(duì)用戶需求的理解是否正確,能否做出符合要求的產(chǎn)品。-

后臺(tái)處理流程:建模!解釋后臺(tái)處理的邏輯。模型是用戶方面的技術(shù)人員。好的模型對(duì)于系統(tǒng)的擴(kuò)展和改變至關(guān)重要。

1

界面處理流程和后臺(tái)業(yè)務(wù)處理流程是否正確。432

原型法處理界面設(shè)計(jì)問題

在不少項(xiàng)目中,一旦用戶對(duì)界面挑剔起來將會(huì)花費(fèi)大量時(shí)間。因此,在原型階段,就應(yīng)包括界面設(shè)計(jì)的原則。從界面風(fēng)格,易用性,友好化,用戶習(xí)慣等多方面達(dá)成一定規(guī)定,會(huì)對(duì)程序員在界面設(shè)計(jì)上節(jié)省大量時(shí)間。

2

原型法處理界面設(shè)計(jì)問題

441、原型可以用于吸引需求,也有風(fēng)險(xiǎn)a、開發(fā)周期的控制更難。b、用戶的需求擴(kuò)大。(個(gè)人意見)

2、原型可以做技術(shù)評(píng)估(大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠;找出軟件方案中比較難的技術(shù)問題進(jìn)行解決,解決不了換方案,工作量太大換方案,影響系統(tǒng)性能換方案....)

3、原型不能用作進(jìn)度估計(jì)(至少一般情況如此)

4、做原型參與競(jìng)標(biāo),爭(zhēng)奪項(xiàng)目(展示形原型)

1、原型可以用于吸引需求,也有風(fēng)險(xiǎn)45例如:大多數(shù)的動(dòng)態(tài)網(wǎng)站,都是在客戶初步的需求基礎(chǔ)上,先制作一個(gè)大體上能表現(xiàn)功能的靜態(tài)網(wǎng)站出來,然后客戶根據(jù)這個(gè)靜態(tài)網(wǎng)站提出進(jìn)一步的詳細(xì)需求,開發(fā)便按照這個(gè)詳細(xì)需求來進(jìn)行。

例如:大多數(shù)的動(dòng)態(tài)網(wǎng)站,都是在客戶初步的需求基礎(chǔ)上,先制作一46為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具:(1)第四代技術(shù)第四代技術(shù)包括眾多數(shù)據(jù)庫(kù)查詢和報(bào)表語言、程序和應(yīng)用系統(tǒng)生成器以及其他非常高級(jí)的非過程語言。第四代技術(shù)使得軟件工程師能夠快速地生成可執(zhí)行的代碼,它們是較理想的快速原型工具。為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具:47第一代編程語言機(jī)器語言特征:面向機(jī)器。第二代編程語言匯編語言特征:用針對(duì)指令的符號(hào)代替二進(jìn)制代碼。第三代編程語言C、C++、pascal、特征:有類型的、過程式語言;標(biāo)準(zhǔn)化的和獨(dú)立于硬件的;在這些語言中的操作必須用詳細(xì)的、一步接一步的算法方式指定;做很少的隱含處理;是通用的

第一代編程語言機(jī)器語言48第四代編程語言4GL特征:通常有自由形式的變量使用;通常不需要類型定義并允許動(dòng)態(tài)類型的變量;不強(qiáng)調(diào)模塊化、基于過程的編碼式樣;包含一些預(yù)定義的過程來進(jìn)行各種高層操作,這些高層操作涉及大量隱含的處理。

第四代語言(4GL)應(yīng)當(dāng)盡可能的提供你需要的簡(jiǎn)單語句,而不是如何處理它的詳細(xì)過程。第四代編程語言4GL第四代語言(4GL)應(yīng)當(dāng)盡可能的提供49第三代程序fori=1to10

printinexti語句多數(shù)被限制在算術(shù)操作上,帶有有限的字符串功能。

使用shell你可以在幾分鐘或幾小時(shí)中把應(yīng)用程序組裝起來,而不是使用3GL要求的幾周或幾個(gè)月。在4GL中你應(yīng)當(dāng)可以用一或兩行來寫多數(shù)應(yīng)用程序。使用

shell

你可以有如下表示:$cutsomecolumns<file|grep'string'|sort|lpr

這個(gè)簡(jiǎn)短的程序得到一個(gè)文件中的一些列,連接管道通過grep來得到帶有特定字符串的行、排序它們并把它們發(fā)送到行打印機(jī)。在COBOL、PL/I、C和多數(shù)商業(yè)4GL中相同的報(bào)告將使用數(shù)十到數(shù)百行。

第三代程序fori=1to10語句多數(shù)被限制在算術(shù)操作50(2)可重用的軟件構(gòu)件另外一種快速構(gòu)建原型的方法,是使用一組已有的軟件構(gòu)件(也稱為組件)來裝配(而不是從頭構(gòu)造)原型。軟件構(gòu)件可以是數(shù)據(jù)結(jié)構(gòu)(或數(shù)據(jù)庫(kù)),或軟件體系結(jié)構(gòu)構(gòu)件(即程序),或過程構(gòu)件(即模塊)。(3)形式化規(guī)格說明和原型環(huán)境(2)可重用的軟件構(gòu)件(3)形式化規(guī)格說明和原型環(huán)境513.4分析建模與規(guī)格說明3.4.1分析建模為了更好地理解復(fù)雜事物,人們常常采用建立事物模型的方法。所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無歧義的書面描述。通常,模型由一組圖形符號(hào)和組織這些符號(hào)的規(guī)則組成。3.4分析建模與規(guī)格說明3.4.1分析建模為了更好地52模型的作用建模的原因:在建模過程中了解系統(tǒng)通過抽象降低復(fù)雜性有助于回憶所有的細(xì)節(jié)有助于開發(fā)小組間的交流有助于與用戶的交流為系統(tǒng)的維護(hù)提供文檔

模型的作用建模的原因:53模型的類型數(shù)學(xué)模型描述模型圖形模型模型的類型數(shù)學(xué)模型54需求分析的步驟當(dāng)前系統(tǒng)目標(biāo)系統(tǒng)物理模型邏輯模型邏輯模型物理模型模型化抽象化具體化實(shí)例化怎么做做什么當(dāng)前系統(tǒng)目標(biāo)系統(tǒng)需求定義需求分析的步驟當(dāng)前目標(biāo)物理邏輯邏輯物理模型化抽象化具體化實(shí)例55現(xiàn)行系統(tǒng)目標(biāo)系統(tǒng)描述新系統(tǒng)是如何實(shí)施的(包括技術(shù))。描述新系統(tǒng)的主要業(yè)務(wù)功能和用戶新的需求,無論系統(tǒng)應(yīng)如何實(shí)施。描述重要的業(yè)務(wù)功能,無論系統(tǒng)是如何實(shí)施的。邏輯模型物理模型(本質(zhì)模型、概念模型)(實(shí)施模型、技術(shù)模型)描述現(xiàn)實(shí)系統(tǒng)是如何在物理上實(shí)現(xiàn)的?,F(xiàn)目描述新系統(tǒng)是如何實(shí)施的(包括技術(shù))。描述新系統(tǒng)的主要業(yè)務(wù)56需求分析過程示意學(xué)生(1)通過對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查,獲得當(dāng)前系統(tǒng)的物理模型

學(xué)生購(gòu)書申請(qǐng)購(gòu)書單發(fā)票領(lǐng)書單書107張教務(wù)科206王會(huì)計(jì)室206李出納員303趙教材科學(xué)生購(gòu)買教材的物理模型需求分析過程示意學(xué)(1)通過對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查,獲得當(dāng)前系統(tǒng)的57需求分析過程示意(2)去掉具體模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型

學(xué)生購(gòu)買教材的邏輯模型學(xué)生學(xué)生購(gòu)書申請(qǐng)購(gòu)書單發(fā)票領(lǐng)書單書審查有效性開發(fā)票開領(lǐng)書單發(fā)書需求分析過程示意(2)去掉具體模型中的非本質(zhì)因素,抽象出當(dāng)58需求分析過程示意(3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型

計(jì)算機(jī)售書系統(tǒng)的邏輯模型學(xué)生學(xué)生購(gòu)書單發(fā)票領(lǐng)書單審查并開發(fā)票開領(lǐng)書單無效書單需求分析過程示意(3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目59分析階段中常用的模型(邏輯模型)數(shù)據(jù)流圖(DFD)實(shí)體―聯(lián)系圖(ERD)類圖實(shí)例圖時(shí)序圖狀態(tài)圖協(xié)作圖事件列表數(shù)據(jù)流定義數(shù)據(jù)元素定義……分析階段中常用的模型(邏輯模型)數(shù)據(jù)流圖(DFD)60通過需求分析除了創(chuàng)建分析模型之外,還應(yīng)該寫出軟件需求規(guī)格說明書,它是需求分析階段得出的最主要的文檔。自然語言形式化方法3.4.2軟件需求規(guī)格說明通過需求分析除了創(chuàng)建分析模型之外,還應(yīng)該寫出軟件需求規(guī)格說明61需求分析示例—教材購(gòu)銷管理系統(tǒng)(1)問題描述:學(xué)校教材科根據(jù)業(yè)務(wù)的需要,建立一個(gè)學(xué)校教材購(gòu)銷管理系統(tǒng),提高教材采購(gòu)、銷售和信息管理的效率。學(xué)生張秘書購(gòu)書申請(qǐng)王會(huì)計(jì)李出納趙保管學(xué)生購(gòu)書證明購(gòu)書申請(qǐng)購(gòu)書申請(qǐng)書學(xué)生審查有效性購(gòu)書單開發(fā)票開領(lǐng)書單發(fā)書學(xué)生有效購(gòu)書單發(fā)票領(lǐng)書單書學(xué)生審查并開發(fā)票購(gòu)書單開領(lǐng)書單發(fā)書學(xué)生發(fā)票領(lǐng)書單書2)去掉具體模型中的非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型1)通過對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查研究,獲得當(dāng)前系統(tǒng)的具體模型3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型。需求分析示例—教材購(gòu)銷管理系統(tǒng)(1)問題描述:學(xué)校教材科根62需求分析示例—教材購(gòu)銷管理系統(tǒng)(2)學(xué)生審查并開發(fā)票購(gòu)書單開領(lǐng)書單學(xué)生發(fā)票領(lǐng)書單無效書單4)對(duì)目標(biāo)系統(tǒng)進(jìn)行補(bǔ)充和完善,并寫出完整的需求說明。學(xué)生1審查并開發(fā)票購(gòu)書單2開領(lǐng)書單學(xué)生發(fā)票領(lǐng)書單無效書單各班學(xué)生用書表教材存量表5)對(duì)需求說明進(jìn)行復(fù)審,直到確認(rèn)文檔齊全,并且符合用戶的全部需求為止需求分析示例—教材購(gòu)銷管理系統(tǒng)(2)學(xué)生審查并開發(fā)票購(gòu)書單開63需求分析示例—教材購(gòu)銷管理系統(tǒng)(3)學(xué)生教材購(gòu)銷管理系統(tǒng)書庫(kù)保管員1.教材購(gòu)銷管理系統(tǒng)的頂層DFD學(xué)生書庫(kù)保管員2.第二層DFD圖—教材購(gòu)銷系統(tǒng)購(gòu)書單領(lǐng)書單缺書單進(jìn)書通知購(gòu)書單領(lǐng)書單1銷售2采購(gòu)進(jìn)書通知F2:缺書登記表F1:教材存量表缺書單進(jìn)書通知需求分析示例—教材購(gòu)銷管理系統(tǒng)(3)學(xué)生教材購(gòu)銷管理系統(tǒng)書64需求分析示例—教材購(gòu)銷管理系統(tǒng)(4)1.1審查有效性1.2開發(fā)票有效購(gòu)書單1.3領(lǐng)書并開領(lǐng)書單發(fā)票1.4登記缺書1.5補(bǔ)售教材F2:缺書登記表學(xué)生學(xué)生無效書單領(lǐng)書單領(lǐng)書單F3:各班學(xué)生用書表F4:售書登記表補(bǔ)售書單暫缺書單采購(gòu)3.第三層DFD圖—銷售子系統(tǒng)F1:教材存量表需求分析示例—教材購(gòu)銷管理系統(tǒng)(4)1.1審查有效65需求分析示例—教材購(gòu)銷管理系統(tǒng)(5)2.3修改教材庫(kù)存和待購(gòu)量2.1按書號(hào)匯總?cè)睍鳩2:缺書登記表銷售子系統(tǒng)書庫(kù)保管員F1:教材存量表進(jìn)書通知3.第三層DFD圖—采購(gòu)子系統(tǒng)2.2按出版社統(tǒng)計(jì)缺書F5:待購(gòu)教材表F6:教材一覽表進(jìn)書通知需求分析示例—教材購(gòu)銷管理系統(tǒng)(5)2.366需求分析示例—教材購(gòu)銷管理系統(tǒng)(6)數(shù)據(jù)字典(DataDirectory-DD)領(lǐng)書單=學(xué)院+專業(yè)+班級(jí)+學(xué)號(hào)+姓名+{書號(hào)+[書名]+數(shù)量}+日期有效購(gòu)書單=領(lǐng)書單發(fā)票=學(xué)號(hào)+姓名+{書號(hào)+[書名]+單價(jià)+數(shù)量+總價(jià)}+書費(fèi)合計(jì)教材存量表={書號(hào)+單價(jià)+數(shù)量}暫缺書單=學(xué)號(hào)+姓名+{書號(hào)+數(shù)量}補(bǔ)售書單=學(xué)號(hào)+姓名+{書號(hào)+數(shù)量}需求分析示例—教材購(gòu)銷管理系統(tǒng)(6)數(shù)據(jù)字典(DataDi673.4實(shí)體-聯(lián)系圖在數(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.4實(shí)體-聯(lián)系圖在數(shù)據(jù)詞典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯68為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型(也稱為信息模型)。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實(shí)環(huán)境,而且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無關(guān)。數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來,系統(tǒng)分析員通常建立69數(shù)據(jù)對(duì)象是對(duì)軟件必須理解的復(fù)合信息的抽象。所謂復(fù)合信息是指具有一系列不同性質(zhì)或?qū)傩缘氖挛铮瑑H有單個(gè)值的事物(例如,寬度)不是數(shù)據(jù)對(duì)象。數(shù)據(jù)對(duì)象可以是外部實(shí)體(例如,產(chǎn)生或使用信息的任何事物)、事物(例如,報(bào)表)、行為(例如,打電話)、事件(例如,響警報(bào))、角色(例如,教師、學(xué)生)、單位(例如,會(huì)計(jì)科)、地點(diǎn)(例如,倉(cāng)庫(kù))或結(jié)構(gòu)(例如,文件)等??傊?,可以由一組屬性來定義的實(shí)體都可以被認(rèn)為是數(shù)據(jù)對(duì)象。3.5.1數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象是對(duì)軟件必須理解的復(fù)合信息的抽象。所謂復(fù)合信息是指具70屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。必須把一個(gè)或多個(gè)屬性定義為“標(biāo)識(shí)符”,也就是說,當(dāng)我們希望找到數(shù)據(jù)對(duì)象的一個(gè)實(shí)例時(shí),用標(biāo)識(shí)符屬性作為“關(guān)鍵字”(通常簡(jiǎn)稱為“鍵”)。應(yīng)該根據(jù)對(duì)所要解決的問題的理解,來確定特定數(shù)據(jù)對(duì)象的一組合適的屬性。3.5.2屬性屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。必須把一個(gè)或多個(gè)屬性定義為“標(biāo)識(shí)符71數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為以下3種類型:(1)一對(duì)一聯(lián)系(1∶1)例如,一個(gè)部門有一個(gè)經(jīng)理,而每個(gè)經(jīng)理只在一個(gè)部門任職,則部門與經(jīng)理的聯(lián)系是一對(duì)一的。(2)一對(duì)多聯(lián)系(1∶N)例如,某校教師與課程之間存在一對(duì)多的聯(lián)系“教”,即每位教師可以教多門課程,但是每門課程只能由一位教師來教(見圖3.2)。3.5.3聯(lián)系數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分72(3)多對(duì)多聯(lián)系(M∶N)例如,學(xué)生與課程間的聯(lián)系是多對(duì)多的,即一個(gè)學(xué)生可以學(xué)多門課程,而每門課程可以有多個(gè)學(xué)生來學(xué)。聯(lián)系也可能有屬性。例如,學(xué)生“學(xué)”某門課程所取得的成績(jī),既不是學(xué)生的屬性也不是課程的屬性。由于“成績(jī)”既依賴于某名特定的學(xué)生又依賴于某門特定的課程,所以它是學(xué)生與課程之間的聯(lián)系“學(xué)”的屬性(3)多對(duì)多聯(lián)系(M∶N)73某校教學(xué)管理E-R圖軟件工程導(dǎo)論第3章需求分析743.5.4實(shí)體-聯(lián)系圖的符號(hào)ER模型實(shí)體聯(lián)系屬性學(xué)生教師課程教學(xué)111NMN姓名學(xué)號(hào)3.5.4實(shí)體-聯(lián)系圖的符號(hào)ER模型學(xué)生教75軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一定方式組織并存儲(chǔ)在數(shù)據(jù)庫(kù)或文件中,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異常或刪除異常,簡(jiǎn)化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。3.6數(shù)據(jù)規(guī)范化軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一定方式組761NF定義:如果關(guān)系模式的所有屬性都是不可再分的數(shù)據(jù)項(xiàng),則稱該關(guān)系屬于第一范式,記作R1NF。

規(guī)范化的表課程名稱講課時(shí)數(shù)實(shí)驗(yàn)時(shí)數(shù)微機(jī)原理化

學(xué)65154010例:非規(guī)范化的表課程名稱學(xué)時(shí)數(shù)講課

實(shí)驗(yàn)微機(jī)原理化

學(xué)651540101NF規(guī)范化的表課程名稱講課時(shí)數(shù)實(shí)驗(yàn)時(shí)數(shù)微機(jī)原理6577

例:設(shè)車間考核職工完成生產(chǎn)定額關(guān)系WW(日期,工號(hào),姓名,工種,超額,定額,車間,車間主任)

F(日期、工號(hào)

超額,工號(hào)

姓名,工號(hào)

車間,

工號(hào)

工種,工種

定額,車間

車間主任,

工號(hào)

車間主任)日期

工號(hào)

姓名

工種

定額

超額

車間

車間主任90.590.590.590.590.690.690.690.6101102103104101102103104丁一王二張三李四丁一王二張三李四車工車工鉗工銑工車工車工鉗工銑工808075708080757022%17%14%20%19%25%16%26%工具金工工具金工工具金工工具金工李明趙杰李明趙杰李明趙杰李明趙杰例:設(shè)車間考核職工完成生產(chǎn)定額關(guān)系W日期工號(hào)78上述關(guān)系屬于第一范式,但存在以下問題:1、數(shù)據(jù)冗余大2、修改麻煩3、插入異常4、刪除異常原因在于模式中存在著各種數(shù)據(jù)依賴關(guān)系.例:日期、工號(hào)

超額

日期、工號(hào)

姓名

日期、工號(hào)

工種

日期、工號(hào)

車間

日期、

工號(hào)

車間

車間

車間主任

日期、

工號(hào)

車間主任

}

完全依賴

部分依賴

傳遞依賴上述關(guān)系屬于第一范式,但存在以下問題:原因在于模式中存在著各792NF定義:若關(guān)系R1NF,且它的每一非主屬性都完全依賴于關(guān)鍵字,則稱R屬于第二范式。記為

R2NF。

例:對(duì)剛才的關(guān)系W進(jìn)行分解,消除部分依賴于KEY的屬性部分,使之滿足2NF。即:WWSG+WPY且

WSG2NF、WPY2NF

F={工號(hào)

姓名

工號(hào)

工種

工號(hào)

車間

工號(hào)

定額

工號(hào)

主任

工種

定額

車間

主任}

工號(hào)

姓名

工種

定額

車間

主任101102103104丁一王二張三李四車工車工鉗工銑工80807570工具金工工具金工李明趙杰李明趙杰WSG2NF2NF例:對(duì)剛才的關(guān)系W進(jìn)行分解,消除部分依賴于KEY的80日期

工號(hào)

超額90.590.590.590.590.690.690.690.610110210310410110210310422%17%14%20%19%25%16%26%F={日期、工號(hào)

超額}分解后雖消除了部分依賴關(guān)系,并沒有消除傳遞依賴關(guān)系。所以仍然存在修改麻煩、插入、刪除異常的現(xiàn)象。如:

工號(hào)

車間主任

工號(hào)

定額

是傳遞依賴

工種、車間主任有重復(fù)。WPY2NF日期工號(hào)超額90.510122%F=813NF定義:若R2NF,且它的每一非主屬性都不傳遞依賴于R的關(guān)鍵字。則稱R屬于第三范式。記為

R3NF。

繼續(xù)分解:將WSGWG+WS+WR工種

定額車工鉗工銑工807570WG3NFW=WPY+WG+WS+WR車間

主任工具金工李明趙杰WS

3NF工號(hào)

姓名

工種

車間101102103104丁一王二張三李四車工車工鉗工銑工工具金工工具金工WR3NF3NF繼續(xù)分解:將WSGWG+WS+WR工82關(guān)系規(guī)范化問題小結(jié):1、確定所有的候選關(guān)鍵字;2、選定主關(guān)鍵字;3、確定關(guān)系的各個(gè)屬性中,哪些是主屬性,哪些是非主屬性;4、找出屬性間的依賴關(guān)系(函數(shù)依賴);5、根據(jù)應(yīng)用特點(diǎn),確定規(guī)范化到第幾范式;6、分解關(guān)系,分解必須是無損的,不得丟失信息;7、分解后的關(guān)系,力求相互獨(dú)立,即對(duì)一個(gè)關(guān)系內(nèi)容的修改不要影響到分解出來的其他關(guān)系。

關(guān)系規(guī)范化問題小結(jié):4、找出屬性間的依賴關(guān)系(函數(shù)依賴);83規(guī)范化過程使每個(gè)屬性不可再分消除非主屬性對(duì)關(guān)鍵字部分依賴消除非主屬性對(duì)關(guān)鍵字傳遞依賴消除主屬性對(duì)關(guān)鍵字部分與傳遞依賴非規(guī)范關(guān)系1NF2NF3NF使每個(gè)決定子都是候選關(guān)鍵子BCNFBCNF3NF2NF1NF規(guī)范化過程使每個(gè)屬性不可再分消除非主屬性對(duì)關(guān)鍵字部分依賴消除84狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。此外,狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作(例如,處理數(shù)據(jù))。3.7狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)85狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對(duì)事件的響應(yīng)方式。系統(tǒng)對(duì)事件的響應(yīng),既可以是做一個(gè)(或一系列)動(dòng)作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動(dòng)作。在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(即最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有0至多個(gè)。3.7.1狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種86事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。例如,內(nèi)部時(shí)鐘表明某個(gè)規(guī)定的時(shí)間段已經(jīng)過去,用戶移動(dòng)或點(diǎn)擊鼠標(biāo)等都是事件。簡(jiǎn)而言之,事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。3.7.2事件事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)87在狀態(tài)圖中,初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示。中間狀態(tài)用圓角矩形表示,可以用兩條水平橫線把它分成上、中、下3個(gè)部分。上面部分為狀態(tài)的名稱,這部分是必須有的;中間部分為狀態(tài)變量的名字和值,這部分是可選的;下面部分是活動(dòng)表,這部分也是可選的。3.7.3符號(hào)在狀態(tài)圖中,初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓88狀態(tài)圖中使用的主要符號(hào)軟件工程導(dǎo)論第3章需求分析89其中,“事件名”可以是任何事件的名稱。在活動(dòng)表中經(jīng)常使用下述3種標(biāo)準(zhǔn)事件:entry,exit和do。entry事件指定進(jìn)入該狀態(tài)的動(dòng)作,exit事件指定退出該狀態(tài)的動(dòng)作,而do事件則指定在該狀態(tài)下的動(dòng)作。需要時(shí)可以為事件指定參數(shù)表。動(dòng)作表達(dá)式描述應(yīng)做的具體動(dòng)作。狀態(tài)圖中兩個(gè)狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。狀態(tài)變遷通常是由事件觸發(fā)的,在這種情況下應(yīng)在表示狀態(tài)轉(zhuǎn)換的箭頭線上標(biāo)出觸發(fā)轉(zhuǎn)換的事件表達(dá)式;如果在箭頭線上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動(dòng)執(zhí)行完之后自動(dòng)觸發(fā)轉(zhuǎn)換。活動(dòng)表的語法格式如下:事件名(參數(shù)表)/動(dòng)作表達(dá)式其中,“事件名”可以是任何事件的名稱。在活動(dòng)表中經(jīng)常使用下述90事件表達(dá)式的語法如下:事件說明[守衛(wèi)條件]/動(dòng)作表達(dá)式其中,事件說明的語法為:事件名(參數(shù)表)。守衛(wèi)條件是一個(gè)布爾表達(dá)式。如果同時(shí)使用事件說明和守衛(wèi)條件,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式為真時(shí),狀態(tài)轉(zhuǎn)換才發(fā)生。如果只有守衛(wèi)條件沒有事件說明,則只要守衛(wèi)條件為真狀態(tài)轉(zhuǎn)換就發(fā)生。動(dòng)作表達(dá)式是一個(gè)過程表達(dá)式,當(dāng)狀態(tài)轉(zhuǎn)換開始時(shí)執(zhí)行該表達(dá)式。事件表達(dá)式的語法如下:91

狀態(tài)圖

狀態(tài)1Do:活動(dòng)1狀態(tài)2.…...事件1[條件1]/動(dòng)作1結(jié)束事件初始事件空閑可視菜單左邊按鈕按下/顯示彈出菜單左邊按鈕彈起/擦除彈出菜單光標(biāo)移動(dòng)/高亮菜單項(xiàng)彈出菜單動(dòng)作狀態(tài)圖狀態(tài)1Do:活動(dòng)1狀態(tài)2.…..92ATM機(jī)狀態(tài)圖3.6.4例子

ATM機(jī)狀態(tài)圖3.6.4例子

93層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素(不能再分割的元素)。例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖3.5中的層次方框圖表示。3.8其他圖形工具

3.8.1層次方框圖層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)94層次方框圖的一個(gè)例子軟件工程導(dǎo)論第3章需求分析95法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具。和層次方框圖類似,Warnier圖也用樹形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。用Warnier圖可以表明信息的邏輯組織,也就是說,它可以指出一類信息或一個(gè)信息元素是重復(fù)出現(xiàn)的,也可以表示特定信息在某一類信息中是有條件地出現(xiàn)的。因?yàn)橹貜?fù)和條件約束是說明軟件處理過程的基礎(chǔ),所以很容易把Warnier圖轉(zhuǎn)變成軟件設(shè)計(jì)的工具。3.8.2Warnier圖法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出了表示信息層次結(jié)構(gòu)的另外一96Warnier圖的一個(gè)例子軟件工程導(dǎo)論第3章需求分析97考慮一個(gè)典型的報(bào)紙自動(dòng)組版系統(tǒng)。報(bào)紙作為其中重要的信息對(duì)象,具有以下內(nèi)容:1.首版

1)標(biāo)題新聞

2)國(guó)內(nèi)新聞

3)本地新聞2.商業(yè)金融版

1)股市行情

2)商業(yè)新聞

3)廣告3.文化體育版

1)文化、體育新聞

2)散文

3)新書評(píng)論考慮一個(gè)典型的報(bào)紙自動(dòng)組版系統(tǒng)。報(bào)紙作為其中重要的信息對(duì)象,98該信息結(jié)構(gòu)用Warnier圖表示如下:標(biāo)題新聞國(guó)內(nèi)新聞本地新聞股市行情(0,1)商業(yè)新聞廣告(1,5)文化、體育新聞散文

新書評(píng)論文化體育版首版商業(yè)金融版報(bào)紙3.8其他圖形工具該信息結(jié)構(gòu)用Warnier圖表示如下:標(biāo)題新聞股市行情(0,99花括號(hào)內(nèi)的信息條目構(gòu)成順序關(guān)系;花括號(hào)從左至右排列表示樹型層次結(jié)構(gòu);符號(hào)“⊕”表示不可兼具的選擇關(guān)系;圓括號(hào)內(nèi)的數(shù)字表示重復(fù)次數(shù):(1,n)表示重復(fù)結(jié)構(gòu),(1)或不標(biāo)次數(shù)表示順序結(jié)構(gòu),(0,1)表示選擇結(jié)構(gòu)。花括號(hào)內(nèi)的信息條目構(gòu)成順序關(guān)系;100IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱,它是美國(guó)IBM公司發(fā)展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。3.8.3IPO圖IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱,它是美國(guó)IBM公司發(fā)展完101IPO圖的一個(gè)例子圖軟件工程導(dǎo)論第3章需求分析102改進(jìn)的IPO圖的形式軟件工程導(dǎo)論第3章需求分析1033.8其他圖形工具3.8其他圖形工具1043.8其他圖形工具3.8其他圖形工具105需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計(jì)數(shù)字表明,軟件系統(tǒng)中15%的錯(cuò)誤起源于錯(cuò)誤的需求。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成本,一旦對(duì)目標(biāo)系統(tǒng)提出一組要求之后,必須嚴(yán)格驗(yàn)證這些需求的正確性。一般說來,應(yīng)該從下述4個(gè)方面進(jìn)行驗(yàn)證:3.9驗(yàn)證軟件需求

3.9.1從哪些方面驗(yàn)證軟件需求的正確性

需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計(jì)數(shù)字106(1)一致性所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。(2)完整性需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個(gè)功能或性能。(3)現(xiàn)實(shí)性指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。對(duì)硬件技術(shù)的進(jìn)步可以做些預(yù)測(cè),對(duì)軟件技術(shù)的進(jìn)步則很難做出預(yù)測(cè),只能從現(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實(shí)性。(4)有效性必須證明需求是正確有效的,確實(shí)能解決用戶面對(duì)的問題。(1)一致性所有需求必須是一致的,任何一條需求不能和其他需1071.驗(yàn)證需求的一致性當(dāng)需求分析的結(jié)果是用自然語言書寫的時(shí)候,除了靠人工技術(shù)審查驗(yàn)證軟件系統(tǒng)規(guī)格說明書的正確性之外,目前還沒有其他更好的“測(cè)試”方法。但是,這種非形式化的規(guī)格說明書是難于驗(yàn)證的,特別在目標(biāo)系統(tǒng)規(guī)模龐大、規(guī)格說明書篇幅很長(zhǎng)的時(shí)候,人工審查的效果是沒有保證的,冗余、遺漏和不一致等問題可能沒被發(fā)現(xiàn)而繼續(xù)保留下來,以致軟件開發(fā)工作不能在正確的基礎(chǔ)上順利進(jìn)行。3.9.2驗(yàn)證軟件需求的方法1.驗(yàn)證需求的一致性3.9.2驗(yàn)證軟件需求的方法108為了克服上述困難,人們提出了形式化的描述軟件需求的方法。當(dāng)軟件需求規(guī)格說明書是用形式化的需求陳述語言書寫的時(shí)候,可以用軟件工具驗(yàn)證需求的一致性,從而能有效地保證軟件需求的一致性。2.驗(yàn)證需求的現(xiàn)實(shí)性為了驗(yàn)證需求的現(xiàn)實(shí)性,分析員應(yīng)該參照以往開發(fā)類似系統(tǒng)的經(jīng)驗(yàn),分析用現(xiàn)有的軟、硬件技術(shù)實(shí)現(xiàn)目標(biāo)系統(tǒng)的可能性。必要的時(shí)候應(yīng)該采用仿真或性能模擬技術(shù),輔助分析軟件需求規(guī)格說明書的現(xiàn)實(shí)性。為了克服上述困難,人們提出了形式化的描述軟件需求的方法。當(dāng)軟1093.驗(yàn)證需求的完整性和有效性只有目標(biāo)系統(tǒng)的用戶才真正知道軟件需求規(guī)格說明書是否完整、準(zhǔn)確地描述了他們的需求。因此,檢驗(yàn)需求的完整性,特別是證明系統(tǒng)確實(shí)滿足用戶的實(shí)際需要(即,需求的有效性),只有在用戶的密切合作下才能完成。然而許多用戶并不能清楚地認(rèn)識(shí)到他們的需要(特別在要開發(fā)的系統(tǒng)是全新的,以前沒有使用類似系統(tǒng)的經(jīng)驗(yàn)時(shí),情況更是如此),不能有效地比較陳述需求的語句和實(shí)際需要的功能。只有當(dāng)他們有某種工作著的軟件系統(tǒng)可以實(shí)際使用和評(píng)價(jià)時(shí),才能完整確切地提出他們的需要。3.驗(yàn)證需求的完整性和有效性110例:“產(chǎn)品應(yīng)在不少于每60秒的正常周期內(nèi)提供狀態(tài)信息”

這個(gè)需求是不完整的:狀態(tài)信息是什么,如何顯示給用戶。這個(gè)需求有幾處含糊。我們?cè)谡務(wù)摦a(chǎn)品的哪部分?狀態(tài)信息間隔真的假定為不少于60秒?,甚者每10年顯示一條新的狀態(tài)信息也可以?也許它的意圖是消息間隔不應(yīng)超過60秒,那么1毫秒是不是太短?“每”這個(gè)詞導(dǎo)致了不確定性。問題的后果,就是需求的不可證實(shí)。

例:“產(chǎn)品應(yīng)在不少于每60秒的正常周期內(nèi)提供狀態(tài)信息”

111彌補(bǔ)缺陷,重寫需求的一種方法:

1、狀態(tài)信息

1.1后臺(tái)任務(wù)管理器因該以誤差上下不超過10秒的

60秒間隔,在用戶界面的指定位置顯示狀態(tài)信息

1.2如果后臺(tái)進(jìn)程處理正常,那么應(yīng)該顯示任務(wù)已完成的百分?jǐn)?shù)/比

1.3任務(wù)完成時(shí),應(yīng)顯示相關(guān)的信息

1.4后臺(tái)任務(wù)出錯(cuò)應(yīng)該顯示錯(cuò)誤信息

彌補(bǔ)缺陷,重寫需求的一種方法:112理想的做法是先根據(jù)需求分析的結(jié)果開發(fā)出一個(gè)軟件系統(tǒng),請(qǐng)用戶試用一段時(shí)間以便能認(rèn)識(shí)到他們的實(shí)際需要是什么,在此基礎(chǔ)上再寫出正式的“正確的”規(guī)格說明書。但是,這種做法將使軟件成本增加一倍,因此實(shí)際上幾乎不可能采用這種方法。使用原型系統(tǒng)是一個(gè)比較現(xiàn)實(shí)的替代方法,開發(fā)原型系統(tǒng)所需要的成本和時(shí)間可以大大少于開發(fā)實(shí)際系統(tǒng)所需要的。用戶通過試用原型系統(tǒng),也能獲得許多寶貴的經(jīng)驗(yàn),從而可以提出更符合實(shí)際的要求。理想的做法是先根據(jù)需求分析的結(jié)果開發(fā)出一個(gè)軟件系統(tǒng),請(qǐng)用戶試113

使用原型系統(tǒng)的目的,通常是顯示目標(biāo)系統(tǒng)的主要功能而不是性能。為了達(dá)到這個(gè)目的快速建立原型系統(tǒng),并且可以適當(dāng)降低對(duì)接口、可靠性和程序質(zhì)量的要求,此外還可以省掉許多文檔資料方面的工作,從而可以大大降低原型系統(tǒng)的開發(fā)成本。使用原型系統(tǒng)的目的,通常是顯示目標(biāo)系統(tǒng)的主要114為了更有效地保證軟件需求的正確性,特別是為了保證需求的一致性,需要有適當(dāng)?shù)能浖ぞ咧С中枨蠓治龉ぷ?。這類軟件工具應(yīng)該滿足下列要求:(1)必須有形式化的語法(或表),因此可以用計(jì)算機(jī)自動(dòng)處理使用這種語法說明的內(nèi)容;(2)使用這個(gè)軟件工具能夠?qū)С鲈敿?xì)的文檔;(3)必須提供分析(測(cè)試)規(guī)格說明書的不一致性和冗余性的手段,并且應(yīng)該能夠產(chǎn)生一組報(bào)告指明對(duì)完整性分析的結(jié)果;3.9.3用于需求分析的軟件工具為了更有效地保證軟件需求的正確性,特別是為了保證需求的一致性115(4)使用這個(gè)軟件工具之后,應(yīng)該能夠改進(jìn)通信狀況。作為需求工程方法學(xué)的一部分,在1977年設(shè)計(jì)完成了RSL(需求陳述語言)。RSL中的語句是計(jì)算機(jī)可以處理的,處理以后把從這些語句中得到的信息集中存放在一個(gè)稱為ASSM(抽象系統(tǒng)語義模型)的數(shù)據(jù)庫(kù)中。有一組軟件工具處理ASSM數(shù)據(jù)庫(kù)中的信息以產(chǎn)生出用PASCAL語言書寫的模擬程序,從而可以檢驗(yàn)需求的一致性、完整性和現(xiàn)實(shí)性。(4)使用這個(gè)軟件工具之后,應(yīng)該能夠改進(jìn)通信狀況。1161977年美國(guó)密執(zhí)安大學(xué)開發(fā)了PSL/PSA(問題陳述語言/問題陳述分析程序)系統(tǒng)。這個(gè)系統(tǒng)是CADSAT(計(jì)算機(jī)輔助設(shè)計(jì)和規(guī)格說明分析工具)的一部分,它的基本結(jié)構(gòu)類似于RSL。其中PSL是用來描述系統(tǒng)的形式語言,PSA是處理PSL描述的分析程序。用PSL描述的系統(tǒng)屬性放在一個(gè)數(shù)據(jù)庫(kù)中。一旦建立起數(shù)據(jù)庫(kù)之后即可增加信息、刪除信息或修改信息,并且保持信息的一致性。PSA對(duì)數(shù)據(jù)庫(kù)進(jìn)行處理以產(chǎn)生各種報(bào)告,測(cè)試不一致性或遺漏,并且生成文檔資料。1977年美國(guó)密執(zhí)安大學(xué)開發(fā)了PSL/PSA(問題陳述語言/117PSL/PSA系統(tǒng)的功能主要有下述4種:(1)描述任何應(yīng)用領(lǐng)域的信息系統(tǒng);(2)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)保存對(duì)該信息系統(tǒng)的描述符;(3)對(duì)描述符施加增加、刪除和更改等操作;(4)產(chǎn)生格式化的文檔和關(guān)于規(guī)格說明書的各種分析報(bào)告。PSL/PSA系統(tǒng)用描述符從系統(tǒng)信息流、系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)導(dǎo)出、系統(tǒng)規(guī)模、系統(tǒng)動(dòng)態(tài)、系統(tǒng)性質(zhì)和項(xiàng)目管理等8個(gè)方面描述信息系統(tǒng)。PSL/PSA系統(tǒng)的功能主要有下述4種:118一旦用PSL對(duì)系統(tǒng)做了完整描述,就可以調(diào)用PSA產(chǎn)生一組分析報(bào)告,其中包括所有修改規(guī)格說明數(shù)據(jù)庫(kù)的記錄,用各種形式描述數(shù)據(jù)庫(kù)信息的參照?qǐng)?bào)告(包括圖形形式的描述),關(guān)于項(xiàng)目管理信息的總結(jié)報(bào)告,以及評(píng)價(jià)數(shù)據(jù)庫(kù)特性的分析報(bào)告。借助PSL/PSA系統(tǒng)可以邊對(duì)目標(biāo)系統(tǒng)進(jìn)行自頂向下的逐層分解,邊將需求分析過程中遇到的數(shù)據(jù)流、文件、處理等對(duì)象用PSL描述出來并輸入到PSL/PSA系統(tǒng)中。PSA將對(duì)輸入信息作一致性和完整性檢查,并且保存這些描述信息。一旦用PSL對(duì)系統(tǒng)做了完整描述,就可以調(diào)用PSA產(chǎn)生一組分析119PSL/PSA系統(tǒng)的主要優(yōu)點(diǎn)是它改進(jìn)了文檔質(zhì)量,能保證文檔具有完整性、一致性和無二義性,從而可以減少管理和維護(hù)的費(fèi)用。數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中,便于增加、刪除和更改,這也是它的一個(gè)優(yōu)點(diǎn)。PSL/PSA系統(tǒng)的主要優(yōu)點(diǎn)是它改進(jìn)了文檔質(zhì)量,能保證文檔具120結(jié)論

a)需求分析是整個(gè)項(xiàng)目管理中需要重點(diǎn)控制的幾個(gè)關(guān)鍵節(jié)點(diǎn)之一,首先思想上一定要重視。

b)需求分析報(bào)告的編寫者要參與到需求的搜集工作中,準(zhǔn)確領(lǐng)會(huì)客戶的意圖,并轉(zhuǎn)化成軟件能夠?qū)崿F(xiàn)的功能。對(duì)于說不清楚需求的客戶,要善于問關(guān)鍵問題,引導(dǎo)客戶提出自己的需求。可以采取的措施是事先編制一個(gè)問卷調(diào)查之類的文檔,詳細(xì)列舉需要客戶回答的問題,以便防止遺漏。

c)需求報(bào)告的編寫者要能夠?qū)蛻粜枨筮M(jìn)行深入分析,區(qū)別出哪些需求存在日后變更的可能,哪些需求屬于相對(duì)固定的,哪些需求能夠?qū)崿F(xiàn),哪些需求需要變通才能實(shí)現(xiàn),以便于指導(dǎo)后面的功能設(shè)計(jì)。

d)需求分析報(bào)告對(duì)功能細(xì)節(jié)的描述不能有歧義,描述一定要全面、準(zhǔn)確,防止開發(fā)方和客戶只見對(duì)同一個(gè)問題有兩個(gè)截然不同的理解??梢酝ㄟ^評(píng)審,用大家的力量來避免這種情況發(fā)生結(jié)論121

e)需求報(bào)告的每個(gè)關(guān)乎功能的描述都要讓客戶明白和理解,客戶在理解之上的確認(rèn)才能夠保證日后一旦出現(xiàn)問題不致出現(xiàn)雙方互相推托責(zé)任糾纏不清的情況。

f)需求報(bào)告一定要經(jīng)過一個(gè)有技術(shù)人員和業(yè)務(wù)人員參加的評(píng)審,要充分發(fā)揮團(tuán)隊(duì)的力量,重視每個(gè)人的才智,一個(gè)模塊一個(gè)功能的逐一的過,讓大家來共同找出需求報(bào)告里不合理的、有歧義的、不完善的、遺漏的等等問題

g)幫助客戶去理解提交給他的需求分析報(bào)告而不是只等簽字,對(duì)于有能夠用好幾種方式實(shí)現(xiàn)的功能,盡量做到能讓客戶去比較和選擇。不要讓客戶對(duì)報(bào)告中的部分產(chǎn)生歧義。只有客戶對(duì)報(bào)告的完全的理解,才能在日后客戶提出的修改被認(rèn)為是需求變更的時(shí)候能夠得到客戶的理解

h)最后,需求分析報(bào)告一定要雙方共同簽字確認(rèn)e)需求報(bào)告的每個(gè)關(guān)乎功能的描述都要讓客戶明白和理解,122第3章 需求分析3.1需求分析的任務(wù) 需求分析的任務(wù)就是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題,是通過系統(tǒng)分析員與用戶一起商定,清晰、準(zhǔn)確、具體地描述軟件產(chǎn)品必須具有的功能、性能、運(yùn)行規(guī)格等要求。軟件需求分析階段的目的是澄清用戶的要求,并把雙方共同的理解明確地表達(dá)成一份書面文檔——軟件需求規(guī)格說明書。第3章 需求分析3.1需求分析的任務(wù)123用戶與分析員的責(zé)任用戶與分析員的責(zé)任124第3章 需求分析需求分析的具體任務(wù)包括:1.功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。2.性能需求性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。第3章 需求分析需求分析的具體任務(wù)包括:1253.可靠性和可用性需求可靠性需求定量地指定系統(tǒng)的可靠性??捎眯耘c可靠性密切相關(guān),它量化了用戶可以使用系統(tǒng)的程度。4.出錯(cuò)處理需求這類需求說明系統(tǒng)對(duì)環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。例如,如果它接收到從另一個(gè)系統(tǒng)發(fā)來的違反協(xié)議格式的消息,應(yīng)該做什么?注意,上述這類錯(cuò)誤并不是由該應(yīng)用系統(tǒng)本身造成的。3.可靠性和可用性需求126在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)錯(cuò)誤時(shí)所采取的行動(dòng)。但是,應(yīng)該有選擇地提出這類出錯(cuò)處理需求。我們的目的是開發(fā)出正確的系統(tǒng),而不是用無休止的出錯(cuò)處理代碼掩蓋自己的錯(cuò)誤。總之,對(duì)應(yīng)用系統(tǒng)本身錯(cuò)誤的檢測(cè)應(yīng)該僅限于系統(tǒng)的關(guān)鍵部分,而且應(yīng)該盡可能少。5.接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。在某些情況下,“出錯(cuò)處理”指的是當(dāng)應(yīng)用系統(tǒng)發(fā)現(xiàn)它自己犯下一個(gè)1276.約束設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。在需求分析階段提出這類需求,并不是要取代設(shè)計(jì)(或?qū)崿F(xiàn))過程,只是說明用戶或環(huán)境強(qiáng)加給項(xiàng)目的限制條件。常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺(tái)。7.逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆向需求,我們應(yīng)該僅選取能澄清真實(shí)需求且可消除可能發(fā)生的誤解的那些逆向需求。6.約束1288.將來可能提出的要求應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會(huì)提出來的要求。這樣做的目的是,在設(shè)計(jì)過程中對(duì)系統(tǒng)將來可能的擴(kuò)充和修改預(yù)做準(zhǔn)備,以便一旦確實(shí)需要時(shí)能比較容易地進(jìn)行這種擴(kuò)充和修改。8.將來可能提出的要求129需求分類一、綜合需求3.1.3軟件需求分析的任務(wù)環(huán)境需求功能需求性能需求需求分類一、綜合需求3.1.3軟件需求分析的任務(wù)環(huán)境需求功130軟件工程導(dǎo)論第3章需求分析131(1)功能需求

系統(tǒng)做什么?系統(tǒng)何時(shí)做什么?系統(tǒng)何時(shí)及如何修改或升級(jí)?(1)功能需求系統(tǒng)做什么?132(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)例如:存儲(chǔ)容量限制執(zhí)行速度、相應(yīng)時(shí)間吞吐量(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)133(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、地點(diǎn)、分布、溫度、濕度、磁場(chǎng)干擾等軟件:操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、134(4)界面需求有來自其它系統(tǒng)的輸入嗎?到自其它系統(tǒng)的輸出嗎?對(duì)數(shù)據(jù)格式有規(guī)定嗎?對(duì)數(shù)據(jù)存儲(chǔ)介質(zhì)有規(guī)定嗎?(4)界面需求有來自其它系統(tǒng)的輸入嗎?135(5)用戶或人的因素

用戶類型?各種用戶熟練程度?需受何種訓(xùn)練?用戶理解、使用系統(tǒng)的難度?用戶錯(cuò)誤操作系統(tǒng)的可能性?(5)用戶或人的因素用戶類型?136(6)數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率?數(shù)據(jù)的準(zhǔn)確性和精度?數(shù)據(jù)流量?數(shù)據(jù)需保持的時(shí)間?(6)數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?137(7)資源需求

軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資源。軟件開發(fā)、維護(hù)所需的人力、支撐軟件、開發(fā)設(shè)備等。(7)資源需求軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資138(8)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)?用戶程序如何與其它程序和操作系統(tǒng)隔離?系統(tǒng)備份要求?(8)安全保密要求需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?139二、邏輯模型結(jié)構(gòu)化分析——數(shù)據(jù)流圖(DFD)面向?qū)ο蠓治觥悎D和用例圖二、邏輯模型結(jié)構(gòu)化分析——數(shù)據(jù)流圖(DFD)面向?qū)ο蠓治觥?40三、需求評(píng)審對(duì)需求文檔進(jìn)行正式審查以需求為依據(jù)編寫測(cè)試用例編寫用戶手冊(cè)在需求開發(fā)早期即可起草一份用戶手冊(cè)確定合格的標(biāo)準(zhǔn)讓用戶描述什么樣的產(chǎn)品才算滿足他們的要求和適合他們使用的

三、需求評(píng)審對(duì)需求文檔進(jìn)行正式審查141四、編寫文檔1.編寫“需求說明書”;2.編寫初步的用戶使用手冊(cè);3.編寫確認(rèn)測(cè)試計(jì)劃;4.修改完善項(xiàng)目開發(fā)計(jì)劃。四、編寫文檔1.編寫“需求說明書”;142第3章 需求分析3.2需求分析的過程 需求分析階段可分為四個(gè)過程:調(diào)查研究、分析與綜合、書寫需求分析的文檔和評(píng)審。(1)調(diào)查研究 系統(tǒng)分析員協(xié)同程序員向用戶做需求調(diào)查,閱軟件計(jì)劃中的可行性報(bào)告和項(xiàng)目開發(fā)計(jì)劃報(bào)告,訪問系統(tǒng)現(xiàn)場(chǎng),并由此確定當(dāng)前系統(tǒng)必須做什么,并獲得當(dāng)前系統(tǒng)的具體模型,用數(shù)據(jù)流圖或IPO圖表示出來。

第3章 需求分析3.2需求分析的過程143軟件工程導(dǎo)論第3章需求分析144軟件工程導(dǎo)論第3章需求分析145第3章 需求分析(2)分析與綜合 分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)中各元素之間的聯(lián)系、接口特征和設(shè)計(jì)上的限制,分析它們能否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行環(huán)境需求等,剔除其中不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案后,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。第3章 需求分析(2)分析與綜合146軟件工程導(dǎo)論第3章需求分析147軟件工程導(dǎo)論第3章需求分析148(3)編制需求分析階段的文檔軟件需求說明書數(shù)據(jù)要求說明書初步的用戶手冊(cè)修改、完善與確定軟件開發(fā)實(shí)施計(jì)劃(3)編制需求分析階段的文檔149(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準(zhǔn)確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;(4)需求分析評(píng)審系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;150被開發(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)是否足夠,確定;151是否考慮過軟件需求的其它方案;是否考慮過將來可能會(huì)提出的軟件需求;是否詳細(xì)制定了檢驗(yàn)標(biāo)準(zhǔn),它們能否對(duì)系統(tǒng)定義是否成功進(jìn)行確認(rèn);是否考慮過軟件需求的其它方案;152軟件工程導(dǎo)論第3章需求分析1533.3與用戶溝通獲取需求的方法

訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,分別是正式的和非正式的訪談。正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題。在非正式訪談中,分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說出自己的想法。3.3.1訪談3.3與用戶溝通獲取需求的方法

訪談是最早開始使用的獲取154會(huì)談法(1)識(shí)別信息源(2)計(jì)劃會(huì)談內(nèi)容(3)進(jìn)行訪問(4)概括獲取內(nèi)容優(yōu)點(diǎn):面對(duì)面,靈活,適應(yīng)性強(qiáng);探討較深入缺點(diǎn):費(fèi)時(shí);獲取信息難以評(píng)價(jià);訪問者帶有偏見;被訪者刻意隱瞞會(huì)談法(1)識(shí)別信息源優(yōu)點(diǎn):面對(duì)面,靈活,適應(yīng)性強(qiáng);155發(fā)調(diào)查表法發(fā)調(diào)查表法156軟件工程導(dǎo)論第3章需求分析157所有問題應(yīng)局限于一個(gè)主題應(yīng)考慮回答者的背景:如受教育程度、行話等應(yīng)易于打分所提供答案應(yīng)具有排他性所提問題用詞應(yīng)準(zhǔn)確優(yōu)點(diǎn):經(jīng)濟(jì)、易于管理;可以快速將結(jié)果制表并分析缺點(diǎn):只能采集一些特殊的、數(shù)量有限的信息;不具備靈活性;不能對(duì)問題的回答做進(jìn)一步的探索和研究設(shè)計(jì)調(diào)查表應(yīng)注意:優(yōu)點(diǎn):經(jīng)濟(jì)、易于管理;設(shè)計(jì)調(diào)查表應(yīng)注意:158觀察法

觀看與系統(tǒng)有關(guān)的實(shí)際處理過程進(jìn)行信息采集工作取樣

采集有關(guān)現(xiàn)行系統(tǒng)運(yùn)行情況的信息,如錯(cuò)誤率和錯(cuò)誤分布情況

觀察法159軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都是把輸入數(shù)據(jù)轉(zhuǎn)變成需要的輸出信息。數(shù)據(jù)決定了需要的處理和算法,數(shù)據(jù)顯然是需求分析的出發(fā)點(diǎn)。在可行性研究階段許多實(shí)際的數(shù)據(jù)元素被忽略了,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)定義到元素級(jí)。3.3.2面向數(shù)據(jù)流自頂向下求精軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都160面向數(shù)據(jù)流自頂向下求精過程軟件工程導(dǎo)論第3章需求分析161使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位而且往往有意無意地與開發(fā)者區(qū)分“彼此”。由于不能像同一個(gè)團(tuán)隊(duì)的人那樣齊心協(xié)力地識(shí)別和精化需求,這兩種方法的效果有時(shí)并不理想。為了解決上述問題,人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)。這種方法提倡用戶與開發(fā)者密切合作,共同標(biāo)識(shí)問題,提出解決方案要素,商討不同方案并指定基本需求。3.3.3簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處162快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)??焖僭途褪强焖俳⑵饋淼闹荚谘菔灸繕?biāo)系統(tǒng)主要功能的可運(yùn)行的程序。構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶看得見的功能(例如,屏幕顯示或打印報(bào)表),省略目標(biāo)系統(tǒng)的“隱含”功能(例如,修改文件)。3.3.4快速建立軟件原型快速建立軟件原型是最準(zhǔn)確、最有效、最強(qiáng)大的需求分析技術(shù)。快速163用戶不清楚軟件將會(huì)以什么形式實(shí)現(xiàn)業(yè)務(wù),而對(duì)現(xiàn)有業(yè)務(wù)是非常清楚的。通過原型法,用戶能直觀的看到將來用軟件是怎樣實(shí)現(xiàn)業(yè)務(wù),是否符合用戶的期望值。

原型主要描述2個(gè)問題:用戶不清楚軟件將會(huì)以什么形式實(shí)現(xiàn)業(yè)務(wù),而對(duì)現(xiàn)有業(yè)務(wù)是非常清楚1641

界面處理流程和后臺(tái)業(yè)務(wù)處理流程是否正確。

界面處理流程:界面是指用戶面對(duì)的界面。用戶只有看到具體的軟件界面,才會(huì)形成感性的知識(shí),才能對(duì)開發(fā)的系統(tǒng)提出具體要求,和進(jìn)一步的改進(jìn)需求。才能理解我們推薦的解決方案。另一方面,這也是檢驗(yàn)PM對(duì)用戶需求的理解是否正確,能否做出符合要求的產(chǎn)品。-

后臺(tái)處理流程:建模!解釋后臺(tái)處理的邏輯。模型是用戶方面的技術(shù)人員。好的模型對(duì)于系統(tǒng)的擴(kuò)展和改變至關(guān)重要。

1

界面處理流程和后臺(tái)業(yè)務(wù)處理流程是否正確。1652

原型法處理界面設(shè)計(jì)問題

在不少項(xiàng)目中,一旦用戶對(duì)界面挑剔起來將會(huì)花費(fèi)大量時(shí)間。因此,在原型階段,就應(yīng)包括界面設(shè)計(jì)的原則。從界面風(fēng)格,易用性,友好化,用戶習(xí)慣等多方面達(dá)成一定規(guī)定,會(huì)對(duì)程序員在界面設(shè)計(jì)上節(jié)省大量時(shí)間。

2

原型法處理界面設(shè)計(jì)問題

1661、原型可以用于吸引需求,也有風(fēng)險(xiǎn)a、開發(fā)周期的控制更難。b、用戶的需求擴(kuò)大。(個(gè)人意見)

2、原型可以做技術(shù)評(píng)估(大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠;找出軟件方案中比較難的技術(shù)問題進(jìn)行解決,解決不了換方案,工作量太大換方案,影響系統(tǒng)性能換方案....)

3、原型不能用作進(jìn)度估計(jì)(至少一般情況如此)

4、做原型參與競(jìng)標(biāo),爭(zhēng)奪項(xiàng)目(展示形原型)

1、原型可以用于吸引需求,也有風(fēng)險(xiǎn)167例如:大多數(shù)的動(dòng)態(tài)網(wǎng)站,都是在客戶初步的需求基礎(chǔ)上,先制作一個(gè)大體上能表現(xiàn)功能的靜態(tài)網(wǎng)站出來,然后客戶根據(jù)這個(gè)靜態(tài)網(wǎng)站提出進(jìn)一步的詳細(xì)需求,開發(fā)便按照這個(gè)詳細(xì)需求來進(jìn)行。

例如:大多數(shù)的動(dòng)態(tài)網(wǎng)站,都是在客戶初步的需求基礎(chǔ)上,先制作一168為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具:(1)第四代技術(shù)第四代技術(shù)包括眾多數(shù)據(jù)庫(kù)查詢和報(bào)表語言、程序和應(yīng)用系統(tǒng)生成器以及其他非常高級(jí)的非過程語言。第四代技術(shù)使得軟件工程師能夠快速地生成可執(zhí)行的代碼,它們是較理想的快速原型工具。為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具:169第一代編程語言機(jī)器語言特征:面向機(jī)器。第二代編程語言匯編語言特征:用針對(duì)指令的符號(hào)代替二進(jìn)制代碼。第三代編程語言C、C++、pascal、特征:有類型的、過程式語言;標(biāo)準(zhǔn)化的和獨(dú)立于硬件的;在這些語言中的操作必須用詳細(xì)的、一步接一步的算法方式指定;做很少的隱含處理;是通用的

第一代編程語言機(jī)器語言170第四代編程語言4GL特征:通常有自由形式的變量使用;通常不需要類型定義并允許動(dòng)態(tài)類型的變量;不強(qiáng)調(diào)模塊化、基于過程的編碼式樣;包含一些預(yù)定義的過程來進(jìn)行各種高層操作,這些高層操作涉及大量隱含的處理。

第四代語言(4GL)應(yīng)當(dāng)盡可能的提供你需要的簡(jiǎn)單語句,而不是如何處理它的詳細(xì)過程。第四代編程語言4GL第四代語言(4GL)應(yīng)當(dāng)盡可能的提供171第三代程序fori=1to10

printinexti語句多數(shù)被限制在算術(shù)操作上,帶有有限的字符串功能。

使用shell你可以在幾分鐘或幾小時(shí)中把應(yīng)用程序組裝起來,而不是使用3GL要求的幾周或幾個(gè)月。在4GL中你應(yīng)當(dāng)可以用一或兩行來寫多數(shù)應(yīng)用程序。使用

shell

你可以有如下表示:$cutsomecolumns<file|grep'string'|sort|lpr

這個(gè)簡(jiǎn)短的程序得到一個(gè)文件中的一些列,連接管道通過grep來得到帶有特定字符串的行、排序它們并把它們發(fā)送到行打印機(jī)。在COBOL、PL/I、C和多數(shù)商業(yè)4GL中相同的報(bào)告將使用數(shù)十到數(shù)百行。

第三代程序fori=1to10語句多數(shù)被限制在算術(shù)操作172(2)可重

溫馨提示

  • 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)論