Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计
1.1. software development methodology (also known as SDM 1
1.4. DDD Domain Drive Design,也就是领域驱动开发。2
1.5. Tdd TDD(测试驱动开发(Test-Driven Development)3
1.6. TFD -- Test First Development)3
1.7. BDD BDD指的是Behavior Drive Development,也就是行为驱动开发4
2.2. CBD(核心Core+行为Behavior+驱动Driver)架构模式4
2.3. Fdd Feature-driven development4
systems development life cycle (SDLC)
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)
Methodologies and frameworks
Cleanroom TSP PSP RAD DSDM MSF Scrum Kanban UP XP TDD ATDD BDD FDD DDD MDD
DDD指的是Domain Drive Design,也就是领域驱动开发。这是一种非常好的思想,在我们刚开始学习程序,甚至刚开始学习三层架构的时候,我们曾经面临过很多疑惑,比如如何来实现我们的数据层?后来我们开始学习MVC,MVP等架构,如何设计Model层又成了我们的新问题。我们见过太多这种情况,Model变成了单纯的数据容器,也就是我们经常说的贫血模式。DDD实际上也是建立在这个基础之上,因为它关注的是Service层的设计,着重于业务的实现,因此不可避免的以贫血模式为基础而存在。但是它最大的特别是将分析和设计结合起来,不再使他们处于分裂的状态,这对于我们正确完整的实现客户的需求,以及建立一个具有业务伸缩性的模型,是有很大帮助的。
DDD革命性在于:领域模型准确反映了业务语言,而传统J2EE或Spring+Hibernate等事务性编程模型只关心数据,这些数据对象除了简单setter/getter方法外,没有任何业务方法,被比喻成失血模型,那么领域模型这种带有业务方法的充血模型到底好在哪里?
提倡充血模型,实际就是让过去被肢解被黑crack的业务模型回归正常,当然这也会被一些先入为主或被洗过脑的程序员看成反而不正常,这更是极大可悲之处。看到领域模型代码,就看到业务需求,没有翻译没有转换,保证软件真正实现“拷贝不走样”。
DDD最大的好处是:接触到需求第一步就是考虑领域模型,而不是将其切割成数据和行为,然后数据用数据库实现,行为使用服务实现,最后造成需求的首肢分离。DDD让你首先考虑的是业务语言,而不是数据。重点不同导致编程世界观不同。
行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD最初是由Dan North在2003年命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD
行为驱动开发是测试驱动开发的进化,但关注的核心是设
2. 。这里的B并非指的是Business,实际上BDD可以看作是对TDD的一种补充,当然你也可以把它看作TDD的一个分支。因为在TDD中,我们并不能完全保证根据设计所编写的测试就是用户所期望的功能。BDD将这一部分简单和自然化,用自然语言来描述,让开发、测试、BA以及客户都能在这个基础上达成一致。因为测试优先的概念并不是每个人都能接受的,可能有人觉得系统太复杂而难以测试,有人认为不存在的东西无法测试。所以,我们在这里试图转换一种观念,那便是考虑它的行为,也就是说它应该如何运行,然后抽象出能达成共识的规范。如果你用过JBehave之类的BDD框架,你将会更好的理解其中具体的流程。这里我推荐一
FDD是由Jeff De Luca和Peter Code提出来的。FDD在需求和开发步骤上要比XP更加正式,而且还具有精确跟踪进度的能力。
FDD开发过程主要包括这样两个阶段:
l 确定待实现的特征集
l 一次实现一组特征
XP更适用于不稳定的项目,用户的需求可能是很不明确。XP对这类项目能够很好的处理,因为它有意的将那些当前不必要的活动推迟到后面的阶段
l 与FDD相比,XP适用于小规模的开发。因为XP很大程度上要依赖于项目组的沟通,然而,团队越大,沟通会越困难
对比XP和FDD两种软件开发方法[转]_水若寒N_新浪博客.html
TDD(测试驱动开发(Test-Driven Development))_百度百科.html
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
,Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
奶牛科技cto ,uke 首席cto 技术总监 研发总监 研发主管 部门总监
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人。
uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,
uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 uke终身教育学校副校长
Uke 数据库与存储标准化协会副会长 uke出版社编辑总编
Uke医院 与医学院方面的创始人
转载请注明来源:attilax的专栏 ?http://www.cnblogs.com/attilax/
--Atiend
Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计
原文:http://www.cnblogs.com/attilax/p/6238574.html