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

 

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,也就是领域驱动开发。这是一种非常好的思想,在我们刚开始学习程序,甚至刚开始学习三层架构的时候,我们曾经面临过很多疑惑,比如如何来实现我们的数据层?后来我们开始学习MVCMVP等架构,如何设计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 LucaPeter Code提出来的。FDD在需求和开发步骤上要比XP更加正式,而且还具有精确跟踪进度的能力。

FDD开发过程主要包括这样两个阶段:

l         确定待实现的特征集

l         一次实现一组特征

  XP更适用于不稳定的项目,用户的需求可能是很不明确。XP对这类项目能够很好的处理,因为它有意的将那些当前不必要的活动推迟到后面的阶段

l         与FDD相比,XP适用于小规模的开发。因为XP很大程度上要依赖于项目组的沟通,然而,团队越大,沟通会越困难

 

 

对比XPFDD两种软件开发方法[]_水若寒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

 

 

 

转载于:https://www.cnblogs.com/attilax/p/6238574.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jOOQ API设计缺陷的奇怪发生

jOOQ是一种内部领域特定语言(DSL) ,它以Java(宿主语言)建模SQL语言(外部DSL)。 这篇热门文章描述了jOOQ API的主要机制: Java Fluent API设计器速成课程 。 任何人都可以根据该文章…

精馏塔matlab,MATLAB图解精馏塔理论塔板数程序代码

《MATLAB图解精馏塔理论塔板数程序代码》由会员分享,可在线阅读,更多相关《MATLAB图解精馏塔理论塔板数程序代码(6页珍藏版)》请在人人文库网上搜索。1、MATLAB图解精馏塔理论塔板数程序代码function distillation %文件名“distillation”可以更改% 输入…

c# 衍生类和基类的构造顺序

public class MyDeriveClass:MyBaseClass{public MyDeriveClass():base(){}int derive_int 1;}public class MyBaseClass{public MyBaseClass(){}int base_int 1;} var cls new MyDeriveClass(); 调用顺序如下: derive_int 1;base_int 1;MyBaseClass(); MyDeriveClass();…

oracle unused用法,set unused的用法(ORACLE刪除字段)

set unused的用法(ORACLE刪除字段)一、問題現場有一張大數據量的分區表,數據量在10G以上。因某種原因需要刪除其中的某些字段。如果直接用alter table1 drop (column1,column2);或者alter table1 drop column column1;和alter table1 drop column column2;的話&…

java 计算协方差_Java的深度:通过协方差暴露的API泄漏

java 计算协方差Java有时可能非常棘手,特别是在API设计中。 让我们看一个非常有趣的展示柜。 jOOQ强烈地将API与实现分开。 所有API都在org.jooq包中,并且是公共的。 大多数实现是在org.jooq.impl包和package-private中。 只有工厂和一些专用的基础实现是…

shell启动oracle客户端,Shell实现的Oracle启动脚本分享

Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart )#!/bin/shcmdname"restart"# get oracle sid information from env by…

使用Java 8 Lambda,流和聚合

总览 在本文中,我们将介绍使用Java 8 lambda,流和聚合来过滤和操作Collection中的对象。 这篇文章中的所有代码都可以在BitBucket中找到 。 在此示例中,我们将创建许多对象,这些对象代表我们IT基础架构中的服务器。 我们将这些对…

易语言微凉模块oracle,跟着微凉学易语言 【简单子类化】

本帖最后由 【微凉清风】 于 2011-1-20 18:23 编辑易语言的子类化文章太少了,本人文笔也不好哈,看看VB得吧,别说英文看不懂,看不懂你的易语言水平永远不会提高!一,初识子类当你还不碰过子类的时候,你看到这个标题,定会问:"啥叫子类?".因为你知道我定会为你解答.(阴险…

node服务的监控预警系统架构

需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作。不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性、高可靠性、鲁棒性以及直观的监控和报警 想象下一个存在安全隐患且没有监控预警…

oracle中or会使索引,为何查询条件中多了 OR 选项,索引就走全扫描?

ORACLE 11204, SOLARIS如下:原始写法,where 条件中,有 OR 条件,这时,索引 IDX_BD_LOTMASTER_NO 走全索引扫描,导致效率非常低,-bash-3.2$ sqlplusSQL*Plus: Release 11.2.0.4.0 Production on…

C# 热敏打印机 Socket 网络链接 打印 图片 (二)

1 IPAddress ip IPAddress.Parse("192.168.1.212"); 2 IPEndPoint iport new IPEndPoint(ip, 9100);//9100为小票打印机指定端口 3 Socket soc new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 4 …

oracle自动内存管理要不要开,Oracle 11g的自动内存管理

Oracle 的 9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic Memory Management,AMM) . 如果 DBA 真的想偷懒的话,只需要设定两个参数就可以把烦心的事情都交给 Oracle 折腾了(只要 DB…

jaxb util_JAXB自定义绑定– Java.util.Date / Spring 3序列化

jaxb utilJaxB可以处理Java.util.Date序列化,但是需要以下格式: “ yyyy-MM-ddTHH:mm:ss ”。 如果需要将日期对象格式化为另一种格式怎么办? 我有同样的问题时,我正在同春MVC 3和Jackson JSON处理器 &…

いちがつ(2017/1)

org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map com.enjoyor.soa.traffic.core.tms.mapper.MarkingInfoMapper.Map mybatis的xml配置文件中没有配置parameter map。 要么配置parameter map 要么将select,add等属性中的parameter map 改…

oracle数据库没有选项,创建oracle数据库时,出现ORA-00922: 选项缺失或无效

sdd53HOME新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题,如图:原因:一般是语句的语法有问题。比如命名不对,关键字写错等等。对于非标准的命名,一般采用双引号来创建。具体原因:就是开始的用户密…

set和enum类型的用法和区别

mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值。 12345678910111213[php] CREATE TABLE 20121101_t ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) N…

Java EE 8 MVC:使用查询参数

在上一篇有关新Java EE MVC框架的文章中,我们详细介绍了Controllers 。 在本篇和以下文章中,我们将看到如何在MVC控制器中访问各种类型的请求数据。 Java EE MVC大量使用了JAX-RS,我们将在本篇和下一篇文章中看到的大多数内容都是JAX-RS的功…

oracle 10g r2 for solaris x86,Oracle10g for Solaris9(x86)安装指南

Oracle10g for Solaris9(x86)安装指南一、安装环境检查:机器环境:cpu:P41.7G,内存:1G;OS:Windows 2000 Advaced Server(sp4)虚拟机系统平台:Vmware Workstation4.5.2Solaris9(x86)虚拟机资源分配&#xff1…

百度脑图

1.地址:http://naotu.baidu.com/ 2.简介:在线创作思维导图。 3.优势: 3.1在线使用,学习成本低。 3.2有多种导图展示方式。 4.缺点: 4.1只有思维导图一种形式比较单一转载于:https://www.cnblogs.com/hmdlys/p/6252071.…

oracle 导出 cuow,直通伍伦贡大学的升学保障— 伍伦贡大学学院(UOWC)

伍伦贡大学学院是直属大学的桥梁课程提供者,为没有达到直入本科的学生提供另一种进入大学的途径,也为大学提供语言类课程。自1989年成立以来,为大学输送了数以千计的优秀学生。目前学院有来自世界30多个国家超过2000名在校生。在伍伦贡大学学…