Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计

时间:2023-03-08 17:48:43

Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计

1.1. software development methodology (also known as SDM 1

1.2. 历史1

1.3. 常见方法2

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. 其他4

2.1. 验收测试驱动开发;atdd4

2.2. CBD(核心Core+行为Behavior+驱动Driver)架构模式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,也就是领域驱动开发。

DDD指的是Domain Drive Design,也就是领域驱动开发。这是一种非常好的思想,在我们刚开始学习程序,甚至刚开始学习三层架构的时候,我们曾经面临过很多疑惑,比如如何来实现我们的数据层?后来我们开始学习MVC,MVP等架构,如何设计Model层又成了我们的新问题。我们见过太多这种情况,Model变成了单纯的数据容器,也就是我们经常说的贫血模式。DDD实际上也是建立在这个基础之上,因为它关注的是Service层的设计,着重于业务的实现,因此不可避免的以贫血模式为基础而存在。但是它最大的特别是将分析和设计结合起来,不再使他们处于分裂的状态,这对于我们正确完整的实现客户的需求,以及建立一个具有业务伸缩性的模型,是有很大帮助的。

DDD革命性在于:领域模型准确反映了业务语言,而传统J2EE或Spring+Hibernate等事务性编程模型只关心数据,这些数据对象除了简单setter/getter方法外,没有任何业务方法,被比喻成失血模型,那么领域模型这种带有业务方法的充血模型到底好在哪里?

提倡充血模型,实际就是让过去被肢解被黑crack的业务模型回归正常,当然这也会被一些先入为主或被洗过脑的程序员看成反而不正常,这更是极大可悲之处。看到领域模型代码,就看到业务需求,没有翻译没有转换,保证软件真正实现“拷贝不走样”。

DDD最大的好处是:接触到需求第一步就是考虑领域模型,而不是将其切割成数据和行为,然后数据用数据库实现,行为使用服务实现,最后造成需求的首肢分离。DDD让你首先考虑的是业务语言,而不是数据。重点不同导致编程世界观不同。

1.5. Tdd TDD(测试驱动开发(Test-Driven Development)

1.6.  TFD -- Test First Development)

1.7. BDD BDD指的是Behavior Drive Development,也就是行为驱动开发

行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、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框架,你将会更好的理解其中具体的流程。这里我推荐一

2. 其他

2.1. 验收测试驱动开发;atdd

2.2. CBD(核心Core+行为Behavior+驱动Driver)架构模式

2.3. Fdd Feature-driven development

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