| |
基于中间件的MES构件的研究及其实现 | |
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版 | |
基于“构件”的开发意味着,我们把应用划分成许多小的构件,而这些构件不必自己开发,可以购买第三方的产品-构件,而这些构件,可靠性较高,由于产品化而成本较低。这也意味着将来会产生许多“生产构件的公司”。
1、概 述
1.1 研究背景
在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。
面向对象技术虽然被大家接受,公认为当前的发展主流,然而在实际应用时,还存在着一系列问题。
(1) 模型和概念尚未统一,不同的人对系统和对象的理解不一致,导致了各种对象语言均有很大差异,且语言自身与纯面向对象理论有许多不一致的地方,就难以形成统一的标准和开发规范。
(2) 要求使用面向对象技术的人员素质较高,要掌握的东西很多,如要熟练掌握C++必需了解大量的MFC类库,且要了解每个类的细节。
(3) 面向对象复用仅仅是处于初级阶段,未提出任何模式和规范以及相应的管理机制。
(4) 工程上难以实施。真正用纯面向对象技术来开发大型软件的并不多,实际应用领域中的可复用领域专用构件缺乏;由于对象无统一标准,因此还停留在程序员自己复用,很难共享,更谈不上分布式情况下复用;纯面向对象要摒弃原有的许多技术等。
经过二十多年的研究和实践,人们形成了这样一个共识,对象并不是解决所有设计问题的灵丹妙药,软件工程必须超越面向对象方法,形成以体系结构为中心的新方法。
1.2 国外和国内的现状及发展趋势
软件业是目前最有发展前途的产业,其营业额均以每年20%的速度递增,预计软件业将成为世界第一大产业。
软件构件技术在一、二年内将轰轰烈烈地开展起来。目前国内许多大工程、大项目都纷纷采用这项技术,如863计划近一半的项目、通信方面许多大项目的投标、金融行业的业务处理系统等,都在朝这个方向走。 而国外早就将构件技术应用到实践中去。
美国国防部高级研究项目署建立了"用于易修改的可靠系统的软件技术"项目,研究领域特定的、基于复用的软件工程技术,并建立了三个示范工程项目。美国空军电子系统中心与美国航空航天局合作建立了"可复用防务软件的中央档案库"项目,以促进国防项目中的软件复用。
据预测,今后,软件开发商必须了解主要系统集成商和应用软件开发人员所需要的基本构件,因为他们在引导着构件技术的需求和功能走势。到2003年,所有新开发的应用至少有70%将是基于构件的组装,开发商的市场应变能力也因此得到提高。
2、软件开发的成本模型
2.1 软件开发的目标
在过去的二十年中,为了适应软件项目不断增加的复杂性,软件行业一直不屈不扰探索新的开发方法。我们已经目睹了太多的演讲,改革以及成功与失败的循环往复。虽然软件技术、流程和方法在飞速地发展,但软件本身却依然停留在劳动力密集型的间断,因此,管理人员,工艺,资源和风险的管理技术就具有及为重要的意义。
成功地把握软件项目的成本计划,进度计划,质量计划,是项目取得高利润的关键。我们的目标,就是应用我们的知识,是软件开发组织在软件项目上的投入产出和组织能力方面有明显的改善。
2.2 软件开发的成本模型
软件项目中,软件成本是软件项目的根本,如今,正在使用的软件成本很多,最常用最开放的便于记录的模型Constructive Cost Model(COCOMO),已经在行业中广泛使用了二十年。
COCOMOⅡ成本模型包括大量的参数和技术,可以对各种类型的软件开发项目进行评估,这些参数可以抽象为四个基本的函数:
复杂性:软件开发解决方案的复杂性,通常依据人工生成构件的大小来衡量(源代码和功能点的数量),这些构件用于开发可用产品的功能。
流程:指的是用于生产最终产品的流程,特别是指帮助开发人员避免非增值活动的效果。
团队:指的是软件工程团队的能力,特别是指解决计算机科学领域和手头项目应用领域问题的能力。
工具:指的是团队用于开发的软件工具,也就是流程自动化的程度。
在对工作量进行估计的模型中这些参数的关系可以表示为:
工作量=(团队)*(工具)*(复杂性)(流程)
项目进度可以直接由工作量估计和流程计算得到,工作量的减少通常导致项目进度的缩短,从而减少成本。
2.3 软件开发的构件化趋势
软件工程一直由脑力劳动主宰,集中解决竞争中复杂性不断增长和其他不可预知的问题。我们将软件开发的三代产品的功能特点归纳如下:
60年代和70年代:常规方法公司事实上使用原始语言构造的定制工具,流程和构件。项目性能完全可以预见。但几乎不能达到任何成本、时间和质量目标。
80年代和90年代:软件工程公司使用可重复的流程,通用的工具,约70%的构件使用高级语言进行构建。这些构件30%是商业产品,包括操作系统、数据管理系统、网络和图形用户界面等。
80年代期间,有些公司开始初具经济规模,但是随着应用程序复杂性的增加(主要是向分布式系统的转变),现有语言、技术和工艺已远远不够。
2003和未来:下一代现代经验来自于使用可以控制和可评测的流程、集成的自动化环境和大多数(70%)通用构件。通常,只有30%的构件需要定制构建。
2.4 软件开发的改进方法
从简化的成本模型来看,四个参数(复杂性,流程,团队,工具)对软件领域比较重要,通常的方法,直接控制四个参数,可以减少工作量,通过构件的技术,减少人工编写的代码数量,在大型项目中,用户的要求是复杂的,我们只有抽象成构件,利用软件的复用技术,使用购买的或自己开发的构件,降低开发的规模和复杂性。并提高抽象的级别,使用可视化模型管理复杂性。
3、MES(制造执行系统)构件技术的设计
3.1 软件构件技术
软件行业的工业化趋势导致了软构件的产生。能够像硬件系统那样,将部分软件组合起来构建软件系统,一直是软件行业多年来追求的目标。特别是对于象很多应用软件的开发(例如很多行业和单位的MIS系统),若能结合系统的实际情况充分利用已有的软件构件,将会大大提高生产效率,减少大量的重复劳动。可以说,软构件技术的出现是对传统软件开发过程的一次变革。构件(Component)是可复用的软件组成成分,可被用来构造其它软件。它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。我们可以按多个侧面对构件进行分类:
按开发过程构件可分为分析件、设计件、程序件和数据件。
按功能分,分为三层:基础层为基本数据类构件和系统支撑构件;中间层为各种通用的中间件;顶层为针对各种领域的专用构件或子系统构件。从粒度上看通常底层的粒度为较小,而顶层的粒度为较大。
按使用方式分为动态和静态两种。
按构件的结构分为原子构件及由多个构件聚集的组合构件。
按功能分的划分图: (图片) (图片) (图片) (图片) (图片) (图片) | |
电脑版 | 客户端 | 关于我们 |
佳工机电网 - 机电行业首选网站 |