鄭州軟件開(kāi)發(fā)之我們的程序觀
發(fā)布者: 鄭州軟件開(kāi)發(fā) 10-20
請(qǐng)先看下面的圖示:
機(jī)器代碼 --〉高級(jí)語(yǔ)言實(shí)現(xiàn) --〉結(jié)構(gòu)圖 -〉自然語(yǔ)言
我們很早就認(rèn)識(shí)到,高級(jí)語(yǔ)言是機(jī)器語(yǔ)言的抽象,結(jié)構(gòu)圖是對(duì)高級(jí)語(yǔ)言的抽象,而自然語(yǔ)言是對(duì)結(jié)構(gòu)圖的抽象.這是很好理解的,也符合我們的思維習(xí)慣.可是倒過(guò)來(lái)看,逆向思維一下,會(huì)有更驚人的發(fā)現(xiàn).它們不正是我們"做"一個(gè)軟件標(biāo)準(zhǔn)的流程嗎? 鄭州軟件開(kāi)發(fā)!
可以說(shuō),它們表達(dá)的都是同一個(gè)東西,只是抽象的層次不同而已.抽象層次越高,所需要處理的基本抽象思考要素也就越多(它們通常被包含在豐富的語(yǔ)義中). 但是,涉及到的具體實(shí)現(xiàn)細(xì)節(jié)反而越少.一句話,我們的軟件活動(dòng)大都是從高度抽象到底層抽象,這個(gè)演化過(guò)程是客觀規(guī)律,隨著軟件工程水平的提高,從此岸 到彼岸的直接跨越就變得非常不合理(以前確實(shí)存在過(guò),不過(guò)想想當(dāng)時(shí)的軟工水平吧).
有了從高到低的抽象層次,就需要逐步地象下樓梯一樣一層層往下.然而下的
過(guò)程是危險(xiǎn)的,也是值得研究的.什么是這個(gè)過(guò)程中最重要的,我覺(jué)得是保持一
致性,起碼是概念的一致性.為什么呢?舉個(gè)簡(jiǎn)單的例子:
客戶(hù)說(shuō)我要一個(gè)信息系統(tǒng),這是一個(gè)聽(tīng)起來(lái)很簡(jiǎn)單的自然語(yǔ)言表達(dá),可是因?yàn)?
過(guò)于抽象而讓開(kāi)發(fā)者無(wú)從下手.于是開(kāi)發(fā)者要和客戶(hù)進(jìn)行不斷地溝通,是客戶(hù)
的概念能毫無(wú)遺漏地傳達(dá)給開(kāi)發(fā)者(如果客戶(hù)很幸運(yùn)有明確的概念的話).遺
憾的是,這個(gè)過(guò)程是沒(méi)有保障的.當(dāng)客戶(hù)的概念大部分(或全部)都已傳達(dá)給開(kāi)
發(fā)者時(shí),他開(kāi)始設(shè)計(jì),目的只有一個(gè),實(shí)現(xiàn)那個(gè)概念.設(shè)計(jì)的輸出將作為編碼的
輸入,我們?nèi)匀粺o(wú)法保障這個(gè)過(guò)程的一致性.可以看到,到此為止,系統(tǒng)中沒(méi)有
保障的因素已經(jīng)很多,如果中間存在任何稍大的不一致,就必須重復(fù)進(jìn)行大量
的工作,就好像已從20樓走到2樓,突然發(fā)現(xiàn)忘了穿鞋,還得回到20樓一樣令人
同情.假設(shè)我們已經(jīng)順利地到了2樓(值得慶祝),剩下的工作將容易許多,高級(jí)
語(yǔ)言到機(jī)器代碼的一致性目前已經(jīng)得到很好的保障,這個(gè)成就讓軟件業(yè)的生產(chǎn)
率提高了很多.可是這對(duì)我們現(xiàn)今的軟件開(kāi)發(fā)并沒(méi)有實(shí)質(zhì)性的幫助,因?yàn)?
在當(dāng)前整個(gè)軟件開(kāi)發(fā)周期中,這個(gè)過(guò)程只占了少量的精力和時(shí)間(我認(rèn)為接近
于零),沒(méi)有一個(gè)高級(jí)語(yǔ)言程序員會(huì)關(guān)注自己代碼的反匯編結(jié)果.類(lèi)似的還有
開(kāi)發(fā)工具等相當(dāng)次要的因素.所以,問(wèn)題仍然很?chē)?yán)重.
危機(jī)不可避免地存在著,關(guān)注它們不代表我是悲觀主義者.和所有不能由人類(lèi)
完全控制卻可以供人類(lèi)充分研究并利用的自然科學(xué)一樣,軟件工程學(xué)必然有
客觀的規(guī)律.矛盾總是存在的,因?yàn)槟切┮恢滦圆豢赡?00%的滿(mǎn)足(人與人的
交流不可能是無(wú)縫的,除非被Clone),但我們可以不斷校正,運(yùn)用合理的方法
學(xué)使之接近理想狀態(tài),即不斷地進(jìn)步.在這方面,中國(guó)人又一次落后了,大學(xué)里
教條似的軟件工程學(xué),企業(yè)界對(duì)于新技術(shù)的偏執(zhí)和對(duì)設(shè)計(jì),管理的忽視,怎么
可能從根本上提高我們極低的軟件水平.而從事理論研究,以科學(xué)的態(tài)度對(duì)待
軟件業(yè)的研究人員,又在哪里呢?
不平凡軟件,鄭州軟件開(kāi)發(fā)公司,鄭州軟件開(kāi)發(fā),鄭州軟件定制,鄭州微信
開(kāi)發(fā),鄭州進(jìn)銷(xiāo)存定制開(kāi)發(fā),鄭州OA系統(tǒng)開(kāi)發(fā),鄭州軟件開(kāi)發(fā)公司