模型驱动SOA帮助提高开发团队效率

做过应用软件开发的朋友们大多都熟悉传统的开发生命周期:应用软件首先从业务分 析员画在在纸上或者流程图工具中的业务草图开始,一个个功能被定义出来;然后交到开 发人员手里,设计,编码,组装;接着应用软件又交付业务分析员做测试;业务人员按照 当初设计草图勾勒的功能去测试,发现问题后报一个Bug,提请开发人员修改代码。反复 多次,最后交付的软件很少有和设计100%契合的,大部分是业务人员与开发人员互相让步 的结果。由业务人员直接参与测试,还是比较理想的情况,多数开发过程,测试由专门的 测试人员按照他们对业务设计的理解做测试,他们对业务的理解又会同业务分析员以及开 发人员有所偏差。

可以发现,整个应用软件的开发周期中,在交流沟通上,以及为纠正沟通产生的误解 ,花费了大量的人力物力。为了解决沟通的问题,特别是业务人员和技术人员之间的沟通 ,软件开发过程中引入了许多模型。模型能够在一定程度上对问题提供抽象,能够作为不 同领域之间有效交流的共通符号。

说到模型,就会想到常用的数据库设计的ER模型,应用程序设计的UML,以及一些其他 一些业务流程模型。随着软件开发工具的不断进步,许多模型只要能够提供完备的需求描 述,完全能够直接产生应用的实现代码,而且也能够按照实现代码利用逆向工程产生对应 的模型。这样的模型多数是来自于技术领域的模型,例如:ER模型和UML中的模型。模型 和代码之间的双向工程,极大的方便了应用系统的设计和维护。相对于改变代码,对模型 的更改更加迅速高效,而且避免手工编码对模型的误解。相对而言,来自于业务领域的模 型基本上只能作为需求描述的工具,并不能直接映射到工作流程和业务系统的实现。而 SOA的出现,让这种情况得到改观。

SOA之所以成为业界的热门议题,其中一个重要的因素就是对应用系统的模块做出了更 高层次的抽象,同时提供了面向业务和面向技术的方法论。面向对象模型中对象层次的抽 象——类、对象、属性、事件,等等,是技术领域首次试图通过模仿客观世界 的存在让业务领域能够更好理解应用系统。SOA把这种尝试成功的推进了一步,通过更高 层次的抽象,让业务功能模块——或者称作“服务”包含更多业务 的因素,而把实现的技术细节完全隐藏在标准的接口界面之后。更高抽象的“服务 ”,正好契合了业务流程模型的抽象粒度。业务人员熟悉的模型,就能直接映射到 工作流程和业务系统的实现。

所以,SOA让模型驱动的开发进入业务层次,业务人员而非技术人员成为这个层次上的 创新主体。软件开发的生命周期中,增加了“服务”组装成复合应用 (Composite Application)的环节,分工更加明确合理。业务分析人员有机会通过模型来 直接产生需要的业务流程实现,减少和技术人员沟通的误解。技术人员能够专注特定的业 务模块的实现,特别是对完全定义的接口的实现。模型驱动的开发遵循敏捷化开发的思路 ,在循环的原型创建和细化中,业务模型、对象模型和数据模型,等各个层次的模型不断 完备,直到能够直接生成应用系统。而随后的系统维护也变成了对模型的维护。应用系统 的模型和实现之间的双向工程进一步扩展到更高的业务流程层次,对业务系统的修改直接 针对模型完成,高效,快捷,减少错误。

总之,模型驱动SOA凭借更高层次的业务功能抽象,达成业务模型和业务系统实现的双 向工程,帮助提高开发团队效率

时间: 2024-08-02 02:05:35

模型驱动SOA帮助提高开发团队效率的相关文章

如何提高开发团队的交互性

如果遇到这样一个情况,你花了大量的时间制定了一个完善的http://www.aliyun.com/zixun/aggregation/7646.html">市场营销计划,但因为你们是一个创业公司,你的产品还没有完成或者还在做最后的优化等其他的原因,导致营销计划无法按时开展,这样的你会不会很不开心? 接下来就让我来与你们分享三个能提高你们开发团队交互性的小贴士吧,虽然在市场营销领域这些方法是经常用的. 1,设定优先级,有效的沟通 我相信在你的脑子里肯定有很多的想法,不然你也不会有现在这份薪水

浅析如何提高SEO优化团队效率

中介交易 SEO诊断 淘宝客 云主机 技术大厅 自2008年以来SEO这个词逐渐进入我们的视野,在经过多年的发展以及行业的发展涌现了许多优秀的SEO团队以及SEO优化公司,整个行业进行了新一轮的发展势头,但是也面临着对应的难题,也就是SEO优化团队效率的把控. (领导:小子,抓紧时间发外链!) 如何进行分工合作 一个SEO团队的主要组成由以下几个小组组成,每一个小组负责各自的核心工作,这是我常见的SEO团队组成结构,当然这些小组在多数情况下只是一个人-- 1.外链小组 外 链小组主要网站项目的外

如何通过单元测试提高开发效率?

Kevlin Hnney是英国的一位独立顾问和培训师,其关注的范围主要包括软件架构.模式.开发过程和程序设计语言.在本文中他将谈谈如何通过单元测试提高开发效率. 单元测试只会浪费时间吗?某些软件专家们确实是这么想的.最近在Software Quality Insights上看到一篇文章--<单元测试真的有用吗?>.那些认为单元测试无用的开发人员给出了如下理由: 1. 他们不了解单元测试. 2. 很难写出优秀的单元测试. 3. 单元测试只会浪费时间.降低效率. 4. 写单元测试需要太多时间(特别

从开发框架提高开发效率说起

在我们接触的很多项目中,如果有一些参考性的项目框架,那么做起开发来,事半功倍,一般来说搭建或者积累这些框架性的项目,非一日之功.一般我们可以把具体的项目分为Winfrom.Web.微信.或者Socket等方面,具体项目界面表现不同,但是界面层底下的应该都是差不多的结构,能够支持多种数据库的接入,提供更好的接口封装,以便重用,实现最优化代码的处理. 软件系统随着业务的发展,变得越来越复杂,不同领域的业务所涉及到的知识.内容.问题非常非常多.如果每次都从头开发,那都是一个很漫长的事情,且并不一定能将

Android 如何用 Vim 提高开发效率

本文讲的是Android 如何用 Vim 提高开发效率,虽然笔者是Android开发工程师,但也接触过各种IDE(不限于Android开发).不同的IDE往往都有不同的快捷键,我们总不能对每种IDE都进行配置吧.实际上,现在大部分IDE都能通过插件的形式支持Vim了.所以,只需要掌握Vim的基本使用,在支持Vim的IDE都能很快上手,熟悉的操作,熟悉的手感. Vim模式 Vim可分为3种模式,分别是Normal模式.Visual模式和Insert模式.以下的基本操作都是在Normal模式进行.三

如何利用 Visual Studio 自带工具提高开发效率

原文:如何利用 Visual Studio 自带工具提高开发效率 Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢?   显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位.   如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 "行号"       使用书签 和平常意义的书签类似,当我们希望在日后某一时刻快速定位到一处代码时使用.比如在项目例会上,你需要演示本周你所做的一些改

Xcode提高开发效率的代码块分享_IOS

前言 我们在开发的时候会用到很多常用的代码,比如UITableView的代理,一般情况下我们要么自己敲要么复制粘贴,但是Xcode有一个功能,可以用一行代码敲出你预设的一段代码.这就是Xcode的代码块功能,这篇文章跟大家分享一些常用的和自定义的代码块,有需要的下面来一起看看吧. 一.常用的: 1.strong: @property (nonatomic,strong) <#Class#> *<#object#>; 2.weak: @property (nonatomic,weak

Python利用IPython提高开发效率_python

一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代 码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率. IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作:它还有一个基于 Web 的交互式笔记

开发团队的效率

开发团队的效率 2014年6月9日 陈皓 39,870 人阅读     我之前写过一篇叫<加班与效率>的文章,从概念上说了一些我对"效率"的认识,但是那篇文章趋于概念化,对于一些没有经历过这样的环境的同学来说,可能会觉得太抽象了.很早以前就想写一篇更具体一点的,可执行的文章与<加班与效率>这篇文章相辉映,并再把我两年前在杭州QCon上的那个"鼓吹工程师文化"的<建一支强大的小团队>(新浪微盘)的观点再加强一下. 但是我遇到了一些思