admin 管理员组

文章数量: 1184232


2024年3月28日发(作者:mysql官方版)

第12卷第13期2012年5月 

科学技术与工程 

Vo1.12 No.13 May 2012 

1671—1815(2012)13—3235—04 

Science Technology and Engineering 

@2012 Sci.Tech.Engrg. 

计算机技术 

Net软件架构和设计模式在 

自动组卷系统的应用 

陈 辉 

(陕西交通职业技术学院 ,西安710018;长安大学电子与控制工程学院 ,西安710040) 

摘要为了在.Net平台上实现适应多种数据库和易于后期维护和升级的自动组卷系统,采用了多层软件架构及数据访问 

层的设计模式,并且应用c#语言实现了系统开发。通过引入三层构架和抽象工厂设计模式,系统能够便捷地切换多种数据库 

访问,增强了代码的重用性,有效地提高自动组卷系统的开发效率,并且便于后期软件升级。 

关键词 三层架构 软件框架 抽象工厂 自动组卷 

中图法分类号TP315; 文献标志码A 

软件架构(software architecture)是一系列相关 

提高了开发效率和代码质量,增强了软件的健壮性。 

的抽象模式 J,用于指导软件系统各个方面的设 

计。软件架构是一个系统的草图。软件架构描述 

1组卷系统的软件构架 

的对象是直接构成系统的抽象组件。各个组件之 在自动组卷系统中,包含了两个主要的模块, 

间的连接则明确和相对细致地描述组件之间的通 

分别是试题录入编辑模块和试卷创建编辑模块,系 

讯。设计模式 (Design pattern)是一套被反复使 

统采用了分层的软件构架,根据Microsoft推荐的分 

用、多数人知晓的、经过分类编目的、代码设计经验 

层式结构 』,共分为三层架构,从下至上分别为:数 

的总结。使用设计模式是为了可重用代码、让代码 据访问层、业务逻辑层、表示层。三层结构如图1 

更容易被他人理解、保证代码可靠性,常用的设计 

所示。 

模式有抽象工厂模式,建造者模式,原型模式,单例 

模式等等。 

Microsoft公司推出的.Net框架,具有多语言集 

成、多平台移植、开发效率高、部署简单及支持软件 

自动更新等特点,逐渐成为各类系统开发工具的首 

选 ]。在我院开发自动组卷系统中,应用了基于 

Net框架技术,采用了基于抽象工厂的软件设计模 

式和分层软件开发构架,灵活地使用多种数据库进 

行数据存储,便捷的组织分层开发和代码编写,也 

极大地便利了代码的修改和组织。在系统开发中, 

2012年2月27日收到 中央高校基本科研业务费 

图1三层软件体系结构图 

专项资金(CHD2010ZY012)资助 

作者简介:陈辉,男。陕西交通职业技术学院博士研究生。研究 

表示层主要是指与用户交互的界面,用于显示 

方向:计算机应用。E—mail:bfightch@qq.tom。 

数据和接收用户输入的数据 ,将用户输入的数据 

科学技术与工程 12卷 

传递给业务逻辑层,一般不包含任何实际的业务处 

理,在组卷系统中,表示层用于用户录入、编辑试题 

和用户组卷的窗体界面,表示层接收用户的输入, 

进行有效性验证后调用业务逻辑层模块进行业务 

保存到数据库中。在自动组卷系统中,DAL访问关 

系数据库SQLServer2005或者Access2003数据库, 

对数据库各种试题表和试卷表进行增删改查操作, 

DAL中的类与数据库表相对应,共有16个类,封装 

在类库项目中,供BLL调用。 

在自动组卷系统开发中采用了.Net框架基于 

三层的软件构架的第一个优点是开发小组中开发 

人员的分工更加明确。开发小组细分为三组,分别 

逻辑处理,例如,当用户输入填空题后,表示层窗体 

验证输入的填空题目是否包含预留的填空,用户是 

否输入匹配的试题答案。如果符合要求就会将试 

题封装为试题对象调用业务逻辑层对象处理。组 

卷系统中的表示层窗体如图2所示。 

》灞^l撖— 辩 m 

蠹罐Propert ̄es 

§搿gl丽 

纛灞se 《eReferer ̄es 

§App,config 

国AutoPa 尊国誊协 髂 

“秘CboDataScclrse ̄ ̄s 

国FormManagec.cs 

海 frmCholceEdit.cs 

翟ffmCho;ceMar,agerxs 

AutoPaperBLL 

frmCourseSeCcs 

《 Properties 

黧frmCreatePaper.cs 

澎§ 霉{ 

童霪frmDepa啪 魄“ 

固AIIQestlonMenage ̄.cs 

;… ChoiceMa ̄er.cs 

》{ lrmRllAdd. 

e婚“f瓣 鑫 嚣 es 

鎏ffrnF;llEd ̄.cs 

fmFillManager,cs 

≯溜 m 糍 嗡群 c暑 

{黔翌frmGeneralAdd cs 

镒FilfManager.cs 

孵委frmGeneralEd ̄cs 

Genera|Mat ̄tger.cs 

静翌fn'nGeneralManager.cs 

GeneraRypeManage ̄;cs 

瀛登b 如sifcAdd-cs 

镒Ju ̄cManager.cs, 

激翌螽刊H蓉t;cEd澈c5 

Kr ̄vledgeMan geF.c§ 

岛銎frrrdusficMenagerxs 

Questlor ̄ashManager,cs 

瓣 蔓 黔 爨 黛羹蔫萋………… 

s al Manager ̄ ̄s 

… 

图2自动组卷系统 

图3自动组卷系统 

表示层窗体 

业务逻辑层 

业务逻辑层(Business Logic Layer简称为 

BLL) 是表示层和数据访问层之问的桥梁,它代表 

应用程序的核心功能,负责处理数据层的数据,实 

现业务逻辑,例如,表示层接收用户录入的试题以 

后,调用BLL进行处理,BLL验证试题是否与数据 

库中的已有试题重复。在自动组卷系统中业务逻 

辑层采用类库实现,共包含11个类,程序编译,业务 

逻辑层的编译为动态链接库文件(.du文件)供表示 

层调用其功能。 

数据访问层(Data Access Layer简称为DAL)主 

要实现对数据的保存和读取操作,将存储在数据库 

中的数据提交给业务层,同时将业务层处理的数据 

进行三层业务的开发,通过系统分析,定义好各层 

次之间的接口,各个负责不同逻辑设计的开发人员 

就可以分散关注,齐头并进。例如界面设计人员只 

需考虑用户界面的体验与操作,业务逻辑的设计人 

员可以仅关注业务逻辑的设计,而数据库设计人员 

不需要考虑具体的业务逻辑,需要根据系统分析提 

供的数据访问接口进行具体实现。每个开发人员 

的任务得到了确认,开发进度就可以迅速地 

提高 。 

使用三层构建的第二个优点是灵活的数据库 

访问方式。目前在开发阶段使用的数据库系统是 

SQL Server2005数据库,但是考虑到该数据库是基 

于C/S的数据库,为了灵活的系统应用,我们在系 

统中内置可访问单机数据库Access2003的能力,只 

要在DAL中添加对Access2003数据库访问的接口 

实现就可以,如果不是三层结构系统的话,可能需 

要改很多代码,延长了开发周期。以此类推,如果 

以后需要添加对其他数据库的访问,是需要在DAL 

中添加相应的数据库的接口实现类即可,极大地便 

利了程序的升级和修改。 

三层构架的优点还在于增强了代码的重用 

性 ,不必为了业务逻辑上的微小变化而迁至整个 

程序的修改,只需要修改BLL中的一个函数或一个 

过程;增强了代码的可重用性;便于不同层次的开 

发人员之间的合作,只要遵循一定的接口标准就可 

以进行并行开发了,最终只要将各个部分拼接到一 

起构成最终的应用程序。 

2组卷系统的设计模式 

在自动组卷系统中采用的三层构架的软件设 

计,在三层框架的DAL中采用了抽象工厂的设计模 

13期 陈辉:.Net软件架构和设计模式在自动组卷系统的应用 

式,目的是可以很好地复用已有的系统,根据需求 

的变换使用的不同数据库。抽象工厂设计模式的 

概念是“提供一个创建一系列相关或相互依赖对象 

的接口,而无需制定它们具体的类”,在系统的DAL 

中抽象工厂模式的应用如图4,以试题和试卷对象 

为例说明。 

图4抽象工J模式的应用 

在抽象工厂模式中主要包含四类对象: 

(1)抽象工厂:主要功能是生产抽象产品,也就 

是生产试题、试卷等抽象产品。 

(2)抽象产品:主要功能是提供试题产品访问 

接口,也就是提供了试题、试卷等试题产品的数据 

访问接口。 

(3)实体工厂:主要功能是生产实体产品。在 

项目中有SqlServer和Access两种,分别生产试卷和 

试题等产品数据访问对象。 

(4)实体产品:主要功能是实现实际的功能。 

就是根据实体工厂创建的数据访问对象是SqlServer 

还是Access,分别实现不同的数据库访问。 

在自动组卷系统中,DAL层由四个具体的项目 

组成,如图5所示。 

在四个项目中AutoPaperDALFactory项目包含 

了抽象工厂和实体工厂,AutoPaperIDAL项目包含 

抽象产品,AutoPaperSqlServerDAL和AutoPaperAc- 

cessDAL项目是实体产品,四个项目共同构成DAL 

负责数据库访问,与实体类项目、BLL项目和表示层 

项目依赖关系如图6。在图中,AtuoPaperManager项 

目包含表示层,AtuoPaperBLL包含业务逻辑层,这 

两层与DAL之间的数据交换是AutoPaperM0dels项 

图5自动组卷系统DAL项目列表 

目中的实体类对象。 

AutoPaperManager 

/ \ 

AutoPape 。 s 

H Auto脚e LL 

T 

A t0PapedDAL

 

‘___

{ 

 A 幻PaperDALFac 。ry 

T 上 

AutoPaperDAL 

图6项目I司依赖关系图 

采用抽象工厂设计模式的目的是能够便捷的 

进行多种数据库访问,在自动组卷系统中,目前使 

用的数据库系统是SqlServer,并添加了对Access数 

据库访问的接口以及实现类,在软件开发使用中不 

同数据库的切换时采用.Net的反射机制,通过从 

App.config配置文件中读取配置信息,利用反射机 

制实现工厂方法,即动态创建方法。 

App.config文件的<appSettings>节的配置信 

息如下: 

<appSettings> 

<addkey=”DAL”value=”AutoPaper.SQLServerDAL”/> 

<!一一addkey ”DAL”value=”AutoPaper.AccessDAL”/一 

> 

</appSettings> 

在程序中通过如下方法动态创建数据对具体 

数据库访问的对象。 

private static readonly string AssemblyPath=ConfigurationManag— 

er.AppSettings_I lDAL”]; 

科学技术与工程 12卷 

public static AutoPaper.IDAL.IpaperDAL CreatePatients(){ 

stirng className=path+”.Paper”: 

合作开发的效率,增加代码的可复用度,提高对需 

求变更的应对能力,特别是后台数据访问层的引入 

可有效减少后台数据库变更带来的代码修改量,为 

自动组卷系统的开发提供了一个可复用的软件架 

构,同时为其它基于数据库应用系统开发提供借鉴。 

1甄

Assembly.Load(path).Createlnstance(className); 

return(AutoPaper.IDAL IpaperDAL) 

} 

通过在程序配置文件中添加两种数据库的访 

问字符串,通过切换两种访问字符串的有效性,就 

考文献 

可以在反射机制的作用下,动态创建用于不同数据 

库操作的数据访问层对象。 

在自动组卷项目中使用抽象工厂模式的主要 

优点是隔离了试题和试卷数据库访问类的生成,用 

镭..NET与设计模式.北京:电子工业出版社,2005 

2 Gamma E,Helm R,Johnson R,et a1.设计模式:可复用面向对象 

软件的基础.北京:机械工业出版社,2005;57—63 

3曹国民,陈根才,施文幸.基于.NET平台的电力生产管理系统 

户并不需要知道什么被创建。由于这种隔离,更换 

建模与实现.计算机工程与设计,2008;29(1):170—172 

4李白胜,肖晓萍.基于.NET框架的新型PACS系统设计.计算 

机工程与设计,2009;30(23)5503--5505 

5郝雯,艾玲梅,王映辉.三层结构软件框架扩展点实现方法. 

个数据库实现的具体工厂就变得相对容易。所 

有的访问具体数据库的实体工厂都实现了抽象工 

厂中定义的那些公共接口,因此只需改变实体工厂 

的实例,就可以在使系统从访问一种数据库切换到 

访问另一种数据库。 

计算机应用,2009;29(9):2541--2543 

6莫勇腾.深入浅出设计模式.北京:清华大学出版社.2006 

7王孝明,胡健,陆坤,等.基于.NET平台可复用软件框架的 

3结论 

通过在自动组卷系统中使用了.Net平台的三 

设计与实现.计算机工程,2004;30(22):76—78 

8候捷,陈硕.1ippman S B.C#Primer(中文版).武汉:华中科技 

大学出版社,2003 

层软构架和抽象工厂设计模式,能有效地提高团队 

Application of.Net Software Architecture and Design-patterns 

in Automatic Test Paper System 

CHEN Hui 

(Shaanxi College of Communication Technology,Xi all 710018,P.R.China; 

Schoal of Electrd and Control Engineering,Changhn University,Xi all 710040,P.R.China) 

[Abstract] In order to implement automatic test paper generation system which can adapt to a variety of databas- 

es and easy maintenance and upgrades in the late.This system development is used C#language.With the intro- 

duction of a three—tier architecture and abstract factory design pattern,the system convenient to toggle a variety of 

database access,enhance the reusability of the code,effectively improving the development eficifency of automatic 

test paper generation system,and facilitates later software upgrades. 

[Key words]three-tier architecture software frameworks abstract factory automatic paper 


本文标签: 系统 数据库 访问 工厂 开发