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