優(yōu)化方案,提出最后的設(shè)計(jì)方案
8)綜合結(jié)論:程序考慮了諸多功能,通用編輯器是眾多功能的集合體,內(nèi)部詳細(xì)規(guī)劃了各種類(lèi)型數(shù)據(jù)的操作、顯示和排版分析。
經(jīng)過(guò)一系列的方案定義,將問(wèn)題逐步減少,最后獲得一個(gè)規(guī)模較大的系統(tǒng)設(shè)計(jì)早期方案。我們可以較早地進(jìn)入系統(tǒng)設(shè)計(jì),并且提前進(jìn)入程序代碼級(jí)開(kāi)發(fā)工作,同時(shí)逐步實(shí)現(xiàn)各項(xiàng)內(nèi)容。
此方法分析需求,有助于我們盡早實(shí)現(xiàn)想法,同時(shí)較好地控制住程序開(kāi)發(fā)方向和基本功能完成的進(jìn)度。但遺憾的是提高開(kāi)發(fā)速度的代價(jià)是降低程序的可靠性、擴(kuò)展性和重用性。過(guò)去,我們往往覺(jué)得所作的程序基本上不能再次使用,原因就在于沒(méi)有抽象問(wèn)題,尋找問(wèn)題的根本解決方案。就問(wèn)題實(shí)現(xiàn)問(wèn)題的方法,忽略了深入分析問(wèn)題的過(guò)程。對(duì)于針對(duì)開(kāi)發(fā)某專(zhuān)業(yè)的應(yīng)用軟件采用此方法分析需求比較合適,但對(duì)系統(tǒng)性強(qiáng)的軟件,最好采用樹(shù)狀遍歷式尋找問(wèn)題的方法。
二、分析問(wèn)題和需求
在沒(méi)有分析清楚問(wèn)題和需求的來(lái)由就匆匆下定論是非常危險(xiǎn)的。忽略問(wèn)題和需求就可能埋下了潛在的程序或系統(tǒng)設(shè)計(jì)問(wèn)題。我們也常常犯這樣的錯(cuò)誤:由于沒(méi)有分析清楚問(wèn)題和需求,結(jié)果到頭來(lái)更改系統(tǒng)設(shè)計(jì)。能夠提出的問(wèn)題和需求,就一定要扎扎實(shí)實(shí)分析它,否則后果難料。
分析問(wèn)題和需求的能力大小與思路和經(jīng)驗(yàn)有關(guān)。好的思路來(lái)源于嚴(yán)謹(jǐn)、邏輯和跳躍的思考習(xí)慣。嚴(yán)謹(jǐn)要求不要放過(guò)任何一個(gè)小問(wèn)題,邏輯要求思考的過(guò)程應(yīng)該是一種符合規(guī)則的推導(dǎo)過(guò)程,跳躍思維要求思考的路子不是一走到底而是多條路子并行著走。經(jīng)驗(yàn)來(lái)自于編寫(xiě)調(diào)試大量程序和善于總結(jié),要求程序員不斷地開(kāi)發(fā)新程序和創(chuàng)造新思路,并且敢于嘗試和接受失敗,當(dāng)然還有一條重要的方面:跟蹤最新技術(shù)。
如何正確分析問(wèn)題,有以下幾個(gè)要素值得注意:
1.所有問(wèn)題和需求都有發(fā)生的根源。
問(wèn)題和需求的表面現(xiàn)象總是與開(kāi)發(fā)者思路切入點(diǎn)相關(guān),如果切入點(diǎn)是狹隘的,那么圍繞著問(wèn)題和需求的分析往往局限于自身的思路范圍,問(wèn)題和需求產(chǎn)生的原因就很難發(fā)覺(jué)。所以當(dāng)不能理解分析問(wèn)題和需求時(shí),不妨先找一找為什么存在這樣的問(wèn)題和需求,它的存在是否合理,然后再分析理解它就不難了。思路一定要跳出慣例。
2.交替反復(fù)分析多個(gè)問(wèn)題和需求,尋找問(wèn)題間的共性和特性
看似問(wèn)題和需求間沒(méi)有聯(lián)系,而且分析不清各自意義,那么建議交替反復(fù)分析考慮這些問(wèn)題。勤能補(bǔ)拙,不要擔(dān)心它將花費(fèi)開(kāi)發(fā)者多少時(shí)間,只有開(kāi)發(fā)者仔細(xì)分析問(wèn)題需求,以后的工作越來(lái)越簡(jiǎn)單明了。
3.復(fù)雜化問(wèn)題
問(wèn)題復(fù)雜化,是一個(gè)抽象問(wèn)題或需求的逆過(guò)程,提出問(wèn)題需求的許多可能的假設(shè),豐富了問(wèn)題需求的形式。能夠復(fù)雜化問(wèn)題,本身就體現(xiàn)了分析問(wèn)題和需求的能力。比如:做一個(gè)加法程序,兩個(gè)數(shù)相加,返回結(jié)果。簡(jiǎn)單的問(wèn)題,但,我們一般都按兩整數(shù)加法,有時(shí)考慮了浮點(diǎn)加法。為什么不是兩個(gè)復(fù)數(shù)相加,或者是兩個(gè)字符串相加等。這是一個(gè)使用操作符重載或類(lèi)模板解決的簡(jiǎn)單例子,在這里我的意圖是許多問(wèn)題應(yīng)該從更多的方面去驗(yàn)證問(wèn)題是否同樣存在。
4.問(wèn)一問(wèn)自己:?jiǎn)栴}是否能夠抽象化,繼而簡(jiǎn)化問(wèn)題。
眾多的問(wèn)題和需求變成程序代碼的過(guò)程,就是公式化問(wèn)題和需求。如果象上例加法一樣,不管三七二十一,什么樣的數(shù)據(jù)就寫(xiě)一段什么的代碼,不同類(lèi)型數(shù)據(jù)間的加法同樣又要寫(xiě)一段代碼,這樣下去就寫(xiě)不完了。抽象問(wèn)題,簡(jiǎn)化問(wèn)題,類(lèi)模板就是一個(gè)抽象問(wèn)題很好的例子。在分析問(wèn)題和需求的過(guò)程中,同樣采用面向?qū)ο蟮乃季S方式去求解,會(huì)獲得一個(gè)非常滿(mǎn)意的需求報(bào)告。
5.問(wèn)題和需求分類(lèi)分主次考慮
1)軟件產(chǎn)品的性能指標(biāo):可靠、功能全、速度、易擴(kuò)展。
易擴(kuò)展:一種是產(chǎn)品升級(jí)換代快、系列化產(chǎn)品豐富。另一種是用戶(hù)的二次開(kāi)發(fā)擴(kuò)展產(chǎn)品的再生功能。
速度:表示軟件執(zhí)行速度不僅要快,同時(shí)操作中的速度要均衡。
&nbs
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線(xiàn)啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html