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

下載本文檔

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

文檔簡介

第4章

軟件分析計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)軟件系統(tǒng)前期分析項(xiàng)目可行性分析軟件需求分析軟件需求驗(yàn)證第4章軟件分析計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)11.計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)是一個(gè)復(fù)雜的系統(tǒng),它包含硬件系統(tǒng)、軟件系統(tǒng)、網(wǎng)絡(luò)通信系統(tǒng)、人工操作系統(tǒng)等諸多子系統(tǒng),而其中的軟件系統(tǒng)又由操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用程序等更小的系統(tǒng)元素組成。1.計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)2計(jì)算機(jī)體系結(jié)構(gòu)幾種典型的計(jì)算機(jī)體系結(jié)構(gòu):

中央主機(jī)結(jié)構(gòu):主機(jī)集中了全部智能,并依靠終端接口與外部設(shè)備連接。計(jì)算機(jī)體系結(jié)構(gòu)幾種典型的計(jì)算機(jī)體系結(jié)構(gòu):3計(jì)算機(jī)體系結(jié)構(gòu)客戶機(jī)/服務(wù)器結(jié)構(gòu):智能分布于服務(wù)器與客戶機(jī),并依靠網(wǎng)絡(luò)連接成系統(tǒng)。其中,服務(wù)器處于核心位置,提供被動(dòng)核心服務(wù);客戶機(jī)處于邊緣位置,可主動(dòng)訪問服務(wù)器,尋求服務(wù)支持。計(jì)算機(jī)體系結(jié)構(gòu)客戶機(jī)/服務(wù)器結(jié)構(gòu):智能分布于服務(wù)器與客戶機(jī)4計(jì)算機(jī)體系結(jié)構(gòu)瀏覽器

/服務(wù)器結(jié)構(gòu):一種更適合互聯(lián)網(wǎng)遠(yuǎn)程交互的基于Web應(yīng)用的特殊的客戶機(jī)/服務(wù)器結(jié)構(gòu)。計(jì)算機(jī)體系結(jié)構(gòu)瀏覽器/服務(wù)器結(jié)構(gòu):一種更適合互聯(lián)網(wǎng)遠(yuǎn)程交52.軟件系統(tǒng)前期分析可從以下方面進(jìn)行軟件高層分析:軟件系統(tǒng)的業(yè)務(wù)領(lǐng)域、業(yè)務(wù)邊界與業(yè)務(wù)流程。軟件系統(tǒng)對硬件設(shè)施、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)環(huán)境的依賴。軟件系統(tǒng)的安全層級、措施與防范機(jī)制。軟件系統(tǒng)與其它相關(guān)系統(tǒng)之間的協(xié)作關(guān)系。軟件系統(tǒng)與用戶組織及其工作任務(wù)的協(xié)調(diào)性與適應(yīng)性。2.軟件系統(tǒng)前期分析可從以下方面進(jìn)行軟件高層分析:6系統(tǒng)結(jié)構(gòu)建模

使用矩形與帶箭頭的線段來描述系統(tǒng)的基本結(jié)構(gòu)下圖是自動(dòng)閱卷系統(tǒng)的系統(tǒng)框架圖。通常用來描述系統(tǒng)的邏輯框架。系統(tǒng)結(jié)構(gòu)建模使用矩形與帶箭頭的線段來描述系統(tǒng)7系統(tǒng)工作流建?!到y(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。基本思想:用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對數(shù)據(jù)進(jìn)行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。系統(tǒng)工作流建?!到y(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的81.符號利用符號可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲在特殊設(shè)備上的文件(或數(shù)據(jù)庫),把抽象處理具體化為特定的程序或手工操作等。1.符號利用符號可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲9以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用下圖中列出的基本符號就足夠了以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用下圖中列出的基10需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用右圖中列出的系統(tǒng)符號需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用右圖中列出的系統(tǒng)符號11以一個(gè)簡單的例子進(jìn)行講解。某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便訂貨,規(guī)定每天向采購部門送一次訂貨報(bào)告。2.例子以一個(gè)簡單的例子進(jìn)行講解。某裝配廠有一座存放零件的倉庫,倉庫12該裝配廠使用一臺小型計(jì)算機(jī)處理更新庫存清單主文件和產(chǎn)生訂貨報(bào)告的任務(wù)。零件庫存量的每一次變化稱為一個(gè)事務(wù),由放在倉庫中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲在磁盤上的庫存清單主文件,并且把必要的訂貨信息寫在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出訂貨報(bào)告。如下圖所示。該裝配廠使用一臺小型計(jì)算機(jī)處理更新庫存清單主文件和產(chǎn)生訂貨報(bào)13軟件工程第4章--軟件分析課件14

用來描述系統(tǒng)的工作流程,以系統(tǒng)中的物理組件為單元說明系統(tǒng)的基本結(jié)構(gòu),并由此說明系統(tǒng)對數(shù)據(jù)的加工步驟下圖是自動(dòng)閱卷系統(tǒng)的系統(tǒng)流程圖。用來描述系統(tǒng)的工作流程,以系統(tǒng)中的物理組件為153.項(xiàng)目可行性分析可行性分析意義工程經(jīng)驗(yàn)表明:可行性分析對軟件問題解決途徑的探索,在以下幾個(gè)方面能夠?qū)浖?xiàng)目帶來積極的影響。

1.通過少量的的費(fèi)用,對項(xiàng)目能否實(shí)施盡早作出判斷,以避免項(xiàng)目開展以后所帶來的大量的人力、物力和時(shí)間的浪費(fèi)。

2.根據(jù)項(xiàng)目所受到的條件限制,對有待開發(fā)的系統(tǒng)在體系結(jié)構(gòu)、工作模式等方面作出抉擇,以利于項(xiàng)目今后的實(shí)現(xiàn)。

3.可以把可行性分析看作軟件定義時(shí)期需要進(jìn)行的前導(dǎo)性工作,其結(jié)果可以作為一個(gè)高層框架用于軟件需求分析過程之中,以方便今后軟件規(guī)格定義工作的順利開展。3.項(xiàng)目可行性分析可行性分析意義16可行性研究的任務(wù)可行性研究的目的不是解決問題,而是確定問題是否值得去解決。首先,進(jìn)一步分析和澄清問題定義然后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型最后,探索若干種可供選擇的主要解法可行性研究分析過程:可行性研究的任務(wù)可行性研究的目的不是解決問題,而是確定問題是17可行性研究的任務(wù)至少應(yīng)該從下述3個(gè)方面研究每種解法的可行性技術(shù)可行性使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?經(jīng)濟(jì)可行性這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?應(yīng)用可行性法律法規(guī)、系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?可行性研究的任務(wù)至少應(yīng)該從下述3個(gè)方面研究每種解法的可行性技18可行性研究過程怎樣進(jìn)行可行性研究呢?典型的可行性研究過程有下述8個(gè)步驟。復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型進(jìn)一步定義問題導(dǎo)出和評價(jià)供選擇的解法推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查可行性研究過程怎樣進(jìn)行可行性研究呢?典型的可行性研究過程有下19復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材料,以便對問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn),改正含糊或不確切的敘述,清晰地描述對目標(biāo)系統(tǒng)的一切限制和約束。這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問題確實(shí)是要求他解決的問題。復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材202.研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。顯然,如果目前有一個(gè)系統(tǒng)正被人使用,那么這個(gè)系統(tǒng)必定能完成某些有用的工作,因此,新的目標(biāo)系統(tǒng)必須也能完成它的基本功能;另一方面,如果現(xiàn)有的系統(tǒng)是完美無缺的,用戶自然不會提出開發(fā)新系統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點(diǎn),新系統(tǒng)必須能解決舊系統(tǒng)中存在的問題。應(yīng)該仔細(xì)閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊,也要實(shí)地考察現(xiàn)有的系統(tǒng)。常見的錯(cuò)誤做法是花費(fèi)過多時(shí)間去分析現(xiàn)有的系統(tǒng)。沒有一個(gè)系統(tǒng)是在“真空”中運(yùn)行的,絕大多數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系。2.研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。顯然,213.導(dǎo)出新系統(tǒng)的高層邏輯模型優(yōu)秀的設(shè)計(jì)過程通常是從現(xiàn)有的物理系統(tǒng)出發(fā),導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。4.進(jìn)一步定義問題可行性研究的前4個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。分析員定義問題,分析這個(gè)問題,導(dǎo)出一個(gè)試探性的解;在此基礎(chǔ)上再次定義問題,再一次分析這個(gè)問題,修改這個(gè)解;繼續(xù)這個(gè)循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。3.導(dǎo)出新系統(tǒng)的高層邏輯模型優(yōu)秀的設(shè)計(jì)過程通常是從現(xiàn)有的物理225.導(dǎo)出和評價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的物理解法供比較和選擇。其次可以考慮操作方面的可行性。分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。接下來應(yīng)該考慮經(jīng)濟(jì)方面的可行性。分析員應(yīng)該估計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省的開支或可以增加的收入。最后為每個(gè)在技術(shù)、操作和經(jīng)濟(jì)等方面都可行的系統(tǒng)制定實(shí)現(xiàn)進(jìn)度表,這個(gè)進(jìn)度表不需要制定得很詳細(xì),通常只需要估計(jì)生命周期每個(gè)階段的工作量。5.導(dǎo)出和評價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出236.導(dǎo)出和評價(jià)供選擇的解法根據(jù)可行性研究結(jié)果應(yīng)該決定的一個(gè)關(guān)鍵性問題是:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程?分析員必須清楚地表明他對這個(gè)關(guān)鍵性決定的建議。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說明選擇這個(gè)解決方案的理由。通??蛻糁饕鶕?jù)經(jīng)濟(jì)上是否劃算決定是否投資于一項(xiàng)開發(fā)工程,因此分析員對于所推薦的系統(tǒng)必須進(jìn)行比較仔細(xì)的成本/效益分析。6.導(dǎo)出和評價(jià)供選擇的解法根據(jù)可行性研究結(jié)果應(yīng)該決定的一個(gè)關(guān)247.草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對各類開發(fā)人員和各種資源的需要情況,應(yīng)該指明什么時(shí)候使用以及使用多長時(shí)間。此外還應(yīng)該估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。8.書寫文檔提交審查應(yīng)該把上述可行性研究各個(gè)步驟的工作結(jié)果寫成清晰的文檔,請用戶、客戶組織的負(fù)責(zé)人及評審組審查,以決定是否繼續(xù)這項(xiàng)工程及是否接受分析員推薦的方案。7.草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除254.需求分析任務(wù)與過程需求分析是為有效解決用戶需求問題而需要進(jìn)行的一項(xiàng)工程活動(dòng),所需考慮的需求問題有:功能需求、性能需求、接口需求、數(shù)據(jù)需求。開發(fā)者與用戶都將參與需求分析活動(dòng)。開發(fā)者承擔(dān)分析任務(wù),但活動(dòng)核心則是用戶。需求分析任務(wù)需要由熟悉用戶業(yè)務(wù)的系統(tǒng)分析師承擔(dān)。需求分析步驟是:獲取用戶需求、創(chuàng)建需求模型、確定軟件規(guī)格、進(jìn)行需求驗(yàn)證。4.需求分析任務(wù)與過程需求分析是為有效解決用戶需求問題而需26需求分析的任務(wù)1、確定對系統(tǒng)的綜合要求雖然功能需求是對軟件系統(tǒng)的一項(xiàng)基本需求,但卻并不是唯一的需求。通常對軟件系統(tǒng)有下述幾方面的綜合要求。功能需求性能需求可靠性和可用性需求出錯(cuò)處理需求接口需求約束逆向需求將來可能提出的要求需求分析的任務(wù)1、確定對系統(tǒng)的綜合要求雖然功能需求是對軟件系27功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能性能需求性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該28可靠性和可用性需求可靠性需求定量地指定系統(tǒng)的可靠性,可用性與可靠性密切相關(guān),它量化了用戶可以使用系統(tǒng)的程度。出錯(cuò)處理需求這類需求說明系統(tǒng)對環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。例如,如果它接收到從另一個(gè)系統(tǒng)發(fā)來的違反協(xié)議格式的消息,應(yīng)該做什么?注意,上述這類錯(cuò)誤并不是由該應(yīng)用系統(tǒng)本身造成的??煽啃院涂捎眯孕枨罂煽啃孕枨蠖康刂付ㄏ到y(tǒng)的可靠性,可用性與29接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。約束設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺。接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口30逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆向需求,人們應(yīng)該僅選取能澄清真實(shí)需求且可消除可能發(fā)生的誤解的那些逆向需求。將來可能提出的要求應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會提出來的要求。這樣做的目的是,在設(shè)計(jì)過程中對系統(tǒng)將來可能的擴(kuò)充和修改預(yù)做準(zhǔn)備,以便一旦確實(shí)需要時(shí)能比較容易地進(jìn)行這種擴(kuò)充和修改。逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆31任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應(yīng)該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌,對軟件設(shè)計(jì)有深遠(yuǎn)影響,因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個(gè)重要任務(wù)。2、分析系統(tǒng)的數(shù)據(jù)要求復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系。利用數(shù)據(jù)字典可以全面準(zhǔn)確地定義數(shù)據(jù),但是數(shù)據(jù)字典的缺點(diǎn)是不夠形象直觀。為了提高可理解性,常常利用圖形工具輔助描繪數(shù)據(jù)結(jié)構(gòu)。任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和32綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)據(jù)流圖、實(shí)體聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。3、導(dǎo)出系統(tǒng)的邏輯模型綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)33根據(jù)在分析過程中獲得的對系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。4、修正系統(tǒng)開發(fā)計(jì)劃根據(jù)在分析過程中獲得的對系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)34需求分析過程需求分析過程355.獲取用戶需求用戶泛指一切可從軟件獲得服務(wù)的對象??梢允悄硞€(gè)人,但也可以是人以外的機(jī)構(gòu)、部門、其他系統(tǒng)或設(shè)備??赏ㄟ^調(diào)查而獲取用戶需求。然而,有效的需求收集則依賴于有效的調(diào)查提問,并依賴于合適的調(diào)查方法。一些常用調(diào)查方法是:訪談、座談、問卷、跟班、收集資料。來自用戶的需求將體現(xiàn)為需求規(guī)約,其可表達(dá)用戶的軟件價(jià)值。5.獲取用戶需求用戶泛指一切可從軟件獲得服務(wù)的對象??梢允?6與用戶溝通獲取需求的方法訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,分別是正式的和非正式的訪談。1、訪談與用戶溝通獲取需求的方法訪談是最早開始使用的獲取用戶需求的技37正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題,例如,詢問客戶公司銷售的商品種類、雇用的銷售人員數(shù)目以及信息反饋時(shí)間應(yīng)該多快等。在非正式訪談中,分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說出自己的想法,例如,詢問用戶對目前正在使用的系統(tǒng)有哪些不滿意的地方。在訪問用戶的過程中使用情景分析技術(shù)往往非常有效。所謂情景分析就是對用戶將來使用目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果進(jìn)行分析。正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題,例如,38情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面。它能在某種程度上演示目標(biāo)系統(tǒng)的行為,從而便于用戶理解,而且還可能進(jìn)一步揭示出一些分析員目前還不知道的需求。由于情景分析較易為用戶所理解,使用這種技術(shù)能保證用戶在需求分析過程中始終扮演一個(gè)積極主動(dòng)的角色。情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面。它能在某種程度上演39結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。通過可行性研究已經(jīng)得出了目標(biāo)系統(tǒng)的高層數(shù)據(jù)流圖,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。為了達(dá)到這個(gè)目標(biāo),通常從數(shù)據(jù)流圖的輸出端著手分析,這是因?yàn)橄到y(tǒng)的基本功能是產(chǎn)生這些輸出,輸出數(shù)據(jù)決定了系統(tǒng)必須具有的最基本的組成元素。2、面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)流圖是幫助復(fù)查的極好工具,從輸入端開始,分析員借助數(shù)據(jù)流圖、數(shù)據(jù)字典和IPO圖向用戶解釋輸入數(shù)據(jù)是怎樣一步一步地轉(zhuǎn)變成輸出數(shù)據(jù)的。這些解釋集中反映了通過前面的分析工作分析員所獲得的對目標(biāo)系統(tǒng)的認(rèn)識。結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方40隨著分析過程的進(jìn)展,經(jīng)過提問和解答的反復(fù)循環(huán),分析員越來越深入具體地定義了目標(biāo)系統(tǒng),最終得到對系統(tǒng)數(shù)據(jù)和功能要求的滿意了解。隨著分析過程的進(jìn)展,經(jīng)過提問和解答的反復(fù)循環(huán),分析員越來越深413、簡易的應(yīng)用規(guī)格說明技術(shù)簡易的應(yīng)用規(guī)格說明技術(shù)是為了解決使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位而且往往有意無意地與開發(fā)者區(qū)分“彼此”。由于不能像同一個(gè)團(tuán)隊(duì)的人那樣齊心協(xié)力地識別和精化需求,這兩種方法的效果有時(shí)并不理想的問題,提出的。3、簡易的應(yīng)用規(guī)格說明技術(shù)簡易的應(yīng)用規(guī)格說明技術(shù)是為了解決使42簡易的應(yīng)用規(guī)格說明技術(shù)分析需求的典型過程如下1進(jìn)行初步的訪談2開發(fā)者和用戶分別寫出“產(chǎn)品需求”。3開會討論,各自展示需求列表4得出了意見一致,為需求列表制定小型規(guī)格說明5根據(jù)會議結(jié)果,起草完整的軟件需求規(guī)格說明簡易的應(yīng)用規(guī)格說明技術(shù)分析需求的典型過程如下1進(jìn)行初步的訪談434、快速建立軟件原型為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具。第四代技術(shù)可重用的軟件構(gòu)件形式化規(guī)格說明和原型環(huán)境4、快速建立軟件原型為了快速地構(gòu)建和修改原型,通常使用下述344快速原型就是快速建立起來的旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序,快速原型應(yīng)該具備的特性:快速原型應(yīng)該具備的第一個(gè)特性是“快速”??焖僭蛻?yīng)該具備的第二個(gè)特性是“容易修改”??焖僭途褪强焖俳⑵饋淼闹荚谘菔灸繕?biāo)系統(tǒng)主要功能的可運(yùn)行的456.建立需求模型

需求建模是用戶需求問題圖解,一些常用模型有:業(yè)務(wù)樹圖、用例圖、活動(dòng)圖。其中,業(yè)務(wù)樹是結(jié)構(gòu)化需求建模,用例圖是系統(tǒng)業(yè)務(wù)舉例,活動(dòng)圖則反映系統(tǒng)工作流程。6.建立需求模型需求建模是用戶需求問題圖解,一些常467.進(jìn)行需求驗(yàn)證需求驗(yàn)證是指對需求分析成果的檢查與確認(rèn)。主要的需求驗(yàn)證內(nèi)容有:有效性驗(yàn)證、一致性驗(yàn)證、完整性驗(yàn)證、現(xiàn)實(shí)性驗(yàn)證。可通過需求原型確認(rèn)或需求評審,而實(shí)現(xiàn)需求驗(yàn)證。7.進(jìn)行需求驗(yàn)證需求驗(yàn)證是指對需求分析成果的檢查與確認(rèn)。主47驗(yàn)證軟件需求1、從哪些方面驗(yàn)證軟件需求的正確性需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計(jì)數(shù)字表明,軟件系統(tǒng)中15%的錯(cuò)誤起源于錯(cuò)誤的需求。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成本,一旦對目標(biāo)系統(tǒng)提出一組要求之后,必須嚴(yán)格驗(yàn)證這些需求的正確性。一般說來,應(yīng)該從下述4個(gè)方面進(jìn)行驗(yàn)證。驗(yàn)證軟件需求1、從哪些方面驗(yàn)證軟件需求的正確性需求分析階段的48一致性是指所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。完整性是指需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個(gè)功能或性能?,F(xiàn)實(shí)性是指需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。有效性是指必須證明需求是正確有效的,確實(shí)能解決用戶面對的問題。一致性是指所有需求必須是一致的,任何一條需求不能和其他需求互49上一小節(jié)已經(jīng)指出,至少必須從一致性、完整性、現(xiàn)實(shí)性和有效性這4個(gè)不同角度驗(yàn)證軟件需求的正確性。那么,怎樣驗(yàn)證軟件需求的正確性呢?驗(yàn)證的角度不同,驗(yàn)證的方法也不同。2、驗(yàn)證軟件需求的方法驗(yàn)證需求的一致性驗(yàn)證需求的現(xiàn)實(shí)性驗(yàn)證需求的完整性和有效性上一小節(jié)已經(jīng)指出,至少必須從一致性、完整性、現(xiàn)實(shí)性和有效性這50驗(yàn)證需求的一致性當(dāng)需求分析的結(jié)果是用自然語言書寫的時(shí)候,除了靠人工技術(shù)審查驗(yàn)證軟件系統(tǒng)規(guī)格說明書的正確性之外,目前還沒有其他更好的“測試”方法。但是,這種非形式化的規(guī)格說明書是難于驗(yàn)證的,特別在目標(biāo)系統(tǒng)規(guī)模龐大、規(guī)格說明書篇幅很長的時(shí)候,人工審查的效果是沒有保證的,冗余、遺漏和不一致等問題可能沒被發(fā)現(xiàn)而繼續(xù)保留下來,以致軟件開發(fā)工作不能在正確的基礎(chǔ)上順利進(jìn)行。為了克服上述困難,人們提出了形式化的描述軟件需求的方法。驗(yàn)證需求的一致性當(dāng)需求分析的結(jié)果是用自然語言書寫的時(shí)候,除了51驗(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í)性。驗(yàn)證需求的現(xiàn)實(shí)性為了驗(yàn)證需求的現(xiàn)實(shí)性,分析員應(yīng)該參照以往開發(fā)52驗(yàn)證需求的完整性和有效性只有目標(biāo)系統(tǒng)的用戶才真正知道軟件需求規(guī)格說明書是否完整、準(zhǔn)確地描述了他們的需求。因此,檢驗(yàn)需求的完整性,特別是證明系統(tǒng)確實(shí)滿足用戶的實(shí)際需要,只有在用戶的密切合作下才能完成。然而許多用戶并不能清楚地認(rèn)識到他們的需要(特別在要開發(fā)的系統(tǒng)是全新的,以前沒有使用類似系統(tǒng)的經(jīng)驗(yàn)時(shí),情況更是如此),不能有效地比較陳述需求的語句和實(shí)際需要的功能。只有當(dāng)他們有某種工作著的軟件系統(tǒng)可以實(shí)際使用和評價(jià)時(shí),才能完整確切地提出他們的需要。驗(yàn)證需求的完整性和有效性只有目標(biāo)系統(tǒng)的用戶才真正知道軟件需求533、用于需求分析的軟件工具為了更有效地保證軟件需求的正確性,特別是為了保證需求的一致性,需要有適當(dāng)?shù)能浖ぞ咧С中枨蠓治龉ぷ?。這類軟件工具應(yīng)該滿足下列要求。3、用于需求分析的軟件工具為了更有效地保證軟件需求的正確性,54必須有形式化的語法(或表),因此可以用計(jì)算機(jī)自動(dòng)處理使用這種語法說明的內(nèi)容。使用這個(gè)軟件工具能夠?qū)С鲈敿?xì)的文檔。必須提供分析(測試)規(guī)格說明書的不一致性和冗余性的手段,并且應(yīng)該能夠產(chǎn)生一組報(bào)告指明對完整性分析的結(jié)果。使用這個(gè)軟件工具之后,應(yīng)該能夠改進(jìn)通信狀況。必須有形式化的語法(或表),因此可以用計(jì)算機(jī)自動(dòng)處理使用這種55第4章

軟件分析計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)軟件系統(tǒng)前期分析項(xiàng)目可行性分析軟件需求分析軟件需求驗(yàn)證第4章軟件分析計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)561.計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)是一個(gè)復(fù)雜的系統(tǒng),它包含硬件系統(tǒng)、軟件系統(tǒng)、網(wǎng)絡(luò)通信系統(tǒng)、人工操作系統(tǒng)等諸多子系統(tǒng),而其中的軟件系統(tǒng)又由操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用程序等更小的系統(tǒng)元素組成。1.計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)57計(jì)算機(jī)體系結(jié)構(gòu)幾種典型的計(jì)算機(jī)體系結(jié)構(gòu):

中央主機(jī)結(jié)構(gòu):主機(jī)集中了全部智能,并依靠終端接口與外部設(shè)備連接。計(jì)算機(jī)體系結(jié)構(gòu)幾種典型的計(jì)算機(jī)體系結(jié)構(gòu):58計(jì)算機(jī)體系結(jié)構(gòu)客戶機(jī)/服務(wù)器結(jié)構(gòu):智能分布于服務(wù)器與客戶機(jī),并依靠網(wǎng)絡(luò)連接成系統(tǒng)。其中,服務(wù)器處于核心位置,提供被動(dòng)核心服務(wù);客戶機(jī)處于邊緣位置,可主動(dòng)訪問服務(wù)器,尋求服務(wù)支持。計(jì)算機(jī)體系結(jié)構(gòu)客戶機(jī)/服務(wù)器結(jié)構(gòu):智能分布于服務(wù)器與客戶機(jī)59計(jì)算機(jī)體系結(jié)構(gòu)瀏覽器

/服務(wù)器結(jié)構(gòu):一種更適合互聯(lián)網(wǎng)遠(yuǎn)程交互的基于Web應(yīng)用的特殊的客戶機(jī)/服務(wù)器結(jié)構(gòu)。計(jì)算機(jī)體系結(jié)構(gòu)瀏覽器/服務(wù)器結(jié)構(gòu):一種更適合互聯(lián)網(wǎng)遠(yuǎn)程交602.軟件系統(tǒng)前期分析可從以下方面進(jìn)行軟件高層分析:軟件系統(tǒng)的業(yè)務(wù)領(lǐng)域、業(yè)務(wù)邊界與業(yè)務(wù)流程。軟件系統(tǒng)對硬件設(shè)施、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)環(huán)境的依賴。軟件系統(tǒng)的安全層級、措施與防范機(jī)制。軟件系統(tǒng)與其它相關(guān)系統(tǒng)之間的協(xié)作關(guān)系。軟件系統(tǒng)與用戶組織及其工作任務(wù)的協(xié)調(diào)性與適應(yīng)性。2.軟件系統(tǒng)前期分析可從以下方面進(jìn)行軟件高層分析:61系統(tǒng)結(jié)構(gòu)建模

使用矩形與帶箭頭的線段來描述系統(tǒng)的基本結(jié)構(gòu)下圖是自動(dòng)閱卷系統(tǒng)的系統(tǒng)框架圖。通常用來描述系統(tǒng)的邏輯框架。系統(tǒng)結(jié)構(gòu)建模使用矩形與帶箭頭的線段來描述系統(tǒng)62系統(tǒng)工作流建?!到y(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具?;舅枷耄河脠D形符號以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對數(shù)據(jù)進(jìn)行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。系統(tǒng)工作流建模——系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的631.符號利用符號可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲在特殊設(shè)備上的文件(或數(shù)據(jù)庫),把抽象處理具體化為特定的程序或手工操作等。1.符號利用符號可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲64以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用下圖中列出的基本符號就足夠了以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用下圖中列出的基65需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用右圖中列出的系統(tǒng)符號需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用右圖中列出的系統(tǒng)符號66以一個(gè)簡單的例子進(jìn)行講解。某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便訂貨,規(guī)定每天向采購部門送一次訂貨報(bào)告。2.例子以一個(gè)簡單的例子進(jìn)行講解。某裝配廠有一座存放零件的倉庫,倉庫67該裝配廠使用一臺小型計(jì)算機(jī)處理更新庫存清單主文件和產(chǎn)生訂貨報(bào)告的任務(wù)。零件庫存量的每一次變化稱為一個(gè)事務(wù),由放在倉庫中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲在磁盤上的庫存清單主文件,并且把必要的訂貨信息寫在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出訂貨報(bào)告。如下圖所示。該裝配廠使用一臺小型計(jì)算機(jī)處理更新庫存清單主文件和產(chǎn)生訂貨報(bào)68軟件工程第4章--軟件分析課件69

用來描述系統(tǒng)的工作流程,以系統(tǒng)中的物理組件為單元說明系統(tǒng)的基本結(jié)構(gòu),并由此說明系統(tǒng)對數(shù)據(jù)的加工步驟下圖是自動(dòng)閱卷系統(tǒng)的系統(tǒng)流程圖。用來描述系統(tǒng)的工作流程,以系統(tǒng)中的物理組件為703.項(xiàng)目可行性分析可行性分析意義工程經(jīng)驗(yàn)表明:可行性分析對軟件問題解決途徑的探索,在以下幾個(gè)方面能夠?qū)浖?xiàng)目帶來積極的影響。

1.通過少量的的費(fèi)用,對項(xiàng)目能否實(shí)施盡早作出判斷,以避免項(xiàng)目開展以后所帶來的大量的人力、物力和時(shí)間的浪費(fèi)。

2.根據(jù)項(xiàng)目所受到的條件限制,對有待開發(fā)的系統(tǒng)在體系結(jié)構(gòu)、工作模式等方面作出抉擇,以利于項(xiàng)目今后的實(shí)現(xiàn)。

3.可以把可行性分析看作軟件定義時(shí)期需要進(jìn)行的前導(dǎo)性工作,其結(jié)果可以作為一個(gè)高層框架用于軟件需求分析過程之中,以方便今后軟件規(guī)格定義工作的順利開展。3.項(xiàng)目可行性分析可行性分析意義71可行性研究的任務(wù)可行性研究的目的不是解決問題,而是確定問題是否值得去解決。首先,進(jìn)一步分析和澄清問題定義然后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型最后,探索若干種可供選擇的主要解法可行性研究分析過程:可行性研究的任務(wù)可行性研究的目的不是解決問題,而是確定問題是72可行性研究的任務(wù)至少應(yīng)該從下述3個(gè)方面研究每種解法的可行性技術(shù)可行性使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?經(jīng)濟(jì)可行性這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?應(yīng)用可行性法律法規(guī)、系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?可行性研究的任務(wù)至少應(yīng)該從下述3個(gè)方面研究每種解法的可行性技73可行性研究過程怎樣進(jìn)行可行性研究呢?典型的可行性研究過程有下述8個(gè)步驟。復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型進(jìn)一步定義問題導(dǎo)出和評價(jià)供選擇的解法推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查可行性研究過程怎樣進(jìn)行可行性研究呢?典型的可行性研究過程有下74復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材料,以便對問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn),改正含糊或不確切的敘述,清晰地描述對目標(biāo)系統(tǒng)的一切限制和約束。這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問題確實(shí)是要求他解決的問題。復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材752.研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。顯然,如果目前有一個(gè)系統(tǒng)正被人使用,那么這個(gè)系統(tǒng)必定能完成某些有用的工作,因此,新的目標(biāo)系統(tǒng)必須也能完成它的基本功能;另一方面,如果現(xiàn)有的系統(tǒng)是完美無缺的,用戶自然不會提出開發(fā)新系統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點(diǎn),新系統(tǒng)必須能解決舊系統(tǒng)中存在的問題。應(yīng)該仔細(xì)閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊,也要實(shí)地考察現(xiàn)有的系統(tǒng)。常見的錯(cuò)誤做法是花費(fèi)過多時(shí)間去分析現(xiàn)有的系統(tǒng)。沒有一個(gè)系統(tǒng)是在“真空”中運(yùn)行的,絕大多數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系。2.研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。顯然,763.導(dǎo)出新系統(tǒng)的高層邏輯模型優(yōu)秀的設(shè)計(jì)過程通常是從現(xiàn)有的物理系統(tǒng)出發(fā),導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。4.進(jìn)一步定義問題可行性研究的前4個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。分析員定義問題,分析這個(gè)問題,導(dǎo)出一個(gè)試探性的解;在此基礎(chǔ)上再次定義問題,再一次分析這個(gè)問題,修改這個(gè)解;繼續(xù)這個(gè)循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。3.導(dǎo)出新系統(tǒng)的高層邏輯模型優(yōu)秀的設(shè)計(jì)過程通常是從現(xiàn)有的物理775.導(dǎo)出和評價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的物理解法供比較和選擇。其次可以考慮操作方面的可行性。分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。接下來應(yīng)該考慮經(jīng)濟(jì)方面的可行性。分析員應(yīng)該估計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省的開支或可以增加的收入。最后為每個(gè)在技術(shù)、操作和經(jīng)濟(jì)等方面都可行的系統(tǒng)制定實(shí)現(xiàn)進(jìn)度表,這個(gè)進(jìn)度表不需要制定得很詳細(xì),通常只需要估計(jì)生命周期每個(gè)階段的工作量。5.導(dǎo)出和評價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出786.導(dǎo)出和評價(jià)供選擇的解法根據(jù)可行性研究結(jié)果應(yīng)該決定的一個(gè)關(guān)鍵性問題是:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程?分析員必須清楚地表明他對這個(gè)關(guān)鍵性決定的建議。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說明選擇這個(gè)解決方案的理由。通??蛻糁饕鶕?jù)經(jīng)濟(jì)上是否劃算決定是否投資于一項(xiàng)開發(fā)工程,因此分析員對于所推薦的系統(tǒng)必須進(jìn)行比較仔細(xì)的成本/效益分析。6.導(dǎo)出和評價(jià)供選擇的解法根據(jù)可行性研究結(jié)果應(yīng)該決定的一個(gè)關(guān)797.草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對各類開發(fā)人員和各種資源的需要情況,應(yīng)該指明什么時(shí)候使用以及使用多長時(shí)間。此外還應(yīng)該估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。8.書寫文檔提交審查應(yīng)該把上述可行性研究各個(gè)步驟的工作結(jié)果寫成清晰的文檔,請用戶、客戶組織的負(fù)責(zé)人及評審組審查,以決定是否繼續(xù)這項(xiàng)工程及是否接受分析員推薦的方案。7.草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除804.需求分析任務(wù)與過程需求分析是為有效解決用戶需求問題而需要進(jìn)行的一項(xiàng)工程活動(dòng),所需考慮的需求問題有:功能需求、性能需求、接口需求、數(shù)據(jù)需求。開發(fā)者與用戶都將參與需求分析活動(dòng)。開發(fā)者承擔(dān)分析任務(wù),但活動(dòng)核心則是用戶。需求分析任務(wù)需要由熟悉用戶業(yè)務(wù)的系統(tǒng)分析師承擔(dān)。需求分析步驟是:獲取用戶需求、創(chuàng)建需求模型、確定軟件規(guī)格、進(jìn)行需求驗(yàn)證。4.需求分析任務(wù)與過程需求分析是為有效解決用戶需求問題而需81需求分析的任務(wù)1、確定對系統(tǒng)的綜合要求雖然功能需求是對軟件系統(tǒng)的一項(xiàng)基本需求,但卻并不是唯一的需求。通常對軟件系統(tǒng)有下述幾方面的綜合要求。功能需求性能需求可靠性和可用性需求出錯(cuò)處理需求接口需求約束逆向需求將來可能提出的要求需求分析的任務(wù)1、確定對系統(tǒng)的綜合要求雖然功能需求是對軟件系82功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能性能需求性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。功能需求這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該83可靠性和可用性需求可靠性需求定量地指定系統(tǒng)的可靠性,可用性與可靠性密切相關(guān),它量化了用戶可以使用系統(tǒng)的程度。出錯(cuò)處理需求這類需求說明系統(tǒng)對環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。例如,如果它接收到從另一個(gè)系統(tǒng)發(fā)來的違反協(xié)議格式的消息,應(yīng)該做什么?注意,上述這類錯(cuò)誤并不是由該應(yīng)用系統(tǒng)本身造成的??煽啃院涂捎眯孕枨罂煽啃孕枨蠖康刂付ㄏ到y(tǒng)的可靠性,可用性與84接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。約束設(shè)計(jì)約束或?qū)崿F(xiàn)約束描述在設(shè)計(jì)或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時(shí)應(yīng)遵守的限制條件。常見的約束有:精度;工具和語言約束;設(shè)計(jì)約束;應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的硬件平臺。接口需求接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口85逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆向需求,人們應(yīng)該僅選取能澄清真實(shí)需求且可消除可能發(fā)生的誤解的那些逆向需求。將來可能提出的要求應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會提出來的要求。這樣做的目的是,在設(shè)計(jì)過程中對系統(tǒng)將來可能的擴(kuò)充和修改預(yù)做準(zhǔn)備,以便一旦確實(shí)需要時(shí)能比較容易地進(jìn)行這種擴(kuò)充和修改。逆向需求逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。理論上有無限多個(gè)逆86任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應(yīng)該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌,對軟件設(shè)計(jì)有深遠(yuǎn)影響,因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個(gè)重要任務(wù)。2、分析系統(tǒng)的數(shù)據(jù)要求復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系。利用數(shù)據(jù)字典可以全面準(zhǔn)確地定義數(shù)據(jù),但是數(shù)據(jù)字典的缺點(diǎn)是不夠形象直觀。為了提高可理解性,常常利用圖形工具輔助描繪數(shù)據(jù)結(jié)構(gòu)。任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和87綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)據(jù)流圖、實(shí)體聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。3、導(dǎo)出系統(tǒng)的邏輯模型綜合上述兩項(xiàng)分析的結(jié)果可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型,通常用數(shù)88根據(jù)在分析過程中獲得的對系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開發(fā)計(jì)劃。4、修正系統(tǒng)開發(fā)計(jì)劃根據(jù)在分析過程中獲得的對系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)89需求分析過程需求分析過程905.獲取用戶需求用戶泛指一切可從軟件獲得服務(wù)的對象??梢允悄硞€(gè)人,但也可以是人以外的機(jī)構(gòu)、部門、其他系統(tǒng)或設(shè)備??赏ㄟ^調(diào)查而獲取用戶需求。然而,有效的需求收集則依賴于有效的調(diào)查提問,并依賴于合適的調(diào)查方法。一些常用調(diào)查方法是:訪談、座談、問卷、跟班、收集資料。來自用戶的需求將體現(xiàn)為需求規(guī)約,其可表達(dá)用戶的軟件價(jià)值。5.獲取用戶需求用戶泛指一切可從軟件獲得服務(wù)的對象??梢允?1與用戶溝通獲取需求的方法訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,分別是正式的和非正式的訪談。1、訪談與用戶溝通獲取需求的方法訪談是最早開始使用的獲取用戶需求的技92正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題,例如,詢問客戶公司銷售的商品種類、雇用的銷售人員數(shù)目以及信息反饋時(shí)間應(yīng)該多快等。在非正式訪談中,分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說出自己的想法,例如,詢問用戶對目前正在使用的系統(tǒng)有哪些不滿意的地方。在訪問用戶的過程中使用情景分析技術(shù)往往非常有效。所謂情景分析就是對用戶將來使用目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果進(jìn)行分析。正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題,例如,93情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面。它能在某種程度上演示目標(biāo)系統(tǒng)的行為,從而便于用戶理解,而且還可能進(jìn)一步揭示出一些分析員目前還不知道的需求。由于情景分析較易為用戶所理解,使用這種技術(shù)能保證用戶在需求分析過程中始終扮演一個(gè)積極主動(dòng)的角色。情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面。它能在某種程度上演94結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。通過可行性研究已經(jīng)得出了目標(biāo)系統(tǒng)的高層數(shù)據(jù)流圖,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。為了達(dá)到這個(gè)目標(biāo),通常從數(shù)據(jù)流圖的輸出端著手分析,這是因?yàn)橄到y(tǒng)的基本功能是產(chǎn)生這些輸出,輸出數(shù)據(jù)決定了系統(tǒng)必須具有的最基本的組成元素。2、面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)流圖是幫助復(fù)查的極好工具,從輸入端開始,分析員借助數(shù)據(jù)流圖、數(shù)據(jù)字典和IPO圖向用戶解釋輸入數(shù)據(jù)是怎樣一步一步地轉(zhuǎn)變成輸出數(shù)據(jù)的。這些解釋集中反映了通過前面的分析工作分析員所獲得的對目標(biāo)系統(tǒng)的認(rèn)識。結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方95隨著分析過程的進(jìn)展,經(jīng)過提問和解答的反復(fù)循環(huán),分析員越來越深入具體地定義了目標(biāo)系統(tǒng),最終得到對系統(tǒng)數(shù)據(jù)和功能要求的滿意了解。隨著分析過程的進(jìn)展,經(jīng)過提問和解答的反復(fù)循環(huán),分析員越來越深963、簡易的應(yīng)用規(guī)格說明技術(shù)簡易的應(yīng)用規(guī)格說明技術(shù)是為了解決使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位而且往往有意無意地與開發(fā)者區(qū)分“彼此”。由于不能像同一個(gè)團(tuán)隊(duì)的人那樣齊心協(xié)力地識別和精化需求,這兩種方法的效果有時(shí)并不理想的問題,提出的。3、簡易的應(yīng)用規(guī)格說明技術(shù)簡易的應(yīng)用規(guī)格說明技術(shù)是為了解決使97簡易的應(yīng)用規(guī)格說明技術(shù)分析需求的典型過程如下1進(jìn)行初步的訪談2開發(fā)者和用戶分別寫出“產(chǎn)品需求”。3開會討論,各自展示需求列表4得出了意見一致,為需求列表制定小型規(guī)格說明5根據(jù)會議結(jié)果,起草完整的軟件需求規(guī)格說明簡易的應(yīng)用規(guī)格說明技術(shù)分析需求的典型過程如下1進(jìn)行初步的訪談984、快速建立軟件原型為了快速地構(gòu)建和修改原型,通常使用下述3種方法和工具。第四代技術(shù)可重用的軟件構(gòu)件形式化規(guī)格說明和原型環(huán)境4、快速建立軟件原型為了快速地構(gòu)建和修改原型,通常使用下述399快速原型就是快速建立起來的旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序,快速原型應(yīng)該具備的特性:快速原型應(yīng)該具備的第一個(gè)特性是“快速”

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論