首页 > 范文大全 > 正文

数据结构学习系统需求分析与总体设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇数据结构学习系统需求分析与总体设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

[摘 要]本文借鉴计算机数据结构的相关理论研究文献,随着计算机系统软件的快速发展,作为计算机软件的核心数据元素,数据结构与算法的重要性日益凸显。数据结构学习系统是一种基于的数据结构学习平台,能够使用户能够不受时间和空间的限制对系统进行使用,学习者实现了完全自主化的学习,用户可以方便的对系统进行访问,为相关的实践工作者提供有益参考。

[关键词]数据结构;算法;数据元素;系统应用

中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2017)22-0102-01

1 引言

随着计算机技术日新月异的发展,程序可视化教学在教育和教学中已经显示了明显的优越性。所谓可视化教学,是指在计算机软件与多媒体技术的帮助下,将一些抽象、深奥、复杂的事物以及发展过程,用仿真化、虚拟化、实体化的方式,在教学方法中显现出来。可视化教学应用方便,可以使计算机学习者直观地观察、体验并利用这些可视化的知识模型,从而使计算机学习者较为轻松地进行课程的学习,对计算机学习者的认知能力与创新能力都会有较大的提升。

可视化教学应用于数据结构算法教学当中,可以改变传统教学方法中的枯燥乏味局面,吸引计算机学习者的注意力。可以将文字、数据、图片、源代码等其它多媒体动态地融合在一起,丰富算法的执行过程。可以让计算机学习者体会在大量不同的数据结构下,算法执行效率的差异。计算机学习者也可以充分的利用自己的课余时间进行自我学习,通过可视化教学软件研究算法的执行过程,培养计算机学习者自主学习的能力。

2 数据结构与算法系统的需求分析

传统的数据结构与算法教学方法中,有些算法的执行过程比较抽象,教师为了讲解一个算法往往需要辅助大量的图形示例。常规的板书和一般的幻灯投影授课均难以有效地展示这种抽象性和动态性,容易造成教学的低效和学时膨胀。有一些学校看到了弊端,苑⒊隽耸据结构教学网站供计算机学习者学习和交流;也有一些学校则开发出了可视化数据结构教学演示系统,将数据结构中算法的执行过程直观展示在用户面前。整体上看,这些系统在一定程度上促进了用户的学习,但还存在着一些不足,如系统以“教”为中心而设计,缺乏以用户为中心的人机交互理论的指导,学习者与软件的交互机会少且单一。因此,一个供用户自主设计算法,在实践环节上进行创新,提出自己的见解和设计,并得以验证,从根本上和底层次上深化对数据结构与算法的理解的学习平台的苑⒂任重要,互联网支撑的数据结构与算法学习系统将解决这个问题。系统能够让用户熟悉数据结构课程的核心理念,掌握相关算法内部的运行机制。本文在研究数据结构模块的基础上,将开发一个数据结构与算法学习系统,联动演绎各数据结构模块是如何有机结合的,并为用户提供自主设计算法的接口,这也是本系统区别于其他系统的一个创新点。

本文提出的数据结构与算法学习系统的设计目标为:系统良好的交互界面,包含数据结构各功能模块的算法演示,各模块详细信息查看,利用计算机图形界面技术,提供良好的用户界面。系统实现一系列数据结构的算法,用户能实时查看算法图形动态演示过程,并提供各算法和数据结构的详细中间结果信息,帮助用户进一步理解算法的执行过程和效率。系统不仅可以为用户展示数据结构算法的执行过程和中间结果,还提供编程接口让用户实现自定义算法,并对该算法进行测评,以图形界面的方式展示在用户面前。系统具备良好的稳定性,采用了多种安全机制确保服务器的稳定运行,保证了系统的安全可靠。充分运用面向对象的设计思想来设计系统模块,使其具有良好的扩展性,方便系统的后期维护和扩展。

3 数据结构的系统总体架构

系统采用典型的三层架构作为开发模型,本系统的三层架构主要划分为客户端、服务器端和服务资源层。系统客户端是一个浏览器,显示用户的使用界面,不同的用户通过浏览器向服务器端发送请求,然后接收服务器的返回信息展示在用户界面上。服务器层位于系统的服务器端,包含了数据库服务器和应用程序服务器,它提供了数据支持,实现了算法引擎和代码测评,算法引擎提供了经典算法的演示和用户自定义算法演示,代码测评负责对用户提交的源代码进行测试,并生成y试数据。服务资源层位于系统的服务器,它提供用户经典算法库和可视化类库,经典算法库包含了相关的代码以及算法演示的全过程,可视化类库提供用户的一些画图操作,让图形界面的演示更为美观。

优秀的系统必须能够满足系统的扩展和维护需求,数据结构与算法学习系统三层架构侧重于设计的简单化,简化客户端的功能,将复杂操作置于服务器端。系统的客户端,也就是浏览器层,仅仅用来显示用户工作界面和执行一些画图操作。系统的客户端是前台用户浏览器,显然,浏览器不会对测评系统产生任何影响,只要客户端浏览器支持环境就可以运行该系统,而目前的浏览器都对其进行了支持。不管客户端有多少不同种类和数目,都不会影响系统的完善和后期维护,这样就减轻了系统开发和扩展维护的难度。另一方面,系统服务器端承载了绝大多数的负载,基于此情况,服务器端的配置就必须要合理,后台服务器的一个小小的错误都有可能对系统测试服务造成不可预计的影响,因此,保证系统服务器端的安全稳定运行是十分关键的。

在本系统的三层架构中,利用基于面向对象的方法进行系统的苑,按照系统需求对服务器做了不同模块的划分,主要分为三个部分。分别是数据库、算法引擎和代码测评程序。数据库为用户提供数据支持,能够满足用户对数据的增加、修改、删除、更新等操作。算法引擎负责对算法进行解释,给用户提供算法的演示功能,并能够将用户按照系统要求编写的代码转变成图形方式展示在用户面前。代码测评程序主要对用户提交的源代码进行完整的测评,其中包括源代码编译,源代码测试和程序监控等。对于服务资源层,包括两大部分,分别是经典算法库和可视化类库。经典算法库包含了数据结构九大章节的数据结构模型和相关的算法,供算法引擎调用,在客户端上展示出来。可视化类库提供了一系列的数据结构画图操作,使算法的演示过程显得生动形象。

服务器层用分离可缩放结构,算法引擎部分与代码测评程序两者没有直接交互。本文设计的系统将算法引擎与代码测评分离开来,测评模块用多线程处理机制,极大的提高了系统的响应速度,双方通过数据库进行~合。这种结构的设计也使得测评模块的复杂性有所降低,首先,测评模块易于维护,不同模块的修改不会对其他的模块造成影响,其次,利于系统的负载均衡。如果算法引擎和代码测评在同一台服务器运行,当同时测试的用户比较多的时候,非常消耗服务器资源,容易照成服务器负载过重。用了分离可缩放结构,代码测评系统就可以单独的放在另外一台服务器上,专门负责源代码的测评工作,甚至可以放在一个集群上,有效地提升系统的运行效率。通过对系统进行分层,能够使得系统的各大模块之间没有强的Q合,彼此之间相互联系却不会相关干扰,使得开发过程方便快捷,对以后的维护和扩展也有着极大的好处。

参考文献

[1] 在线学习系统的设计与开发[J].李萍.电子世界.2013(13).

[2] 移动学习系统在操作系统课程中的应用研究[J].郭玲玲,富宇,尹晓矗苏冬娜,高俊涛.浙江交通职业技术学院学报.2013(02).

[3] 大学英语自主听说学习系统的应用研究――以顺德职业技术学院为例[J].王宾香.西南农业大学学报(社会科学版).2013(06).