需求分析過程是什麼?
簡述為什麼要進行需求分析?需求分析的內容和主要步驟
數據庫需求分析階段的主要任務:對現實世界要處理的對象(組織、部門、企業)等進行詳細的調查,通過對原系統的瞭解,手機支持新系統的基礎數據並對其進行處理,在此基礎上確定新系統的功能。
系統分析報告的主要內容:1.系統概況,系統的目標、範圍、背景、歷史和現狀;2.系統的原理和技術,對原系統的改善;3.系統總體結構域子系統結構說明;4.系統功能說明;5.數據處理概要、工程體制和設計階段劃分;6.系統方案及技術、經濟、功能和操作上的可行性。
軟件需求分析的過程
軟件需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設計的限制和軟件同其它系統元素的接口細節,定義軟件的其它有效性需求。進行需求分析時,應注意一切信息與需求都是站在用戶的角度上。儘量避免分析員的主觀想象,並儘量將分析進度提交給用戶。在不進行直接指導的前提下,讓用戶進行檢查與評價。從而達到需求分析的準確性。分析員通過需求分析,逐步細化對軟件的要求,描述軟件要處理的數據域,並給軟件開發提供一種可轉化為數據設計、結構設計和過程設計的數據和功能表示。在軟件完成後,制定的軟件規格說明還要為評價軟件質量提供依據。
需求分析的詳細分析
從廣義上理解:需求分析包括需求的獲取、分析、規格說明、變更、驗證、管理的一系列需求工程。狹義上理解需求分析指需求的分析、定義過程。 需求分析就是分析軟件用戶的需求是什麼。如果投入大量的人力,物力、財力、時間,開發出的軟件卻沒人要,那所有的投入都是徒勞。如果費了很大的精力,開發一個軟件,最後卻不滿足用戶的要求,從而要重新開發過,這種返工是讓人痛心疾首的(相信大家都有體會)。比如:用戶需要一個for linux的軟件,而你在軟件開發前期忽略了軟件的運行環境,忘了向用戶詢問這個問題,而想當然的認為是開發for windows的軟件。當你千辛萬苦地開發完成向用戶提交時才發現出了問題,那時候你是欲哭無淚了,恨不得找塊豆腐一頭撞死。需求分析之所以重要,就因為他具有決策性、方向性、策略性的作用,他在軟件開發的過程中具有舉足輕重的地位,大家一定要對需求分析具有足夠的重視。在一個大型軟件系統的開發中,他的作用要遠遠大於程序設計。 需求分析階段的工作,可以分為四個方面:問題識別、分析與綜合、制訂規格說明、評審。問題識別:就是從系統角度來理解軟件,確定對所開發系統的綜合要求,並提出這些需求的實現條件,以及需求應該達到的標準。這些需求包括:功能需求(做什麼)、性能需求(要達到什麼指標)、環境需求(如機型、操作系統等)、可靠性需求(不發生故障的概率)、安全保密需求、用戶界面需求、資源使用需求(軟件運行是所需的內存、CPU等)、軟件成本消耗與開發進度需求、預先估計以後系統可能達到的目標。分析與綜合: 逐步細化所有的軟件功能,找出系統各元素間的聯繫,接口特性和設計上的限制,分析他們是否滿足需求,剔除不合理部分,增加需要部分。最後綜合成系統的解決方案,給出要開發的系統的詳細邏輯模型(做什麼的模型)。制訂規格說明書: 即編制文檔,描述需求的文檔稱為軟件需求規格說明書。請注意,需求分析階段的成果是需求規格說明書,向下一階段提交。評審: 對功能的正確性,完整性和清晰性,以及其它需求給予評價。評審通過才可進行下一階段的工作,否則重新進行需求分析。 需求分析的方法有很多,這裡只強調原型化方法,其它的方法如:結構化方法、動態分析法等,從來沒用過這些方法在此不討論。原型化方法是十分重要的,原型就是軟件的一個早期可運行的版本,它實現了目標系統的某些或全部功能。原型化方法就是儘可能快地建造一個粗糙的系統,這系統實現了目標系統的某些或全部功能。但是這個系統可能在可靠性、界面的友好性或其他方面上存在缺陷。建造這樣一個系統的目的是為了考察某一方面的可行性,如算法的可行性、技術的可行性或考察是否滿足用戶的需求等。如:為了考察是否滿足用戶的要求,可以用某些軟件工具快速的建造一個原型系統,這個系統只是一個界面,然後聽取用戶的意見,改進這個原型。以後的目標系統就在原型系統的基礎上開發。原型主要有三種類型:探索型、實驗型、進化型。探索型:目的是要弄清楚對目標系統的要求,確定所希望的特性,並探討多種方案的可行性。實驗型:用於大規模開發和實現前,考核方案是否合適,規格說明是否可靠。進化型:目的不在於改進規格說明,而是將系統建造得易於變化,在改進原型的過程中,逐步將原型進化成最終系統。在使用原型化方法時有兩種不同的策略:廢棄策略、追加策略。廢棄策略:先建造一個功能簡單而且質量要求不高的模型系統,針對這個系統反覆進行修改,形成比較好的思想,據此設計出較完整、準確、一致、可靠的最終系統。系統構造完成後,原來的模型系統就被廢棄不用。探索型和實驗型屬於這種策略。追加策略:先構造一個功能簡單而且質量要求不高......
需求分析應包括哪些內容
需求分析是指理解用戶需求,就軟件功能與客戶達成一致,估計軟件風險和評估項目代價,最終形成開發計劃的一個複雜過程在這個過程中,用戶的確是處在主導地位,需求分析工程師和項目經理要負責整理用戶需求,為之後的軟件設計打下基礎。需求分析階段包括:
1.業務需求——反映了組織機構或客戶對系統、產品高層次的目標要求,通常在項目定義與範圍文檔中予以說明。
2·用戶需求——描述了用戶使用產品必須要完成的任務,這在使用實例或方案腳本中予以說明。
3·功能需求——定義了開發人員必須實現的軟件功能,使用戶利用系統能夠完成他們的任務,從而滿足了業務需求。
4·非功能性的需求——描述了系統展現給用戶的行為和執行的操作等,它包括產品必須遵從的標準、規範和約束,操作界面的具體細節和構造上的限制。
5·需求分析報告——報告所說明的功能需求充分描述了軟件系統所應具有的外部行為。“需求分析報告”在開發、測試、質量保證、項目管理以及相關項目功能中起著重要作用。
軟件測試需求分析的主要步驟是什麼
軟件測試就是在軟件交付用戶使用或投入運行前,對軟件需求規格說明、設計規格說明和編碼的最終複審,是軟件質量保證的關鍵步驟。軟件測試是為了發現錯誤而執行程序的過程。軟件測試在軟件生命週期中橫跨兩個階段:通常在編寫出每一個模塊之後就需要對它做必要的測試(稱為單元測試)。編碼和單元測試屬於軟件生命週期中的同一個階段。在結束這個階段後對軟件系統還要進行各種綜合測試,如集成測試、系統測試、性能測試和配置測試等,這是軟件生命週期的另一個獨立階段,即測試階段。軟件測試的目的:1、測試的最終目的是為了避免錯誤的發生,確保應用程序能夠正常高效的運行;2、好的測試用例在於發現至今未發現的錯誤;3、成功的測試是發現了至今未發現的錯誤的測試;4、好的測試工程師應該做到不僅發現問題,還能夠幫助開發人員分析問題;軟件測試的原則:1、應把“儘早和不斷地進行軟件測試”作為軟件開發者的座右銘,實踐證明單元測試能夠儘早發現問題,減少後期測試的錯誤量。可以採用Junit和Jtest來輔助進行單元測試。2、測試用例應由測試輸入數據、測試執行步驟和與之對應的預期輸出結果三部分組成。3、應當避免由程序員檢查自己的程序。(指後期系統測試階段,不包括單元測試)4、測試用例的設計要確保能覆蓋所有可能路徑。在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。不合理的輸入條件是指異常的,臨界的,可能引起問題的輸入條件。5、充分注意測試中的群集現象。經驗表明,測試後程序殘存的錯誤數目與該程序中已發現的錯誤數目或檢錯率成正比。應該對錯誤群集的程序段進行重點測試。6、嚴格執行測試計劃,排除測試的隨意性。測試計劃應包括:所測軟件的功能,輸入和輸出,測試內容,各項測試的進度安排,資源要求,測試資料,測試工具,測試用例的選擇,測試的控制方法和過程,系統的配置方式,跟蹤規則,調試規則,以及迴歸測試的規定等等以及評價標準。7、應當對每一個測試結果做全面的檢查。8、妥善保存測試計劃,測試用例,出錯統計和最終分析報告,為維護提供方便。軟件測試的對象:軟件測試並不單純等同於程序測試。軟件測試應該貫穿整個軟件定義與開發整個期間。因此需求分析、概要設計、詳細設計以及程序編碼等各階段所得到的文檔,包括需求規格說明、概要設計規格說明、詳細設計規格說明以及源程序,都應該是軟件測試(評審)的對象。在對需求理解與表達的正確性、設計與表達的正確性、實現的正確性以及運行的正確性的驗證中,任何一個環節發生了問題都可能在軟件測試中表現出來 希望對你有用
如何進行軟件需求分析
1.概念
需求的定義包括從用戶角度(系統的外部行為),以及從開發者角度(一些內部特性)來闡述需求.
關鍵的問題是一定要編寫需求文檔.我曾經目睹過一個項目中途更換了所有的開發者,客戶被迫與新的需求分析者坐到一起.系統的分析人員說:"我們想與你談談你的需求."客戶的第一反應便是:"我已經將我的要求都告訴你們前任了,現在我要的就是給我編一個系統".
百事通
而實際上,UGGs,需求並未編寫成文檔,因此新的分析人員不得不從頭做起.所以如果只有一堆郵件、會談記錄或一些零碎的未整理的對話,你就確信你已明白用戶的需求,那完全是自欺欺人.
需求的另外一種定義認為需求是"用戶所需要的並能觸發一個程序或系統開發工作的說明".有些需求分析專家拓展了這個概念:"從系統外部能發現系統所具有的滿足於用戶的特點、功能及屬性等".這些定義強調的是產品是什麼樣的,而並非產品是怎樣設計、構造的.而下面的定義則從用戶需要進一步轉移到了系統特性:
需求是指明必須實現什麼的規格說明.它描述了系統的行為、特性或屬性,是在開發過程中對系統的約束.
從上面這些不同形式的定義不難發現:並沒有一個清晰、毫無二義性的"需求"術語存在,真正的"需求"實際上在人們的腦海中,這個人們主要是指客戶,但一般情況下,用戶並不能描述自己的需要,只就需要系統分析人員根據用戶的自己語言的描述整理出相關的需要再進一步和客戶核對.系統分析員和客戶需要確保所有項目風險承擔者在描述需求的那些名詞的理解上務必達成共識.
任何文檔形式的需求(例如如下將要描述的需求規格說明書)僅是一個模型,一種描述.
2.需求分析的任務
開發軟件系統最為困難的部分就是準確說明開發什麼.最為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向用戶、面向機器和其它軟件系統的接口.同時這也是一旦做錯,將最終會給系統帶來極大損害的部分,並且以後再對它進行修改也極為困難.
目前,國內產品的龐雜,一家企業可能有幾個系統並立運行,它們之間接口是系統開發人員最頭痛的問題.
對於商業最終用戶應用程序,企業信息系統和軟件作為一個大系統的一部分的產品是顯而易見的.但是對於我們開發人員來說,並沒有編寫出客戶認可的需求文檔,我們如何知道項目於何時結束?而如果我們不知道什麼對客戶來說是重要的,那我們又如何能使客戶感到滿意呢?
然而,即便並非出於商業目的的軟件需求也是必須的.例如庫、組件和工具這些供開發小組內部使用的軟件.當然你可能偶爾勿需文檔說明就能與其他人意見較為一致,但更常見的是出現重複返工這種不可避免的後果,而重新編制代碼的代價遠遠超過重寫一份需求文檔的代價,這些血的教訓正在國內的軟件開發者身上發生.
近來,我遇到一個開發小組開發包括代碼編輯器在內的一套內部使用的計算機輔助軟件.不幸的是,當他們開發完這個工具後,發現這個工具不能打印出源代碼文件,使用者當然希望有這個功能.結果這個小組只好手工抄寫源代碼文檔以供代碼檢查.這說明那怕需求明確無誤並構思準確,如果我們沒有編寫文檔,軟件達不到期望目標也只能是咎由自取了.
相反的情況,我曾見一個要集成到"錯誤跟蹤系統"中的簡單界面寫了一頁需求說明.而操作系統系統管理員在為處理腳本時發現簡單的一張需求清單竟是如此有用.他們依據需求對系統進行測試時,此係統不僅非常清晰地實現了所有必需功能,而且未發現任何錯誤.
事實上,需求文檔在開發過程中一直起指導作用.
3.需求分析過程
......
需求分析的作用及如何進行需求分析
通過對應問題及其環境的理解與分析,為問題涉及的信息、功能及系統行為建立模型,將用戶需求精確化、完全化,最終形成需求規格說明,這一系列的活動即構成軟件開發生命週期的需求分析階段。
需求分析是介於系統分析和軟件設計階段之間的橋樑。一方面,需求分析以系統規格說明和項目規劃作為分析活動的基本出發點,並從軟件角度對它們進行檢查與調整;另一方面,需求規格說明又是軟件設計、實現、測試直至維護的主要基礎。良好的分析活動有助於避免或儘早剔除早期錯誤,從而提高軟件生產率,降低開發成本,改進軟件質量。
需求工程是隨著計算機的發展而發展的,在計算機發展的初期,軟件規模不大,軟件開發所關注的是代碼編寫,需求分析很少受到重視。後來軟件開發引入了生命週期的概念,需求分析成為其第一階段。隨著軟件系統規模的擴大,需求分析與定義在整個軟件開發與維護過程中越來越重要,直接關係到軟件的成功與否。人們逐漸認識到需求分析活動不再僅限於軟件開發的最初階段,它貫穿於系統開發的整個生命週期。80年代中期,形成了軟件工程的子領域——需求工程(requirementengineering,RE)。進入90年代以來,需求工程成為研究的熱點之一。從1993年起每兩年舉辦一次需求工程國際研討會(ISRE),自1994年起每兩年舉辦一次需求工程國際會議(ICRE),在1996年Springer-Verlag發行了一新的刊物——《RequirementsEngineering》。一些關於需求工程的工作小組也相繼成立,如歐洲的RENOIR(RequirementsEngineeringNetworkofInternationalCooperatingResearchGroups),並開始開展工作。 需求工程是指應用已證實有效的技術、方法進行需求分析,確定客戶需求,幫助分析人員理解問題並定義目標系統的所有外部特徵的一門學科。它通過合適的工具和記號系統地描述待開發系統及其行為特徵和相關約束,形成需求文檔,並對用戶不斷變化的需求演進給予支持。RE可分為系統需求工程(如果是針對由軟硬件共同組成的整個系統)和軟件需求工程(如果僅是專門針對純軟件部分)。軟件需求工程是一門分析並記錄軟件需求的學科,它把系統需求分解成一些主要的子系統和任務,把這些子系統或任務分配給軟件,並通過一系列重複的分析、設計、比較研究、原型開發過程把這些系統需求轉換成軟件的需求描述和一些性能參數。
需求工程是一個不斷反覆的需求定義、文檔記錄、需求演進的過程,並最終在驗證的基礎上凍結需求。80年代,HerbKrasner定義了需求工程的五階段生命週期:需求定義和分析、需求決策、形成需求規格、需求實現與驗證、需求演進管理。近來,MatthiasJarke和KlausPohl提出了三階段週期的說法:獲取、表示和驗證。
綜合了幾種觀點,可以把需求工程的活動劃分為以下5個獨立的階段:
(1)需求獲取:通過與用戶的交流,對現有系統的觀察及對任務進行分析,從而開發、捕獲和修訂用戶的需求;
(2)需求建模:為最終用戶所看到的系統建立一個概念模型,作為對需求的抽象描述,並儘可能多的捕獲現實世界的語義;
(3)形成需求規格:生成需求模型構件的精確的形式化的描述,作為用戶和開發者之間的一個協約;
(4)需求驗證:以需求規格說明為輸入,通過符號執行、模擬或快速原型等途徑,分析需求規格的正確性和可行性;
(5)需求管理:支持系統的需求演進,如需求變化和可跟蹤性問題。...
系統開發過程中,需求分析的步驟是什麼?
⑴首先調查組織機構情況
包括瞭解該組織的部門組成情況,各部門的職能等,為分析信息流程作準備。
⑵然後調查各部門的業務活動情況
包括瞭解各個部門輸入和使用什麼數據,如何加工處理這些數據,輸出什麼信息,輸出到什麼部門,輸出結果的格式是什麼。
⑶協助用戶明確對新系統的各種要求
包括信息要求、處理要求、完全性與完整性要求。
⑷確定新系統的邊界
確定哪些功能由計算機完成或將來準備讓計算機完成,哪些活動由人工完成。由計算機完成的功能就是新系統應該實現的功能。
⑸分析系統功能
⑹分析系統數據
⑺編寫分析報告
基於用例的需求分析過程包括哪些步驟
基於用例的需求分析需我幫助否?