您当前的位置:首页 > 计算机论文>软件开发论文

论基于构件的软件开发

2015-08-15 11:00 来源:学术参考网 作者:未知

摘 要:2007年下半年,我参加了内蒙古自治区西部区**市一家三甲医院远程医疗会诊技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要是为了充分发挥医疗专家的作用,使他们能够为更多的普通老百姓看病而开发设计的,它是一个在线式的远程服务平台。在项目的开发过程中,我充分的进行基于构件的软件开发,考虑到软件复用和以后的扩展等方面,文中介绍了构件平台的选择,几种COM构件的开发,平台的实现过程。基于构件的软件开发大大提高了软件的质量,缩短了开发周期。该项目现在已圆满完成,得到用户的一致好评。但现在看来,在开发过程中也出现了一些不足,有待改进。随着构件技术的不断发展,标准的构件体系与规范化的建立,软件企业一定会迎来快速的发展。

关键词:构件;软件开发
  2007年下半年,我有幸参加了内蒙古自治区西部区**市一家三甲医院远程医疗会诊技术服务平台的项目开发,并在其中担任系统平台的设计和部分开发工作,本项目隶属于**市***三甲医院的专网,是医院信息化建设的一部分,在医院信息化建设和发展中具有举足轻重的地位,随着医疗市场的激烈竞争,充分面向社会推出自己的专家,对提高医院的知名度,提高医院的社会效益和经济效益具有很大的作用,因而医院对此项目有较高的要求。
  由于此平台是一个综合性的在线式基于WEB的远程技术支持平台,存储着大量信息数据,提供任务发布和查询,拓扑图查询,专家分类查询,软件支持下载,BBS,VOD视频等服务,功能的多样化,必然会在软件开发中出现重复开发的现象,所以在开发初期我从该系统的需求分析入手,着重考虑了软件复用,在开发过程中采用了基于构件的软件开发方法。我将软件设计为B/S结构,三层体系架构:用户界面层,应用逻辑层,数据库层。用户界面层考虑到用户的易用等方面,用的是浏览器(如IE等),通过ASP.NET语言来实现同应用逻辑层构件交互;应用逻辑层用来处理各种应用功能的实现,负责事务处理,主要通过使用COM组件方式实现,以构建形式进行设计开发,考虑到以后的扩展和软件的复用性,大大的提高了开发效率;数据库层用SQL SERVER来实现。
  结合我部门的实际情况,我部门现有的各级软件系统都是基于Windows系列平台,且开发人员对COM组件技术也比较熟悉,对开发语言VB.NET也很熟悉,在这里我选择Microsoft应用服务器的解决方案,用windows server 2003作为应用服务器,确定使用Microsoft的COM组件技术来开发该平台。用SQL SERVER 2005为后台数据库,用ASP.NET+IIS6.0来架构网站。
  由于COM组件既可以被嵌入动态WEB页面,还可以在LAN或桌面环境的VB.NET,VC.NET等应用中使用。另外该组件之间是彼此独立的。当应用需求发生变更时,可能需要更换中间层的个别COM组件,但并不影响其他组件的继续使用。组件具有若干对外接口(属性和方法),可以根据不同的应用需求,来选择使用不同的接口。即使不再使用某些接口时,COM组件本身仍然可以继续使用。同一COM组件可以在不同的应用环境中重复使用。
  由于该系统以在线服务支持为主,主要包括了用户交互操作,资料输入,数值处理,数据存储等几个方面,我们依据平台的主要功能,为了节省开发时间和提高维护效率,我决定把公用的代码模块都作成了组件,例如把记录操作(如记录的删除,增加,修改等),数据库操作,查询做成用户管理组件,把用户身份认证和用户类型识别作成用户管理组件,把所有实现与数据库的连接作成连接组件,把用户的错误操作,与系统的交互出错等作成错误处理组件。对于各组件采用VB6语言进行编写,并写成DLL文件,同时注册成为COM程序,供各个组件调用。在数据库连接方面,我们采用了ADO技术。由于ADO采用了OLE-DB技术,使能访问各式各样的数据并提高了访问性能。
  在该平台开发过程中,主要设计和实现了以下一些COM组件:
(1)用户管理组件,包括身份认证功能
  我们主要定制COM组件用户管理组件UserCheck.dll进行用户管理处理。该组件主要完成两个功能:一是身份认证功能,主要是提供用户登录时验明身份,保证应用的安全性。二是根据用户所输入的账户名确定该用户的类别。
  因此,该组件具有两个接口,每个接口代表组件的某个属性或方法。对用户的登录请求作出相应的处理:如果是普通用户登录则转入普通用户平台,如果是管理员登录就转入管理员平台。
(2)查询和提交信息组件
  我们主要制定COM组件QuerySys.dll进行查询和提交信息处理。该组件主要完成两个功能:一是提供查询相关信息;二是提交相关信息。
  该组件有两个接口,每个接口代表组件的某个属性和方法。如果用户的请求是查询信息功能,则将查询信息请求作出相应的处理,并将查询结果集返回给用户。如果用户的请求是提交注册信息,则将提交信息请求做出相应处理,并将信息提交提示返回给用户。
(3)连接组件
  我们主要定制COM组件Conector.dll,该组件主要完成与数据库的连接。该组件具有一个接口,那就是确定数据源,以便自动连接后台数据库。
(4)错误处理组件
  我们主要定制COM组件Cerror.dll,该组件主要确定错误类集,该组件具有一个接口,主要是输出错误信息,方便用户排错。
  我们把编译好的组件,将其在MST中注册,并将其分布在服务器上,这样就可以在设计平台过程中进行调用这些组件了。在本系统中,我们通过以下几种方式把组件集成到系统中来:
  一是连接集成,即我们将组件直接嵌入ASP.NET主页中,即在ASP.NET脚本中通过SET对象名=Server.CreateObject(“类名”)来引用,使此二进制组件可以运行于服务器端。
  二是容器集成,即如果一个组件需要调用另一个组件时,就在需调用的组件中引用另一个组件的方法。例如在使用查询和提交信息组件时就需要先调用连接组件。
  我们结合连接集成和容器集成两种方式来组装系统,以登录界面为例,在客户端我们只提供两个输入项和一个提交信息的功能按钮,主要通过ASP.NET来实现。在服务器端,主要根据用户输入的信息来进行相应的处理,这就要调用各种组件。如果用户用错误的账号和用户名来登录,则系统调用用户管理组件,错误处理组件和连接组件,返回非法用户的信息。如果用户以合法的身份登录进入用户平台,这就要调用用户管理组件,连接 组件。如果管理员以合法的身份登录进入管理员平台,也要调用用户管理组件,连接组件。
  我们采用COM组件技术进行开发,给我们带来了很大的好处,例如:减少了重复输入代码的工件,缩短了软件的开发周期;同时,在进行系统维护时,我们只关心组件的接口参数,而不用再考虑组件内部的具体实现,提高了系统的可维护性。在以后的工作中,如果我们要扩展某些功能时,也可以重复利用这些组件,提高了系统的可复用性。
  但在运行中,我们也发现了一此不足之处:由于在ASP.NET中运行的COM组件是二进制代码,当COM组件工作出错时,ASP.NET不能指出COM组件发生错误的具体位置,只能简单显示对象创建不成功。这样就给我们在调试该平台过程中增加了难度。 
  综上所述,经过整个项目组精心准备和严密实施,该项目现在已圆满完成,得到用户的一致好评。回顾项目的实施过程,我体会最深的是,随着基于构件技术开发软件的成功实施,我们在享受它带来的便利的同时,也要注重企业内部的构件积累。我想,随着构件技术的不断发展,标准的构件体系与规范化的建立,软件企业一定会迎来快速的发展。

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页