您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“從UML建模原理談怎么選擇好模型”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“從UML建模原理談怎么選擇好模型”這篇文章吧。
各種工程學(xué)科都有其豐富的建模運(yùn)用歷史。這些經(jīng)驗形成了建模的四項基本原理,現(xiàn)分別敘述如下:
第一,選擇要創(chuàng)建什么模型,對如何動手解決問題和如何形成解決方案有著意義深遠(yuǎn)的影響。
換句話說,就是要好好地選擇模型。正確的模型將清楚地表明最棘手的開發(fā)問題,提供不能輕易地從別處獲得的洞察力;錯誤的模型將使人誤入歧途,把精力花在不相關(guān)的問題上。暫時先把軟件問題放在一邊,假設(shè)現(xiàn)在正試圖解決量子物理學(xué)上的一個問題。諸如光子在時空中的相互作用問題,其中充滿了令人驚奇的難解的數(shù)學(xué)問題。選擇一個不同的模型,所有的復(fù)雜問題一下子就變得可行了(雖然不容易解決)。在這個領(lǐng)域中,這恰恰是Feynmann圖的價值,它提供了對非常復(fù)雜問題的圖形表示。類似地,在一個完全不同的領(lǐng)域里,假設(shè)正在建造一座新建筑,將會關(guān)心疾風(fēng)對它的影響。如果建立了一個物理模型,并拿到風(fēng)洞中去實驗,雖然小模型沒有精確地反映出大的實物,但也可以從中找出一些有趣的東西。因此,如果正在建立一個數(shù)學(xué)模型,然后去模擬,將知道一些不同的東西;與使用物理模型相比,也可能獲得更多新的場景。通過對模型進(jìn)行嚴(yán)格的持續(xù)的實驗,將更信任已經(jīng)建模的系統(tǒng),事實上,它在現(xiàn)實世界中將像期望的那樣工作得很好。
對于軟件而言,所選擇的模型將在很大程度上影響對領(lǐng)域的看法。如果以數(shù)據(jù)庫開發(fā)者的觀點建造一個系統(tǒng),可能會注意實體—聯(lián)系模型,該模型把行為放入觸發(fā)器和存儲過程中。如果以結(jié)構(gòu)化開發(fā)者的觀點建造一個系統(tǒng),可能得到以算法為中心的模型,其中包含從處理到處理的數(shù)據(jù)流。如果以面向?qū)ο箝_發(fā)者的觀點建造一個系統(tǒng),將可能得到這樣一個系統(tǒng):它的體系結(jié)構(gòu)以一組類和交互模式(指出類如何一起工作)為中心??蓤?zhí)行的模型對測試有很大幫助。上述的任何一種方法對于給定的應(yīng)用系統(tǒng)和開發(fā)文化都可能是正確的,經(jīng)驗表明,在構(gòu)建有彈力的體系結(jié)構(gòu)中面向?qū)ο蟮姆椒ū憩F(xiàn)得更為出眾,即使對使用大型數(shù)據(jù)庫或計算單元的系統(tǒng)也是如此。盡管事實如此,但要強(qiáng)調(diào)一點,不同的方法將導(dǎo)致不同種類的系統(tǒng),并且代價和收益也是不同的。
第二,可以在不同的精度級別上表示每一種模型。
如果正在建造一座大廈,有時需要從宏觀上讓投資者看到大廈的樣子,感覺到大廈的總體效果。而有時又需要認(rèn)真考慮細(xì)節(jié)問題,例如,對復(fù)雜棘手的管道的鋪設(shè),或?qū)ι僖姷慕Y(jié)構(gòu)件的安裝等。
對于軟件模型也是如此。有時一個快速簡潔且是可執(zhí)行的用戶界面模型正是所需要的,而有時必須耐著性子對付比特,例如,描述跨系統(tǒng)接口或解決網(wǎng)絡(luò)瓶頸問題就是如此。在任何情況下,***的模型應(yīng)該是這樣的:它可以讓你根據(jù)誰在進(jìn)行觀察以及為什么要觀察選擇它的詳細(xì)程度。分析人員或最終用戶主要考慮“做什么”的問題,開發(fā)人員主要考慮“怎樣做”的問題。這些人員都要在不同的時間以不同的詳細(xì)程度對系統(tǒng)進(jìn)行可視化。
第三,***的模型是與現(xiàn)實相聯(lián)系的。
如果建筑的物理模型不能以與真實的建筑相同的方式做出反應(yīng),則它的價值是很有限的;飛機(jī)的數(shù)學(xué)模型,如果只是假定了理想條件和***制造,則可能掩蓋真實飛機(jī)的一些潛在的、致命的現(xiàn)實特征。***是有能夠清晰地聯(lián)系實際的模型,而當(dāng)聯(lián)系很薄弱時能夠精確地知道這些模型怎樣與現(xiàn)實脫節(jié)。所有的模型都對現(xiàn)實進(jìn)行了簡化;但有一點要記住,關(guān)鍵是簡化不要掩蓋掉任何重要的細(xì)節(jié)。
軟件領(lǐng)域中結(jié)構(gòu)化分析的致命弱點是在分析模型和系統(tǒng)設(shè)計模型之間沒有基本的聯(lián)系。隨著時間的推移,這個不可填充的裂縫會使系統(tǒng)構(gòu)思階段和實施階段出現(xiàn)不一致。在面向?qū)ο蟮南到y(tǒng)中,可以把各個幾乎獨(dú)立的系統(tǒng)視圖連結(jié)成一個完整的語義整體。
第四,單個模型或視圖是不充分的。對每個重要的系統(tǒng)***用一小組幾乎獨(dú)立的模型從多個視角去逼近。
如果正在建造一所建筑物,會發(fā)現(xiàn)沒有任何一套單項設(shè)計圖能夠描述該建筑的所有細(xì)節(jié)。至少需要樓層平面圖、立面圖、電氣設(shè)計圖、采暖設(shè)計圖和管道設(shè)計圖。并且,在任何種類的模型中都需要從多視角來把握系統(tǒng)的范圍(例如不同樓層的藍(lán)圖)。
在這里的重要短語是“幾乎獨(dú)立的”。在這個語境中,它意味著各種模型能夠被分別進(jìn)行研究和構(gòu)造,但它們?nèi)匀皇窍嗷ヂ?lián)系的。如同建造建筑物一樣,既能夠單獨(dú)地研究電氣設(shè)計圖,但也能看到它如何映射到樓層平面圖中,以及它與管道設(shè)計圖中的管子排布的相互影響。
面向?qū)ο蟮能浖到y(tǒng)也如此。為了理解系統(tǒng)的體系結(jié)構(gòu),需要幾個互補(bǔ)和連鎖的視圖:用況視圖(揭示系統(tǒng)的需求)、設(shè)計視圖(捕獲問題空間和解空間里的詞匯)、交互視圖展示系統(tǒng)各部分之間以及系統(tǒng)與環(huán)境之間的聯(lián)系)、實現(xiàn)視圖(描述系統(tǒng)的物理實現(xiàn))和部署視圖(著眼于系統(tǒng)的工程問題)。每一種視圖都可能有結(jié)構(gòu)方面和行為方面。這些視圖一起從整體上描繪了軟件藍(lán)圖。
根據(jù)系統(tǒng)的性質(zhì),一些模型可能比另一些模型要重要。例如,對于數(shù)據(jù)密集型系統(tǒng),表達(dá)靜態(tài)設(shè)計視圖的模型將占主導(dǎo)地位;對于圖形用戶界面密集型系統(tǒng),靜態(tài)和動態(tài)的用況視圖就顯得相當(dāng)重要;在硬實時系統(tǒng)中,動態(tài)進(jìn)程視圖尤為重要;***,在分布式系統(tǒng)中,例如Web密集型的應(yīng)用,實現(xiàn)模型和部署模型是最重要的。
以上是“從UML建模原理談怎么選擇好模型”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。