首页 > 文章中心 > 软件设计与开发

软件设计与开发

软件设计与开发

软件设计与开发范文第1篇

6)不断的测试软件与程序具有的可操作性,对出现的问题进行编写与校正。7)按照用户对软件的反馈,不断完善软件中存在的不足。

(3)自动化的系统开发技术自动化的系统开发技术与上述两种开发技术进行对比,该种技术具有较强的便捷性。主要运用较多4G技术,以软件需要的功能以及软件开发工具为基础进行开发与设计。在运用自动化的系统开发技术人员仅需要确定软件具体的内容以及功能,就可以较好的对软件进行程序上的编写。而后,该项系统就会自动的进行编码设计以及分析,完善对软件的开发与设计工作。所以,自动化的系统开发技术对计算机软件的开发与设计所需要遵守的原则与要求都非常严格。

4结束语

对于软件进行开发的人员需要明确计算机软件开发要点、开发设计原则以及先进的开发技术,灵活的运用原型化的开发技术、生命周期开发技术以及自动化的系统开发技术,从而较好地保障其开发出的计算机软件具有实用性以及可操作性,较好地满足国民对计算机软件的需求,跟上自动化、智能化的发展步伐,为我国经济和国防建设的飞速发展保驾护航。

软件设计与开发范文第2篇

随着计算机技术的广泛应用,越来越多的学校都已经实行多媒体教学。多媒体软件也雨后春笋般的涌向了市场,国家为了发展高科技产业,一些优秀的IT企业开发了很多高品质的多媒体教学软件。但是由于软件还处于一个成长阶段,很多应用还不能真正满足社会需求。所以,对多媒体教学软件的设计和开发过程进行分析,从其中发现问题并针对性的提出解决问题的策略来提高教学质量。

1 多媒体教学软件的设计思路

1.1 对教学目标进行准确分析

在进行多媒体教学软件开发之前首先要做的工作就是要对教学目标进行准确的分析,编写出高质量的脚本以适合计算机运行,还需要调动学生的学习积极性。需要指出的是在进行教学目标分析时,应该把计算机科学知识和文化知识作为主体来传授给学生,不仅丰富了课堂教学内容,而且也能将教学方式和教学内容合理的联系在一起。

1.2 多媒体教学软件的内容要精挑细选

由于多媒体软件教学是一种开放式的教学方式,教材内容可以说是五花八门。但是作为教学软件其本身具有一定的系统性,内容要精挑细选,教学内容的编排是否合理都会对教学成果有非常大的影响。在传统教学模式中可以发现,老师作为教学的主体,学生被动的接受教学内容。无论什么课程,一本好的教学参考书不仅能够减轻老师的负担,更重要的是让学生的学习效果有所提升。然而对多媒体教学来说就更是如此了,优质的教学内容能够激发学生的学习兴趣,对整体教学质量都有很大的帮助。

1.3 多媒体软件教学内容的提炼和升华

从计算机软件设计和开发的角度来看,教学软件的设计和开发与其他软件的设计和开发区别不大,但是重要的一点就是教学软件的开发目标是利用多媒体技术去实现预期的教学目标,提高教学质量。多媒体软件教学的内容主要由任务性内容和概念性内容组成,任务性内容一般是把几个相关的概念联系在一起,注重的是对概念的理解;概念性内容主要是对概念进行深刻阐述。无论对于哪种教学内容,老师都需要对教学内容进行提炼,不能像传统教学模式中单一的向学生灌输文本、图形等教学信息,而是结合计算机将提炼的教学内容生动形象的传授给学生。一个善于提炼教学内容的老师将直接影响到教学成效。

1.4 教学模式的合理选择

对教学目标进行合理分析,然后结合多媒体教学内容选择相应的课堂教学模式,对不同学科可以采用不同的教学模式。大体上可以分为游戏型、问题解答型、探索型与演讲型,合理的选择教学模式将会对教学效果产生直接的影响。

1.5 课件的设计和编写

完成教学目标分析和教学内容挑选后,最重要的一步就是课件的设计和编写。要实现教学目标首先要完成的就是课件的设计,但是课件的设计又离不开教学内容、教学模式等因素。对于这些课件的编写要由资深专业的老师去完成。他们需要将教学内容进行合理的划分,把划分后每个单元中的知识内容合理组织起来,然后试图决定采用什么样的教学模式进行教学,用逻辑屏幕将每个单元中的知识点进行统计,详细编写出每个知识点在屏幕中所表达的内容,再将原始的图形进行编辑制作。

对于课件的设计和编写要遵循一定的原则,首先要能够吸引老师和学生,激发学生学习的兴趣;要能简洁明了的阐释教学内容和教学目标,在教学过程中逐一的突出重点和难点;能够充分发挥学生的能动性,主动提问,及时向老师反馈学习过程中遇到的困难;教学软件的界面操作要简单话,能够给人一种亲切感,学生随时可以从中搜索到想学习的内容;最后要充分利用屏幕的空间对教学信息进行合理的布局,突出重点。

2 多媒体教学软件设计和开发过程中存在的一些问题分析

2.1 教学软件的内容选取非常草率

对市场大量的教学软件进行调查后发现,很多教学软件内容过于肤浅,彼此之间相互抄袭,内容选取也非常的草率,甚至偏离了教学的目标。尽管多媒体教学软件能够将教学内容生动形象的展示给学生,老师和学生也表示非常愿意接受这种新的教学方式,但是对于教学软件内容的选取也是考核一个老师是否专心研究教学内容。多媒体教学软件相比较传统教学来说是一个新事物,很多人盲目的去开发一些多媒体课件,几乎不考虑所选内容适不适合多媒体,造成了市场上有大量的互相抄袭的重复多媒体课件。

课件的好坏一种最重要的决定因素就是选题了,选择合适的题材内容且适合多媒体形式来展示教学内容是制作高质量的课件的前提,在选题的时候要充分利用多媒体的优势,去解决在传统教学模式课堂上难以解决的一些问题。在制作课件之前一定要对教学目标进行分析,草率的选取教学内容将会极大影响教学质量,所以,要把选题教学软件设计开发的首要任务。

2.2 教学设计没有受到重视,脚本编写易出现一些问题

教学设计是整个设计开发过程中的核心,是连接理论教学和实践教学的中间桥梁。教学设计的最终目的是为了合理的规划教学活动、给学生们提供最后的学习氛围并让他们获得最佳的学习效果。教学设计主要体现在课件的框架结构上,所以教学设计是制作出高质量教学软件的重要步骤。然而在实际设计开发过程中,这个中间桥梁没有受到高度重视,可能是专业人员的疏忽,最终无法得到最佳的设计方案。

在实际编写脚本的过程中需要注意一些问题:首先是把模块设计和结构设计分工做好,为后期的工作做好准备,提高开发效率,减少不必要的重复性工作;其次是把局部设计和总体设计相统一,学习者能够借助多媒体进行自我学习;最后需要注意的是要创建一个良好的用户界面,这就好比一闪美丽的窗户,是学习者能不能获得最佳视觉效果和视听效果的关键因素。

2.3 多媒体教学软件的评价体系不完善

做好教学设计和脚本的编写工作后,最后一个重要的阶段就是教学软件的评价过程。评价过程是软件设计的结束,但是也是软件真正开发的开始阶段,目前对软件的评价主要从三个方面来考核:教学目标的进展情况、技术要求是否达到、能否达到预期的教学指标。另外评价通常由组织评价、自我评价和过程评价三个部分组成。由于目前参与教学软件设计和开发的人员不够专业,评价体系也相对来说不够完善。因此,很容易对教学软件的开发阶段产生一定的影响。

软件设计与开发范文第3篇

关键词 :网络课程;案例;树型结构

中图分类号:G642 文献标识码:B

1引言

在开放教育和远程教育中,网络教学正被越来越多地使用,开发适用于网络教学的高质量的网络课程已经成为发

展网络教育的一个非常重要的课题。

《现代远程教育技术标准体系和11项试用标准(简介)》中对网络课程进行了定义。网络课程是通过网络表现的某门学科的教学内容及实施的教学活动的总和,它包括两个组成部分:按一定的教学目标、教学策略组织起来的教学内容和网络教学支撑环境。

“软件工程”课程是本科计算机专业的一门重要课程。在当前的教学中,特别是开放教育和远程教育中还存在着很多欠缺,案例太少,或者各章中的案例相互割裂,使得学生学完该课程之后无法形成整体的软件工程概念和思想。因此设计和开发贯穿整个教学过程的案例成为“软件工程”网络课程的必然选择。

2 “软件工程”网络课程的教学内容设计

2.1以案例为中心

当前的计算机相关专业实践教学环境存在诸多薄弱环节,特别是在软件工程教学中,很难为学生提供一个全面的感性认识。而当前的教学是离散的过程,没有提供一个完整的商业软件的实例来讲解商业软件开发的全部过程。经过调查研究、综合对比和专家论证,我们选择了某

软件公司的商务软件“应急系统”作为整个软件工程网络课程的案例。选择该软件的原因是该系统在Windows平台上基于C++开发,而C++是大部分计算机科学与技术专业的学生都学习过的第四代开发平台,不足的地方是部分学生不了解应急系统。在教学内容设计中我们先对此公司“应急系统”的相关知识作了简单介绍,然后把软件工程的各个阶段与该软件的相关内容进行了一一映射和组合,公开了大部分相关设计和源代码。

2.2兼顾面向过程和面向对象

当前软件设计与开发的手段一般采用面向过程和面向对象这两种方法。虽然“应急系统”是采用面向对象方法设计的,但是我们补充了面向过程的设计内容,这样学生通过比较,既能熟悉和了解面向过程和面向对象的设计方法,又增强了理解,从而获得了比较好的教学效果。

3网络课程支撑环境的设计

3.1总体结构

系统设计应由上而下进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是在系统分析的基础上,将整个系统划分为若干子系统,子系统则由若干模块组成。数据的存储以及整个系统实现等方面都进行了合理的安排。图1所示为“软件工程网络”课程开发与设计的总体结构图。

3.1系统开发平台――Dorado MVC架构

Dorado全称“Dorado Web应用开发套件”,包含:Dorado Web UI控件集及UI引擎(Dorado Web UI Components and UI Engine),Dorado可视化集成开发工具 (Dorado Studio),Dorado MVC开发框架和Dorado Web应

用框架。其中Dorado MVC开发框架的主要功能有:提供类似Struts的MVC开发框架,以便更加方便地利用Dorado套件进行基于MVC架构的开发;提供性能监控控制台,可以方便地对系统运行过程中各功能点的运行效率进行统计和分析;支持国际化资源配置;支持模块化配置。Dorado MVC开发框架是一个可选件。Dorado套件完全支持各种第三方开发框架,如Struts、WebWork等。我们利用Dorado与目前较为流行的Struts+Hibernate+Spring进行协同开发。

3.2系统主要模块算法与设计

(1) 集合混淆算法

客观题测试用于学生自测。题目是随机排列的,顺序与数据库的存储顺序不同,它使用了Java.util.Collections中的shuffle(List list)方法来实现,下面是其在JDK 6.0中的算法和代码。

使用指定的随机源随机更改指定列表的序列。所有序列更改发生的可能性都是相等的,假定随机源是公平的。

此实现向后遍历列表,从最后一个元素向前一直到第二个元素,将随机选择的元素重复交换到“当前位置”。元素是从列表中随机选择的,从第一个元素运行到当前位置。

此方法以线性时间运行。如果指定列表没有实现RandomAccess接口并且是一个大型列表,则此实现在改组列表前将指定列表转储到该数组中,并将改组后的数组转储回列表中。这避免了二次型行为,该行为是因为在适当位置改组一个“有序访问”列表而引起的。

private static Random r;

public static void shuffle(List list) {

if (r == null) {

r = new Random();

}

shuffle(list, r);

}

public static void shuffle(List list, Random rnd) {

int size = list.size();

if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) {

for (int i=size; i>1; i--)

swap(list, i-1, rnd.nextInt(i));

} else {

Object arr[] = list.toArray();

// Shuffle array

for (int i=size; i>1; i--)

swap(arr, i-1, rnd.nextInt(i));

// Dump array back into list

ListIterator it = list.listIterator();

for (int i=0; i

it.next();

it.set(arr[i]);

}

}

}

(2)DES加密算法

由于客观题的随机排列,使得试题的排列次序与数据库中有所不同。同时,考虑到通过逐条在数据库中查询来校验答案对数据库的压力过大,所以事先查询出试题的答案,然后根据打乱后的试题次序把正确答案拼成一个字符串,然后加密放到页面的隐藏域中。这样一来,当提交试题查看结果时不用再次查询数据库,只要把答案字符串解密,然后分割成数组校验即可。

这里的加解密采用了DES算法。

DES算法的入口参数有三个:Key、Data、Mode。其中Key为8字节共64位,是DES算法的工作密钥;Data也为8字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位),作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点。数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。

下面是加密算法的部分代码(解密原理类似):

public class DesEncrypt {

private Key key;

/**

* 根据参数生成KEY

*

* @param strKey

*/

public void getKey(String strKey) {

try {

KeyGenerator _generator = KeyGenerator. getInstance("DES");

_generator.init(new SecureRandom (strKey.getBytes()));

this.key = _generator.generateKey();

_generator = null;

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 加密 String明文输入,String密文输出

*

* @param strMing

* @return

*/

public String getEncString(String strMing) {

byte[] byteMi = null;

byte[] byteMing = null;

String strMi = "";

BASE64Encoder base64en = new BASE64Encoder();

try {

byteMing = strMing.getBytes("UTF8");

byteMi = this.getEncCode(byteMing);

strMi = base64en.encode(byteMi);

} catch (Exception e) {

e.printStackTrace();

} finally {

base64en = null;

byteMing = null;

byteMi = null;

}

return strMi;

}

/**

* 解密 以String密文输入,String明文输出

*

* @param strMi

* @return

*/

public String getDesString(String strMi) {

BASE64Decoder base64De = new BASE64Decoder();

byte[] byteMing = null;

byte[] byteMi = null;

String strMing = "";

try {

byteMi = base64De.decodeBuffer(strMi);

byteMing = this.getDesCode(byteMi);

strMing = new String(byteMing, "UTF8");

} catch (Exception e) {

e.printStackTrace();

} finally {

base64De = null;

byteMing = null;

byteMi = null;

}

return strMing;

}

(3) 章节维护算法

本网络课程中的课程章节、目录均为树形结构,其数据模型采用了树的模型,然后通过递归从根开始逐层遍历显示每个节点,便于导航学生学习。

下面是显示树形结构的代码,由于树形结构的显示使用了ExtJs(Ajax)框架来渲染,所以代码最终将产生JavaScript代码的字符串,交由ExtJs框架完成最后显示工作。

public String getExtTreeString(String prexHref ,String target ,boolean allowEdit ) {

......

//查询根节点(包含子节点层次)

Course rootWithHierarchy = treeNodeDao. getTreeRootWithHierarchy();

StringBuffer rootInfo = new StringBuffer();

//构造ExtJs的树形代码

appendInfo(rootWithHierarchy , rootInfo);

StringBuffer treeInfo = new StringBuffer("new Ext. tree.AsyncTreeNode(" + Constants.PLACEHOLDER + rootInfo + ")");

return ExtUtil.formatExtStr(treeInfo);

}

private void appendInfo(Course node , StringBuffer buf){

if(node == null) return ;

//如果是叶子节点,构造叶子信息

if(node.getIsLeaf()) appendLeaf(node,buf);

//如果是目录,构造目录信息

else appendFolder(node , buf);

}

private void appendFolder(Course node , StringBuffer buf){

buf.append(",{text:'" + node.getText() + "',");

if(allowEdit){

buf.append("href:'"+prexHref+node.getId()+"',");

buf.append("hrefTarget:'" + target + "',");

}

buf.append("id:'" + node.getId() + "',");

buf.append("leaf:false,");

buf.append("children:[" + Constants.PLACEHOLDER);

//遍历子节点,构造子节点信息

for(Course child: node.getChildren()){

appendInfo(child , buf);

}

buf.append("]}");}

private void appendLeaf(Course node , StringBuffer buf){

buf.append(",{text:'" + node.getText() + "',");

buf.append("id:'" + node.getId() + "',");

buf.append("iconCls:'user',");

buf.append("href:'"+prexHref + node.getId() + "',");

buf.append("hrefTarget:'" + target + "',");

buf.append("leaf:true");

buf.append("}");

}

从上述代码中可以看出,首先找出(包含子节点信息的)根节点,然后通过appendInfo方法来产生ExtJs的JavaScirpt代码,appendInfo会根据节点类型(叶子或目录)来调用appendLeaf或appendFolder方法,其中appendFolder首先生成该目录的信息,然后逐个显示子节点信息,子节点又会调用appendInfo方法。就是这样递归的调用,形成了最终的字符串,然后通过服务器传到表现层,通过ExtJs来显示整棵树。

4结束语

我们在设计和开发“软件工程”网络课程时,采用基于案例的教学内容设计,同一个案例贯穿所有章节,增强了学生对知识点的掌握和理解。开发环境采用Dorado MVC架构(Struts+Hibernate+Spring),获得了好的效果。这种开发模式与传统MVC的开发模式比较,其最大的优势在于可以节省开发人员在开发Web应用表现层式的工作量,同时又为用户提供非常友好的交互界面。

从表1中可以看出,本文采用的方法在开发工作量、用户界面、软件可扩展性等三个方面都具有相当大的优势。

本网络课程的设计和开发是从教学内容和网络教学支撑环境两个方面展开的,已在教学中使用一年,收到了较好的教学效果。特别是课程章节采用树型结构,使得学生在自主学习的过程中获得了更好的导航效果,提高了学习效率。下一步的工作是多增加艺术性方面的内容,尤其是媒体素材设计方面。

参考文献:

软件设计与开发范文第4篇

无锡尚沃生物科技有限公司开发了应用于呼吸系统检测仪器“纳库仑一氧化氮分析仪”,产品在投入市场后,发现儿童在使用仪http://器时与成人有很大的不同,存在不配合性、数据采集时间不同等情况。企业急需一套能够被医疗兼容,又能够让不同年龄段的儿童适用的软件。根据企业提出的相关业务需求,并且为配合医疗仪器的使用,开发制作的侧重点在于开发出一些适合于儿童,并带有简单游戏性质的故事情节的游戏软件。为此,我们选择了visual studio 2010下的wpf(windows presentation foundation)技术。本文对wpf以及wpf在项目中的实际运用进行了介绍。

1、wpf体系架构及特点

wpf的全称是windows presentation foundation,是未来十年里windows平台gui开发的最主要的技术之一。它是微软开发的一款基于.net(目前最新版本为.net framework 4.0)平台的最新的软件界面显示系统。为用户界面、文档和多媒体等等,提供了统一的描述和操作方法。而相对于以往的通用编程方式gdi(graphics device interface),这个已经应用于十多年的技术在.net框架中已经被微软进行了多次的扩充,但是对它的种种扩充已经不能很好的满足当前软件开发中对越来越复杂、越来越趋向于完美的软件界面的需求,为了在完成相同界面时能够达到更好的效果,同时也为了能够满足下一代操作系统的兼容。wwW.133229.CoM为此,了这一新的程序界面开发技术。

1.1 wpf体系架构

wpf主要是由presentation framework、presentation core和mil core三层组件构成,它们是wpf的子系统。其中presentation framework、presentation core这两者是托管组件,而mil core却是非托管组件。而托管组件presentation core提供了像事件处理、布局等一系列的功能。在组件presentation core提供的基本功能上,组件presentation framework实现了wpf的各种外观,例如图像效果的实现、按钮控件的实现等.而非托管的mil core是以非托管代码来编写的,其目的是实现与directx的交互,从而来提高效率。体系架构中的user32、directx和kernel是windows子系统。如wpf应用程序运行过程图1所示。

1.2 xaml语言

xaml是extensible application markup language缩写,名为可扩展应用程序标记语言。从名称可以看出它是一种标记语言,也就意味着它具有其他标记语言所具有的诸多特点。 xaml是微软创建的一款新的描述性语言用来构建应用程序用户界面,即用来编写wpf(windows presentation foundation) 的应用程序。xaml引入了xml中的名字空间、属性等多个元素,即xaml是基于xml的。并且它和xml的使用方式很接近,所以对xaml来说它本身就是一个很好的xml文档。

在以往的程序编写中,我们常常为使内部数据与界面很好的联系在一起而大伤脑筋,而wpf提供了数据绑定这一有效的方法,从而很好的解决了这一难题。在xaml中使用数据绑定,而使用数据绑定的关键就是去创建system.windows.data.binding这样一个实例对象。当然,该对象也可以在c#中被创建。数据绑定其实是使界面显示的数据值与内部数据值保持相同,而数据绑定这一功能的使用,使得我们项目组的开发人员在很大程度上提高项目开发工作的效率。

1.3 microsoft expression blend

microsoft expression blend是一个全新的、全功能的专业设计工具,用于创造基于microsoft windows平台的易于使用且丰富的应用界面。使用它的首要和最终目的是作为一种可应用于wpf的设计界面工具。microsoft visual studio 可以与microsoft expression blend 完美的相结合在一起使用.expression blend 自动生成 wpf应用程序,也就是说,所显示的界面设计都可以由xaml代码来表示。当然,也可以将可扩展应用程序标记语言(xaml)导入到expression blend设计界面中。

2、wpf应用程序在实际开发项目中的运用

基于wpf的特点以及相关技术,本文创建了医疗辅助系统软件项目。下面介绍利用microsoft expression blend创建医疗辅助系统应用程序的基本过程。

(1)打开microsoft expression blend,并新建名为balloon的项目。

(2)我们进入了microsoft expression blend的工作区,打开工具箱,添加背景(backimage)图片、气球(balloonimage)图片、滑动轴(silder)控件、提示使用者检测失败的文本(txbfailed)控件和

转贴于 http://

成功的文本(txtsucessed)控件、移动路径([path])、设置下拉菜单(menuitem)、设置下拉菜单下的起始无效时间(startinvalid)控件和成功时间(succeedtimer)控件、开始按钮(btnstart)控件等。初始状态下令文本txbfailed控件可见,设计应用程序界面。

(3)microsoft expression blend将自动生成 windows presentation foundation (wpf)应用程序,是由 xahttp://ml代码来表示的。在成功的添加诸多控件的基础上,并在代码窗口里实现事件响应代码的编写。

(4)应用程序运行效果。开始检测时,进入游戏系统界面,点击设置下拉菜单(menuitem),设定下拉菜单下的起始无效时间(startinvalid)和成功时间(succeedtimer)的有效值,例如,起始无效时间为2秒,成功时间为5秒。点击开始按钮(btnstart),根据吹气时的气量大小,滑动轴(silder)左右移动。当气量小时,滑动轴(silder)向左移动,同时气球降落;当气量大时,滑动轴(silder)向右移动,气球上升。成功时间达到已设定的有效值时,提示使用者检测成功的文本(txtsucessed);相反,当成功时间未达到已设定的有效值时,提示使用者检测失败的文本(txbfailed),当儿童完成游戏的同时,完成了检测。利用microsoft expression blend技术可以使得wpf应用程序更加方便、更加出色的完成。

软件设计与开发范文第5篇

本文针对“程序设计”类考试的软件很难评价出一个人的项目开发能力的问题,以系统能够客观、真实、迅速的评价出一个人的项目开发能力为目标,采用.NET技术,C#语言和SQLServer直接存储,开发了一个软件工程师技能测评系统。该系统能够定向评测考生软件开发能力,改变了以往对评分题客观的“非对即错”模式,真实的反映考生的项目开发能力,缓解了社会对高水平项目开发者的急切需要,具有明显的社会效益和经济效益。

【关键词】NET技术 管理子系统 考试子系统 项目开发能力评测

网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,国内外已经有很多计算机“程序设计”类考试的软件,它们大多具有上机考试和自动评阅的功能,但受考试题型限制很大,通常采用客观题的形式,并对程序设计类试题的评分方法很不完善,往往是“非对即错”,并不能真实的反映考生的项目开发能力。为了能够客观、真实、迅速的评价出一个人的项目开发能力从而缓解目前社会急切需要具有高水平的项目开发者的问题,开发一套能够定向评测软件开发能力的测试系统对网络发展具有重要意义。

1 系统需求分析

本系统可分为管理子系统和考试子系统。主要用户包括考生和管理员。

1.1 对于考官功能如下

1.1.1 试卷管理

通过试卷管理可以制定多种组卷方案,在进行考试参数设置的时候,管理员可以选择使用其中的一套组卷方案。可以建立、编辑、浏览和删除组卷方案,试卷的生成、编辑、删除和打印等功能。

1.1.2 参数管理

考试参数包括考试标识、考试时间、监考密码、是否显示题号、是否显示成绩、设置考试场次等,可以对以上各项参数进行管理。

1.1.3 题库管理

题库管理的基本功能包括题型的管理、试题的管理,试题的统计。

1.1.4 基本资料管理

管理所有的考生的基础信息,包括考生信息的导入、导出、查看、编辑、删除等,导入功能提供从Excle表导入考生基本信息到系统数据库的功能,导出功能是将数据库中的考生导出到Excel电子表格文件中。

1.2 考生的基本功能如下

1.2.1 用户管理

提供了注册、登录以及基本信息的维护的功能。

1.2.2 参加考试

输入准考证号和密码进行登陆,登陆成功后跳转到客观题的说明页面,提醒考生答题规则。点击按钮可跳入答题页面,考生在答完一道题目后,单击“下一题”按钮,将会跳转到下一题目。单位时间内无论是否答完系统都会自动跳入下一题。答主观题时,考生在编辑代码的过程中,可以进行调试、编译、查看帮助文档等操作。在完成该题目后,点击按钮,该系统将会调用已写好的测试用例进行测试,并将得分情况提交到服务器,同时跳转到下一题目。

1.2.3 评分及查看成绩

在全部题目完成后,点击提交,系统会对客观题目进行判分,对操作题目除了给出评分外,还会给出一份考生项目开发能力的评测报告。

经过对本系统的开发需求进行全面分析,总结出该系统实现的主要功能包括:管理子系统的试卷管理、题库管理、参数管理考生基本信息管理和考试子系统的用户管理、参加考试、自动评分及查看成绩。

2 系统总体架构设计及功能模块设计

2.1 体系结构设计

.NET软件开发技能测评系统采用三层开发方式,基于B/S架构,三层开发即指数据持久层、业务逻辑层和表现层,表现层作用是显示业务处理结果,提供给用户交互接口,根据用户的请求调用不同的业务逻辑。业务逻辑层的作用是完成具体的业务逻辑操作,返回处理结果。数据持久层的作用是完成完成业务逻辑对数据库的访问。分层开发的目的是为了实现“高内聚、低耦合”。易于控制、易于扩展、易于分配资源。降低了应用程序开发和维护的成本,增强了系统的复用性,系统的扩展性大大增强。表现层采用的技术主要是,其特点是页面和代码分离,页面技术有HTML、Javascript和CSS以及服务器控件,交互逻辑处理主要由事件处理函数完成。业务层使用C#编写的类封装具体的业务逻辑和数据访问。模型层主要是对数据表的封装。

2.2 动态模型设计

根据需求分析,得出系统完成的主要功能包括:考官的试卷管理,参数设置,考生信息管理,题库管理;考生的用户管理,参加考试,评分及查看成绩。系统的总体功能结构图如图1所示。

2.3 数据库设计

本系统面向的用户主要是考生、和考官。对考生用户来说,最重要的是方便考生考试和成绩的查询。对于考官用户来说,最重要的是方便考试系统的管理和维护。这就要求数据库结构能够满足各种信息的输出和输入。在对考试系统进行系统设计的基础上,可以得到下面所示的主要数据项和数据结构:

2.3.1 管理人员表

包括的数据项有姓名、密码、权限等。

2.3.2 考生信息表

包括的数据项有姓名、性别、身份证号、工作单位、工作岗位、工作证号、考试科目、专业、职称等。

2.3.3 考生答案备份表

包括的数据项有姓名、身份证号、考试科目、试卷编号、试题类型、试题卷面题号、考生答案。

2.3.4 考生成绩表

包括的数据项有姓名、身份证号、考试科目、试卷编号、试卷名称、总分等。

2.3.5 考生答题状态表

包括的数据项有姓名、身份证号、试卷编号、试卷名称、考试科目、当前状态、开始时间等。

2.3.6 科目与专业表

包括的数据项有考试科队专业等。

2.3.7 单位信息表

包括的数据项有单位名称等。

2.3.8 试卷信息表

包括的数据项有试卷名称、试卷编号、考试科目、专业、单选、题数、单选题总分数、多选题数、多选题总分数、判断题数、判断题总分数、填空题数、填空题总分数、简单题数、简答题总分数、考试时间、考试开始日期、考试结束日期、卷面总分、试卷难度系数等。

基于需求分析,本系统使用面向对象的方法进行设计,主要方法是分析动态模型,并进一步得出最终的解决方案―类图。

3 系统实现

3.1 系统开发工具以及开发环境

本系统采用vs2008开发平台,数据库使用的是Sql Server 2008,测试及源代码版本管理采用VS开发环境集成的TFS工具。为了保证系统运行的效率和可靠性,系统服务器应该具有较高的软硬件配置,对于客户端来说,要求不高。

3.2 管理子系统的实现

试卷管理模块可以对组卷方案进行管理,也可以对试卷进行管理。题库管理模块可以对题型及试题进行管理。打开试题维护窗口,选择一种试题类型后,在试题维护窗口可以对试题添加、编辑、及查找。

3.3 考试模块的实现

输入准考证号,登录系统后即可参加考试,试题类型分为选择题、判断题以及主观题。选择题目主要是单选,考生答完后,系统会自动评分,客观题评分的主要依据是在数据库里把选项和正确答案保存后,用户的答案和题库里的正确答案比对,记录正确个数,根据每个题目的分值和正确个数评出选择题目和判断题题目的分数。为项目操作通过单元测试、UI测试、功能测试后,给考试出一份项目测试报告。点击“下载项目开发能力报告”按钮后,会下载一份word格式的能力评测报告。

4 结束语

以互联网为主要手段的现代远程教育己成为当今教育发展的趋势之一。在国内外,远程教育不断蓬勃发展。而题库系统更是远程教育的一大重要组成部分,因此,基于Web的题库系统的研究对于发展远程技术教育尤为重要。本系统还有许多新的问题需要解决,需要在实际应用中不断积累和完善。

参考文献

[1]郑阿奇.C#实用教程[M].北京:电子工业出版社,2008.

[2]胡海峰,赵阳.VB编程题自动评分系统的设计与实现[J].金华职业技术学院学报,2009(12).

[3]龚赤兵.Web开发新体验: 3.5 MVC架构与实战[M].北京:电子工业出版社,2009(09).

[4]洛伊(美)组件开发(影印版)[M].南京:东南大学出版社,2006(04).

[5]邓丽,孙风栋,张冬青.数据库原理与应用[M].大连:东软电子出版社,2010.

作者简介

贾跃(1979-),女,满族,辽宁省锦州市人。硕士学位。现为大连东软信息学院软件工程系副教授。研究方向为软件工程。