秦皇島網(wǎng)絡(luò)公司
  • 創(chuàng)想數(shù)科 ―― 領(lǐng)先的互聯(lián)網(wǎng)與信息化服務(wù)提供商!
  • 7x24小時(shí)咨詢熱線:0335-8889068 15033528182

軟件產(chǎn)品設(shè)計(jì)方法論

發(fā)布時(shí)間:2011-05-04       發(fā)布人:admin
    
“我認(rèn)為計(jì)算機(jī)科學(xué)至關(guān)重要的是保持‘計(jì)算’的趣味性,在她剛剛興起的時(shí)候,它的確非常有趣。當(dāng)然,用戶也常常為之買單;過了一段時(shí)間,我們開始認(rèn)真的對待客戶的抱怨,于是我們認(rèn)為自己應(yīng)該為計(jì)算機(jī)成功地,無錯(cuò)地完美運(yùn)行負(fù)責(zé)。我卻不這么想。我認(rèn)為我們應(yīng)該努力的是延伸計(jì)算機(jī)的功能,讓它們有新的發(fā)展方向,讓我們的屋子充滿趣味!------契約式設(shè)計(jì)之父:Bertrand Meyer

 置身于軟件行業(yè)的人們都要努力尋找一個(gè)難以把握的平衡點(diǎn):產(chǎn)品足夠的好,以至于它不會在諸如評估等階段就被否定掉,同時(shí)也不追求十全十美,精雕細(xì)鑿,否則會因?yàn)闀r(shí)間和金錢的因素?zé)o法達(dá)到預(yù)期目標(biāo)。

 構(gòu)建大型的,讓人滿意的系統(tǒng)的唯一方法是不要持續(xù)地復(fù)雜化,必須保持對復(fù)雜化的控制力。

 禁止對對象字段進(jìn)行直接的存取,轉(zhuǎn)而必須在對完成這項(xiàng)工作的簡單過程的封裝基礎(chǔ)上進(jìn)行。對象技術(shù)中的動態(tài)綁定機(jī)制完全能夠提供人們想要的,比重載更好的靈活性。

  正在構(gòu)建大型系統(tǒng)的人,天天面對的中心議題是:如何剔除不必要的,人為的,自找的復(fù)雜性,并控制好剩下的,無可避免的復(fù)雜性。

    復(fù)雜性可以分成兩類:必然的復(fù)雜性,它要求我們必須通過優(yōu)化組織,分析隱藏信息和模塊化等手段找到辦法來解決;另一類是人為的復(fù)雜性,我們應(yīng)該通過簡化要解決的問題來消除之。

    設(shè)計(jì)協(xié)同工作的組件: 

    * 更多的注意力放在整個(gè)庫的架構(gòu)上,而不是某個(gè)組成部分的設(shè)計(jì)。 

    * 如何設(shè)計(jì)一個(gè)庫才能讓它協(xié)調(diào)一至,它的眾多象一個(gè)難題所包含的各方面因素的可變元素怎樣才能協(xié)調(diào)工作。 

    契約式設(shè)計(jì): 

    * 主要目的是盡可能準(zhǔn)確的規(guī)定軟件元素彼此通訊時(shí)的彼此的義務(wù)和權(quán)利,從而有效的組織通訊,進(jìn)而幫助我們構(gòu)造出更好的軟件。 

    * 我們就將商業(yè)中的契約概念應(yīng)用的軟件系統(tǒng)中。 

    * 前置條件是客戶端的義務(wù),業(yè)務(wù)規(guī)則的描述。 

    * 后置條件是服務(wù)端的義務(wù),功能的具體處理流程; 

    * 類不變式是一種刻畫類和類實(shí)例的基本的一致性和完整性的方法; 

    * 依據(jù)這些概念,在你開發(fā)軟件的時(shí)候,不要僅僅注意實(shí)現(xiàn)的具體化,也應(yīng)該按照契約規(guī)定的方式提供一些更加抽象的功能-----可以從幾個(gè)方面大大的增加你軟件開發(fā)的經(jīng)驗(yàn)。