亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

建模的誤區

2019-11-18 13:27:34
字體:
來源:轉載
供稿:網友

  作者:紫龍
  
  作者:Scott Ambler (scott.ambler@ronin-intl.com)
  
  原文:http://www.sdmagazine.com/documents/s=844/sdm0108k/0108k.htm
  
  譯注:本文翻譯未征得作者同意,僅作練習。
  
  
  無論你遵從的是重量級的方法,比如EnterPRise Unified Process(EUP),還是輕量級的開發過程,如Extreme Programming(XP),建模在軟件開發中都是不可或缺的。但不幸的是其中充斥著各種謬誤與迷思。這來自于各個方面,有從理論家錯誤的研究、數十年來信息技術領域內的文化沉積、軟件工具開發商天花亂墜半的市場宣傳以及象Object Management Group (OMG)和IEEE這類組織的標準。這個月,我要揭示建模中的誤區,指出其相應的事實真相。
  
  
  誤區一:建模就等于是寫文檔
  
  這很可能是其中最具破壞力的一條,因為開發人員可以此為借口而完全放棄建模。許多優秀的軟件開發人員會說他們不想把時間浪費在這些“無用的“文檔上。他們沉溺于編碼之中,制造著一些脆弱而劣質的系統。另外,甚至于許多盡責的開發人員現在也認為建模是一件討厭的事,而不愿去學習相應的建模技術。
  
  
  事實分析:“模型”與“文檔”這二者在概念上是風馬牛不相及的—你可以擁有一個不是文檔的模型和不是模型的文檔。一幅設計圖就是一個模型,而不論是被畫在餐巾紙的背面,或寫在一塊白板上,或在Class Responsibility Collaboration(CRC)卡片中,還是根據記錄在報紙和便簽紙上的流程圖而生成的一個粗略的用戶界面原型。雖然這些都不能說是文檔,但他們卻都是有價值的模型。
  
  
  建模很象是作計劃:作計劃的價值在于計劃編制的過程中,而非計劃本身;價值體現在建模的活動中,而非模型本身。實際上,模型不是你系統中的一部分正式的文檔,而且在完成它們的使命后可以被丟掉。你會發現值得保留的只有很少的模型,而且它一定是非常完美。
  
  
  誤區二:從開始階段你可以考慮到所有的一切
  
  這種說法流行于二十世紀七十年代到八十年代早期,現今的許多經理都是在那個時候學習的軟件開發。對這一點的迷信會導致在前期投入可觀的時間去對所有的一切建模以期把所有一切都弄正確,試圖在編碼開始前就“凍結”所有的需求(見誤區四),以致于患上“分析期麻痹癥” – 要等到模型非常完美之后才敢向前進?;谶@個觀點,項目組開發了大量的文檔,而不是他們真正想要得到的—開發滿足需要的軟件。
  
  
  事實分析:怎么才能走出這個誤區呢?首先,你必須熟悉到你不能考慮到所有的細枝末節。第二,熟悉到編碼員可能會對建模者的工作不以為然(這是可能的,事實上建模者所作的工作在實際價值中只占很少的部分),他們或許會說模型沒有反應出真實的情況。第三,熟悉到不管你的最初所作的規格說明書有多好,但注定代碼會很快地與之失去同步,即便是你自己建模自己編碼。一個基本的道理就是代碼永遠只會和代碼保持一致。第四,熟悉到迭代法(小規模地建模,編一些代碼,做一些測試,可能還會做一個小的工作版本)是軟件開發的準則。它是現代重量級的軟件開發過程(如EUP),以及輕量級(如XP)的基本原理。
  
  
  誤區三:建模意味著需要一個重量級的軟件開發過程
  
  走入這個誤區(經常與誤區一有聯系)的項目組經常是連建模都徹底地放棄了,應為這樣的軟件開發過程對他們來說太復雜太沉重了。這不亞于一場天災。
  
  
  事實分析:你可以用一種輕靈的方式取而代之。關于用簡單的工具進行簡單地建模的具體內容可參看Agile Modeling(AM)。而且,你可以丟棄你的模型當使命完之后,同樣也可以很基本的方式進行建模(比如,從辦公桌起來,來到白板前就開始構略草圖)。只要你愿意,你就可以輕松地建模。
  
  
  誤區四:必須“凍結”需求
  
  這個要求經常來自高級經理,他們確切地想知道他們從這個項目組能得到什么東西。這樣的好處就是在開發周期的早期確定下需求,就可以確切地知道所要的是一個什么樣的東西;缺點就是他們可能沒有得到實際上所需要的(不全或錯誤的需求,譯者)。
  
  
  事實分析:變化總會發生的。由于優先級的變化和逐漸對系統有了更進一步的理解,都會引起需求的變化。與凍結需求相反,估計項目成功的風險,盡量去接受變化而且相應地采取行動,就象XP所建議的一樣。
  
  誤區五:設計是不可更改的
  
  如同誤區四,要求每一個開發人員必須嚴格遵從“設計“,導致開發人員為了符合“設計“而作了錯誤的事情或以錯誤的方式作正確的事情?;蛘呤呛唵蔚睾雎粤嗽O計,否定了所有設計可能帶來的好處。凍結了設計,你就不能從在項目進程中所學到知識進一步獲益。另外一個很大的趨勢就是開發出大量的文檔而不是實際的軟件,使用面向文檔的CASE工具而不是能給項目帶來實際價值的面向應用的工具。
  
  
  事實分析:事實上,設計會經常根據開發人員和數據庫治理員的反饋進行修改,因為他們是最接近實際應用的人,通常他們對技術環境的理解要好于建模者。我們必須的面對這樣一個事實:人無完人,他們所作的工作也不可能盡善盡美。難道您真的想將一個并不完善的設計固定下來而不再去修改其中的錯誤嗎?另外,假如需求并沒有被凍結,其實就意味著你不能凍結你的設計,因為任何需求的修改勢必影響設計。對之,正確的態度是:只要你的代碼還在改動,涉及就沒完。
  
  
  誤區六:必須使用CASE工具
  
  建模經常被認為是一項復雜的工作,因此需要大量地使用CASE工具輔助進行。
  
  
  事實分析:是的,建??梢允呛軓碗s的。但你完全可以建立一個有效而簡單的模型表述其中要害的信息,而不是將一些無關緊要的細節包括進來。
  
  
  比如,我經常使用UML建立模型來表示類、它們的屬性及一些要害的業務操作,但并不畫出屬性的存取操作(get和set),以及維護與其它類關系的框架代碼,或者其他一些瑣碎的實現細節。我通過建模尋找解決問題的方法,讓我和我的同事能繼續前進去實現這個模型。以這樣靈活的方式,大多數情況下我并不需要一個CASE工具來支持建模工作,一塊白板,或者一臺數字相機足以。這樣,我就不用花時間去評估CASE工具,不用去和工具供給商討論許可證的問題,也免去了人員培訓開銷。CASE工具只有當它能體現最佳性價比時(相對你自己的情況而言),才值得購買。大多數情況下,我都能不用它而達到目的(完成建模)。我經常使用的工具有Together/J(http://www.togethersoft.com/) – 因為它能產生數目可觀的java框架代碼;還有ERWin(http://www.cai.com/) -- 因為它能規劃數據庫。這兩個工具真正地幫助我實現了軟件開發的目的 – 制造滿足用戶要求的軟件。但我絕大多數得建模工作仍然使用的是簡單的工具,而不是CASE工具。
  
  
  誤區七:建模是在浪費時間
  
  許多新手都這樣認為,這主要是因為他們所接受的教育僅僅局限于如何編寫代碼,對于完整的開發流程鮮有接觸。而且他們的經驗也僅限于如何實現代碼,就如初級程序員。他們放棄了提高效率和學習技能的機會,這些技能能夠使他們很輕易地適應不同的項目或組織。他們應該為此感到羞愧。
  
  
  事實分析:在大多數情況下,在開始編碼之前畫一個草圖、開發一個粗率的原型或者制作一些索引卡片都能提高你的生產效率。高效的開發者在編碼之前都要進行建模工作。另外,建模是一種很好的在項目組成員與項目負責人之間溝通途徑。你們在這個過程中探討問題,從而對所要的是一個什么樣的東西可以得到更好的理解,涉及到該項目中的每個成員也可得到對該項目有一個從分的了解。
  
  
  誤區八:數據模型(Data Model)就是一切
  
  許多組織基于數據模型就蹣跚啟動新的開發工作,也許正如你所在的組織:IT部門對于數據有非常嚴格的規定,控制著你的開發項目;或者你以前的數據庫是一團糟,別無選擇。
  
  
  事實分析:數據模型是一個重要的但不是最重要的建模,它最好是建立在另外的模型之上。(參見“Extreme Modeling”,Thinking Objectively,Nov.2000)。這即使在象數據倉庫這類面向數據的項目中也如此。假如沒有很好的理解用戶是如何使用該數據倉庫的(在數據模型中沒有表示出來),這些項目經常是以可悲的失敗而告終。你可以使用的模型有很多 – 使用案例(use cases),業務規則(business rules),activity diagrams,類圖(class diagrams),component diagrams,用戶界面流程圖(user interface flow diagrams)和CRC,等等。數據模型僅僅是其中的一種。每種模型都有其優點和短處,應該正確地使用。
  
  
  誤區九:所有的開發人員都知道如何建模
  
  我們現在面臨照這樣一個嚴重的問題:許多不是開發人員的人,包括高級經理和用戶,不知道軟件是如何建成的。其結果,他們不能夠區分開熟練的開發者和一般的程序員(當然也分不清高級程序員和一般程序員),他們想當然地認為所有的開發人員都具備從頭到尾開發整個系統的技能。
  
  
  事實分析:這肯定是不正確的。建模的技能,是只有當一個開發者通過學習它,并經過長期的實踐才能夠把握。一些非常聰明的程序員經常相信自己無所不能,究竟他們終究只是程序員。正因為這樣的狂妄自大,他們承當的一些任務是他們根本就沒有相應的技能去完成的。軟件開發是如此的復雜,單單一個人是很難具備所有的技能去成功地進行開發,甚至也不可能去配置有一定復雜程度的系統。開發這應該有自知之明,明白他們自己的弱點,學無止境。通過互相取長補短,建模者可從程序員身上學到一項技術的具體細節,程序員也可從建模者那里學

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品美女| 日韩欧美国产高清91| 亚洲日本中文字幕免费在线不卡| 精品国产鲁一鲁一区二区张丽| 国产精品av免费在线观看| 国产精品成人在线| 精品动漫一区二区| 欧美巨大黑人极品精男| 538国产精品视频一区二区| 亚洲最大的av网站| 福利微拍一区二区| 中文字幕精品一区久久久久| 亚洲品质视频自拍网| 欧洲美女7788成人免费视频| www.亚洲男人天堂| 亚洲国产精品网站| 亚洲加勒比久久88色综合| 日韩电影大片中文字幕| 欧美自拍视频在线观看| 成人精品久久久| 国产97在线视频| 中文字幕在线精品| 亚洲天堂男人的天堂| 国产精品高潮呻吟视频| 日韩av电影院| 欧美日韩另类在线| 亚洲色无码播放| 欧美另类精品xxxx孕妇| 国产人妖伪娘一区91| 国产精品成人一区| 日韩麻豆第一页| 两个人的视频www国产精品| 国产亚洲综合久久| 91精品国产综合久久久久久久久| 亚洲欧洲在线观看| 亚洲人午夜色婷婷| 色视频www在线播放国产成人| 91精品国产综合久久香蕉的用户体验| 亚洲精品午夜精品| 精品国产一区二区三区久久久狼| 日韩美女写真福利在线观看| 欧美精品一区在线播放| 中文字幕在线国产精品| 欧美精品福利在线| 色老头一区二区三区在线观看| 欧美另类69精品久久久久9999| 亚洲视频在线视频| 日韩欧美一区视频| 最近2019中文字幕大全第二页| 国产精品一区二区电影| 欧美日韩另类在线| 夜夜嗨av色一区二区不卡| 国产免费一区二区三区在线能观看| 精品偷拍一区二区三区在线看| 色综合久久中文字幕综合网小说| 亚洲影院色无极综合| 亚洲一区二区在线播放| 久久久电影免费观看完整版| 国产精品久久二区| 亚洲福利精品在线| 欧美日韩在线一区| 久久中文字幕在线视频| 日韩在线播放av| 成人97在线观看视频| 国产精品免费一区豆花| 亚洲精品久久久久久久久久久| 久久精品国产亚洲| 欧洲亚洲女同hd| 欧美国产乱视频| 欧美xxxwww| 91黑丝高跟在线| 日韩免费av在线| 日韩av免费观影| 亚洲视频电影图片偷拍一区| 国产成人精品在线观看| 日韩精品视频在线观看网址| 亚洲精品456在线播放狼人| 久久视频在线播放| 亚洲国产欧美自拍| 一区二区成人av| 亚洲a级在线观看| 久久精品国产欧美亚洲人人爽| 国产精品久久久亚洲| 日韩性生活视频| 亚洲欧美日韩国产成人| 国产一区二区三区在线观看视频| 亚洲欧洲一区二区三区在线观看| 亚洲国产欧美一区二区丝袜黑人| 久久久久久国产| 欧美另类69精品久久久久9999| 日韩美女免费观看| 国产精品福利网站| 欧美激情乱人伦一区| 国产成人自拍视频在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产91色在线播放| 1769国内精品视频在线播放| 在线色欧美三级视频| 亚洲欧美一区二区三区久久| 久久综合久中文字幕青草| 亚洲精品久久7777777| 欧美大肥婆大肥bbbbb| 亚洲一区二区三区香蕉| 日韩精品中文字幕视频在线| 欧美又大又硬又粗bbbbb| 久久久久久亚洲精品| 日韩小视频网址| 国产精品稀缺呦系列在线| 精品av在线播放| 成人黄色午夜影院| 欧美成人中文字幕| 欧美日韩国产精品一区二区不卡中文| 国产精品99蜜臀久久不卡二区| 亚洲欧美三级伦理| 亚洲视频在线观看视频| 久久久国产一区二区三区| 91在线免费视频| 国产精品91在线| 亚洲一二在线观看| 欧美日本啪啪无遮挡网站| 日韩av在线播放资源| 国产丝袜一区视频在线观看| 一本色道久久综合亚洲精品小说| 国内精品中文字幕| 日韩极品精品视频免费观看| 久久精品国产亚洲| 亚洲午夜精品久久久久久性色| 国产91在线播放九色快色| 亚洲最大av网| 在线观看久久久久久| 亚洲mm色国产网站| 91视频免费在线| 日韩一区在线视频| 欧美日韩一区二区在线播放| 成人av在线网址| 91九色国产社区在线观看| 久久久精品国产一区二区| 亚洲男人天堂古典| 最近2019中文字幕在线高清| 91亚洲精品在线观看| 久久精品一偷一偷国产| 亚洲精品日韩欧美| 亚洲伊人成综合成人网| 久久九九全国免费精品观看| 久久精品视频在线观看| 午夜精品久久久久久久99黑人| 一本大道亚洲视频| 亚洲精品视频网上网址在线观看| 国产精品一久久香蕉国产线看观看| 国产男人精品视频| 国产在线精品一区免费香蕉| 欧洲成人性视频| 亚洲香蕉av在线一区二区三区| 97久久精品人搡人人玩| 欧美性受xxxx黑人猛交| 色www亚洲国产张柏芝| 国外成人在线直播| 亚洲一区久久久| 亚洲精品午夜精品| 亚洲欧洲国产精品| 成人免费淫片aa视频免费| 韩国v欧美v日本v亚洲| 日韩国产在线看| 国产精品久久久久999|