软件工程导论——第三章——需求分析
軟件工程導論——第三章——需求分析
文章目錄
- 軟件工程導論——第三章——需求分析
- 1、需求分析的相關(guān)概念
- (1)定義:
- (2)必要性:
- (3)準則:
- 2、需求分析的任務
- 1、確定系統(tǒng)的綜合要求
- 2、分析系統(tǒng)的數(shù)據(jù)要求
- 3、導出系統(tǒng)的邏輯模型
- 4、修正系統(tǒng)開發(fā)計劃
- 3、與用戶溝通獲取需求的方法
- (1)訪談
- (2)面向數(shù)據(jù)流自頂向下求精
- (3)簡易的應用規(guī)格說明技術(shù)
- (4)快速建立軟件
- 4、分析建模與規(guī)格說明
- 1、分析建模
- 2、軟件需求規(guī)格說明
- 5、實體-聯(lián)系圖
- 1、數(shù)據(jù)模型 的定義
- 2、數(shù)據(jù)模型的構(gòu)成
- (1)數(shù)據(jù)對象
- (2)屬性
- (3)聯(lián)系
- 3、實體——聯(lián)系圖的符號
- 6、數(shù)據(jù)規(guī)范化
- 1、必要性:
- 2、范式特點:
- 3、各范式的定義:
- 7、狀態(tài)轉(zhuǎn)換圖
- 1、定義
- 2、狀態(tài)
- 3、事件
- 4、狀態(tài)圖的符號
- 8、層次方框圖
- 9、驗證軟件需求
- 1、驗證軟件需求的正確性
- 2、用于需求分析的軟件工具
- 10、為什么要進行需求分析?通常對軟件系統(tǒng)有哪些需求?
1、需求分析的相關(guān)概念
(1)定義:
需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題,即對目標系統(tǒng)提出完整、準確、清晰、具體的要求。在需求分析階段結(jié)束之前,系統(tǒng)分析員應該寫出軟件需求規(guī)格說明書,以書面形式準確地描述軟件需求。
(2)必要性:
為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,首先必須要知道用戶的需求。對軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提,不了人們把設計和編碼工作做的多么出色,不能真正滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱。
(3)準則:
2、需求分析的任務
1、確定系統(tǒng)的綜合要求
2、分析系統(tǒng)的數(shù)據(jù)要求
(1)意義:任何一個軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌。因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個重要任務。
(2)工具:分析系統(tǒng)的數(shù)據(jù)要求通常采用建立數(shù)據(jù)模型的方法。復雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系。利用數(shù)據(jù)字典可以全面準確的定義數(shù)據(jù),但是數(shù)據(jù)字典的缺點是不夠直觀形象,
(3)規(guī)范:軟件系統(tǒng)經(jīng)常使用各種長期保存的信息,為了減少數(shù)據(jù)冗余,避免出現(xiàn)插入異常和刪除異常,簡化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。
3、導出系統(tǒng)的邏輯模型
4、修正系統(tǒng)開發(fā)計劃
3、與用戶溝通獲取需求的方法
(1)訪談
基本形式:
- 正式訪談:系統(tǒng)分析員將提出事先準備好的具體問題
- 非正式訪談:分析員將提出一些用戶可以自由回答的開放性問題,鼓勵被訪問任意說出自己的想法
技術(shù)方法:
- 調(diào)查表技術(shù)
- 情景分析技術(shù):
- 概念:
- 情景分析是對用戶將來使用目標系統(tǒng)解決某個問題的方法和結(jié)果進行分析。系統(tǒng)分析員利用情景分析技術(shù),往往能夠獲取用戶的具體需求
- 作用:
- 第一,能在某種程度上演示目標系統(tǒng)的行為,從而便于用戶理解,還可能進一步揭示出一些分析員目前還不知道的需求
- 第二,使用這種技術(shù)能保證用戶在需求分析過程中始終扮演一個積極主動的角色。
- 概念:
(2)面向數(shù)據(jù)流自頂向下求精
定義:
結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流自頂向下逐步求精進行需求分析的方法。通過可行性研究已經(jīng)得出了目標系統(tǒng)的高層數(shù)據(jù)流圖,需求分析的目標之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。
(3)簡易的應用規(guī)格說明技術(shù)
(1)定義:簡易的應用規(guī)格說明技術(shù)是一種面向團隊的需求收集法。這種方法提倡用戶與開發(fā)者密切合作,共同標識問題,提出解決方案要素,商討不同解決方案并指定基本需求。是信息系統(tǒng)領(lǐng)域使用的主流技術(shù)。
(2)優(yōu)點:
- 開發(fā)者與用戶不分彼此,齊心協(xié)力,密切合作
- 即時討論并求精,有能導出規(guī)格說明的具體步驟。
(4)快速建立軟件
(1)定義:快速原型是快速建立起來的旨在演示目標系統(tǒng)主要功能的可運行的程序。構(gòu)建原型的要點是,它應該實現(xiàn)用戶看得見的功能,省略目標系統(tǒng)的隱含功能。快速建立軟件原型是最準確、最有效、最強大的需求分析技術(shù)。
(2)特性:
快速原型的目的是盡快向用戶提供一個可在計算機上運行的目標系統(tǒng)的模型,以便使用戶和開發(fā)者在目標系統(tǒng)應該做什么,這個問題上盡可能快速的達成共識。因此,原型的某些缺陷是可以忽略的,只要這些缺陷不嚴重的損害原型的功能,不會使用戶對產(chǎn)品的行為產(chǎn)生誤解,就不必管他們。
如果原型的第一版不是用戶所需要的,就必須根據(jù)用戶的意見迅速的修改它,構(gòu)建出原型的第二版,以更好地滿足用戶需求,在實際開發(fā)軟件產(chǎn)品時,原型的“修改試用反饋”過程可能重復多變,如果修改耗時過多,勢必會厭惡軟件開發(fā)時間
(3)使用的方法和工具
- 第四代技術(shù)
- 柯重陽的軟件構(gòu)件
- 形式化規(guī)格說明和原型環(huán)境
4、分析建模與規(guī)格說明
1、分析建模
(1)模型:模型是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。模型由一組圖形符號和組織這些符號的規(guī)則組成。
(2)建模過程:
結(jié)構(gòu)化分析實質(zhì)上是一種創(chuàng)建模型的活動。為了開發(fā)出復雜的軟件系統(tǒng),系統(tǒng)分析員應該從不同角度抽象目標系統(tǒng)的特性,使用精確的表示方法構(gòu)造系統(tǒng)的模型,驗證模型是否滿足用戶對目標系統(tǒng)的需求,并在設計過程中逐漸把實現(xiàn)有關(guān)的細節(jié)加進模型中,直到最終用程序?qū)崿F(xiàn)模型
2、軟件需求規(guī)格說明
軟件需求規(guī)格說明書是需求分析階段得出的最主要的文檔。通常用自然語言完整、準確、具體地描述系統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。自然語言的規(guī)格說明具有很容易書寫、容易理解的優(yōu)點。
5、實體-聯(lián)系圖
1、數(shù)據(jù)模型 的定義
為了把用戶的數(shù)據(jù)要求清楚、準確地描述出來,通常建立一個概念性的數(shù)據(jù)模型(信息模型)。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點對數(shù)據(jù)建立的模型。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實環(huán)境,而且與在軟件系統(tǒng)中的實現(xiàn)方法無關(guān)。
2、數(shù)據(jù)模型的構(gòu)成
數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對象、數(shù)據(jù)對象的屬性及數(shù)據(jù)對象彼此間相互關(guān)聯(lián)的關(guān)系
(1)數(shù)據(jù)對象
定義:
數(shù)據(jù)對象是對軟件必須理解的復合信息的抽象。復合信息是指具有一系列不同性質(zhì)或?qū)傩缘氖挛?#xff0c;僅有單個值的事物不是數(shù)據(jù)對象。
特點:
- 可由一組屬性來定義的實體都可以被認為是數(shù)據(jù)對象
- 數(shù)據(jù)對象彼此間是有關(guān)聯(lián)的。
- 數(shù)據(jù)對象只封裝了數(shù)據(jù)而沒有對施加于數(shù)據(jù)上的操作的引用,這也是數(shù)據(jù)對象與面向?qū)ο蠓缎椭械摹邦悺被颉皩ο蟆钡娘@著區(qū)別
(2)屬性
屬性定義了數(shù)據(jù)對象的性質(zhì)。必須把一個或多個屬性定義為標識符,即當希望找到數(shù)據(jù)對象的一個實例時,用標識符屬性作為“關(guān)鍵字”。應該根據(jù)對所要解決的問題的理解,來確定特定數(shù)據(jù)對象的一組合適的屬性。
(3)聯(lián)系
數(shù)據(jù)對象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系也可能有屬性。聯(lián)系可分為以下三種類型:
3、實體——聯(lián)系圖的符號
使用實體聯(lián)系圖來建立數(shù)據(jù)模型。可以把實體─聯(lián)系圖簡稱為E—R圖,把用E—R圖描繪的數(shù)據(jù)模型稱為E—R模型。
E—R圖中包含了實體(數(shù)據(jù)對象)、關(guān)系和屬性3種基本成分,通常用矩形框代表實體,用連接相關(guān)實體的菱形框表示關(guān)系,用橢圓形或圓角矩形表示實體(或關(guān)系)的屬性,并用直線把實體(或關(guān)系)與其屬性連接起來。
6、數(shù)據(jù)規(guī)范化
1、必要性:
軟件系統(tǒng)與經(jīng)常使用各種長期保存的信息,這些信息通常以一定方式組織并存儲在數(shù)據(jù)庫或文件中,為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異常或刪除異常,簡化修改數(shù)據(jù)的過程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)范化。
2、范式特點:
①通常用“范式”定義消除數(shù)據(jù)冗余的程度。第一范式數(shù)據(jù)冗余程度最大,第五范式數(shù)據(jù)冗余程度最小。
②范式級別越高,存儲同樣數(shù)據(jù)就要分解成更多張表,“存儲自身”的過程也就越復雜。
③隨著范式級別的提高,數(shù)據(jù)的存儲結(jié)構(gòu)與基于問題域的結(jié)構(gòu)間的匹配程度也隨之下降,故在需求變化時數(shù)據(jù)的穩(wěn)定性較差。
④范式級別提高則需要訪問的表增多,因此性能將下降。一般選用第三范式都比較恰當
3、各范式的定義:
①第一范式每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內(nèi)部結(jié)構(gòu)。
②第二范式滿足第一范式條件,而且每個非關(guān)鍵字屬性都由整個關(guān)鍵字決定。
③第三范式符合第二范式的條件,每個非關(guān)鍵字屬性都僅由關(guān)鍵字決定,而且一個非關(guān)鍵字屬性不能僅僅是對另一個非關(guān)鍵字屬性的進一步描述,即一個非關(guān)鍵字屬性值不依賴于另一個非關(guān)鍵字屬性值。
7、狀態(tài)轉(zhuǎn)換圖
1、定義
狀態(tài)轉(zhuǎn)換圖(狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的時間,來表示系統(tǒng)的行為,狀態(tài)圖還提供了行為建模機制,指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動作。
2、狀態(tài)
(1)定義:
? 狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應方式。系統(tǒng)對事件的響應,既可以是做一個(或做一系列)動作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動作。
(2)分類:
狀態(tài)主要有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)可以有0個或多個。
(3)表示:
狀態(tài)圖既可以表示系統(tǒng)循環(huán)運行過程,也可以表示系統(tǒng)單程生命周期。
- 描繪循環(huán)運行過程:通常并不關(guān)心循環(huán)是怎么啟動的
- 描繪單程生命周期:需要標明初始狀態(tài)和最終狀態(tài)。
3、事件
事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或(和)從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外界事件的抽象。簡而言之,事件就是引起系統(tǒng)做動作或轉(zhuǎn)換狀態(tài)的控制信息。
4、狀態(tài)圖的符號
(1)符號的表示方法
- 初態(tài):用實心圓表示
- 終態(tài):用一對同心圓(內(nèi)圓為實心圓)表示
- 中間狀態(tài):用圓角矩形表示,可以用兩條水平橫線把它分為上中下三個部分。上面部分為狀態(tài)的名稱,這部分是必須有的;中間部分阿偉狀態(tài)變量的名字和值,下面部分是活動表。
8、層次方框圖
(1)定義:
層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形描繪數(shù)據(jù)的層次結(jié)構(gòu),樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素。
(2)特點:
隨著結(jié)構(gòu)的精細化,層次方框圖對數(shù)據(jù)結(jié)構(gòu)也描繪得越來越詳細,這種模式非常適合需求分析階段的需要。系統(tǒng)分析員從頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細節(jié)為止。
9、驗證軟件需求
1、驗證軟件需求的正確性
(1)驗證需求正確性的目的
需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ)。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成本,一旦對目標系統(tǒng)提出一組要求之后,必須嚴格驗證這些需求的正確性。
(2)進行驗證的四個方面
2、用于需求分析的軟件工具
(1)要求
為了更有效地保證軟件需求的正確性,特別是為了保證需求的一致性,需要有適當?shù)能浖ぞ咧С中枨蠓治龉ぷ鳌_@類軟件工具應該滿足下列要求。
①必須有形式化的語法(或表),因此可以用計算機自動處理使用這種語法說明的內(nèi)容。
②使用這個軟件工具能夠?qū)С鲈敿毜奈臋n。
③必須提供分析(測試)規(guī)格說明書的不一致性和冗余性的手段,并且應該能夠產(chǎn)生一組報告指明對完整性分析的結(jié)果。
④使用這個軟件工具之后,應該能夠改進通信狀況。
10、為什么要進行需求分析?通常對軟件系統(tǒng)有哪些需求?
需求分析的原因:
為了開發(fā)真正滿足用戶需求的軟件產(chǎn)品,需求分析是軟件開發(fā)工作獲得成功的前提條件,不能滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱。
對軟件系統(tǒng)的需求:
功能需求、性能需求、可靠性和可用性需求、出錯處理、接口需求、約束、逆向需求、將來可能提出的要求。
總結(jié)
以上是生活随笔為你收集整理的软件工程导论——第三章——需求分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息论的基本概念(自信息,条件熵,联合熵
- 下一篇: 数据仓库与数据挖掘归纳汇总