1、Web效劳组合的敏捷软件开发研究论文 敏捷思想为软件开发带来了新思路。面向效劳应用的普及以及Web效劳的出现为敏捷开发关于构件和精益的思想提供了新的实现途径。不同粒度的Web效劳组合满足不同业务需求,也符合快速交付可以使用软件思想。 当今的软件行业依旧在焦油坑中痛苦挣扎,为平衡工程时间、预算、本钱、质量等根本要素,从管理到开发过程提出众多解决方案,可问题依旧很难得到解决 1 。随着敏捷宣言和敏捷原那么的,敏捷开发思想逐步普及。随着互联网的出现,软件开发按老套路很难跟上市场变化。 目前,软件功能变化快,业务穿插增多,用户需求变化快,因此需要将新思想和开发技术引入到软件开发中。随着面向效劳应用的增
2、多,拥有不同软硬件资源的单位为软件开发用户提供了大量Web效劳。充分利用这些效劳也符合敏捷开发中精益思想和快速使用软件的思想。 瀑布模型将软件开发的过程设计成一个线性过程,主要分为5个阶段:需求分析、设计、编码实现、测试和部署维护,依次线性进行,只有当前一个阶段任务完成后,才能进行下一个阶段。只有到测试阶段才能发现问题,而要解决这些问题,几乎要再来一遍,很难适应中途需要变更的工程。前一个阶段出现错误会被后一个阶段放大,可能造成灾难性后果。 在互联网和移动互联网快速开展的今天,业务改变更快、更频繁。业务需求分析和设计往往还没完成,市场和消费需求已经发生变化,这就要求软件开发能适应新时代要求。在这
3、种背景下提出敏捷开发,软件工程的另一个重要进展是基于构件的开发。 尽可能利用可复用构件,组装成新系统,提高软件使用率,减少故障和降低本钱,提高系统质量。基于构件的系统,更适用Inter技术和分布式系统开发的需要 2 。二战后日本丰田公司陷入困境,丰田开始从全新的角度思考制造、物流和新产品研发活动,并逐步形成丰田生产系统这一新型的生产方式。 丰田生产系统的根本思想是精益原那么,即消除浪费,并对浪费的概念重新进行定义,即“不能为客户创造价值的事物都是浪费” 3 。浪费也是软件开发中的常见问题,过度文档设计到最后却不能变成实实在在的软件,导致开发软件反复返工、开发人员频繁跳槽、经常加班等。Web效劳
4、能很好地共享资源,减少浪费,方便连通不同企业、不同信息平台,合理整合业务链内的上中下游企业资源。 所谓Web效劳组合是指通过效劳查找以及效劳之间的接口集成,将多个自治Web效劳根据需求进行组合,从而提供新的、功能更强的Web效劳。从粒度意义上讲,Web效劳组合是对Web效劳进行更大规模封装,并将该封装结果作为一个Web效劳展现给外界。从顺序意义上讲,Web效劳组合是一个满足用户需求的Web效劳调用序列 4 。 如游客想到北京旅游,希望在提供旅游业务的网站上完成整个旅行安排。其要求如下:首先,选择景点,包括人文和自然;其次,选择交通工具以及所选交通工具的价格类型,希望根据预计的旅游时间和当天的天
5、气选择交通工具,如果天气晴朗那么坐飞机,否那么坐火车; 再次,酒店预定和支付。在这个案例中用户涉及的效劳主要是景点效劳(ws1)、交通效劳(ws2)、酒店效劳(ws3)、支付效劳(ws4)。提供这些效劳的提供商并不是一家,但商家之间需要相互合作。这4个效劳是大的复合型效劳,其也是更多具体效劳的组合。 具体的效劳可以划分为多个层次,每个层次可由复合效劳和原子效劳组成。叶子节点处的效劳都是原子结点。按从上到下逻辑划分,具体组合由下而上填充效劳,组合成更具体效劳。因此,进行Web效劳组合的第一步是对业务流程进行分析,划分业务单元。 Web效劳组合层次结构 当用户提出需求时,不可能一次性将所有需求都表
6、达清楚,而且开发过程不可能一直等待所有需求都最终确定。这就需要开发人员针对用户需求做优先级排序,先解决优先级最高、最紧迫、用户最关心的需求。由于Web效劳都是已封装好的业务功能,可快速使用,缩短开发时间。 在基于效劳架构的系统中,不同业务Web效劳可根据需要进行组合和替换,增强软件灵活性和适应性,更好适应多变需求,减少不必要浪费。近年来网络上Web 效劳数量急剧上升,从Inter 上寻找满足需求的效劳变得困难 5 。 为让Web效劳成为计算机可理解的软件实体, 将语义Web技术引入Web 效劳, 形成能够在语义层面支持Web效劳间互操作的语义Web效劳,使基于Web的效劳应用更灵活、更智能。基
7、于语义的效劳描述主要是利用本体表述领域内知识,使效劳描述带有语义。本体是共享的概念模型的形式化的标准说明 6 。 本体对于Web网络的意义在于:本体通过统一术语概念及其联系的解释,阐述网络上的数据、程序、网页及其它网络资源包含的语义 7 。Web效劳语义是指效劳提供者与效劳请求者之间就使用某个具体效劳的必需条件、交互过程及效劳运行结果所达成的共识或协议 8 。 用语义标识描述Web效劳,最终目的是实现语义Web效劳自动查找、组合调用,改变软件开发模式,使计算机可以参与到开发过程中,加快软件开发进度、降低人工本钱、提高开发效率。 由于Web效劳不同于传统软件开发,所提供的Web效劳并不是针对具体
8、用户需求专门设定,效劳功能粒度和用户期望有一定区别。因此,需要一种智能化技术组合Web效劳,可以实现动态调整和自我修正。 神经网络是用大量神经元的互连以及对各连接权值分布来表示特定的概念或知识。在知识获取过程中,其只要求专家提出范例及相应的解,通过特定学习算法对样本进行学习, 通过网络内部自适应算法不断修改连接权值分布到达要求, 并将专家求解实际问题的启发式知识和经验分布到网络神经元的权值和阀值上 9 。 知识表示不再是规那么,而是分布于整个网络中的权值和阈值,神经网络利用领域专家解决实际问题样本训练神经网络, 使神经网络在测试数据输入条件下能获得与专家方案尽可能接近的结果。根据规那么集生成神
9、经网络,如图2所示。 神经网络训练web效劳 基于规那么的神经网络推导众多的效劳组合,可通过计算机自动实现。减少人工选择组合时间,开发人员可以省去繁杂的选择比拟过程。知识库集中领域专家经验,使降低开发人员之间沟通不便。使用大量自动化智能技术和软件复用技术,可以快速设计和开发出可使用的软件,从而降低浪费,提高开发效率。 敏捷开发强调快速开发能满足业务需求的软件,业务本身随市场变化而变化。用户有更直接体验,与开发人员沟通起来更加明确,也可更清楚描述出自己所需软件产品。 Web效劳使孤立资源能真正整合,但效劳提供者不会按照每个需求者的需求提供个性化效劳。为完成具体业务功能,需要进行Web效劳组合。不同方案组合就是一次次重构,可防止浪费,同时也可加快开发进度。