偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)的十五個(gè)理由

原創(chuàng)
開(kāi)發(fā) 架構(gòu)
什么是模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)?為什么使用MDD?本文將回答這些問(wèn)題,告訴您在軟件項(xiàng)目中使用模型驅(qū)動(dòng)開(kāi)發(fā)的十五個(gè)理由。

【51CTO譯文】什么是模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)?為什么使用MDD?本文將回答這些問(wèn)題,告訴您在軟件項(xiàng)目中使用模型驅(qū)動(dòng)開(kāi)發(fā)的十五個(gè)理由。

1、MDD開(kāi)發(fā)更快速

相比傳統(tǒng)軟件開(kāi)發(fā),模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)的軟件項(xiàng)目中,應(yīng)用程序被指定為一個(gè)更高層次的抽象模型。通過(guò)對(duì)模型的解釋/執(zhí)行或產(chǎn)生的代碼,抽象模型會(huì)自動(dòng)轉(zhuǎn)化為可工作的軟件應(yīng)用。

在代碼方面,因?yàn)槟P途哂懈叩某橄髮哟危员认嗤瑢?shí)現(xiàn)的其他方式具有更小的代碼量。換句話(huà)說(shuō),模型中的每個(gè)元素(符號(hào)或其它偽編程語(yǔ)言)可以代表多行代碼;這樣,我們可以在相同的時(shí)間內(nèi)實(shí)現(xiàn)更多的功能。比如,對(duì)比Mendix和Java開(kāi)發(fā), MetaEdit+或其他MDD開(kāi)發(fā)工具比傳統(tǒng)開(kāi)發(fā)方式快五倍的速度。

2、MDD使開(kāi)發(fā)成本更低

MDD能夠以更低的成本高效的實(shí)現(xiàn)項(xiàng)目。正如上文所說(shuō),MDD的開(kāi)發(fā)速度更高,可以縮短軟件產(chǎn)品的交付日期,提早上市時(shí)間。其次,使用MDD本身就可以用較低的成本完成開(kāi)發(fā);比如,可以用更少的工程師和非專(zhuān)業(yè)人士并保證軟件高質(zhì)量的完成。當(dāng)然,能節(jié)約多少成本還取決于學(xué)習(xí)MDD的成本和開(kāi)發(fā)或購(gòu)買(mǎi)MDD開(kāi)發(fā)工具的成本。

另外,使用MDD來(lái)改變正在開(kāi)發(fā)和維護(hù)的項(xiàng)目也能夠節(jié)約成本。在維護(hù)方面,閱讀高抽象模型的應(yīng)用程序行為更加容易(詳細(xì)參考第六點(diǎn)),此外,我們還可以更快的使用高級(jí)語(yǔ)言添加或改進(jìn)產(chǎn)品的功能。

3、MDD可以提高開(kāi)發(fā)質(zhì)量

在使用MDD的軟件開(kāi)發(fā)過(guò)程中,應(yīng)用程序使用高級(jí)的抽象模型,而模型由一個(gè)引擎執(zhí)行或被解釋成代碼;所以,該程序模塊的質(zhì)量將取決于執(zhí)行引擎或解釋器,而執(zhí)行引擎或解釋器一般是由一流軟件公司和專(zhuān)家級(jí)程序員打造的。

此外,我們?cè)陧?xiàng)目中所使用的所有好的方法都可以包含在模型驅(qū)動(dòng)開(kāi)發(fā)(MDD)引擎中,并且在使用MDD工具開(kāi)發(fā)軟件時(shí)應(yīng)用到你的項(xiàng)目中。如果你購(gòu)買(mǎi)了一個(gè)MDD工具,你也同時(shí)購(gòu)買(mǎi)了眾多優(yōu)秀的開(kāi)發(fā)工具,因?yàn)镸DD工具建立在過(guò)去所有軟件項(xiàng)目的優(yōu)秀技術(shù)總結(jié)。

4、MDD出錯(cuò)率更低

每個(gè)具有軟件開(kāi)發(fā)經(jīng)驗(yàn)的人都知道,測(cè)試會(huì)花費(fèi)開(kāi)發(fā)人員大量的時(shí)間和精力。MDD可以確保我們專(zhuān)注于程序功能的測(cè)試,這意味這我們只需進(jìn)行驗(yàn)收測(cè)試。技術(shù)細(xì)節(jié)的測(cè)試已經(jīng)包含在MDD測(cè)試工具中。比如,對(duì)基礎(chǔ)構(gòu)造或安全問(wèn)題的測(cè)試。

5、MDD的有效性驗(yàn)證

在使用MDD時(shí),程序功能本身是低錯(cuò)誤的,因?yàn)槌绦虻挠行则?yàn)證時(shí)在MDD的高層模型中完成的。我們知道,在使用傳統(tǒng)的編程語(yǔ)言時(shí),IDE會(huì)提供一些語(yǔ)法檢查,甚至?xí)M(jìn)行靜態(tài)代碼的分析。但這并不能真正幫助我們避免程序的功能性錯(cuò)誤。

當(dāng)使用MDD方法時(shí),對(duì)特定領(lǐng)域的有效性驗(yàn)證可以在系統(tǒng)設(shè)計(jì)時(shí)進(jìn)行,由此產(chǎn)生的錯(cuò)誤也可以控制在一定的范圍內(nèi)。比如對(duì)本文的一個(gè)靜態(tài)文本驗(yàn)證。在使用Mendix模型環(huán)境中,我們可以使用實(shí)時(shí)的一致性檢查以確保模型的一致性并保證其可以在運(yùn)行時(shí)環(huán)境執(zhí)行。

6、MDD使人在軟件中的影響降低

在第二點(diǎn)中我們提到過(guò)使用MDD可以用更少的工程師和非專(zhuān)業(yè)人士并保證軟件高質(zhì)量的完成。當(dāng)你不再需要技術(shù)專(zhuān)家來(lái)建立軟件,你可以挑選更多人來(lái)為你工作。另外,與傳統(tǒng)的開(kāi)發(fā)方式相比,在使用MDD的項(xiàng)目中,如果有人中途加入,他可以更簡(jiǎn)單的理解軟件應(yīng)用的高級(jí)模型,因?yàn)樗槐貫楦愣绦虻哪承┕δ芏喿x大量的源碼。

7、MDD給行業(yè)專(zhuān)家更高多空間

MDD可以使行業(yè)專(zhuān)家專(zhuān)注于軟件的行業(yè)特性,而技術(shù)專(zhuān)家將集中精力用于構(gòu)建MDD的工具(詳見(jiàn)第八點(diǎn))。構(gòu)建復(fù)雜的應(yīng)用程序?qū)⒉辉偈蔷⒊绦騿T的專(zhuān)利,在MDD項(xiàng)目中,將允許行業(yè)專(zhuān)家用他們自己的知識(shí)系統(tǒng)使用特定的符號(hào)構(gòu)建一個(gè)模型,并使之融入高層的程序模型中。

8、MDD使高階程序員只做他們?cè)撟龅氖?/STRONG>

在使用MDD開(kāi)發(fā)的項(xiàng)目中,開(kāi)發(fā)人員很少進(jìn)行重復(fù)性的工作。他們將有更多的機(jī)會(huì)在他們的工作中發(fā)揮創(chuàng)造性。比如,他們可以關(guān)注如何構(gòu)建MDD工具;他們可以指導(dǎo)程序新手進(jìn)行軟件的初級(jí)開(kāi)發(fā)或配合行業(yè)專(zhuān)家進(jìn)行系統(tǒng)建模。高級(jí)程序?qū)⒂酶嗟木θソ鉀Q應(yīng)用程序中關(guān)鍵部分的技術(shù)攻關(guān)。比如,行業(yè)專(zhuān)家可以為圖形用戶(hù)接口、處理流程和商業(yè)規(guī)則創(chuàng)建模型。應(yīng)用的集成部分(WebServices、API調(diào)用、數(shù)據(jù)庫(kù)成等)對(duì)行業(yè)專(zhuān)家和開(kāi)發(fā)新手存在困難,但這部分工作留給高級(jí)程序員去關(guān)注。高級(jí)程序員可以輕松而富有創(chuàng)造性的搞定這類(lèi)項(xiàng)目中難度較大的部分。

9、MDD將消除業(yè)務(wù)和IT之間的隔閡

業(yè)務(wù)和IT的完美對(duì)接是在軟件開(kāi)發(fā)中經(jīng)常被談及的。MDD可以用以下方法使商業(yè)和IT之間走的更近:

◆行業(yè)專(zhuān)家或業(yè)務(wù)分析人員可以直接的參與開(kāi)發(fā)過(guò)程(參考第七點(diǎn))。軟件的應(yīng)用部分被定義為一個(gè)很高的抽象模型,這些模型將無(wú)限接近業(yè)務(wù)概念中的描述和定義。

◆因?yàn)镸DD可以更快速的進(jìn)行開(kāi)發(fā)(參考第一點(diǎn)),軟件的構(gòu)建過(guò)程將更少的迭代,這將使軟件更符最初的需求(軟件交付日期縮短,從市場(chǎng)策劃到最終用戶(hù)的周期變短)。

◆業(yè)務(wù)和模型以及模型和IT系統(tǒng)之間的定義更加明確。比如,使用模型驅(qū)動(dòng)的面向業(yè)務(wù)需求(SOA)的一個(gè)框架。

10、MDD使軟件開(kāi)發(fā)不再懼怕商業(yè)需求變更

軟件開(kāi)發(fā)界當(dāng)前存在的一個(gè)問(wèn)題是商業(yè)需求的經(jīng)常變化,而且這種變化的速度遠(yuǎn)遠(yuǎn)高于軟件系統(tǒng)本身所容納的限度。這主要是目前企業(yè)的長(zhǎng)期戰(zhàn)略無(wú)法保持足夠的時(shí)間就產(chǎn)生變化并導(dǎo)致核心IT業(yè)務(wù)經(jīng)常變化。當(dāng)前動(dòng)態(tài)的商業(yè)環(huán)境不得使企業(yè)有足夠的反應(yīng)時(shí)間。

但MDD可以提供有效的解決方案,因?yàn)镸DD可以使軟件開(kāi)發(fā)更加快速(參考第一點(diǎn)),它還可以是應(yīng)用程序的改變更加容易(參考第二點(diǎn)和第六點(diǎn))。如何商業(yè)需求和軟件應(yīng)用模型的關(guān)聯(lián)足夠明確,需求變化甚至可以自動(dòng)傳遞到軟件應(yīng)用部分的變化(參考第九點(diǎn))。

11、由技術(shù)產(chǎn)生的軟件變化更少

技術(shù)的更新與變化越來(lái)越快。想想Java EESOA/SOBA、WebServers、REST、OSGi和最近一年云計(jì)算帶來(lái)的技術(shù)變革。MDD可以確保我們的應(yīng)用程序模型在遷移到其他技術(shù)平臺(tái)時(shí)不會(huì)發(fā)生變化;我們只需根據(jù)所變更的技術(shù)平臺(tái)相應(yīng)的改版代碼編譯器或解釋器。更換解釋器后,所有的程序模型將直接被編譯成新平臺(tái)的代碼。

12、MDD使架構(gòu)更加強(qiáng)壯

公司經(jīng)常會(huì)定義架構(gòu)標(biāo)準(zhǔn),軟件開(kāi)發(fā)必須按照這些標(biāo)準(zhǔn)行事。但當(dāng)所有代碼都用手創(chuàng)建時(shí)如何檢查或執(zhí)行這些架構(gòu)標(biāo)準(zhǔn)?當(dāng)選擇MDD進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí),應(yīng)用程序會(huì)遵守既定的架構(gòu)標(biāo)準(zhǔn)。你可以確保IT架構(gòu)的標(biāo)準(zhǔn)化,因?yàn)檫@些架構(gòu)標(biāo)準(zhǔn)在MDD工具中被定義。

一般,功能性的架構(gòu)標(biāo)準(zhǔn)將指導(dǎo)功能設(shè)計(jì)。這些標(biāo)準(zhǔn)表現(xiàn)在你所采用的DSL(領(lǐng)域特定語(yǔ)言)。在MDD中,架構(gòu)標(biāo)準(zhǔn)指導(dǎo)功能設(shè)計(jì),并將在代碼編譯器和解釋器中得到體現(xiàn)。

13、MDD使開(kāi)發(fā)人員獲得更多行業(yè)知識(shí)

MDD的另一個(gè)好處是你不只是建立一個(gè)軟件,在高層的軟件模型中,你將獲得所建立軟件的領(lǐng)域知識(shí)。在大多數(shù)軟件項(xiàng)目中,領(lǐng)域需求的描述并不清晰,我們通常需要與行業(yè)專(zhuān)家或領(lǐng)域內(nèi)不同的用戶(hù)接觸,用他們的專(zhuān)業(yè)知識(shí)來(lái)描述系統(tǒng)需求并建模。在MDD中,基于高度抽象的領(lǐng)域模型,我們可以通過(guò)行業(yè)專(zhuān)家對(duì)應(yīng)用模型的描述獲得深入了解具體應(yīng)用領(lǐng)域的機(jī)會(huì)。

14、MDD可以提供最新的文檔

當(dāng)使用MDD進(jìn)行項(xiàng)目開(kāi)發(fā)時(shí),我們無(wú)需再忍受不完整或不及時(shí)的文檔,因?yàn)槟P途褪俏臋n。當(dāng)使用正確的抽象方法,模型的描述對(duì)行業(yè)專(zhuān)家和項(xiàng)目需求方具有很高的易讀性(請(qǐng)參考第十三點(diǎn))。

15、MDD使項(xiàng)目重心放在業(yè)務(wù)問(wèn)題,而不是技術(shù)

就行前面提到的,MDD可以讓我們更多的關(guān)注業(yè)務(wù)問(wèn)題而不是如何將這些問(wèn)題用技術(shù)實(shí)現(xiàn)。所以,不要再討論我們?cè)撌褂肑ava EE還是.NET,應(yīng)該盡快開(kāi)始MDD的學(xué)習(xí)和項(xiàng)目實(shí)踐。

原文:15 reasons why you should start using Model Driven Development

鏈接:http://www.theenterprisearchitect.eu/archive/2009/11/25/15-reasons-why-you-should-start-using-model-driven-development

【編輯推薦】

  1. 模型驅(qū)動(dòng)開(kāi)發(fā)的誤解和挑戰(zhàn)
  2. UML2.0使模型驅(qū)動(dòng)的開(kāi)發(fā)更加容易
  3. 詳解設(shè)計(jì)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)TDD技術(shù)總體流程
責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2010-01-04 10:09:49

2022-01-06 15:21:32

pipPython技巧

2012-03-06 14:38:23

Visual Stud

2015-10-29 09:46:29

PHP開(kāi)發(fā)工具

2019-07-16 13:15:38

Kafka分布式數(shù)據(jù)

2016-12-05 15:15:52

JavaScriptCSS庫(kù)

2021-12-20 09:35:14

Kubernetes命令Linux

2010-09-03 09:22:19

Linux命令行

2017-12-04 09:50:55

數(shù)據(jù)中心遷移實(shí)踐

2017-12-03 15:41:26

數(shù)據(jù)中心遷移基礎(chǔ)設(shè)施

2012-08-22 15:00:04

2013-08-09 09:39:21

程序員程序員圖片搞笑程序員

2012-02-22 09:23:03

2020-12-22 13:49:23

開(kāi)發(fā)編碼框架

2016-12-28 11:23:59

優(yōu)化iOS程序性

2021-12-08 11:50:07

Python游戲網(wǎng)站編程語(yǔ)言

2021-09-28 10:06:54

數(shù)字化轉(zhuǎn)型CIO數(shù)字化

2015-07-28 14:05:01

IT 技術(shù)人考慮

2021-11-02 14:46:13

新華三

2020-06-04 08:15:53

Kubernetes容器PaaS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)