系统架构师论文-基于构件的软件开发

2019-10-26 20:59:15 浏览数 (1)

基于构件的软件开发

[摘要]

2007年上半年,我参加了某市信息办技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要为了支持某市党政机关专网的二期建设所开发设计的,它是一个在线式的远程服务平台。在项目的开发过程中,我充分的进行基于构件的软件开发,考虑到软件复用和以后的扩展等方面,文中介绍了构件平台的选择,几种COM构件的开发,平台的实现过程。基于构件的开发大大提高了软件的质量,缩短了开发周期。该项目现在已经完满完成,得到用户的一致好评。但现在看来,在开发过程中也出现了一些不足,文中就构件的划分和使用方面谈了自己的一些看法。

[正文]

2007年上半年,我有幸参加了某市信息办技术服务平台的项目开发,并在其中担任系统平台设计和部分开发工作,本项目隶属于某市党政机关专网(党政內网),是电子政务建设的一部分,市党政机关专网是政务信息化建设的基石,在市政务信息化建设和发展中具有举足轻重的地位,随着某市信息化建设的要求不断提高,要在下半年开展市党政机关专网的二期工程建设,二期工程覆盖的范围史厂,为了配合二期工程的建设,対此项目有较高的要求。 由于此平台是一个综合性的在线式基于WEB的远程技术支持平台,存储着核心信息数据,提供:任务发布和咨询,拓扑图咨询,机关代码咨询,软件支持下载,BBS, VOD视频教程等服务,功能的多样化,必然会在软件开发中出现重复开发的现象,所以在开发初期我从该系统的需求分析入手,着重考虑了软件复用,在开发过程中采用了基于构建的软件开发方法。我将软件设计为B/S结构,三层体系架构:用户界面层,应用逻辑层,数据库层。用户界面层考虑到用户的易用等方面,用的是浏览器(如IE等),通过ASP语言来实现同应用逻辑层构件交互;应用逻辑层来处理各种应用功能的实现,负责事务处理,主要通过使用COM组件方式实现,以构建形式进行设计开发,考虑到以后的扩展和软件的复用性,也可大大的提高了开发效率;数据库层用SQLSERVER来实现。 结合我部门的实际情况,我部门现有的各级软件系统都是基于WINDOWS系列平台,且开发人员対COM组件技术也比较熟悉,対开发语言VE6也很熟悉,在这里我选择Microsoft应用服务器的解决方案,用windows server2000作为应用服务器(它集成了 2MTS, ASP,IIS, MSMQ, COM, DCOM),确定使用Microsoft的COM组件技术来开发该平台。用SQL SERVER2000为后台数据库,用ASP IIS5. 0来架构网站。 由于COM组件既可以被嵌入动态WEB页面,还可以在LAN或桌面环境的VB,VC等应用中使用。另外该组件之间是彼此独立的。当应用需求发生变更时,可能需要更换中间层的个别COM组件,但并不影响其他组件的继续使用。组件具有若干対外接口(属性和方法),可以根据不同的应用需求,由选择的使用不同接口。即使不再使用某些接口时,COM组件本身仍然可以继续使用。同一 COM组件可以在不同的应用环境中重复使用。由于该系统以在线服务支持为主,主要包括了用户互交操作,资料输入,数值处理,数据存储等几个方面,我们依据平台的主要功能,为了节省开发时间和提高维护效率,我决定把公用的代码模块都作成了组件,例如把记录操作(如记录的删除,増加,修改等),数据库操作,咨询做成用户管理组件,把用户身份证和用户类型识别作成用户管理组件,把所有实现与数据库的连接作成连接组件,把用户的错误操作,与系统的互交出错等作成错误处理组件。対于各组件采用VB6余元进行编写并写成DLL文件,通过注册成为COM程序,供各个组件调用。在数据库连接方面,我们采用了 ADO技术。由于ADO采用了 OLE-DB技术,使能访问各式各样的数据并提高了访问性能。 在该平台开发过程中,主要设计和实现了以下一些COM组件: 1用户管理组件,包括身份认证功能. 我们主要定制COM组件用户管理组件USERCHECK。DU.进行用户管理处理。该组件主要完成两个功能:一是身份认证功能,主要是提供用户登录时验明身份,保证应用的安全性。二是根据用户所输入的帐户名确定该用户的类别。 因此,该组件具有两个接口,每个接口代表组件的某个属性或方法。対用户的登录请求作出相应得处理:如果是普通用户登录则转入普通用户平台,如果是管理员登录就转入管理员平台。 2咨询和提交值息组件 我们主要制定C 0 M组建Querysys. dll进行咨询和提交值息处理。该组件主要完成两个功能:一是提供咨询相关信息;二是提交相关值息。 该组件有两个接口,每个接口代表组件的某个属性或方法。如果用户的请求是咨询信息功能,则将咨询信息请求作出相应的处理,并将咨询结果集返回给用户。如果用户的请求是提交注册信息,则将提交信息请求做出相应处理,并将信息提交替式返回给用户。 3连接组件 我们主要定制COM组件conector.Dll,该组件主要完成与数据库的连接。该组件有一个接口,那就是确定数据源,一辺自动连接后台数据库。 4错误处理组件 我们主要定制COM组件Cerror. dll,该组件主要确定错误类集,该组件具有一个接口,主要是输出错误值息,方便用户排错。我们把编径好的组件,将其在MST中注册,并将其分布在服务器上,这样就可以在设计平台过程中进行调用这些组件了。在本系统中,我们通过以下几种方式把组件集成到系统中来: 1.是连接集成,即我们将组件直接嵌入ASP主页中,即在ASP脚本中通过set対象名server, creatobject (“类名”)来引用,使此二进制组件可以运行于服务器端。 2是容器集成,即如果一个组件需要调用另一个组件时,就在需调用的组件中引用另一个组件的方法。例如在使用咨询和提交信息组件时就需要先调用连接组件。 我们结合连接集成和容器集成两种方式来组缓系统,以登录界面为例,在客户端我们只提供两个输入项和一个提交信息的功能按钮,主要通过ASP来实现。在服务器端,主要根据用户输入的值息来进行相应得处理,这就要调用各种组件。如果用户用错误的帐号和用户名来登录,则系统调用用户管理组件,错误处理组件和连接组件,返回非法用户的信息。如果用户以合法的身份登录进入用户平台,这就要调用用户管理组件,连接组件。如果管理员以合法的身份登录进入管理员平台,也要调用用户管理组件,连接组件。 目前,该平台运行收到良好的效果,我们采用COM组件技术进行开发,减少了重复输入代码的工作,缩短软件的开发周期。同时,在进行系统维护时,我们只关心组件的接口参数,而不用再考虑组件内部的具体实现,提高了系统的可维护性。 在以后的工作中,如果我们要扩展某些功能时,也可以重复利用这些组件,提高了系统得可复用性。当然在开发过程中也总结了一些应该注意的问题,比如这次软件开发过程中,対构件开发过程的控制不够理想,究其原因是在划分构件时有所不当,划分时应该将版本变化相対同歩且一致的部分划分到同一个构件中去,这样每变更一次,就可以从构件上确定不同阶段软件的改动状况,也就是所谓的版本,这样可以在不同的版本上明确软件的整个开发进度,有效的控制了软件开发的过程,有益于系统的管理。

0 人点赞