网上教务评教管理系统设计方案

发布时间:2016-07-19 18:26:32   来源:文档文库   
字号:

网上教务评教管理系统设计方案

WORD版完整可编辑)

在教育事业繁荣昌盛的今天,各大高校都进行了学生的扩招和教师的补招,而对于教师的评估工作则更加严谨和密集,随之而来的则是大量繁琐的教务评教数据的管理工作,其庞大的信息量和信息频繁变动是需要面对的最大问题。随着电脑技术的高速发展和广泛应用,学校教务评教也已经基本形成了多元的网络化管理。本设计就是本着操方便、界面友好、高效率和良好的交互性进行教务评教系统的管理程序。

经过对这个课题的反复研究,最终决定本管理系统采用MySQL数据库处理后台数据,以MyEclipse软件为前端开发工具,主要基于JSP技术进行开发。整个系统的服务人群分为管理员、教师和学生。实现的主要功能有个人信息的增删改查、学生对教师进行评估、教师查看评估结果、管理员对评估平台的控制等,完成了一个小型且比较全面的教务评教管理系统。

关键词: 教务评教管理系统;MySQL数据库;MyEclipseJSP

Abstract

With the education thriving and prosperous,universities have been increased enrollment both of students and teachers. And for the teachers' evaluation is more rigorous and intensive,there are a lot of educational evaluation data managements,the huge amount of information and information frequently change is the biggest problem we are facing.With the rapid development and widely used of computer technology,the school educational administration teaching evaluation has been basically formed multi network management. This design is in order to complete a friendly interface,convenient operation,high efficiency and good interactive teaching evaluation system of teaching management program.

After repeated study of this subject,the final decision of the management system is using MySQL database as back-end database,using MyEclipse software as thefront-end development tool, the system mainly based on JSP technology for development.The whole system services for all the administrators,teachers and students.The main function of the realization includes personal information crud,students assessment,teachers check their own assessment results,the administrators of the evaluation control platform.In general,it is completing a small and relatively comprehensive educational evaluation management system.

KeywordEducational evaluation management system; MySQL Database; Myeclipse; JSP



绪论

1.1 设计开发背景与意义

1.1.1 设计开发背景

随着时代的发展,计算机技术越来越深入各行各业,为广大用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构或者部门的发展十分重要。近年来,随着用户要求的不断提高继计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。

对于目前各大高校而言,学生人数的逐年增长导致教师人数也随之上升,这对于教务部门是很大的压力,同样对于教务评教工作也是一个很大的挑战。而且对于信息量比较庞大、需要记录存档的数据比较多的高校来说,人工记录是非常麻烦的。同样,低效率的教务评教系统浪费了许多的时间也很难满足要求。采用高效率的教务评教系统来管理教师和学生的信息,可以节省时间、节约人力和物力资源,达到预期的要求。

教务评教系统是用来评估教师的平台,通过平台,学生可以掌握自主权,根据自己心中的评判标准对教师进行评价。它不仅能通过学生的眼光及时、公正的反映出教师各项素质的达标情况,而且对于教师而言也是一个很好的自我认知和提升自身素养的平台。同时,教务评估系统对于提高学生和教师的积极性以促进学校的健康向上、稳步发展、提高自身竞争力有很重要的作用。

1.1.2 设计开发意义

在信息化日益普及的当代,各种基于web技术的管理信息系统相继出现并且逐渐成为了管理信息系统发展的主流趋势。而对于教务评教管理系统而言,它可以有效的减少大量数据分析和整理的难度,实现操作的灵活性和简便性,以此可以提高高校教务管理部门的工作效率,使之充分利用资源从而减少不必要的物理和财力的支出。所以,开发一个实用、高效的教务评教系统具有十分重要的现实意义。

1.2 开发工具

1.2.1 MyEclipse

MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完整的编码、调试、测试和发布功能,完整支持HTMLStrutsJSPCSSjava scriptspringsqlhibernate

MyEclipse 是一个十分优秀的用于开发Java, J2EE Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, hibernateEJB3JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

在结构上,MyEclipse的特征可以被分为7类:

1JavaEE模型

2WEB开发工具

3EJB开发工具

4应用程序服务器的连接器

5JavaEE项目部署服务

6数据库服务

7MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipseEclipse插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse5.5以前版本需先安装EclipseMyEclipse5.5以后版本安装时不需安装Eclipse

1.2.2 MySQL

MySQL是一个关系型数据库管理系统由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHPApache可组成良好的开发环境。

系统特性:

1.使用CC++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

2.支持AIXFreeBSDHP-UXLinuxMac OSNovellNetwareOpenBSDOS/2 WrapSolarisWindows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括CC++PythonJavaPerlPHPEiffelRubyTcl等。

4.支持多线程,充分利用CPU资源。

5.优化的SQL查询算法,有效地提高查询速度。

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB 2312BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IPODBCJDBC等多种数据库连接途径。

9.提供用于管理、检查、优化数据库操作的管理工具

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库

11.支持多种存储引擎

12.MySQL是开源的,所以你不需要支付额外的费用。

13.MySQL使用标准的SQL数据语言形式。

14.MySQLPHP有很好的支持,PHP是目前最流行的Web开发语言。

15.MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。

1.3 可行性

1.3.1 技术可行性

1 JSP技术

JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 <%, %>形式)。JSPServlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。

JSP技术使用Java编程语言编写类XMLtagsscriptlets,来封装产生动态网页的处理逻辑。网页还能通过tagsscriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java ServletJSP的技术基础,而且大型的Web应用程序的开发需要Java ServletJSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

JSP推出后,众多大公司都支持JSP技术的服务器,如IBMOracleBea公司等,所以JSP迅速成为商业应用的服务器端语言。

2 MVC设计模式

MVC 是一种使用 MVCModel View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

Model(模型)表示应用程序核心(比如数据库记录列表)。

View(视图)显示数据(数据库记录)。

Controller(控制器)处理输入(写入数据库记录)。

MVC 模式同时提供了对 HTMLCSS JavaScript 的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

  通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。

  通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。

  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。

MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

MVC是一个框架模式,它强制性的使应用程序输入处理输出分开。使用MVC应用程序被分成三个核心部件:模型视图控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

1.3.2 经济可行性

本系统开发应用之后主要用于教师的教务评教管理,本系统操作简便,系统的管理模式可以提高教务评教工作的效率,对教务评教工作提供更好的服务。尽管前期的投入可能会略高一点,需要进行开发软件以及与数据库建立连接的操作,但是在之后的过程和使用中会节省下来大量的人力和物力,而且我们所运用的技术与数据库都是免费的,有开发周期短和高效率等优点。因此该项目的开发成本很低。

1.3.3 操作可行性

经过分析和研究可以看出本系统的使用在操作上具有可行性。首先系统对于服务器端和客户端所要求的软、硬件的最低配置现在大多数的用户用机都能达到。详细来说,首先,java语言有很好的移植性。其次,对于我们所使用的关键技术在用户电脑上也完全能够实现。本系统对管理人员和用户没有任何的特殊要求,实际操作基本上以鼠标操作为主并辅以少量的键盘操作,操作方式很方便。因此该项目具有良好的易用性。

1.4 运行环境

硬件环境:

1CPUIntel(R) Core(TM)2 1.73GHz

2、内存:2.5 G

3、硬盘:120G

4、显示:128MB独立显卡

软件环境:

1、操作系统:Windows XP Win7

2、数据库:MySQL

3、浏览器:Microsoft Internet Explorer

4、相关应用软件: Tomcat 6.0DreamWeaver 7.0

1.5 文献综述

经过大量的查阅关于网上教务评教管理系统的设计与实现的文献,让我对于本系统的认识和研究达到了一个更加成熟和深刻的阶段。在参考文献的帮助下,我更加明确了本课题的设计方法和意义,同时从中得到了许多设计经验和灵感。

在传统的教务评教管理工作中,要完成相当数量的数据查询和存储工作,一般是学生进行问卷调查的填写,再用人工进行统计和分析。这些做法极为不方便,使从事工作者在这些常规性的查询和维护工作上花费大量的时间和精力,不利于工作效率的提高,更不利于学校对教务工作信息化的建设。而且随着数据量的日益增多和数据类型的复杂化,传统的管理方式已经不能满足教务管理的各种需求。而将计算机应用和管理工作结合起来的网上教务管理信息系统软件,使用计算机对各类信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高高校对教务工作进行管理的效率。

1.5.1 网上教务评教管理系统简介

随着计算机技术的进步,管理系统也从传统的管理科学的范畴延伸到了软件技术的范畴。由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。

其主要任务是最大限度的利用现代计算机及网络通讯技术加强日常生活或工作中的信息管理,通过拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高管理水平和经济效益。目前,计算机网络已成为进行技术改造及提高管理水平的重要手段。

教学工作是学校经常性的中心工作,教学质量评估是教学管理的重要环节,是提高教学质量和办学效益的重要手段。而网上教务评教管理系统操控着学校教师的素质标准,同时也可以促进师生之间的互动。

目前,各高校已经普遍利用计算机设备和手段处理教学活动中产生的各类数据和信息,对提升教学管理水平具有现实意义并取得成效,但随着教育办学规模的扩大、生源竞争的加剧、学分制的实施,社会对人才培养质量,学员对学校“以人为本”的管理要求也越来越高。网上教务评教管理系统在学校和教学站()基础数据信息同步、学生与教师或管理者沟通、管理类统计报表格式等方面很难适应成人教育教学管理的需求。对管理工作的实质内容进行科学分析总结而形成的基本真理,它是现实管理现象的抽象,是对各项管理制度和管理方法的高度综合与概括。

网上教务评教管理系统包括五大基础功能:输入,存储,统计,输出,和控制。

1)输入功能:包括数据收集和输入、数据传输;(2)存储功能:将输入的全部数据存入数据库;(3)统计功能:根据输入的数据运用现代数学方法、统计方法和模拟方法进行科学的数据分析和统计;(4)输出功能:根据用户的不同需求,进入数据库查找相应的数据进行查看;(5)控制功能:根据各职能部门提供的数据,对计划的执行情况进行检测、检测、比较执行与计划的差异,对差异情况分析其原因。尽量找出有关问题的最优解或满意解,辅助管理人员进行决策,以期合理利用人财物和信息资源,取得较大的经济效益。

虽然教务管理系统不像其他企业系统或银行等金融系统那样对安全性和可靠性的要求高,但系统安全的重要性也不容忽视。为使系统能良好的运作需要做到以下几点:对突发性物理破坏能做到应急处理;对突发性大量访问和查询的控制;严格控制不同级别用户的权限,以防后台数据库的恶意破坏;防范人为的破坏;对于数据库要在前后台都有日志记载,使得系统故障后能向前恢复,确保数据的正确性。

1.5.2 课题评述

网上教务评教管理系统为教师和学生提供了快捷、方便的学习与管理途径,学生、教师既是教务管理信息系统数据的提供者,也是数据信息的享有者。在网络交互的环境下充分发挥教师在教学过程中的主导作用,体现学生在学习过程中的认知主体作用,从而直接或间接地推动了教学管理水平的提高。该成人教育管理信息系统充分应用网络开发新技术,对改变传统的教学管理思想和工作思路,适应新形势下的成人教育事业的发展奠定了基础。

本系统针对当前高校的发展状况,就教务管理系统进行了深入的研究,分析了教务

管理在日常教学活动中的重要性和必要性经过多方位的系统分析,较准确的把握了教务管理系统的功能需求,在此理沦基础上有对该系统进行了详细的分析与设计。

开发一个高校的教务管理系统又是一个庞大的工程,而项目组成员的能力有限,所以本系统难免存在很多不足之处:如本系统主要对教务管理的校内管理功能的进行了分析与研究,而对于基于网络的前台界面设计却未提及;系统后台数据库设计中也有很多欠缺。这些都督促着项目组成员在今后的研究学习中,逐步完善对本系统的外部设计以实现整个系统的顺利运行,还要争取经过不断的努力,使本系统更加适应实际应用的需要。

需求分析

2.1 对功能的需求

本系统面向的用户角色分为三类:管理员、教师、学生。

1、管理员角色主要完成的功能有:个人登陆与退出登陆功能;管理员对于教师和学生信息的查看、修改和删除功能;管理员添加教师或学生信息功能;管理员对于评估平台的控制功能;管理员对学生留言板信息的管理功能;管理员对公告栏信息的修改功能;

2、教师角色主要完成的功能有:个人登陆与退出登陆功能;查看和修改自己的个人信息功能;修改个人密码功能;查询自己的评估结果功能;

3、学生角色主要完成的功能有:个人登陆与退出登陆功能;查看和修改自己的个人信息功能;修改个人密码功能;进行教务评估功能;通过留言板进行留言功能。

总的系统功能需求层次模块图,如图2-1所示:

2-1 系统功能需求层次模块图

2.2 对性能的需求

1、安全性:系统应该具有比较强的安全性,数据库对评教数据以及其他相关的个人信息有较强的保护作用,对于权限的管理也很严格;

2、稳定性:系统应该在所有的情况下包括特殊情况下稳定运行;

3、兼容性:能够与其它软硬件有良好的兼容性,在大部分的用户电脑上能够很好的兼容并能很好的运行。

2.3 对故障处理的需求

1、在用户输入不符合要求的数据时,应该能够给出合理的提示信息,让用户能够做出正确的信息修改;

2、在权限使用出错后能给出提示信息帮助用户进行正确的选择;

3、数据库的管理应该要求有应急备份的功能,这样可以尽可能恢复数据的丢失。

2.4 主要部分数据流图

2-2 主要部分数据流程图

概要设计

对于基于JSP的教务评教管理系统,该系统的模块主要有用户登陆模块,教师及学生的信息管理模块(实现信息的增加、删除、改动、查询),用户密码管理模块(实现教师和学生密码的改动),教师教务评估管理模块(实现评估信息的查询、增加、改动以及教务评估平台控制),留言板管理(包括对留言板信息的增加、查看)以及其他模块(包括通知栏的修改以及退出登陆模块)。

3.1 系统代码架构

在整个系统的开发时期中,设计阶段是最主要的阶段。按软件生存周期的划分,设计任务通常分两个阶段来完成。第一个阶段是概要设计,它的任务是建立软件的总体结构,即软件的组成,以及各组成成分(子系统或模块)之间的相互联系。第二个阶段是详细设计,其任务是确定模块的内部算法和数据结构,产生描述各个模块程序过程的详细设计文档。本系统采取了原型法,先根据需求分析设计出原型,然后在原型的基础上进行不断的测试和改进。在本系统的设计过程中采取了模块化的设计方法,化繁为简。

3.2 数据库结构设计

数据库的设计实际上是对项目设计的一个整体规划,因为数据库的设计要从全局的角度考虑,而且数据库的设计要从全局的角度考虑,而且数据库中表的结构都是与程序紧密相关的,如果数据库设计如果没有到位,设计也会受到一定的影响。

3.2.1 数据库E-R

数据库的设计的E-R图是一个数据库的重要部分,它可以很直观的看出各个模块中的角色关系和结构,能够让人一目了然。现将数据库中部分重要表格的关系反应如下几个E-R图所示。

1管理员对教师的信息进行增加、删除、查询和修改E-R

3-1 管理员对教师的信息进行增加、删除、查询和修改E-R

2管理员对学生的信息进行增加、删除、查询和修改E-R

3-2 管理员对学生的信息进行增加、删除、查询和修改E-R

3教务评教模块E-R

3-3 教务评教模块E-R

4留言板模块E-R

3-4 留言板模块E-R

3.2.2 数据库表信息

本系统采用MySQL数据库,数据库中包括7个数据表,分别为tealoginstuloginteainfostuinfopgmessagenotice各个表的逻辑结构和相关信息如下:

1、登陆模块数据库表信息

教师与学生的登陆信息表存储教师和学生的登陆信息。其中包括用户名和登录密码字段,如表3-1和表3-2所示:

3-1 教师登陆信息

字段名

数据类型

长度

是否可为空

描述

username

varchar

50

教师姓名

userpwd

varchar

20

密码

3-2 学生登陆信息

字段名

数据类型

长度

是否可为空

描述

username

varchar

50

学生姓名

userpwd

varchar

20

密码

2、教师、学生信息数据库表信息

教师、学生信息数据库表用来存储教师和学生的基本信息。其中教师信息表包括姓名、性别、年龄、学院、职务、班级字段;学生信息表包括了学号、姓名、性别、学院、专业、班级、祖籍、地址以及政治面貌字段。详细结构和数据信息如表3-3和表3-4所示:

3-3 教师信息

字段名

数据类型

长度

是否可为空

描述

name

varchar

50

教师姓名

gender

varchar

20

密码

age

integer

11

年龄

xueyuan

varchar

20

所属学院

zhiwu

varchar

20

职务

banji

varchar

20

所属班级

3-4 学生信息

字段名

数据类型

长度

是否可为空

描述

xuehao

varchar

20

学生学号

name

varchar

20

学生姓名

gender

varchar

20

密码

xueyuan

varchar

20

所属学院

zhuanye

varchar

20

职务

banji

varchar

20

所属班级

zuji

varchar

20

祖籍

address

varchar

40

地址

zhengzhi

varchar

20

政治面貌

3、评估信息数据库表信息

评估信息表用来存储学生对教师进行评估的基本信息以及教师查看自己评教结果的信息。其中包括被评估教师姓名、问题1到问题9和评教学生姓名字段,结构如表3-5所示:

3-5 评估信息

字段名

数据类型

长度

是否可为空

描述

name

varchar

20

教师姓名

q1

varchar

20

问题1

q2

varchar

20

问题2

q3

varchar

20

问题3

q4

varchar

20

问题4

q5

varchar

20

问题5

q6

varchar

20

问题6

q7

varchar

40

问题7

q8

varchar

20

问题8

q9

varchar

200

问题9

stuname

varchar

20

学生姓名

4、留言板信息数据库表信息

留言板信息表用来存储学生的所有留言的基本信息。其中包括姓名、邮箱、主题和内容字段,结构如表3-6所示:

3-6 留言板信息

字段名

数据类型

长度

是否可为空

描述

name

varchar

20

学生姓名

email

varchar

20

邮箱

title

varchar

20

主题

content

varchar

200

内容

5、公告栏数据库表信息

公告栏信息表用来管理员需要公告的信息。结构如表3-7所示:

3-7 公告栏信息

字段名

数据类型

长度

是否可为空

描述

content

varchar

200

公告栏内容

详细设计与实现

4.1 用户登录模块

用户登录模块主要包括以下功能:

1、为用户进入系统提供一个入口,用户根据身份不同选择不同的角色;

2、当用户输入正确用户名和密码时,进入相对应的系统起始界面;

3、当管理员输入错误的用户名和密码时,仍定位到登陆页面并给出相应提示。

具体效果如图4-1所示:

4-1 登陆界面截图

4.2 用户信息管理模块

用户信息管理模块主要包括下面几个分模块:

1、管理员对教师和学生信息的添加模块;

2、管理员对教师和学生信息的查看、修改、删除模块;

3、教师对个人信息的查看、修改模块;

4、学生对个人信息的查看、修改模块;

4.2.1 管理员对教师和学生信息的添加

管理员对教师和学生信息的添加主要包括以下功能:

1、管理员在主菜单选择教师或信息的添加;

2、当管理员在表单输入信息时输入的数据符合要求时则添加成功,其中包括登陆信息的添加(默认登录密码为123456)与个人信息的添加;

3、当管理员输入的信息不符合要求时给出相应提示。

具体效果如图4-2、图4-3所示:

4-2 添加学生信息截图

4-3 添加教师信息截图

4.2.2 管理员对教师和学生信息的查看、修改、删除

管理员对教师和学生信息的查看、修改、删除模块主要包括以下功能:

1、管理员进入查看教师或学生信息界面进行对应信息的查看;

2、选择编辑按钮进入修改相应教师或学生的界面进行信息的修改;

3、选择删除按钮进行对应信息的删除(包括删除登陆信息、个人信息已经评估信息)。

具体效果如图4-4到图4-7所示:

4-4 查看全部学生信息截图

4-5 查看全部教师信息截图

4-6 修改学生信息截图

4-7 修改教师信息截图

4.2.3 教师对个人信息的查看、修改

教师对个人信息的查看、修改模块主要包括以下功能:

1、在教师首页主菜单栏选择个人信息的查看或修改个人信息的功能;

2、当进入个人信息查看界面则可以查看个人信息;

3、当进入修改信息的界面则可以修改个人信息。

具体效果如图4-8、图4-9所示:

4-8 教师个人信息查看截图

4-9 教师个人信息修改截图

4.2.4 学生对个人休息的查看、修改

学生对个人信息的查看、修改模块主要包括以下功能:

1、在学生首页主菜单栏选择个人信息的查看或修改个人信息的功能;

2、当进入个人信息查看界面则可以查看个人信息;

3、当进入修改信息的界面则可以修改个人信息。

具体效果如图4-10、图4-11所示:

4-10 学生个人信息查看截图

4-11 学生个人信息修改截图

4.3 用户修改密码模块

用户修改密码模块主要包括以下功能:

1、教师或学生在各自主菜单选择修改个人密码功能;

2、输入原密码和两遍新密码,在验证成功后即可修改密码;

3、在验证失败时不进行修改密码工作并给出相应提示。

具体效果如图4-12所示:

4-12 密码修改截图

4.4 教师教务评估管理模块

教师教务评估管理模块主要包括下面几个分模块:

1、管理员对评教平台的控制模块;

2、学生对教师进行评估工作模块;

3、教师对个人评估结果的查询模块;

4.4.1 管理员对评教平台的控制

管理员对评教平台的控制模块主要包括以下功能:

1、在管理员首页的主菜单选择评估平台的控制功能;

2、当点击打开平台的按钮则在一段时间内学生可以对教师进行评估;

3、当点击关闭平台的按钮则在一段时间内学生不可以对教师进行评估。

具体效果如图4-13所示:

4-13 评估系统控制截图

4.4.2 学生对教师进行评估工作

学生对教师进行评估工作模块主要包括以下功能:

1、在学生首页的主菜单选择教务评估的功能;

2、当进入评估主页面可以看到所有教师的全部信息,点击编辑按钮可以进入对应教师的评估页面,点击修改按钮则可以进入已评信息的查看和修改页面;

3、当输入数据不符合要求时给出相应提示。

具体效果如图4-14到图4-16所示:

4-14 学生对教师教务评估首页查看截图

4-15 教务评估表单截图

4-16 修改教师教务评估截图

4.4.3 教师对个人评估结果的查询

教师对个人评估结果的查询模块主要包括以下功能:

1、在教师首页的主菜单选择查询教务评估结果的功能;

2、当进入查询界面时可以看到已经整理好的所有学生对自己的评估结果。

具体效果如图4-17所示:

4-17 教师查看个人评教结果截图

4.5 留言板管理模块

留言板管理模块主要包括下面几个分模块:

1、学生留言模块;

2、管理员对学生的留言进行查看、删除模块;

4.5.1 学生留言

学生留言模块主要包括以下功能:

1、在学生首页的主菜单选择留言板的功能;

2、当进入留言编辑页面时可以填写留言,当输入数据符合要求时提交成功;

3、当输入数据不符合要求时,提交不成功并给出相应提示信息

具体效果如图4-18所示:

4-18 学生留言板截图

4.5.2 管理员对学生的留言进行查看、删除

管理员对学生的留言进行查看、删除功能模块主要包括以下功能:

1、在管理员首页的主菜单选择留言板的功能;

2、当进入查询留言的界面可以进行所有留言信息的查询以及删除功能。

具体效果如图4-19所示:

4-19 管理员查看全部留言截图

4.6 其他模块

其他模块主要包括下面几个分模块:

1、通知栏更改模块;

2、退出登录模块;

4.6.1 通知栏更改

通知栏模块主要包括以下功能:

1、在管理员首页的主菜单选择公告栏编辑的功能;

2、当进入编辑页面则可以进行公告栏信息的修改。

具体效果如图4-20所示:

4-20 通知栏修改截图

4.6.2 退出登录

退出登录模块主要包括以下功能:

1、在用户完成个人需求之后,点击首页的右上角选择退出的功能;

2、当退出成功时返回到登录界面。

具体效果如图4-21所示:

4-21 退出登陆截图

系统测试

5.1 软件测试基础理论

5.1.1 软件测试定义

软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。

5.1.2 软件测试基本概念

1、测试的含义

所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。

测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。

2、测试的步骤

测试步骤详细规定了如何设置、执行、评估特定的测试用例。

软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。

软件测试在软件生命周期中横跨两个阶段:

单元测试阶段:

即在每个模块编写出以后所做的必要测试。

综合测试阶段:

即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。

3、测试的意义

系统测试是管理信息系统的开发周期中的一个十分重要环节。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的40%-50%。而对于一些特别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。

5.1.3 软件测试方法分类

软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。

1静态测试与动态测试

按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。

1)静态测试指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。

2)动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。

动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。

2、黑盒与白盒测试

按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。

1若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。

黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。

黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。

黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。

黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。

若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。

2)白盒测试

白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。

白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是基于覆盖率的测试。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖。

3、单元测试、集成测试、系统测试、验证测试和确认测试

按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。

测试中的错误分类:

A类错误:致命错误——引起程序异常中断或死机的错误等。

B类错误:功能错误——业务功能实现错误、程序执行结果错误等。

C类错误:功能缺陷——功能操作不方便、缺少操作提示等。

D类错误:界面缺陷——界面设计不符合本系统的界面设计规范等。

E类错误:测试正确——正确的测试项、测试结果与预期的一致等。

5.2 系统各个模块测试用例

5.2.1 登录模块测试用例

1、当不输入用户名和密码时报错如下图:

5-1

2、当只输入用户名,没有输入密码时报错如下图:

5-2

3、当用户名和密码不匹配时(包括角色选择出现错误),报错如下图:

5-3

4、当输入的角色、用户名和密码均正确,则进入对应页面。

5.2.2 用户信息管理模块测试用例

1管理员对教师和学生信息的修改和删除测试用例

1)当管理员对教师或学生信息修改成功则提示如下图,之后进入查看信息页面。

5-4

2当管理员对教师或学生信息删除成功则提示如下图,之后进入查看信息页面。

5-5

2管理员对教师和学生信息的添加测试用例

1)当管理员对教师或学生信息添加出现未填写项时则报错如下图:

5-6

2)当管理员对教师或学生信息添加成功则提示如下图,之后进入查看信息页面。

5-7

3教师和学生对个人信息的修改测试用例

当教师或学生对个人信息修改成功时则提示如下图:

5-8

5.2.3 用户修改密码模块测试用例

1、当不输入任何密码时报错如下图:

5-9

2、当不输入新密码时报错如下图:

5-10

3、当输入的两次新密码不相同时报错如下图:

5-11

4、当输入的原任密码不正确时报错如下图:

5-12

5、当输入成功时提示如下图,之后返回密码修改页面。

5-13

5.2.4 教师教务评估管理模块测试用例

1管理员对评估平台控制测试用例

1)当管理员点击打开控制平台按钮时提示如下图:

5-14

2)当管理员点击关闭控制平台按钮时提示如下图:

5-15

2学生对教师评教测试用例

1)当学生对教师的评估页面有未填写内容时报错如下图:

5-16

2)当学生对教师的评估有重复时报错如下图:

5-17

3)当学生对教师的评估数据正确或评估修改成功时提示如下图:

5-18

5.2.5 留言板管理模块测试用例

1学生留言板留言测试用例

1)当留言主题为空时,报错如下图:

5-19

2)当留言内容为空时,报错如下图:

5-20

3)当留言Email为空时,报错如下图:

5-21

4)当留言Email格式错误时,报错如下图:

5-22

5)当留言成功时提示如下图,之后返回留言板页面。

5-23

2管理员对留言板留言管理测试用例

当管理员对学生留言删除成功时提示如下图,之后返回留言板页面。

5-24

5.3 测试报告

通过测试,我了解到一个好的测试用例,应该包含以下信息:

1、软件或项目的名称

2、软件或项目的版本(内部版本号)

3、功能模块名

4、测试用例的简单描述,即该用例执行的目的或方法

5、测试用例的参考信息(便于跟踪和参考)

6、本测试用例与其他测试用例间的依赖关系

7、本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限

8、用例的编号(ID),如可以是:软件名称简写-功能块简写-NO.

9、步骤号、操作步骤描述、测试数据描述

10、预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)

11、开发人员(必须有)和测试人员(可有可无)

12、测试执行日期

经过比较完整的测试,本系统各部分的功能基本正常,达到了预期的目的。通过对系统的全面测试,我学到了许多测试方面的知识,了解到许多测试方法和测试经验。通过本次设计,使我了解到测试的重要性。通过测试,可以使软件更适合用户的需求,更加稳定、可靠地运行,并能适应市场竞争,应用前景广泛。

5.4 软件安装

由于本系统采用了JSP的主要技术和MySQL数据库,因此需要的软件包括有JDKTOMCATMySQL以及用来进行页面处理的DreamWeaver软件。

5.4.1 JDK的安装

首先,登录到sun公司的网站:http://java.sun.com。免费下载Java平台提供的Java开发工具JDK1.5。安装后需进行几个变量的配置。双击文件,装完之后,设置环境变量。右击“我的电脑” 选“属性”,选“高级", 选“环境变量”,在这个窗口中添加如下系统环境变量:

变量名:JAVA_HOME,变量值:D:\Program Files\Java\jdk1.5

变量名:CLASSPATH,变量值:C:\Program Files\Java\jdk1.5\jre\lib\rt.jar;.;

变量名:PATH,变量值:C:\Program Files\Java\jdk1.5\bin

点击“确定”,创建环境变量。

依次点击【确定】完成设置,如要查看前面的安装及配置是否成功,可在操作系统的【运行】中输入“cmd”,按回车键进入命令行模式,在命令行模式中输入“java -version”然后回车,如正确输出java的安装版本信息,则表示java环境已经顺利安装成功。

5.4.2 TOMCAT的安装

其次,TOMCAT5.0的安装配置。双击安装文件,安装完成之后需要把完成的程序复制到,C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps文件夹下。

以上操作都完成之后,还需要在Myeclipse软件中进行配置才能进行使用。

5.4.3 MySQL的安装和使用

最后,MySQL的安装配置和简单的使用命令。MySQL的安装文件可以直接到http://www.mysql.com下载,获得for win32.zip包,建议选择4.0.20d版本。这里不详细说明。下载获得Mysqlfor win32安装包后,用winzip解压缩,直接运行setup.exe,需要注意的是选择一个安装路径,当然,安装路径可以任意,建议选择C:\MySQL目录。安装完成后MySQL也就完成了。默认的用户名是root,密码为空。

Mysql安装完成后,请通过开始-程序-附件-命令提示符进入:录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin。在 C:\mysql\bin> 命令提示符下录入 mysqld-nt -install 命令,然后按下回车,如果出现 Service successfully installed 的提示, 这表示你已成功的将 MySQL 安装成一项 Windows 的服务。点击 开始-程序-管理工具-服务,你可以看到Mysql已经成为众多服务项目中的一项,不过此时它还未被启动, 因此接下来我们就来启动它。启动 MySQL 服务的方法有三种,请自行选择其中一种来进行。重启机器时自动启动它在服务窗口中选取 MySQL 服务名称,然后按下启动按钮来启动它在命令提示字符窗口中输入 NET START MySQL 指令来启动它。Mysql数据安装完成,系统会默认生成一个名为test的数据库。一般情况下,由于该数据需要用root用户进行访问,从安全性角度而言,建议新建一个数据库,并给这个数据库分配一个新的用户来访问。由于Mysql数据库默认的客户端功能比较少,不支持数据库的建立和用户的新增。其他比如Mysql-front等工具带了这些功能,您可以去下载这些工具来使用,当然,你也可以通过以下介绍的命令行方式来新增用户与数据库。登录数据库命令提示字符窗口录入,录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>修改密码C:\mysql\bin提示符下录入:格式:mysqladmin –u用户名 -p旧密码 password 新密码 。例如:给root加个密码ab12。键入以下命令:mysqladmin -uroot password ab12  建立数据库格式:create database 库名;例如:建立新数据库shopexMYSQL的提示符下:mysql> 录入 create database shopex;显示数据库格式:show databases;注意是databases而不是database 建立新用户。格式:grant all privileges on 数据库.* to 用户名@登录主机 identified by "密码";例如:增加一个用户test密码为1234,让他只可以在localhost上登录,并可以对数据库Shopex进行所有的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),在MYSQL的提示符下:mysql> 录入grant all privileges on shopex.* to test@localhost identified by "1234";通过以上操作,你建立一个新的数据库 shopex,并增加了一个名为testshopex数据库有所有操作权限。注意:以上仅仅是简单的Mysql操作命令,如果需要了解更加详细的资料,请查阅Mysql相关操作说明文档。接下去的安装就要看选择什么作为你的Web服务器了,建议直接使用IIS

此教务评教系统完成了教务评教管理的基本功能并具有以下特点:

1、本系统为全中文界面,功能全,易操作;

2、用户可以灵活的设置系统中的各类相关参数和各种项目代码;

3、系统中有严谨的工作权限,仅限于管理员操作,且管理员可以不定期的、自由的修改用户名和密码;

4、完整的增、删、改、查功能;

5、系统结构严谨、性能稳定、使用方便;

6、速度快;

7、投资少、容易维护;

整个开发的过程对我来说是一次能力的真正提高的过程;是一次将理论应用于实践的过程;是将以前所学知识充分利用的过程;是一次真正的、完整的实践过程。

参考文献

[1] 梁建武,邹锋.JSP程序设计实用教程[M].中国水利水电出版社,20075.

[2] 刘慧宁,那盟.JAVA程序设计[M].机械工业出版社,200601.

[3] 徐红霞,李攀.MVC模式在Web开发中的应用[J].科技信息,200912.

[4] 赛奎春.JSP信息系统开发事例[M].机械工业出版社,200605.

[5] 张海蕃.软件工程导论. 清华大学出版社, 2003

[6] 剑,王宇译. JAVA实例技术手册(第三版). 中国电力出版社, 20056

[7] 郑可奇. MySQL实用教程. 电子工业出版社, 2009

[8] Paul Milbourne, Chris Kaplan, Michael Oliver, Serge Jespers. The Essential Guide to Flash CS4 with ActionScript. friends of ED, 2009

[9] Alaric Cole.Learning Flex 3: Getting up to Speed with Rich Internet Applications. O'Reilly, 2008

[10] Katherine Ulrich. Flash CS4 Professional for Windows and Macintosh: Visual QuickStart Guide. Peachpit Press, 2008

外文文献

Software and software engineering

—the software appearance and enumerates

As the decade of the 1980s began, a front page story in business week magazine trumpeted the following headline:” software: the new driving force/’software had come of age—it had become a topic for management conccm. during the mid-1980s,a cover story in forcune lamented “A Growing Gap in Software,’’and at the close of the decade, business week warned managers about”the Software Trap—Automate or else/’As the 1990s dawned , a feature story in Newsweek asked ’’Can We Trust Our Software? ’and The wall street journal related a major software company’s travails with a front page article entitled “Creating New Software Was an Agonizing Task ...” these headlines, and many others like them, were a harbinger of a new understanding of the importance of computer software — the opportunities that it offers and the dangers that it poses.

Software has now surpassed hardware as the key to the success of many computer-based systems. Whether a computer is used to run a business, control a product, or enable a system , software is the factor that differentiates . The completeness and timeliness of information provided by software (and related databases) differentiate one company from its competitors. The design and “human friendliness” of a software product differentiate it from competing products with an otherwise similar function .The intelligence and function provided by embedded software often differentiate two similar industrial or consumer products. It is software that can make the difference.

During the first three decades of the computing era, the primary challenge was to develop computer hardware that reduced the cost of processing and storing data .Throughout the decade of the 1980s,advances in microelectronics resulted in more computing power at increasingly lower cost. Today, the problem is different .The primary challenge during the 1990s is to improve the quality ( and reduce the cost) of computcr-bascd solutions- solutions that arc implemented with software.

The power of a I980s-era mainframe computer is available now on a desk top. The awesome processing and storage capabilities of modern hardware represent computing potential. Software is the mechanism that enables us to harness and tap this potential.

The context in which software has been developed is closely coupled to almost five decades of computer system evolution. Better hardware performance, smaller size and lower cost have precipitated more sophisticated computer-based systems. We’re moved form vacuum tube processors to microelectronic devices that are capable of processing 200 million connections per second .In popular books on “the computer revolution,’'Osborne characterized a “new industrial revolution," Toffer called the advent of microelectronics part of “the third wave of change” in human history , and Naisbitt predicted that the transformation from an industrial society to an “information society” will have a profound impact on our lives. Feigenbaum and McCorduck suggested that information and knowledge will be the focal point for power in the twenty-first century, and Stoll argued that the “ electronic community” created by networks and software is the key to knowledge interchange throughout the world . As the 1990s began , Toffler described a “power shift” in which old power structures( governmental, educational, industrial, economic, and military) will disintegrate as computers and software lead to a "democratization of knowledge.”

20th century 60's—70 age

Traditional software engineering

1980s intermediate stages

Object project

At the end of 1980s

Software process project

1990s

Component project

Figure 1-1 depicts the evolution of software within the context of. computer-based system application areas. During the early years of computer system development, hardware underwent continual change while software was viewed by many as an afterthought. Computer programming was a "seat-of-the-pants" art for which few systematic methods existed. Software development was virtually unmanaged—until schedules slipped or costs began to escalate. During this period, a batch orientation was used for most systems. Notable exceptions were interactive systems such as the early American Airlines reservation system and real-time defense-oriented systems such as SAGE. For the most part, however, hardware was dedicated to the union of, a single program that in turn was dedicated to a specific application.

—Evolution of software

During the early years, general-purpose hardware became commonplace. Software, on the other hand, was custom-designed for each application and had a relatively limited distribution. Product software!i.e., programs developed to be sold to one or more customers) was in its infancy . Most software was developed and ultimately used by the same person or organization. You wrote it, you got it running , and if it failed, you fixed it. Because job mobility was low , managers could rest assured that you'd be there when bugs were encountered.

Because of this personalized software environment, design was an implicit process performed in one’s head, and action was often nonexistent. During the early years we learned much about the implementation of computer-based systems, but relatively little about computer system engineering .In fairness , however , we must acknowledge the many outstanding computer-based systems that were developed during this era. Some of these remain in use today and provide landmark achievements that continue to justify admiration.

The second era of computer system evolution (Figure 1.1) spanned the decade from the mid-1960s to the late 1970s. Multiprogramming and multiuse systems introduced new concepts of human-machine interaction. Interactive techniques opened a new world of applications and new levels of hardware and software sophistication . Real-time systems could collect, analyze, and transform data form multiple sources , thereby controlling processes and producing output in milliseconds rather than minutes . Advances in on-line storage led to the first generation of database management systems.

The second era was also characterized by the use of product software and the advent of "software houses.” Software was developed for widespread distribution in a multidisciplinary market. Programs for mainframes and minicomputers were distributed to hundreds and sometimes thousands of users. Entrepreneurs from industry, government, and academia broke away to "develop the ultimate software package" and earn a bundle of money.

As the number of computer-based systems grew, libraries of computer software began to expand. In-house development projects produced tens of thousands of program source statements. Software products purchased from the outside added hundreds of thousands of new statements. A dark cloud appeared on the horizon. All of these programs-all of these source statements-had to be corrected when faults were detected, modified as user requirements changed, or adapted to new hardware that was purchased. These activities were collectively called software maintenance. Effort spent on software maintenance began to absorb resources at an alarming rate.

Worse yet, the personalized nature of many programs made them virtually unmentionable. A "software crisis" loomed on the horizon.

The third era of computer system evolution began in the mid-1970s and continues today. The distributed system—multiple computers, each performing functions concurrently and communicating with one another- greatly increased the complexity of computer-based systems. Global and local area networks, high-bandwidth digital communications, and increasing demands for ’instantaneous' data access put heavy demands on software developers.

The third era has also been characterized by the advent and widespread use of microprocessors, personal computers, and powerful desk-top workstations. The microprocessor has spawned a wide array of intelligent products-from automobiles to microwave ovens, from industrial robots to blood serum diagnostic equipment. In many cases, software technology is being integrated into products by technical staff who understand hardware but arc often novices in software development.

The personal computer has been the catalyst for the growth of many software companies. While the software companies of the second era sold hundreds or thousands of copies of their programs, the software companies of the third era sell tens and even hundreds of thousands of copies. Personal computer hardware is rapidly becoming a commodity, while software provides the differentiating characteristic. In fact, as the rate of personal computer sales growth flattened during the mid-1980s, software-product sales continued to grow. Many people in industry and at home spent more money on software than they did to purchase the computer on which the software would run.

The fourth era in computer software is just beginning. Object-oriented technologies (Chapters 8 and 12) are rapidly displacing more conventional software development approaches in many application areas. Authors such as Feigenbaum and McCorduck [FEI831 and Allman |ALL89| predict that "fifth-generation" computers, radically different computing architectures, and their related software will have a profound impact on the balance of political and industrial power throughout the world. Already, "fourth-generation" techniques for software development (discussed later in this chapter) are changing the manner in which some segments of the software community build computer programs. Expert systems and artificial intelligence software has finally moved from the laboratory into practical application for wide-ranging problems in the real world. Artificial neural network software has opened exciting possibilities for pattern recognition and human-like information processing abilities.

As we move into the fourth era, the problems associated with computer software continue to intensify: Hardware sophistication has outpaced our ability to build software to tap hardware's potential.

Our ability to build new programs cannot keep pace with the demand for new programs.

Our ability to maintain existing programs is threatened by poor design and inadequate resources.

In response to these problems, software engineering practices—the topic to which this book is dedicated--are being adopted throughout the industry.

—An Industry Perspective

In the early days of computing, computer-based systems were developed using hardware-oriented management. Project managers focused on hardware because it was the single largest budget item for system development. To control hardware costs, managers instituted formal controls and technical standards. They demanded thorough analysis and design before something was built. They measured the process to determine where improvements could be made. Stated simply, they applied the controls, methods, and tools that we recognize as hardware engineering. Sadly, software was often little more than an afterthought.

In the early days, programming was viewed as an "art form." Few formal methods existed and fewer people used them. The programmer often learned his or her craft by trial and error. The jargon and challenges of building computer software created a mystique that few managers cared to penetrate. The software world was virtually undisciplined—and many practitioners of the clay loved it!

Today, the distribution of costs for the development of computer-based systems has changed dramatically. Software, rather than hardware, is often the largest single cost item. For the past decade managers and many technical practitioners have asked the following questions:

Why does it take so long to get programs finished?

Why are costs so high?

Why can't we find all errors before we give the software to our customers?

Why do we have difficulty in measuring progress as software is being developed?

These, and many other questions, are a manifestation of the concern about software and the manner in which it is developed-a concern that has tend to the adoption of software engineering practices.

对应中文翻译

软件和软件工程

——软件的出现及列举

在二十世纪八十年代的前十年开始的时候,在商业周刊杂志里一个头版故事大声宣扬以下标题:“软件,我们新的驱动力! ”软件带来了一个时代——它成为了个大家关心的主题。在八十年代中期,《财富》杂志的一个封面故事在哀叹:“一个在发展的软件的缺口 ”在这十年结束时,商业周刊杂志的经理被警告只因为关于那句“软件陷阱自动装置或者其他”。在九十年代破晓之初,在 纽约时代杂志上有个特写询问:“我们能信任我们的软件吗?”并且华尔街时报 叙述了 -家专业软件公司通过辛苦的努力的头版文章题为“创造新的软件是苦恼 的任务。”这件标题和很多其他的类似的,是那种重要的电脑软件的种新的理 解的先兆,是新理解的作先驱计算机软件的重要机会,它提供并且形成的危险。

软件现在已经超过了硬件,作为许多计算机成功的电脑基础系统的钥匙。无论计箅机被用来经营业务,控制-个产品工程,或使系统运行,软件是区分的因素。信息的完整性和实时性由一个公司的不同的竞争者的不同软件(和相关的数据库)提供。软件产品的设计和图案的功能来自人类,区分它从只能选其中之一的产品以个相似的作用来看。那理解力和功能被插入的软件提供,经常区分二种相似的工业或消费品。这就是有利有弊的软件。

在计算机时代的前三十年期间,第一位的主要挑战就是发展电脑计算机硬件减少处理和存放数据的费用。在八十年代的十年过程中,微观电子学的发展导 致计算能力逐步提高而成本却越来越低。今天,问题不同了,在九十年代第位一的主要挑战是发展电脑难础解决办法的软件执行质量(和减少费用被实施以软件的)为主。

一台1980年代主要结构主机的力量是现在一台办公桌上可利用的。现代硬件的令人敬畏的处理和贮藏能力代表计算的潜力。软件是使我们利用和轻拍这潜力的机制。

——软件角色的演变

在计算机系统发展的五十年左右的时间里,软件紧密地配合着其发展。更好的硬件性能,更小的尺寸,更少的花费已经促成更好的计算机基础系统。

我们移动真空电子管处理器微观电子学的设备已有能力每秒运行二亿条指令。在流行书籍上的电脑革命,有科学家描绘它为“一场新的工业革命”。有的科学家说微型电子学的发展是人类历史上第三次巨大的变化,有的预言到一场工业革命在向信息社会发展在我们的生活中将有个意义深远的效果,有的说道电脑控制的信息和知识将成为21世纪的焦点力量,有的提出“电子社区”将被网络工作创造以及软件是世界上相互交换知识的钥匙。

在九十年代初,有的科学家描述到一个力量变速器在旧的建筑(政府的、教 育的、工业的、经济的、军用的〉将一体化作为计算机或者软件导致的知识的民主化。

20世纪60年代一70年代

传统的软件工程

20世纪80年代中

对象工程

20肚纪80年代末

软件过程工程

20世纪90年代

构件工程

1-1软件的演变

1-1描述的是在计算机为主的系统应用区域之内软件的演变的时间表。在早年计算机系统发展期间,硬件进行了连续变动。那吋候软件作为事后的不被注意想法被许多人观看了。计算机编程是少量系统的方法介在的艺术。软件开发实际上是不被关注的直到日程表滑倒了或费用开始升级。在这个期间,批取向被多数系统使用了。也有例外的,茗名的例外足交互式系统臂如早期的美国航空保留系统和实吋针对防御系统。甚至在很大程度上,硬件是执行一个专用执行文件程序的专用物件。

在早年期间,通用硬件变得普遍。软件,另一方面,是按客户要求设计的为各种应用和有相对地打限地发行。

软件产品(i.e,节目显现出被卖对个或更多顾客〉是在联邦税务局初期。多数软件由同样人或组织开发了和最终使用。您写了它,您得到了它的运行,并且如果它失败了,您固定了它。由于工作流动性是降低,如果遇到问题负责人也能放心。

由于这是个人性化的软件环境,设计是在一个人的头脑甩含蓄过地程执行,并且文献经常是不存在的。

在早年我们学会了关于计算机为主的系统的实施,但较少学习关于计算机系统工程。但是,我们必须承认被开发在这个时代期间的计算机为主的系统是有许多卓著之处的。这些令人倾慕的成就有很多保留在今天的使用中提供继续纠错。

第二个时代计算机系统演变(1-1〉跨过了十年即从60年代中期到70年代晚期。

多元化的程序和多用户系统介绍了人与机器互相作用的新概念。交互式技术打开了应用硬件和软件优雅新水平的一个新世界。实时系统能收集、分析,并且 变换数据表多个来源,因此控制过程和生产产品在亳秒而不是分钟。其优点在网上存贮导致了数据库管理系统的第一代。

第二个时代为软件公司出现并且描绘产品软件的用途。软件为普遍发行在一个多重学科的市场上这个目的而被开发了。软件为计算机主机和微型计算机吸引了上百和甚至数以万计的用户。

从此,企业家从产业、政府以及学术界打破了“开发最后软件包”和赢得捆 绑金钱的模式。

如同计算机为主的系统的数量在增长一样,计算机软件图书馆开始扩展。机构内部的发展项目导致了成千上万个程序源语句。

被购买的软件产品从外面增加了成千上万个的新声明。但是犹如一朵黑暗的云彩出现在天际,所有这些程序——所有这些有一些应用是产生的缺点来源状态被査出了被改,当用户要求修改则改变,或适应被购买的新硬件。这些活动集体叫做软件维护。在软件维护上工作人员花费了很多的功夫,但是软件还是以惊人的比率吸收资源得到资源。

更糟糕的是,许多程序的个人化的本质使他们潜伏的盟友失去了运转的可靠性。一个“软件危机”在世界上隐约地出现了。

计算机系统演变第三个时代开始在70年代中期直到今天。分配系统——多台计算机,各一致地起作用并且执行通信,很大地增加了计算机为主的系统的复杂。

全球性和地区网络,高带宽数字通信,己经在软件开发商那里对瞬间数据存取的增长的需求投入了重大需求。

第三个时代为对微处理器的出现和以及其普遍用途,个人计算机,以及强有力的小规模工作站。

微处理器产生了大多智能产品,比如从汽车到微波炉,从产业机器人到血液淸液诊断设济。在许多情况下,软件技术是联合了解硬件的产品的技术职员开发的,但经常是新手在开发软件。

个人计算机是许多软件公司成长的催化剂。如果说第二个时代被卖的是上百或数以万计的软件公司他们的程序的拷贝,第三时代出售就是十和甚而成千上万个的拷贝的软件公司。

当软件提供区分的特征的时候,个人计算机硬件迅速地成为商品。实际上,作为个人计箅机销笸成长率被铺平在80年代中期期间,软件产品销售还在继续増长。许多人在产业和在软件上做购买软件花费的金钱比他们矢的在家会运行的计算机更多。

第叫个时代对计算机软件来说是正义起点。向向对象的技术(章节812 在许多应用范围迅速地偏移更加常规的软件开发方法。

作者臂如[FEI83]以及ALLman[ALL89]预言"五世代"计算机,计算的程序根本不同,并瓦他们的相关软件在世界各地将对政治和工业力量的平衡方面产生深刻的冲击。

现在,“软件开发的第四代”技术(在这个章节里以后会讨论)改变方式软件社区修造了计箅机程序的一些段。最后,专家系统和人工智能软件从实验室进入了现实世界中的广泛问题,成为其实际应用的软件。人工神经网络软件开辟了 扣人心弦的类似人类信息处理能力。

如同我们进入第四个时代的时候,计算机软件的问题继续增强:

问题一:很多性能优越的硬件已经超过了我们建;软件控制硬件的潜力及能力。

问题二 :我们建立新程序的能力无法与对新程序的需求岗步。

问题三:由于粗劣的设计和不充分的资源,我们维护现有的程序的能力受到了威胁。

这些问题的的回应,被采取在产业过程中。软件丁程实践一这本书的题目是热忱的。

——产业透视

在平期计算,程序员开发了计箅机为主的系统使用被安置的硬件管理。项目负责人集中于硬件因为这是为系统开发唯一最大的预算项目。控制硬件费用,负责人设立了正式控制和技术标准。

在某事被建立了之前,他们会要求详以的分析和设计。他们测量过程确定何处能做改进。简单地陈述,他们申请了控制、方法,以及我们认可当硬件工程学的工具。但是很悲哀的是,软件经常只是少许事后的想法。

在早期,编程被观看者观看了但是只是作为“艺术形式”。少量正常方法存在了但是也只有很少人使用了他们。

很多程序员经常地经过反复试验大家的编程艺术,然后学会这些复杂的编程 工艺。计算机软件专科术语的大厦的杂乱无章和攻击性大厦挑战了少量程序员仔 细透视这一奥妙。软件世界是真正的无纪律的一那个吋期很多专业人员爱上了软件世界!

今天,费用的发行被计算机为主的系统的发展显著改变了。软件而不是硬件,经常是最大的唯一费用项目。过去十年经理和许多技术实习者请求以下问题:

为什么它采取如此长期时间得到被完成的编程?

为什么费用是很高的?

为什么我们不可以发现所有错误在我们把软件给我们的顾客之前?

为什么我们当软件被开发时在测量的进展时存困难?

这些,并且还有很多其他的问题,是被程序开发各对软件的关心和对软件工程实践的采纳的关心的种表现的显示。

(注:如需相关资料联系本店)

本文来源:https://www.2haoxitong.net/k/doc/10b177e0bb68a98270fefa32.html

《网上教务评教管理系统设计方案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式