一种基于段的全寿命开发方法
2015-05-08丁晨路王芳潇郭亮
丁晨路 王芳潇 郭亮
摘要:基于构件的软件开发方法,使得开发的重点从软件开发中程序代码的编写转移到对现有构件的组装上。本文提出了一种基于段的全寿命开发方法,通过对构件的封装形成段,继而通过组装工具,根据不同应用需要对段进行组合,从而形成可安装应用系统。本研究为实现快速构建系统提供了一种支撑手段。
关键词:软件复用;构件;段
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)07-0101-04
Abstract: component based software development method, causes the development focus from software development program code writing transferred to the assembly of the existing members of the. This paper presents a method based on the whole life development period, the formation period based on the component of the package, and then by the assembly tool, according to different application needs the combination of segment, thus forming can be installed application system. This study provides a support means for realizing rapid construction system.
Key words: software reuse; component; section
1 概述
自从软件危机爆发以来,如何提高软件开发效率、缩短开发周期、降低软件成本等问题成为学者们研究的热点。构件技术的出现是对传统软件开发过程的一次变革。构筑在“构件组装”模式之上的构件技术,使软件技术人员摆脱了“一行行写代码”的低效编程方式,直接进入“集成组装构件”的更高阶段。基于构件的软件开发(Component-Based Software Development, CBSD)[1],是指使用可复用构件来开发应用软件,强调通过可复用构件的设计、构造软件系统软件复用的一种基于分布对象技术。它可以更快地构建系统,将开发的重点从软件开发中程序代码的编写转移到对现有构件的组装上,这样就减轻了大型系统支持和升级时所需的维护负担,从而降低软件开发和维护成本。基于构件的软件开发以构件为核心,在需求分析阶段就采用面向复用的建模,增加了开发的并行程度,同时也大大提高了开发的效率。本文基于构件的软件开发方法,提出了一种基于段的全寿命开发方法,并将该方法用于项目的分析、设计和实现。
2 基于段的全寿命开发方法
2.1 构件封装—“段”的基本概念
我们将段定义如下:段是一组构件的集合,是按照统一规范对软件或数据进行特征描述和打包封装形成的相对独立的基本功能单元。通过应用系统组装工具,根据不同应用需要对不同段进行组合,形成段集合,从而形成可安装应用系统。其主要研究内容包括:
1)段的结构:包括段前缀、段的属性等。段前缀是段的唯一标识,由大写字母开头的大写字母和数字组成的字符串。段的属性包含了段的名称、版本号、开发单位、开发时间、段的依赖属性等相关信息。
2)段的分类:包括系统段、数据段、软件段以及数据库段。数据段是由若干构件组成,用于封装应用系统所需的各种公共或全局数据。软件段是由若干构件组成,完成业务的功能需求。数据库段分为物理数据库段、逻辑数据库段。物理数据库段用于创建、修改数据库及其表、约束和关联等;逻辑数据库段不具有创建新数据库的功能,仅用于在已有的数据库上创建/修改新的表、约束和关联。软件段、数据段和数据库段可以统称为子段。系统段是由若干软件段、数据段、数据库段等子段构成的段集合,用于构建可运行的满足特定需求的相对完整的应用系统。
3)段的开发:包括软件段的开发、数据库段和数据段的开发,可以采用各种编程语言和编程技术进行编程实现。
4)段的封装:根据实际需求,对需要的段进行组合、打包的过程。
5)段的安装/卸载:完成对段的封装后,将段部署到实际环境中的过程。
2.2 基于段的全寿命开发思路
基于段的全寿命开发思路(Segment-Based Life Cycle Development, SBLCD)是借鉴软件工程的基本过程和基本原则,通过在需求分析、总体设计、详细设计、系统实现等各个环节,采用“段”的基本思想,确定应用系统的系统段功能、构成和接口关系,然后对各个系统段分别进行开发,通过系统段的组装实现应用系统的一整套方法。使用段来开发应用软件,重点在于可复用构件的综合集成,强调通过系统段的分析、设计,构造出应用系统的技术。它可以快速地在新环境下部署,用户根据实际需求选择不同段的安装,以便更快地构建系统。
2.3基于段的全寿命开发过程
2.3.1 应用软件系统分解
在需求分析阶段,以面向复用的角度对需求进行建模,从用户的角度,建立业务模型,采用用例描述业务过程和规则,用参与者描述使用业务系统的人员、设备或外部系统,建立业务用例模型之后,对应用软件系统进行分解,确定所需系统段需求。
2.3.2 段的分析与设计
根据需求分析阶段确定系统段的需求,在此过程中需要界定各系统段的组成(软件段、数据段、数据库段);段之间的接口;并进行功能设计——软件段的设计;数据设计——数据库段的设计、数据段的设计;界面设计——系统段的设计。
2.3.3 段的实现
1)软件段的开发:将分析提取出的构件实现,简单来说就是形成.dll动态链接库文件
2)数据库段的开发:包括物理数据库段的开发和逻辑数据库段的开发。
3)数据段的开发:形成全局数据包。
2.3.4 段的封装
将软件段、数据库段、数据段打包形成系统段的过程。
2.3.5 段的安装/部署
对要部署的系统段、软件段、数据段、数据库段进行检查和验证,过程如下:
1)段的准备:检查所有需要安装的段是否都存在;检查每个段介质是否都完整;每个段的文件夹名称是否为“段前缀(段版本号)”形式;检查依赖段的前缀、版本号是否与实际段一致;独立安装每个段进行测试能否正常安装与运行。
2)段的导入:导入的目的主要是验证段是否正确,并且把段信息导入到配置与管理工具中,以便部署。
2.3.6 段的集成测试
在安装/部署完之后,对段进行集成测试。
3 应用实例
下面以一个医院管理系统为例,详细介绍该方法。
3.1 系统软件架构
在本系统中,我们引入三层结构的设计思想,采用构件化的开发方法,将系统业务逻辑封装在应用服务器上,客户端应用程序自动从应用服务器上下载和更新业务逻辑,达到“应用逻辑与程序代码分离,数据与应用分离,应用与流程分离”,最大化的支持业务的灵活开展。图2所示为系统软件架构。
系统采用三层体系结构设计。所谓三层体系结构,即表示层、业务逻辑层和数据访问层[2]。表示层主要指用户所使用的各分系统,也就是系统段,对用户来说,即用户所看到的界面,它要求尽可能的简单,使最终用户不需要进行培训或者说只需要进行简单培训就能方便地使用系统功能,进行操作;第二层是业务逻辑层,也就是中间层,所有的应用系统服务构件、应用逻辑、展现构件、数据服务等构件以及控制均在这一层,系统的复杂性也主要体现在业务逻辑层;最后的数据访问层中,数据库服务器存储着大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。
3.2 系统的实现
3.2.1系统段的开发
根据系统的架构,可以将应用系统分解为挂号管理系统段、医生工作站系统段、药房管理系统段以及收费管理系统段等。由于篇幅有限,下面以挂号管理系统段的实现为例,详细介绍系统段的开发过程。
1)挂号管理数据库段的实现
将挂号管理相关的表、视图、存储过程、触发器封装;
2)挂号管理软件段的实现
①首先,挂号管理模块被定义为一个工程项目,工程项目下面包含了多个软件段,我们采用模块化开发,将这一过程具体分解为挂号、查询统计、系统管理每个单独的子模块。
②开发用户界面的构件
采用Delphi7.0作为开发环境,它提供可视化设计视图来绘制用户界面。
③开发展现控制的构件
用户登录界面的表单动作,会指向一个展现控制的构件(属于该用户界面的依赖接口),该构件如图3所示。
4)开发运算操作构件
用户在登录时,需要进行权限认证,这需要访问数据库类连接文件,为了便于二次开发与移植,我们使用windows标准语言,将此服务构件做成动态链接库文件。建立数据库连接的流程图如图4所示。
从图中可见,第一步,进行初始化;第二步,程序读取IP地址信息,在这一过程中出于安全因素的考虑,需要对IP地址进行加密;第三步,根据获取到的IP地址封装进去,建立数据库连接。
5)构件测试与调试
编写好此构件后,进行单元测试。我们使用DUnit工具进行测试。
6)构件的提供接口注册
通过单元测试后,可以进行业务构件的接口注册,注册过程包括:
①为定义的接口指定对应的构件入口,这样,在调用这个构件接口时,会自动去调用相应的构件。
②定义的接口注册到系统的权限管理中,成为一个基本的操作权限单元,同时还可以指定具有该权限的用户的角色。
3.2.2系统段的组装
1)挂号管理系统段的组装
将挂号管理软件段、数据库段打包封装,并编写配置文件。
①挂号管理软件段的打包
将可执行文件register.exe、动态链接库文件.dll和源程序文件打包,制作安装程序。
②挂号管理数据库段的打包
a将公共数据相关的表、视图、存储过程生成.sql脚本文件。
b将挂号模块中相关的表、视图、存储过程打包,生成.sql脚本文件。
2)编写.XML文件,便于用户理解段的结构。
3)挂号管理系统段的部署和测试:对挂号管理系统段进行部署和测试,测试其基本功能。
4 结束语
随着信息化建设的全面推进,信息化技术仍处在一个快速发展的过程中,在今后相当长的时间内,软件复用技术和构件技术也将被进一步完善,本文提出的基于段的全寿命开发方法,将用户操作界面与业务逻辑算法的实现分离,提高了软件开发效率,提高了系统可维护性,为实现快速构建系统提供了一种支撑手段。
参考文献:
[1] Yang Fuqing, Mei Hong. Reuse Oriented Requirements Modeling[M]. Beijing: Tsinghua University Press,2008.
[2] Ren Yanfei. Application of MVC Design Model in System Devolopment Basedon ASP.NET[J].Science Mosaic,2008 (5): 159-161.