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
l
}
‘___
{
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
版权声明:本文标题:.Net软件架构和设计模式在自动组卷系统的应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711607076a602050.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论