新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> 开发语言 >> 文章正文

组件式系统开发新思维

在网际网络促成全球化竞争的情况下,各种电子商务服务趋向多元化、及时性、互动性,企业对软件开发的弹性与效率要求更胜于过去,传统软件产业的生产力受到更大的质疑。信息系统不仅要能支持企业分散于各地的经营管理,更需整合上下游供应链管理,以累积营运过程的知识,并能动态地配合企业的策略,改变资料收集的方式、地点,提供必要的决策信息,因此应用软件系统因而更须具备修改弹性与快速发展的特性。
电子商务应用软件开发供不应求
从企业对信息科技的投资带来大量获利,到网际网络电子商务、无线通讯电子商务(Mobile Commerce),到生物科技与信息家电的兴起,我们都意识到信息软件的重要性与日俱增,但是全球软件产业的生产力提升之技术却是迟迟无法突破。大家对于软件预算、时程、品质等软件危机的问题耳熟能详,这些问题的成因可以归纳成软件复杂度与生产力两大问题。由于使用者得需求越来越多,系统模块膨胀,彼此交互关连使得复杂度越来越高,造成后续的发展维护变得越来越困难。不能完全工程化的软件开发方法使得软件生产力一直无法提升。在全球商业竞争越来越激烈的情况下,企业必须设法降低软件成本并提高生产力。对于这点,产学界一致认为采用对象导向技术是解决软件危机的不二法门。
 
应用软件组件化已成为大势所趋
以对象导向技术为基础的组件式系统发展在相关标准形成与支持厂商逐渐增加的情况下,已经成为一个具体可行的解决方案。组件式的对象导向系统发展方法不仅提供组织将大型系统分解成组件组合的典范,更提供组件再用的典范。软件组件的制作是以"软件再用"为目标,以组装方式来建构系统,这种开发方式使得软件具有弹性修改、更新及允许增减应用功能等优点,并使个别组件开发的复杂度降低,因此在系统发展过程中项目进度及成本品质的掌控比较容易,后续维护的困难度也得以降低,可以大幅降低成本,提高生产力与品质。另一方面,组件式系统发展方法也有利于产业分工,可以降低投资者进入产业的门槛,扩大组件市场外部性,降低成本,促进产业发展,因此被视为未来软件开发的新趋势。
组件式软件开发技术(Component-Based Software Development)是近年来软件产业最重要的技术革命,正带动软件产业由手工开发为主的原始产业,逐渐蜕变为自动化工具辅助开发之成熟产业。软件组件技术让企业系统易于弹性组装,系统开发者可依需求,采用组装方式开发应用系统,随时增减组件以调整系统功能,修改时亦可局限部份组件而不需牵动整个系统,使得应用系统开发及维护更为容易,客户需求亦可快速满足,可以有效解决传统企业软件系统维护困难,及版本更新时间过于冗长的问题。因此组件式系统发展是对付软件危机的一种有效解决方式,势必成为软件产业的主要发展趋势。
 
组件式应用系统发展的成功关键
组件式系统的发展包括软件组件的开发与组装组件成为应用系统,其发展过程要着重组件的可再用与组装弹性,为了达到可再用的目的,组件开发前的系统分析工作必须从领域分析着手,找出相同领域中不同的应用间相同的部分,再进行程序的分析设计,才能确保所开发的组件能在后续系统发展过程中被重复使用。另一方面,为使不同开发人员所发展的软件组件能彼此相互连结成为应用系统,软件组件必须遵循标准的接口规格。在组件开始撰写前的系统分析设计乃是一件相当重要的事情,它牵涉到组件再用与组件间相互连结的可能性。所以“再用”虽然是组件式系统发展被重视的主要因素之一,但是要了解采用组件式系统发展方式未必能够达成再用的效益,除了要建立一个强调再用的机制外,组件开发之前的分析与设计是确保组件能够再度被用的关键。
 
对象导向技术是组件式系统发展的基础建设
具有封装和继承特性的对象导向技术,提供系统发展人员在不增加复杂度的情况下扩大系统的方法,最适合用来发展强调再用的组件式系统。但是使用对象导向程序语言并不保证达成对象再用,而必须要投资再用组件的发展,以及系统开发的方法论,一套合适的对象导向系统分析设计方法是达成组件式系统发展的重要关键[6]。对象导向系统的分析与设计是以对象为中心,并藉由反复来回分析设计,分别从静态的角度分析对象的抽象类别(Classes)和类别的属性(Attributes),及动态的角度分析其内部和其它对象类别间的动态过程,然后找出隶属此类别的方法,其分析、设计与程序代码撰写之间需要衔接的间隙比传统的方法小很多。采用对象导向分析设计不仅有利于程序的开发,发展人员能够在分析设计完毕后,快速获得执行结果的回馈,对于系统需求掌握之提升,与对系统设计的精致化有相当大的贡献。新一代的对象导向分析设计方法强调塑模(Modeling)的观念,分别从各种系统发展相关角度描绘应用系统中的静态对象结构及其间的互动关系以及完整的系统架构。组件式系统发展则是从对象导向分析与设计出发,在组件塑模与系统塑模过程中,思考如何将可共享部份抽出,以利后续再用,包括组件再用与设计再用。设计再用是从类别之间的互动合作关系里做探讨,找出可行并且有效率的设计方案,做为后续再用的基础。组件式应用系统发展的再用效益必须在分析设计阶段即开始思考,对象导向式的分析设计由于强调封装与继承等特性,其反复来回的分析设计更有助于共享组件的抽离制作,以及良好系统设计方式的重复再用,堪称为组件式应用系统发展的基础建设。
 
设计铸型和框架是组件式系统发展的成功要素
软件组件的胶合(Glue)技术是组件式系统发展中,除了对象导向分析设计之外的另一个重要关键,而框架(Framework)是这种技术的其中一种,美国ACM学会更指出应用系统框架(Framework)技术将是本世纪软件技术的核心。框架是一种结合“组件再用”与“设计再用”的技术,软件开发人员用其架构的一部份或全部来建造另一个系统;它是一个应用系统的通用骨架(Skeleton)、或是可再用的半成品(Semi-Complete)应用系统,被用来客制(Customize)应用系统。铸型(Patterns)是一种“设计再用”的观念,它是框架技术的核心。铸型是一组有良好的接口定义与相互关联的对象的运作方式,针对某一问题特性,提供一个可再用设计。如果以对象导向的术语来说,框架是一组相互合作的类别(Classes),这些类别构成某个领域的应用软件的再用设计。框架将一个领域的应用系统之设计,切分成若干个抽象类别,并定义各个类别的任务与其间的合作关系,提供新系统架构设计的指引,开发者可以继承这些类别产生子类别来建构新系统。因此应用系统框架是一群透过铸型定义关系的软件组件的组合。应用系统框架技术与组件式发展技术结合将可以促进软件组件与软件设计的再用、加快软件开发、提高软件品质及降低开发成本,应该成为新一代软件开发技术之主流。
 
 
图一 组件式系统的基础与发展
 
软件组件在铸型与框架的规范下才容易发挥再用效益
传统的程序代码与系统设计在缺乏系统架构的规范下,其再用效益的发挥有一定的限制。铸型与框架一方面规范系统设计,确保软件组件与设计的再用,另一方面则累积企业发展软件系统的知识。在软件组件是由不同人员在不同时间、地点与不同项目中所发展的情况下,软件组件能够组合一起运作的先决条件,除了组件要遵守规定的接口标准外,组件的功能是否吻合专业领域公认的期望也是重要的关键。铸型约束软件组件发展人员遵守接口标准与领域的规范,而框架则提供事先建立可直接再用或调整重组的领域产品。两者可以在系统发展的过程中同时发展,藉此可以累积相关的企业知识建立企业核心境争力,并做为后续项目的基础。企业也可以使用市场上成熟的框架产品,这相当于“再用”众多企业的智能结晶,结果软件的生产力与品质也必然获得长足的提升。因此框架提升组件式系统的再用层次,如果不用框架,应用系统开发的再用方式是以组件及模板(Templates)为基础;但若使用框架,开发者的工作是决定采用哪些铸型,以及要不要继承哪些类别来做扩充。使用框架来发展系统相当于复制一套应用系统,使用其架构和组件,系统开发者可以节省发展组件、搜寻组件与组合组件的功夫,而将心力集中于了解顾客需求、开发新组件与精致现有框架与铸型,因此可以大幅提升生产力,并且累积所投入的努力。
 
推动软件产业采用组件式系统发展
组件式系统发展对软件产业来说是一种典范转移(Paradigm Shift),根据学者从经济效益层面对业者接纳新典范的顾虑包括:
        能否做中学(Learning by Using)
        与现有技术相关(Technological Interrelatedness)
        具有正向的网络外部性(Positive Network Externalities)
其中的第一点在此不是业者的顾虑重点,因为一般业者都会以先导项目的方式边做边学这项新技术,而在第二点和第三点中,业者确实会因组件式系统发展方法中,有关对象导向系统技术的不熟悉,以及对框架和铸型的使用缺乏了解产生退却的心理。尤其要发挥组件式系统发展方法的效益,有赖于庞大的组件市场及成熟的框架产品做后盾,一方面可以卖出自己开发的组件,一方面买到不符自行开发成本效益的组件,也就是达到网络外部性的所谓关键大量,才会有更多业者愿意加入这个市场。在业者大多意识到组件式系统发展方式重要性的情况下,政府可以藉由委托办理教育训练、奖励相关产业环境的建立,来克服业者不愿当先入者(Pioneer)的难题,降低业者进入产业分工体系的进入障碍。
 
因此国内软件业者除了重视组件式系统发展方法外,更要及早投资掌握契机,提升自己的竞争力,政府单位可以鼓励教育训练及升级辅导活动来推广其应用,促进产业界对此类系统发展方法建立共识,激励产业投资,建立分工体系,实质提升我国软件产业的竞争力。(本文作者为政大资管系副教授,转载自第30期软件产业通讯)
作者:曾淑峰 | 文章来源:未知 | 更新时间:2007-11-4 13:27:47

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    没有相关文章
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·搜集整理的asp.net的验证方
    ·各种FOR循环结构的整理
    ·软件项目开发中应该考虑那
    ·搜集整理的javascript sel
    ·软件开发中项目经理有那些
    ·学习如何在Lambda表达式进
    ·C++基础知识:结构体数据的
    ·C#实现短信发送程序的例子
    ·sun最近修补了一部分java的
    ·rss定制的另外一种实现方式
    ·delphi实现利用arp欺骗来实
    ·基础学习:基于WF的流程框
    ·网络编程中怎样得知一次数
    ·如何逆序输出单链表?
    ·软件开发过程中的性能设计
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000