時(shí)間:2014-03-17 11:22來源:未知 作者:admin 點(diǎn)擊:
次
“需求分析”,就是對需要解決的問題進(jìn)行詳細(xì)分析,弄清楚需要解決的問題。開發(fā)人員需要了解顧客的需求,然后體現(xiàn)在軟件中。如果說軟件開發(fā)過程中,開發(fā)人員需要了解自己做什么,顧客需要告訴開發(fā)人員自己需要什么,而需求分析就是連接開發(fā)人員和顧客之間的重要紐帶。只有真正理解顧客的需求,才能設(shè)計(jì)出顧客所需要的軟件。
在過去很長一段時(shí)間,開發(fā)人員的認(rèn)為需求分析是整個(gè)開發(fā)過程中最簡單的一個(gè)環(huán)節(jié)。然后越來越多的開發(fā)人員認(rèn)識(shí)到它才是整個(gè)開發(fā)過程中的核心部分。正所謂“磨刀不誤砍柴工”。只有真正理解了顧客的需求,才能順利開發(fā)出顧客真正需要的軟件。如果一味追求進(jìn)度,而忽略需求分析,很可能南轅北轍,開發(fā)變得毫無意義。
一、緒論
隨著計(jì)算機(jī)在日常工作中的普及,軟件開發(fā)行業(yè)作為其必不可少的組成部分,被人們所認(rèn)可。在我國,軟件行業(yè)日漸成熟,小作坊式的開發(fā)形式,已經(jīng)不能滿足我國對于軟件規(guī)范化、實(shí)用性的要求,軟件開發(fā)流程化及各個(gè)職能部門工作的有效劃分和正確協(xié)作,是現(xiàn)在軟件行業(yè)面臨的一個(gè)較大的問題。軟件需求分析是軟件開發(fā)的出發(fā)點(diǎn),為設(shè)計(jì)起到指導(dǎo)性作用,所以需求分析在軟件行業(yè)及開發(fā)流程中起著非常重要的作用。
“需求分析”,就是對需要解決的問題進(jìn)行詳細(xì)分析,弄清楚需要解決的問題。開發(fā)人員需要了解顧客的需求,然后體現(xiàn)在軟件中。如果說軟件開發(fā)過程中,開發(fā)人員需要了解自己做什么,顧客需要告訴開發(fā)人員自己需要什么,而需求分析就是連接開發(fā)人員和顧客之間的重要紐帶。只有真正理解顧客的需求,才能設(shè)計(jì)出顧客所需要的軟件。
在過去很長一段時(shí)間,開發(fā)人員的認(rèn)為需求分析是整個(gè)開發(fā)過程中最簡單的一個(gè)環(huán)節(jié)。然后越來越多的開發(fā)人員認(rèn)識(shí)到它才是整個(gè)開發(fā)過程中的核心部分。正所謂“磨刀不誤砍柴工”。只有真正理解了顧客的需求,才能順利開發(fā)出顧客真正需要的軟件。如果一味追求進(jìn)度,而忽略需求分析,很可能南轅北轍,開發(fā)變得毫無意義。
一、什么是軟件需求分析
通俗地說,軟件需求分析是解決做什么,怎么做的問題。告訴客戶及開發(fā)人員,需要實(shí)現(xiàn)哪些功能,以何種方式,在什么平臺(tái)去進(jìn)行操作,開發(fā)結(jié)束后,應(yīng)交付哪些東西。
需求分析就是分析軟件用戶的需求是什么.如果投入大量的人力,物力,財(cái)力,時(shí)間,開發(fā)出的軟件卻沒人要,那所有的投入都是徒勞.如果費(fèi)了很大的精力,開發(fā)一個(gè)軟件,最后卻不滿足用戶的要求,從而要重新開發(fā),這種返工是讓人痛心疾首的.(相信大家都有體會(huì))比如,用戶需要一個(gè)for linux的軟件,而你在軟件開發(fā)前期忽略了軟件的運(yùn)行環(huán)境,忘了向用戶詢問這個(gè)問題,而想當(dāng)然的認(rèn)為是開發(fā)for windows的軟件,當(dāng)你千辛萬苦地開發(fā)完成向用戶提交時(shí)才發(fā)現(xiàn)出了問題,那時(shí)候你是欲哭無淚了,痕不得找塊豆腐一頭撞死.
二、需求分析的任務(wù)
簡言之,需求分析的任務(wù)就是解決"做什么"的問題,就是要全面地理解用戶的各項(xiàng)要求,并準(zhǔn)確地表達(dá)所接受的用戶需求.
(一)了解顧客的要求
這是需求分析的重點(diǎn)任務(wù),也是最基本的任務(wù)。只有正確了解、理解顧客的要求,才能順利完成需求分析。
(二)分析系統(tǒng)的數(shù)據(jù)要求
軟件產(chǎn)品是指軟件開發(fā)商根據(jù)市場需要開發(fā)的、具有一定適用性和潛在客戶的、可銷售的軟件成品。它區(qū)別于應(yīng)特定客戶需求或根據(jù)訂單開發(fā)的軟件商品,通常應(yīng)具有更高的通用性和適應(yīng)性。但它的通用性和適應(yīng)性不是輕而易舉就能達(dá)到的。要實(shí)現(xiàn)軟件的產(chǎn)品化,就必須在軟件產(chǎn)品的設(shè)計(jì)上下一番功夫。
本文結(jié)合一個(gè)"多媒體遠(yuǎn)程教學(xué)系統(tǒng)"實(shí)例,探討軟件產(chǎn)品設(shè)計(jì)中的一些經(jīng)驗(yàn)與看法。
三、需求分析的過程
需求分析階段的工作,可以分為四個(gè)方面:問題識(shí)別,分析與綜合,制訂規(guī)格說明,評審.
(一)、問題識(shí)別
就是從系統(tǒng)角度來理解軟件,確定對所開發(fā)系統(tǒng)的綜合要求,并提出這些需求的實(shí)現(xiàn)條件,以及需求應(yīng)該達(dá)到的標(biāo)準(zhǔn).這些需求包括:功能需求(做什么),性能需求(要達(dá)到什么指標(biāo)),環(huán)境需求(如機(jī)型,操作系統(tǒng)等),可靠性需求(不發(fā)生故障的概率),安全保密需求,用戶界面需求,資源使用需求(軟件運(yùn)行是所需的內(nèi)存,CPU等),軟件成本消耗與開發(fā)進(jìn)度需求,預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo).
(二)、分析與綜合
逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,分析他們是否滿足需求,剔除不合理部分,增加需要部分.最后,綜合成系統(tǒng)的解決方案,給出要開發(fā)的系統(tǒng)的詳細(xì)邏輯模型(做什么的模型).
(三)、制訂規(guī)格說明書
即編制文檔,描述需求的文檔稱為軟件需求規(guī)格說明書.請注意,需求分析階段的成果是需求規(guī)格說明書(好象軟考曾經(jīng)考過這個(gè)問題),向下一階段提交.
(四)、評審
對功能的正確性,完整性和清晰性,以及其它需求給予評價(jià).評審?fù)ㄟ^才可進(jìn)行下一階段的工作,否則重新進(jìn)行需求分析。
四、需求分析的方法
需求分析的方法有很多.這里只強(qiáng)調(diào)原型化方法,其它的方法如:結(jié)構(gòu)化方法,動(dòng)態(tài)分析法等(個(gè)人認(rèn)為,對初學(xué)者不必深究這些方法,實(shí)際上我也從來沒用過這些方法)在此不討論.
原型化方法是十分重要的(是軟考等??嫉闹R(shí)點(diǎn)).原型就是軟件的一個(gè)早期可運(yùn)行的版本,它實(shí)現(xiàn)了目標(biāo)系統(tǒng)的某些或全部功能.
原型化方法就是盡可能快地建造一個(gè)粗糙的系統(tǒng),這系統(tǒng)實(shí)現(xiàn)了目標(biāo)系統(tǒng)的某些或全部功能,但是這個(gè)系統(tǒng)可能在可靠性,界面的友好性或其他方面上存在缺陷.建造這樣一個(gè)系統(tǒng)的目的是為了考察某一方面的可行性,如算法的可行性,技術(shù)的可行性,或考察是否滿足用戶的需求等.如,為了考察是否滿足用戶的要求,可以用某些軟件工具快速的建造一個(gè)原型系統(tǒng),這個(gè)系統(tǒng)只是一個(gè)界面,然后聽取用戶的意見,改進(jìn)這個(gè)原型.以后的目標(biāo)系統(tǒng)就在原型系統(tǒng)的基礎(chǔ)上開發(fā).
原型主要有三種類型(軟考考過):探索型,實(shí)驗(yàn)型,進(jìn)化型.探索型:目的是要弄清楚對目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性.實(shí)驗(yàn)型:用于大規(guī)模開發(fā)和實(shí)現(xiàn)前,考核方案是否合適,規(guī)格說明是否可靠.進(jìn)化型:目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。
在使用原型化方法是有兩種不同的策略:廢棄策略,追加策略.廢棄策略:先建造一個(gè)功能簡單而且質(zhì)量要求不高的模型系統(tǒng),針對這個(gè)系統(tǒng)反復(fù)進(jìn)行修改,形成比較好的思想,據(jù)此設(shè)計(jì)出較完整,準(zhǔn)確,一致,可靠的最終系統(tǒng).系統(tǒng)構(gòu)造完成后,原來的模型系統(tǒng)就被廢棄不用.探索型和實(shí)驗(yàn)型屬于這種策略。
追加策略:先構(gòu)造一個(gè)功能簡單而且質(zhì)量要求不高的模型系統(tǒng),作為最終系統(tǒng)的核心,然后通過不斷地?cái)U(kuò)充修改,逐步追加新要求,發(fā)展成為最終系統(tǒng)。進(jìn)化型屬于這種策略.
五、總結(jié)
需求分析為軟件的開發(fā)起到了決策的作用,提供了開發(fā)的方向,并指明了開發(fā)的策略,在軟件開發(fā)及維護(hù)中均起到了舉足輕重的作用。大家一定要足夠重視需求分析,可以說在一個(gè)大型軟件系統(tǒng)的開發(fā)中,它的作用要遠(yuǎn)遠(yuǎn)大于程序設(shè)計(jì)。永遠(yuǎn)別忘了:需求分析和程序設(shè)計(jì)不盡相同,合理、可行是才是重要的。跳出程序設(shè)計(jì)的圈子,站在系統(tǒng)的角度上來看問題,你的結(jié)論會(huì)截然不同。
在過去很長一段時(shí)間,開發(fā)人員的認(rèn)為需求分析是整個(gè)開發(fā)過程中最簡單的一個(gè)環(huán)節(jié)。然后越來越多的開發(fā)人員認(rèn)識(shí)到它才是整個(gè)開發(fā)過程中的核心部分。正所謂“磨刀不誤砍柴工”。只有真正理解了顧客的需求,才能順利開發(fā)出顧客真正需要的軟件。如果一味追求進(jìn)度,而忽略需求分析,很可能南轅北轍,開發(fā)變得毫無意義。
一、緒論
隨著計(jì)算機(jī)在日常工作中的普及,軟件開發(fā)行業(yè)作為其必不可少的組成部分,被人們所認(rèn)可。在我國,軟件行業(yè)日漸成熟,小作坊式的開發(fā)形式,已經(jīng)不能滿足我國對于軟件規(guī)范化、實(shí)用性的要求,軟件開發(fā)流程化及各個(gè)職能部門工作的有效劃分和正確協(xié)作,是現(xiàn)在軟件行業(yè)面臨的一個(gè)較大的問題。軟件需求分析是軟件開發(fā)的出發(fā)點(diǎn),為設(shè)計(jì)起到指導(dǎo)性作用,所以需求分析在軟件行業(yè)及開發(fā)流程中起著非常重要的作用。
“需求分析”,就是對需要解決的問題進(jìn)行詳細(xì)分析,弄清楚需要解決的問題。開發(fā)人員需要了解顧客的需求,然后體現(xiàn)在軟件中。如果說軟件開發(fā)過程中,開發(fā)人員需要了解自己做什么,顧客需要告訴開發(fā)人員自己需要什么,而需求分析就是連接開發(fā)人員和顧客之間的重要紐帶。只有真正理解顧客的需求,才能設(shè)計(jì)出顧客所需要的軟件。
在過去很長一段時(shí)間,開發(fā)人員的認(rèn)為需求分析是整個(gè)開發(fā)過程中最簡單的一個(gè)環(huán)節(jié)。然后越來越多的開發(fā)人員認(rèn)識(shí)到它才是整個(gè)開發(fā)過程中的核心部分。正所謂“磨刀不誤砍柴工”。只有真正理解了顧客的需求,才能順利開發(fā)出顧客真正需要的軟件。如果一味追求進(jìn)度,而忽略需求分析,很可能南轅北轍,開發(fā)變得毫無意義。
一、什么是軟件需求分析
通俗地說,軟件需求分析是解決做什么,怎么做的問題。告訴客戶及開發(fā)人員,需要實(shí)現(xiàn)哪些功能,以何種方式,在什么平臺(tái)去進(jìn)行操作,開發(fā)結(jié)束后,應(yīng)交付哪些東西。
需求分析就是分析軟件用戶的需求是什么.如果投入大量的人力,物力,財(cái)力,時(shí)間,開發(fā)出的軟件卻沒人要,那所有的投入都是徒勞.如果費(fèi)了很大的精力,開發(fā)一個(gè)軟件,最后卻不滿足用戶的要求,從而要重新開發(fā),這種返工是讓人痛心疾首的.(相信大家都有體會(huì))比如,用戶需要一個(gè)for linux的軟件,而你在軟件開發(fā)前期忽略了軟件的運(yùn)行環(huán)境,忘了向用戶詢問這個(gè)問題,而想當(dāng)然的認(rèn)為是開發(fā)for windows的軟件,當(dāng)你千辛萬苦地開發(fā)完成向用戶提交時(shí)才發(fā)現(xiàn)出了問題,那時(shí)候你是欲哭無淚了,痕不得找塊豆腐一頭撞死.
二、需求分析的任務(wù)
簡言之,需求分析的任務(wù)就是解決"做什么"的問題,就是要全面地理解用戶的各項(xiàng)要求,并準(zhǔn)確地表達(dá)所接受的用戶需求.
(一)了解顧客的要求
這是需求分析的重點(diǎn)任務(wù),也是最基本的任務(wù)。只有正確了解、理解顧客的要求,才能順利完成需求分析。
(二)分析系統(tǒng)的數(shù)據(jù)要求
軟件產(chǎn)品是指軟件開發(fā)商根據(jù)市場需要開發(fā)的、具有一定適用性和潛在客戶的、可銷售的軟件成品。它區(qū)別于應(yīng)特定客戶需求或根據(jù)訂單開發(fā)的軟件商品,通常應(yīng)具有更高的通用性和適應(yīng)性。但它的通用性和適應(yīng)性不是輕而易舉就能達(dá)到的。要實(shí)現(xiàn)軟件的產(chǎn)品化,就必須在軟件產(chǎn)品的設(shè)計(jì)上下一番功夫。
本文結(jié)合一個(gè)"多媒體遠(yuǎn)程教學(xué)系統(tǒng)"實(shí)例,探討軟件產(chǎn)品設(shè)計(jì)中的一些經(jīng)驗(yàn)與看法。
三、需求分析的過程
需求分析階段的工作,可以分為四個(gè)方面:問題識(shí)別,分析與綜合,制訂規(guī)格說明,評審.
(一)、問題識(shí)別
就是從系統(tǒng)角度來理解軟件,確定對所開發(fā)系統(tǒng)的綜合要求,并提出這些需求的實(shí)現(xiàn)條件,以及需求應(yīng)該達(dá)到的標(biāo)準(zhǔn).這些需求包括:功能需求(做什么),性能需求(要達(dá)到什么指標(biāo)),環(huán)境需求(如機(jī)型,操作系統(tǒng)等),可靠性需求(不發(fā)生故障的概率),安全保密需求,用戶界面需求,資源使用需求(軟件運(yùn)行是所需的內(nèi)存,CPU等),軟件成本消耗與開發(fā)進(jìn)度需求,預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo).
(二)、分析與綜合
逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,分析他們是否滿足需求,剔除不合理部分,增加需要部分.最后,綜合成系統(tǒng)的解決方案,給出要開發(fā)的系統(tǒng)的詳細(xì)邏輯模型(做什么的模型).
(三)、制訂規(guī)格說明書
即編制文檔,描述需求的文檔稱為軟件需求規(guī)格說明書.請注意,需求分析階段的成果是需求規(guī)格說明書(好象軟考曾經(jīng)考過這個(gè)問題),向下一階段提交.
(四)、評審
對功能的正確性,完整性和清晰性,以及其它需求給予評價(jià).評審?fù)ㄟ^才可進(jìn)行下一階段的工作,否則重新進(jìn)行需求分析。
四、需求分析的方法
需求分析的方法有很多.這里只強(qiáng)調(diào)原型化方法,其它的方法如:結(jié)構(gòu)化方法,動(dòng)態(tài)分析法等(個(gè)人認(rèn)為,對初學(xué)者不必深究這些方法,實(shí)際上我也從來沒用過這些方法)在此不討論.
原型化方法是十分重要的(是軟考等??嫉闹R(shí)點(diǎn)).原型就是軟件的一個(gè)早期可運(yùn)行的版本,它實(shí)現(xiàn)了目標(biāo)系統(tǒng)的某些或全部功能.
原型化方法就是盡可能快地建造一個(gè)粗糙的系統(tǒng),這系統(tǒng)實(shí)現(xiàn)了目標(biāo)系統(tǒng)的某些或全部功能,但是這個(gè)系統(tǒng)可能在可靠性,界面的友好性或其他方面上存在缺陷.建造這樣一個(gè)系統(tǒng)的目的是為了考察某一方面的可行性,如算法的可行性,技術(shù)的可行性,或考察是否滿足用戶的需求等.如,為了考察是否滿足用戶的要求,可以用某些軟件工具快速的建造一個(gè)原型系統(tǒng),這個(gè)系統(tǒng)只是一個(gè)界面,然后聽取用戶的意見,改進(jìn)這個(gè)原型.以后的目標(biāo)系統(tǒng)就在原型系統(tǒng)的基礎(chǔ)上開發(fā).
原型主要有三種類型(軟考考過):探索型,實(shí)驗(yàn)型,進(jìn)化型.探索型:目的是要弄清楚對目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性.實(shí)驗(yàn)型:用于大規(guī)模開發(fā)和實(shí)現(xiàn)前,考核方案是否合適,規(guī)格說明是否可靠.進(jìn)化型:目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。
在使用原型化方法是有兩種不同的策略:廢棄策略,追加策略.廢棄策略:先建造一個(gè)功能簡單而且質(zhì)量要求不高的模型系統(tǒng),針對這個(gè)系統(tǒng)反復(fù)進(jìn)行修改,形成比較好的思想,據(jù)此設(shè)計(jì)出較完整,準(zhǔn)確,一致,可靠的最終系統(tǒng).系統(tǒng)構(gòu)造完成后,原來的模型系統(tǒng)就被廢棄不用.探索型和實(shí)驗(yàn)型屬于這種策略。
追加策略:先構(gòu)造一個(gè)功能簡單而且質(zhì)量要求不高的模型系統(tǒng),作為最終系統(tǒng)的核心,然后通過不斷地?cái)U(kuò)充修改,逐步追加新要求,發(fā)展成為最終系統(tǒng)。進(jìn)化型屬于這種策略.
五、總結(jié)
需求分析為軟件的開發(fā)起到了決策的作用,提供了開發(fā)的方向,并指明了開發(fā)的策略,在軟件開發(fā)及維護(hù)中均起到了舉足輕重的作用。大家一定要足夠重視需求分析,可以說在一個(gè)大型軟件系統(tǒng)的開發(fā)中,它的作用要遠(yuǎn)遠(yuǎn)大于程序設(shè)計(jì)。永遠(yuǎn)別忘了:需求分析和程序設(shè)計(jì)不盡相同,合理、可行是才是重要的。跳出程序設(shè)計(jì)的圈子,站在系統(tǒng)的角度上來看問題,你的結(jié)論會(huì)截然不同。
- 上一篇:沒有了
- 下一篇:軟件開發(fā)和軟件設(shè)計(jì)過程中容易出現(xiàn)的誤區(qū)
