【TechTarget中国原创】 我们进一步看一下一些敏捷建模演化的启示,简单地追溯一下数据一致性编程、数据建模和UML的历史。
数据一致性编程
1980年,在认可度和实际运用方面,J. D. Warnier、Ken Orr和M. A. Jackson的努力终于得到了回报。他们建立的任意复杂的程序都可以从输入/输出结构中一步步推测并且可以使用三个基本的结构化元素(序列、迭代、选择)来建模。他们的需求开始就使用一些符号,这些符号在数据结构和结构化程序的建模方面以及软件设计蓝图方面最终获得了一定的认可。
如果没有Warnier、Orr和Jackson创建的数据一致性编程结构,这些问题就阻碍了开发:
- 你怎么没有为脆弱的、无序序列的并行和集群准备一些的特殊符号?
- 协作程序怎么样,它能从最近的状态恢复复杂的处理吗?
- 是利用回溯法来实现多步输入评估或检索吗?
- 进程间通讯的图表怎么样?
对于能工作的数据一致性编程、建模工具、代码生成器、测试工具和培训必须保持很多扩展。
数据建模
1985年,由于日益增长的计算信息独立的观点成为一项非技术性资产,Edgar Codd和Chris Date的工作扩展到融合了作为一种非技术资产的,不断增长的,独立计算的信息视图的图表符号。很快,Codd和Date的这个创新思想迷失在专有符号的丛林中,其中包括诸如,在描述某种关系的同一基数时几乎有10种方法。实际上,一种标准的结构化查询语言,数据定义语言(SQL DDL)是利用不良的标准化图表来“改善”的。
由于数据模型忽略了在业务或者软件方面的处理动态程度,好的模型就会混合使用非标准化编程符号和同样的非标准化数据来建模。然而数据冗余降低到最低限度取决于SQL和关系型数据库,大多数程序库仍然和以前一样具有冗余倾向,同时这种不平衡将持续直到第三方,对象社区制定出标准。
统一建模语言
1997年,统一建模语言(UML)作为一种对象管理组织(OMG)的标准公布,用于修剪非标准对象符号的这片丛林。这要感谢Grady Booch、Ivar Jacobson 和James Rumbaugh工作的突破性进展和游说。
UML对处理和数据都可以建模,对象方式,将建模带入一个更广泛的具有独立的域/应用和方法的软件社区。同一个标准中的类,序列和状态图提高了正确性,交付周期和协作,与专有数据模型,网络图相比——每一个都试图摆脱——Jackson或Warnier-Orr图。
一般来说,UML 1.x,以一种敏捷方式在一开始就应用于压力动机,教育,协作,交流,而把工具和过程的问题放在一边 。但是如果那样它就逐渐演变成一个非常殷实的大杂烩。这道难消化菜的数目——图表类型——达到13,因为有50家公司共同创作了UML 2。精益项目需要从13种精选出2至5种类型。尽管在通用“语法书”标准或者元模型的标准之中,符号扩散仍悄悄跟进着。回到精益生产的步骤和措施后来却被OMG组织在SysML标准(2006)中采纳。。
关于作者:Milan Kratochvil是一位的独立顾问和教员,他主要研究软件需求,建模,架构,特别是差异,客户化或配置问题。他是“UML插件之光—如何提出你的软件需求”(剑桥出版)和“成长的模块化—复杂产品,服务和软件的大规模定制”(施普林格出版)这两本书的作者。他已经在软件开发行业工作了32年,至今居住在瑞典的斯德哥尔摩附近。