<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      設計做到什么程度?

      在TXX的設計Review會議上,WQX問我,我們的設計可以做到什么程度?
      我說,錢多就設計的詳細,錢少就設計的粗略。
      他說,也許我們可以穩定到某一個程度,不論項目大小,錢多少。

      我想,大家都體驗到了UML為設計帶來的許多好處,比如交流便捷,規范開發,還有就是強迫思考,強迫我們考慮“誰是誰”和“誰做什么”。

      如何使用UML,Martin Fowler在《UML Distilled Third Edition》中做了很精辟的總結,我理理自己的思路,以饗大家。


      在設計精細程度上,一般有三種用法:草圖,藍圖和程序。


      將UML視為草圖,著重于溝通交流,在紙上或者白板上與一群人討論,并不一定拘泥于UML的格式。我們不會討論所有要寫的程序,著眼點只在系統的部分或者某個層面。我們可以在幾個小時的開發工作前,用10分鐘交流下設計;或者用1天的時間,整理整理接下來為期兩周的迭代。

       


      這樣的設計可能是非正式的,我們可以把白板上的照下來,把紙上的掃描下來,再加進設計文檔。使用草圖,也往往意味著我們會討論一些可能的替代性做法。所以,Martin說草圖的本質是“選擇性”。


      我覺著在YXXXX項目中,用的是這樣的方式。我要求大家把接口定義出來,把主要的時序畫出來,不論是在紙上還是在Visio上,已經畫好還是現場畫。我關心的接口有兩部分,Java程序接口,主要是業務層接口,需要知道業務層暴露出哪些方法供別人調用;還有前后的數據接口,即DTO,我需要知道業務層的方法需要什么數據,會返回什么數據。我關心開發人員是否理解了調用順序,以及開發人員的工作分配,即誰做哪個類哪個方法。


      將UML視為藍圖,更傾向于“完整性”。我們關注于系統的整體結構,框架層次,必須完成大的設計決策。如系統是由哪些子系統/模塊構成的,其間的聯系是什么,層次如何分布,怎樣限定層與層的通信,關鍵類的識別和關鍵方法的分配等等。


      這時我們需要借助工具來完成,并遵循一些標準,比如命名方式,注釋規則,畫圖約束等等。這樣的設計一般比較正式,也可能是大多數項目所使用的。接下來,可能會繼續細化,增加類的契約,方法的契約等等;也可能直接用來開發,更進一步的設計會在寫代碼前完成。

       

      在TXX項目中,我們便用的是這種方式。我們識別定義了主要的類方法,但并未描述業務規則和異常,并未滿足80/20法則(80%的方法和20%的類),對類和方法的描述也不是十分充分。而在實際開發過程中,藍圖更多的起指導作用,約束力比較小。

       

      藍圖與草圖的主要區別在于:草圖強調信息通訊,而藍圖強調無所不包;草圖具有探索性質,而藍圖是定稿。


      如果在藍圖的基礎上繼續設計,那么寫代碼的工作也就將越“無趣”;甚至,如果工具支持的話,我們可以在UML中完成代碼。MDA(模型驅動架構)就是基于這樣的思路。將UML視為程序語言,就需要可以把設計人員畫的圖直接生成為代碼,將寫的說明性文字生成為注釋。

       

      目前這種方式我只是聽說過,還從沒有見過。


      對于持有第一種視角的人來說,UML中最重要的是圖;而對于后兩種觀點,UML最重要的是本質(分析方法、設計方法)。

       

      而對于概念(概念是OO的核心)理解來說,也會有兩種觀點:軟件觀點(software perspective)和概念觀點(conceptual perspective)。

       

      持有軟件觀點的人的設計,任何UML元素(包、類、關系等等)都可以對應到軟件的實體中;而持有概念觀點的人,UML元素則對應到業務領域中的概念。

       

      從程序員成長的設計師可能更容易具有軟件觀點;而概念觀點更容易為業務領域專家所有。

       

      回到我們的問題上,需要將設計做到什么程度。程度必然與衡量有關,而衡量就必須有標準。通過項目的積累,我們會逐步完善這個衡量標準。

       

      排除設計觀點的差異,忽略成本因素,與設計相關最直接的因素是:時間,作者(設計人員)和讀者(開發人員)。

       

      毋庸置疑,時間決定了設計的程度。不同的項目有不同的時間限制,而資源也是有限的,或許我們可以根據不同的項目類型,制定不同的設計標準。

       

      設計人員的能力決定了設計的質量,也許會因經驗不足,導致開發階段風險與成本上升。提高設計能力是我們持久的目標。

       

      不同的開發人員,對設計的要求應該是不同的。如果是成員之間比較熟悉的團隊,草圖的方式是最便捷和有效的;如果開發人員水平參差不齊,使用藍圖不失為一個好辦法;而開發人員僅僅是傳說中的“藍領”,那么我們不得不將設計視為程序。

       

      除此,還有很多重要的因素,如軟件開發的生命周期,需求穩定程度等等。

       

      最后的結論是,設計可能無法穩定到一個程度,也許WQX的意思是我們可以穩定到某一種質量。

       

      歡迎討論!

      posted @ 2010-07-26 12:36  葡萄城技術團隊  閱讀(3453)  評論(12)    收藏  舉報
      主站蜘蛛池模板: 亚洲一区二区三区丝袜| aⅴ精品无码无卡在线观看| 无套内射视频囯产| 国产精品人妻在线观看| 亚洲一区二区三区啪啪| 九九热在线观看视频精品| 999精品全免费观看视频| 国产成人精品无码播放| 高清不卡一区二区三区| 少妇爽到呻吟的视频| 亚洲精品一区二区制服| av亚洲在线一区二区| 国产首页一区二区不卡| 亚洲男人在线天堂| 日本午夜精品一区二区三区电影| 国产日韩久久免费影院| 人妻少妇偷人精品一区| 在厨房拨开内裤进入在线视频| 夜夜添无码一区二区三区| 欧美熟妇xxxxx欧美老妇不卡| 国产精品成人aaaaa网站| 四虎永久精品在线视频| 四虎在线永久免费看精品| 亚洲精品中文综合第一页| 最新永久免费AV无码网站| 免费观看欧美猛交视频黑人| 免费黄色大全一区二区三区| 国产精品中文字幕观看| 太深太粗太爽太猛了视频| A级孕妇高清免费毛片| 国产sm调教折磨视频| 97久久久精品综合88久久| 国产午夜福利精品片久久| 亚洲欧美成人aⅴ在线| 国产精品视频一区不卡| 好吊视频在线一区二区三区| 日韩伦理片一区二区三区| 亚洲免费成人av一区| 南丹县| 日韩区二区三区中文字幕| 日韩午夜福利片段在线观看|