Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
第一部分 學習內容 一、需求工程概述 1. 定義 需求工程是需求的供需雙方采取被證明行之有效的原理、方法,通過使用適當的工具和符號體系,全面地描述用戶待開發(fā)系統(tǒng)的行為特征、約束條件的過程; 2. 開發(fā)人員 系統(tǒng)分析師起到橋梁工程師的作用,負責完成用戶“業(yè)務世界”邏輯向由軟硬件組成的“電腦世界”邏輯的獲取和轉換過程; 3. 需求工程 三個階段:需求獲取、需求生成、需求驗證;需求獲取:歸納和整理用戶提出的各種問題和需求;需求生成:描述問題和需求;需求驗證:對需求的產品階段質量進行檢驗的過程; 4. 其他要求 軟件需求的層次性:業(yè)務需求,用戶需求,功能需求;業(yè)務需求:反映了用戶對系統(tǒng)和產品高層次的目標要求,他們是用戶組織機構流程的在線和模擬,是從用戶組織機構工作流程的角度進行的需求描述;用戶需求:描述了用戶使用產品必須要完成的任務,一般通過用例或方案腳本予以說明;功能需求:定義了開發(fā)人員必須要實現的軟件功能,從而使得用戶能完成任務,滿足其業(yè)務需求; 二、需求分析工具概述 1. 分類 從自動化程度分為以人工方式為主和以自動方式為主的需求分析工具;從支持分析設計技術角度分支持傳統(tǒng)的結構化方法的需求分析工具、面向對象分析的需求分析CASE工具、原型化分析的需求分析工具、基于其他方法的分析工具;根據需求工具和客戶的業(yè)務領域關系,可以分為很多類; 2. 需求分析工具的功能特性和衡量標準 特性:
1??針對結構化方法:多種分析和設計方法、支持DFD、一致性檢查;
2??針對面向對象方法:支持典型的多種面向對象方法、支持類定義和類關系描述、支持對象復用、支持對象交互描述、一致性檢查;
3??一些共性:支持業(yè)務方向工程、支持版本控制、腳本支持、支持生成需求分析規(guī)格說明書、支持擴展標記語言、支持多種文件格式的導出和導入; 3. 衡量一個需求分析CASE工具功能強弱的主要依據 所支持的需求分析方法的類型與數量的多少;使用方便程度;與設計工具銜接的程度;所占資源,即系統(tǒng)開銷的多少以及對硬件環(huán)境的需求程度;是否提供需求錯誤檢測機制;用戶領域知識提示功能。 4. 需求分析CASE工具的選擇:遵循因地制宜的原則; 三、需求分析方法與需求分析工具 1. 軟件需求分析的方法與工具 方法:自頂向下和自底向上;自頂向下的分析方法(SA):從最上層的系統(tǒng)組織機構入手,采用逐層分解的方式分析系統(tǒng),用數據流圖(DFD)和數據字典(DD)描述系統(tǒng),處理過程的處理邏輯常常借助判定表或判定樹來描述,數據則是借助數據字典來描述;
1??數據流圖:命名的箭頭表示數據流、用圓圈表示處理、用矩形或其他形狀表示存儲;
2??數據字典:數據項是數據的最小單位、數據結構是數據項有意義的集合、數據流表示某一處理過程中數據再系統(tǒng)內傳輸的路徑、數據存儲處理過程中數據的存放場所、處理過程的處理邏輯通常用判定表或判定樹來描述;常用的需求分析圖形工具:UML、DFD、DD、判定樹、判定表、結構化高級分析語言、HC、IPO、Warnier圖、SADT、SREM、PSL/PSA; 2. 典型方法 結構化方法:歷史悠久,比較成熟;面向對象編程技術:時間不是很長,比較成熟;產品線方法:關注點轉移; 四、軟件設計概述 1. 軟件設計的概念 應用各種技術和原理對一個設備、一個過程或者一個系統(tǒng)做出足夠詳細的規(guī)定,使之能夠再物理上得以實現;把軟件需求轉化為軟件表示的過程;運用一些基本的設計概念和各種有效的方法和技術,把軟件需求分析轉化為軟件表示,使系統(tǒng)能在機器上實現。重要性:
1??軟件設計階段占據軟件項目開發(fā)總成本的絕大部分,是在軟件開發(fā)過程中形成質量的關鍵環(huán)節(jié);
2??軟件設計是開發(fā)階段最重要的步驟,是將需求準確地轉化為完整的軟件產品或系統(tǒng)的唯一途徑;
3??軟件設計做出的決策,最終影響軟件實現的成敗;
4??設計是軟件工程和軟件維護的基礎;要求:
1??必須實現分析模型中所涉及的所有顯示需求,必須與用戶希望的所有隱藏需求相適應;
2??對編程、測試、維護人員必須是可讀、可理解的;
3??應給出相關數據、功能及其行為相關的軟件全貌;從技術觀點來看,軟件設計包括軟件結構設計、數據設計接口設計、過程設計 2. 軟件設計的基本原理 分解與抽象:控制軟件復雜性的基本手段是分解,把事實本質的共性提取出來而不考慮其他細節(jié)是抽象;模塊化:指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分為若干個模塊的過程;模塊:把一個待開發(fā)的軟件分解成若干小的簡單的部分;模塊分解的標準評價設計方法:
1??模塊的可分解性;
2??模塊的可組裝性;
3??模塊的可理解性;
4??模塊連續(xù)性;
5??模塊保護性;信息隱蔽:在一個模塊內包含的信息,對于不需要這些信息的其他模塊來說是不能訪問的;模塊的獨立性:指每個模塊只完成系統(tǒng)要求的獨立的子系統(tǒng),并且與其他模塊的聯系最少且接口簡單;模塊的獨立性度量標準:耦合性、內聚性;內聚性:一個模塊內部的各個元素間彼此結合的緊密程度的度量;
1??偶然內聚:指一個模塊內的各處理元素之間沒有任何聯系;
2??邏輯內聚:指模塊內執(zhí)行幾個邏輯上相關的功能,通過參數確定該模塊完成哪一個功能;
3??時間內聚:把需要同時或順序執(zhí)行的動作組合成一起形成的模塊;
4??過程內聚:必須以特定次序執(zhí)行的;
5??通信內聚:模塊內所有處理功能都通過使用公用數據而發(fā)生關系;
6??順序內聚:處理按順序執(zhí)行;
7??功能內聚:所有元素共同完成一個功能;耦合性:模塊間互相連接的緊密程度的度量;
1??內容耦合:直接訪問另一模塊內容;
2??公共耦合:訪問同一全局數據結構;
3??外部耦合:訪問同一全局簡單變量;
4??控制耦合:一個模塊控制另一個模塊;
5??標記耦合:兩模塊間通過數據結構交換信息;
6??數據耦合:兩模塊間通過數據參數交換信息;
7??非直接耦合:模塊間沒有關系,通過主模塊調用; 3. 軟件設計過程和模型 過程:需求規(guī)格說明包括信息、功能、行為、其他描述作為設計的輸入,設計輸出結果是數據、體系結構、接口、過程設計;模型:由接口設計、過程設計、數據設計、體系結構設計構成; 五、結構化設計方法與工具 1. 概述 采用最佳的可能的方法設計系統(tǒng)的各個組成部分以及各成分之間的內部聯系的技術;基本思想:將軟件設計成由相對獨立、單一化的功能的模塊組成的結構;步驟
1??評審和細化數據流圖;
2??確定數據流圖的類型;
3??把數據流圖映射到軟件模塊結構,設計出模塊結構的上層;
4??基于數據流圖逐步分解高層模塊,設計中下層模塊;
5??對模塊結構進行優(yōu)化,得到更為合理的軟件結構;
6??描述模塊接口。設計原則
1??使每個模塊執(zhí)行一個功能;
2??每個模塊用過程語句調用其他模塊;
3??模塊間傳送參數作數據用;
4??模塊間共用的信息盡量少。 2. 結構化設計方法的基本概念 是基于模塊化、自頂向下細化、結構化程序設計等程序設計基礎發(fā)展起來的;基本思想:將軟件設計由相對獨立且具有單一功能的模塊組成的結構,分為概要設計和詳細設計兩個階段;概要設計階段描述工具是結構圖;概要設計:把系統(tǒng)的功能需求分配給軟件結構,形成軟件的模塊結構圖; 3. 概要設計工具——結構圖 作用:反映系統(tǒng)的功能實現以及模塊與模塊之間的聯系與通信,即反映了系統(tǒng)的總體結構;基本組成成分:模塊、數據、調用;基本術語:
1??深度:模塊結構的層次數;
2??寬度:同一層模塊的最大模塊數;
3??扇入:一個模塊直接調用的其他模塊數目;
4??扇出:調用一個給定模塊的模塊個數;好的軟件結構:頂層扇出比較多,中層扇出較少,底層扇出較多; 4. 概要設計任務的實現——數據流圖到結構圖的變換 典型的信息流類型分為變化型和事物型; 5. 詳細設計及工具 目的:為軟件結構圖中的每一個模塊確定采用的算法,模塊內數據結構用某種選定的表達工具給出清晰的描述;工具種類:圖形工具、表格工具、語言工具;工具:流程圖(PFD),盒圖(N-S圖)、問題分析圖(PAD)、過程設計語言(PDL) 六、典型需求分析與設計工具 1. BPwin簡介 提供功能建模、數據流建模、工作流建模;將與建立過程模型有關的任務自動化;為復雜項目的項目分析小組成員提供統(tǒng)一的分析環(huán)境;可與模型管理工具集成使用;可與建模工具ERin集成使用;符合美國政府FIPS和IEEE標準;易于使用,支持Unicode; 2. Power 簡介 使用它可以方便地對管理信息系統(tǒng)進行分析設計,它幾乎包括了數據庫模型設計的全過程。四種模型文件:
1??概念數據模型CDM:表現數據庫的全部邏輯結構,與任何軟件或數據儲藏結構無關;
2??物理數據模型PDM:敘述數據庫的物理實現;
3??面向對象模型OOM:一個OOM包括一系列包、類、接口和他們的關系;
4??業(yè)務程序模型BPM:描述業(yè)務的各種不同內在任務和內在流程,而且客戶如何以這些任務和流程互相影響; 第二部分 練習 一、名稱解釋 1. 需求工程
答:需求的供需雙方采取被證明行之有效的原理、方法,通過適當的工具和符合體系,正確、全面地描述用戶待開發(fā)系統(tǒng)的行為特征、約束條件的過程;
2. SA方法
答:即自頂向下的分析方法,從最上層的系統(tǒng)組織機構入手,采用逐層分解的方式分析系統(tǒng),用數據流圖和數據字典描述系統(tǒng);
3. 軟件設計
答:即運用一些基本的設計概念和各種有效的方法和技術,把軟件需求分析轉化為軟件表示,使系統(tǒng)能在機器上實現。傳統(tǒng)軟件設計可以分成系統(tǒng)的總體設計和過程設計;
4. 模塊化
答:解決一個復雜問題使自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程;
5. 信息隱蔽
答:指在一個模塊看內包含的信息,對于不需要這些信息的其他模塊來說是不能訪問的;
6. 模塊獨立性
答:指每個模塊只完成系統(tǒng)要求的獨立的子系統(tǒng),并且與其他模塊的聯系最少且及接口簡單;
二、簡答 1. 需求工程包括哪些階段?
答:需求獲取、需求生成、需求驗證;
2. 如何理解軟件需求?
答:具有不同的層次性,即業(yè)務需求、用戶需求、功能需求;
業(yè)務需求:反映了用戶對系統(tǒng)和產品的高層次的目標要求,他們是用戶組織機構流程的再現和模擬,是從用戶組織機構工作流程角度進行的需求描述;用戶需求:描述了用戶使用產品必須要完成的任務,一般通過用例或方案腳本予以說明,它是從系統(tǒng)使用角度對待開發(fā)系統(tǒng)進行的需求描述;功能需求:定義了開發(fā)人員必須實現的軟件功能,從而使得用戶能完成任務,滿足其業(yè)務需求; 3. 如何定位軟件設計的重要性?
答:
軟件開發(fā)階段占據軟件項目開發(fā)總成本絕大部分,是在軟件開發(fā)中形成質量的關鍵環(huán)節(jié);軟件設計是開發(fā)階段最重要的步驟,是將需求準確的轉化為完整的軟件產品或系統(tǒng)的唯一途徑;軟件設計作出決策,最終影響軟件實現的成敗;設計是軟件工程和軟件維護的基礎; 4. 評價模塊分解設計方法有哪些標準?
答:模塊可分解性、模塊可組裝性、模塊的可理解性、模塊連續(xù)性、模塊保護性;
5. 結構化設計的基本思想是什么?
答:將軟件設計成由相對獨立、單一化功能的模塊組成的結構,軟件結構設計的一個目標就是得出一個系統(tǒng)化的程序結構;
三、分析題 1. 如何衡量一個需求分析CASE工具功能的強弱?
答:
所支持的需求分析方法的類型與數量多少;使用的方便程度;與設計工具銜接的程度;所占資源,即系統(tǒng)開銷的多少硬件環(huán)境的需求程度;是否提供需求錯誤檢測機制;用戶領域知識提示功能; 2. 請簡單分析軟件設計過程?
答:軟件設計的任務是把分析階段產生的軟件需求規(guī)格說明書轉換為適當手段表示的軟件設計文檔;設計過程由接口設計、過程設計、數據庫設計和體系結構設計這四個字過程構成:
接口設計描述了軟件內部、軟件與協作系統(tǒng)、軟件與使用者之間的通信方式;過程設計將軟件體系結構的結構性元素變換成為對軟件構建的過程性描述;數據設計師將系統(tǒng)分析創(chuàng)建的信息與模型變換成軟件所需的數據結構;體系結構設計定義了軟件的主要結構元素,也就是建立基于計算機的系統(tǒng)的架構,包括系統(tǒng)主要組件以及通信的識別
*請認真填寫需求信息,我們會在24小時內與您取得聯系。