基于构件的软件系统

2024-05-14

基于构件的软件系统(精选十篇)

基于构件的软件系统 篇1

"不浪费, 不匮乏"历来不是软件开发者的追求目标。相反, 人们提倡--将大多数软件项目中的浪费作为同类系统开发经验的一部分。传统的软件开发, 往往把从头开始建立每一个新系统看作为用户/客户服务的最好方法, 而不注意和关心"软件的重复创建"出现的次数。

目前, 不必要的重复创建和在大多数软件项目中出现的资源的巨大浪费, 引起了人们的充分重视, 进而提出了软件复用技术。这种技术就如同绝大多数工程学科中的设计过程--基于构件复用技术。[1]例如:在机械或电子工程师的设计工作中, 他们并不需要对每一个构件从头设计, 而是采用其他系统中使用的经过了试验和测试的构件用于新系统的设计当中。这些构件不仅有像阀门这样的小构件, 而且还包括像发动机、电容器这样的主要子系统。[2]软件复用既是将已有的软件及其有效成分用于构造新的软件或系统。具体来讲, 它不仅是对软件程序的复用, 还包括对软件生产过程中其它劳动成果的复用, 如项目计划书、可行性报告、需求分析、概要设计、详细设计、编码 (源程序) 、测试用例、文档与使用手册等等。[3,4,5]

现在普遍接受的观点是在软件开发中使用这一方法, 将软件视为一种可重复利用的资源, 基于这种复用来提高软件开发投入的回报率。对降低软件产品及其维护的成本、加快系统交付速度和提高软件质量等的一系列要求, 只有通过广泛深入地和系统地软件复用才能达到。

1、软件复用的优势

软件复用最明显的优势在于降低了总体开发成本。不过成本的缩减只是一个潜在的优势, 其他一些软件复用的优势如下:

1、增加的可靠性

在运行着的系统中重复使用的构件要比一个新构件的可靠性高。它们可能已经得到各种环境的实际使用和测试。在最初的构件使用中, 构件在设计和实现上的缺陷都已经暴露出来了, 并得到了修正, 因而构件在复用时的失败次数下降。

2、降低了过程风险

如果构件已经存在, 则复用构件的成本不确定性较之开发组件的成本不确定性减少, 这是项目管理当中的一项重要因素, 因为这降低了项目成本估计当中的不确定性。相对来讲, 大规模的构件如系统复用时这一点更明显。

3、加快开发速度

尽快让系统走向市场要比总开发成本更重要。复用构件加速了系统产品的形成。因为无论开发还是验证时间都缩短了。

4、与标准的兼容

有些标准, 如用户界面标准, 可以实现一组标准构件。例如, 可以将用户界面中的菜单实现为一个可复用组件。所有的应用在用户面前呈现相同的菜单格式。使用标准用户界面增进了可靠性, 因为用户面对相同的用户界面, 出现错误的可能性较低。

5、专家的有效使用

不用专家在不同项目中做重复的工作, 而是让他们开发可复用的组建, 用这些构件来封装他们的知识。

2、软件复用存在的问题

然而, 复用技术也有其自身的成本和相应的问题。这些将制约了复用的引入, 使得通过复用降低总成本的幅度不如预期那么明显。其存在的问题如下:

1、增加的维护成本

如果构件的源代码是不可得的, 那么维护成本就要增加, 因为随着系统的变更, 系统中复用部分的不兼容性在增加。

2、缺乏工具支持

CASE工具集没有对复用技术的支持, 将这些工具与组件库系统集成是困难甚至是不可能的。由这些工具承担的软件过程没有将复用考虑在内。

3、维护一个构件库

填充构件库并保证软件人员能用上这个库是很费钱的。我们当前对构件的分类、编写目录和恢复技术尚不成熟。

4、查找和改编可复用的构件

软件构件必须从库中找出来加以理解, 有时还需要做些改编的工作使之适应当前的环境。软件工程人员对在库中找到构件应该有合理的自信, 然后才能将所找构件纳入正常开发过程中。

这些困难表明系统的复用是不可能自然的形成, 需要在全机构范围内有一个系统的复用计划支持。这已经得到日本多年的实践验证, 复用已成为日本的"工厂式"软件开发方法的重要组成部分。一些公司如惠普等采用复用计划取得了非常大的成功。

3、基于复用的构件软件开发方法

为了实现软件复用, 一定要在软件设计和需求工程过程期间就加以考虑。在编程阶段恰巧发现某一个构件能够满足当前需要, 这种机会式的复用是有可能的。不过, 要系统地使用复用就需要在设计过程中围绕着复用考虑问题, 需要考虑现有设计如何能得到复用, 明确地围绕可复用软件构件来安排设计。

3.1 基于构件软件开发的特点

因此, 与传统的软件开发方法相比较, 基于构件的软件开发方法在应用开发方面具有以下特点:

1、构件是与开发的工具语言无关的。开发人员可以根据特定情况选择特定语言工具实现构件的开发。比如对Internet应用而言, 完成事务逻辑处理计算任务用构件进行开发是首选方案。开发迅速, 调试方便, 编译之后的构件以二进制的形式发布, 跨平台使用。源程序代码不会外泄, 有效保证了构件开发者的版权。

2、通过接口有效保证了构件的复用性。一个构件具有若干个接口, 每个接口代表构件的某个属性或方法。其它构件或应用程序可以设置或调用这些属性和方法来进行特定的逻辑处理。构件和应用程序的连接是通过其接口实现的。负责集成的开发人员无须了解构件功能是如何实现的, 而只须简单的创建构件对象, 和其接口建立连接。

3、构件运行效率高、便于使用和管理。

4、构件的位置可被透明的分配, 构件和使用它的程序能在同一进程中、不同进程中或不同机器上运行[6]。

3.2 构件软件开发方法

基于构件的软件开发以构件为核心, 而且在需求分析阶段就可着手进行构件获取工作, 增加了开发的并行程度, 这从另一个方面提高了开发效率, 图1给出了基于构件开发过程的主要活动[7]。

3.2.1 领域分析/领域建模

通过对特定领域应用软件进行分析, 提炼其中的稳定需求和易变需求, 建立可复用的领域模型。根据用户需求和领域模型, 产生应用系统的需求规格说明。在领域模型的基础上, 提炼面向特定领域的构件。在领域模型的指导下, 通过构件库中存放的面向特定领域的体系结构, 创造适合该领域环境的构件, 并加以提炼入库, 以备将来的复用。构件和连接件往往不是简单的模块或对象, 它们甚至还可能包含复杂的结构, 因此可能需要多层次的构件组合设计。于是, 在得到某个特定领域的构件或者是体系结构之前, 必须对这个领域进行领域分析。领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域。领域分析是为一组相似或相近系统的应用工程建立基本能力和必备基础的分析过程。领域分析有助于解决可复用信息的识别、组织和利用的问题, 从而对软件复用提供有力的支持。领域分析有助于在领域内产生具有较高可复用性的构件, 而且通过产生体系结构定义了复用的时机和复用的上下文。这样就对开发者复用这些构件提供了有力的支持, 使复用变得规范、系统和高效。

3.2.2 领域体系结构设计

我们通过对一个领域中的若干应用系统进行领域分析, 识别其共同特征和可变特征, 进行抽象, 形成领域模型, 依据领域模型产生出领域中一类应用系统共同具有的体系结构, 即特定领域的软件体系结构 (Domain Specific Software Architecture, 缩写为DSSA) , 并以此为基础识别、开发和组织可复用构件。这样, 当开发同一领域中的新应用时, 可根据领域模型, 确定新应用的需求约定, 根据特定领域的软件体系结构形成新应用的设计, 然后从以DSSA为基础设计的可复用构件库中选择合适的构件进行组。

3.2.3 领域构件的开发

虽然己存在数量巨大的构件供软件开发人员使用, 但无论存在的构件数量如何丰富, 仍然不能满足特定领域内的所有, 因此有必要开发领域内构件, 领域内的构件有些构件是在整个领域中无须改动便可使用的构件, 有些构件专用于领域内的某一些特定情况, 如专门用于word的拼写检查构件等。领域构件与领域体系结构相适应, 构件间关系较紧密, 它们以构架所确定的方式进行通信, 完成领域相关的功能, 使得它们在特定领域中能得到大粒度的复用。

3.2.4 应用程序开发

基于构件的应用程序的开发过程与搭积木的过程很类似, 一般是先构筑系统的总体软件体系结构, 然后挑选各个构件, 并依次把构件安装到系统中去。软件体系结构是对系统整体结构设计的刻画, 可以作为一种大粒度的、抽象级别较高的软件构件进行重用, 而且它还为软件的组装提供了基础和上下文。基于构件的软件开发方法是在吸取已有的软件开发方法的经验基础上结合构件技术和软件重用技术而产生的一种新的、高效的开发方法。基于构件的软件开发方法与面向对象的开发方法相类似, 它们都采用自顶向下和自底向上相结合的方法, 面向对象的方法支持类的重用, 但基于构件的软件开发方法的底是可重用的构件, 顶是可重用的应用系统原型、应用体系结构, 这样它的重用广度和粒度都大大高于面向对象的开发方法, 从根本上解决了应用软件开发中存在的开发质量和开发效率问题。

4、结束语

尽管复用的思想很简单, 但它的实现却并不简单。今天, 大多数的美国公司还没有规范的复用程序。[8]尽管复用有和程序设计本身同样长的历史, 它是保留着被认可的正确实施的好想法的软件技术, 但是, 和大多数好的意向一样, 复用还没有真正地付诸实施。目前构件复用技术正逐渐走向成熟。人们将在这条复用之路上不断探索。

摘要:软件的可重用技术是提高软件生产率、解决软件危机的良好途径。文章阐述了软件复用技术的优势, 并提出在现阶段软件复用存在的问题, 进而探讨基于构件的复用技术在软件开发方法中的领域分析建模和体系结构设计、构件开发、应用程序开发。

关键词:软件,复用,构件

参考文献

[1].谢冰、王亚沙、李戈等.面向复用的软件资产与过程管理.北京:北京清华大学出版社, 2008.10:35

[2].Ian Sommerville.Software Engineering.北京:机械工业出版社.2004, 210:215.

[3].RogerS.Pressman.SoftwareEngineering:APractitioner'sApproach, SixthEdi-tion.McGraw-HillScience/Engineering/Math.2004, 30:33.

[4].Donald J.Reifer.软件复用实践.北京:机械工业出版社, 2005, 23:54.

[5].Carma McClure.软件复用技术:在系统开发过程中考虑复用.北京:机械工业出版社, 2003, 13:29.

[6].熊风光.基于构件的软件复用技术的研究[D]中北大学, 2005.

[7].朱丽.基于构件化软件重用的ERP系统研究[D]四川大学, 2005.

基于构件的软件系统 篇2

随着网络用户对信息需求的不断提高,与信息相关的设备、应用和功能也层出不穷,导致信息管理难度不断加大,网络用户使用体验的下降趋势越发明显。一般来讲,网络由多种不同架构的子网构成,每个子网都能提供不同的功能,因而产生了不同类型的计算机操作系统。各类操作系统的组成架构多种多样,网络用户需要借助信息管理系统对各类信息进行监督和维护,以获取优质的操作体验。

通常,网络用户会在计算机操作系统中下载大量软件,而多数软件的工作形式较为类似,现有的信息管理系统不得不反复进行相同的信息管理工作,不但降低了自身工作效率,也影响了用户对系统的功能需求度。为解决上述问题,应从获取良好的信息管理系统资源分配效果入手,将同种信息管理工作合并,满足网络用户对系统功能的需求。

构件技术是一种能够完成软件复用的科技成果,其对自身的使用次数无限制,并且拥有独立于系统和软件之外的处理模式,不会对原有功能造成不良影响。因此,设计并实现基于构件技术的信息管理系统,将构件技术融合在信息管理系统的各个功能模块中,给出功能需求度高、资源分配效果好的信息管理系统。

基于构件的软件系统 篇3

关键词:构件技术;医院信息化;门诊信息系统

中图分类号:TU246.1+2 文献标识码:A文章编号:1007-9599 (2010) 13-0000-02

Component Technology-based Hospital Outpatient Information System

Qin Tao

(Changzhou 3th People's Hospital,Changzhou213001,China)

Abstract:Modern hospital to build digital hospital as the goal,to achieve a patient information center,establish a set for the hospital information system of economic management to achieve the patient information flow,logistics,management of capital flow in order to improve the direct or indirect economic efficiency,improve medical management and administrative levels,improve physician-patient relationship,and enhance the competitiveness of health care services to achieve quality service.In this context,a detailed analysis of the hospital outpatient procedures,outpatient hospital characteristics for the design of component technology combined with a preliminary completion of the hospital patient information system for hospital outpatient information technology foundation.

Keywords:Component technology;Hospital informatization;Patient information system

一、前言

隨着信息产业的飞速发展,医院信息化建设也得到了很大的发展,医院己基本上建成了以经济管理信息为核心的医院信息系统,但医院的信息化发展起点比较晚,因此其有着很大的发展前景。建立以管理患者诊断治疗信息为核心的临床医疗信息系统是医院信息化发展的总体目标。

二、构件技术基本概念

首先,我们可以用描述它的特性的方法来对它进行说明[1]。

(一)构件是预先构建的

构件是代码级的,而不是可以组织到程序中并被编译的源代码单元。对软件开发者来说,构件是预先构建好的,他们的工作是挑选这些构件,并应用在自己的系统之中。构件开发和软件开发成了分离的两个过程。

(二)构件是黑盒,只能通过其接口访问

构件必须与其他构件进行互操作,它采用的是“黑盒”方式来实现这一点。构件是封装起来的,其内部结构对构件使用者来说是不可见的。构件通过接口描述他所提供的功能或服务。其他构件只有通过这个明确定义的接口,才能与该构件相连。为了使用一个构件,有必要能够得到关于它的接口的信息,要么通过相关的规格说明书,要么可以向该构件询问它所提供的接口的信息。接口的定义是构件定义的关键。

(三)构件是可分离的

构件必须能够从一个上下文环境中分离出来,并在另一个上下文环境中使用它。构件的定义是高内聚和低祸合的,其封装特性使得其他构件无需知道它内部的结构。这种可分离性体现为一种上下文无关性。

面向构件程序设计有四个基本特性:多态(可替换性)、模块封装(较高层次的信息隐藏)、延迟绑定、装载(独立的可部署性)和安全性(类型和模块的安全性)[2]。

在构件开发中,往往使用设计模式的概念。设计模式是针对重复出现的设计问题提出的通用解决方案。它既描述了问题,也描述了可能的解决方案。解决方案的描述方式通常是指出构件间的标准交互方式。为了解决特定的某个设计问题,需要将模式应用到该问题,从而得到一个确定的、具体的解决方案[3]。

三、系统设计

病人在医院门诊就诊,第一步骤是进行挂号登记,缴纳一定挂号费用,获取挂号单。病人需要提供病人基本信息包括姓名,性别,年龄,人员类别,就诊科室或者专家名称等基本信息,系统确定病人的挂号费用、科室序号等数据,打印挂号单据(报核联、发票联),对病人产生门诊流水号,并利用刷卡机设备生成病人门诊信息卡,写入病人门诊流水号。门诊挂号顺序图如图1所示。

门诊挂号顺序图说明:

(一)对病人就诊信息卡进行管理;

(二)并非所有病人都需要打印挂号单(参考挂号单打印业务);

(三)病人选择了就诊科室后,到分诊台选择适合的医师进行分诊;

(四)病人付款类型、挂号类型、就诊科室等条件决定了病人的挂号费用;

(五)挂号单格式可以根据医院要求自行定义;

(六)支持医保、多种公费、自费等多种身份的病人的挂号;

(七)支持窗口挂号功能,挂号员根据病人请求(提供读卡、公费人员查询等方式)快速选择诊别、科室、号别,生成挂号信息,打印挂号单,并产生就诊病人基本信息等功能。

四、系统实现

软件体系结构提出了一个重要的概念一连接子(Connector)。它显式地描述了构件之间的交互关系或交互协议,搭建了系统的框架,利用它可以很好地刻画系统的构架。在传统的程序设计中,构件间交互的描述往往散布在发生交互的各个构件之中。而通过连接子,SA提供了一种在较高抽象层次观察、设计系统并推理系统行为和性质的方式,也提供了设计和实现可复用性更好的构件、甚至复用连接子的途径[4]。运用连接子建立的系统模型如图2所示。

本门诊信息系统中介绍的各个子系统如门诊挂号、门诊收费、门诊医生站子系统都包含对病人信息的更新和查询浏览操作,可以抽取出一个应用级构件—病人信息管理构件,构件的结构如图3所示。这是一个复合构件,由病人信息查询构件、病人信息浏览构件和病人信息录入构件组成。

五、结束语

作为现代化医院建设中不可缺少的基础设施和支撑环境的门诊信息系统,更是医院进行信息化建设的重要部分,以门诊系统的研发为例进行了基于构件的软件开发的探索,在软件开发中应用统一软件开发过程和面向对象的方法,运用软件体系结构模型,初步完成了信息查询构件的设计和实现。

参考文献:

[1]郑人杰.软件工程高级培训教程.北京:清华大学出版社,1999

[2]张凤英,邹咸林.基于领域模型的面向对象分析及UML建模.计算机应用与软件,2004,21(16):112-114

[3]邵维忠,杨芙清.面向对象的系统分析.北京:清华大学出版社,1998

[4]剑张为,姚振坚,刘森.基于构件/构架的现代软件开发方法的研究.航空计算技术,2003,33(2):115-116

基于构件的管理系统研究 篇4

关键词:软件复用,构件,数据总线

在软件复用的过程中主要有两个相关的过程:可复用构件的开发和基于可复用构件的应用系统构造———集成和组装。软件的再次开发可以通过模型系统通用平台很好地解决,但在软件的开发过程仍涉及到构件的管理,即以构件管理为基础。软件管理主要涉及构件的获取、构件存储管理和构件组装等方面,这几个环节在软件复用过程中都处于非常重要的地位,而且都与构件密切关联[1]。因此,无论是从可复用构件的开发角度、还是从基于构件的复用角度来看,可复用构件的数量、种类和质量都是成功地进行软件复用的关键所在,这就对可复用构件的分类、存储、管理、检索以及相应的工具支持提出了需求。必须有一个合理而高效的可复用构件库管理系统提供强有力的支持,才能使成功的软件复用成为现实。软件复用就是为了在软件开发中避免重复劳动而引入的一种解决方案[2]。

1构件管理体系结构

我军过去开发了大量作战模型,在不同时期采用了不同的管理模式,一定程度上满足了当时的需要,但总体呈现出局部集中、总体分散、异构等特点。随着作战方式和方法的不断变化,尤其是联合作战成为了作战的主旋律后,异构的、分布的、网络化计算环境得到了广泛使用。所以,构建模型的构件管理系统也应该具有网络支持功能,以支持用户在物理上的分布,能够在异构环境下运行,以充分发挥各种不同军种的优势,使它们互为补充,达到更好的性价比。简单地说,就是以基于构件的训练仿真模型系统通用平台为基础,通过数据总线实现的无缝连接,实现集中与分布的构件库或模型库的有机统一,优势互补。

1.1 基于构件的训练仿真模型系统通用平台

基于构件的训练仿真模型系统通用平台主要提供以下功能:(1)基于平台的构件二次开发;(2)基于平台,按需订购组装构件成新的模拟训练系统;(3)基于平台,以新组装系统展开模拟训练,如图1所示。功能(3)指出的模拟训练包括集中式、分布式、集中与分布相结合的多种训练方式。模型系统通用平台通过数据总线实现各平台间的通信连接,数据总线能够自动完成不同信息流的自动对接,实现各平台间的互连与互通。

1.2 构件管理系统

构件管理系统与平台密切相关,如图2所示,主要由构件库、配置库、入库工具、查询工具、平台数据线以及构件库管理工具组成,在构件库中可以保存软件开发过程中所生成的不同阶段(如分析、设计、编码、测试等)、不同形态(如类、类树以及框架)、不同表示(如图形、伪码、语言等)的构件,并根据多种不同机制(如刻面、关键词等)为它们建立分类索引,以便于进行检索工作。构件管理系统核心是构件库管理系统,其相互关系如图3(a)和图3(b)所示。外围支持工具主要有构件库入库工具、构件库查询工具和构件库维护工具[3]。

构件库管理系统主要由构件库和配置库构成,配置库包括一系列构件配置文档,配置文档中保存构成他的各个构件实体的组成关系,以及对他的接口与功能的相关描述文档,构件库中只保存构件实体。配置库中配置文档的组成关系可以有图3(a)和图3(b)所示的两种方式。

(1)图3(a)所示的配置文档独立完成调用,即把所属构件的组成关系完全写入一个文档,不与其他配置文档发生嵌套或其他调用关系。

(2)图3(b)所示的配置文档组合调用,即把调用关系中具有包含关系的文档作为子文档,父文档在配置库中调用子文档,并且在配置库中以结构树的形式保存。

在上述两种组成关系中,第一种组成关系比较明确、具体,查找到文档后就直接可以完成组装,不用再与其他配置文档发生交互关系,但配置文档相对较大,而且出现错误后就需对整个文档进行修改,不利于改动;第二种组成关系则配置文档小,构成关系比较清晰,利于根据需要进行修改,但存在的不足是配置文档间需要频繁交换,增大了配置库的管理难度。在开发过程中具体采用那种组成关系,可依实际情况而定。

外围支持工具基于构件的训练仿真模型系统通用平台,通过局域网或广域网与数据库服务器通讯,支持用户对构件库的使用。各支持工具通过一定的机制集成起来。构件库的三组工具分别为[4]:

(1)构件入库工具:由构件库管理员使用,其中包括构件分类工具,主要功能是将新构件加入构件库及修改己有构件信息;

(2)构件查询工具:由构件库用户使用,其中包括构件查询工具和构件使用意见反馈工具,主要协助构件库用户浏览、查询、提取构件,反馈用户对构件的使用意见;

(3)构件库维护工具:由构件库管理员使用,其中包括用户数据库维护工具、构件提供者数据库维护工具、构件库管理员数据库维护工其、用户反馈意见处理工具、刻面术语空间维护工具和构件库信息统计工具,主要对构件库的各部分内容进行管理维护[5]。

2 构件的调用管理

早期开发的平台多基于模型的直接加载或源代码重用,最大粒度的构件以动态链接库的形式存在,实现构件的动态加载,在一定程度上实现了按需定购的思想。但用这种方法来实现更大程度软件的复用,则对平台的要求太高,很难实现众多模型的融合,而且动态链接库入库时要求比较严格,给构件库的管理人员和维护人员增加了巨大的工作量,尤其对早期开发的模型再利用也存在很大的制约,所以基于构件的训练仿真模型系统通用平台采用构件组装的方式,按需定购,根据需要完成模拟训练目标。

在基于构件的软件开发过程中,原来系统开发中的重点——程序设计,将被组装现有软件构件所取代。构件组装成为整个软件开发过程的核心工作,因此构件的组织、存储、检索也就成为基于构件的软件开发中的一个关键因索。构件库系统很好地完成了对上述活动的支持,具体可以划分成三类:构件获取、构件管理和构件复用,如图4所示。构件可以通过设计生产、再工程的方式提取,或通过其他方式获得,构件管理员负责构件分类以及构件维护,而构件复用则查询构件并通过构件组装生成新系统[6]。

构件的组装,就是按照不同的训练目的,按需订购,通过现有构件组成新的训练系统,完成模拟训练任务。具体地说,首先按照训练要求,进行需求分析,最后分解到具有一定粒度的构件上。通过构件管理系统查询现有构件,构件库中有相同描述文档,则通过平台数据线直接加载,如果构件不存在,则查找功能相同或相近构件,利用平台提供的二次开发向导构造复合要求的构件,并入配置库,并在构件库中填写相关文档与描述信息。

这种组装方式不仅局限于局域网范围内,还可以通过数据总线加载异地的构件,进行分布式模拟训练。组成新系统后,通过基于构件的训练仿真模型系统通用平台进行管理调度,基于构件的训练仿真模型系统通用平台搭载在一体化信息系统公共平台之上,构成一个完整的模拟联邦,模拟联邦通过数据总线进行相互,完成各种训练任务,如图5所示。

3 通信调用方式

平台与平台之间,平台与其他系统之间的通信调用方式通过数据总线实现,数据总线主要提供以下功能:

(1)对不同数据结构的自动解析,实现互通信;

(2)对基于构件的训练仿真模型系统通用平台发出的请求服务或需求服务自动分配到相应的平台。

数据总线要完成以上功能,采用了以下几种方式。

3.1 行为协议与构件管理系统相互关联

在软件结构设计过程中,运用总的配置关系库更加准确地描述基于构件管理系统的行为协议,这些协议可以看作是对构件库管理系统中的配置关系库的使用说明。通过总体配置关系库,构件通过预先定义的行为协议与其他构件进行通信,将每个接口、框架、结构与协议关联起来,描述构件的服务行为和需求行为。如:平台需要调用构件C1的服务,首先平台通过总体配置关系库的行为协议调用构件管理系统的配置

关系库,配置关系库根据其中的映射关系调用构件C1,构件C1再按照相反的顺序将运行结果反馈回平台。

3.2 通讯构件模块进行封装

将有关通讯的功能封装在一个构件模块当中,对构件库进行操作的所有工具都通过通讯构件模块来完成通讯功能。这样在必要时,只要对通讯构件模块中所采用的通讯机制进行更换或适当地修改,就可以使构件库满足新的需要,使它具有更好地可移植性,更好的支持它在异构环境上运行。

4 结束语

主要研究了基于构件的管理系统,通过模型系统通用平台和数据总线的支持,实现不同构件的组装,按需订购组成新的应用,完成集中或分布的模拟仿真需要,下一步的工作方向完善管理系统,实现对系统的实践应用。

参考文献

[1]邹炜.青鸟可复用构件库的设计与实现.江西:江西师范大学,1998

[2]Prieto-Diaz R.Status report:software reusability.IEEE Software,1993;10(3):61—66

[3]王俊峰.构件技术支持软件系统开发的研究.上海:复旦大学,2000

[4]马亮,谢冰,杨芙清.多构件库统一刻面检索机制.电子学报,2002;30(12):2149—2152

[5]梅宏,谢涛,袁望洪,等.青鸟构件库的构件度量.软件学报,2000;11(5):634—641

基于构件的软件系统 篇5

为了揭示铝合金切削机理,实现铝合金结构件的高效加工,采用工艺试验和理论分析相结合方法研究了铝合金结构件加工过程中的切削力模型.利用建立的切削力模型计算了给定切削参数下的.切削力,分析了某典型结构件翼面侧壁加工的受力情况,由受力分析可知,采用准高速段切削参数加工翼面可保持较小的切削力,有利于控制侧壁的加工变形.加工实例表明,该翼面可以进行高效加工,并可得到良好的加工质量和精度.

作 者:成群林 侯正全 唐建平安庆龙 陈明 作者单位:成群林,侯正全,唐建平(上海航天精密机械研究所)

安庆龙,陈明(上海交通大学)

基于构件的软件系统 篇6

关键词:构件技术;多媒体;短信系统

中图分类号:TN929.9文献标识码:A文章编号:1007-9599 (2010) 13-0000-02

The Design and Implementation of MMS System based on Component Technology

Lan Weiwen

(Caijiaguan Campus of Guizhou University,Guiyang550001,China)

Abstract:The component-based software development,multiplexing technique can decompose the complexity of the problem,reduce development,support parallel and distributed development,and improve the system of quality and maintainability,and can reuse previous work achievements and experience accumulation for the future development of reusable the software component.Based on the smart phones MMS client software system as the research object,proposed MMS design solutions based on component technology.

Keywords:Component technology;Multimedia;Messaging system

MMS是Multimedia Messaging Service的缩写,中文译为多媒体信息服务,也称“多媒体短信”或“彩信”。是按照3GPP(Third Generation Partnership Project,第三代移动通信标准化的伙伴项目)的标准(3GPP TS 23.140)和WAP(Wireless Application Protocol,无线应用协议)论坛有关多媒体信息的标准(WAP-206和WAP-209)开发的业务。

MMS在WAP协议上运行,因此它对传输格式并没有严格的限制,既支持CSD格式(Circuit-Switched Data,电路交换数据格式),也支持通用分组无线服务GPRS(General Packet Radio Service,通用分组无线业务)格式。其工作原理为利用高速传输技术EDGE(Enhanced Data rates for GSM Evolution)和GPRS的支持,以WAP为载体传送视频、图片、声音和文字,实现即时的手机端到端、手机终端到互联网或互联网到手机终端的多媒体信息传送。

一、MMS系统的网络结构

MMS的一个关键特征就是它能够和其他的消息系统进行互操作,比如和SMS的互连、和EMAIL服务器的互连,甚至包括如传真、语音邮件等消息系统等。MMS终端(客户端)以及实际网络环境组成如图1所示:

1.MMS Client:多媒体短信客户端,是用户的终端设备上的一个应用,它和用户进行交互,即本文开发的系统;

2.MMS Proxy-Relay:多媒体短信分发代理,MMS客户端就是与其进行通信,同时,它还负责与其他的消息系统进行通信,并且负责访问MMS服务器,有时MMS Proxy-Relay与MMS Server合而为一;

3.MMS Server:提供多媒體短信实体的存储功能;

4.Email Server:电子邮件服务器;

5.Legacy Wireless Messaging System:目前存在的各种无线消息系统,例如SMS、传真等等。

二、MMS运行平台及功能需求

(一)MMS运行平台

MMS智能手机客户端软件系统需要智能手机平台为其提供GSM/GPRS硬件、SMS网络接口支持,文件、内存管理支持,多线程的支持,以及消息机制,图形界面、基本控件的支持和实时性的保证。

本文设计的MMS系统使用的智能手机平台采用mLinux作为系统核心,mFone作为应用平台。该系统为MMS提供了所有必需的软硬件支持。该平台按照层次的结构设计,各层相对独立,通过对外接口进行层间通信,这样可在产品开发中按各层的功能和接口并行开发,然后将各个子系统组装集成,进行系统测试和验收,从而缩短产品开发周期。整个平台由HardWare、mLinux OS、mGUI及应用部分组成。在设计上采用分层结构,明确各层的功能及接口,尽量降低各模块直接的依赖性,以便于系统整体或者部分的升级。

(二)MMS功能需求

MMS客户端软件系统需要实现如下功能:

1.编辑MM:创建新的MMS信息,对MMS信息的任意部分进行修改,增加或删除背景音乐,增加或删除帧,修改所有帧,增加或删除文本,改变文本内容,增加或删除图片;

2.发送MM:发送MMS到手机或者邮件地址,具备发送、转发、回复功能;

3.接收MM:将储存在MMSC上的MMS信息接收到移动终端;

4.查看MM:预览、播放MMS信息,支持SMIL的多帧显示;

5.管理MM:划分收件箱、发送箱、未发箱、草稿箱、收藏箱的方式管理在移动终端上的所有MMS信息;对新彩信通知、下载未读、已读、已发、未发信息进行标记,对所有的信息进行删除和编辑操作。

三、基于构件技术的MMS系统设计

(一)体系结构设计

设计MMS的体系结构时,采用基于构件技术的设计,对MMS进行功能模块的提取、划分。在划分功能模块,设计构件时,并不是将功能分得越细越好,大粒度、完整的功能构件更有机会得到复用。MMS与WAP网关的网络交互需要MMS编解码功能的支持,因此,综合考虑后,将MMS的编解码、SMIL文件的解析以及与WAP网关的网络交互功能放在一个功能构件MMS核心库libmms.so中实现。系统采用层次的体系结构:上层通过下层对外提供的接口,直接调用下层的服务;下层通过上层注册的回调函数向上层传递消息;libmms.so的解码模块将彩信解码后,将图片、音频、文本保存到彩信应用的一个临时文件夹下,MMS中的显示模块直接到该临时文件夹下获取当前彩信的图片、音频、文本,并根据解码获得的SMIL文件中的彩信播放控制内容播放彩信。

(二)基于构件技术的MMS系统详细设计

1.MMS核心库总体设计。MMS核心库设计时也按照功能对其进行了模块的划分,MMS核心库的总体设计如下图3所示:

其中,MMS Editor模块负责彩信的编辑,提供接口供彩信应用调用实现MM中帧的添加、删除,帧中内容(图片、音频、文本)的添加、删除及相关播放控制信息(播放时间,图片、文本显示位置)的设置,彩信的主题、收件人、日期等的设置;SMIL Composer模块在彩信编辑完后,完成彩信播放控制信息的编码工作:将彩信的播放控制信息按SMIL语法编码到一个smil格式文件中;最后,MMS Composer模块完成彩信的编码:将编辑的多媒体消息按彩信相关协议编码到一个MMS PDU中,相比构件间的关系,MMS核心库中的各模块除了提供对外的接口供其它模块调用外,各模块间还共享数据结构的定义、能够对其他模块中结构体的成员变量值直接进行读取和设置,以提高核心库的效率。

2.文件管理的构件化设计。File Manager用于管理消息,分为收件箱、已发箱、未发箱、草稿箱、收藏箱,分别用来保存接收的消息,发送成功的消息,发送失败的消息,草稿消息,个人收藏消息。实现对MMS、SMS、EMAIL消息的统一管理。该模块定义了管理器manager,manager里面包含文件夹folder,folder里面包含文件message。

3.图片显示的构件化设计。Picture Viewer构件实现对bmp、gif、jpeg、png格式图片文件的显示。该构件主要的对外接口设计如下:

CMS_S32 InitPicViewerPlugin();

功能:PicViewer的初始化;

4.PUSH消息处理的构件化设计。MMS的新彩信通知、送达报告和阅读报告是以PUSH消息的形式到达手机的,PUSH消息由MCS统一处理。MCS与MMS相关的功能包括:MMS通知处理、彩信通知读取、彩信删除、彩信状态修改,通知用户彩信送达,通知用户彩信已阅读。MCS彩信模块(负责彩信相关PUSH消息的处理的模块)负责提取短信方式的新彩信通知。彩信应用将读取这些通知,并供用户下载、阅读。在此过程中,MCS彩信模块负责彩信状态的维护,具体包括彩信存储状态的维护和彩信状态的维护。

参考文献:

[1]杨杰.基于MM7API的多媒体短信增值服务平台的构建[J].科学技术与工程,2007,21

[2]王茂祥,吴振海,徐若龙.MMS系统的基本结构与功能浅析[J].江苏通信技术,2003,19,1:1-4

作者简介:

基于构件的软件工程技术探索 篇7

1 传统软件工程

传统意义上软件工程主要面向过程, 随着科学技术不断发展, 传统意义上软件工程已无法适应当前复杂软件系统, 人们在不断实践过程中, 遇到越来越多软件工程方面问题, 在此基础上, 面向对象软件工程随之出现。上世纪九十年代至今, 网络系统发展迅猛, 又出现了新的问题, 经过不断尝试, 人们采用基于构件这一技术方法来代替面向对象软件工程技术, 以适应新的网络需求。

面向过程同样具备优缺点, 其优点在于自身思维方式完全匹配人们认识规律;而其缺点在于过多注重细节, 而没有从宏观角度更有效把握软件系统。

2 面向对象软件工程

所谓面向对象软件工程指的是充分利用面向对象这一方法, 切合实际, 符合客观规律的网络软件工程。面向对象这一网络技术方法自发现以来便备受关注, 九十年代中期这一方法已逐渐取得其他方法, 而面向对象方法之所以受此亲睐, 是由于其具有以下优点:首先, 面向对象这一方法以认知学角度而言, 符合客观认知规律;其次, 开发软件系统更容易维护与管理, 软件结构更容易理解;再次, 面向对象这一方法所蕴含机制与理论使得软件能够重复利用。

3 构件软件工程概念模型

构件以及基于构件有效解决方法均为电子商务在改革过程中有力驱动力, 是当前网络时代生产企业和开发企业在软件工程出现问题时快速且有效解决方案。通常在行业领域里, 较为复杂情况需要通过几个关键概念经缜密分析, 以此解决相应问题。而这些概念大多是以抽象形式、分解形式、细化形式等不同方式进行有效表达。最为重要的是分解技术, 所谓分解技术即为将一个困难问题细化, 进行分解, 得到很多易于解决小问题, 这些小问题称为单元。分解技术作为软件工程众多技术的一种, 一直以核心作用呈现。软件工程处理方法被称为软件工程结构化设计、软件工程模块化编程、软件工程面向对象程序及设计、软件工程基于构件程序设计, 这些方法所产生单元可称作对象、模块或构件等。

基于构件软件工程开发已成为必然事件, 基于构件软件开发可简称为CBD, 而基于构件软件工程可简称为CBSE。基于构件软件开发所追求目标在于软件随时可利用。在软件开发过程中, 较为标准零部件即为软件生产过程中构件, 软件生产过程中构件在相应生产线上以集成技术得以开发新软件。

3.1 构件分类

软件生产过程中构件主要划分为两种, 一种为粗粒度构件, 另一种为细粒度构件。前者所指为以操作系统为基础平台的构件, 粗粒度构件特点为即插即用。而后者所指为可利用其特点组装新的应用程序构件, 粗粒度构件具体包含通用构件以及专用构件, 粗粒度构件也是基于构件软件开发中探讨的构件。

另外一种构件分类方法主要依据复用软件进行有效划分, 可分为广义层次构件及狭义层次构件。广义层次构件指的是软件复用实体, 而狭义层次构件指的是二进制代码方面构件。

3.2 CBD模型描述

CBD能够面向对象程序设计不断发展。软件工程生产过程中, 任一构件均是一个或几个对象通过合理包装而构成, 并通过接口这一渠道对外提供有效服务。这一接口同网络硬件接口类似, 包括输入和输出接口, 同时还有输入输出接口。基于构件软件开发过程中, 任一构件均是一个或几个对象通过合理包装而构成, 从而形成较为标准零部件, 随后以构件集成开发为环境, 组建完整应用程序。

CBD生存周期主要分为软件开发当中系统分析过程, 软件开发当中蓝图设计与策划过程, 软件开发当中构件准备和构件生产过程, 软件开发当中构件集成和构件测试过程, 软件开发当中构件使用过程及其维护过程等六个有效阶段。在软件开发当中经历系统有效分析及蓝图设计后, 需要马上进行构件准备及构件生产过程, 此时可重复利用通用构件, 然而当软件开发当中遇到特殊情况、需要特殊构件时, 便需马上进行合理生产。在进行系统分析时, 应采取逐级分析方案, 以最短时间发现系统全部需求问题。先将软件工程分解为小单元, 准备每一个小构件, 然后利用集成技术将各个小构件编译成大构件, 直到将所以小构件编译集成为一级构件为止, 最后将得到一级构件进行合理组织, 最终得到应用程序。

摘要:本文从实践角度出发, 以软件工程技术作为对象进行研究, 分析各软件工程相互之间存在差别, 并给出基于构件的软件工程概念模型, 希望对相关工作人员有帮助。

关键词:软件工程,对象,构件

参考文献

[1]黄梅荪, 程慧霞, 吴必文.基于UML统一软件开发过程的研究和实践[J].安徽大学学报 (自然科学版) , 2003 (03) .

[2]李建华, 边馥苓.GIS软件设计演化与求精实现的双向工程模型探讨[J].地理信息世界, 2005 (04) .

基于构件的软件工程技术研究 篇8

1.1 CRBA。CORHA基本上可以分成动态调用与静态调用两种, 前者相较于后者其手段要稍微灵活, 可移植水平也要高一些, 然而, 其调用方式操作起来较为复杂, 速度也非常缓慢。CORBA效率非常低, 而且缺乏一定的安全性, 并非处在一个集成的开发空间内。

 CORBA中1DL接口文件被编译成两个方面, 即stub和skeleton 。stub发起的每一次对象请求, 都必须要经过两次及以上的打包、解包, 通过ORB核心, 导致CORBA的效率低下, 这也使得CORBA失去了竞争能力, 如今, 已逐渐消失在主流的软件开发技术的序列。

1.2 COM+。由于并非独立的中间层, 因而COM+无法产生软件界统一的标准, 进而只可以受限在微软内部和兼容软件。COM+无法屏蔽硬件与操作系统之间的差异性, 并给予一个非常一致的构件运行工程环境[1]。除此之外, COM+还没有NET Framework框架和运行时。

COM、COM+并未真正处理好DLL hell问题, 一旦安装新的软件应用程序, 就会有条件损坏最开始运行正常的应用软件程序, 使一些用户感到恐慌, 这也正是COM+最大的不足。

1.3 NET。NET在构件层面上相对而言是最为成功的, 其.NET Framework框架在运行过程中及时翻译, 这也是迈向软件工厂的重要枢纽。然而, 不可否认的是, .NET离真正意义上的软件工厂仍然有一段距离。NET并非一切的软件开发都做到即插即用, 此外, .NET跨语言平台仅限于微软的产品, 离构件软件的开发还有很大距离。

二、基于构件的软件工程技术开发过程

2.1系统分析。基于构件的软件工程技术系统分析的主要原则:

一是抽象:从很多事物中去掉个别的、非本质的特征, 选择一些共同的、本质的特征, 称之为abstaction。Abstaction是生成概念的重要形式。对于分析来说, 抽象原则具有两个层面的作用[2]。一方面, 虽然问题域中事物相较比较复杂的, 然而分析员并不需要明确与解释它们的一切, 只需要分析研究其中与系统目标有关的事物及其本质特征。另一方面, 通过舍弃个体事物在细节上的差异, 选择一样的特征而获得事物的抽象概念, CBD中分类便是如此取得。

二是封装:构件的属性、服务以及接口紧密结合在一起, 让构件可以全力集中而整体地描述一个具体的事物。封装的信息隐蔽作用反映了事物的相对独立性。

三是继承:在CBD系统研究过程中充分运用继承原则, 换言之, 便是每个由一般类与特殊类产生而成的特殊结构。将一般类的构件实例与全部特殊类的构件实例都一起具备的相关属性、服务、接口, 一次性彻底的在一般类展开显式的意义。

2.2蓝图设计。在进行系统分析的背景下, 便能够开展有关的蓝图设计了。由于基于构件的软件开发非常有代表性的特点便在于“搭积木”, 这也在一定程度上和修建一座大楼是非常类同的, 蓝图设计中的蓝图, 顾名思义, 也就是等同于大楼整体的一张设计图。其要首先定义好所需要的一些构件, 把所有系统逐一拆解成为一级子模块, 一旦一级子模块过于繁琐、复杂, 则还可拆解成为二级子模块。

2.3构件集成和测试。独立的构件购买后, 第一, 要实施二级子模块的组装和测试, 将其进行全部组装, 实施两方面的测试, 即兼容、功能。在一切测试都符合标准之后, 就把二级子模块展开组装, 开展一级子模块的兼容性与功能测试。一级子模块测试也符合标准之后, 就需要进行最后的软件系统集成测试。在测试的过程中, 也许会产生在购买构件时产生的部分问题, 可利用发E电子邮件告知构件交易中心, 构件交易中心再通过电子邮件通知构件开发商。

三、结束语

综上所述, 基于构件的软件工程主要是面向对象软件工程的一种可持续化的延续与延伸, 对象这一概念本质上无法真正地体现出工业上标准下的零部件。换言之, 也就丧失了标准接口这个过程, 因而构件概念又是对象概念的取代, 构件的软件涵盖了诸如构件名、属性、服务以及接口四部分, 可以非常出色地体现现实世界中的事物, 而且在组装软件的时候, 支持即插即用。

参考文献

[1]战锴.软件工程技术发展趋势研究[J].电子技术与软件工程, 2013, 13 (14) :51.

基于构件的软件系统 篇9

计算机软件的广泛应用和快速发展使软件功能越来越强, 易用性大大提高, 与此同时, 软件的规模和复杂度也成倍增长, 给软件开发带来一定的风险。开发的软件扩充性差, 无法复用, 致使开发成本增高, 软件质量下降。软件构件技术正是在这种背景下应运而生并迅速发展。它将开发重点由原来的软件编程转变为利用已有的构件组合集成为新的软件系统, 可以解决面向对象技术无法解决的矛盾, 使大量结构相似的应用程序得到重用, 有效地提高软件的质量和可靠性。

1 基于构件的软件开发

1.1 构件技术

构件 (Component) 是指明确定义了接口, 用于复用的一个对象 (接口规范、或二进制代码) 。可以通过组装已有的构件来开发新的应用系统, 从而达到软件复用的目的。构件技术能够提高不同领域内功能扩展, 支持整个生命周期, 包括软件设计、构建、测试等等, 适应到不同规模的任务上, 具有可伸缩性。

构件技术研究内容包括: (1) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; (2) 构件模型:研究构件的本质特征及构件间的关系; (3) 构件描述语言:以构件模型为基础, 解决构件的精确描述、理解及组装问题; (4) 构件分类与检索:研究构件分类策略、组织模式及检索策略, 建立构件库系统, 支持构件的有效管理; (5) 构件复合组装:在构建模型的基础上研究构件组装机制, 包括源代码级组装和基于构件对象互操作性的运行及组装; (6) 构件模型和构件库的标准化。

1.2 基于构件技术的软件开发过程

基于构件技术的软件开发过程, 是利用构件组装在构件之间, 通过事先确定的接口实现信息交换。某一个构件所提供的功能, 可能为其它构件所调用, 也可能直接为用户所调用。基于构件的软件开发过程包括:构件分析、构件提取及构件的设计与实现。整个开发过程如图1所示。

2 基于构件技术的油库管理信息系统开发

2.1 构件化油库信息系统的体系结构

软件构件技术中的软件体系结构是指构件间的联系、约束、组织和管理, 用来指导构件的设计开发, 在宏观上描述整个系统的组成和结构。油库信息系统可以分为4层:用户界面层、业务处理层、数据访问层、数据处理层, 如图2所示。用户界面层直接提供用户与系统间的可视化交互功能。业务处理层通过应用服务器处理各种事务逻辑, 并通过Web服务器处理用户浏览器的访问请求。数据访问层使系统采用JDBC访问数据库。数据处理层通过数据库存储和处理数据信息。

2.2 基于构件技术的油库信息系统开发流程

2.2.1 需求分析阶段

对油库信息系统进行需求分析, 用于满足油库管理日常工作的需要, 它可以实现用户管理、供应指标、日常供应、账目管理等功能。

(1) 用户管理的功能是对登陆系统的用户及权限进行管理。

(2) 供应指标的功能包括将上级下达的油料指标分配文件或油料增拨指标数据录入本系统中;给本单位下属机构下达油料指标, 包括分配、增拨油料指标时办理的凭证。

(3) 日常供应是根据供应指标, 通过逐级办理油料供应凭证, 自动记载帐薄。

(4) 账目管理包含4项功能:油料账目、油料报表、油料决算和统计考核。

2.2.2 系统构件的提取

有效的构件包括已包装的应用程序, 包装好的遗产代码和数据, 在以前的项目中开发的构件, 以及为满足现在的业务需要而专门开发的构件。构件如此多样的来源使人们可以从第三方获取构件、使用多种技术来开发它们以及从现有资产中提取。选择构件要遵循以下标准:

(1) 使用构件模型作为所有构件必须遵循的标准, 不管来源如何。

(2) 采用被适当工具支持的构件管理方法, 达到按要求存储、索引、查找以及检索构件的目标。

(3) 使用统一的设计方法, 允许从构件来设计一个解决方案的架构, 可以仅考虑构件的抽象功能, 而忽略它们以后的实现特性。

根据系统架构及构件提取标准, 确定系统构件主要包括:客户GUI构件、Web服务构件、业务逻辑构件、系统数据库及访问构件、业务数据库及访问构件、控制数据库及访问构件等。

客户GUI构件主要向用户提供增、删、改、查等操作界面;Web服务构件封装了全部的业务处理程序, 提供具体的应用功能, 如分配油料指标构件、调整油料指标构件、油料供应指标构件等;系统数据库及访问构件负责与业务无关但与系统相关的数据, 例如, 设置用户的账号及密码等;业务数据库及访问构件负责与业务相关的数据, 例如, 收支存报表中的数据;控制数据库及访问构件用于修改业务数据。

2.2.3 系统构件的设计与组装

设计构件的中心是定义系统各个部分的接口, 以及把应用程序描述为接口之间的协作。接口是所有分析和设计活动的核心, 构件的实现者可以使用任何合适的技术来设计和构建构件, 只要它支持接口操作, 并且与构件执行环境兼容。同样的, 另一个构件的使用者可以通过仅仅调用它的接口, 来定义他们使用哪个构件的方法。这提供了一种在构件开发者之间实现独立性的方法, 并且当构件升级或被替换时, 提高了整个系统的灵活性。设计构件应遵循以下标准:

(1) 构件的规格说明必须与其设计和实现相分离。

(2) 重点关注接口的设计方法。

(3) 对构件的语义加以形式化的记录。

最后, 需要对构件进行组装, 形成需要的应用系统。组装构件就是将被组装的构件的多个服务接口绑定到组装后构件的服务接口上, 并建立起被组装构件的多个服务接口之间的交换方式。组装构件的本质是在构件之间通过接口或连接件建立关联, 并相互协调的行为。本系统使用Eclipse等开发工具将所有的构件按照系统架构组装起来进行测试, 真正实现油库管理信息系统。

3 结束语

构件管理信息系统的开发是一项复杂的工程, 将构件技术应用于油库管理信息系统软件开发过程中, 根据系统需求把系统分解成若干构件, 将构件按照架构和接口标准进行组装与集成, 使总体生产效率提高, 后续维护变得简单, 且为该领域积累了可复用构件。

摘要:以油库管理信息系统为原型, 阐述了利用构件技术进行信息系统开发的过程。采用构件技术进行软件开发, 降低了较长生命周期项目的开发风险, 控制其复杂性, 快速适应变化。

关键词:构件技术,管理信息系统,软件复用

参考文献

[1]李延春, 晏敏.软件构件技术的现状和未来[J].计算机工程与应用, 2003 (31) .

[2]文汉云.基于构件技术和CORBA的ERP系统重构[J].计算机应用与软件, 2006 (5) .

[3]张为, 姚振坚, 刘淼.基于构件/架构的现代软件开发方法研究[J].航空计算技术, 2003 (6) .

[4]李艳平.基于可复用构件的软件开发方法[J].菏泽学院学报, 2008 (9) .

基于构件的电机试验软件研究与实现 篇10

在电机测试中, 电机试验分析软件是重要的组成部分, 也是衡量电机测试系统水平的一个重要方面。电机试验软件系统的功能和结构相对比较成熟、统一, 同类型电机的试验差异并不大。我院进行过数百厂次的试验站设计, 积聚了一批既有深厚理论基础又有丰富实践经验的电机试验方面的工程技术人员。成功地将计算机技术、现代测试技术运用到了测试领域, 设计。累积了大量的成熟试验程序, 为电机试验系统的构件化提供了良好的生存土囊。

本文的主要工作旨在提取出各个模块中的主要构件, 让以后的电机试验软件开发中, 研发人员可以快速的进行构件化开发, 而将大部分的精力放在维护构件, 以及满足用户非共性的需求上。

2软件构件技术

2.1构件的定义。什么是构件?这个概念是大家都理解, 但难以去准确定义的一个名词。对于构件的定义, 有很多种。可以概括出构件的一般性定义, 即构件是一个可配置的实体, 可独立开发和交付的软件单位, 其存在的目的是向外界 (应用框架、其它构件或最终用户) 提供服务。

杨芙清, 王千祥等人对构件的定义为:构件是可以被复用的软件实体, 由构件规约与构件实现两部分组成。其中, 构件规约主要由构件模型进行描述。构架是一类特殊的构件, 它刻画了组成系统的构件与构件之间相互作用的关系[1]。

Desmond D’Souza & Alan Wills将软件构件定义为:一个可独立交付的软件单元, 封装了设计和实现的内容, 并向外提供接口, 通过接口与其它构件组装成更大的整体[2]。

Clemens Szyperski认为:一个软件构件是一个仅通过规范的接口和确定的上下文依赖进行组装的单元, 能够被独立地部署和由第三方组装[3]。

2.2构件技术。软件构件技术是以面向对象技术为基础, 以即插即用型构件为中心, 通过构件的组合来建立应用的技术体系, 是通过构件组合支持应用的开发环境和系统的总称[4]。构件技术是支持软件复用的核心技术, 是近几年来迅速发展并受到高度重视的一个学科分支。

其主要研究内容包括[5]:a.构件获取:有目的的构件生产和从已有系统中挖掘提取构件;b.构件模型:研究构件的本质特征及构件问的关系;c.构件描述语言:以构件模型为基础, 解决构件的精确描述、理解及组装问题;d.构件分类与检索:研究构件分类策略、组织模式及检索策略, 建立构件库系统, 支持构件的有效管理;e.构件复合组装:在构件模型的基础上研究构件组装机制, 包括源代码的组装和基于构件对象相互操作性的运行级组装;f.标准化:构件模型的标准化和构件库系统的标准化。

3电机试验软件的构件化

3.1电机试验软件领域特点。电机试验软件一般由五大部件组成, 分别是:界面显示层、试验数据采集层、试验数据分析模块, 试验数据存储模块, 报表输出模块。如图1所示。

图1中各箭头代表数据交互。界面显示层主要是系统和用户之间进行信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换。数据采集模块主要是将试验分析所需要的原始数据进行采集, 其中包括功率数据、转矩转速数据、温度数据等。试验数据分析模块是将采集来的数据按照电机所对应的国家标准进行数据分析, 并得到一系列的分析结果。数据存储是将采集数据以及分析后的结果数据保存, 方便用户以后查询。报表输出模块是按照用户的输出样式需求将电机的试验数据输出成报表。

对电机进行型式试验的一般过程如下:用户根据需要新建一次试验, 根据电机名牌信息填入电机相关参数, 选择需要进行的试验项目, 然后再对各个试验项逐一进行试验。在单个试验项目中, 在用户的操作之下, 数据采集层自动采集本试验项目所需要的相关数据, 结合用户输入的电机名牌数据一起提供给试验分析层。试验分析层根据试验项目不同而调用不同的试验分析程序, 并将试验分析所需要的原始数据和分析得到的结果数据传送给数据存储层, 数据存储层将数据存储到数据服务器。当一台电机的所有试验完成后, 可以通过报表生产机制生产用户指定格式的报表。

由此可见, 电机试验软件的基本格局稳定, 经过长期的累积开发后, 电机试验软件十分合适进行构件化工作。

3.2构件的提取和开发

3.2.1数据采集层构件。现场所具备的采集设备各式各样, 各种仪表生产厂商都有自己的一套通信规约, 哪怕是同一个厂商不同的产品之间也有差异。但每一次项目所选择的仪表并不是确定, 如果不形成构件化, 那么意味着软件研发人员每次都需要进行数据采集层的研发, 但有时候可能仅仅只是更换了一台仪表。

对于上层架构来说, 数据采集层的业务逻辑比较单一, 不管仪表的型号是怎样的, 我们最主要的就是需要仪表所采集来的数据。根据电机试验所需要的数据不同, 我们将仪表分为三大类, 分别是:功率仪表, 温度仪表, 转速转矩测量仪表。这些仪表都具备一些公共的特性, 我们将其抽取出来形成一个接口, 各个设备的类都实现该接口, 然后由一个公共的设备管理类进行管理。上层架构不需要理会数据采集层具体用的是什么设备, 只需要直接调用设备管理类采集上来的数据即可。

如图2所示, 设备管理类对上层调用提供了四个接口方法, 分别是Initial, Connect, Go, Close。当上层逻辑调用Initial方法后, 设备管理类将会读取本项目的设备配置文件, 得到当前使用设备的一些基本信息, 做一些初始化工作。上层调用Connect方法, 设备会对已经连接进入系统的各个设备进行初始化和连接工作, 并返回设备状态。调用Go方法, 所有设备开始运行, 并实时更新设备管理类中的Data Set数据结构, 供上层逻辑使用。调用Close方法, 会将所有打开并正在运行的设备全部进行关闭工作。Data Set数据结构是电机试验软件所需要的数据总集合, 分为三大块, 一为功率仪表设备、电压、电流、频率、功率因数和功率等, 二为温度数据, 被试电机的各个温度监测点的实时温度值, 三为转速转矩仪表数据, 被试电机的转矩值、转速值和轴功率。

在调用设备管理类的Go方法后, 上层逻辑可以直接在设备管理类中将Data Set拿来使用, 并不需要明白数据是从哪个设备上来, 以及如何来的。设备公共接口中定义了设备的一些基本属性, 加入设备库中的所有设备都需要实现这些基本属性。这些基本属性有Initial、Connect、Set Device、Go、Close、Get Data以及设备状态属性。

在实际项目中使用数据采集层构件时, 首先检查现有的设备库中是否包含了项目中使用的所有设备, 如出现了新的设备, 则需要按照设备公共接口的规约进行设备程序的书写。在根据设备的实际使用情况, 书写配置文件。配置文件一般包含设备的类型、地址等一些简单的基本信息。虽然现场的设备种类很多, 但当设备库中的设备数量达到一定程度后, 数据采集层构件的使用基本上只是书写配置文件而已。

3.2.2数据存储层构件。在电机试验领域一般需要存储的数据包括:用户输入的电机名牌数据, 试验过程中采集的数据, 以及试验分析产生的中间数据和结果数据。我们根据领域建模提炼, 精确定义了电机试验数据存储所涉及到的一些概念和基本数据表。概念包括:试验项目、试验项、试验、电机等, 数据表包括:电机表、名牌数据表、试验信息表、试验与试验项关系表、试验项信息表、试验项目的测量表和试验项目的分析表等。其中, 试验项目的测量表和试验项目的分析表根据各试验项目不同, 其名字也均不相同, 它们存储的是各个试验项目的试验数据。

为了将数据存储层进行模块化、构件化, 将它从繁杂的软件开发中脱离出来形成构件。我们定义了一些数据结构, 以及操作接口。让数据存储层对上层逻辑透明, 也就是说, 上层逻辑不需要理会数据存储在哪儿, 是如何存储, 甚至于底层用的什么数据库都可以不理会。只需要将指定的数据结构填满, 然后调用我们所提供的接口就可以到达存储的目的。为了到达各个数据库构件可以无缝替换, 我们将数据库对上层提供的调用接口定义为相同名字, 所有当更改数据库和数据库构件时, 上层架构无需更改。

如图3所示, 上层逻辑根据试验情况填满试验对应的数据结构, 让后调用数据存储层的对外接口就可以完成一次数据的存储。数据如何存储到数据库, 以及存储在哪张表中则无需过多关注。

3.2.3试验分析层构件。试验分析层的构件化工作在方向性上相对比较明确, 虽然某些电机生产厂商在进行电机试验分析时, 有自己的企业标准, 但绝大部分的厂商都是遵循国家标准。本文以三相异步电机国家试验标准gb1032-2012为准, 构件化出三相异步电机试验分析构件。

该构件包含三相异步电机国标中所有试验项目, 如, 热试验, 负载试验, 空载试验, 堵转试验等等。该构件的存在形式为一个函数库, 软件研发人员只需要调用相应的函数, 并传递分析所需要的参数, 就可以进行试验分析, 得到相应的试验结果。

以空载试验为例, 需要提供给分析函数的参数有:各采集点的空载功率、电压、电流、定子最高温度、以及额定电压、定子初始电阻、初始温度、数据拟合方式。分析完毕后, 将返回额定空载电流、额定空载铁耗、风摩耗和铁耗等等, 一系列国标中所列出的分析结果。

3.3基于构件的电机试验软件开发流程。基于构件的软件开发 (Component Based Software Development, CBSD) 是指利用已开发完成的商业构件 (或可复用的构件) 按需求组装形成软件应用系统的软件开发方法。基于构件的软件开发有时也称为基于构件的软件工程 (Com-ponent Based Software Engineering, CBSE) [4] (图4)

由于基于构件的软件系统的开发是通过选择一系列的构件并将它们组合起来的过程, 它的生命周期与传统的软件系统是完全不同的, 基于构件的软件系统的生命周期可归纳为:需求分析、软件构件的选择、分析和评估;构件的开发、选择和组装;系统集成和测试;软件维护。

在电机试验软件开发中, 需求分析阶段除分析、确定系统构架外, 还要进行构件的评价。首先按需求分析结果, 从构件库中查找所需要的构件, 了解构件的功能、可靠性、可预测性等特性。构件的开发, 如果构件库中的构件, 包括数据库构件、数据采集构件和试验分析构件不能满足用户需求时, 需要对现有构件升级或是重新开发构件。最后按照系统构架组装构件, 得到应用系统, 并对应用系统进行总体测试。

结束语

随着基于构件的电机试验软件平台的搭建, 以后对电机试验软件的开发变成了构件的组装, 电机试验软件的开发重心变成了各构件的维护。基于构件的电机试验软件开发对软件功能性、开发效率、质量、可靠性、可移植性等方面具备良好的支持, 特别是大大减少了软件的开发和维护成本。

参考文献

[1]杨芙清, 王千祥等.基于复用的软件生产技术[J].中国科学:E辑2001, 31, 4:363-371.

[2]Souza D D, Wills A.王慧, 等译.UML对象、组件和框架—CATALY-SIS方法[M].北京:清华大学出版社, 2004:3-32.

[3]Szyperski C, Pfister C.WCOP’96 Summary in ECOOP’96 Workshop Reader[M].Heidelberg:Verlag, 1997:127-130

[4]Sommerville I.高级软件工程[M].第7版.北京:机械工业出版社, 2004:440-459

[5]杨芙清, 梅宏, 李克勤.软件复用与软件构件技术[J].电子学报, 1999 (2) :68-75.

上一篇:动产善意取得下一篇:实体模型