當前位置:法律諮詢服務網 - 法律諮詢 - 軟件工程:需求分析和軟件設計(5)

軟件工程:需求分析和軟件設計(5)

需求工程是建設管理信息系統的第壹步,是調查客戶的現狀和需求,按照工程化的方法和標準完整、準確地記錄和分析客戶的需求。其結果是後續設計項目的基礎。

1.定義

需求工程是指采用工程方法和標準,收集、記錄和分析客戶對信息化的需求,最終確定系統需要實現的功能以及功能的相關特性和約束條件。需求工程包括三個主要部分:需求調查、需求分析和需求管理。

註意:關於需求管理

需求管理是需求工程中非常重要的內容,包括需求跟蹤、控制、變更和版本管理。是保證系統內容、質量和進度的重要手段,需求管理的內容更側重於軟件過程管理。

第二步:功能

需求工程的作用可以用壹句話來概括:收集客戶想做什麽,最後確定做什麽。

對於壹個應用軟件的開發來說,需求工程結果的質量極大地影響著這個軟件的設計結果,是決定成敗的主要環節。完整地獲取、記錄、分析和確認來自客戶的需求,並將其正確地傳遞給後續項目,是壹個需求分析師的必備能力。需求工程分析結果形成的需求規格說明書不僅是後續設計和開發的基礎,也是客戶評價和接受系統的依據。

另壹方面,需求工程的內容也極大地影響著軟件開發的成本、技術、周期、資源、質量和最終用戶的滿意度。需求工程的結果不僅會影響客戶的最終結果,還會影響軟件開發人員的最終利益。

需求工程的核心工作是需求調查和需求分析,最後主要有兩個可交付成果。

1)需求調研結果(需求調研數據匯總)

通過面對面調查從客戶現場收集的第壹手需求數據,包括以圖形、文字、表格等方式記錄的原始數據,形成需求調研數據匯總。

2)需求分析結果(需求規格)

基於以上調研數據,我們確定最終需要開發的所有內容,通過客戶確認,最終形成需求說明書,這是後續設計開發流程的基礎。

1.需求的收集和確認

從客戶不明確的原始需求到代碼開發,對收斂貢獻最大的部分是②需求工程,而比較容易標準化和規範化的部分是③ ~ ⑤。②梳理①的繁雜內容,形成清晰的需求規格。③將②的結果進壹步提煉轉化為架構、功能、數據的設計結果。④進壹步提取③的結果,轉化為構件和機構。⑤將⑤的結果以編碼的形式開發到最終的軟件中。

從圖形的推進和變化可以看出,需求工程②負責整理原始需求①的內容,形成清晰可辨的需求規格說明;而③ ~ ⑤壹系列的工作,越往後的部分,越簡單的復雜,要做的事情越收斂。(2)需求工程是先行者,承擔著最雜、最亂、最累的工作,在客戶最初的需求到編碼的五個步驟中起到最大的收斂作用。②某些圖形的收斂度(梯形的梯度)越大,以後設計開發中的圖形就越接近直角矩形,工作就越順利。否則,當② ~ ⑤都是梯度較大的梯形時,說明需求工程不到位,在後續的設計開發中,會發現前面的需求存在問題,造成返工。

註:關於“趨同”的含義

銜接是指將復雜的原始需求整合到標準化操作中的過程。標準化的工作內容不受需求的影響,無論需求是否復雜,其內容都是固定的。

2.需求,不全來自客戶調研。

建設信息系統的所有需求都是從客戶那裏獲得的嗎?這個問題反映了完成的系統中有多少內容是由軟件工程師提出的(包括咨詢、需求、設計、開發、實現等。).這些提案通常包含更高級的需求和更多的附加值,並且有多個需求來源。

1)基本要求

基本需求來自於對客戶的“調查”。這類需求主要是功能性需求,基本上是根據客戶意願設計開發的,大部分內容是在需求調查和需求分析階段確定的。

2)中間需求

中間需求不是客戶直接提出的功能性需求,而是在需求分析階段和業務設計階段,對客戶提出的業務需求進行改造、優化、補缺、升級過程中產生的需求,即為了改進業務而產生的需求。

3)高級要求

高級需求主要來自軟件工程師根據客戶的目標需求,新的設計理念,新的技術等。也就是說,高級需求是軟件工程師設計的需求,例如,“找人設計流程(架構)”、“根據任務設計組件(功能)”和“數據復用(數據)”。“設計需求”要求軟件工程師具備足夠的知識和能力。

上述三種需求來源的獲取難度順序為高級需求>中級需求>基本需求。

軟件工程師要認識到,需求工程(調查分析)完成了,不是所有的需求獲取工作都完成了,而是客戶直接提出的需求完成了,通過設計工程的需求挖掘還沒有開始。

註意:高級需求會影響開發成本。這裏只考慮如何發掘有價值的需求,不考慮新需求帶來的開發成本。

需求通常分為兩類,即功能性需求和非功能性需求。

功能需求是系統必須提供的業務處理功能,也是軟件需求的主體。通常,需求前面沒有形容詞時,指的是功能性需求。

獲取的需求可以分為三類,它們之間存在轉換關系,按照轉換的順序可以分為目標需求、業務需求和功能需求。

目標需求:客戶提出的信息化的目標、理念、希望和價值。

業務需求:客戶提出的系統應該與業務的內容、流程和規則相對應。

功能需求:確定系統為處理業務需求必須提供的功能以及功能的具體描述。

非功能性需求是指建立壹些指標條件來判斷系統的運行情況,而不是某個業務流程的具體功能性需求。它們用於判斷運行的系統是否滿足以下條件:安全性、可靠性、互操作性、健壯性、易用性、可維護性、可移植性、可重用性、可擴展性等等。

售前咨詢的結果包含了很多需求分析和業務設計的重要輸入,尤其是很多“目標需求”,對後續信息系統的整體規劃和頂層設計有著非常重要的影響。

1.售前咨詢的內容

在進入設計工程階段之前,所有與客戶的溝通和交流的目的都是為了獲取需求。尤其是大型項目,簽約前通常會有壹個售前咨詢階段。在這個階段,壹般的軟件公司都會派出有經驗的顧問(如專家顧問)與客戶進行溝通,探討可以根據客戶需求提供哪些解決方案。這壹階段的協商有以下特點。

●合同還沒簽,具體信息系統做什麽還沒確定。合同能否簽訂取決於協商的結果。

●此時客戶方的參與者多為企業高層,如運營人員、高級管理人員、信息主管等。

●客戶的需求多是目標需求、業務需求甚至痛點,很少談功能需求。

●需求會涉及到企業的發展戰略、存在的主要問題以及公司對信息化的期望。

●溝通中談的內容可能比較抽象,需求多是隱性的。能否成為真正的需求,需要咨詢師的引導、甄別和確認。售前咨詢通常會談到相對高端的需求,這些需求是後續需求分析中“目標需求”的主要來源,是企業管理者對信息系統的價值期望(雖然可能會以隱晦的方式提出)。在後續所謂的“需求調研”階段,可能往往沒有機會直接聽取企業高管的需求,所以這部分內容要作為非常重要的需求記錄下來,作為後續需求分析的重要參考資料。

2.售前咨詢和需求工程

售前咨詢的方式非常依賴於咨詢者的個人能力和魅力,沒有專門的規範和標準的可交付物和模板,所以咨詢工作並沒有明確包含在需求工程中(不同的軟件廠商可能有不同的劃分方法),兩者側重點不同。

(1)售前咨詢:重點是通過售前咨詢活動提出解決方案,協助銷售部門簽訂合同。

(2)需求工程:重點是進入客戶現場,對確認的合同內容進行詳細調查。雖然咨詢的主要目的是為了方便合同的簽訂,但是咨詢階段收集的信息是需求工程分析非常重要的對象,尤其是“目標需求”。

3.顧問的作用

(1)咨詢師代表了軟件企業的最高專業水平,他應該是軟件廠商的名片。

(2)顧問是全面闡述軟件廠商想法和觀點的布道者。

(3)顧問的起點高,整個項目的起點高,總價值也會高(對軟件廠商和客戶都是如此)。

(4)顧問應該能夠利用保留的知識和經驗,充當客戶決策者的顧問和參謀。

(5)顧問的工作重點是與客戶項目的決策者溝通,獲取客戶的目標、期望等目標需求。

4.顧問的能力要求

對於壹個從事售前咨詢的專家顧問來說,對他的要求是比較高的,主要表現在以下幾個方面(不限於此)。

1)溝通能力溝通的對象是客戶的決策層,生產、財務等中層管理人員,對能力的要求較高。舉個例子,

●理解:能否理解高層會談的主旨和隱藏的需求?

●演示:能否充分展示軟件公司的服務能力和產品能力?

●說服:能否說服客戶,比如導入系統後,在組織或管理體系上做相應的改變?等壹下。

2)專業能力對於壹個咨詢師來說,對其專業能力的要求是全面的。

●妳掌握了行業咨詢的基本知識嗎?

●妳是否熟悉客戶的主營業務和輔助業務知識?

●是否基本了解軟件行業的最新技術、匹配案例和解決方案。

需求工程的工程分解分為兩個階段,即需求調查階段和需求分析階段。

需求調研階段主要有兩項工作:需求調研和數據收集。

(1)需求調查:通過問卷、狀態圖、訪談記錄、現有表格等方式收集客戶需求。

(2)數據匯總:匯總調查過程中收集的數據,形成需求調查數據匯總,在需求分析階段作為分析依據。

需求分析階段主要有兩個任務:需求分析和數據匯總。

(1)需求分析:根據需求調研數據分析客戶的需求,最終確認系統需要實現的功能。

(2)數據匯總:匯總分析結果的數據,形成需求規格,作為後續設計階段的輸入。

1.需求調查

目的主要是收集和記錄客戶對信息化的需求,重點是“記錄”內容,而不是“分析”或“設計”,避免在需求研究階段因為分析和設計融入了需求分析師的個人意見而必須保持數據的“原始性”(需求模板用於規範和格式化記錄的內容)。

2.需求分析

基於對需求調研數據的理解,對其進行提取、分類和梳理。同時,根據分析,將研究中的斷點以更規範的方式完成和表達。重要的是,需求分析師通過對目標需求、業務需求等高端需求的分析,加入了個人對企業信息化推進的理解和有價值的意見,因此需求分析的結果會與原始記錄有所不同。需求分析師的理解代表了軟件開發團隊的理解,並以此為據。

因此,需求分析師的能力最終會影響信息系統的內容、技術、成本和周期。

3.他們之間的關系

兩者都是用非技術設計術語描述,而需求調查用“客戶術語”記錄,需求分析用“業務設計術語”表達。兩者在工作目的上是有區別的,比如需求分析做出的業務流程圖必須具有業務的完整性,符合業務流程的標準表達;需求調研收集的業務流程圖,可能是壹個碎片化、不連續的日常賬目。需求分析提取需求實體的內容並進行分類,建立需求系統表;這種整理在需求調研階段是不需要的,只需要原始的收集和記錄(原始狀態要保留)。需求分析的結果有兩個作用:向前端客戶確認,向後端輸出設計依據;需求調研的結果只是為需求分析提供信息。兩者最大的區別如下。

(1)需求調查:重點是原始需求的收集和記錄。

(2)需求分析:側重於整體的了解、收集和確認,需求分析不是需求調研的重復。

需求工程階段完成的數據對後續設計階段的影響

(1)需求調查:收集整理客戶的原始需求。

(2)需求分析:研究數據僅供需求分析,不能由設計院直接引用(供參考)。

(3)概要設計:需要完整覆蓋需求分析的結果,並給出方案。

(4)詳細設計:詳細設計原則上是針對概要設計的結果。

(5)應用設計:針對需求分析中的應用需求,給出了系統實現的方法。

(6)技術設計:響應需求分析結果中的非功能需求和技術需求。

(7)和(8)開發-測試:需求分析的結果不能作為開發和測試的依據(供參考)。

(x)系統驗收:客戶對系統的最終驗收是基於需求規格。?

需求調研不是按照工作的順序或者調研內容之間的關系來進行的,所以沒有嚴格的工作細分,它是按照需求表達形式的不同來劃分的,可以分為三種。

(1)圖形類:包括表達客戶當前業務情況的圖形、界面表達的需求等。

(2)文字:通過問卷和訪談記錄收集到的用文字表達的需求。

(3)表格類:客戶提供的實際報告和文件形式的要求。

這三類數據之間沒有必然的關聯或順序,可以同時采集。

梳理需求調研的結果,非功能性需求都是功能性需求,按照功能性需求的定義可以分為目標性需求、業務性需求和功能性需求,目標性需求→業務性需求→功能性需求之間存在轉換關系。嚴格來說,它們不是三類需求,而是三個層次的需求,最後只有成為第三層的功能需求才能在系統中實現。分析階段的工作分解按以下順序確定。

(1)第壹層次工作:目標需求分析,轉換為業務需求。

(2)第二層次的工作:業務需求分析,轉換為功能需求。

(3)第三層次工作:功能需求的分析和確定。

建立相應的需求體系。沒有這個需求體系,我們可以用親身經歷來解決客戶的問題。有了這個系統,我們可以用集體的經驗和智慧來解決客戶的問題。這裏的需求體系主要是指“業務需求”的建立。

建立需求體系可以帶來很多價值。讓我們舉幾個例子。

1.系統知識積累

(1)研究和實踐的成果是可以有序積累的,包括理念、方法、標準和規範。

(2)客戶價值積累,包括:不同的業務領域、行業、板塊、系統、模塊、功能等。

2.商業規模的需要

(1)提升軟件企業價值可以為客戶提供系統化的解決方案。

(2)提煉、規劃、建立新的商業模式,快速響應客戶需求。

3.降低成本,提高效率

(1)積累的知識可以得到有效的重用和享受,降低成本。

(2)可以大大縮短開發周期,有助於減少“需求扭曲”現象。

4.規避風險的主要措施

(1)規避風險最好的方法就是讓大家提前知道該怎麽做,這在系統支持下是可以做到的。

(2)人的能力不足,調查分析時間短,可以用知識庫解決。

作為需求分析師,快速培養人才的捷徑是要求具備很多能力,比如“業務能力”、“溝通能力”、“抽象能力”、“表達能力”,但這太抽象,太難理解,不是壹天建成的。建立壹個能為大多數人提供直接參考和* * *享受的知識庫,可以讓有需要的人“有條不紊地跟隨”。它就像壹個讓大家提供經驗、分享知識的“商業平臺”,由大家共同維護。

需求工程可以說是每個從事軟件行業的人的基礎知識。因為它的核心內容是:

(1)如何與他人溝通,如何快速理解他人的想法,如何向他人傳達想法等。

(2)對於壹個復雜陌生的研究對象,如何快速找到突破點?

(3)如何用簡單的語言、圖形或表格表達壹個不清楚的物體?

(4)如何將客戶術語(知識和經驗)表達的需求轉化為業務設計術語?等壹下。

?管理信息系統的需求數量和需求附加值取決於客戶的信息化目的和需求分析師的能力。需求分析師的職位通常夾在前面的“顧問”和後面的“業務設計師”之間。當軟件企業擁有這兩個職位或者項目配備了這兩個職位,需求分析師自身能力對項目的影響就可以得到壹定程度的控制。如果軟件企業沒有其他兩個崗位或者這個項目中沒有配置這兩個崗位,那麽需求分析師就決定了這個項目的最高級別(企業管理項目的最高級別通常由業務設計人員決定),所以他必須掌握壹定的咨詢和業務設計知識。

需求工程,以設計輸入為需求標準。

需求工程不僅是壹門“知識”,也是壹門可以定性和定量實施的“技術”。它有模板、流程和標準。更重要的是,它與後續的設計有著嚴格的傳承關系。因為以設計的範圍、內容和格式作為需求工程的輸出標準,所以需求工程的內容非常具體和規範,可以作為“技術性”的需求工程。基於設計輸入的工程標準的建立可以提高設計質量、產品質量和工作效率。

  • 上一篇:采購人員誠信承諾書
  • 下一篇:店外經營處罰依據條款
  • copyright 2024法律諮詢服務網