文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式实时软件的构件化开发技术研究

嵌入式实时软件的构件化开发技术研究

嵌入式实时软件的构件化开发技术研究
嵌入式实时软件的构件化开发技术研究

嵌入式实时软件的构件化开发技术研究

【摘要】嵌入式实时软件的构件化开发方兴未艾,该技术拥有极其光明的发展前景。本次研究从构件化的嵌入式实时软件开发特点、开发环境、设计、软件过程与软件平台五个方面对该技术发展现状进行概述,并作出展望。

【关键词】嵌入式实时软件;构件化;开发技术

嵌入式实时系统历史悠久,应用广泛,在计算机模式进入普适时代的当下,嵌入式系统与软件迅速发作,成为计算机技术发展的必然趋势。嵌入式实时软件具有实时性、资源有限性、多样性等特点,可满足用户个性化需求,提高工作效率。近年来,嵌入式实时软件开发也出现着各式各样的问题,开发成本不断提高、质量与通用性难以保证、可维护性变差,严重阻碍了嵌入式产品的推广,探索一种新的嵌入式实时软件新技术已极为迫切,构件化开发技术是解决以上问题的理想途径。本次研究对嵌入式实时软件的构件化开发技术发展历程与成果进行回顾,并做出展望。

1.构件化软件开发概述

1.1 构件化软件开发

构件软件开发是以将产品标准化生产理念应用于软件开发的一种思想,以降低开发、维护成本,提高产品质量。构件概念经过不断扩展、延伸,已基本成熟,目前,被认可的定义:构件是被标准化的可重用的软件资源[1]。构件化软件开发过程主要包括领域工程、应用工程,两个过程相互独立,通过构件库相联系,整个过程为解决“软件危机”而服务,其中涉及的主要开发技术包括领域工程技术、应用工程技术与过程管理技术。

1.2 嵌入式实时软件构件化开发

嵌入式实时软件仍属于软件范畴,其构件化开发过程、涉及技术与普通软件基本相同,但嵌入式软件为实现其实时性、扩展性等特点,研究内容与普通软件存在差异,但应注意的是嵌入式实时软件研究内容仍未脱离领域工程技术、应用工程技术与过程管理技术范畴,所涉及技术是对此三项技术的继承与提高,在此基础上进一步规范软件标准、提高软件开发抽象层次。

2.构件化的嵌入式实时软件开发

构件化的嵌入式实时软件框架是软件开发的基础,可充分体现结构软件的技术优点,易于理解、拆解、组合和使用,对于嵌入式实时软件的普及与开发技术的提高具有重要意义[2]。

理想的构件化软件框架应为一个完全构件化的结构,现有的构件化软件框架

基于构件组装的应用软件开发过程研究_叶俊民

收稿日期:2007-06-25;修回日期:2007-09-04 基金项目:湖北省自然科学基金资助项目(2007ABA034);华中师范大学科学技术研究基金资助项目(2006AA22) 作者简介:叶俊民(1965-),男,教授,博士,主要研究方向为高可信软件工程(j m yee @m ai.l https://www.wendangku.net/doc/be5578330.html, .cn);陈卓(1986-),男,学士,主要研究方向为软件工程;雷志翔(1982-),男,硕士研究生,主要研究方向为软件工程;叶焰锋(1983-),男,硕士研究生,主要研究方向为软件工程;詹泽梅(1979-),女,硕士研究生,主要研究方向为软件工程. 基于构件组装的应用软件开发过程研究 * 叶俊民,陈 卓,雷志翔,叶焰锋,詹泽梅 (华中师范大学计算机科学系,武汉430079) 摘 要:基于构件的软件开发方法是目前一种流行的软件生产技术,其核心围绕着构件的开发与组装技术。但如何结合实际应用要求实施基于构件组装的软件开发过程是一个值得进一步研究的课题。为此,根据基于构件的软件组装技术的概念和原理,提出一种应用系统组装框架,从软件体系结构的角度研究了构件的开发与组装方法,并将这一技术应用到软件工程网络课堂教学系统的开发上。相关实践活动表明,提出的方法可有效地获得一个适应性强的应用系统。 关键词:构件;软件体系结构;构件组装;网络课堂教学系统 中图分类号:TP311 文献标志码:A 文章编号:1001-3695(2008)06-1736-03 R esearch on applicati on deve l opm ent process based on com ponen t compositi on Y E Jun -m i n ,CHEN Zhuo ,LE I Zh-i x iang ,Y E Y an -feng ,Z HAN Ze -m ei (D e pt .of C o mpu t er Sc i ence ,H uazhong N or ma l Un i v e rsit y,W uhan 430079,C hina ) Abstract :Soft ware devel op m en tm ethod based on co m ponents is a popular technol ogy on soft ware producti on ,the key i ssue i s development and co mposite technol ogy ,but how to comb i ne the practical app licati on calls for t he i n troduction of componen-t based compositi on i n the soft w are devel op m ent process is a s ubject of a f u rt her study This paper refered to the soft w are co m po -nent compositi on technol ogy concep ts and pri nci ples ,presented a fra m ework f or asse mb li ng appli cations ,and research devel op -m ent and co m pos i tion met hod for m soft ware arch i tect ure ,and t h i s technol ogy appli ed t o devel op i ng t he soft w are engineeri ng net work teachi ng cl assroo m syste m The resu lts show that thism ethod can be an effecti vem eans to obtai n a strong adaptab ilit y app licati on Key words :co m ponen;t soft ware architecture ;co m ponent composite ;net work teach i ng syste m 在当前信息化社会中,各行各业对应用软件的需求量越来越大,所需软件的规模和复杂度也不断增加。传统的 数据结构+算法=程序 设计模式已经无法满足不断增长、日趋复杂应用的需求,而庞大的软件系统在维护上也困难重重,人们不断地探索着这一危机的解决方法,基于构件的软件开发方法就是这一探索中的方法之一。基于构件的软件开发能有效地缩短开发周期,降低应用系统的开发成本,提高系统的可维护性。 目前国内外对构件组装技术的研究已取得一定成果。美国OM G 的CORBA 、M icroso ft 的COM 、S UN 的JavaBeans/EJB ;国内北京大学软件工程研究所的青鸟工程也已取得了很好成果。我国自主研发的 和欣 操作系统(英文名E l astos)就是使用构件技术开发的典型,创新性地实现了C AR (co m ponent assemb l y runti m e)构件技术,即一种完全面向下一代的网络服务。 在基于构件的软件开发中,构件的开发、构件组装及其开发过程是关键技术。目前,对于构件组装技术的应用基本上还停留在手工组装的阶段,半自动化甚至自动化的构件组装的实现还有待时日。 1 研究基础 构件是指是指可方便地插入到语言、工具、操作系统、网络软件系统中的一种接口定义良好的、独立可重用的二进制形式的代码和数据;而可复用构件是指具有相对独立的功能和可复用价值的构件[1]。1 1 构件的开发[2] 构件包括构件接口和构件规约两部分。构件接口是构件间的契约(图1)。一个接口提供一种服务,完成某种逻辑行为。构件接口包括名称部分和行为(图2)。前者是构件本身提供服务的描述;后者是构件行为的描述。一个构件可以有一个或多个接口,而构件接口可以由多个构件实现。构件接口是外部访问构件的访问点。构件规约是构件开发商向构件使用者提供的、用于进行构件组装的文档。 从上述构件的定义可以看出,构件的开发涉及两个方面:设计构件接口和实现构件的行为。众所周知,接口是构件描述其行为的机制,并且提供了对其所提供服务的访问。由于实现是完全隐蔽的,接口描述就成为构件的潜在客户所能依赖的所有信息。这使得接口描述的表达力和完整性在任何基于构件 第25卷第6期2008年6月 计算机应用研究Application R esearc h of C o m puters Vo.l 25,N o .6 Jun .2008

面向构件的软件设计

面向构件的软件设计 9.1 术语、概念 1、构件 构件的特征如下: 独立部署单元。 作为第三方的组装单元。 没有(外部的)可见状态。 独立可部署,意味着必须能跟他所在的环境及其他构件完全分离。 原子性,构件不但必须具备足够好的内聚性,还必须将自己的依赖条件和所提供的服务说明清楚。 缓存具有这样的特征:当它被清空时,除了可能会降低性能以外,没有其它后果。 构建本质上没有状态,同一操作系统进程中装载多个构件的拷贝是毫无意义的,至多会存在一个特定构件的拷贝。 许多系统中,构建被实现为大粒度的单元,工资管理服务程序就是一个构件,工资数据只是实例(对象),将不易变的“模型”和易变的“实例”分离的做法避免了大量的维护问题。 2、对象 对象的特征如下: 一个实例单元,具有唯一的标志。 可能具有状态,此状态外部可见。 封装了自己的状态和行为。 显式存在的实例化方案称为类,也有隐式的实例化方案,既通过克隆一个已存在的对象来实现,即原型对象。 新生的对象都必须被设置一个初始状态,创建与初始化对象的代码可以是一个静态过程——类的一部分,称为构造函数。 如果这个对象是专门用来创建与初始化对象的,称为工厂。

对象中专门用来返回其他新创建的对象的方法称为工厂方法。 3、构件与对象 构件通常包含了若干类或不可更改的原型对象。还包括一系列对象。 但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。 构件创建的对象——更确切地说是对这些对象的引用——可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。 一个构件可以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。 4、模块 模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。 模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。 模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。 资源可以参数化一个构件,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。 某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。 5、白盒抽象、黑盒抽象与重用白盒抽象中,可以通过继承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。 绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。白盒重用不可以轻易地被另外的软件替换,因为依赖于细节。 软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。 6、接口 接口是一个已命名的一组操作集合。

软件体系结构作业完整版

第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它 们之间的兼容性可能是开发过程中所要面对的一个严峻的问题 挑战和困难: (1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题; (2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力; (3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。 5.简述3种应用最为广泛的构件技术规范COM、CORBA和EJB的各自特点。 CORBA的特点: (1)实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 (2)应用程序间的统一接口。

构件化:ERP软件开发新模式

构件化:ERP软件开发新模式 构件化:ERP软件开发新模式 ERP软件的开发、生产模式必须脱离传统手工业的单件生产模式,转向建筑在标准化零部件或软件构件基础上的高效率、高质量的新型生产方式,其根本出路就是走构件化、工业化的道路...... 软件产业诞生几十年以来,重复高技术人才低效率劳动的局面一直严重制约着软件产业的发展,尤其是ERP系统的低效率开发更是引发ERP发展危机的主要原因。据美国国家标准和技术研究院的一份报告显示,占据世界软件销售额85%的是大型的专用软件,而其开发的失败率却高达70%。 因此,ERP软件的开发、生产模式必须脱离传统手工业的单件生产模式,转向建筑在标准化零部件或软件构件基础上的高效率、高质量的新型生产方式,其根本出路就是走构件化、工业化的道路。只有这样才能从根本上改革ERP的落后生产方式,从手工编码方式转向面向构件的ERP业务组装的生产方式。同时,免编程的面向构件的快速搭建ERP系统的开发方式大大解放了ERP的生产力,使得ERP的产品质量得到了保证,大大缩短了开发周期,节约了开发成本与实施成本。基于构件化的ERP平台可以建立一种崭新的ERP产业链联盟的商业模式,这种模式是十分有利于ERP业界社会分工的,也是十分有利于用户利益的一种新型的、先进的社会关系,这时的ERP商业模式就是区分为ERP构件生产商、ERP平台提供商、ERP应用系统生产组装商以及ERP项目服务商等专业分工,做到分工明确,各司其职、各负其责,充分保护产业链中各环节角色的利益。 2001年,科思首创了ERP平台,一些知名的ERP厂家也紧接着陆续推出了平台型的ERP系统。ERP平台的推出,大大的推动了ERP的变革,使传统的ERP变成可成长的ERP、灵活的ERP、可满足未来变化的ERP。但是,这种ERP平台仍未根本触及ERP开发方式的实质问题,没有从根本上有效解决ERP的生产方式问题,很难实现免编程的道路,因此,必须探索一种从根本上提高ERP生产力的方法。

基于构件化的软件产品开发研究

控制工程C ontrol Engineering of China Jan.2008V ol.15,N o.1 2008年1月第15卷第1期 文章编号:167127848(2008)0120075203 收稿日期:2007201209; 收修定稿日期:2007204229 基金项目:上海市科委发展基金资助项目(05dz05037) 作者简介:胡国奋(19622),男,浙江余姚人,高级工程师,博士,主要从事企业管理等方面的工作。 基于构件化的软件产品开发研究 胡国奋,欧阳树生 (上海宝信软件股份有限公司,上海 201203 ) 摘 要:为了满足软件产品的开发对生产质量和开发周期提出的更高要求,阐述了标准化工作中的模块化在软件产品构件化开发中的重要性,回顾了基于构件的软件开发方式的发展历程,提出了基于构件的软件开发方式和相关的实施案例。通过构件化的开发方法,为企业提高了软件产品质量,缩短了产品上市的周期,取得了良好的经济效益。关 键 词:软件复用;领域模型;构件;构件库中图分类号:TP 31 文献标识码:A C om ponent 2based S oftware Product Development and Investigation HU Guo 2fen ,OUY ANG Shu 2sheng (Shanghai Baosight S oftware C o Ltd ,Shanghai 201203,China ) Abstract :Along with the constant development of com puter s oftware technology ,the higher requirements for s oftware product quality and de 2velopment cycle of the s oftware product development ,the com ponent 2based s oftware development products becomes an inevitable choice.The im portance of m odularization in standard com ponent 2based s oftware development is introduced.The history of com ponent 2based s oftware devel 2opment is reviewed ,and the com ponent 2based s oftware developing methods are proposed.The success ful cases using com ponent 2based s oftware development are given.Through the development method of com ponents ,the s oftwares for enterprises can im prove product quality and short the cycle of the product on the market. K ey w ords :s oftware reuse ;domain m odel ;com ponent ;com ponent library 1 引 言 基于构件的软件开发方式,其实质就是模块化 在软件开发上的体现。由传统的开发方法转为基于构件的软件开发方式,使软件企业实现高效的软件新产品开发是一个重要的标志。软件构件即相当于 工业流水线生产上的“标准件”[1] 。构件的最大特点是可以不断复用,可以显著降低成本,缩短开发周期。在1968年国际NAT O 软件工程会议上,提出了软件构件与“软件组装生产线”思想。此后,采用构件技术实现软件复用,并采用“搭积木”的方式生产 软件,成为软件业长期的梦想[2] 。由于技术水平限制,在很长一段时间内构件技术只是作为一种思想存在,直到C ORBA ,J2EE 和C OM ΠDC OM 出现,中间件兴起以后,构件技术才逐渐走向现实。 2 基于构件的软件产品开发方法 基于构件的软件产品开发是将大型的软件产品开发转化为系统架构开发、构件分析、提取、开发和集成。构件的集成机制(构架技术),涉及到构件 的描述、体系结构、消息通信等多种技术。构件的分析、提取工作需要对此领域具有丰富的经验,通过不断分析领域内的共性、个性的特征来完成,主 要有面向领域的特征分析等方法[3,4] 。基于构件的软件产品开发,一般是先确定系统的总体框架,然后构造各个构件,并依次把构件安装到系统中去。其中,DVR 2C A 是一个分布式的虚拟现实软件体系结构,该体系结构允许通过“组装”构件的方法来形成一个分布式虚拟现实应用系统,各构件通过该体系结构进行互操作,协同完成任务。 1)构件化技术路线 当前主流构件标准规范包括OMG 的C ORBA ,Sun 的J2EE 和Micros oft DNA (Distributed Intemet Applications )2000[5,6]。 ①OMG 的C ORBA C ORBA 分布计算技术是OMG 组织在众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。C ORBA 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

软件构件

软件构件及其可信性研究

第1章组件与构件 1.1组件 1.1.1什么是组件 在很多人看来,组件就是构件,但它们之间有细致的区别。简而言之,组件就是对象。是封装粒度小的构件。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。 组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。 属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。 组件是C++ Builder环境中最令人激动的部分。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C++ Builder系统的核心。 1.1.2组件应用 使用现成的组件来开发应用程序时,组件工作在两种模式下:设计时态和运行时态。 在设计时态下,组件显示在C++ Builder窗体编辑器下的一个窗体中。 设计时态下组件的方法不能被调用,组件不能与最终用户直接进行交互操作,也不需要实现组件的全部功能。 在运行状态下,组件工作在一个确实已经运行的应用程序中。组件必须正确地将自身表示出来,它需要对方法的调用进行处理并实现与其他组件之间有效的协同工作。 设计时态下所有的组件在窗体中都是可见的,但在运行时态下不一定可见。如TTable、TQuery和TDataSet在运行时态下就不可见,但他们均完成了重要的功能。 1.1.3组件创建 创建组件就是自行设计制作出新的组件。 设计组件是一项繁重的工作。自行开发组件与使用组件进行可视化程序开发存在着极大的不同,要求程序员熟知原有的VCL类库结构,精通面向对象程序设计。 设计组件是一项艰苦的工作。对于组件的开发者,组件是纯粹的代码。 组件的开发不是一个可视化的开发过程,而是用C++或Object Pascal严格编制代码的工作。实际上,创建新组件使我们回到传统开发工具的时代。

面向构件的软件开发方法学分析研究

面向构件的软件开发方法学研究 陈良山 200305018009 从软件建模方法论的角度看, 信息系统的开发方法已历经两代技术跨越: 面向过程, 包括面向功能和面向数据流。面向对象, 体现功能与数据抽象方法的统一.20 世纪90 年代中期以来, 由于分布对象技术与软件重构工程的有机结合, 促使面向构件的软件开发方法应运而生.面向构件方法(COM >与面向对象方法(OOM > 的本质差异在于: 对象化建模过程一般针对单一应用系统, 对象抽象一般针对问题域, 对象模型的生成过程是静态的, 软件重用粒度是原子级的。而构件化建模过程一般针对领域应用系统, 构件抽象则针对解域, 构件化模型即构架的生成过程是动态的, 软件重用粒度是组合级的. 领域应用是多个单一应用通用化和重用化的应用集群, 解域是问题域的过程与层次深化, 构件则是对象的软件实现与集成。因此,COM 法与OOM 法在研究范畴、研究对象及其研究方法上都是有区别的. 不言而喻, 面向构件方法是21 世纪软件方法学的主流研究方向. 下面用过程与方法的组合理念来展开研究内容. 面向构件软件开发的一般过程 构件化软件开发的过程模型 所谓构件化, 是指软件体系结构可重组以及软件成份可重用的系统开发方法. 这种方法的基本内涵是: 应用需求领域化, 软件结构框架化, 软件元素构件化, 应用原型实例化. 这一思想可以概括为四个阶段、三个层次和两大过程, 如图 1 所示 从工程化与过程管理的角度讲, 整个软件系统的开发过程可定义为四个阶段: 分析, 设计,

实现, 评价. 但这并不是单纯的串行式瀑布模型, 而是过程并行与增量迭代等多种方法相结合的工作流模型. 多年来, 人们往往把系统阶段控制方法与软件建模抽象方法混为一谈。 最典型的是把生命周期法和原型法与面向过程和面向对象的方法混为一谈. 信息系统是一种具有生命周期的开放系统, 这是毋庸置疑的. 因此, 从工程管理及大的阶段控制过程看, 构件化方法与结构化方法和对象化方法一样, 仍然应该遵循软件生命周期规律。差别在于, 前者的阶段论观点是弱化的历递归和过程重构特征. 换句话说, 在构件化方法中, 可以引入并行工程思想和能力成熟度模型(CMM > 来进行局部过程改造, 以提高系统开发效率和持续优化效果。 可以引入领域工程思想和面向对象方法来改善建模机制, 以提高系统实施过程 的可操作性. 这就是面向构件方法论的主要过程特征. 从模型化与内容抽象的角度讲, 构件化软件开发过程可按三个层次展开: 概念层, 逻辑层, 物理层. 这与UML 描述、数据库设计模式和元建模技术等多种方法是一致的, 差别只在术语不同. 例如, 在基于UML 形式描述的面向对象建模中, 上述三个层次称概念层、说明层和实现层。而在元建模中, 则称元知识层、结构知识层和算法知识层.整个建模层次展开过程是: 首先从特定应用需求出发, 通过领域分析进行共性需求识别、领域对象抽象和领域知识获取, 以建立概念级的领域模型. 进而通过领域设计为领域需求寻求软件解决方案, 包括构架级和构件级的设计模型。这种模型体现了初步设计和详细设计成果, 体现了框架结构和部件结构的组成原理可行性, 因而是一种逻辑模型. 由问题域的领域模型转化为解域的构架模型和构件模型, 是一个知识提取(正向> 和分析精化(逆向> 的迭代式增量开发过程. 第三, 根据领域应用开发或直接重用需要, 进行领域实现。包括领域构件的识别、设计、编码和测试等局部过程集成, 系统构件的分类、检索、引用和构件库维护, 领域构件与系统构件的演化、例化、组合和应用原型的动态生成等领域框架整体集成, 从而建立符合领域应用的各种物理模型. 第四, 通过运行模拟(正向>和设计优化(逆向>等措施, 对领域化软件原型进行可用性评价和可重构验证, 并对符合确认测试条件的应用系统进行全局封装和使用规范生成。 最终获得一个真正构件化的目标系统, 这是一个经过版本逐次寻优的实用软件系统.整个过程模型充分体现重构工程思想, 并把面向构件的软件开发分离为正向工程和逆向工程两大过程. 正向工程侧重体现自顶向下与过程并行特征, 解决软件构架和构件的可用性问题。逆向工程侧重体现自底向上与增量迭代特征, 解决构架及构件的可重构性问题. 过程重构的基本内涵是, 概念重定义, 结构重说明, 算法重用, 系统重生成. 面向构件的建模支持机制 常用的构件化建模方法如, 面向对象方法及UML 描述,框架、实例及其规则描述, 巴科斯范式、谓词逻辑和体系结构描述语言(ADL >等形式化描述, Petri 网和导航图等可视化描述. 支持上述建模方法的典型机制如, 抽象类型, 元模式, 模板, 分布对象, 协作代理, 参数化框架, 导航图标, 软件总线, 以及设计词汇表. UML 描述提供了静态和动态两种建模机制. 在静态建模过程中, 可通过用例图来描述反映功能需求的领域模型,

SOA 从面向构件开始

面向构件的中间件 [EOS产品白皮书] SOA从面向构件开始

目录 要点 (3) 1.变化和可控的挑战 (3) 2.SOA从面向构件开始 (5) 2.1.SOA的本质 (5) 2.2.中国SOA需求呈现和美国不一样的特点 (6) 2.3.面向构件是构建SOA服务的最佳方式 (7) 2.4.面向构件与SOA (7) 3.面向构件技术体系 (8) 3.1.软件技术发展的4个阶段 (8) 3.2.什么是面向构件? (10) 3.3.面向构件的核心特征 (11) 3.4.面向构件的应用 (12) 4.面向构件的中间件-EOS产品组成 (12) 4.1.EOS产品概述 (12) 4.2.EOS集成开发环境 (15) 4.3.EOS构件运行环境 (17) 4.4.EOS管理控制台 (18) 4.5.EOS基础构件库 (20) 4.6.EOS工作流(选件) (21) 4.7.EOS富页面控件(选件) (22) 4.8.EOS报表(选件) (24) 5.EOS特点与优势 (24) 5.1.EOS构件运行环境(EOS Server) (24) 5.2.EOS集成开发环境(EOS Studio) (25) 5.3.EOS管理控制台(EOS Manager) (26) 5.4.EOS基础构件库(EOS Foundation Component Library) (26) 5.5.EOS工作流(EOS Workflow) (26) 5.6.EOS报表(EOS Report) (27) 5.7.EOS富页面控件(EOS RichWeb) (28) 6.EOS应用价值 (29) 7.典型用户 (30) 8.业界评价 (32) 关于goCom社区 (34) 关于普元软件 (34)

关于嵌入式系统软件的全过程质量保证精

关于嵌入式系统软件的全过程质量保证 质量是产品的生命 当今随着软、硬件技术的发展,嵌入式系统广泛应用于航空航天、国防军事、电子通信等行业,其中软件也越来越复杂。而这些领域应用特点,决定了嵌入式系统往往是高安全、任务关键的系统,软件的微小瑕疵就可能严重威胁到生命和国家的安全、天文数字的巨额财产损失。这就使得保证嵌入式软件的质量和可靠性,变得至关重要。而在这些领域,对产品质量从来就保持着高度的重视,有将“质量视为产品的生命”的传统。这样,相关行业的高层管理人员和开发人员对于软件的质量也逐渐提高了重视程度。近年来,在组织上,建立了完善的软件测试体系;在开发和测试方法上,建立了中国的软件过程成熟度的评价体系GJB5OO0在自动化工具方面,投入了大量的经费和人员在测试设备的开发、购置和建设方面。应该说,软件作为嵌入式产品主要的组成部分之一,对其质量的重视是目前相关行业的一个共识。 IBM Rational多年来在软件工程和质量保证方面积累了丰富的方法和经验。本文依据部分嵌入式开发机构对软件质量保证工作的一些理解,分析相应开发机构工作中可能的问题,并提出以RUP为核心的全过程质量管理的思想和具体的实现方式,提出不同单位的过程改进方法,以一种渐进的方式,从简单的工作开始,逐渐深入地改进组织的软件质量管理水平。 定义质量 对于任何一个组织,定义共同的对质量的理解是重要的第一步。软件开发组织经常按照一种不精确的、概括的质量观念来运转。 在IBM Rational统一过程中,质量定义如下: 满足或超出认定的一组需求; 使用经过认可的评测方法和标准来评估; 使用认定的流程来生产。 在这个定义中,我们首先看需求,IBM Rati onal的软件质量在用户需求方面的定义分为五个方面:易用性、可靠性、性能、可支持和功能。 质量保证,归根结底就是为客户提供更高品质的产品,更好地满足客户的需求。另一方面,这个质量定义中明确指出,质量更体现在软件开发的整个过程和一个标准的评价方式上。 软件开发过程质量就是指为了生成工件而对可接受流程的实施和遵守程度,体现在三个层次: 产品本身和用来生产、组装软件产品的零部件质量; 在软件开发过程的标准化、流程化、自动化程度和团队基本协作平台的效率,各个过程对质量的承诺; 软件产品验收的评测手段应该是被业界广泛认可和接受的方法,所构筑的质量评价标准。 一个软件生产企业的过程质量一般可以用它的软件过程成熟度等级来评估。 RUP全过程质量保证 Rational Unified Process (RUP是一个可以通过Web来使用的软件工程过程。作为软件工业事实上的标准,它回答了我们以下问题:在整个软件开发的各个过程中,谁(角色)应该在什么时候(详细工作流程)做什么(任务)和产生什

基于构件库_工作流的可视化软件开发

1引言 1.1构件与构件库研究现状 自1968年Mcilroy在NATO软件工程会议中首次提出“软件复用、软件构件、构件工厂”等[1]概念以来(在商业软件和商务活动中,Component通常也被称为组件),虽然软件构件的定义不断变迁[1-3],但基于构件的软件开发(CBSD)一直被视为解决软件危机,实现软件工业化生产切实可行的重要途径[4]。 近40年来,国内外同行从不同的角度对软件构件技术进行了许多有价值的研究[5]。这些研究涉及到了软件构件的整个生命周期过程,从软件构件的定义[1-3,6]到构件的属性[7];从构件的描述[7]和分类,构件的标准化[4,8]到构件之间的关系[7];从构件的制作与生产,构件的查询与获取及构件的表示和检索[6],构件的模型与裁剪,构件的组装与反馈[15]到最终的构件复用。在国内软件构件技术当前已经发展成为软件复用的一个非常重要的学科分支[8]。 随着软件构件技术的深入人心,各种异构的软件构件的数量愈来愈庞大,构件开发者关注的重点已经从最初强调构件的可复用性,转变到支撑软件构件整个生命周期管理的构件库的 基于构件库/工作流的可视化软件开发 张成1,2,吴信才1,2,罗津1,胡茂胜1 ZHANGCheng1,2,WUXin-cai1,2,LUOJin1,HUMao-sheng1 1.中国地质大学信息工程学院,武汉430074 2.教育部地理信息系统软件及应用工程中心,武汉430074 1.FacultyofInformationEngineering,ChinaUniversityofGeosciences,Wuhan430074,China 2.GISSoftwareResearchandApplicationEngineeringCenteroftheMinistryofEducation,Wuhan430074,China E-mail:zhchwyl@163.com ZHANGCheng,WUXin-cai,LUOJin,etal.Visualsoftwaredevelopmentbasedonsoftwarestructuralcomponentlibrary/workflow.ComputerEngineeringandApplications,2008,44(10):82-87. Abstract:Anewapproachtomakevisualsoftwaredevelopmentbasedonthecombinationofworkflowtechniqueandsoftwarecomponentlibrarytechniqueispresented.Theauthorbringsuptheideaofvisualsoftwaredevelopmentmethodwhichisbasedonsoftwarecomponentlibrary,whichistoprogrammingvisuallyusingtheworkflowvisualedittoolstofabricatenewsoftwarewiththesoftwarecomponentsinsomesoftwarecomponentlibrary.Andalsobringsuptheideaofseparatingtheprocesscontrolfromsoftwarecomponent,whichistousingtheworkflowenginetodrivesoftwarecomponentstoworktogether.Softwarecomponentlibraryisemphasizedtobethefoundation,itcontainsthecomponentstobuildupcomplicatedsoftware,andthecomponentscanbeanyscaleandlevel;it’sanopensystem,supportsassemblingsoftwarewithcomponentsandalldevelopmentmethodsofB/S,C/S.Itcanbeusedtoconstructsoftwareprojectfrombottomtotoporfromtoptobottom.Finallytheadvantagesanddisadvantagesarediscussed,too. Keywords:softwarecomponent;softwarecomponentlibrary;visualprogramming;workflow 摘要:在研究构件技术的基础上,结合工作流技术提出了一种新的软件开发模式,即通过将可视化的构件库与可视化的工作流编辑系统全面融合实现零编程的软件搭建平台。构件库包含了多层次和多粒度的可视化软件构件集合。工作流以业务流程为核心来组装各种构件以实现可视化的软件开发。论文提出了软件构件运行与逻辑控制分离的思想,通过构件库不同层次构件为用户提供良好的软件扩展性和移植性,通过工作流引擎的流程控制取代程序流程的过程控制实现面向业务的快速软件搭建,并支持任意流程的实时测试。这种软件开发模式拓展了传统软件工程的过程开发方式,能较好兼容自上而下和自下而上的软件工程方法,并能适用于BS/CS开发模式。该模型已在新一代GIS平台—— —MapGIS搭建平台中得到成功应用。最后分析了该软件开发方法的优缺点。关键词:软件构件;构件库;可视化编程;工作流 文章编号:1002-8331(2008)10-0082-06文献标识码:A中图分类号:TP311 基金项目:国家高技术研究发展计划(863)(theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2006AA12Z218);国家科技公关计划项目(theKeyTechnologiesR&DProgramofChinaunderGrantNo.2002BA107B01)。 作者简介:张成(1975-),男,博士生,主要研究方向为地理信息系统、构件式GIS技术;吴信才(1953-),男,教授,博士生导师,主要研究方向为基础地理信息系统研究与应用;罗津(1979-),男,博士后,主要研究方向为地理信息系统应用软件开发;胡茂胜(1981-),男,博士生,主要研究方向为地理信息系统与空间数据库。 收稿日期:2007-09-19修回日期:2007-12-17

软件构件技术

软件构件技术 软件工程张显良 20081120152 随着计算机和互联网的广泛普及和应用,计算机软件已成为信息时代社会的最重要的基础设施。广大用户对软件的数量与质量的要求也是与日俱增。那么显然用传统的软件开发方式,显然已经无法满足消费者的需求,在这样的环境下,软件构件技术是必然的选择,它不仅能缩短开发周期也节省了开发的成本,提高了软件的开发效率。那么什么是构件技术? 1、构件技术的背景及提出的目的 1968年NATO软件工程会议,Mcllroy在提交会议的论文《大量生产的软件构件》中,提出了“软件组装生产线”的思想。从那以后,采用构件技术实现软件复用,采用“搭积木”的方式生产软件,成为软件开发人员长期的梦想。软件复用是指重复使用“为了复用目的而设计的软件”的过程。就软件开发而言,软件复用包括:早期的函数复用、面向对象言语中的类的复用,以及互联网时代的完整软件体系的构件复用。 1999年2月美国总统 IT 顾问委员会也在一份报告中列举了大量的事实论证 IT 技术对社会和国家以及人民生活的重要作用。建议美国政府加大对IT 技术发展研究的投入。在建议重点支持的四大项

目中,把软件列在首位。因为报告认为软件是信息时代社会的最重要的基础设施。然而现实上这个基础却相当脆弱和不可靠。软件越来越普及而且越来越复杂,但缺乏开发安全可靠的软件的适用技术。软件的生产能力远远满足不了飞速发展的实际需求。为此,报告建议重点支持四个方面的软件技术的发展和研究,第一个就是支持软件开发方法和构件技术的基础研究。什么是软件构件技术,为什么把它提得这么高,它究竟对软件的开发和应用有些什么作用,构件技术的突破对软件产业的发展会带来什么影响呢? 有效的软件复用是可以提高软件开发的效率和质量。建立在构件复用基础上的软件复用将会带来极大的价值,《Software Reuse》指出很多公司通过复用取得的成就使们坚信,管理层可以期待获得如下优势。 1)投放市场时间:减少为原来的1/2到1/5; 2)缺陷密度:降低为原来的1/5到1/10; 3)维护成本:降低为原来的1/5到1/10; 4)整体软件开发成本:降低大约15%,长期项目可降低高达75%。 基于这样的背景,软件构件技术在短短的数年间,迅速发展,到现在已经初具雏形,下面让我们来看看它的现状。 2、软件构件技术的现状 美国军方与政府资助的项目中,已建立了若干构件库系统,如CARDS、ASSET、DSRS等。由DARPA发起,由美国军方、SEI和MITRE 支持的 STARS项目在此基础上考虑了开放体系结构的构件库之间共

相关文档