软件工程是一门旨在研究计算机软件开发与维护的普遍原理和技术的工程学科。它的研究范围涉及到技术方法、软件工具、科学管理等诸多方面。实践证明:在软件的设计和开发过程中,运用软件工程的方法,可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。
学生成绩管理系统的设计和开发是一个较为庞大的系统工程,应以软件工程的思想和方法为指导,进行设计和开发。软件工程理论对本系统的指导,主要表现在:帮助我们理清思路,建立较为科学的结构和开发制作流程方面。上述的各种理论,对我们设计和开发学生成绩管理系统提供了重要的理论基础,同时也为我们如何进行具体的设计和开发工作,提供了必要的思路和方法。
2.1 教育系统学生管理现状分析
2.1.1 学校工作流程分析
学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。
新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。
在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。
每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,然后年级组长再进行汇总,并对本年级各科成绩及总成绩进行排名。
教务处、年级组长、班主任及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。 2.1.2 学校具体需求分析
学生:对各科成绩的查询及查看本班成绩排名等情况。
任课老师:输入并维护所教科目的学生成绩,计算本科的成绩排名、本科成绩在班上的排名。 输出本班科目的成绩及排名情况。
班主任:输入并维护本班的基本信息,对本班的各科成绩汇总,计算各科成绩的总分,排名,本班平均分等需求。
输出学生的基本信息,各科的成绩及各科成绩的部分,各科成绩的排名,总分的排名情况。
5
教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具体的管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护,可打印学生的所有信息。 2.1.3 系统设计思想
1.采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。
2.系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。 3.系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。 2.1.4 系统设计分析
本系统适用于中小学校,其功能主要分为六大类:
用户管理:用于对用户的添加,赋于不同权限及对用户的修改及查询。 课程管理:用于对各学期课程的开设和修改。 成绩管理:用于对成绩的输入、修改、汇总及排名。 学生信息管理:添加,删除,修改学生信息等。
授课信息管理: 对授课教师,课程号,学时数,班级等信息的添加,维护等。
学生信息查询: 对学生成绩等信息的查询,查询方式为模糊,且具有多条件组合查询功能。 学生成绩统计: 统计本科的总分,平均分等信息。
本系统性能力求易于使用,具体有较高的扩展性和可维护性。 2.1.5 系统功能分析
权限功能:系统具有动态的权限分配功能,可按用户权限对用户进行分组。可分为普通用户,一般用户,超级用户。普通用户只是查询不能修改,一般用户只能对授权范围内进行相应修改及删除,超级用户能修改、删除所有信息。
录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。 查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。
维护功能:为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。
退出功能:结束并关闭系统。 2.1.6 学生学籍系统的目标 节约资源,提高学籍信息的精确度
6
本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
方便快速操作,精减人员,节约开支
方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。 数据库分析
用户需求具体有学籍管理系统提供保存、更新、查询、维护和打印,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
2.2 基于B/S结构技术的应用
2.2.1 B/S结构技术发展简述
随着IT技术的高速发展, 互联网几乎已经渗透到人们生活的每一个角落。而网络技术与数据库技术的应用,则大大改变的人们的学习、生活与工作的方式,提高并丰富了人类生活。互联网的发展应用促使网页技术的产生。但在不久后,人们对静态页面并不满足,随后出现了采用CGI(Common Gateway Interface通用网关接口)和ISAPI(Internet Server Application Program Interface互联网服务器应用程序接口)来编写网页,但它们的编程比较复杂,用Perl或者是VC进行编写,将HTML标识嵌入代码中,维护相当困难。 此后,随着技术日新月异的发展,相断出现了ASP,PHP,JSP等网站开发技术,它们给网站开发带来了一阵狂潮。ASP是一个Web服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的Web服务应用程序,ASP支持VBScript,JavaScript等多种脚本语言。PHP是一种跨平台的服务器端嵌入式脚本语言。其大量地借用C,Java和Perl语言的语法,并耦合PHP自身的特性,使Web开发者能够快速地生成动态页面,PHP是完全免费的,而且可以不受限制地获得源代码,甚至可以按用户需要进行个性化设计。JSP是Sun公司推出的新一代网站开发语言,具有很强的多平台支持和极大的伸缩能力,JSP可在Serverlet和JavaBean的支持下,建立功能强大的Web应用程序。
7
在推出ASP之后,微软于1998年又发布了ASP2.0,其与ASP1.0的主要区别是ASP1.0外部的组件需要实例化。在这之后,Microsoft又推出了ASP.Net,它并不是ASP的简单升级,而是全新的一个动态网页实现体系。ASP.Net是微软发展的新的体系结构.NET的一部分,其策略是将互联网本身作为构建新一代操作系统的基础,对互联网和操作系统的设计思想进行合理延伸,这样开发将可创建出摆脱设备硬件束缚的应用程序,轻松实现互联网连接。 2.2.2 动态网站开发技术比较
现在,在互联网中流行着多种动态网页实现技术,例如ASP、JSP、CGI、PHP等。对应于这些动态网页技术,也存在有多种多样的Web服务器系统,例如Microsoft IIS、Apache、Cold Fusion等。而对于这些实现动态网页的技术,ASP.NET技术可以说是现在最为流行和应用最为广泛的一种。ASP.NET向世界展现了一种更为领先的技术,这正是它推出不久就深受开发人员青睐的原因。
WEB开发与数据库是密不可分的。目前流行的数据库有Microsoft公司的SQL Server 2003,IBM公司的DB2,开源的MySQL,以及Oracle公司的Oracle 9i等。在ASP.NET Web开发最受青睐的是Microsoft公司的SQL Server 2003。 动态网站语言及技术比较: (1)ASP,JSP,PHP共同点
都提供在HTML代码中混合某种程序代码,由语言引擎解释执行程序代码的能力。在这种方式下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP,PHP,JSP页面则需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送到浏览器。 都是面向WEB服务器的技术,客户端浏览器不需要任何附加的软件支持。 (2)ASP,JSP,PHP的平台支撑区别
ASP是微软公司开发的动态网页语言,也继承了其产品一贯的传统,只能执行于微软的服务器产品IIS或者PWS上。虽然在UNIX下也有Chili Soft的组件来支持ASP,但是因为ASP本身的功能有限,所以必须通过ASP+COM的群组合来扩充。
PHP3可以在Windows,UNIX,Linux的WEB服务器上正常运行,还支持IIS,Apache等一般的Web服务器,有相当好的跨平台性。
JSP与ASP在技术方面有很多相似之处,都是基于WEB应用实现动态交互网站的技术环境,但也有很多不同之处,两者的本质区别在于来源于不同的技术规范组织,其实现的基础――Web服务器平台要求不同。JSP技术基于平台和服务器的相互独立,技术支持由广泛
8
的,专门的各种工具包,服务器的组件和数据库产品开发商提供,相比之下,ASP技术则主要是靠Microsoft的支持。Jsp可支持任何Web服务器,包括Apache,IIS等,并技术绝大多数的流行平台,包括Solaris操作系统,Windows操作系统,MAC OS,Linux及其他NUIX系列平台。
(3)ASP,JSP,PHP的应用情况
PHP存在着缺乏规模支持,缺乏多层结构和提供的数据库接口支持不统一等缺点,因此PHP不适合应用于大型电子商务站点或者大型的基于B/S结构的应用程序,其适合应用在一些小型的商业站点。
ASP和JSP则没有以上缺陷,ASP可通过COM/DCOM获得ActiveX规模支持,通过DCOM和Transaction Server获得结构支持;JSP则可通过Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。
目前国内ASP与PHP应用最为广泛,尤其是ASP。而JSP则在国外非常流行,国外电子商务类的网站许多都采用JSP。
(4)ASP.Net -----全新的Web开发理念与技术
由于ASP的核心编辑语言为VB Script或JavaScript等脚本语言,这决定了ASP先天不足,它无法进行象传统编程语言那样的底层操作,所以如果需要进行一些诸如socket,文件等的操作时不得不借助于其它传统语言。而 PHP则存在着缺乏规模支持,缺乏多层结构和提供的数据库接口支持不统一等缺点,只适合应用于一些小型商务网站或者业务处理系统。另外,ASP与PHP等都属于解释型的编辑架构,其运行是边解释边执行的,因此在运行效率上会有很大的损失。所以,在开发本系统的时候,我选择了微软新一代的Web开发技术――ASP.Net。
ASP.Net有以下几个重要的优点: (1)强大的动态Web支持:
ASP虽有较大的灵活性,但效率不高,且缺乏面向对象的设计,从页导致ASP代码比较凌乱,开发维护都相对困难。ASP.Net为Web页面提供了一种集成式的支持。使用ASP.Net,可以编译页面中的代码,而这些代码可以运用高级语言来编写,因此易于实现并有较高的运行效率。
(2)高效的数据访问技术:
9