Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计
?
Atitit各種SDM 軟件開發(fā)過程SDP sdm的ddd tdd bdd設(shè)計(jì)
?
?
?
1.1. software development methodology (also known as SDM 1
1.2. 歷史1
1.3. 常見方法2
1.4. ?DDD?Domain Drive Design,也就是領(lǐng)域驅(qū)動(dòng)開發(fā)。2
1.5. Tdd TDD(測(cè)試驅(qū)動(dòng)開發(fā)(Test-Driven Development)3
1.6. TFD -- Test First Development)3
1.7. BDD?BDD指的是Behavior Drive Development,也就是行為驅(qū)動(dòng)開發(fā)4
2. 其他4
2.1. 驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā);atdd4
2.2. CBD(核心Core+行為Behavior+驅(qū)動(dòng)Driver)架構(gòu)模式4
2.3. Fdd Feature-driven development4
?
?
?
?
1.1.?software development methodology (also known as SDM
?
?
?systems development life cycle?(SDLC)
?
1.2.?歷史
1970s
·?Structured programming?since 1969
1990s
·?Object-oriented programming?(OOP) developed in the early 1960s, and became a dominant programming approach during the mid-1990s
·?Rapid application development?(RAD), since 1991
·?Dynamic systems development method?(DSDM), since 1994
·?Scrum, since 1995
·?Team software process, since 1998
·?Rational Unified Process?(RUP), maintained by IBM since 1998
·?Extreme programming, since 1999
2000s
·?Agile Unified Process?(AUP) maintained since 2005 by?Scott Ambler
·?Disciplined agile delivery?(DAD) Supersedes AUP
2010s
·?Scaled Agile Framework?(SAFe)
·?Large-Scale-Scrum?(LeSS)
?
1.3.?常見方法
Methodologies and frameworks
Cleanroom TSP PSP RAD DSDM MSF Scrum Kanban UP XP TDD ATDD BDD FDD DDD MDD
1.4.??DDD?Domain Drive Design,也就是領(lǐng)域驅(qū)動(dòng)開發(fā)。
DDD指的是Domain Drive Design,也就是領(lǐng)域驅(qū)動(dòng)開發(fā)。這是一種非常好的思想,在我們剛開始學(xué)習(xí)程序,甚至剛開始學(xué)習(xí)三層架構(gòu)的時(shí)候,我們?cè)?jīng)面臨過很多疑惑,比如如何來實(shí)現(xiàn)我們的數(shù)據(jù)層?后來我們開始學(xué)習(xí)MVC,MVP等架構(gòu),如何設(shè)計(jì)Model層又成了我們的新問題。我們見過太多這種情況,Model變成了單純的數(shù)據(jù)容器,也就是我們經(jīng)常說的貧血模式。DDD實(shí)際上也是建立在這個(gè)基礎(chǔ)之上,因?yàn)樗P(guān)注的是Service層的設(shè)計(jì),著重于業(yè)務(wù)的實(shí)現(xiàn),因此不可避免的以貧血模式為基礎(chǔ)而存在。但是它最大的特別是將分析和設(shè)計(jì)結(jié)合起來,不再使他們處于分裂的狀態(tài),這對(duì)于我們正確完整的實(shí)現(xiàn)客戶的需求,以及建立一個(gè)具有業(yè)務(wù)伸縮性的模型,是有很大幫助的。
?
?
?
DDD革命性在于:領(lǐng)域模型準(zhǔn)確反映了業(yè)務(wù)語言,而傳統(tǒng)J2EE或Spring+Hibernate等事務(wù)性編程模型只關(guān)心數(shù)據(jù),這些數(shù)據(jù)對(duì)象除了簡(jiǎn)單setter/getter方法外,沒有任何業(yè)務(wù)方法,被比喻成失血模型,那么領(lǐng)域模型這種帶有業(yè)務(wù)方法的充血模型到底好在哪里?
?
提倡充血模型,實(shí)際就是讓過去被肢解被黑crack的業(yè)務(wù)模型回歸正常,當(dāng)然這也會(huì)被一些先入為主或被洗過腦的程序員看成反而不正常,這更是極大可悲之處。看到領(lǐng)域模型代碼,就看到業(yè)務(wù)需求,沒有翻譯沒有轉(zhuǎn)換,保證軟件真正實(shí)現(xiàn)“拷貝不走樣”。
DDD最大的好處是:接觸到需求第一步就是考慮領(lǐng)域模型,而不是將其切割成數(shù)據(jù)和行為,然后數(shù)據(jù)用數(shù)據(jù)庫實(shí)現(xiàn),行為使用服務(wù)實(shí)現(xiàn),最后造成需求的首肢分離。DDD讓你首先考慮的是業(yè)務(wù)語言,而不是數(shù)據(jù)。重點(diǎn)不同導(dǎo)致編程世界觀不同。
?
1.5.?Tdd TDD(測(cè)試驅(qū)動(dòng)開發(fā)(Test-Driven Development)
1.6.??TFD -- Test First Development)
?
1.7.?BDD?BDD指的是Behavior Drive Development,也就是行為驅(qū)動(dòng)開發(fā)?
行為驅(qū)動(dòng)開發(fā)是一種敏捷軟件開發(fā)的技術(shù),它鼓勵(lì)軟件項(xiàng)目中的開發(fā)者、QA和非技術(shù)人員或商業(yè)參與者之間的協(xié)作。主要是從用戶的需求出發(fā),強(qiáng)調(diào)系統(tǒng)行為。BDD最初是由Dan North在2003年命名,它包括驗(yàn)收測(cè)試和客戶測(cè)試驅(qū)動(dòng)等的極限編程的實(shí)踐,作為對(duì)測(cè)試驅(qū)動(dòng)開發(fā)的回應(yīng)。?
?
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD
行為驅(qū)動(dòng)開發(fā)是測(cè)試驅(qū)動(dòng)開發(fā)的進(jìn)化,但關(guān)注的核心是設(shè)
2.?。這里的B并非指的是Business,實(shí)際上BDD可以看作是對(duì)TDD的一種補(bǔ)充,當(dāng)然你也可以把它看作TDD的一個(gè)分支。因?yàn)樵?/span>TDD中,我們并不能完全保證根據(jù)設(shè)計(jì)所編寫的測(cè)試就是用戶所期望的功能。BDD將這一部分簡(jiǎn)單和自然化,用自然語言來描述,讓開發(fā)、測(cè)試、BA以及客戶都能在這個(gè)基礎(chǔ)上達(dá)成一致。因?yàn)闇y(cè)試優(yōu)先的概念并不是每個(gè)人都能接受的,可能有人覺得系統(tǒng)太復(fù)雜而難以測(cè)試,有人認(rèn)為不存在的東西無法測(cè)試。所以,我們?cè)谶@里試圖轉(zhuǎn)換一種觀念,那便是考慮它的行為,也就是說它應(yīng)該如何運(yùn)行,然后抽象出能達(dá)成共識(shí)的規(guī)范。如果你用過JBehave之類的BDD框架,你將會(huì)更好的理解其中具體的流程。這里我推薦一
?
?
2.?其他
2.1.?驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā);atdd
2.2.?CBD(核心Core+行為Behavior+驅(qū)動(dòng)Driver)架構(gòu)模式
?
2.3.?Fdd Feature-driven development
FDD是由Jeff De Luca和Peter Code提出來的。FDD在需求和開發(fā)步驟上要比XP更加正式,而且還具有精確跟蹤進(jìn)度的能力。
FDD開發(fā)過程主要包括這樣兩個(gè)階段:
l?????????確定待實(shí)現(xiàn)的特征集
l?????????一次實(shí)現(xiàn)一組特征
??XP更適用于不穩(wěn)定的項(xiàng)目,用戶的需求可能是很不明確。XP對(duì)這類項(xiàng)目能夠很好的處理,因?yàn)樗幸獾膶⒛切┊?dāng)前不必要的活動(dòng)推遲到后面的階段
l?????????與FDD相比,XP適用于小規(guī)模的開發(fā)。因?yàn)?/span>XP很大程度上要依賴于項(xiàng)目組的溝通,然而,團(tuán)隊(duì)越大,溝通會(huì)越困難
?
?
對(duì)比XP和FDD兩種軟件開發(fā)方法[轉(zhuǎn)]_水若寒N_新浪博客.html
?
TDD(測(cè)試驅(qū)動(dòng)開發(fā)(Test-Driven Development))_百度百科.html
?
?
作者::?綽號(hào):老哇的爪子claw of Eagle?偶像破壞者Iconoclast image-smasher
捕鳥王"Bird?Catcher 王中之王King of Kings 虔誠(chéng)者Pious 宗教信仰捍衛(wèi)者 Defender?Of?the?Faith. 卡拉卡拉紅斗篷 Caracalla red cloak
簡(jiǎn)稱:: Emir Attilax?Akbar 埃米爾 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar?bin Mahmud bin ?attila bin Solomon bin adam Al?Rapanui?埃米爾 阿提拉克斯 阿克巴 本 馬哈茂德?本 阿提拉 本 所羅門 本亞當(dāng)??阿爾?拉帕努伊
常用名:艾提拉(艾龍), ?EMAIL:1466519819@qq.com
?
?
頭銜:uke總部o2o負(fù)責(zé)人,全球網(wǎng)格化項(xiàng)目創(chuàng)始人,
uke宗教與文化融合事務(wù)部部長(zhǎng), uke宗教改革委員會(huì)副主席
,Uke部落首席大酋長(zhǎng),
uke制度與重大會(huì)議委員會(huì)委員長(zhǎng),uke保安部首席大隊(duì)長(zhǎng),uke制度檢查委員會(huì)副會(huì)長(zhǎng),
奶牛科技cto ,uke 首席cto ?技術(shù)總監(jiān) 研發(fā)總監(jiān) 研發(fā)主管 部門總監(jiān)
uke波利尼西亞區(qū)大區(qū)連鎖負(fù)責(zé)人?湯加王國(guó)區(qū)域負(fù)責(zé)人。
uke克爾格倫群島區(qū)連鎖負(fù)責(zé)人,萊恩群島區(qū)連鎖負(fù)責(zé)人,
uke布維島和南喬治亞和南桑威奇群島大區(qū)連鎖負(fù)責(zé)人
?Uke軟件標(biāo)準(zhǔn)化協(xié)會(huì)理事長(zhǎng)理事長(zhǎng) uke終身教育學(xué)校副校長(zhǎng)
Uke 數(shù)據(jù)庫與存儲(chǔ)標(biāo)準(zhǔn)化協(xié)會(huì)副會(huì)長(zhǎng) uke出版社編輯總編
Uke醫(yī)院?與醫(yī)學(xué)院方面的創(chuàng)始人
?
轉(zhuǎn)載請(qǐng)注明來源:attilax的專欄 ??http://www.cnblogs.com/attilax/
--Atiend
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/attilax/p/6238574.html
總結(jié)
以上是生活随笔為你收集整理的Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英特尔酷睿 Ultra 1 代处理器爆料
- 下一篇: c# 衍生类和基类的构造顺序