軟件產(chǎn)品設(shè)計(jì)方法論
發(fā)布時(shí)間:2011-05-04 發(fā)布人:admin
“我認(rèn)為計(jì)算機(jī)科學(xué)至關(guān)重要的是保持‘計(jì)算’的趣味性,在她剛剛興起的時(shí)候,它的確非常有趣。當(dāng)然,用戶(hù)也常常為之買(mǎi)單;過(guò)了一段時(shí)間,我們開(kāi)始認(rèn)真的對(duì)待客戶(hù)的抱怨,于是我們認(rèn)為自己應(yīng)該為計(jì)算機(jī)成功地,無(wú)錯(cuò)地完美運(yùn)行負(fù)責(zé)。我卻不這么想。我認(rèn)為我們應(yīng)該努力的是延伸計(jì)算機(jī)的功能,讓它們有新的發(fā)展方向,讓我們的屋子充滿(mǎn)趣味。”------契約式設(shè)計(jì)之父:Bertrand Meyer
置身于軟件行業(yè)的人們都要努力尋找一個(gè)難以把握的平衡點(diǎn):產(chǎn)品足夠的好,以至于它不會(huì)在諸如評(píng)估等階段就被否定掉,同時(shí)也不追求十全十美,精雕細(xì)鑿,否則會(huì)因?yàn)闀r(shí)間和金錢(qián)的因素?zé)o法達(dá)到預(yù)期目標(biāo)。
構(gòu)建大型的,讓人滿(mǎn)意的系統(tǒng)的唯一方法是不要持續(xù)地復(fù)雜化,必須保持對(duì)復(fù)雜化的控制力。
禁止對(duì)對(duì)象字段進(jìn)行直接的存取,轉(zhuǎn)而必須在對(duì)完成這項(xiàng)工作的簡(jiǎn)單過(guò)程的封裝基礎(chǔ)上進(jìn)行。對(duì)象技術(shù)中的動(dòng)態(tài)綁定機(jī)制完全能夠提供人們想要的,比重載更好的靈活性。
正在構(gòu)建大型系統(tǒng)的人,天天面對(duì)的中心議題是:如何剔除不必要的,人為的,自找的復(fù)雜性,并控制好剩下的,無(wú)可避免的復(fù)雜性。
復(fù)雜性可以分成兩類(lèi):必然的復(fù)雜性,它要求我們必須通過(guò)優(yōu)化組織,分析隱藏信息和模塊化等手段找到辦法來(lái)解決;另一類(lèi)是人為的復(fù)雜性,我們應(yīng)該通過(guò)簡(jiǎn)化要解決的問(wèn)題來(lái)消除之。
設(shè)計(jì)協(xié)同工作的組件:
* 更多的注意力放在整個(gè)庫(kù)的架構(gòu)上,而不是某個(gè)組成部分的設(shè)計(jì)。
* 如何設(shè)計(jì)一個(gè)庫(kù)才能讓它協(xié)調(diào)一至,它的眾多象一個(gè)難題所包含的各方面因素的可變?cè)卦鯓硬拍軈f(xié)調(diào)工作。
契約式設(shè)計(jì):
* 主要目的是盡可能準(zhǔn)確的規(guī)定軟件元素彼此通訊時(shí)的彼此的義務(wù)和權(quán)利,從而有效的組織通訊,進(jìn)而幫助我們構(gòu)造出更好的軟件。
* 我們就將商業(yè)中的契約概念應(yīng)用的軟件系統(tǒng)中。
* 前置條件是客戶(hù)端的義務(wù),業(yè)務(wù)規(guī)則的描述。
* 后置條件是服務(wù)端的義務(wù),功能的具體處理流程;
* 類(lèi)不變式是一種刻畫(huà)類(lèi)和類(lèi)實(shí)例的基本的一致性和完整性的方法;
* 依據(jù)這些概念,在你開(kāi)發(fā)軟件的時(shí)候,不要僅僅注意實(shí)現(xiàn)的具體化,也應(yīng)該按照契約規(guī)定的方式提供一些更加抽象的功能-----可以從幾個(gè)方面大大的增加你軟件開(kāi)發(fā)的經(jīng)驗(yàn)。
置身于軟件行業(yè)的人們都要努力尋找一個(gè)難以把握的平衡點(diǎn):產(chǎn)品足夠的好,以至于它不會(huì)在諸如評(píng)估等階段就被否定掉,同時(shí)也不追求十全十美,精雕細(xì)鑿,否則會(huì)因?yàn)闀r(shí)間和金錢(qián)的因素?zé)o法達(dá)到預(yù)期目標(biāo)。
構(gòu)建大型的,讓人滿(mǎn)意的系統(tǒng)的唯一方法是不要持續(xù)地復(fù)雜化,必須保持對(duì)復(fù)雜化的控制力。
禁止對(duì)對(duì)象字段進(jìn)行直接的存取,轉(zhuǎn)而必須在對(duì)完成這項(xiàng)工作的簡(jiǎn)單過(guò)程的封裝基礎(chǔ)上進(jìn)行。對(duì)象技術(shù)中的動(dòng)態(tài)綁定機(jī)制完全能夠提供人們想要的,比重載更好的靈活性。
正在構(gòu)建大型系統(tǒng)的人,天天面對(duì)的中心議題是:如何剔除不必要的,人為的,自找的復(fù)雜性,并控制好剩下的,無(wú)可避免的復(fù)雜性。
復(fù)雜性可以分成兩類(lèi):必然的復(fù)雜性,它要求我們必須通過(guò)優(yōu)化組織,分析隱藏信息和模塊化等手段找到辦法來(lái)解決;另一類(lèi)是人為的復(fù)雜性,我們應(yīng)該通過(guò)簡(jiǎn)化要解決的問(wèn)題來(lái)消除之。
設(shè)計(jì)協(xié)同工作的組件:
* 更多的注意力放在整個(gè)庫(kù)的架構(gòu)上,而不是某個(gè)組成部分的設(shè)計(jì)。
* 如何設(shè)計(jì)一個(gè)庫(kù)才能讓它協(xié)調(diào)一至,它的眾多象一個(gè)難題所包含的各方面因素的可變?cè)卦鯓硬拍軈f(xié)調(diào)工作。
契約式設(shè)計(jì):
* 主要目的是盡可能準(zhǔn)確的規(guī)定軟件元素彼此通訊時(shí)的彼此的義務(wù)和權(quán)利,從而有效的組織通訊,進(jìn)而幫助我們構(gòu)造出更好的軟件。
* 我們就將商業(yè)中的契約概念應(yīng)用的軟件系統(tǒng)中。
* 前置條件是客戶(hù)端的義務(wù),業(yè)務(wù)規(guī)則的描述。
* 后置條件是服務(wù)端的義務(wù),功能的具體處理流程;
* 類(lèi)不變式是一種刻畫(huà)類(lèi)和類(lèi)實(shí)例的基本的一致性和完整性的方法;
* 依據(jù)這些概念,在你開(kāi)發(fā)軟件的時(shí)候,不要僅僅注意實(shí)現(xiàn)的具體化,也應(yīng)該按照契約規(guī)定的方式提供一些更加抽象的功能-----可以從幾個(gè)方面大大的增加你軟件開(kāi)發(fā)的經(jīng)驗(yàn)。
- 上一篇:如何解決初級(jí)軟件項(xiàng)目經(jīng)理的常見(jiàn)錯(cuò)誤
- 下一篇:已經(jīng)是最后一篇了
相關(guān)文章