“
是我們創(chuàng)造了工具,并且使用它們,而不是相反”
任何的軟件項(xiàng)目都有它存在的目的,都是為了解決一些現(xiàn)實(shí)中的問(wèn)題。可以把這個(gè)成為這個(gè)項(xiàng)目的目的,可以把需要解決的問(wèn)題的需求稱作這個(gè)項(xiàng)目的需求。任何的軟件項(xiàng)目的開(kāi)發(fā)都必然離不開(kāi)了解需求、根據(jù)需求進(jìn)行設(shè)計(jì)、根據(jù)設(shè)計(jì)進(jìn)行實(shí)現(xiàn)這些過(guò)程。不管是多大的項(xiàng)目,也不管是采用何種開(kāi)發(fā)方式。
?但是,設(shè)計(jì)的方式卻有多種,沒(méi)有誰(shuí)會(huì)規(guī)定,只有采用UML圖進(jìn)行建模才叫設(shè)計(jì)。也沒(méi)有誰(shuí)規(guī)定,只有“設(shè)計(jì)”好了的項(xiàng)目才能開(kāi)始代碼實(shí)現(xiàn)。
對(duì)于軟件項(xiàng)目開(kāi)發(fā)而言,大型的項(xiàng)目和小型的項(xiàng)目所面臨的項(xiàng)目開(kāi)發(fā)的問(wèn)題是不同的。
一個(gè)人幾天就可以完成的項(xiàng)目和幾個(gè)小組好幾個(gè)月才能完成的項(xiàng)目相比,它們面臨的實(shí)際中的開(kāi)發(fā)問(wèn)題,和開(kāi)發(fā)結(jié)束后面臨的維護(hù)問(wèn)題都是不可同日而語(yǔ)的。
而且,技術(shù)的角度上看,適合大的項(xiàng)目的開(kāi)發(fā)方式也未必一定適合小的項(xiàng)目。
好了,說(shuō)了這么多,我只是想說(shuō):
綜上所述,軟件開(kāi)發(fā)過(guò)程是一個(gè)非常復(fù)雜的問(wèn)題,對(duì)于做技術(shù)的人來(lái)說(shuō)(尤其是做計(jì)算機(jī)軟件技術(shù)的人),解決問(wèn)題的方式只有一種,分析問(wèn)題、根據(jù)問(wèn)題設(shè)計(jì)解決方案、然后實(shí)現(xiàn)解決方案來(lái)解決問(wèn)題(解決方案未必一定是軟件)。
分析問(wèn)題的第一步,就是把現(xiàn)實(shí)中的東西轉(zhuǎn)換成為概念模型,這樣我們才有一個(gè)討論和研究的平臺(tái)。如果沒(méi)有一個(gè)明確的統(tǒng)一的概念模型,那么,無(wú)論做什么研究都會(huì)顯得毫無(wú)意義(古代的智者和詭辯論者經(jīng)常這么干)。
既然我們面臨的問(wèn)題是軟件項(xiàng)目開(kāi)發(fā),那么我們第一個(gè)要做的就是把它建模,并且對(duì)它進(jìn)行一下研究。
我會(huì)在接下來(lái)幾篇文章中對(duì)它進(jìn)行詳細(xì)的闡述,并且針對(duì)我在項(xiàng)目開(kāi)發(fā)中的一些經(jīng)驗(yàn)、總結(jié)和思考提出我對(duì)這個(gè)問(wèn)題設(shè)計(jì)的解決方案。
目的只有一個(gè),希望針對(duì)這個(gè)問(wèn)題作出一些探討。希望能夠拋磚引玉。