




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、復旦大學計算機科學與工程系 軟件工程課程1復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程2 軟件項目中百分之四十至百分之六軟件項目中百分之四十至百分之六十的問題都是在需求分析階段埋下的十的問題都是在需求分析階段埋下的“禍禍根根” 。 可許多組織仍在那些基本的項目功可許多組織仍在那些基本的項目功能上采用一些不合規(guī)范的方法,這樣導致能上采用一些不合規(guī)范的方法,這樣導致的后果便是一條鴻溝(期望差異)的后果便是一條鴻溝(期望差異)開發(fā)開發(fā)者開發(fā)的與用戶所想得到的軟件存在著巨者開發(fā)的與用戶所想得到的軟件存在著巨大期望差異。大期望差異。復旦大學計算機科學與工程系復旦大學計算
2、機科學與工程系 軟件工程課程軟件工程課程3 在軟件工程中,所有的風險承擔者在軟件工程中,所有的風險承擔者(stakeholder)都感興趣的就是需求分析階段。都感興趣的就是需求分析階段。 這些風險承擔者包括客戶、用戶、業(yè)務或這些風險承擔者包括客戶、用戶、業(yè)務或需求分析員需求分析員(負責收集客戶需求并編寫文檔,以負責收集客戶需求并編寫文檔,以及負責客戶與開發(fā)機構(gòu)之間聯(lián)系溝通的人及負責客戶與開發(fā)機構(gòu)之間聯(lián)系溝通的人)、開、開發(fā)人員、測試人員、用戶文檔編寫者、項目管發(fā)人員、測試人員、用戶文檔編寫者、項目管理者和客戶管理者。理者和客戶管理者。 這部分工作若處理好了,能開發(fā)出很出色這部分工作若處理好了,
3、能開發(fā)出很出色的產(chǎn)品,同時會使客戶感到滿意,開發(fā)者也倍的產(chǎn)品,同時會使客戶感到滿意,開發(fā)者也倍感滿足、充實。若處理不好,則會導致誤解、感滿足、充實。若處理不好,則會導致誤解、挫折、障礙以及潛在質(zhì)量和業(yè)務價值上的威脅。挫折、障礙以及潛在質(zhì)量和業(yè)務價值上的威脅。因為需求分析奠定了軟件工程和項目管理的基因為需求分析奠定了軟件工程和項目管理的基礎(chǔ)。礎(chǔ)。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程4需求工程概述需求工程概述需求獲取需求獲取需求分析、協(xié)商與建模需求分析、協(xié)商與建模需求規(guī)約與驗證需求規(guī)約與驗證需求管理需求管理復旦大學計算機科學與工程系復旦大學計算機科學與工程
4、系 軟件工程課程軟件工程課程5需求獲取需求獲取需求分析、協(xié)商與建模需求分析、協(xié)商與建模需求規(guī)約與驗證需求規(guī)約與驗證需求管理需求管理復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程6 Alan Davis 把需求工程定義為把需求工程定義為“直到直到(但不包括)把軟件分解為實際架構(gòu)構(gòu)(但不包括)把軟件分解為實際架構(gòu)構(gòu)件之前的所有活動件之前的所有活動” Herb Krasner定義了需求工程的五階段定義了需求工程的五階段生命周期:需求定義和分析、需求決策、生命周期:需求定義和分析、需求決策、形成需求規(guī)格、需求實現(xiàn)與驗證、需求形成需求規(guī)格、需求實現(xiàn)與驗證、需求演進管理演進
5、管理 Matthias Jarke和和Klaus Pohl提出了三提出了三階段周期的說法:獲取、表示和驗證階段周期的說法:獲取、表示和驗證 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程7 本書將軟件需求工程細分為:本書將軟件需求工程細分為:需求獲取、需求分析與協(xié)商、系統(tǒng)建模、需求規(guī)約、需求驗證和和需求管理六個階段。六個階段。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程8 需求開發(fā)和需求管理之間的區(qū)別需求開發(fā)和需求管理之間的區(qū)別復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程9需求工程概述需求工程概
6、述需求分析、協(xié)商與建模需求分析、協(xié)商與建模需求規(guī)約與驗證需求規(guī)約與驗證需求管理需求管理復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程10 功能需求功能需求 性能需求性能需求 用戶或人的因素用戶或人的因素 環(huán)境需求環(huán)境需求 界面需求界面需求 文檔需求文檔需求 數(shù)據(jù)需求數(shù)據(jù)需求 資源使用需求資源使用需求 安全保密要求安全保密要求 可靠性需求可靠性需求 軟件成本消耗與開軟件成本消耗與開發(fā)進度需求發(fā)進度需求 其他非功能性要求其他非功能性要求 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程11 下面這些定義是需求工程領(lǐng)域中常見術(shù)語的定義說明
7、。下面這些定義是需求工程領(lǐng)域中常見術(shù)語的定義說明。 軟件需求包括三個不同的層次軟件需求包括三個不同的層次業(yè)務需求、用戶業(yè)務需求、用戶需求和功能需求(包括非功能需求)。需求和功能需求(包括非功能需求)。 業(yè)務需求(業(yè)務需求(business requirement)反映了組織)反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,它們在項機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。目視圖與范圍文檔中予以說明。 用戶需求(用戶需求(user requirement)文檔描述了用戶)文檔描述了用戶使用產(chǎn)品必須要完成的任務,這在使用實例(使用產(chǎn)品必須要完成的任務,這在使用實
8、例(use case)文檔或方案腳本(文檔或方案腳本(scenario)說明中予以說明。)說明中予以說明。 功能需求功能需求(functional requirement)定義了開發(fā)人定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,從而滿足了業(yè)務需求。所謂特性(從而滿足了業(yè)務需求。所謂特性(feature)是指邏輯)是指邏輯上相關(guān)的功能需求的集合,給用戶提供處理能力并滿足上相關(guān)的功能需求的集合,給用戶提供處理能力并滿足業(yè)務需求。業(yè)務需求。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程12復旦大學計算機
9、科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程13 需求獲取時期的主要工作:需求獲取時期的主要工作: 歸納和整理用戶提出的各種問題和要歸納和整理用戶提出的各種問題和要 求;求; 弄清用戶企圖通過軟件達到的目的;弄清用戶企圖通過軟件達到的目的; 借助各種工具和方法,陳述用戶提出借助各種工具和方法,陳述用戶提出 的實際需求,并標定軟件的作用范的實際需求,并標定軟件的作用范 圍。圍。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程14 需求獲取方法包括兩個方面:需求獲取方法包括兩個方面: 指導開發(fā)小組獲取用戶需求的方法框架。指導開發(fā)小組獲取用戶需求的方
10、法框架。 支持控制此項活動進展的過程控制機制。支持控制此項活動進展的過程控制機制。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程15 建立順暢的通信途徑建立順暢的通信途徑 訪談與調(diào)查訪談與調(diào)查 觀察用戶操作流程觀察用戶操作流程 組成聯(lián)合小組組成聯(lián)合小組 用況(用況(Use Case) 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程16 建立分析所需要的通信途徑,以保證能建立分析所需要的通信途徑,以保證能順利地對問題進行分析。順利地對問題進行分析。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程17 在
11、具體的實踐中,通常采用折衷的方法,即適當在具體的實踐中,通常采用折衷的方法,即適當?shù)赜媱澓妹嬲?,但不要過于詳細,允許有一定的地計劃好面談,但不要過于詳細,允許有一定的靈活性。一般按照如下原則進行準備:靈活性。一般按照如下原則進行準備: 所提問的問題應該循序漸進,從整體的方面開始提問,接下來的問題應有助于對前面的問題更好的理解和細化; 不要限制用戶對問題的回答,這有可能會引出原先沒有注意的問題; 提問和回答在匯總后應能夠反映用戶需求的全貌。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程18 例子:例子:“賽艇比賽成績計算系統(tǒng)賽艇比賽成績計算系統(tǒng)”的第的第一次面談
12、的準備計劃一次面談的準備計劃 初次與初次與Dartchurch航行俱樂部的航行秘書(航行俱樂部的航行秘書(DR)接觸,面談有關(guān))接觸,面談有關(guān)事宜。事宜。(在電話交談時,了解到他們希望得到的是一個在電話交談時,了解到他們希望得到的是一個“價廉價廉”的,的,基于基于PC的系統(tǒng),以用于計算賽艇比賽成績的系統(tǒng),以用于計算賽艇比賽成績)時間:時間:2005-6-5地點:對方場地地點:對方場地主要問題主要問題確定基本問題。確定基本問題。確定確定DR的角色的角色還涉及其它人員嗎?還涉及其它人員嗎?調(diào)查財物方面事宜。調(diào)查財物方面事宜。系統(tǒng)(大致上)是如何運作的?系統(tǒng)(大致上)是如何運作的?當前存在的問題是什
13、么?當前存在的問題是什么?他們都希望做些什么?他們都希望做些什么?復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程19 1. 調(diào)查提綱或調(diào)查表調(diào)查提綱或調(diào)查表 2. 小型調(diào)查會議小型調(diào)查會議 3. 個別訪問個別訪問 4. 現(xiàn)場調(diào)查現(xiàn)場調(diào)查 5. 資料資料 6. 調(diào)查工具調(diào)查工具復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程20 1. 不要用計算機專業(yè)術(shù)語與用戶或用戶不要用計算機專業(yè)術(shù)語與用戶或用戶領(lǐng)域?qū)<医徽勵I(lǐng)域?qū)<医徽?2. 不要使用不要使用“你應該你應該”這樣的字眼這樣的字眼 3. 始終記住自己最近一段工作中要達到始終記住自己最
14、近一段工作中要達到的目標,引導用戶說出你需要的信息的目標,引導用戶說出你需要的信息 4. 要善于把用戶中職位高的人和職位低要善于把用戶中職位高的人和職位低的人的談話結(jié)合起來分析的人的談話結(jié)合起來分析復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程21 到用戶的實際工作環(huán)境中對用戶的工作流到用戶的實際工作環(huán)境中對用戶的工作流程進行觀察,了解用戶實際的操作環(huán)境、程進行觀察,了解用戶實際的操作環(huán)境、操作過程和操作要求,對照用戶提交的問操作過程和操作要求,對照用戶提交的問題陳述,對用戶需求可以有更全面、更細題陳述,對用戶需求可以有更全面、更細致的認識。致的認識。 復旦大學
15、計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程22 便利的應用規(guī)約技術(shù)(Facilitated Application Specification Techniques , FAST) :打破用戶(需方)和開發(fā)者:打破用戶(需方)和開發(fā)者(供方)的界限,共同組成一個聯(lián)合小(供方)的界限,共同組成一個聯(lián)合小組,發(fā)揮各自的長處,共同負責項目的組,發(fā)揮各自的長處,共同負責項目的推進,這樣有助于發(fā)揮各自優(yōu)勢并增進推進,這樣有助于發(fā)揮各自優(yōu)勢并增進解和協(xié)調(diào)解和協(xié)調(diào) 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程23 誤解:由于分析員并非該應用領(lǐng)域的
16、專家,使得在需求獲取時,誤解誤解:由于分析員并非該應用領(lǐng)域的專家,使得在需求獲取時,誤解了用戶潛在的隱含假設(shè)。了用戶潛在的隱含假設(shè)。 交流障礙:領(lǐng)域?qū)<彝粋€新手交談時的用詞往往并不足以解決問題。交流障礙:領(lǐng)域?qū)<彝粋€新手交談時的用詞往往并不足以解決問題。 缺乏共同語言:由于需求分析員和系統(tǒng)用戶的經(jīng)歷和教育背景不同,缺乏共同語言:由于需求分析員和系統(tǒng)用戶的經(jīng)歷和教育背景不同,他們之間通常缺乏足夠的溝通。他們之間通常缺乏足夠的溝通。 “完整性完整性”問題:軟件工程師希望提出系統(tǒng)需求的用戶領(lǐng)域?qū)<夷芮逦?、問題:軟件工程師希望提出系統(tǒng)需求的用戶領(lǐng)域?qū)<夷芮逦?、簡明和完備地描述出確實可行的系統(tǒng)需求,
17、然而,所要的需求知識在其最簡明和完備地描述出確實可行的系統(tǒng)需求,然而,所要的需求知識在其最初階段可能是模糊、不完備甚至是不正確的。初階段可能是模糊、不完備甚至是不正確的。 需求永遠不會穩(wěn)定:用戶對軟件的需求常常會發(fā)生變化,并且是不可需求永遠不會穩(wěn)定:用戶對軟件的需求常常會發(fā)生變化,并且是不可預測的。預測的。 用戶意見不統(tǒng)一:大系統(tǒng)往往有各種不同的用戶,他們往往有互相沖用戶意見不統(tǒng)一:大系統(tǒng)往往有各種不同的用戶,他們往往有互相沖突的需求和不同的需求優(yōu)先次序,尋求折衷是不容易的。突的需求和不同的需求優(yōu)先次序,尋求折衷是不容易的。 錯誤的要求:系統(tǒng)的定購者(付錢的人)和系統(tǒng)的使用者經(jīng)常不是一錯誤的要
18、求:系統(tǒng)的定購者(付錢的人)和系統(tǒng)的使用者經(jīng)常不是一個人,定購者由于受到組織或經(jīng)費的限制,提出的需求會與最終用戶的需個人,定購者由于受到組織或經(jīng)費的限制,提出的需求會與最終用戶的需求相沖突。求相沖突。 認識混淆:有時系統(tǒng)的目標和系統(tǒng)的需求會發(fā)生混淆。目標是系統(tǒng)應認識混淆:有時系統(tǒng)的目標和系統(tǒng)的需求會發(fā)生混淆。目標是系統(tǒng)應達到的更為一般的特征,而需求應是可測試的。達到的更為一般的特征,而需求應是可測試的。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程24 1. 了解系統(tǒng)需求了解系統(tǒng)需求 2. 市場調(diào)查市場調(diào)查 3. 訪問用戶和用戶領(lǐng)域?qū)<以L問用戶和用戶領(lǐng)域?qū)<?4
19、. 考察現(xiàn)場考察現(xiàn)場復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程25需求工程概述需求工程概述需求獲取需求獲取需求規(guī)約與驗證需求規(guī)約與驗證需求管理需求管理復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程26 需求獲取結(jié)束后,分析活動對需求進行分需求獲取結(jié)束后,分析活動對需求進行分類組織,分析每個需求其它需求的關(guān)系來,類組織,分析每個需求其它需求的關(guān)系來,檢查需求的一致性、重疊和遺漏的情況,檢查需求的一致性、重疊和遺漏的情況,并根據(jù)用戶的需要對需求進行排序。并根據(jù)用戶的需要對需求進行排序。 在需求獲取階段,經(jīng)常出現(xiàn)以下問題:在需求獲取
20、階段,經(jīng)常出現(xiàn)以下問題: 用戶提出的要求超出軟件系統(tǒng)可以實現(xiàn)的范圍或?qū)崿F(xiàn)能力; 不同的用戶提出了相互沖突的需求 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程27 深入描述軟件的功能和性能深入描述軟件的功能和性能 確定軟件設(shè)計的約束和軟件同其它確定軟件設(shè)計的約束和軟件同其它系統(tǒng)元素的接口細節(jié)系統(tǒng)元素的接口細節(jié) 定義軟件的其它有效性需求定義軟件的其它有效性需求復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程28 需求分析研究的對象是軟件項目的用戶需求分析研究的對象是軟件項目的用戶要求要求 準確地表達被接受的用戶要求準確地表達被接受的用
21、戶要求 確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素 將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中中復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程29 需求分析的任務需求分析的任務就是借助于當前系統(tǒng)的就是借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型,解邏輯模型導出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的決目標系統(tǒng)的 “做什么做什么” 的問題。的問題。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程30 通常軟件開發(fā)項目是要實現(xiàn)目標系統(tǒng)的通常軟件開發(fā)項目是要實現(xiàn)目標系統(tǒng)的物理模型物理模型 目標系統(tǒng)的具
22、體物理模型是由它的邏輯目標系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實例化,即具體到某個業(yè)務領(lǐng)域模型經(jīng)實例化,即具體到某個業(yè)務領(lǐng)域而得到的而得到的復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程31 信息域:包括信息內(nèi)容、信息流、以及信包括信息內(nèi)容、信息流、以及信息結(jié)構(gòu)。息結(jié)構(gòu)。 信息內(nèi)容信息內(nèi)容表示了單個數(shù)據(jù)和控制對象,目標軟件所有處理的信息集合由它們構(gòu)成。 例如,數(shù)據(jù)對象“工資”是一組重要數(shù)據(jù)體的組合:領(lǐng)款人的姓名、凈付款數(shù)、付款總額、扣除額等等 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程32 信息流信息流表示了數(shù)據(jù)和控制在系統(tǒng)中
23、流動時的變化方式,輸入對象被變換為中間信息(數(shù)據(jù)和/或控制),然后進一步被變換為輸出 信息結(jié)構(gòu)信息結(jié)構(gòu)表示了各種數(shù)據(jù)和控制項的內(nèi)部組織 數(shù)據(jù)或控制項將被組織為數(shù)據(jù)或控制項將被組織為n維表還是樹形結(jié)構(gòu)?維表還是樹形結(jié)構(gòu)? 在結(jié)構(gòu)的語境內(nèi),什么信息是和其他信息相關(guān)的?在結(jié)構(gòu)的語境內(nèi),什么信息是和其他信息相關(guān)的? 信息包含在單個結(jié)構(gòu)中,還是使用不同的結(jié)構(gòu)?信息包含在單個結(jié)構(gòu)中,還是使用不同的結(jié)構(gòu)? 在某信息結(jié)構(gòu)中的信息如何和在另一個結(jié)構(gòu)中的在某信息結(jié)構(gòu)中的信息如何和在另一個結(jié)構(gòu)中的信息相關(guān)?信息相關(guān)? 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程33復旦大學計算機科
24、學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程34【例【例1】假設(shè)需要制造一個帶有四個按鈕和兩個燈泡的盒子并具有以】假設(shè)需要制造一個帶有四個按鈕和兩個燈泡的盒子并具有以下功能:下功能: 有四個按鈕輸入,分別稱為有四個按鈕輸入,分別稱為B1,B2,B3和和B4; 有兩個燈泡作為輸出,分別稱為有兩個燈泡作為輸出,分別稱為L1和和L2; B1是打開電源的按鈕;是打開電源的按鈕; B4是關(guān)閉電源的按鈕;是關(guān)閉電源的按鈕; B2和和B3 是操作按鈕;是操作按鈕; 在在B1被按下后及被按下后及B4被按下前,系統(tǒng)應稱為電源打開狀態(tài);被按下前,系統(tǒng)應稱為電源打開狀態(tài); 在在B4被按下后及被按下
25、后及B1被按下前,系統(tǒng)應稱為電源關(guān)閉狀態(tài);被按下前,系統(tǒng)應稱為電源關(guān)閉狀態(tài); 在電源關(guān)閉狀態(tài)下,在電源關(guān)閉狀態(tài)下,B2和和B3按鈕不起作用;按鈕不起作用; 在電源關(guān)閉狀態(tài)下,燈應不亮;在電源關(guān)閉狀態(tài)下,燈應不亮; 從最近一次電源打開狀態(tài)算起,如果從最近一次電源打開狀態(tài)算起,如果B2被按下的次數(shù)比被按下的次數(shù)比B3被被按下的次數(shù)多,按下的次數(shù)多,L1亮,否則亮,否則L2亮。亮。 任何時候都不能有一個以上的燈泡亮;任何時候都不能有一個以上的燈泡亮; 如果其中的一個燈泡出現(xiàn)故障,另一個燈泡應以如果其中的一個燈泡出現(xiàn)故障,另一個燈泡應以2秒鐘的間隔秒鐘的間隔閃爍,而不管閃爍,而不管B2和和B3的操作過
26、程。當?shù)牟僮鬟^程。當B4按下時,閃爍停止;當按下時,閃爍停止;當B1被按下時,閃爍重新開始。當故障被排除后閃爍停止,系統(tǒng)恢復被按下時,閃爍重新開始。當故障被排除后閃爍停止,系統(tǒng)恢復正常狀態(tài)。正常狀態(tài)。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程35 1. 對于在燈泡出現(xiàn)故障時是否要記錄下對于在燈泡出現(xiàn)故障時是否要記錄下B2和和B3的操作過程的操作過程 2. 系統(tǒng)記錄或不記錄系統(tǒng)記錄或不記錄B2和和B3的操作,對的操作,對于故障排除后系統(tǒng)的反應如何于故障排除后系統(tǒng)的反應如何復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程36 問題抽
27、象方法要求分析人員在分析過程中要求分析人員在分析過程中捕捉用戶描述或問題本身固有的捕捉用戶描述或問題本身固有的一般-特殊關(guān)系 首先關(guān)注一般問題的解決途徑,進而指導首先關(guān)注一般問題的解決途徑,進而指導特殊問題的解決方法。特殊問題的解決方法。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程37 問題分解的目的是要能以層次化的方式的目的是要能以層次化的方式對問題進行分解和不斷細化。對問題進行分解和不斷細化。 較大規(guī)模或較為復雜的問題可以被分解為若干子問題進行理解和分析 分解可以逐級進行,直至子問題被分解為一個容易分析理解的部分 例如橫向分解橫向分解縱向分解縱向分解復旦
28、大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程38 需要能夠表達和理解問題的信息域和功能域 要能以層次化的方式對問題進行分解和不斷細化 要給出系統(tǒng)的邏輯視圖和物理視圖復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程39復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程40 協(xié)商的過程就是討論需求沖突,找出每協(xié)商的過程就是討論需求沖突,找出每個人都滿意的折衷方案個人都滿意的折衷方案 協(xié)商不是簡單的邏輯或技術(shù)上的爭論協(xié)商不是簡單的邏輯或技術(shù)上的爭論 要注意組織和行政方面的因素要注意組織和行政方面的因素 不一致的目
29、標 責任的喪失或轉(zhuǎn)移 組織文化 組織管理態(tài)度和士氣 部門差異 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程41 通常會議是解決沖突最快的方式通常會議是解決沖突最快的方式 參加者應該包括發(fā)現(xiàn)沖突、遺漏或重疊參加者應該包括發(fā)現(xiàn)沖突、遺漏或重疊的分析員,以及可以解決發(fā)現(xiàn)的問題的的分析員,以及可以解決發(fā)現(xiàn)的問題的項目相關(guān)人員項目相關(guān)人員 會議應該討論那些非正式討論不能解決會議應該討論那些非正式討論不能解決的問題的問題 通常會議分為三個階段:通常會議分為三個階段: 敘述階段 討論階段 決策階段 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課
30、程42 在軟件需求分析階段,所創(chuàng)建的模型,要在軟件需求分析階段,所創(chuàng)建的模型,要著重于描述系統(tǒng)要著重于描述系統(tǒng)要做什么做什么,而不是,而不是如何去如何去做做 目標軟件的模型不應涉及軟件實現(xiàn)細節(jié)目標軟件的模型不應涉及軟件實現(xiàn)細節(jié) 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程43 建模工具的使用在用戶和系統(tǒng)分析人員之建模工具的使用在用戶和系統(tǒng)分析人員之間建立了統(tǒng)一的語言和理解的橋梁,同時間建立了統(tǒng)一的語言和理解的橋梁,同時系統(tǒng)分析人員借助建模技術(shù)對獲取的需求系統(tǒng)分析人員借助建模技術(shù)對獲取的需求信息進行分析,排除錯誤和彌補不足,確信息進行分析,排除錯誤和彌補不足,確
31、保需求文檔正確反映用戶的真實意圖。保需求文檔正確反映用戶的真實意圖。 常用的分析和建模方法有面向數(shù)據(jù)流方法、常用的分析和建模方法有面向數(shù)據(jù)流方法、面向數(shù)據(jù)結(jié)構(gòu)方法和面向?qū)ο蟮姆椒?。面向?shù)據(jù)結(jié)構(gòu)方法和面向?qū)ο蟮姆椒ā?復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程44常用的分析方法:常用的分析方法: 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 (SA) 面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法 (JSD) 面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法 (DSSD) 面向?qū)ο蟮姆治龇椒?(OOA)復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程45需求工程概述需求工程
32、概述需求獲取需求獲取需求分析、協(xié)商與建模需求分析、協(xié)商與建模需求管理需求管理復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程46 軟件需求規(guī)約是分析任務的最終產(chǎn)物,通軟件需求規(guī)約是分析任務的最終產(chǎn)物,通過建立完整的信息描述、詳細的功能和行過建立完整的信息描述、詳細的功能和行為描述、性能需求和設(shè)計約束的說明、合為描述、性能需求和設(shè)計約束的說明、合適的驗收標準,給出對目標軟件的各種需適的驗收標準,給出對目標軟件的各種需求。求。 需求規(guī)約作為用戶和開發(fā)者之間的一個協(xié)需求規(guī)約作為用戶和開發(fā)者之間的一個協(xié)議,在之后的軟件工程各個階段發(fā)揮重要議,在之后的軟件工程各個階段發(fā)揮重
33、要作用。作用。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程47 1從現(xiàn)實中分離功能,即描述要從現(xiàn)實中分離功能,即描述要“做什做什么么”而不是而不是“怎樣實現(xiàn)怎樣實現(xiàn)”。 2要求使用面向處理的規(guī)約語言(或稱要求使用面向處理的規(guī)約語言(或稱系統(tǒng)定義語言),討論來自環(huán)境的各種刺激可系統(tǒng)定義語言),討論來自環(huán)境的各種刺激可能導致系統(tǒng)做出什么樣的功能性反應,來定義能導致系統(tǒng)做出什么樣的功能性反應,來定義一個行為模型,從而得到一個行為模型,從而得到“做什么做什么”的規(guī)約。的規(guī)約。 3如果被開發(fā)軟件只是一個基于計算機如果被開發(fā)軟件只是一個基于計算機的系統(tǒng)中的一個元素,那么
34、整個大系統(tǒng)也包括的系統(tǒng)中的一個元素,那么整個大系統(tǒng)也包括在規(guī)格說明的描述之中。在規(guī)格說明的描述之中。 4規(guī)約必須包括系統(tǒng)運行環(huán)境。規(guī)約必須包括系統(tǒng)運行環(huán)境。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程48 5規(guī)約必須是一個認識模型,而不是設(shè)規(guī)約必須是一個認識模型,而不是設(shè)計或?qū)崿F(xiàn)的模型。計或?qū)崿F(xiàn)的模型。 6規(guī)約必須是可操作的,以便能夠利用規(guī)約必須是可操作的,以便能夠利用它決定對于任意給定的測試用例,已提出的解它決定對于任意給定的測試用例,已提出的解決方案是否都能滿足規(guī)約。決方案是否都能滿足規(guī)約。 7規(guī)約必須允許不完備性并允許擴充。規(guī)約必須允許不完備性并允許擴充
35、。 8規(guī)約必須局部化和松散耦合。它所包規(guī)約必須局部化和松散耦合。它所包括的信息必須局部化,這樣當信息被修改時,括的信息必須局部化,這樣當信息被修改時,只要修改某個單個的段落(理想情況)。同時,只要修改某個單個的段落(理想情況)。同時,規(guī)約應被松散地構(gòu)造(即松耦合),以便能夠規(guī)約應被松散地構(gòu)造(即松耦合),以便能夠很容易地加入和刪去一些段落。很容易地加入和刪去一些段落。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程49. 引言引言 A.系統(tǒng)參考文獻系統(tǒng)參考文獻B.整體描述整體描述C.軟件項目約束軟件項目約束. 信息描述信息描述 A.信息內(nèi)容表示信息內(nèi)容表示B.信息
36、流表示:信息流表示: 數(shù)據(jù)流數(shù)據(jù)流 控制流控制流. 功能描述功能描述 A.功能劃分功能劃分 B.功能描述:功能描述: 處理說明處理說明 限制限制局限局限 性能需求性能需求 設(shè)計約束設(shè)計約束 支撐圖支撐圖 C.控制描述控制描述 控制規(guī)約控制規(guī)約 設(shè)計約設(shè)計約束束. 行為描述行為描述 A.系統(tǒng)狀態(tài)系統(tǒng)狀態(tài) B.事件和響應事件和響應. 檢驗標準檢驗標準 A.性能范圍性能范圍B.測試種類測試種類C.期望的軟件響應期望的軟件響應D.特殊的考慮特殊的考慮. 參考書目參考書目. 附錄附錄復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程50引言:陳述軟件目標,在基于計算機的系統(tǒng)語
37、境內(nèi):陳述軟件目標,在基于計算機的系統(tǒng)語境內(nèi)進行描述。進行描述。信息描述:給出軟件必須解決問題的詳細描述,記:給出軟件必須解決問題的詳細描述,記錄信息內(nèi)容和關(guān)系、流和結(jié)構(gòu)。錄信息內(nèi)容和關(guān)系、流和結(jié)構(gòu)。功能描述:描述解決問題所需的每個功能。其中包:描述解決問題所需的每個功能。其中包括,為每個功能說明一個處理過程;敘述設(shè)計約束;括,為每個功能說明一個處理過程;敘述設(shè)計約束;敘述性能特征;用一個或多個圖形來形象地表示軟敘述性能特征;用一個或多個圖形來形象地表示軟件的整體結(jié)構(gòu)和軟件功能與其他系統(tǒng)元素間的相互件的整體結(jié)構(gòu)和軟件功能與其他系統(tǒng)元素間的相互影響。影響。行為描述:描述作為外部事件和內(nèi)部產(chǎn)生的控
38、制特:描述作為外部事件和內(nèi)部產(chǎn)生的控制特征的軟件操作。征的軟件操作。檢驗標準:描述檢驗系統(tǒng)成功的標志。即對系統(tǒng)進:描述檢驗系統(tǒng)成功的標志。即對系統(tǒng)進行什么樣的測試,得到什么樣的結(jié)果,就表示系統(tǒng)行什么樣的測試,得到什么樣的結(jié)果,就表示系統(tǒng)已經(jīng)成功實現(xiàn)了。它是已經(jīng)成功實現(xiàn)了。它是“確認測試確認測試”的基礎(chǔ)。的基礎(chǔ)。參考書目:包含了對所有和該軟件相關(guān)的文檔的引:包含了對所有和該軟件相關(guān)的文檔的引用,其中包括其他的軟件工程文檔、技術(shù)參考文獻、用,其中包括其他的軟件工程文檔、技術(shù)參考文獻、廠商文獻以及標準。廠商文獻以及標準。附錄:包含了規(guī)約的補充信息,表格數(shù)據(jù)、算法的:包含了規(guī)約的補充信息,表格數(shù)據(jù)、算法的詳細描述、圖表以及其他材料。詳細描述、圖表以及其他材料。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程51n 軟件需求說明書軟件需求說明書n 數(shù)據(jù)要求說明書數(shù)據(jù)要求說明書n 初步的用戶手冊初步的用戶手冊n 修改、完善與確定軟件開發(fā)實施計劃修改、完善與確定軟件開發(fā)實施計劃復旦大學計算機科學與工程系復旦大學計算機科
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國工業(yè)制造RFID行業(yè)市場動態(tài)分析、發(fā)展方向及投資前景分析報告
- 農(nóng)業(yè)氣候風險防控與應對機制
- 低空經(jīng)濟飛行器管理與運營方案
- 大氣污染防治策略與路徑
- 初級社會工作實務-初級社會工作者考試《社會工作實務》點睛提分卷2
- 2018-2019學年高中一輪復習英語講義選修六Module4Music
- 員工績效工資獎金發(fā)放方案
- 鴨腺病毒3型基因組序列分析及致病性研究
- 九年級數(shù)學上冊專題訓練八平面圖形的運動及不規(guī)則圖形面積問題課時精講新版新人教版
- 中介轉(zhuǎn)讓店鋪合同范例
- 2025年江蘇南通煒賦集團有限公司招聘筆試參考題庫含答案解析
- 《中國象棋基礎(chǔ)教程》課件
- 大模型落地應用實踐方案
- 寫字樓反恐防暴演練
- 2025年鞍鋼集團招聘筆試參考題庫含答案解析
- 2025年勞務合同范本(2篇)
- 人文社科類橫向課題技術(shù)服務合同5篇
- MCN機構(gòu)的業(yè)務模式與盈利模式
- 高壓氧護理進修匯報
- 2024解析:第五章透鏡及其應用-講核心(解析版)
- 《國家的空間特征》課件
評論
0/150
提交評論