谈谈软件工程设计的艺术
生活随笔
收集整理的這篇文章主要介紹了
谈谈软件工程设计的艺术
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
談?wù)勡浖こ淘O(shè)計(jì)的藝術(shù)
如果生活的方式與你背道而馳,
如果正確的行為被你視而不見,
毀滅就會(huì)降臨,難得保全。
馬基雅維利, 約1514年
作為最重要的事情之一,如果不是唯一最重要的,一個(gè)系統(tǒng)的核心性質(zhì)是它必須在
其生命周期內(nèi)保持一種 穩(wěn)定的 結(jié)構(gòu)。
艾瓦耳。雅可布森
以上的兩段話,一是引自一位文藝復(fù)興時(shí)期的實(shí)用主義政治學(xué)家,另一是引自一位
當(dāng)代設(shè)計(jì)大師。這兩段話很好的反映了軟件設(shè)計(jì)工程所面臨的困境,兩個(gè)相反方向
的作用力,就象陰陽相生相克:一方面,軟件設(shè)計(jì)需要盡一切可能減少開發(fā)時(shí)間,
使軟件盡快面市,同時(shí)也對(duì)市場的和客戶需求的變化作出 迅速的反應(yīng);而另一方面,
我們又必須花費(fèi)足夠的時(shí)間以保證軟件的設(shè)計(jì)有一個(gè)好的架構(gòu),這樣我們可以降低
軟件的維護(hù)費(fèi)用,而且軟件可以有較長的生命期。
軟件設(shè)計(jì)過分強(qiáng)調(diào)任何一個(gè)方面都會(huì)造成軟件工程投資的極大浪費(fèi)甚至失敗。過分
強(qiáng)調(diào)軟件開發(fā)的速度,而忽視軟件架構(gòu)的設(shè)計(jì)是那些對(duì)軟件開發(fā)工程缺乏經(jīng)驗(yàn)者最
容易犯的錯(cuò)誤。糟糕的軟件架構(gòu)設(shè)計(jì)會(huì)導(dǎo)致所謂的1.0版現(xiàn)象,即軟件只能開發(fā)到第
一版。后續(xù)開發(fā)往往因?yàn)樾薷脑写a過於困難而夭折。因?yàn)樵O(shè)計(jì)者缺乏長遠(yuǎn)的目
光和足夠的項(xiàng)目開發(fā)經(jīng)驗(yàn)而導(dǎo)致過於急躁的作出架構(gòu)上的決策,因而導(dǎo)致軟件結(jié)構(gòu)
的支離破碎是很可悲的,往往很多好的軟件設(shè)計(jì)創(chuàng)意就這樣胎死腹中。
另一個(gè)極端同樣會(huì)導(dǎo)致災(zāi)難,因?yàn)槿绻^於強(qiáng)調(diào)軟件結(jié)構(gòu)的優(yōu)雅和可擴(kuò)展性,導(dǎo)致
過多的開發(fā)時(shí)間放在軟件架構(gòu)設(shè)計(jì)上,結(jié)果使 軟件的開發(fā)時(shí)間過長,等到軟件推向
市場的時(shí)候,雖然設(shè)計(jì)上是完美的,但是競爭對(duì)手卻早已占據(jù)了市場。軟件設(shè)計(jì)的
完美主義者容易犯這樣的錯(cuò)誤。這種人通常是設(shè)計(jì)方面的
行家里手,而且對(duì)軟件結(jié)構(gòu)的完美有著不懈的追求。但是正是過於追求完美才是工
程開發(fā)方面的大忌。不是每一個(gè)軟件的設(shè)計(jì)都有時(shí)間和精力(同時(shí)也是財(cái)力)做到象
STL那樣的完美設(shè)計(jì)。
通常一個(gè)好的軟件設(shè)計(jì)會(huì)努力在這兩個(gè)互斥的極端之間達(dá)到一種平衡。就象儒家講
的中庸。這兩個(gè)極端之間的張力是隨著軟件開發(fā)的領(lǐng)域,環(huán)境,條件,時(shí)間,客戶
的要求,競爭對(duì)手現(xiàn)有的水平,等等變化而變化的。就象水形之常變。但是若能領(lǐng)
會(huì)其中的道,能夠把握其中的藝術(shù),就能夠象庖丁解牛一樣“以無厚而入有間”,
游刃而有余了。但是關(guān)鍵在於經(jīng)驗(yàn)的積累和對(duì)平衡的領(lǐng)悟。經(jīng)驗(yàn)可以很大一部分從
前人那里得來,但是對(duì)道的把握卻是另一度的思維空間了。 所以說軟件工程既是科
學(xué)又是藝術(shù)。但是值得注意的是,這絕對(duì)不應(yīng)當(dāng)成為忽視軟件工程規(guī)范的借口,就
象楊振寧可以談?wù)摽茖W(xué)研究的藝術(shù)并不表示柯云路之流的所謂“生命科學(xué)”就不是
純粹的胡扯。
設(shè)計(jì)一個(gè)容易維護(hù)并且有很強(qiáng)生命力的軟件不是一件很容易的事;設(shè)計(jì)一個(gè)能夠很
快實(shí)現(xiàn)的軟件也不是小菜一碟。平衡這兩者來給出一個(gè)可行的,健壯的設(shè)計(jì),使軟
件能夠在市場上獲得成功并生存下去是一件需要奇跡般力量的事業(yè), 然而我們卻必
須在普通的工作中用我們的創(chuàng)造力去完成這個(gè)奇跡。
如果生活的方式與你背道而馳,
如果正確的行為被你視而不見,
毀滅就會(huì)降臨,難得保全。
馬基雅維利, 約1514年
作為最重要的事情之一,如果不是唯一最重要的,一個(gè)系統(tǒng)的核心性質(zhì)是它必須在
其生命周期內(nèi)保持一種 穩(wěn)定的 結(jié)構(gòu)。
艾瓦耳。雅可布森
以上的兩段話,一是引自一位文藝復(fù)興時(shí)期的實(shí)用主義政治學(xué)家,另一是引自一位
當(dāng)代設(shè)計(jì)大師。這兩段話很好的反映了軟件設(shè)計(jì)工程所面臨的困境,兩個(gè)相反方向
的作用力,就象陰陽相生相克:一方面,軟件設(shè)計(jì)需要盡一切可能減少開發(fā)時(shí)間,
使軟件盡快面市,同時(shí)也對(duì)市場的和客戶需求的變化作出 迅速的反應(yīng);而另一方面,
我們又必須花費(fèi)足夠的時(shí)間以保證軟件的設(shè)計(jì)有一個(gè)好的架構(gòu),這樣我們可以降低
軟件的維護(hù)費(fèi)用,而且軟件可以有較長的生命期。
軟件設(shè)計(jì)過分強(qiáng)調(diào)任何一個(gè)方面都會(huì)造成軟件工程投資的極大浪費(fèi)甚至失敗。過分
強(qiáng)調(diào)軟件開發(fā)的速度,而忽視軟件架構(gòu)的設(shè)計(jì)是那些對(duì)軟件開發(fā)工程缺乏經(jīng)驗(yàn)者最
容易犯的錯(cuò)誤。糟糕的軟件架構(gòu)設(shè)計(jì)會(huì)導(dǎo)致所謂的1.0版現(xiàn)象,即軟件只能開發(fā)到第
一版。后續(xù)開發(fā)往往因?yàn)樾薷脑写a過於困難而夭折。因?yàn)樵O(shè)計(jì)者缺乏長遠(yuǎn)的目
光和足夠的項(xiàng)目開發(fā)經(jīng)驗(yàn)而導(dǎo)致過於急躁的作出架構(gòu)上的決策,因而導(dǎo)致軟件結(jié)構(gòu)
的支離破碎是很可悲的,往往很多好的軟件設(shè)計(jì)創(chuàng)意就這樣胎死腹中。
另一個(gè)極端同樣會(huì)導(dǎo)致災(zāi)難,因?yàn)槿绻^於強(qiáng)調(diào)軟件結(jié)構(gòu)的優(yōu)雅和可擴(kuò)展性,導(dǎo)致
過多的開發(fā)時(shí)間放在軟件架構(gòu)設(shè)計(jì)上,結(jié)果使 軟件的開發(fā)時(shí)間過長,等到軟件推向
市場的時(shí)候,雖然設(shè)計(jì)上是完美的,但是競爭對(duì)手卻早已占據(jù)了市場。軟件設(shè)計(jì)的
完美主義者容易犯這樣的錯(cuò)誤。這種人通常是設(shè)計(jì)方面的
行家里手,而且對(duì)軟件結(jié)構(gòu)的完美有著不懈的追求。但是正是過於追求完美才是工
程開發(fā)方面的大忌。不是每一個(gè)軟件的設(shè)計(jì)都有時(shí)間和精力(同時(shí)也是財(cái)力)做到象
STL那樣的完美設(shè)計(jì)。
通常一個(gè)好的軟件設(shè)計(jì)會(huì)努力在這兩個(gè)互斥的極端之間達(dá)到一種平衡。就象儒家講
的中庸。這兩個(gè)極端之間的張力是隨著軟件開發(fā)的領(lǐng)域,環(huán)境,條件,時(shí)間,客戶
的要求,競爭對(duì)手現(xiàn)有的水平,等等變化而變化的。就象水形之常變。但是若能領(lǐng)
會(huì)其中的道,能夠把握其中的藝術(shù),就能夠象庖丁解牛一樣“以無厚而入有間”,
游刃而有余了。但是關(guān)鍵在於經(jīng)驗(yàn)的積累和對(duì)平衡的領(lǐng)悟。經(jīng)驗(yàn)可以很大一部分從
前人那里得來,但是對(duì)道的把握卻是另一度的思維空間了。 所以說軟件工程既是科
學(xué)又是藝術(shù)。但是值得注意的是,這絕對(duì)不應(yīng)當(dāng)成為忽視軟件工程規(guī)范的借口,就
象楊振寧可以談?wù)摽茖W(xué)研究的藝術(shù)并不表示柯云路之流的所謂“生命科學(xué)”就不是
純粹的胡扯。
設(shè)計(jì)一個(gè)容易維護(hù)并且有很強(qiáng)生命力的軟件不是一件很容易的事;設(shè)計(jì)一個(gè)能夠很
快實(shí)現(xiàn)的軟件也不是小菜一碟。平衡這兩者來給出一個(gè)可行的,健壯的設(shè)計(jì),使軟
件能夠在市場上獲得成功并生存下去是一件需要奇跡般力量的事業(yè), 然而我們卻必
須在普通的工作中用我們的創(chuàng)造力去完成這個(gè)奇跡。
總結(jié)
以上是生活随笔為你收集整理的谈谈软件工程设计的艺术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3DSlicer29:Debug or
- 下一篇: 3DSlicer30:VS-Qt5VSa