资源描述
远程辅修学生自学系统的分析与设计姓 名: 学 号: 专 业: 计算机科学与技术 学 院:机电与信息工程学院指导教师: 辅导教师:起止日期:V摘 要随着科学的进步,社会的发展,利用网络进行远程教学已是教育界的一个趋势。随着网络教育的正规化,越来越多的人倾向于通过网络进行教育,如何充分发挥网络在教学领域的作用,成为一个重要而迫切的问题。本论文详细介绍了远程辅修学生自学系统的开发过程,包括设计过程、关键技术以及其成果。在开发过程中严格遵守软件工程的思想,按照需求分析、数据库设计、概要设计、详细设计、编码、改进和性能优化的步骤进行开发。该系统主要完成以下功能:教师维护教学课件,具体包括课件的在线设计与维护;学生选择课程自学,并对学生自学进度进行跟踪;学生笔记功能,学生在学习过程中可以做笔记,学生可以自己查询自己所作的笔记,教师可以查询所有学生所作的笔记;教师清除某门课程的所有学生笔记功能等。本系统不仅仅是在手段上搭起一个有助于提高教学质量、促进学生认知能力的技术平台,也希望以此为基础,作一个教学探索,引导师生从传统的教学观念上进行转变。关键词:互连网;ASP.NET;自学;WEBAbstractAnalysis and Design of Remote Student Self-study SystemWith the advancement of science and the development of society, the application of internet has become a trend in education field. Also with the standardization of the online education, more and more people have tended to be educated via internet, how to bring the role of the network into full play in the field of teaching has become an important and urgent problem.This thesis introduced the development process of the Analysis and Design of Remote Student Self-study System in detail, including the design process, the key technique and its results. Obey the thought of the software engineering strictly during the period of development, according to the need analysis, database design, essentials design, detailed design, code, improvement and the optimization of the function to carry on a development. This system is mainly to complete the following functions: Maintenance of teachers teaching courseware, including the online design and maintenance of the courseware; Students who choose self-study courses and self-study student progress tracking; Student notes function, students can take notes in the learning process and search their notes, teachers can find all the students notes; The function that teacher can clear a certain course of all students notes.This system not only is the technique terrace which takes to contribute to raising teaching quality and promotes the student cognition ability, but also hopes to take this as foundation, making a teaching investigate, leads the teachers and the students carry on a change from the traditional teaching idea.Key words:Internet; ASP.NET; Self-study; WEB目 录1绪论111 问题定义及内容简介112 课题调研与可行性分析1121 课题调研1122 可行性分析213 论文各章内容介绍22需求分析321 系统功能需求分析422 数据流图分析423 数据字典73系统设计931 系统的总体结构设计932 系统的开发与环境配置11321 系统开发方法11322 系统环境配置124详细设计1341 各功能模块详细设计13411 学生选课模块13412 学生学习模块14413 自学进度模块15414 笔记管理模块16415 教师课件维护1742 主要问题及解决方法18421 关于课程内容的编辑18422 关于文件、图片和影像的上传和显示20423 关于TreeView目录树跟数据库的链接显示23424 关于TreeView目录树节点的添加、修改与删除265结论及存在问题2951 系统特色2952 系统存在不足30致 谢32参考文献34远程辅修学生自学系统的分析与设计姓名: 学号: 班级:计算机科学与技术(X)班1绪论随着计算机和信息技术的发展,知识更新日益加快,已有的知识传播途径已经满足不了这种需求,迫切需要一种全新的知识传播方式,计算机网络技术的不断成熟和进步,使得基于计算机网络技术的远程教育成为可能。由此,计算机辅助教学正在进入一个新的阶段,即网络教学,是学习方法上的一次具有跨时代意义的革命。11 问题定义及内容简介目前远程教学平台的开发热点主要是集中于网上教学管理系统和教学支持系统的开发,对教学过程提供全面、基础的支持,如学生注册、教学传递、教学追踪等。在此基础上,进一步发展必然是提供对课程开发以及教学过程较深层次的支持。传统的基于客户机/服务器(Client/Server, C/S)的应用程序,除了安装服务程序外还必须为每台客户机安装客户端应用程序,一旦程序升级或修改,每台客户机的程序都必须重新安装升级,工作量极大,不利于维护。随着计算机业的发展和Internet日益成熟,采用浏览器/服务器(Browser/Server, B/S)的应用程序日渐成熟,基于浏览器客户端的应用程序比传统的基于C/S的应用程序有几个优势,包括几乎没有限制的客户端访问和极其简化的应用程序部署和管理,即使更新一个应用程序,管理人员只需要更改一个基于服务器的程序,而不是成千上万的安装在客户端的应用程序。大大简化了维护的工作量,也无需开发客户端的应用程序,节约了程序的开发成本,客户端只用连上了全球互联网就可以在全球各地使用程序。12 课题调研与可行性分析121 课题调研随着信息时代的到来,人类知识更新的周期越来越短,如何使得教学和培训能够满足不同地点和不同学习时间人们的需要,传统的面对面教学方式已经力不从心。在这种情况下,现代远程教学应运而生,它的优点在于使得学生在时间和地点不同的情况下能与教师进行交互并完成学习任务。计算机辅助教学(Computer Assisted Instruction, CAI)与Internet技术的有机结合,使得基于网络的现代远程教育成为现代教育的发展趋势。基于WEB的教学,就是用万维网作为教学媒体传送教学内容,在网上实施教学、管理教学并进行网上测试和网上交流。WEB作为教学载体,其优势不仅在于它是很好的内容载体,可以随时随地地访问,还在于它提供了很多交流渠道,可以促进师生之间、学生之间的充分讨论,这对于提高教学质量,促进学生高级认知能力的开发是十分重要的。而本课题旨在研究远程辅修学生自学系统的分析与设计。本系统的设计基于实名制管理系统,采用Microsoft ASP.NET7平台进行开发,数据库1使用Microsoft SQL Server。具体完成以下功能:1. 教师维护教学课件,具体包括课件的在线设计与维护;2. 学生选择课程自学,并对学生自学进度进行跟踪;3. 学生笔记功能,学生在学习过程中可以做笔记,学生可以自己查询自己所作的笔记,教师可以查询所有学生所作的笔记;4. 教师清除某门课程的所有学生笔记功能等。122 可行性分析1. 技术可行性本系统需要一台WEB服务器,配置要求与客户量成正比,对于一个学校内使用,一台普通的服务器即可,当前的主流服务器完全可以满足要求。对于客户端,只需要客户端装有浏览器即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在基于B/S架构的程序设计语言已非常成熟,从早期的CGI,到现在的ASP、JSP、PHP的百花齐放,再到微软刚推出不久ASP.NET,为基于B/S程序设计提供了强大的技术支持。使用其中任何一门语言开发都可以满足要求。ASP.NET是一种建立在通用语言上的程序构架,能被用于一台WEB服务器来建立强大的WEB应用程序。ASP.NET提供许多比现在的WEB开发模式更为强大的优势。WEB服务器软件也很多,其中任意一个都可以胜任,数据库可以使用SQL Server 20002。2. 经济可行性企事业单位可利用现有的服务器,装上WEB服务器软件,即可成为一台WEB服务器,客户只要连上Internet利用自己的机器即可使用系统,而机器的配置就算不是很高也完全可以应付,这对企事业单位不构成经济的负担,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为企事业单位节约大量的人力、物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。13 论文各章内容介绍本论文围绕整个系统的设计、开发展开,从一开始的调研到以后的程序设计,在本论文中都进行了详细的描述。本论文第一章为绪论,介绍了该系统的问题定义及内容简介,研究背景与研究意义,课题调研与可行性分析。论文的第二章进行了详细的系统需求分析,介绍了系统功能需求分析,数据流图分析,数据字典以及系统业务流重组与改进。论文的第三章是系统的设计部分,详细介绍了系统总体结构设计,系统数据模型设计,系统开发与运行环境。论文的第四章为详细设计,在详细设计中主要介绍了各子模块功能、界面设计,详细设计以及在系统开发过程中遇到主要问题及解决方案。论文的第五章为结论与存在问题,包括系统特色/优点介绍,系统存在不足与改进方案。论文的最后为:致谢及参考文献。2需求分析需求分析5简单地说就是分析用户的需求。需求分析是整个系统设计的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求:1. 信息要求指用户需要从数据库中获得信息的内容和性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。2. 处理要求指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。3. 安全性与完整性要求确定用户的最终需求是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此往往不能准确地表达自己的需求,所提出的需求往往不断地变化。另一方面,设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此,设计人员必须不断深入地与用户交流,才能逐步确定用户的实际需求。在许多互联网发达的国家,比如美国,其国内的许多著名大学开始进行网络教学,并取得了巨大的成功,在国内,虽然目前也由一些大学开始网络教育的招生,但是,无论是规模还是其他的都要比美国落后一截。由于国内网络的一些限制,使得我国的网上教育的开展也受到了限制,但是,如果建立了宽带网,网上学习者就可利用高速网方便的学习,并能和老师进行实时的交互学习,这使得大家可以达到面对面教学的完整效果。21 系统功能需求分析本系统的设计基于实名制管理系统,具体完成以下功能:1. 教师维护教学课件,具体包括课件的在线设计与维护;2. 学生选择课程自学,并对学生自学进度进行跟踪;3. 学生笔记功能,学生在学习过程中可以做笔记,学生可以自己查询自己所作的笔记,教师可以查询所有学生所作的笔记;4. 教师清除某门课程的所有学生笔记功能等。22 数据流图分析数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。结构化数据流程分析6采用分层的数据流程图(Data Flow Diagram,简称DFD)实现。数据流程分析的目的是要发数据流通中的问题。数据流程分析把数据在组织内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,仅从数据流动过程中考察实际业务的数据处理模式。数据流图是结构化分析(Structured Analysis, SA)方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有四种基本图形符号:“”表示数据流;“”表示加工;“=”表示数据存储;“”表示数据的源点或终点。DFD的画法一般遵循“由外向里”的原则,即先确定系统的边界或范围,再考虑系统的内部,先画加工的输入和输出,再画加工的内部。即:1. 识别系统的输入和输出;2. 从输入端至输出端画数据流和加工,并同时加上文件;3. 加工的分解“由外向里”进行分解;4. 数据流的命名,名字要确切,能反映整体;5. 各种符号布置要合理,分布均匀,尽量避免交叉线;6. 先考虑稳定态,后考虑瞬间态。如系统启动后在正常工作状态,稍后再考虑系统的启动和终止状态。通过对系统的需求分析,系统的基本功能已经大体确定,下面介绍本系统5个主要的数据流图,它们分别是顶层数据流图、0层数据流图、1层(a)数据流图、1层(b)数据流图和1层(c)数据流图。顶层数据流图确定了系统的边界,描述了系统的总体功能需求,学生、系统、老师三者的相互联系可以从顶层数据流图中充分体现出来。学生通过系统选择课程进行自学,做笔记和查询所做的笔记,系统对学生自学进度进行跟踪;老师可以通过系统进行教学课件维护,还可以查询和清除所有学生的笔记。顶层数据流图如图21所示。图21 顶层数据流图图22 0层数据流图0层数据流图是对顶层数据流图的细化,该图更清晰详尽地把0层数据流图要表达的东西体现了出来,功能结构更加明确,使人一目了然。0层数据流图主要把顶层数据流图中的“学生自学”加工细分为6个主要的加工,它们都有各自功能,各个功能之间相互联系,构成了整个系统的主要功能。0层数据流图如图22所示。1层(a)数据流图是对0层数据流图中的“自学进度跟踪”加工项的进一步细化,系统接收到自学进度信息,从自学进度记录数据库中调出信息数据反馈给学生;学生在学习的过程中,系统会根据学生点击的章节而更新自学进度情况并且保存在自学进度记录数据库中。1层(a)数据流图如图23所示。图23 1层(a)数据流图1层(b)数据流图是对0层数据流图中的“笔记管理跟踪”加工项的进一步细化,系统接收到笔记信息,从笔记记录数据库中调出笔记信息数据反馈给学生和老师;学生通过系统修改笔记内容并且保存在笔记记录数据库中,老师通过系统删除笔记并且保存在笔记记录数据库中。1层(b)数据流图如图24所示。图24 1层(b)数据流图1层(c)数据流图是对0层数据流图中的“课件维护”加工项的进一步细化,老师通过系统可以进行新增课程、添加章节、插入章节、修改章节和删除章节的操作,并且把维护后的信息保存在课件库中。1层(c)数据流图如图25所示。图25 1层(c)数据流图23 数据字典数据字典5是对在数据流图中每一个命名的图形元素均给予定义,其内容有图形元素的名字、别名或编号、分类、描述、定义、位置等,是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图上不能详细表达的内容,同时它也是同用户沟通的工具。数据字典是为了数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明,其中对每个加工的描述称为“小说明”,也可称为“加工逻辑说明”。数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数,数据流图就不严格;反之,没有数据流,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义,也有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。数据字典中包含的每个数据元素的控制信息是很有价值的。因为列出了使用一个给定的数据元素的所有程序(或模块),所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块做出相应的改变。下面是本系统的详细数据字典。表21 数据存储条目描述表数据存储名称数据组成说明自学进度记录数据库自学进度记录数据库学生ID课程名称章节名称记录了最后一次所学习的课程章节的名称笔记记录数据库笔记记录数据库学生ID笔记内容记录了学生在自学过程中所做的笔记内容课件库课件库课程名称章节名称章节内容存储了课件的内容数据存储的条目3主要描述了数据存储的结构,以及相关的数据流、处理逻辑等。上表主要描述了自学进度记录数据库、笔记记录数据库和课件库这三个主要数据库的数据组成以及对其功能的说明。表22 自学进度信息数据表字段名属性名数据类型与长度说明STUDENT_ID学生IDInteger(4)学生用户的唯一标识COURSE_ID课程IDInteger(4)课程的唯一标识CHAPTER_ID章IDInteger(4)章的唯一标识SECTION_ID节IDInteger(4)节的唯一标识自学进度信息数据表主要记录了自学进度的详细信息,它保存到了根节点,因此自学进度可以跟踪查询到根节点中去,而其中学生ID是该表中的主键,因为每个学生有各自不同的自学进度信息。由于学生的自学进度会随着学生自学而不断变化,所以该表中的信息也会跟着不断的产生变化。表23 笔记信息数据表字段名属性名数据类型与长度说明STUDENT_ID学生IDInteger(4)学生用户的唯一标识NOTE_ID笔记IDInteger(4)笔记的唯一标识NOTE笔记内容Char(500)具体笔记内容笔记信息数据表主要记录了学生笔记的详细信息,每个学生都可以有自己的笔记,可以保存多份笔记。所以学生ID是该表中的主键。表24 课件信息数据表字段名属性名数据类型与长度说明COURSE_ID课程IDInteger(4)课程的唯一标识CHAPTER_ID章IDInteger(4)章的唯一标识SECTION_ID节IDInteger(4)节的唯一标识CHAPTER章节内容Char(8000)具体章节内容课件信息数据表主要记录了课件的详细信息,该数据库与远程辅修实名制用户管理系统的课件库相联系,因为其中保存了大量的重要数据,所以是几个表中最为重要的一个,课件库中的信息会随课件的维护而不断变化更新,其中课程ID是该表中的主键,不同的课程有着不同的章节内容。3系统设计系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。31 系统的总体结构设计经过对本系统的分析,为完善本系统的功能主要添加了以下几个功能模块:学生选课模块、学生学习模块、自学进度模块、笔记管理模块和教师课件维护模块。其中,笔记管理模块又细分为两个至模块,分别是学生笔记管理模块和教师笔记管理模块。各个模块都有其自身的功能,其中生选课模块、学生学习模块、自学进度模块、自学进度模块和笔记管理模块为学生主模块,而笔记管理模块和教师课件维护模块为教师主模块。教师课件维护模块又细分了4个小模块,分别为新增章节、修改章节、删除章节和插入章节。模块与模块之间紧密联系。其具体的功能模块图如图31所示。图31 学生自学系统功能模块图表31 各功能模块说明表模块名称功能说明学生选课模块学生根据自己要求选取所要学习的课程学生学习模块学生可以观看所选取的课程的内容进行学习自学进度模块记录了学生最后一次所学习的课程的章节,以便学生可以跟踪学习进度,学习进度随学生学习情况而更新笔记管理模块学生在学习过程中可以做笔记,对笔记进行修改删除,教师可以观看学生所做的笔记,并且可以删除笔记教师课件维护教师可以新增课程内容,对课程进行修改、删除等维护工作32 系统的开发与环境配置321 系统开发方法ASP、PHP、JSP、ASP.NET这是当前比较流行的四种WEB网站编程语言。ASP8全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的,互动的,高性能的WEB服务应用程序。ASP采用脚本语言VBScript/JavaScript)作为自己的开发语言。PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库,而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。JSP(Java Server Page)是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。ASP.NET是一种建立在通用语言上的程序构架,能被用于一台WEB服务器来建立强大的WEB应用程序。ASP.NET提供许多比现在的WEB开发模式强大的优势。三者都提供在HTML代码中混合某种程序代码,由语言引擎解释执行程序代码的能力。在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于WEB服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向WEB服务器的技术,客户端浏览器不需要任何附加的软件支持。本系统的开发,使用ASP.NET语言,ASP.NET是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的WEB应用程序。与以前的WEB开发模型相比,ASP.NET提供了数个重要的优点:1. 增强的性能。ASP.NET是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。2. 世界级的工具支持。ASP.NET框架补充了Visual Studio集成开发环境中的大量工具箱和设计器。WYSIWYG编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。3. 威力和灵活性。由于ASP.NET基于公共语言运行库,因此WEB应用程序开发人员可以利用整个平台的威力和灵活性。.NET框架类库、消息处理和数据访问解决方案都可从WEB无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。4. 简易性。ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似Visual Basic的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。5. 可管理性。ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和WEB应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了ASP.NET框架应用程序的部署。只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。6. 可缩放性和可用性。ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。7. 自定义性和扩展性。ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换ASP.NET运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。8. 安全性。借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。322 系统环境配置根据系统的开发目标,原则和项目需求,我选择了用Microsoft公司Windows XP Professional SP2作为操作系统平台,Microsoft Visual Studio 200520作为系统的编译软件,Microsoft SQL Server 2000作为后端数据库服务器软件。表32 系统开发软件环境配置表需求名称详细要求数据库SQL Sever 2000操作系统Windows XP Professional SP2开发语言C#语言9浏览器Internet Expore6.0编译软件Microsoft Visual Studio 2005其他Microsoft .NET Framework 1.1表33 系统运行硬件配置表需求名称详细要求计算机类型硬盘容量最少为1G以上,586以上的微机内存需求最低内存128M表34 系统运行网络配置表需求名称详细要求单机模式即服务器和客户端在一台计算机上百兆模式计算机网络的速度为百兆千兆模式计算机网络速度为千兆4详细设计进行了系统的总体设计后即可在此基础上进行系统的详细设计了,即各种输入、输出、处理和数据存储等的详细设计。详细设计的目的是为软件结构图中的每个模块确定采用的算法和数据结构,用某种选定的表达式工具给出清晰的描述。详细设计是软件开发的第二阶段,它要求在概要设计的基础上,考虑“怎样实现软件系统,直到系统中的每个模块给出足够详细的过程性描述”,这些描述通常用表达式工具来表示。详细设计是编码的先导,这个阶段所产生的设计文档的质量将直接影响下一阶段程序的质量。这一阶段的主要任务是编写软件的“详细设计说明书”,并要为每个模块设计出一组测试用例,以便在编码阶段对模块代码进行预定的测试。41 各功能模块详细设计411 学生选课模块这个模块所实现的功能比较简单,就是学生根据已有的课程进行选择学习,首先学生由远程辅修实名制系统登录进入。当学生选择课程后自动会跳转到该课程的学习页面,学习页面记录了课程的具体内容,学生可以就该课程进行学习。已有的课程库是与远程辅修实名制用户系统中的课程设置数据库相关联。图41 学生选课流程图412 学生学习模块图42 学生学习流程图当学生选取了所要进行学习的课程后就进入到了该课程的学习页面,在该页面学生可以根据自身需要点击所要学习的章节进行学习,可以选择自学进度跟踪学习则会跳转到上一次学习的章节页面,在学习的过程中可以做笔记记录。当学生学习调用课件的内容时,系统首先从数据库中读取该课件内容的地址,然后根据该地址读取相应的文件,显示出来。413 自学进度模块ASP.NET引入了新的功能,您只需对页面和应用程序启用此功能,就可以查看有关单个ASP.NET页请求的诊断信息。这项称为跟踪的功能还允许您在代码中直接写出调试语句,而不必在将应用程序部署到成品服务器后从应用程序中移除它们。您可以在页面中写出变量或结构,断言是否满足某个条件,或者只是跟踪通过页面或应用程序的执行路径。ASP.NET包括Trace对象15(与Response、Request或Context对象类似),该对象允许您编写当启用页或整个应用程序的跟踪时出现的调试语句。ASP.NET使用TraceContext类来存储有关请求的信息、它的控件层次结构和跟踪信息。跟踪信息包括页请求的某些生命周期阶段以及您选择包括的任何自定义语句。TraceContext类可通过Page.Trace属性用于WEB窗体页。通过扩展Control类创建自定义ASP.NET服务器控件时,可以使用Control.Context.Trace语法通过Control.Context属性访问TraceContext。在页中将自定义跟踪消息写入跟踪记录:1. 在页的代码声明块或代码隐藏类中,使用Trace属性调用TraceContext方法之一。2. 为跟踪语句指定可选的category参数。可以使用该类别对所显示的跟踪语句进行排序。3. 为跟踪语句指定message参数。这可以是字符串或方法。4. 指定可选的errorInfo参数,该参数包含有关页中任何错误的信息。ASP.NET 2.0允许通过代码在TraceFinished事件14里来访问每个请求的跟踪信息。TraceFinished事件是由TraceContext对象引发,用于在收集完所有请求信息后公开跟踪消息。可以利用此事件对跟踪信息进行不同的输出。通过Page.Trace属性或Control.Context属性可以使用TraceContext类。前者在开发ASP.NET页时可用。后者在要将跟踪语句包括在自定义服务器控件或要从页以外(如global.asax文件)包括跟踪语句时可用。以下代码就是用程序输出跟踪信息% Page Language=C# %SCRIPT runat=serverprotected void Page_Load(object sender, System.EventArgs e)Trace.TraceFinished+=new TraceContextEventHandler(OnTraceFinished);Trace.Write(自定义类别,自定义跟踪消息);private void OnTraceFinished(object sender,TraceContextEventArgs e)foreach(TraceContextRecord tcr in e.TraceRecords)Response.Write(string.Format(li跟踪类别:0跟踪消息:1, tcr.Category,tcr.Message);/SCRIPT414 笔记管理模块笔记管理模块主要包括有两个不同的模块,一个是作用于学生笔记维护页面,另一个作用于老师笔记维护页面。图43 学生笔记维护流程图学生笔记维护页面包含了对学生笔记添加、修改、删除这些基本的功能,学生可以通过这些功能对笔记进行相关的设置,在进行相关设置的过程中会弹出与之相关的对话框,由用户选择是否确定操作。学生笔记维护流程可参看图43。老师笔记维护界面不仅包含了学生笔记维护页面所含有的这些基本功能,还增加了个查询功能,老师可以根据学生学号、学生姓名或者学生所在班级进行准确查询,查询班级可以批量地列出班级学生的所有笔记,这样老师可以方便地删除整个班级的学生的笔记,不用一个一个的删除,免去了许多不必要的繁冗操作。老师也可以点击查看每个学生的笔记或者进行相关的修改、删除工作。当用户执行操作时,系统即对相应的数据库进行操作,处于便于维护、安全、执行效率等因素的考虑,笔记的内容存放于文件中,数据库中存放了文件所在的路径。老师笔记维护流程可参看图44。图44 教师笔记维护流程图415 教师课件维护课件的制作与维护,也就是相当于教师进行备课。教师对相关课程的每一章、每一节进行备课,并在需要时对其进行修改。通过该模块,老师可以在总系统中添加课件,并对课件的内容进行编辑、修改、插入、删除等操作,对课件的编辑可以通过本系统提供的可视化编辑器进行编辑,并且可以在内容中插入图像、动画等。课件内容的图片资料由系统数据库统一维护,图片上传至服务器时,有专门的图片表记录了图片所在的位置、所在的章节、所在的课程等信息,并对其重新命名,以防止图片名称的冲突。当用户登录后,系统根据用户名,从用户表中查找用户的权限,根据用户的权限,进入与用户相关的权限操作界面。界面提供了实现这些功能的可视化环境。当用户执行操作时,系统即对相应的数据库进行操作,处于维护方便、安全、执行效率等因素的考虑,课件的内容存放于文件中,数据库中存放了文件所在的路径。教师课件维护流程可参看图45。图45 教师课件维护流程图42 主要问题及解决方法421 关于课程内容的编辑课程内容不仅要有灵活多样的格式,而且还要能表现生动活泼的图像和动画,当然许多的编辑器都能够实现这个功能,比如Word等。本系统使用了DotNetTextBox V3.0所见即所得编辑器控件For ASP.NET 2.0,该版本插件是基于ASP.NET 2.0技术重写控件核心架构,不仅运行性能更高效,也可实现更多强大的功能。该插件不仅有如Word中的编辑功能,还可以上传图片,支持添加文字水印、图片水印、生成缩略图,上传多媒体文件支持自动播放。控件演示页面:页面及Visual Studio 2005调用控件的方法:1.直接在ASPX页面引用控件的话,请将DotNetTextBox.dll复制到页面所在项目的bin目录下,并在页面顶部添加:2.在需要加入控件的地方添加:下面介绍比较主要的功能配置说明,配置文件如下:justifyleft将当前选中区所在格式化块左对齐。justifycenter将当前选中区在所在格式化块置中。justifyright将当前选中区所在格式化块右对齐。insertorderedlist切换当前选中区是编号列表还是常规格式化块。insertunorderedlist换当前选中区是项目符号列表还是常规格式化块。outdent减少选中区所在格式化块的缩进。indent增加选中文本的缩进。undo撤消。redo重做。delete删除当前选中区。cut将当前选中区复制到剪贴板并删除之。copy将当前选中区复制到剪贴板。paste用剪贴板内容覆盖当前选中区。printer打开打印对话框以便用户可以打印当前页。bold切换当前选中区的粗体显示与否。italic切换当前选中区斜体显示与否。underline切换当前选中区的下划线显示与否。inserthorizontalrule用水平线覆盖当前选中区。insertfile上传文件。insertimage上传图像文件。insertmedia上传影像文件。createlink创建网页链接。table表格设置。以下是插件编辑器的界面截图图46 插件编辑器422 关于文件、图片和影像的上传和显示ASP.NET 2.0提供了FileUpLoad控件允许将文件上载到服务器。它显示一个文本框控件和一个浏览按钮,该按钮允许用户选择要上载到服务器的文件。用户通过在控件的文本框中输入文件在本地计算机上的完全限定路径来指定要上载的文件。或者,也可以通过单击“Browse”(浏览)按钮,然后在“Choose File”(选择文件)对话框中定位文件来选择文件。对所上载文件的保存位置,没有固有限制。但是,若要保存文件,ASP.NET进程必须具有在指定位置创建文件的权限。此外,还可能将应用程序配置为要求使用绝对路径(而不是相对路径)来保存文件,这是一种安全措施。FileUpload控件18不会在用户选择了待上载文件后自动将该文件保存到服务器上。必须显式提供一个控件或机制来允许用户提交指定的文件。使用FileUpload控件,用户可能上载潜在有害的文件,这包含脚本文件和可执行文件。无法预先限制用户可以上载的文件。如果希望限制用户可以上载的文件的类型,则必须在上载文件后检查文件特征。而本系统直接利用了插件中的上传功能,这个功能跟FileUpload控件功能上大致相同。下面介绍比较主要的功能配置说明,配置文件如下:20480设置上传文件夹的最大可用空间。1024设置上传文件单个的最大尺寸。false设置上传文件是否自动改名。true设置是否允许上传。on是否在上传界面启用水印选择的选项on为开启,off为关闭。false是否启用上传图片的文字水印。false开启文字水印后是否保留原件并新建副本,false为不新建,false以外的字符则新建副本,副本名称以该字符加原文件名命名。false是否启用上传图片的图片水印。false开启图片水印后是否保留原件并新建副本,false为不新建,副本名称以该字符加原文件名命名。img/aspnet2.GIF设置图片水印所在的位置。false是否启用缩略图。false开启缩略图后是否保留原件并新建副本,false为不新建,false以外的字符则新建副本,副本名称以该字符加原文件名命名。HW略图缩放类型,HW:指定高宽缩放(可能变形)。W:指定宽,高按比例。H:指定高,宽按比例。Cut:指定高宽裁减(不变形)。150缩略图宽度。150缩略图高度。true是否允许删除文件。true是否允许文件重命名。true是否显示文件列表。rar,zip,pdf,txt上传文件功能可上传的文件类型。jpg,gif,png上传图片功能可上传的文件类型。wmv,rm,rmvb,asf,mpg,mp3上传自动播放文件功能可上传的文件类型。以下是上传文件截图:图47 上传文件以下是上传媒体文件截图:图48 上传媒体文件以下是上传图像文件截图:图49 上传图像文件423 关于TreeView目录树跟数据库的链接显示ASP.NET TreeView控件19是一个用于呈现TreeView UI的功能强大的服务器控件,该控件支持各种编程模型,从静态定义的树、到动态构造的树以及数据绑定的树几乎无所不包。TreeView的显示风格是可以完全自定义的,从而允许该控件具有多种外观。TreeView支持回发样式的事件以及简单的超链接导航,还支持唯一的事件处理模型,该模型允许从客户端直接检索数据,而无需服务器回发。ASP.NET为了向TreeView提供更有意义的呈现,可以为树中的节点指定各自的数据绑定。可以将TreeNodeBinding对象添加到TreeView的Databindings集合,以便对分层数据项的字段映射到TreeNode属性的方式进行定义。TreeNodeBinding有两个重要属性可确定绑定所应用到的分层数据项集。DataMember属性指定数据项的类型,如果是XML数据,则该属性指定应用绑定的元素名。Depth属性指定层次结构中应用数据绑定的深度。可以设置DataMember或Depth,也可以同时设置这两个属性。例如,若要为给定XML文件中的所有Book元素定义数据绑定,请将DataMember设置为“Book”。若要为深度为1的所有节点定义绑定,请将Depth属性设置为1。若要为深度为1的所有Book节点定义绑定,请将TreeNodeBinding对象的DataMember设置为“Book”,并将Depth设置为1。一旦将DataMember或Depth设置为与给定的节点集匹配,就可以定义TreeNodeDataBinding的其他属性以定义数据项(如果是XML数据,则为XML节点属性(Attribute))的属性(Property)如何映射到TreeView控件呈现的TreeNode的属性(Property)。例如,TextField属性定义要用于TreeNode的Text的属性的名称。同样,ValueField属性定义要用于TreeNode的Value的数据项属性。NavigateUrlField属性定义要用于TreeNode的NavigateUrl的字段/属性,等等。还可以针对给定的数据绑定为TreeNode属性指
展开阅读全文