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