TDD、BDD、ATDD、DDD 软件开发模式

TDD、BDD、ATDD、DDD 软件开发模式

四个开发模式意思:

TDD:测试驱动开发(Test-Driven Development)

BDD:行为驱动开发(Behavior Driven Development)

ATDD:验收测试驱动开发(Acceptance Test Driven Development)

DDD:领域驱动开发(Domain Drive Design)

1、TDD:测试驱动开发(Test-Driven Development)

测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论,TDD首先考虑使用需求(对象、功能、过程、接口等)

主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。大行其道的一些模式对TDD的支持都非常不错,比如MVC和MVP等

2、BDD:行为驱动开发(Behavior Driven Development)

也就是行为驱动开发。这里的B并非指的是Business,实际上BDD可以看作是对TDD的一种补充,让开发、测试、BA以及客户都能在这个基础上达成一致,JBehave之类的BDD框架

3、ATDD:验收测试驱动开发(Acceptance Test Driven Development)

通过单元测试用例来驱动功能代码的实现,团队需要定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的测试脚本开发。面向开发人员,强调如何实现系统以及如何检验

4、DDD:领域驱动开发(Domain Drive Design)

DDD指的是Domain Drive Design,也就是领域驱动开发,DDD实际上也是建立在这个基础之上,因为它关注的是Service层的设计,着重于业务的实现,将分析和设计结合起来,不再使他们处于分裂的状态,这对于我们正确完整的实现客户的需求,以及建立一个具有业务伸缩性的模型

原文地址:https://www.cnblogs.com/chenliangcl/p/8984765.html

时间: 2024-10-21 18:05:07

TDD、BDD、ATDD、DDD 软件开发模式的相关文章

以DDD为开发模式的设计开发步骤可以是

以DDD为开发模式的设计开发步骤可以是:1)分析需求:2)画出用例图,系统中各个角色如何使用系统,也包括外部系统如何使用系统,也包括系统中到某个时间点自动启动的某些功能(此时角色就是时间):3)针对各个用例图,就知道了系统使用的各种业务场景,同时也明确了系统的边界,从而就明确了领域模型的边界:4)在领域模型的边界内划分聚合,找出每个聚合的边界,找出边界内的聚合根,实体,值对象:这步是难点.这里一定不能混淆的一个概念是,领域建模不是以用户为中心的建模,而是以用户的需求为中心的建模.所以要努力寻找各

我所理解的软件开发模式

在写这篇博客之前,提到软件开发我所能讲出来的只有个人开发团队开发之类的,于是我去百度,得知软件开发模式有:边做边改模型,瀑布模型,迭代模型,快速原型模型,增量模型,螺旋模型,敏捷软件开发,演化模型,喷泉模型,智能模型,混合模型等. 好吧,你赢了. 在读了邹欣老师在知乎发表的Build To Win的文章之后,我对软件开发的模式有了一定新的认知: 软件开发的目地决定了软件开发的模式. 每个人开发软件都是有目地的,我作为学生,写一些小的程序是为了练习,是一个学习的过程,就是邹欣老师在文章中提到的Bu

软件开发模式

软件的开发无非是这样几个环节 需求分析.设计.编码.集成.测试.维护 所有的开发模式都是在此基础上的变化 1.传统的瀑布式开发 由W.W.Royce在1970年最初提出的软件开发模型 典型特征是每个步骤都按照100%的进度来往下进行,不适应过程中的变化.要求每个环节做到完美,因此这种开发模式是效率最低,后期变化情况下基本上不可行. 2.迭代式开发    是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率. 实际上是一种主体开发,然后在此基础上完

软件开发模式,DevOps

参考文献:http://www.cnblogs.com/jetzhang/p/6068773.html 历史回顾 为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾. 如编程之道中所言: 老一辈的程序员是神秘且深奥的.我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象. 清醒的像一只游过水面的狐狸 警惕的像一位战场上的将军 友善的像一位招待客人的女主人 单纯的像一块未经雕琢的木头 深邃的

基于成熟网管平台的网管软件开发模式

随着计算机网络的迅速发展,特别是国际互联网的不断地推广,计算机网络的使用越来越广泛,人们的生产生活学习对计算机网络的依赖也越来越大.同时,随着计算机网络的网络规模的不断扩大和连入网络的设备越来越多样,网络的复杂性也越来越高,网络的异构性也越拉越高.于是,网络管理就成为了一个重要的研究课题. 网络管理是对硬件.软件.人力的综合使用和协调,对网络资源进行监视.测试.配置.分析.评价和控制,从而以合理的价格满足网络的需求,如实时运行性能.服务质量等.从定义中可以看出,网络管理包含了两个重要的任务,一是

软件开发模式:瀑布与敏捷

瀑布和敏捷不是什么新概念,这里只是个人在团队合作中不得不去思考而做的归纳和总结,同时记录自己曾经踩过的坑,新瓶装旧酒,希望对你有所启发. 瀑布模式 瀑布模型是比较传统一种开发模式,特别是在2B的传统企业,包括ERP,MES,WMS,CRM,OA,IBMS等系统当中可以经常见到他们的影子.现在这种模式仍然流行在一些大的项目或者是外包的一些项目当中. 如上图所示,瀑布模型优缺点都很突出. 优点明显: 阶段清晰.从计划到开发最后到上线运行,三个阶段非常清晰. 时间顺序.每个阶段顺序必须是从上到下,严格

测试计划驱动开发模式 TPDD:一种比 TDD 更友好的开发模式

相信大部分开发团队都在使用TDD,并且还有很多开发团队都 对外声明 在使用 TDD 开发模式. 之所以说是"对外声明",是因为很多开发团队虽然号称使用的是 TDD 开发模式,实际开发过程中却无法满足 TDD 的要求. 实际上,测试驱动的开发模式确实有效,它将可能发生的问题用测试代码预先解决,只有通过测试代码后的代码才是可以接受.当前有很多公司都在应用 TDD,但 TDD 并不是一个开发者友好的开发模式,只是一个理想化的开发模式. 为什么 TDD 不是一个开发者友好的开发方式? 大家都知

华为软件开发云测评报告一:项目管理

体验环境 体验方式:PC端 系统:Windows 64位 浏览器类型:Chrome浏览器 浏览器版本:49.0.2623.110 m 体验时间:2017.05.11 测试目的 了解华为软件开发云的项目管理服务功能,分析其优缺点: 瀑布化开发到敏捷开发的转型分析,以及未来软件开发模式的发展方向: 产品简介 产品名称:华为软件开发云 定位:软件开发云(DevCloud)是集华为研发实践.前沿研发理念.先进研发工具为一体的研发云平台,面向开发者提供研发工具服务,让软件开发简单高效. 产品slogan:

软件开发的过程

一: 软件开发大爆炸模式的最大优点是 简单 分析:大爆炸模式的软件开发几乎没有计划,进度和正规的安排所有的精力都发在开发软件和编写代码上,几乎没有什么测试.而且在软件快速完成后的测试就是把软件的确定告诉顾客,并不可能从头在开始修改软件.从项目管理的角度来看,装备交付的软件会因为软件测试员的工作妨碍了交付. 二:  采用便携边修改的模式是如何得知软件发布的时间 采用这种方式的小组通常最初只有粗略的想法,接着进行一些简单的设计,然互开始漫长的来回编写,测试和修改缺陷的过程.等到觉得足够了,就发布产品