非形式化下适用于医学构件库管理的模型设计
2010-09-09戴海伟张亚琦
戴海伟张亚琦
非形式化下适用于医学构件库管理的模型设计
戴海伟①张亚琦②
为满足医学构件库管理的要求,需要在传统的构件模型中增加分类及检索类属性,从用户对医学构件库的常用操作出发,采用多种非形式化方法对构件库进行结构化分析和建模,提出了一种能够满足医学用户对构件库多种操作需求的构件模型。
医学构件库;构件模型;框架;人工智能
基于构件的软件开发经实践证明已成为现代软件工程的必然趋势,构件库则成为基于构件复用的大规模软件开发的基础设施[1]。用户通过构件库管理系统可方便地检索、辨别、下载软构件并组装成应用系统;或利用构件提供的二次开发接口进行新的软件开发。利用已有的构件资源可大大提高软件生产率,也为系统的维护与修改带来方便。要建立优秀的构件库,构建合适的构件模型是第一步。因为医学软件工程开发的复杂性,所以本文采用非形式化方法对构件库进行建模,在此基础上提出适用于医学构件库管理系统的构件模型,并分析其可用性[2]。
1 典型构件模型简介与分析
构件模型是构件本质特征及构件间关系的抽象描述。它规定了构件接口的定义、构件与构件之间的交互机制及构件的运行管理属性;构件模型通常还提供创建和实现构件的指导原则。依据用户对构件的信息需求差异及构件模型不同的应用场景,可分为三种典型模型。
1.1 构件基本及分类属性模型
基本及分类属性模型试图以一种综合、宏观的方式来描述构件,使得构件易于被用户所理解或辨别,易于在库中被有效高效地分类、存储和检索。著名的REBOOT(Reuse Based Object-Oriented Techniques)模型就是其中之一[3],它通过刻面的方法从各个角度刻划软构件属性,来实现对构件的分类和检索,如该构件所提供的操作、操作对象以及与其它构件间的关系等。
1.2 构件联系及配合属性模型
构件联系及配合属性模型主要从构件交互的角度出发,重点描述构件的规约与组装方法。著名的3C模型就是用来刻画构件规约和组装的,它从概念、内容、语境三个部分来描述构件,通过抽象描述给出构件的内部属性;通过接口描述及操作语义描述刻画构件的功能;通过显式定义描述软构件相互之间接口和语义关系、构件之间的运行及依赖关系,给出软构件的外部属性。
1.3 构件的实现模型
构件的实现模型用于帮助人们决定如何用某种程序设计语言或以某种可执行单元的形式来实现构件。有代表性的实现级工业标准构件模型有CORBA、DCOM/COM和Enterpise JavaBean,三种模型各具特色,形成构成竞争与互操作并存的格局。
1.4 典型构件模型分析
3C和REBOOT是两个通用软构件抽象描述模型,它们为软构件描述提供了一个抽象模板,没有给出特定应用领域中的软构件的特定属性;实际的工业或医学构件模型则侧重于满足用户开发和使用需求,缺乏对构件语义的深入支持;现有的构件模型多从用户使用角度设计,缺少对构件库管理系统的满足。
2 构件库管理系统构件模型的分析
典型的构件库管理系统结构如图1所示,需满足用户入库、学习、检索、演化、组装和构件运行维护管理等需求[4]。由此出发,按层次分析构件模型属性。
图1 典型构件库管理系统结构图
2.1 支持用户入库、学习操作的构件属性
对于封装好的可执行级别构件,用户使用时必须明确构件的基本属性特征,以及要使用构件时需与之配合使用,构件模型中应该具有下列基本特性:
2.1.1 构件标识(ID): 构件唯一标识,字母数字组合;
2.1.2 构件名称(NAME): 构件中文名称;
2.1.3 功能描述(FUNCTION): 构件中文描述;2.1.4 制作者(PRODUCER): 构件的制作单位名称;
2.1.5 制作时间(FUNCTION): 构件的制作时间;
2.1.6 版本号(VERSION): 构件版本号;
2.1.7 适用操作系统(OPERATION-SYSTEM): 构件运行的操作系统;
2.1.8 构件规模(SIZE): 用构件代码行数量表示。
2.2 支持医学用户检索的构件库模型及构件属性
2.2.1 医学构件库建模分析
采用人工智能的知识表示方法对于医学构件库进行分面刻画[5]。这里借用语义网络表示方法,以节点表示软构件,连线表示节点间的关系,生成构件库语义网络拓扑图,采用环形显示方式,如图2所示。
图2 医学构件库拓扑图
框架表示法是一种结构化的知识表示方法,框架是一种集事物各方面属性的描述为一体,并反映相关事物间各种关系的数据结构。规则是已知的最好知识表示机制,关键词则为检索与分类提供必要条件。在构件库全集的语义网中,将构件依照某种共同特征(分面)进行组织与划分为以规则和关键词为标识的框架。
例如建立如下规则组:
规则1:该类构件用于构建系统运行的基本软件环境,覆盖从构件提交、组装、部署、更新的全过程中使用的医学工具构件。关键词:封装、提交、组装、部署、构架、集成等。
规则2:该类构件用于医学用户的日常办公,包括撰写格式化文书、作业和发送接收邮件等。关键词:文书、作业、拟制、标绘、传送、流转、通信录等。
规则3:该类构件为医学系统提供适用于不同格式、大小、实效性要求的文件的各类传输服务。关键词:长报文、短报文、断点续传、视频、实时等。
规则4:该类构件提供医学领域内的专用功能。
依据以上规则及关键词对构件进行分类,可得到如图3所示构件库的框架视图。不同的规则组可对应不同的构件库框架视图。
图3 医学构件库的框架视图
一个框架内部由若干个被称作“槽”的结构组成,每个槽又可被划分为多个侧面。框架的一般表示形式如下:
{框架名}
槽名1 侧面名1 值1,值2,值3 ……
侧面名2 值1,值2,值3 ……
……
槽名2 侧面名1 值1,值2,值3 ……
侧面名2 值1,值2,值3 ……
……
每个框架中的槽值可以是另一个框架的名字;同一级框架间也可能存在相互关系,因此形成了框架网络。例如:
框架名:{构件基础环境框架}
构件封装类:
构件打包: COMNPACK(构件标识)构件帮助制作: HELPMAKE(构件标识)构件交互类:
消息队列服务: MESSAGESVR(构件标识)
通知、公告类服务:ALERT、BULLETIN(构件标识)
构件组装类:
应用系统组装: ASSEMBLEAP(构件标识)
2.2.2 适用于医学构件库的构件属性
为适应以上构件库模型需要,对医学构件分类属性模型扩充如下:
(1)关键词(KEYWORD):用于检索和分类
(2)应用范围(SCOPE):共用服务;医学领域内通用;医学专业软件。
(3)构件类别(TYPE):客户端构件;服务类构件;医学数据库;医学应用系统。
(4)功能类别(CATEGORY):文书处理;传输;图形显示。
(5)其它规则对应属性类别(OTHERS)。2.3 支持医学构件演化的构件属性
使用方式(U S A G E):是否提供可二次开发接口,若有则展开二次开发接口列表(INTERFACELIST)
(1)INTERFACE1:接口名称;接口功能说明。
(2)INTERFACE2:……
2.4 支持医学构件组装的构件联系属性
(1)父子属性(CHILD-FATHER:有A,才有B;没有A,必无B):父亲构件的标识。
(2)本机强依赖(HOST-HARDDEPEND:该构件安装或运行的本机环境必须依托另一构件的运行):本机强依赖的构件的标识。
(3)本机弱依赖(HOST-WEEKDEPEND:该构件运行的本机环境若存在某一构件则具有某项功能;若不存在则该项功能缺失):本机弱依赖的构件的标识。
(4)网络强依赖(NET-HARDDEPEND:该构件安装或运行必须依托分布式环境下另一构件的运行):网络强依赖的构件的标识。
(5)网络弱依赖(NET-WEEKDEPEND:该构件运行的分布式环境中若存在另一构件则具有某项功能;若不存在则该项功能缺失):网络弱依赖的构件的标识。
(6)安装冲突(SETUP-CONFLICT:若本机已安装另一构件,则该构件无法安装):安装冲突的构件标识。
(7)运行冲突(RUN-CONFLICT:若本机已运行另一构件,则该构件无法同时运行):运行冲突的构件标识。
2.5 支持医学构件运行管理的构件管理属性
(1)构件使用协议种类(PROTOCOL);
(2)构件使用端口号(PORT);
(3)安装后加载服务名称(SERVICESNAME);
(4)运行后的日志路径(LOG-PATH);
(5)构件运行时对机器资源占用级别(OCCUPANCY):高、中、低。
3 医学构件模型的应用
3.1 基于构件的语义检索
在用户对所需医学构件功能名称较清楚的情况下,可直接输入关键词进行检索,通过模糊查找可定位到相关医学构件集;当用户对构件功能并不明晰时,可从医学构件库的框架划分出发,逐步缩小检索范围,结合框架内部槽值进行检索或浏览,选取医学构件。
3.2 基于联系的组装和演化
用户在选定某一构件后,通过构件的联系属性自动关联获取与之相关的强、弱依赖构件,通过组装工具组装成为医学应用系统,并自动对系统进行内部构件的冲突性检测,保证组装系统的可部署、可运行。同样,用户也可通过定位到具有二次开发接口的医学构件框架,在医学构件上进行演化。
4 结论
文章总结的医学构件描述内容大部分已在实践中得到认可,能够满足医学构件库管理系统的需求。但从系统体系结构角度来讲,该模型有待丰盈。例如考虑系统可靠性保证因素,构件的关键度、复用度及复杂度等参数属性未能在上述模型中涉及,可作为下一步研究方向。
[1]李基鸿.基于可复用构件的软件复用技术[J].山西煤炭管理干部学院学报,2004,17(3):109-110.
[2]张秋余,张冬冬,翟志万.特定领域软件复用技术的研究与应用[J].计算机工程与应用,2004(12):213-216.
[3]Hafedh M.Reused-base Software Engineering-Techniques Organization, and Controls[M].北京:电子工业出版社,2004.
[4]边小凡,朱建林,王倩.形式化方法对构件库管理系统支持的探讨[J].电子技术应用, 2006,32(4):22-25.
[5]徐正权,骆婷.异质可复用软构件属性模型[J].计算机应用研究,2000,17(3):48-51.
Design of component model for management of medical component library by informal means
Dai Haiwei, Zhang Yaqi
To meet the needs for management of medical component, we need to add some attributes to traditional component model for classification and searches. The paper starts with the users’ common operations, adopts several informal means to analyze and modeling component warehouse into framework. Finally, we put forward a component model to meet the needs of the users.
Medical component library; Component model; Framework; Artificial intelligence
1672-8270(2010)01-0004-04
TH 772
B
戴海伟,女,(1964- ),大学本科学历,毕业于北京大学分校应用数学系数理统计与软件专业,高级工程师。现就职于中国医学科学院肿瘤医院设备处,从事计算机软件开发和数据统计工作。
2009-11-15
①中国医学科学院肿瘤医院设备处 北京 100021
②中国电子设备系统工程公司研究所软件中心 北京 100141
China Medical Equipment, 2010,7(1):04-07.
[First-author's address]Tumor Hospital, Chinese Academy of Medical Sciences, Beijing 100021, China.