簡述為什麼要進行需求分析?需求分析的內容和主要步驟 ?
簡述為什麼要進行需求分析?需求分析的內容和主要步驟
資料庫需求分析階段的主要任務:對現實世界要處理的物件(組織、部門、企業)等進行詳細的調查,通過對原系統的瞭解,手機支援新系統的基礎資料並對其進行處理,在此基礎上確定新系統的功能。
系統分析報告的主要內容:1.系統概況,系統的目標、範圍、背景、歷史和現狀;2.系統的原理和技術,對原系統的改善;3.系統總體結構域子系統結構說明;4.系統功能說明;5.資料處理概要、工程體制和設計階段劃分;6.系統方案及技術、經濟、功能和操作上的可行性。
軟體工程 中為什麼要進行需求分析
不分析需求,怎麼知道使用者要什麼?
軟體說白了是一種工雞,工具就要按照使用者的要求和習慣來做。不能程式設計師自己想做什麼就做什麼
如何進行需求分析
專案需求分析是一個專案的開端,也是專案建設的基石。在以往建設失敗的專案中,80%是由於需求分析的不明確而造成的。因此一個專案成功的關鍵因素之一,就是對需求分析的把握程度。 在原則上,需求階段監理應尊重承建方的專案管理和專案分析能力;在具體的任務開展上,以不深入、不干擾承建方的自主權為主,除非在專案合作過程中發現承建方的專案管理以及專案分析能力存在很大的差距和不足。 為了保證專案的成功,監理方必須加強專案管理和專案分析工作,在具體的操作上可以堅持吸收、同化、貫徹的方法和手段。其中,需求分析是一個專案的開端,也是專案建設的基石。在以往建設失敗的專案中,80%是由於需求分析的不明確而造成的。因此一個專案成功的關鍵因素之一,就是對需求分析的把握程度。而專案的整體風險往往表現在需求分析不明確、業務流程不合理,使用者不習慣或不願意去用承建方的軟體。作為第三方的監理公司,必須提醒承建方、客戶方重視需求分析的重要性,採用必要的手段和方法來進行需求調研,同時監理方也應深入具體的需求調研中去。只有這樣才能切切實實地把握使用者的需求和方向,才能在將來的功能界定、開發範圍上有發言權。 需求分析不象偵探推理那樣需從蛛絲馬跡著手,而是應該先了解巨集觀的問題,再瞭解細節的問題。 一個應用軟體系統(記為S)的涉及面可能很廣,可以按不同的問題域(記為D)分類,每個問題域對應於一個軟體子系統。 S={D1,D2,D3,…Dn} 問題域Di由若干個問題(記為P)組成,每個問題對應於子系統中的一個軟構件。 Di={P1,P2,P3,…Pm} 問題Pj有若干個行為(或功能,記為F),每個行為對應於軟構件中的實現介面。 Pj={F1,F2,F3,…Fk} 需求說明書應該對於那些只想瞭解巨集觀需求的領導,和需要了解細節的技術員都合適。在寫需求說明書時應該注意兩個問題: 1.最好為每個需求註釋“為什麼”,這樣可讓程式設計師瞭解需求的本質,以便選用最合適的技術來實現此需求。 2.需求說明不可有二義性,更不能前後相矛盾。如果有二義性或前後相矛盾,則要重新分析此需求。 重點監控需求分析 由於專案的特殊性和行業覆蓋的廣闊性,以及需求分析的高風險性,軟體需求分析的重要性是不言而喻的,同時需求分析又的的確確難做。其原因基本是由於以下情況造成的。 客戶說不清楚需求 有些客戶對需求只有朦朧的感覺,當然說不清楚具體的需求。例如全國各地的很多部門、機構、單位在進行應用系統以及網路建設時,客戶方的辦公人員大多不清楚計算機網路有什麼用,更缺乏IT系統建設方面的專家和知識。此時,使用者就會要求軟體系統分析人員替他們設想需求。工程的需求存在一定的主觀性,為專案未來建設埋下了潛在的風險。 需求自身經常變動 根據以往的歷史經驗,隨著客戶方對資訊化建設的認識和自己業務水平的提高,他們會在不同的階段和時期對專案的需求提出新的要求和需求變更。事實上,歷史上沒有一個軟體的需求改動少於三次的!所以必須接受“需求會變動”這個事實,在進行需求分析時要懂得防患於未然,儘可能地分析清楚哪些是穩定的需求,哪些是易變的需求,以便在進行系統設計時,將軟體的核心建築在穩定的需求上,同時留出變更空間。諮詢監理方在需求分析的功能界定上擔任一個中間、公平、公正的角色,所以也必須積極參與到需求分析的準備中來,以便協助客戶方和承建方來界定“做什麼”、“不做什麼”的系統功能界限。 分析人員或客戶理解有誤 軟體系統分析人員不可能都是全才,更不可能是行業方面的專家。客戶表達的需求,不同的分析人員可能有不同的理解。如果分析人員理解錯了,可能會導致以後的開發工作......
如何進行使用者需求分析
1.概念
需求的定義包括從使用者角度(系統的外部行為),以及從開發者角度(一些內部特性)來闡述需求.
關鍵的問題是一定要編寫需求文件.我曾經目睹過一個專案中途更換了所有的開發者,客戶被迫與新的需求分析者坐到一起.系統的分析人員說:"我們想與你談談你的需求."客戶的第一反應便是:"我已經將我的要求都告訴你們前任了,現在我要的就是給我編一個系統".
百事通
而實際上,UGGs,需求並未編寫成文件,因此新的分析人員不得不從頭做起.所以如果只有一堆郵件、會談記錄或一些零碎的未整理的對話,你就確信你已明白使用者的需求,那完全是自欺欺人.
需求的另外一種定義認為需求是"使用者所需要的並能觸發一個程式或系統開發工作的說明".有些需求分析專家拓展了這個概念:"從系統外部能發現系統所具有的滿足於使用者的特點、功能及屬性等".這些定義強調的是產品是什麼樣的,而並非產品是怎樣設計、構造的.而下面的定義則從使用者需要進一步轉移到了系統特性:
需求是指明必須實現什麼的規格說明.它描述了系統的行為、特性或屬性,是在開發過程中對系統的約束.
從上面這些不同形式的定義不難發現:並沒有一個清晰、毫無二義性的"需求"術語存在,真正的"需求"實際上在人們的腦海中,這個人們主要是指客戶,但一般情況下,使用者並不能描述自己的需要,只就需要系統分析人員根據使用者的自己語言的描述整理出相關的需要再進一步和客戶核對.系統分析員和客戶需要確保所有專案風險承擔者在描述需求的那些名詞的理解上務必達成共識.
任何文件形式的需求(例如如下將要描述的需求規格說明書)僅是一個模型,一種描述.
2.需求分析的任務
開發軟體系統最為困難的部分就是準確說明開發什麼.最為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向用戶、面向機器和其它軟體系統的介面.同時這也是一旦做錯,將最終會給系統帶來極大損害的部分,並且以後再對它進行修改也極為困難.
目前,國內產品的龐雜,一家企業可能有幾個系統並立執行,它們之間介面是系統開發人員最頭痛的問題.
對於商業終端使用者應用程式,企業資訊系統和軟體作為一個大系統的一部分的產品是顯而易見的.但是對於我們開發人員來說,並沒有編寫出客戶認可的需求文件,我們如何知道專案於何時結束?而如果我們不知道什麼對客戶來說是重要的,那我們又如何能使客戶感到滿意呢?
然而,即便並非出於商業目的的軟體需求也是必須的.例如庫、元件和工具這些供開發小組內部使用的軟體.當然你可能偶爾勿需文件說明就能與其他人意見較為一致,但更常見的是出現重複返工這種不可避免的後果,而重新編制程式碼的代價遠遠超過重寫一份需求文件的代價,這些血的教訓正在國內的軟體開發者身上發生.
近來,我遇到一個開發小組開發包括程式碼編輯器在內的一套內部使用的計算機輔助軟體.不幸的是,當他們開發完這個工具後,發現這個工具不能打印出原始碼檔案,使用者當然希望有這個功能.結果這個小組只好手工抄寫原始碼文件以供程式碼檢查.這說明那怕需求明確無誤並構思準確,如果我們沒有編寫文件,軟體達不到期望目標也只能是咎由自取了.
相反的情況,我曾見一個要整合到"錯誤跟蹤系統"中的簡單介面寫了一頁需求說明.而作業系統系統管理員在為處理指令碼時發現簡單的一張需求清單竟是如此有用.他們依據需求對系統進行測試時,此係統不僅非常清晰地實現了所有必需功能,而且未發現任何錯誤.
事實上,需求文件在開發過程中一直起指導作用.
3.需求分析過程
可把整個軟體需求工程......
為什麼要對企業員工培訓進行需求分析
培訓需求分析為企業培訓工作提供了運作的基礎,它是在企業培訓需求調查的基礎上,由培訓部門、主管人員等相關工作人員採用各種方法與技術,對各種組織及其成員的目標、知識、技能等方面進行系統的鑑別與分析,以確定其是否需要培訓及需要培訓哪些內容的一種活動或過程。
(一)培訓需求產生的原因
有效的培訓需求分析是建立在對培訓需求成因有效性的分析這一基礎之上的,對培訓需求形成的原因進行客觀的分析直接關係到培訓需求分析的針對性和實效性。培訓需求產生的原因大致可以分為以下三類。
1.由於工作變化而產生的培訓需求
企業處在不斷髮展變化的環境之中,不同崗位的工作內容也會相應地發生變化,為了適應這種變化,培訓需求隨之產生。
2.由於人員變化而產生的培訓需求
無論員工原來從事何種工作,當他們進人一家新的企業或踏入新的工作領域時,為了儘快地進人工作狀態,實現較好的工作業績,培訓都是他們的首要選擇。
3.由於績效變化而產生的培訓需求
實現既定的或更優異的績效是企業所希望的,但部分員工因各種原因,在其現有狀況和應有的狀況之間會存在一定的差距,由此也產生了相關的培訓需求。
(二)培訓需求分析的內容
培訓的成功與否在很大程度上取決於需求分析的準確性和有效性。進行培訓需求分析,除了以上對培訓需求的形成原因的客觀分析外,還要著重從培訓需求的不同層面、不同方面、不同時期來進行培訓需求分析。
1.培訓需求的層次分析
(1)組織層面分析
培訓需求的組織分析主要是通過對組織的目標、資源、特質、環境等因素的分析,準確地找出組織存在的問題與問題產生的根源,以確定培訓是否是解決這類問題的最有效的方法。
由於企業是處於一定的社會環境中,隨著政治、經濟等因素的不斷髮展變化,企業發展的經營戰略、組織所處的巨集觀環境和發展趨勢、組織現有的資源儲備都會影響員工的培訓需求。 (2)職務層面分析
工作分析的目的在於瞭解與績效問題有關的工作的詳細內容、標準以及完成工作所應具備的知識和技能。工作分析的結果也是將來設計和編制相關培訓課程的重要資料來源。
通過對現有職務要求與擔任此工作的員工的工作能力、工作績效等方面進行比較,可以確定員工的培訓需求。
(3)員工個人層面分析
員工個人分析主要是通過分析工作人員個體現有狀況與應有狀況之間的差距,來確定誰需要接受培訓以及培訓的內容。其分析的重點在於評價工作人員實際的工作績效及工作能力。
2.培訓需求的階段分析
培訓需求分析分為目前階段培訓需求分析和未來階段培訓需求分析。目前階段培訓需求分析是為了瞭解員工目前最需要培訓的內容,以解決其目前的實際問題。未來階段培訓需求分析是為了瞭解員工未來一段時期所需的知識和技能,以便有計劃、有針對性地對其進行培訓。
三、如何進行培訓需求分析
培訓需求分析從層次上來劃分,可以分為三個層面:組織層面分析、職務層面分析及員工個人層面分析。如何對每一個具體的層面進行需求分析?從哪些方面來進行需求分析?
(一)組織分析
1.組織目標分析明確、清晰的組織目標對組織的發展起著決定性、引領性的作用,同時也對培訓規劃的總體設計與實施起著決定性的作用。
2.組織資源分析
培訓的實施需要有一定的人力、物力、財力等做基礎。從財力上來說,組織提供的培訓經費會影響到培訓的範圍、頻率、執行力度等方面;從時間上來說,培訓時間的合理安排是影響培訓效果的重要因素之一;從人力方面來說,在培訓需求分析過程、培訓實施過程及培訓評估過程中,......
在開發資料庫系統時,為什麼要做軟體需求分析
只有做了軟體需求分析,你才知道要建那些表,表結構是怎樣的,表之間的關係是 怎樣 的,知道了這些你才能做資料庫系統設計
如何做好需求分析,需求調研
轉載以下資料供參考
從廣義上理解:需求分析包括需求的獲取、分析、規格說明、變更、驗證、管理的一系列需求工程。
狹義上理解需求分析指需求的分析、定義過程。
原因
需求分析就是分析軟體使用者的需求是什麼。如果投入大量的人力,物力、財力、時間,開發出的軟體卻沒人要,那所有的投入都是徒勞。如果費了很大的精力,開發一個軟體,最後卻不滿足使用者的要求,從而要重新開發過,這種返工是讓人痛心疾首的(相信大家都有體會)。比如:使用者需要一個for linux的軟體,而你在軟體開發前期忽略了軟體的執行環境,忘了向用戶詢問這個問題,而想當然的認為是開發for windows的軟體。當你千辛萬苦地開發完成向用戶提交時才發現出了問題,那時候你是欲哭無淚了,恨不得找塊豆腐一頭撞死。
需求分析之所以重要,就因為他具有決策性、方向性、策略性的作用,他在軟體開發的過程中具有舉足輕重的地位,大家一定要對需求分析具有足夠的重視。在一個大型軟體系統的開發中,他的作用要遠遠大於程式設計。
任務
簡言之,需求分析的任務就是解決“做什麼"的問題,就是要全面地理解使用者的各項要求,並準確地表達所接受的使用者需求。
過程
需求分析階段的工作,可以分為四個方面:問題識別、分析與綜合、制訂規格說明、評審。
問題識別:就是從系統角度來理解軟體,確定對所開發系統的綜合要求,並提出這些需求的實現條件,以及需求應該達到的標準。這些需求包括:功能需求(做什麼)、效能需求(要達到什麼指標)、環境需求(如機型、作業系統等)、可靠性需求(不發生故障的概率)、安全保密需求、使用者介面需求、資源使用需求(軟體執行是所需的記憶體、CPU等)、軟體成本消耗與開發進度需求、預先估計以後系統可能達到的目標。
分析與綜合: 逐步細化所有的軟體功能,找出系統各元素間的聯絡,介面特性和設計上的限制,分析他們是否滿足需求,剔除不合理部分,增加需要部分。最後綜合成系統的解決方案,給出要開發的系統的詳細邏輯模型(做什麼的模型)。
制訂規格說明書: 即編制文件,描述需求的文件稱為軟體需求規格說明書。請注意,需求分析階段的成果是需求規格說明書,向下一階段提交。
評審: 對功能的正確性,完整性和清晰性,以及其它需求給予評價。評審通過才可進行下一階段的工作,否則重新進行需求分析。
方法
需求分析的方法有很多,這裡只強調原型化方法,其它的方法如:結構化方法、動態分析法等,從來沒用過這些方法在此不討論。
原型化方法是十分重要的,原型就是軟體的一個早期可執行的版本,它實現了目標系統的某些或全部功能。
原型化方法就是儘可能快地建造一個粗糙的系統,這系統實現了目標系統的某些或全部功能。但是這個系統可能在可靠性、介面的友好性或其他方面上存在缺陷。建造這樣一個系統的目的是為了考察某一方面的可行性,如演算法的可行性、技術的可行性或考察是否滿足使用者的需求等。如:為了考察是否滿足使用者的要求,可以用某些軟體工具快速的建造一個原型系統,這個系統只是一個介面,然後聽取使用者的意見,改進這個原型。以後的目標系統就在原型系統的基礎上開發。
原型主要有三種類型:探索型、實驗型、進化型。
探索型:目的是要弄清楚對目標系統的要求,確定所希望的特性,並探討多種方案的可行性。
實驗型:用於大規模開發和實現前,考核方案是否合適,規格說明是否可靠。
進化型:目的不在於改進規格說明,而是將系統建造得易於變化,在改進原型的過程中,逐步將原型進化成最終系統。
在使用原型化方法時有兩種不同的策略:廢棄策略、追加策略。
廢棄策略:先建造一個功能簡單而且質量要求不高的模型系統,針對這個系統反覆進行修改,形成......
網路工程為什麼要進行需求分析
不進行需求分析,你怎麼了解客戶的需求,怎麼給客戶做網路規劃,怎麼給客戶建設網路。
怎麼做好一個需求分析師?
看看下面這個故事吧,也許看完了你就能明白了。。
先來看一個老掉牙的故事:福特說,我在設計汽車之前,到處去問人們“需要一個什麼樣的更好的交通工具?”,幾乎所有人的答案都是 ── 一匹“更快的馬”。
“更好的交通工具”代表使用者的“需求”;“更快的”是使用者對於解決這個“需求”的“期望值”;“馬”是使用者對於解決這個“需求”的自假設“功能”。
一個初級的設計者,被使用者牽著鼻子走。聽到“更快的馬”以後,會馬上去設計一匹“馬”。這個時候,無論在“馬”上如何做創新,思路已經框死,結果很難突破。最終只能出來平庸的設計,很難長久很容易被模仿和超越,實現不了多大的商業價值。
一個合格的設計者,和使用者一起走。聽到“更快的馬”以後,會考慮“更快的”這個“期望值”,圍繞著它突破“馬”的侷限,去做設計。最終可能會出來很好的設計,但他們把“需求”本身拋到了腦後,最終只能簡單的滿足需求達到期望,而無法引導需求。他們績以做出來成功的產品,但隨著使用者期望的增長,這樣的產品很 難有取得使用者的長久青睞,也很難取得商業上長久的成功。
一個卓越的設計者,自己會作為使用者的一部分深入瞭解他們,並帶著使用者一起走。聽到“更快的馬”以後,他們會先去考慮需求是“更好的交通”工具,然後再結合 “更快的”這個主要期望。用對使用者最有價值的方式在的滿足需求超越期望(把“馬”這件事拋到腦後),從而引導需求,並獲取更豐厚更長久的商業利益,和使用者雙贏。
不可否認,史玉柱是一個商業的天才。
他發現了“送禮”這個大需求,並發現了送禮的期望在於“面子”而非“ 實用”。於是他通過“廣告”在推廣的同時增加產品的“價值”,而非在產品質量上增加“價值”。春節,杭州人告訴我:“我們春節送禮都是送保健品,廣告播什麼就買什麼,因為有 知名度”。但他忘記了,這樣是否可以給使用者帶來真正的長期價值。生活層次相對較高的行州人又告訴我“我們不買腦白金和黃金酒,那些都是騙人的檔次低。我們買靈芝、鹿茸、人蔘、...”。
他發現了“砍人”的需求,並發現了“花再多錢也要砍死他”這個期望,最終使用了“網遊”這個功能,用最簡單粗暴的商業設計獲取暴利。但他忘記了,這樣做不能給人帶來真正的價值,於是最後他在利用網際網路社群引導需求的時候遇到了問題 ...
福特是一個商業的天才,更是產品的天才。
他可以發現人們需要“更好的交通工具”這個大需求,並肯定了這個需求的渴望程度會隨著社會交往的擴大會越來越強。同時他肯定了“更快的”這個使用者的首要期望,結合這個期望開始思考。然後,他又判斷出汽車比火車有更低的成本,而且對於使用者更有價值,會替代火車。最後,他用“汽車”而不是“馬”來滿足需求、達到並超越期望, 同時引導使用者往下的進一步需求和期望... 於是,他的商業回報自然而然的產生了。
使用者的真正需求是什麼? 》 使用者的期望值是什麼? 》 如何做才對使用者最有價值,並讓企業獲利? 》 如何超越期望並引導需求,獲取更高更長久的商業利益?
這是一個必然思考邏輯,違背這個邏輯出來的產品勢必難以獲取長久的成功。從某種程度上來說,產品模式是“使用者真正需要的是什麼?”,產品設計是“主要滿足什麼期望值,給使用者帶去什麼價值?”,商業模式是“用什麼功能,如何賺錢?”,創新設計是“如何超越期望,獲取更高更長久的利益?”。
所以,我在同意邵亦波所說“創業者更應該注重‘產品’”的同時,主張一個產品的主導者甚至是一個企業的領導者,更應該注重:
產品模式的設計:使用者真正需要滿足的需求是什麼?
產品的設計:讓使用者達到什麼樣的期望?給他們帶去什麼價值?......
應該怎樣開展需求分析
專案需求分析是一個專案的開端,也是專案建設的基石。在以往建設失敗的專案中,80%是由於需求分析的不明確而造成的。因此一個專案成功的關鍵因素之一,就是對需求分析的把握程度。 在原則上,需求階段監理應尊重承建方的專案管理和專案分析能力;在具體的任務開展上,以不深入、不干擾承建方的自主權為主,除非在專案合作過程中發現承建方的專案管理以及專案分析能力存在很大的差距和不足。 為了保證專案的成功,監理方必須加強專案管理和專案分析工作,在具體的操作上可以堅持吸收、同化、貫徹的方法和手段。其中,需求分析是一個專案的開端,也是專案建設的基石。在以往建設失敗的專案中,80%是由於需求分析的不明確而造成的。因此一個專案成功的關鍵因素之一,就是對需求分析的把握程度。而專案的整體風險往往表現在需求分析不明確、業務流程不合理,使用者不習慣或不願意去用承建方的軟體。作為第三方的監理公司,必須提醒承建方、客戶方重視需求分析的重要性,採用必要的手段和方法來進行需求調研,同時監理方也應深入具體的需求調研中去。只有這樣才能切切實實地把握使用者的需求和方向,才能在將來的功能界定、開發範圍上有發言權。 需求分析不象偵探推理那樣需從蛛絲馬跡著手,而是應該先了解巨集觀的問題,再瞭解細節的問題。 一個應用軟體系統(記為S)的涉及面可能很廣,可以按不同的問題域(記為D)分類,每個問題域對應於一個軟體子系統。 S={D1,D2,D3,…Dn} 問題域Di由若干個問題(記為P)組成,每個問題對應於子系統中的一個軟構件。 Di={P1,P2,P3,…Pm} 問題Pj有若干個行為(或功能,記為F),每個行為對應於軟構件中的實現介面。 Pj={F1,F2,F3,…Fk} 需求說明書應該對於那些只想瞭解巨集觀需求的領導,和需要了解細節的技術員都合適。在寫需求說明書時應該注意兩個問題: 1.最好為每個需求註釋“為什麼”,這樣可讓程式設計師瞭解需求的本質,以便選用最合適的技術來實現此需求。 2.需求說明不可有二義性,更不能前後相矛盾。如果有二義性或前後相矛盾,則要重新分析此需求。 重點監控需求分析 由於專案的特殊性和行業覆蓋的廣闊性,以及需求分析的高風險性,軟體需求分析的重要性是不言而喻的,同時需求分析又的的確確難做。其原因基本是由於以下情況造成的。 客戶說不清楚需求 有些客戶對需求只有朦朧的感覺,當然說不清楚具體的需求。例如全國各地的很多部門、機構、單位在進行應用系統以及網路建設時,客戶方的辦公人員大多不清楚計算機網路有什麼用,更缺乏IT系統建設方面的專家和知識。此時,使用者就會要求軟體系統分析人員替他們設想需求。工程的需求存在一定的主觀性,為專案未來建設埋下了潛在的風險。 需求自身經常變動 根據以往的歷史經驗,隨著客戶方對資訊化建設的認識和自己業務水平的提高,他們會在不同的階段和時期對專案的需求提出新的要求和需求變更。事實上,歷史上沒有一個軟體的需求改動少於三次的!所以必須接受“需求會變動”這個事實,在進行需求分析時要懂得防患於未然,儘可能地分析清楚哪些是穩定的需求,哪些是易變的需求,以便在進行系統設計時,將軟體的核心建築在穩定的需求上,同時留出變更空間。諮詢監理方在需求分析的功能界定上擔任一個中間、公平、公正的角色,所以也必須積極參與到需求分析的準備中來,以便協助客戶方和承建方來界定“做什麼”、“不做什麼”的系統功能界限。 分析人員或客戶理解有誤 軟體系統分析人員不可能都是全才,更不可能是行業方面的專家。客戶表達的需求,不同的分析人員可能有不同的理解。如果分析人員理解錯了,可能會導致以後的開發工作......