![清華大學(xué)鄭人杰殷仁昆教授軟件工程講義02_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/54759771-f6b9-4829-8ccd-c1b5d153deb6/54759771-f6b9-4829-8ccd-c1b5d153deb61.gif)
![清華大學(xué)鄭人杰殷仁昆教授軟件工程講義02_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/54759771-f6b9-4829-8ccd-c1b5d153deb6/54759771-f6b9-4829-8ccd-c1b5d153deb62.gif)
![清華大學(xué)鄭人杰殷仁昆教授軟件工程講義02_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/54759771-f6b9-4829-8ccd-c1b5d153deb6/54759771-f6b9-4829-8ccd-c1b5d153deb63.gif)
![清華大學(xué)鄭人杰殷仁昆教授軟件工程講義02_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/54759771-f6b9-4829-8ccd-c1b5d153deb6/54759771-f6b9-4829-8ccd-c1b5d153deb64.gif)
![清華大學(xué)鄭人杰殷仁昆教授軟件工程講義02_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/14/54759771-f6b9-4829-8ccd-c1b5d153deb6/54759771-f6b9-4829-8ccd-c1b5d153deb65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件工程軟件工程1 1軟件工程軟件工程第二章第二章 需求分析需求分析2.1 2.1 系統(tǒng)分析系統(tǒng)分析2.2 2.2 軟件需求分析軟件需求分析2.3 2.3 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法2.4 2.4 快速原型化方法快速原型化方法2.5 2.5 需求定義與評審需求定義與評審軟件工程軟件工程2 22.1 2.1 系統(tǒng)分析系統(tǒng)分析基于計算機(jī)的系統(tǒng)的系統(tǒng)元素包括硬件、軟件、基于計算機(jī)的系統(tǒng)的系統(tǒng)元素包括硬件、軟件、人、數(shù)據(jù)庫、文檔和過程。人、數(shù)據(jù)庫、文檔和過程。系統(tǒng)分析的目標(biāo)系統(tǒng)分析的目標(biāo)1) 識別用戶要求識別用戶要求2) 評價系統(tǒng)的可行性,進(jìn)行經(jīng)濟(jì)和技術(shù)分析評價系統(tǒng)的可行性,進(jìn)行經(jīng)濟(jì)和技術(shù)分析3)
2、把功能分配給硬件、軟件、人、數(shù)據(jù)庫和其把功能分配給硬件、軟件、人、數(shù)據(jù)庫和其它系統(tǒng)元素它系統(tǒng)元素4) 建立成本和進(jìn)度限制建立成本和進(jìn)度限制5) 生成系統(tǒng)規(guī)格說明生成系統(tǒng)規(guī)格說明軟件工程軟件工程3 3識別用戶要求識別用戶要求n分析員必須考慮以下問題:分析員必須考慮以下問題:n識別希望的功能和性能范圍識別希望的功能和性能范圍; ; n確定系統(tǒng)的功能、性能、約束和接口確定系統(tǒng)的功能、性能、約束和接口; ;功能功能和和性能性能v 可靠性可靠性和和質(zhì)量質(zhì)量v 總的系統(tǒng)目標(biāo)總的系統(tǒng)目標(biāo)v 成本成本與與進(jìn)度限制進(jìn)度限制制造需求制造需求v 市場與競爭情況市場與競爭情況v 有效的技術(shù)有效的技術(shù)v 將來可能的擴(kuò)充
3、將來可能的擴(kuò)充軟件工程軟件工程4 4可行性研究可行性研究n可行性研究可行性研究v從經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性和從經(jīng)濟(jì)可行性、技術(shù)可行性、法律可行性和用戶操作可行性等方面評價系統(tǒng)是否值得做,用戶操作可行性等方面評價系統(tǒng)是否值得做,是否能做。是否能做??尚行匝芯康牟襟E可行性研究的步驟 1) 確定項目的規(guī)模和目標(biāo)確定項目的規(guī)模和目標(biāo) 2) 研究當(dāng)前正在運(yùn)行的系統(tǒng)研究當(dāng)前正在運(yùn)行的系統(tǒng) 3) 建立新系統(tǒng)的高層邏輯模型建立新系統(tǒng)的高層邏輯模型 4) 導(dǎo)出和評價各種方案導(dǎo)出和評價各種方案軟件工程軟件工程5 55) 推薦可行的方案推薦可行的方案6) 編寫可行性研究報告編寫可行性研究報告n成本估算成本
4、估算 專家估算技術(shù)(專家估算技術(shù)(delphi技術(shù))技術(shù)) 成本估算模型(成本估算模型(cocomo)n效益估算效益估算 投資回收期投資回收期 純收入純收入 投資回收率投資回收率經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性 成本成本效益分析效益分析軟件工程軟件工程6 6技術(shù)可行性技術(shù)可行性 技術(shù)風(fēng)險分析技術(shù)風(fēng)險分析n技術(shù)解決方案的實用性技術(shù)解決方案的實用性使用的技術(shù)實用化程度使用的技術(shù)實用化程度技術(shù)解決方案合理程度技術(shù)解決方案合理程度n技術(shù)資源的可用性技術(shù)資源的可用性參與人員的工作基礎(chǔ)參與人員的工作基礎(chǔ)基礎(chǔ)硬件基礎(chǔ)硬件/軟件的可用性軟件的可用性軟件工具實用性軟件工具實用性軟件工程軟件工程7 7法律可行性法律可行性 侵
5、權(quán)和責(zé)任問題侵權(quán)和責(zé)任問題n專利法專利法n著作權(quán)法著作權(quán)法n軟件保護(hù)條例軟件保護(hù)條例n用戶類型:用戶類型:外行型熟練型專家型外行型熟練型專家型n操作習(xí)慣操作習(xí)慣n使用單位的計算機(jī)使用情況使用單位的計算機(jī)使用情況n使用單位的規(guī)章制度使用單位的規(guī)章制度用戶操作可行性用戶操作可行性軟件工程軟件工程8 82.2 2.2 軟件需求分析軟件需求分析n需求分析是一項軟件工程活動,其目的是:需求分析是一項軟件工程活動,其目的是: 清楚地理解所要解決的問題,完整地獲取用清楚地理解所要解決的問題,完整地獲取用戶要求;戶要求; 刻劃出軟件的功能和性能;刻劃出軟件的功能和性能; 指明軟件與其他系統(tǒng)元素的接口;指明軟件
6、與其他系統(tǒng)元素的接口; 建立軟件必須滿足的約束。建立軟件必須滿足的約束。1. 1. 軟件需求分析的目的軟件需求分析的目的 軟件工程軟件工程9 9n需求分析是一項軟件工程活動,它包括:需求分析是一項軟件工程活動,它包括:1) 需求獲取需求獲取 刻劃出軟件的刻劃出軟件的功能功能和和性能性能; 指明軟件與其他系統(tǒng)元素的指明軟件與其他系統(tǒng)元素的接口接口; 建立軟件必須滿足的建立軟件必須滿足的約束約束。2) 需求建模需求建模需求分析建立起來的模型為日后軟件設(shè)計需求分析建立起來的模型為日后軟件設(shè)計人員提供了可被翻譯成人員提供了可被翻譯成數(shù)據(jù)數(shù)據(jù)、體系結(jié)構(gòu)體系結(jié)構(gòu)、接口接口和和處理過程處理過程設(shè)計的模型。設(shè)
7、計的模型。2. 2. 需求分析的任務(wù)需求分析的任務(wù)軟件工程軟件工程10103) 需求規(guī)格說明需求規(guī)格說明需求規(guī)格說明為開發(fā)人員和用戶提供軟件需求規(guī)格說明為開發(fā)人員和用戶提供軟件開發(fā)完成時質(zhì)量評價的依據(jù)。開發(fā)完成時質(zhì)量評價的依據(jù)。4) 需求評審需求評審 需求分析研究的對象是需求分析研究的對象是用戶的要求用戶的要求。 必須必須全面理解全面理解用戶的各項要求,用戶的各項要求,準(zhǔn)確表準(zhǔn)確表達(dá)達(dá)被接受的用戶要求。被接受的用戶要求。 只有經(jīng)過確切描述的軟件需求才能成為只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計的基礎(chǔ)。軟件設(shè)計的基礎(chǔ)。 軟件工程軟件工程11 11n軟件開發(fā)是要實現(xiàn)軟件開發(fā)是要實現(xiàn)目標(biāo)系統(tǒng)的物
8、理模型目標(biāo)系統(tǒng)的物理模型。需求。需求分析的任務(wù)就是借助于分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng),解決目標(biāo)系統(tǒng) “ “做做什么什么” ” 的問題。的問題。目標(biāo)系統(tǒng)目標(biāo)系統(tǒng)當(dāng)前系統(tǒng)當(dāng)前系統(tǒng)物理模型物理模型邏輯模型邏輯模型模型化模型化抽象化抽象化物理模型物理模型邏輯模型邏輯模型具體化具體化實例化實例化理理解解需需求求導(dǎo)導(dǎo)出出怎么做怎么做做什么做什么軟件工程軟件工程12123 3、需求獲取、需求獲取n需求獲取是在問題及其最終解決方案之間架設(shè)需求獲取是在問題及其最終解決方案之間架設(shè)橋梁的第一步。橋梁的第一步。n需求獲取的目的是清
9、楚地理解所要解決的問題,需求獲取的目的是清楚地理解所要解決的問題,完整地獲得用戶的需求。完整地獲得用戶的需求。n獲取需求的一個必不可少的結(jié)果是對項目中描獲取需求的一個必不可少的結(jié)果是對項目中描述的客戶需求的普遍理解。一旦理解了需求,述的客戶需求的普遍理解。一旦理解了需求,分析者、開發(fā)者和客戶就能探索出描述這些需分析者、開發(fā)者和客戶就能探索出描述這些需求的多種解決方案。求的多種解決方案。軟件工程軟件工程1313軟件需求的層次軟件需求的層次1)業(yè)務(wù)需求業(yè)務(wù)需求 反映了組織或客戶對系統(tǒng)、產(chǎn)品反映了組織或客戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們一般在項目視圖和高層次的目標(biāo)要求,它們一般在項目視圖和范圍文
10、檔中給予說明。范圍文檔中給予說明。2)用戶需求用戶需求 描述用戶使用軟件需要完成哪些描述用戶使用軟件需要完成哪些任務(wù),它們可通過使用實例圖或腳本說明加任務(wù),它們可通過使用實例圖或腳本說明加以闡明。以闡明。3)功能功能非功能需求非功能需求 定義了開發(fā)者必須實現(xiàn)定義了開發(fā)者必須實現(xiàn)的軟件功能,而非功能需求如表所示的軟件功能,而非功能需求如表所示:軟件工程軟件工程1414 性性能能要要求求 實實時時性性; 其其他他時時間間要要求求, 如如響響應(yīng)應(yīng)時時間間、 處處理理時時間間、包包傳傳送送時時間間等等; 資資源源配配置置要要求求; 精精確確度度、處處理理量量等等要要求求 可可靠靠性性要要求求 有有效效
11、性性; 數(shù)數(shù)據(jù)據(jù)完完整整性性 安安全全保保密密要要求求 安安全全性性; 保保密密性性 運(yùn)運(yùn)行行要要求求 使使用用頻頻度度、 運(yùn)運(yùn)行行期期限限; 控控制制方方式式; 對對操操作作員員要要求求 產(chǎn)產(chǎn)品品要要求求 物物理理要要求求 系系統(tǒng)統(tǒng)的的規(guī)規(guī)模模等等 開開發(fā)發(fā)類類型型 實實用用性性開開發(fā)發(fā)或或試試驗驗性性開開發(fā)發(fā) 項項目目估估算算 開開發(fā)發(fā)工工作作量量估估計計 開開發(fā)發(fā)方方法法 質(zhì)質(zhì)量量控控制制標(biāo)標(biāo)準(zhǔn)準(zhǔn); 里里程程碑碑和和評評審審; 驗驗收收標(biāo)標(biāo)準(zhǔn)準(zhǔn) 優(yōu)優(yōu)先先順順序序 權(quán)權(quán)衡衡各各種種質(zhì)質(zhì)量量目目標(biāo)標(biāo)要要求求,排排定定優(yōu)優(yōu)先先實實現(xiàn)現(xiàn)次次序序 過過程程要要求求 可可維維護(hù)護(hù)性性 可可理理解解性
12、性、可可測測試試性性、可可修修改改性性、可可移移植植性性 軟件工程軟件工程1515需求獲取過程需求獲取過程n需求獲取包括以下活動:需求獲取包括以下活動:1) 發(fā)現(xiàn)和分析問題發(fā)現(xiàn)和分析問題 發(fā)現(xiàn)問題癥結(jié),并分析問發(fā)現(xiàn)問題癥結(jié),并分析問題的原因題的原因/結(jié)果關(guān)系。結(jié)果關(guān)系。2) 獲取獲取需求需求 根據(jù)對問題的理解定義需求。根據(jù)對問題的理解定義需求。a) 使用調(diào)查研究方法收集信息;使用調(diào)查研究方法收集信息;b) 遵循需求獲取框架,按照三個成分觀察:遵循需求獲取框架,按照三個成分觀察:即即數(shù)據(jù)數(shù)據(jù)、過程過程和和接口接口。3) 需求歸檔需求歸檔 以草稿形式歸檔調(diào)查結(jié)果。形式以草稿形式歸檔調(diào)查結(jié)果。形式有
13、用例、決策表、需求表等。有用例、決策表、需求表等。軟件工程軟件工程1616需求獲取技術(shù)的基本特征需求獲取技術(shù)的基本特征n好的需求獲取技術(shù),對于規(guī)范需求獲取活動,好的需求獲取技術(shù),對于規(guī)范需求獲取活動,高效準(zhǔn)確地獲取需求定義,是十分重要的。高效準(zhǔn)確地獲取需求定義,是十分重要的。n好的需求獲取技術(shù),應(yīng)具有如下基本特征:好的需求獲取技術(shù),應(yīng)具有如下基本特征: 提供便于溝通的工具,如易于理解的語言提供便于溝通的工具,如易于理解的語言和直觀的圖表;和直觀的圖表; 提供定義系統(tǒng)邊界(交互)的方法;提供定義系統(tǒng)邊界(交互)的方法; 提供支持抽象的機(jī)制,如提供支持抽象的機(jī)制,如“分解分解”、“映映射射”等;等
14、;軟件工程軟件工程1717 鼓勵分析員使用面向問題的術(shù)語思考問題,鼓勵分析員使用面向問題的術(shù)語思考問題,編寫文檔;編寫文檔; 為分析員提供多種可供選擇的解決方案;為分析員提供多種可供選擇的解決方案; 適應(yīng)需求的變化。適應(yīng)需求的變化。n適于以上特征的需求獲取方法:適于以上特征的需求獲取方法: 基于數(shù)據(jù)流圖的結(jié)構(gòu)化分析方法;基于數(shù)據(jù)流圖的結(jié)構(gòu)化分析方法; 基于用例(基于用例(use case)的建模方法。)的建模方法。n需求獲取技術(shù)的關(guān)鍵點在于:需求獲取技術(shù)的關(guān)鍵點在于:a. 深入淺出深入淺出 需求獲取要盡可能全面、細(xì)致。需求獲取要盡可能全面、細(xì)致。軟件工程軟件工程1818獲取的需求是個獲取的需求
15、是個全集全集,系統(tǒng)真正實現(xiàn)的是,系統(tǒng)真正實現(xiàn)的是個個子集子集。分析時的調(diào)研內(nèi)容并不都納入到。分析時的調(diào)研內(nèi)容并不都納入到新系統(tǒng)中,目的在于以后的擴(kuò)充。新系統(tǒng)中,目的在于以后的擴(kuò)充。b. 以流程為主線以流程為主線 在與用戶交流的過程中,應(yīng)該用流程將所在與用戶交流的過程中,應(yīng)該用流程將所有的內(nèi)容串起來。如信息、組織結(jié)構(gòu)、處有的內(nèi)容串起來。如信息、組織結(jié)構(gòu)、處理規(guī)則等。這樣便于交流溝通。理規(guī)則等。這樣便于交流溝通。流程描述有宏觀,也有微觀。既要強(qiáng)調(diào)總流程描述有宏觀,也有微觀。既要強(qiáng)調(diào)總體的業(yè)務(wù)流程、全生存周期的業(yè)務(wù)流程,體的業(yè)務(wù)流程、全生存周期的業(yè)務(wù)流程,又要對流程細(xì)化,有分支的業(yè)務(wù)流程。又要對流程
16、細(xì)化,有分支的業(yè)務(wù)流程。軟件工程軟件工程1919需求獲取應(yīng)遵循的原則需求獲取應(yīng)遵循的原則n抽象和分解是在人們認(rèn)識世界和改造世界的長抽象和分解是在人們認(rèn)識世界和改造世界的長期實踐中總結(jié)出來的行之有效的原則,在需求期實踐中總結(jié)出來的行之有效的原則,在需求獲取的過程中需遵循的三個原則:獲取的過程中需遵循的三個原則:a. 分解分解:捕獲問題空間的:捕獲問題空間的整體整體 部分關(guān)系部分關(guān)系。如問題子問題分解;如問題子問題分解;b. 抽象抽象:捕獲問題空間的:捕獲問題空間的一般化一般化 特殊化關(guān)特殊化關(guān)系系。如問題的不同變型;。如問題的不同變型;c.投影投影:捕獲問題空間的:捕獲問題空間的多維視圖多維視圖
17、。即從不。即從不同角度考察。同角度考察。軟件工程軟件工程2020需求獲取的步驟需求獲取的步驟n軟件開發(fā)項目和組織文化的不同,對于需求開軟件開發(fā)項目和組織文化的不同,對于需求開發(fā)沒有一個簡單的、公式化的途徑。發(fā)沒有一個簡單的、公式化的途徑。n下面下面9個步驟,針對信息系統(tǒng)的需求獲取。個步驟,針對信息系統(tǒng)的需求獲取。1) 定義項目的視圖和范圍定義項目的視圖和范圍 包括組織結(jié)構(gòu)圖、包括組織結(jié)構(gòu)圖、各部門的崗位各部門的崗位/角色列表。角色列表。2) 確定用戶類確定用戶類 包括人員包括人員/責(zé)任矩陣。責(zé)任矩陣。3) 確定目標(biāo)系統(tǒng)的業(yè)務(wù)工作流確定目標(biāo)系統(tǒng)的業(yè)務(wù)工作流 包括物流、資包括物流、資金流、信息流,
18、建立業(yè)務(wù)工作流模型。金流、信息流,建立業(yè)務(wù)工作流模型。軟件工程軟件工程21214) 運(yùn)用需求獲取技術(shù)運(yùn)用需求獲取技術(shù)開發(fā)反映主要業(yè)務(wù)規(guī)則的開發(fā)反映主要業(yè)務(wù)規(guī)則的用例(或數(shù)據(jù)流圖)用例(或數(shù)據(jù)流圖)并設(shè)置優(yōu)先級。并設(shè)置優(yōu)先級。 5) 收集來自用戶的收集來自用戶的質(zhì)量特性信息和其他非功能質(zhì)量特性信息和其他非功能需求需求 將性能、安全性、可靠性等需求和其將性能、安全性、可靠性等需求和其他設(shè)計約束結(jié)合業(yè)務(wù)規(guī)則,形成功能需求。他設(shè)計約束結(jié)合業(yè)務(wù)規(guī)則,形成功能需求。6) 分類在用例(或數(shù)據(jù)流圖)中涉及的數(shù)據(jù)分類在用例(或數(shù)據(jù)流圖)中涉及的數(shù)據(jù) 包括數(shù)據(jù)的組成和數(shù)據(jù)之間的關(guān)系。包括數(shù)據(jù)的組成和數(shù)據(jù)之間的關(guān)系
19、。7) 詳細(xì)擬訂用例(或數(shù)據(jù)流圖)的規(guī)格說明,詳細(xì)擬訂用例(或數(shù)據(jù)流圖)的規(guī)格說明, 建立功能模型,并進(jìn)行審查,用以澄清需求建立功能模型,并進(jìn)行審查,用以澄清需求獲取的參與者對需求的理解。獲取的參與者對需求的理解。軟件工程軟件工程22228) 開發(fā)并評估界面原型開發(fā)并評估界面原型 設(shè)想輸入設(shè)備、輸出設(shè)想輸入設(shè)備、輸出設(shè)備、顯示風(fēng)格、顯示方式、輸出格式等,設(shè)備、顯示風(fēng)格、顯示方式、輸出格式等,建立接口規(guī)范和信息流傳輸規(guī)則。建立接口規(guī)范和信息流傳輸規(guī)則。9) 從功能描述中開發(fā)概念測試用例從功能描述中開發(fā)概念測試用例 用測試用用測試用例來驗證用例(或數(shù)據(jù)流圖)、功能需求和例來驗證用例(或數(shù)據(jù)流圖)、
20、功能需求和原型。原型。軟件工程軟件工程2323n需求獲取可能是軟件開發(fā)中最困難、最關(guān)鍵、需求獲取可能是軟件開發(fā)中最困難、最關(guān)鍵、最易出錯及最需要交流的方面。表現(xiàn)在:最易出錯及最需要交流的方面。表現(xiàn)在: 需求的不穩(wěn)定性需求的不穩(wěn)定性:在整個軟件生存周期內(nèi):在整個軟件生存周期內(nèi)軟件需求會隨著時間的推移發(fā)生變化;軟件需求會隨著時間的推移發(fā)生變化; 需求的不準(zhǔn)確性需求的不準(zhǔn)確性:用戶和開發(fā)人員的認(rèn)識:用戶和開發(fā)人員的認(rèn)識會隨著使用系統(tǒng)實現(xiàn)業(yè)務(wù)流程的實踐逐步會隨著使用系統(tǒng)實現(xiàn)業(yè)務(wù)流程的實踐逐步提高,一開始不可能設(shè)想得面面俱到。提高,一開始不可能設(shè)想得面面俱到。n需求獲取只有通過有效的客戶需求獲取只有通過
21、有效的客戶/開發(fā)者的合作開發(fā)者的合作才能成功。才能成功。 軟件工程軟件工程2424針對信息系統(tǒng)的需求調(diào)研方法針對信息系統(tǒng)的需求調(diào)研方法 調(diào)研調(diào)研用戶的組織結(jié)構(gòu)用戶的組織結(jié)構(gòu)、崗位設(shè)置崗位設(shè)置、職責(zé)定義職責(zé)定義,從功能上區(qū)分有多少個子系統(tǒng),劃分系統(tǒng)的從功能上區(qū)分有多少個子系統(tǒng),劃分系統(tǒng)的大致范圍,明確系統(tǒng)的目標(biāo)。大致范圍,明確系統(tǒng)的目標(biāo)。 調(diào)研每個子系統(tǒng)的調(diào)研每個子系統(tǒng)的工作流程工作流程、功能與處理規(guī)功能與處理規(guī)則則,收集原始信息資料,用數(shù)據(jù)流來表示物,收集原始信息資料,用數(shù)據(jù)流來表示物流、資金流、信息流三者的關(guān)系。流、資金流、信息流三者的關(guān)系。 對調(diào)研內(nèi)容事先準(zhǔn)備,針對不同管理層次的對調(diào)研內(nèi)容
22、事先準(zhǔn)備,針對不同管理層次的用戶詢問不同的問題,列出用戶詢問不同的問題,列出問題清單問題清單。將操。將操作層、管理層、決策層的需求既聯(lián)系又區(qū)分作層、管理層、決策層的需求既聯(lián)系又區(qū)分開來,形成一個需求的層次。開來,形成一個需求的層次。軟件工程軟件工程2525 對與用戶溝通的情況及時總結(jié)歸納,整理對與用戶溝通的情況及時總結(jié)歸納,整理調(diào)調(diào)研結(jié)果研結(jié)果,初步構(gòu)成,初步構(gòu)成需求基線需求基線。若基線符合要。若基線符合要求,則需求獲取完成。求,則需求獲取完成。n需求調(diào)研的主要手段:需求調(diào)研的主要手段: 發(fā)調(diào)查表;發(fā)調(diào)查表; 召開調(diào)查會;召開調(diào)查會; 向用戶領(lǐng)域的專家個別咨詢;向用戶領(lǐng)域的專家個別咨詢; 實地
23、考察,實地考察, 跟蹤現(xiàn)場業(yè)務(wù)流程;跟蹤現(xiàn)場業(yè)務(wù)流程; 查閱與待開發(fā)系統(tǒng)有關(guān)的資料;查閱與待開發(fā)系統(tǒng)有關(guān)的資料; 使用各種調(diào)查工具等。使用各種調(diào)查工具等。軟件工程軟件工程2626需求整理與表達(dá)的方法需求整理與表達(dá)的方法n采用采用窮舉方法窮舉方法可以避免遺漏??梢员苊膺z漏。n采用采用歸納方法歸納方法,通過對各種情況進(jìn)行綜合分類,通過對各種情況進(jìn)行綜合分類可以使問題條理化??梢允箚栴}條理化。n采用采用抽象方法抽象方法,可以發(fā)現(xiàn)問題的實質(zhì),抓住問,可以發(fā)現(xiàn)問題的實質(zhì),抓住問題的主要矛盾,忽略其次要矛盾。題的主要矛盾,忽略其次要矛盾。n需求整理可以多種手段共用,如組織結(jié)構(gòu)圖、需求整理可以多種手段共用,
24、如組織結(jié)構(gòu)圖、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字?jǐn)⑹?、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字?jǐn)⑹?、表格、圖形等。需求描述包括組織結(jié)構(gòu)與崗位表格、圖形等。需求描述包括組織結(jié)構(gòu)與崗位定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項、功能以定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項、功能以及及上述上述 5 個方面?zhèn)€方面的關(guān)系。的關(guān)系。軟件工程軟件工程27274. 4. 需求建模需求建模n需求建模是為了分析需求,以確定項目的確切需求建模是為了分析需求,以確定項目的確切需求。需求。n需求建模遵循三個原則:需求建模遵循三個原則: 劃分劃分:描述需求的整體:描述需求的整體部分關(guān)系;部分關(guān)系; 抽象抽象:描述需求的一般化:描述需求的一般化
25、特殊化關(guān)系;特殊化關(guān)系; 投影投影:描述需求的多維視圖;:描述需求的多維視圖;n定義系統(tǒng)模型要區(qū)分邏輯模型和物理模型。定義系統(tǒng)模型要區(qū)分邏輯模型和物理模型。n常用模型有常用模型有數(shù)據(jù)建模數(shù)據(jù)建模、功能建模功能建模和和過程建模過程建模。軟件工程軟件工程2828常用的分析方法常用的分析方法 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 (sa) 面向數(shù)據(jù)結(jié)構(gòu)的面向數(shù)據(jù)結(jié)構(gòu)的jackson方法方法 (jsd) 面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法 (dssd) 面向?qū)ο蟮姆治龇椒嫦驅(qū)ο蟮姆治龇椒?(ooa) 等等軟件工程軟件工程2929n結(jié)構(gòu)化分析方法最
26、初只是著眼于數(shù)據(jù)流,自頂結(jié)構(gòu)化分析方法最初只是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。輯模型。n擴(kuò)充后,將建模技術(shù)擴(kuò)展到數(shù)據(jù)建模、功能建擴(kuò)充后,將建模技術(shù)擴(kuò)展到數(shù)據(jù)建模、功能建模和行為建模,以實體模和行為建模,以實體- -關(guān)系圖、數(shù)據(jù)流圖和關(guān)系圖、數(shù)據(jù)流圖和控制流圖、狀態(tài)控制流圖、狀態(tài)- -遷移圖為工具,數(shù)據(jù)字典為遷移圖為工具,數(shù)據(jù)字典為核心,從不同視點建立系統(tǒng)的分析模型。核心,從不同視點建立系統(tǒng)的分析模型。2.3 2.3 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方
27、法軟件工程軟件工程3030結(jié)構(gòu)化分析的分析模型結(jié)構(gòu)化分析的分析模型實體實體關(guān)系圖關(guān)系圖狀態(tài)狀態(tài)遷移圖遷移圖數(shù)據(jù)對象描述數(shù)據(jù)對象描述加工規(guī)格說明加工規(guī)格說明數(shù)據(jù)數(shù)據(jù)字典字典控制規(guī)格說明控制規(guī)格說明軟件工程軟件工程31311. 1. 數(shù)據(jù)建模數(shù)據(jù)建模n數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對象,數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對象,描述對象的屬性,描述對象間相互連接的關(guān)系。描述對象的屬性,描述對象間相互連接的關(guān)系。n在需求分析階段描述數(shù)據(jù)對象和它們之間的關(guān)在需求分析階段描述數(shù)據(jù)對象和它們之間的關(guān)系,使用了系,使用了e-r 圖。圖。n例如,在教學(xué)管理中,一個教師可以教授零門、例如,在教學(xué)管理中,一
28、個教師可以教授零門、一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課程。因此,教學(xué)管理中涉及的對象有學(xué)生、教程。因此,教學(xué)管理中涉及的對象有學(xué)生、教師和課程。師和課程。軟件工程軟件工程3232教學(xué)數(shù)據(jù)模型教學(xué)數(shù)據(jù)模型學(xué)號學(xué)號 姓名姓名 專業(yè)專業(yè) 性別性別 學(xué)生學(xué)生職工號職工號姓名姓名專業(yè)專業(yè)職稱職稱年齡年齡教師教師課程號課程號 課程名課程名 學(xué)分學(xué)分 學(xué)時學(xué)時課程課程學(xué)號學(xué)號課程號課程號成績成績選課選課軟件工程軟件工程3333 實例的關(guān)聯(lián)有三種:一對一實例的關(guān)聯(lián)有三種:一對一 (1:1) ;一對多;一對多 (1:m) ;多對多;多對多 (n:m) 。 這種實例的
29、關(guān)聯(lián)稱為這種實例的關(guān)聯(lián)稱為“基數(shù)基數(shù)”,基數(shù)表明了,基數(shù)表明了“重復(fù)性重復(fù)性”。教師教師學(xué)生學(xué)生教授教授基數(shù)基數(shù):一位教師一位教師 基數(shù)基數(shù):多位學(xué)生多位學(xué)生參與度參與度: :必須必須 參與度參與度: :可選可選軟件工程軟件工程3434xy一個一個x與一個與一個y相關(guān)聯(lián)相關(guān)聯(lián)一個一個x與一個或多個與一個或多個y相關(guān)聯(lián)相關(guān)聯(lián)xy一個一個x與零個或一個與零個或一個y相關(guān)聯(lián)相關(guān)聯(lián)xy一個一個x與零個與零個, 一個或多個一個或多個y相關(guān)聯(lián)相關(guān)聯(lián)xy一個一個x與一個與一個y或或z相關(guān)聯(lián)相關(guān)聯(lián)xyz一個一個x與一個與一個y與與z相關(guān)聯(lián)相關(guān)聯(lián)xyz軟件工程軟件工程35352.2. 功能建模和數(shù)據(jù)流功能建模和
30、數(shù)據(jù)流n最初最初, ,結(jié)構(gòu)化分析方法僅討論數(shù)據(jù)流建模,目標(biāo)結(jié)構(gòu)化分析方法僅討論數(shù)據(jù)流建模,目標(biāo)系統(tǒng)被表示成如圖所示的數(shù)據(jù)變換流程圖。系系統(tǒng)被表示成如圖所示的數(shù)據(jù)變換流程圖。系統(tǒng)的功能體現(xiàn)在核心的數(shù)據(jù)變換中。統(tǒng)的功能體現(xiàn)在核心的數(shù)據(jù)變換中。外部實體外部實體外部實體外部實體外部實體外部實體外部實體外部實體目標(biāo)目標(biāo)系統(tǒng)系統(tǒng)輸入信息輸入信息輸入信息輸入信息輸出信息輸出信息輸出信息輸出信息頂層數(shù)據(jù)流圖(上下文環(huán)境圖)頂層數(shù)據(jù)流圖(上下文環(huán)境圖)軟件工程軟件工程3636數(shù)據(jù)流圖中的主要圖形元素數(shù)據(jù)流圖中的主要圖形元素數(shù)據(jù)加工數(shù)據(jù)加工 (數(shù)據(jù)變換數(shù)據(jù)變換)數(shù)據(jù)源或數(shù)據(jù)潭數(shù)據(jù)源或數(shù)據(jù)潭 (外部實體外部實體)數(shù)
31、據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲文件數(shù)據(jù)存儲文件或或或或軟件工程軟件工程3737分層的數(shù)據(jù)流圖分層的數(shù)據(jù)流圖軟件工程軟件工程3838實例考務(wù)處理系統(tǒng)的功能實例考務(wù)處理系統(tǒng)的功能(1) 對考生送來的報名單進(jìn)行檢查對考生送來的報名單進(jìn)行檢查;(2) 對合格的報名單編好準(zhǔn)考證號后將準(zhǔn)考證送給對合格的報名單編好準(zhǔn)考證號后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站考生,并將匯總后的考生名單送給閱卷站;(3) 對閱卷站送來的成績單進(jìn)行檢查,并根據(jù)考試對閱卷站送來的成績單進(jìn)行檢查,并根據(jù)考試中心制定的合格標(biāo)準(zhǔn)審定合格者中心制定的合格標(biāo)準(zhǔn)審定合格者;(4) 制作考生通知單制作考生通知單 (含成績及合格含成績及合格/不
32、合格標(biāo)志不合格標(biāo)志) 送給考生送給考生;(5) 按地區(qū)進(jìn)行成績分類統(tǒng)計和試題難度分析,產(chǎn)按地區(qū)進(jìn)行成績分類統(tǒng)計和試題難度分析,產(chǎn)生統(tǒng)計分析表。生統(tǒng)計分析表。軟件工程軟件工程3939頂層數(shù)據(jù)流圖頂層數(shù)據(jù)流圖考考生生考務(wù)考務(wù)處理系統(tǒng)處理系統(tǒng)考考試試中中心心閱卷站閱卷站不合格報名表不合格報名表報名表報名表準(zhǔn)考證準(zhǔn)考證考生通知單考生通知單成成績績單單合格標(biāo)準(zhǔn)合格標(biāo)準(zhǔn)錯誤成績單錯誤成績單考考生生名名單單統(tǒng)計分析表統(tǒng)計分析表軟件工程軟件工程4040 根據(jù)考務(wù)處理業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反根據(jù)考務(wù)處理業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程及系統(tǒng)與外界的關(guān)系。映最主要業(yè)務(wù)處理流程及系統(tǒng)與外界的關(guān)系
33、。 經(jīng)過分析,考務(wù)業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有經(jīng)過分析,考務(wù)業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有登登記報名單記報名單、統(tǒng)計成績統(tǒng)計成績兩個主要數(shù)據(jù)流。輸入的兩個主要數(shù)據(jù)流。輸入的源點和輸出終點是考生、考試中心和閱卷站。源點和輸出終點是考生、考試中心和閱卷站。 然后從輸入端開始,根據(jù)考務(wù)業(yè)務(wù)工作流,畫然后從輸入端開始,根據(jù)考務(wù)業(yè)務(wù)工作流,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第得到第 0 層數(shù)據(jù)流圖。層數(shù)據(jù)流圖。軟件工程軟件工程4141報名表報名表準(zhǔn)考證準(zhǔn)考證1 1登記登記報名表報名表2統(tǒng)計統(tǒng)計成績成績不合格不合格報名表報名表考生通知單考生通知單成成績績單單統(tǒng)計分
34、析表統(tǒng)計分析表第第0 0層數(shù)據(jù)流圖層數(shù)據(jù)流圖考生名冊考生名冊合合格格標(biāo)標(biāo)準(zhǔn)準(zhǔn)考考生生名名單單錯錯誤誤成成績績單單軟件工程軟件工程4242第一層數(shù)據(jù)流圖第一層數(shù)據(jù)流圖 (a)(a)1.1 檢查檢查報名表報名表報名表報名表準(zhǔn)考證準(zhǔn)考證1.2編準(zhǔn)考證編準(zhǔn)考證號碼號碼不合格不合格報名表報名表考生名冊考生名冊考生名單考生名單合格合格報名表報名表1.3登記登記考生考生合格報名表合格報名表軟件工程軟件工程4343第一層數(shù)據(jù)流圖第一層數(shù)據(jù)流圖 (b)(b)2.1檢查檢查成績單成績單2.2審定審定合格者合格者考生名冊考生名冊正確正確成績單成績單2.3制作制作通知單通知單2.4分析統(tǒng)分析統(tǒng)計成績計成績2.5分析試
35、分析試題難度題難度試題得分表試題得分表考生考生通知單通知單難度難度分析表分析表合格合格標(biāo)準(zhǔn)標(biāo)準(zhǔn)分類分類統(tǒng)計表統(tǒng)計表成績單成績單錯誤錯誤成績單成績單經(jīng)審定的經(jīng)審定的成績單成績單軟件工程軟件工程44443. 3. 行為建模行為建模n行為建模給出需求分析方法的所有操作原則,行為建模給出需求分析方法的所有操作原則,但只有結(jié)構(gòu)化分析方法的擴(kuò)充版本才提供這種但只有結(jié)構(gòu)化分析方法的擴(kuò)充版本才提供這種建模的符號。建模的符號。n數(shù)據(jù)流圖不描述時序關(guān)系,控制和事件流通過數(shù)據(jù)流圖不描述時序關(guān)系,控制和事件流通過行為模型描述。行為模型描述。n在描述系統(tǒng)或各個數(shù)據(jù)對象的行為時,采用狀在描述系統(tǒng)或各個數(shù)據(jù)對象的行為時,采
36、用狀態(tài)遷移圖。通過描述系統(tǒng)或?qū)ο蟮膽B(tài)遷移圖。通過描述系統(tǒng)或?qū)ο蟮臓顟B(tài)狀態(tài),以及,以及引起系統(tǒng)或?qū)ο鬆顟B(tài)轉(zhuǎn)換的引起系統(tǒng)或?qū)ο鬆顟B(tài)轉(zhuǎn)換的事件事件來表示系統(tǒng)或來表示系統(tǒng)或?qū)ο蟮男袨?。對象的行為。軟件工程軟件工?545狀態(tài)遷移圖狀態(tài)遷移圖n例如,有關(guān)處理器分配的進(jìn)程狀態(tài)遷移。例如,有關(guān)處理器分配的進(jìn)程狀態(tài)遷移。t2t3t4t1運(yùn)行運(yùn)行就緒就緒等待等待軟件工程軟件工程4646n狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的事件進(jìn)行推移的一種圖形表示。事件進(jìn)行推移的一種圖形表示。 “”表示可得到的系統(tǒng)表示可得到的系統(tǒng)狀態(tài)狀態(tài) “”表示從一種狀態(tài)向另一種狀態(tài)的表示從一種狀
37、態(tài)向另一種狀態(tài)的遷移遷移。s2s1s3t1t2t3t4t4t3t2t1事件事件狀態(tài)狀態(tài)s1 s2 s3s3s2s3s1軟件工程軟件工程4747petripetri網(wǎng)網(wǎng)npetri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述相互獨立、協(xié)同操作的發(fā)中,它適用于描述相互獨立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。npetri網(wǎng)簡稱網(wǎng)簡稱png (petri net graph),它有兩,它有兩種結(jié)點:種結(jié)點: 位置位置:符號:符號“”,表示系統(tǒng),表示系統(tǒng)狀態(tài)狀態(tài)。 轉(zhuǎn)移轉(zhuǎn)移:符號:符號 “|”, 表示系統(tǒng)中的表示系
38、統(tǒng)中的事件事件。 有向邊有向邊“”表示表示向轉(zhuǎn)移的輸入向轉(zhuǎn)移的輸入,或,或從轉(zhuǎn)移從轉(zhuǎn)移的輸出的輸出。軟件工程軟件工程4848 標(biāo)記標(biāo)記,或稱,或稱令牌令牌 (token),是表明系統(tǒng)當(dāng)前處,是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志。于什么狀態(tài)的標(biāo)志。petri網(wǎng)可能的變化有:網(wǎng)可能的變化有:軟件工程軟件工程4949進(jìn)程進(jìn)程 得到資源得到資源 占用資源運(yùn)行占用資源運(yùn)行 釋放資源釋放資源 不用資源運(yùn)行不用資源運(yùn)行pr1 lock r 處理處理11 unlock r 處理處理12pr2 lock r 處理處理21 unlock r 處理處理22n例如,處理兩個進(jìn)程例如,處理兩個進(jìn)程pr1和和pr2的同步問題
39、(此的同步問題(此時兩個進(jìn)程共用一個資源時兩個進(jìn)程共用一個資源r):):軟件工程軟件工程5050p1p2p3p4p5p7p6t1t2t3t4t5t6等待等待r等待等待rr空閑空閑處理處理11處理處理12處理處理21處理處理22進(jìn)程進(jìn)程1進(jìn)程進(jìn)程2軟件工程軟件工程51514. 4. 數(shù)據(jù)字典數(shù)據(jù)字典n數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心,與各模型數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心,與各模型的圖形表示配合,能清楚地表達(dá)數(shù)據(jù)處理的要的圖形表示配合,能清楚地表達(dá)數(shù)據(jù)處理的要求。求。n詞條描述詞條描述對于在模型中每一個被命名的圖對于在模型中每一個被命名的圖形元素,均加以定義,其內(nèi)容有形元素,均加以定義,其內(nèi)容有:
40、 名字,別名名字,別名或編號,分類,描述,定義,位置,其它,等或編號,分類,描述,定義,位置,其它,等軟件工程軟件工程5252(1)數(shù)據(jù)流詞條描述)數(shù)據(jù)流詞條描述 數(shù)據(jù)流名:數(shù)據(jù)流名: 說明:簡要介紹它產(chǎn)生的原因和結(jié)果說明:簡要介紹它產(chǎn)生的原因和結(jié)果 數(shù)據(jù)流來源:來自何方數(shù)據(jù)流來源:來自何方 數(shù)據(jù)流去向:去向何處數(shù)據(jù)流去向:去向何處 數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量(2)數(shù)據(jù)元素詞條描述數(shù)據(jù)元素詞條描述 類型:數(shù)字類型:數(shù)字( (離散值,連續(xù)值離散值,連續(xù)值) ),文字,文字( (編碼編碼類型類型) )長度長度軟件工程軟件工程5
41、353 取值范圍:取值范圍: 相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):(3)數(shù)據(jù)文件詞條描述)數(shù)據(jù)文件詞條描述 數(shù)據(jù)文件名:數(shù)據(jù)文件名: 簡述:存放的是什么數(shù)據(jù)簡述:存放的是什么數(shù)據(jù) 輸入輸出數(shù)據(jù):輸入輸出數(shù)據(jù): 數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu) 存儲方式:順序,直接,關(guān)鍵碼存儲方式:順序,直接,關(guān)鍵碼 存取頻率:存取頻率:(4)加工邏輯詞條描述)加工邏輯詞條描述軟件工程軟件工程5454 加工名:加工名: 加工編號:反映該加工的層次加工編號:反映該加工的層次 簡要描述:加工邏輯及功能簡述簡要描述:加工邏輯及功能簡述 輸入輸出數(shù)據(jù)流:輸入輸出數(shù)據(jù)流: 加工邏輯:簡述加工程
42、序,加工順序加工邏輯:簡述加工程序,加工順序(5)數(shù)據(jù)源及數(shù)據(jù)譚詞條描述)數(shù)據(jù)源及數(shù)據(jù)譚詞條描述 名稱:外部實體名名稱:外部實體名 簡要描述:什么外部實體簡要描述:什么外部實體 有關(guān)數(shù)據(jù)流:有關(guān)數(shù)據(jù)流: 數(shù)目:數(shù)目:軟件工程軟件工程55555.5. 數(shù)據(jù)結(jié)構(gòu)的描述數(shù)據(jù)結(jié)構(gòu)的描述符號符號 含義含義 舉舉 例例被定義為被定義為與與重復(fù)重復(fù)可選可選基本數(shù)據(jù)元素基本數(shù)據(jù)元素連結(jié)符連結(jié)符軟件工程軟件工程5656存折戶名所號帳號開戶日性質(zhì)存折戶名所號帳號開戶日性質(zhì) (印印密密) 1 存取行存取行50戶名戶名 2 字母字母24所號所號 001.999帳號帳號 00000001. 99999999開戶日年月日
43、開戶日年月日性質(zhì)性質(zhì)“ 1 ”.“ 6 ”注:注:“ 1 ”表示普通戶,表示普通戶,“ 5 ”表示工資戶等表示工資戶等印密印密“ 0 ”注:印密在存折上不顯示注:印密在存折上不顯示存取行日期(摘要)支出存入余額存取行日期(摘要)支出存入余額操作復(fù)核操作復(fù)核軟件工程軟件工程57576. 6. 基本加工邏輯說明基本加工邏輯說明 對數(shù)據(jù)流圖的每一個基本加工,必須有一個基本對數(shù)據(jù)流圖的每一個基本加工,必須有一個基本加工邏輯說明。加工邏輯說明。 基本加工邏輯說明必須描述基本加工如何把基本加工邏輯說明必須描述基本加工如何把輸入輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。的加工規(guī)則。 加工邏
44、輯說明必須描述實現(xiàn)加工的策略而不是實加工邏輯說明必須描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細(xì)節(jié)?,F(xiàn)加工的細(xì)節(jié)。 加工邏輯說明中包含的信息應(yīng)是充足的,完備的,加工邏輯說明中包含的信息應(yīng)是充足的,完備的,有用的,無冗余的。有用的,無冗余的。 描述加工邏輯說明的工具:結(jié)構(gòu)化語言、決策表、描述加工邏輯說明的工具:結(jié)構(gòu)化語言、決策表、決策樹。決策樹。軟件工程軟件工程5858(1) (1) 結(jié)構(gòu)化語言結(jié)構(gòu)化語言結(jié)構(gòu)化語言是一種偽碼,它的詞匯表由結(jié)構(gòu)化語言是一種偽碼,它的詞匯表由 命令動詞命令動詞 數(shù)據(jù)字典中定義的名字?jǐn)?shù)據(jù)字典中定義的名字 有限的自定義詞有限的自定義詞 邏輯關(guān)系詞邏輯關(guān)系詞 if_then_el
45、se、switch、while_do、for、do_while等組成。等組成。它是一種介于自然語言和形式化語言之間的語它是一種介于自然語言和形式化語言之間的語言。用以消除在語法上的歧義性。言。用以消除在語法上的歧義性。軟件工程軟件工程5959n語言的語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中,加工中的的操作用自然語言短語來表示操作用自然語言短語來表示。n其基本控制結(jié)構(gòu)有三種:其基本控制結(jié)構(gòu)有三種: 簡單陳述句結(jié)構(gòu):簡單陳述句結(jié)構(gòu):避免復(fù)合語句;避免復(fù)合語句; 重復(fù)結(jié)構(gòu):重復(fù)結(jié)構(gòu):while_do、for_do或或do_while結(jié)結(jié)構(gòu)。構(gòu)。 判定結(jié)構(gòu):判定結(jié)構(gòu):if_t
46、hen_else 或或switch_do 結(jié)構(gòu);結(jié)構(gòu);n用結(jié)構(gòu)化語言描述的規(guī)格說明的正文可以在計用結(jié)構(gòu)化語言描述的規(guī)格說明的正文可以在計算機(jī)上編輯,不必過多地考慮語言的在語法上算機(jī)上編輯,不必過多地考慮語言的在語法上的限制,使得分析員可以集中考慮加工的策略的限制,使得分析員可以集中考慮加工的策略或規(guī)則。或規(guī)則。軟件工程軟件工程6060商店業(yè)務(wù)處理系統(tǒng)中商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單檢查發(fā)貨單”if 發(fā)貨單金額超過發(fā)貨單金額超過$500 then if 欠款超過了欠款超過了60天天 then 在償還欠款前不予批準(zhǔn)在償還欠款前不予批準(zhǔn) else (欠款未超期)(欠款未超期) 發(fā)批準(zhǔn)書,發(fā)貨單發(fā)批準(zhǔn)
47、書,發(fā)貨單 else (發(fā)貨單金額未超過(發(fā)貨單金額未超過$500) if 欠款超過欠款超過60天天 then 發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報告發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報告 else (欠款未超期)(欠款未超期) 發(fā)批準(zhǔn)書,發(fā)貨單發(fā)批準(zhǔn)書,發(fā)貨單 軟件工程軟件工程6161(2) (2) 決策表決策表 如果數(shù)據(jù)流圖的加工需要依賴于如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件多個邏輯條件的取值的取值,使用決策表來描述比較合適。,使用決策表來描述比較合適。條件茬條件茬條件項條件項動作茬動作茬動作項動作項規(guī)則規(guī)則單個單個條件條件單個單個動作動作軟件工程軟件工程6262以以“檢查發(fā)貨單檢查發(fā)貨單”為例為例操操在償還
48、欠款前在償還欠款前不予批準(zhǔn)不予批準(zhǔn) 作作 發(fā)出批準(zhǔn)書發(fā)出批準(zhǔn)書 發(fā)出發(fā)貨單發(fā)出發(fā)貨單 發(fā)出賒欠報告發(fā)出賒欠報告 1234條條 發(fā)貨單金額發(fā)貨單金額 $500 $500 $500 $500件件 賒欠情況賒欠情況 60天天60天天 60天天60天天軟件工程軟件工程6363(3) (3) 判定樹判定樹 判定樹也是用來表達(dá)加工邏輯的一種工具。有判定樹也是用來表達(dá)加工邏輯的一種工具。有時侯它比判定表更直觀。時侯它比判定表更直觀。檢檢查查發(fā)發(fā)貨貨單單金額金額$500金額金額 $500 欠款欠款60天天不發(fā)出批準(zhǔn)書不發(fā)出批準(zhǔn)書 欠款欠款 60天天發(fā)貨單發(fā)貨單發(fā)出批準(zhǔn)書、發(fā)出批準(zhǔn)書、 欠款欠款60天天發(fā)出批準(zhǔn)
49、書、發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報告發(fā)貨單及賒欠報告 欠款欠款 60天天發(fā)出批準(zhǔn)書、發(fā)出批準(zhǔn)書、發(fā)貨單發(fā)貨單軟件工程軟件工程6464n這是一種有效駕馭風(fēng)險的技術(shù)。通過原型這是一種有效駕馭風(fēng)險的技術(shù)。通過原型 可以增進(jìn)軟件者和用戶對系統(tǒng)服務(wù)需求的可以增進(jìn)軟件者和用戶對系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的理解,使比較含糊的具有不確定性的軟件軟件需求(主要是功能)明確化需求(主要是功能)明確化。 可以容易地確定可以容易地確定系統(tǒng)的性能系統(tǒng)的性能,確認(rèn),確認(rèn)各項主各項主要系統(tǒng)服務(wù)的可應(yīng)用性要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計的,確認(rèn)系統(tǒng)設(shè)計的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果??尚行?,確認(rèn)系統(tǒng)作為產(chǎn)品
50、的結(jié)果。 有的原型可以直接成為產(chǎn)品,有的略加修有的原型可以直接成為產(chǎn)品,有的略加修改就可成為最終系統(tǒng)的一個組成部分。改就可成為最終系統(tǒng)的一個組成部分。2.4 2.4 快速原型化方法快速原型化方法軟件工程軟件工程65651) 探索型探索型: 目的是要弄清對目標(biāo)系統(tǒng)的要求,確定所希望目的是要弄清對目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。的特性,并探討多種方案的可行性。2) 實驗型實驗型: 這種原型用于大規(guī)模開發(fā)和實現(xiàn)之前,考核方這種原型用于大規(guī)模開發(fā)和實現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。案是否合適,規(guī)格說明是否可靠。3) 進(jìn)化型進(jìn)化型: 這種原型的目的不在于改進(jìn)規(guī)格說明
51、,而是將這種原型的目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。逐步將原型進(jìn)化成最終系統(tǒng)。1. 1. 原型分類原型分類軟件工程軟件工程66662. 2. 原型使用策略原型使用策略n軟件原型支持需求工程的兩項活動:軟件原型支持需求工程的兩項活動: 需求獲取需求獲取 需求有效性驗證需求有效性驗證n其他用途:其他用途: 用戶培訓(xùn)用戶培訓(xùn) 系統(tǒng)測試系統(tǒng)測試n原型開發(fā)主要分類:原型開發(fā)主要分類: 進(jìn)化式原型開發(fā)進(jìn)化式原型開發(fā) 拋棄式原型開發(fā)拋棄式原型開發(fā)軟件工程軟件工程67671 1)進(jìn)化式原型開發(fā))進(jìn)化式原型開發(fā)
52、n基本思路是:先給出一個系統(tǒng)的最初實現(xiàn),讓基本思路是:先給出一個系統(tǒng)的最初實現(xiàn),讓用戶去使用和評價,不斷進(jìn)行細(xì)化和改善,經(jīng)用戶去使用和評價,不斷進(jìn)行細(xì)化和改善,經(jīng)過多次這樣的反復(fù)過程后形成最終的完善的系過多次這樣的反復(fù)過程后形成最終的完善的系統(tǒng)。統(tǒng)。開發(fā)抽象描述開發(fā)抽象描述建立原型系統(tǒng)建立原型系統(tǒng)使用原型系統(tǒng)使用原型系統(tǒng)系統(tǒng)充分嗎系統(tǒng)充分嗎?交付系統(tǒng)交付系統(tǒng)否否是是軟件工程軟件工程68682 2)拋棄式原型開發(fā))拋棄式原型開發(fā)n基本思路是:原型的根本作用是弄清楚需求和基本思路是:原型的根本作用是弄清楚需求和為風(fēng)險評估提供補(bǔ)充信息。通過評估后,原型為風(fēng)險評估提供補(bǔ)充信息。通過評估后,原型被拋棄,
53、重新規(guī)劃和實施系統(tǒng)的開發(fā)。被拋棄,重新規(guī)劃和實施系統(tǒng)的開發(fā)??蚣苄枨罂蚣苄枨箝_發(fā)原型開發(fā)原型確定系統(tǒng)確定系統(tǒng)評估原型評估原型開發(fā)軟件開發(fā)軟件問題問題可可驗證系統(tǒng)驗證系統(tǒng)問題問題可可交付的軟件系統(tǒng)交付的軟件系統(tǒng)可復(fù)用構(gòu)件可復(fù)用構(gòu)件軟件工程軟件工程69693. 3. 原型開發(fā)技術(shù)原型開發(fā)技術(shù)1) 可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明2) 基于場景基于場景 (scenario) 的設(shè)計的設(shè)計3) 自動程序設(shè)計自動程序設(shè)計4) 專用語言專用語言5) 可復(fù)用可復(fù)用(reusable)的軟件的軟件6) 簡化假設(shè)簡化假設(shè)軟件工程軟件工程70701 1)可執(zhí)行規(guī)格說明)可執(zhí)行規(guī)格說明n可執(zhí)行規(guī)格說明是用于需求規(guī)格說明
54、的一種自可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動化技術(shù)。使用這種方法,人們可以直接觀察動化技術(shù)。使用這種方法,人們可以直接觀察他們用語言規(guī)定的任何系統(tǒng)性行為。包括他們用語言規(guī)定的任何系統(tǒng)性行為。包括a) 代數(shù)規(guī)格說明代數(shù)規(guī)格說明b) 有限狀態(tài)模型有限狀態(tài)模型c) 可執(zhí)行的數(shù)據(jù)流圖可執(zhí)行的數(shù)據(jù)流圖軟件工程軟件工程7171a)a)代數(shù)規(guī)格說明代數(shù)規(guī)格說明n使用集合、定義于這些集合上的函數(shù)和定義于使用集合、定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來描述對象。規(guī)格說明的操這些函數(shù)上的方程來描述對象。規(guī)格說明的操作語義用這些方程表示。作語義用這些方程表示。n舉例:定義一個無界的棧及其操作舉例:定
55、義一個無界的棧及其操作new_stack: stackpush:stack,element stackpop: stack (element | undefined)pop( new_stack ( ) ) undefinedpop( push( stack,elem) ) elem軟件工程軟件工程7272b)b) 有限狀態(tài)模型有限狀態(tài)模型nparnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說提出的使用最廣泛的一種可執(zhí)行規(guī)格說明形式。從一個初始狀態(tài)開始明形式。從一個初始狀態(tài)開始接收輸入接收輸入,到,到產(chǎn)產(chǎn)生輸出生輸出,狀態(tài)狀態(tài)在在推移變化推移變化。施加在狀態(tài)元素上。施加在狀態(tài)元素上的約束確定了有效狀
56、態(tài)的推移。的約束確定了有效狀態(tài)的推移。n舉例:建立舉例:建立用戶程序用戶程序 對話對話goofnew entryreportenterquithelpprintstartinfobye軟件工程軟件工程7373c) c)可執(zhí)行的數(shù)據(jù)流圖可執(zhí)行的數(shù)據(jù)流圖n數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說明。說明。n用一種可執(zhí)行的語言程序代替定義處理邏輯的用一種可執(zhí)行的語言程序代替定義處理邏輯的結(jié)構(gòu)化英語,數(shù)據(jù)流圖就成為由可執(zhí)行語言程結(jié)構(gòu)化英語,數(shù)據(jù)流圖就成為由可執(zhí)行語言程序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持下就可成為一個
57、可以執(zhí)行的原型系統(tǒng)下就可成為一個可以執(zhí)行的原型系統(tǒng)。軟件工程軟件工程74742 2)基于場景的設(shè)計)基于場景的設(shè)計n場景是指用戶界面的原型。場景是指用戶界面的原型。n一個場景用以一個場景用以模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件件。它提供了它提供了輸入輸入處理處理輸出的屏幕格式和有輸出的屏幕格式和有關(guān)對話的模型關(guān)對話的模型。因此,軟件開發(fā)人員能夠給用戶。因此,軟件開發(fā)人員能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖。合他的意圖。n分析員與用戶的溝通往往通過演示場景。分析員與用戶的溝通往往通過演示場景。n可在任一
58、場景中使用一套可復(fù)用的軟件模塊,以可在任一場景中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求。表達(dá)某一方面的要求。軟件工程軟件工程7575n可使用一種原型語言來描述原型系統(tǒng)。原型開可使用一種原型語言來描述原型系統(tǒng)。原型開發(fā)過程中用這種語言來定義發(fā)過程中用這種語言來定義 屏幕屏幕 數(shù)據(jù)項數(shù)據(jù)項 相關(guān)的操作相關(guān)的操作 從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫的從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫的接口接口 錯誤處理和恢復(fù)過程錯誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細(xì)節(jié)。等系統(tǒng)的與外部視圖一致的細(xì)節(jié)。軟件工程軟件工程76763 3)自動程序設(shè)計)自動程序設(shè)計n在程序自動生成環(huán)境的支持下,利用計算機(jī)實在程
59、序自動生成環(huán)境的支持下,利用計算機(jī)實現(xiàn)軟件的開發(fā)?,F(xiàn)軟件的開發(fā)。n可以自動或半自動地把用戶的非過程式問題規(guī)可以自動或半自動地把用戶的非過程式問題規(guī)格說明轉(zhuǎn)換為某種高級語言程序:格說明轉(zhuǎn)換為某種高級語言程序:1) 演繹綜合手段:演繹綜合手段: 基于數(shù)學(xué)推理的構(gòu)造式證明?;跀?shù)學(xué)推理的構(gòu)造式證明。2) 程序變換手段:程序變換手段: 將一程序轉(zhuǎn)換成另一功能等價的程序,將一程序轉(zhuǎn)換成另一功能等價的程序,并保持其正確性不變。并保持其正確性不變。軟件工程軟件工程77773) 實例推廣手段:實例推廣手段: 從實例特征出發(fā),將它推廣為待編程序的從實例特征出發(fā),將它推廣為待編程序的特征,最后得到程序。特征,最后
60、得到程序。4) 過程化手段:過程化手段: 研究甚高級語言的編譯和知識的過程化。研究甚高級語言的編譯和知識的過程化。n專用語言是應(yīng)用領(lǐng)域的模型化語言。專用語言是應(yīng)用領(lǐng)域的模型化語言。n在原型開發(fā)中使用專用語言,可方便用戶和軟在原型開發(fā)中使用專用語言,可方便用戶和軟件開發(fā)者在計劃中的系統(tǒng)特性方面的交流。件開發(fā)者在計劃中的系統(tǒng)特性方面的交流。4 4)專用語言)專用語言軟件工程軟件工程78785 5)軟件復(fù)用技術(shù))軟件復(fù)用技術(shù)n利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)造的原型系統(tǒng)。到快速構(gòu)造的原型系統(tǒng)。n為了快速地構(gòu)造原型,這些模塊為了快速地構(gòu)造原型,這
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程質(zhì)量與安全綜合監(jiān)測服務(wù)合同
- 個人聘用合同范本模板
- 農(nóng)村建房建設(shè)合同范例
- 喪葬用品轉(zhuǎn)讓合同范例
- 企劃合同范本
- 食堂服務(wù)外包合同范本
- 燃?xì)馐┕わL(fēng)險以及管控措施
- 2025年度婚慶婚禮現(xiàn)場娛樂活動策劃合同
- 工廠內(nèi)部承包合同范本
- 黑龍江申論真題2021年(鄉(xiāng)鎮(zhèn))
- 山體排險合同模板
- 醫(yī)保專(兼)職管理人員的勞動合同(2篇)
- 特殊感染手術(shù)的配合與術(shù)后處理課件
- 檢驗科生物安全工作總結(jié)
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
- 《金屬與石材幕墻工程技術(shù)規(guī)范》jgj1332001-2021112401384
- 即時通訊系統(tǒng)建設(shè)方案
- 2024年山東省聊城市東昌府區(qū)小升初英語試卷
- 《堅毅:釋放激情與堅持的力量》隨筆
- 區(qū)塊鏈應(yīng)用操作員技能大賽考試題庫大全-下(多選、判斷題)
評論
0/150
提交評論