在现代商业社会,软件开发过程,尤其是行业应用软件的开发过程已经完全不再是软件发展早期许多人所追求的那种艺术创 作过程,而是尽可能地朝着工业化、标准化的方向发展。而软件复用正是人们朝着这一方向努力的一个重要表现。而今,软件复用经过多年发展,已经进入一个新的 层次。
为什么中式快餐难以取得像麦当劳、肯德基这样席卷全球的发展攻势?为什么中国的连锁餐馆里大厨的工资甚至要高于店 长的工资,而且即使这样,我们在同一品牌下的不同中式连锁餐馆用餐时的体验还存在着较大偏差呢?而在全世界任何一家肯德基买到的汉堡却都是一样的味道。这 就是因为中餐的操作流程不具备大范围可复用的特点,而西式快餐则可以实现流水线式的工厂化生产。
因此,对于软件开发,如果能够实现在满足个性化需求的同时实现工业化生产,那么软件开发的效率和软件实施的成功 率将取得巨大突破。然而,个性化和工业化似乎是一对不可调和的矛盾。于是人们在许多年前就展开了对软件复用的研究,希望找出各种软件之间通用的部分,把它 们提取出来,通过概要贴切地描述事物,忽视次要的细节来加以抽象,然后重复使用。而记者在第四届中国软件技术大会现场明显体会到,软件复用技术已经从前期 的技术层面的复用发展到业务层面的复用,以SOA为代表的业务层复用技术已经真正进入务实阶段,成为程序员最为关心的话题之一。
技术层面的复用
国内著名的计算机软件工程领域研究专家杨芙清教授曾发表论文指出: 探讨应用系统的本质,可以发现其中通常包含三类成分: ①通用基本构件: 是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它们可以存在于各种应用系统中; ②领域共性构件: 是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中; ③应用专用构件: 是每个应用系统的特有构成成分。应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。
正是由于应用系统存在这种本质,越靠底层的部分越容易复用,所以人们在软件复用方面的研究和应用经历了从底层到 高层的过程,先后经历了库函数、面向对象、软件构件、开发框架等等。目前各种开发框架,尤其是开源框架已经得到广泛应用,它是对系统整体结构设计的刻划, 包括全局组织与控制结构,构件间通信、同步和数据访问的协议,设计元素间的功能分配、物理分布,设计元素集成,伸缩性和性能,设计选择等。
由于开发框架本身的通用性造成其组件粒度比较小,抽象程度比较高,所以,近来又出现了对领域工程方面的研究。它 是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,覆盖了建立可复用软件构件的所有活动。领域工程对领域中系统地进行分析,识别这些应用的 共同特征和可变特征,对刻划这些特征的对象和操作进行选择和抽象,形成领域模型,依据领域模型产生出领域中应用共同具有的体系结构(即特定领域的软件构 架)或生成过程,并以此为基础识别、开发和组织可复用构件。这样,当开发同一领域中的新应用时,可以根据领域模型,确定新应用的需求规约,根据特定领域的 软件构架形成新应用的设计,并以此为基础选择可复用构件进行组装,从而形成新系统。由于适用领域的具体化,使得其可复用的组件粒度比较大,其可复用的软件 构件包括: 领域模型、领域构架、领域特定的语言、代码生成器和代码构件等。
领域工程有助于产生具有较高可复用性的构件,而且通过产生构架定义了复用的时机和复用的上下文。这样就对开发者复用这些构件提供了有力的支持,使得复用变得规范、系统和高效。
业务层面的复用
但是,上述的软件复用大多还是从技术角度出发的,例如J2EE组件框架只是一个以库、类和接口形式提供的基础架 构,最终构成应用的业务逻辑和表现/控制逻辑则要由建立在这个框架上的业务组件实现。而应用软件最终要解决的却是应用问题,或者说是业务问题,如果软件能 够在更高层次的业务层面上进行大范围复用,那么对提高软件开发效率的作用将会更大。由于大部分软件的生产过程是使软件产品从抽象级别较高的形态向抽象级别 较低的形态演化,所以较高级别的复用容易带动较低级别的复用,因而复用的级别越高,可得到的回报也越大。而如何实现这一点,正是软件开发各界当前最关心的 问题之一,由此也引发了技术人员对SOA架构、构件技术以及样本程序等的热衷。
但无论哪种技术,都依赖于首先形成一个个遵循一定业务规则、执行一定业务逻辑并管理一定数据的可在各种应用项目 中,或者某一领域内的各种项目中重复使用的组件。他们不同于Struts、JdonFramework、Hibernate这样的技术组件或者由技术组件 形成的框架,后者并不能解决特定的业务问题,而是为业务组件提供赖以生存的运行基础——一些核心底层机制,特别是组件的管理,如组件的创建、组件的获得、 组件的资源管理、组件的消亡等生命周期支持。例如,基于这些技术框架开发的样本程序就在一定程度上具有业务层复用的功能。样本程序可以集成行业领域系统开 发所需要用到的几乎所有横向组件和绝大部分业务对象,能够很好地指导不同的项目在统一技术标准上的实施,针对不同的客户需求,从平台中选择合适的横向组件 和业务组件进行组装,而这些组件都是经过长期验证的高可靠性的模块,这样就能最大程度地保证快速搭建的系统的可靠性。由于样本程序的指导性,使得项目经理 和程序员都能将大部分精力放在研究客户需求,满足业务逻辑上,而不用每天为技术问题焦头烂额。
从中可以看出,构件技术正呈现业务化的发展趋势。在构件化概念应用早期,以CORBA、微软的DCOM以及 Sun的EJB为代表。当时的构件复用体现在用户界面上的构件复用,这个层次上的构件应用确实对当时的软件开发起到了促进作用。但随着技术层次构件的积累 和成熟,企业应用开发迫切需要的不再是细粒度的技术构件,而是粗粒度的业务构件,以业务构件为中心的面向构件开发才能够真正提升开发速度、降低开发成本, 并改善软件质量。而且面向构件技术的构件业务化强调的是粗粒度的构件,是对一个完整业务功能的实现与复用,而这正是SOA中所关注的。
而且,高级的业务层面软件复用已经不是停留在软件编译之前的状态了,而是在软件编译后,甚至是运行状态下可以随 时即插即用的组件。例如SOA架构中的服务是可以根据业务逻辑的需要随时调用的,它提供了一种系统运行时动态改变其功能的方法,而不像技术组件在使用时, 需要技术人员导入组件包,然后混同已有代码一起重新编译。
因此,业务层软件复用技术将促进软件产业的变革,使软件产业真正走上工程化、工业化的发展轨道。软件复用将造成 软件产业的合理分工,专业化的构件或服务生产将可能成为独立的产业而存在,软件系统的开发将由软件系统集成商通过购买商用构件或者服务,集成组装而成。软 件复用所带来的产业变革将会带来更多的商业契机,形成新的增长点。
小资料:概念辨析
开发框架:即framework,它是某种应用的半成品,就是一组组件,供开发人员选用完成自己的系统。在某些方 面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。框架一般处在低层应用平台(如J2EE)和高层业 务逻辑之间的中间层。
构件技术:构件是一种软件开发技术,它的基本理念是将软件开发过程中会重复用到的部分封装起来,等到有新的同样的需求时调用。构件是应用开发层面的概念,适用于企业应用的开发。构件是SOA的实现形式。
SOA:SOA是一种表现形式,是通过服务对企业的应用需求进行展现。SOA注重将已经存在的应用系统进行集成,同时又可以根据标准规范新的应用系统的开发过程,使得企业内部甚至企业之间能够基于相同的服务框架实现信息和数据的共享与交互。
分享到:
相关推荐
5. 传输技术的发展历程及发展趋势:光传输技术的发展历程及发展趋势:频谱灵活的光网络技术、软件定义光网络、全光网络技术。卫星通信技术的发展历程及发展趋势:卫星通信技术的发展历程、我国卫星通信技术的应用...
从技术发展来看,DAB作为一个新的广播体系,其诞生是广播行业发展的必然趋势。DAB具有音质好、频谱利用率高、抗干扰能力强和可移动接收等特点。这些优势都是传统模拟广播所无法比拟的。与此同时,DAB系统技术性能的...
这些趋势的出现,不仅是为了应对日益复杂的企业需求,也是技术创新推动业务发展的必然结果。 首先,我们要理解平台与中台的区别。平台通常指的是一个基础架构,它可以是技术平台,如微服务开发框架,用于支撑各类...
- 信息与信息化:信息化是社会经济发展的必然趋势,通过信息技术应用提升社会效率和生产力。 - 现代化基础设施:包括通信网络、数据中心等,是信息化的基础。 - 现代化创新发展:强调科技创新和信息技术的融合,...
管控平台日志金融云 - 分布式中间件应用 层交易账务 服务面向 SOA 的应用开发框架分布式事务交易库1交易库2账务库M账务库2数据 层交易库N账务库1金融云 - 移动平台开发支撑测试支撑构建支撑研发期可复用的服务组件...
- 它是一种主要技术,用于实现FTTH(光纤到户),被认为是未来宽带接入网络发展的必然趋势。 2. 技术背景与现状: - 随着宽带业务的迅猛发展,用户对带宽的需求不断增长,WDM-PON技术受到国内外广泛关注。 - WDM...
总的来说,PTN技术的出现是应对IP化业务趋势的必然选择,它结合了以太网的经济性和MPLS的控制平面优势,旨在构建一个更加高效、智能和可靠的承载网络,以满足未来通信网络对带宽、QoS、同步和OAM等方面的严格要求。
因此,采用计算机化的仓库管理系统成为必然趋势。UML的产生,为解决此类问题提供了强大的建模支持,使得系统设计更为规范和高效。 本报告的工作主要分为两大部分:一是对仓储管理系统进行深入的需求分析,包括业务...
在现代信息技术的推动下,图书馆管理系统的数字化转型已经成为必然趋势。本系统“JSP基于WEB的图书馆借阅系统”是利用JSP(JavaServer Pages)技术,结合数据库管理,实现了一个高效、便捷的在线图书借阅平台。该...
2. 综合集成:信息产业提供多元化的产品和服务,信息采集、处理、存储和传递的集成成为趋势,同时,不同媒体和业务的融合也是必然。 3. 网络化:通信网络的广泛覆盖和深度发展,使得终端和用户都被纳入统一的网络,...
因此,实现全业务IP承载成为了未来发展的必然趋势。 2. **提升IP网络性能**:针对IP网络在承载语音、视频、专线服务时出现的问题,需要对网络性能进行评估与优化。例如,对于广播视频和高质量专线业务,可能需要...
在信息技术高速发展的今天,银行业务的数字化与自动化已经成为必然趋势。作为一款强大的编程工具,Microsoft Visual C++(简称VC++)因其高效、灵活的特点,在开发企业级应用程序,尤其是银行管理系统中扮演着重要...
因此,提升宾馆的服务质量和管理效率成为了必然趋势。 ##### 需求分析 宾馆客房管理系统的目标是实现对客房的有效管理,包括客房预订、入住、退房等一系列流程的自动化处理。系统需要具备以下功能: - 客户信息管理...
总的来说,软件定义和云计算背景下的电信核心网“云化”演进,是电信网络向更高效、更灵活、更智能方向发展的必然趋势。这一演进不仅改变了网络架构,也对电信服务的提供方式和商业模式产生了深远影响,为电信行业...
面对这一趋势,传统的电信网络面临着巨大的挑战,业务网络的IP化和承载网络的分组化转型成为了必然的选择。在此背景下,运营商们不得不对整个网络架构进行重新思考与调整。 一方面,新兴业务的特点决定了它们对于...
三层架构使得数据访问和业务逻辑分离,提高了代码的可维护性和复用性。程序员在面对面向对象编程时经历了从不适应到逐渐掌握的过程,认识到对象间的复杂关系其实源于现实生活中的各种关系模型。设计模式作为面向对象...
- **未来发展趋势**: 全光网络被视为未来传送网发展的必然趋势,能够提供更高带宽、更长传输距离和更强的安全性。 - **当前技术局限性**: - SDH+WDM组网方式的带宽利用率低,缺乏灵活性; - SDH技术特征不再适用于...