软件开发综合实验教学案例.docx
- 文档编号:23655063
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:49
- 大小:866.86KB
软件开发综合实验教学案例.docx
《软件开发综合实验教学案例.docx》由会员分享,可在线阅读,更多相关《软件开发综合实验教学案例.docx(49页珍藏版)》请在冰豆网上搜索。
软件开发综合实验教学案例
软件开发综合实验教学案例
软件教研室
西南科技大学计算机与技术学院
2007年5月
一、案例设计概述
本实验课程是软件专业的综合实验。
通过综合性实验的设计,使软件工程专业的学生综合训练自己的分析问题、解决问题的能力,积累软件开发的工作经验,结合所学的软件开发理论,指导综合性应用系统的开发实践,提高学生专业开发所需具备的专业素质以及团队协作能力。
为以后完成毕业设计和从事软件系统开发工作打下坚实的基础。
针对本实验的目的和要求,我们设计了一个完整的案例,帮助同学正确了解软件开发过程中各阶段的任务。
培养同学们软件开发能力的目的,从而达到实验的教学目的。
1.1案例简介
本案例参照目前高校教务部门的毕业设计题目管理工作流程实现毕业设计题目管理信息系统。
通过该管理系统教师可以网上提交毕业设计题目申报信息;教学管理办公室按照相应标准审核申报的毕业设计题目申报信息;毕业学生可以网上查看、选报审核通过的题目;教学办审核学生的申请,确定学生的申报请求;并提供相应的查询功能。
1.2系统运行环境的选取及搭建说明
系统采用J2EE的技术方案,系统运行在TOMCAT+MYSQL环境下。
1.2.1tomcat的选取
Tomcat有自己的一些优点:
它占用内存少,Tomcat只需9MB以下的内存,同类产品则需要大约200MB内存;它是100%的纯Java。
Tomcat能在任何支持JDK(1.1.x或1.2及更高版本)的系统上运行;它开放源代码,并且免费。
Tomcat的开放源代码特点使得它便于调试,且有助于人们了解servlet容器引擎的工作原理;它是正式的,由于Tomcat是正式的J2EE参考实现,因此用Tomcat开发的应用程序应该能用于任何商业servlet容器。
某些商业servlet容器事实上将Tomcat代码库作为了其实现的一部分;它能处理HTTP请求。
在开发servlet的过程中,Tomcat不需要Web服务器。
这就省去了对诸如Apache等的Web服务器的需要—这对于内存有限的工作站和服务器来说是个很好的特性。
此外,工作中有了Tomcat,就无需编写自己的HTTP请求和响应代码了。
(但是请注意,在生产环境中仍强烈推荐使用一个Web服务器。
Tomcat对HTTP传输的支持是针对开发环境而非生产环境的。
);它的兼容性良好。
Tomcat通过为Apache、Netscape和IIS提供连接器,可与更为流行的Web服务器相结合。
这意味着能方便地在NT上完成工作,然后将它转移到运行Netscape的Solaris上,或者运行Apache的Linux。
因此,本系统选择了Tomcat作为服务器。
该系统所使用的tomcat版本是tomcat5.0的安装版。
可以在http:
//jakarta.apache.org网站上下载。
下载后可以按照安装步骤直接安装。
1.2.2mysql的选取
现如今,每一个人的生活都几乎离不开数据库,如果没有数据库,很多事情都会变得非常棘手,也许根本无法做得到。
银行、大学和图书馆就是几个严重依赖数据库系统的地方。
学院网站的开发自然也离不开数据库。
在现在流行的数据库之中我们最终选择了MYSQL,是基于以下考虑的:
在目前市场上运行最快的SQL(StructuredQueryLanguage结构化查询语言)数据库之一就是MySQL。
MySQL是一套好用的数据库,它支持JSP,所建设好的数据库不但可以跨平台还可以跨语言使用。
并且,MySQL是一个多平台、工业级的关系数据库引擎,它已经被广泛应用于大型数据库应用程序,这些应用程序中含有许多数据表,数据表中可能含有成百上千的记录。
尽管它没有一些大而昂贵的商用数据库服务器的功能,但事实证明,对于那些基于web的,对数据库要求不是非常高的应用程序来说,MySQL足够了。
MySQL具有下列主要的功能特点:
1.可以同时处理几乎不限数量的用户;
2.处理多达50,000,000以上的记录;
3.命令执行速度相当快;
4.简单有效的用户特权系统。
MySQL是免费的。
这使我们在支持正版和节约开发经费之间找到了一个很好的平衡点。
因此,MySQL的快速和灵活性足以满足毕业设计管理系统的信息管理工作。
本系统使用的数据库是mysql-5.0.1的免安装版。
1.2.3java运行环境的搭建
首先在网站上下载j2sdk1.4.2,下载后进行安装。
安装的路径为“C:
\j2sdk1.4.2”。
然后就是设置环境变量。
操作系统为windows系列,其环境变量的设置如下:
1、右键点击“我的电脑”选择“属性”选项,然后点击“高级”按钮,再点击“环境变量”按钮;
2、在“系统变量”中点击“新建”按钮在变量名中输入“JAVA_HOME”,在变量值中输入“C:
\j2sdk1.4.2”;
3、按照第二步新建变量名为“CLASSPATH”变量值为“C:
\j2sdk1.4.2\lib\tool.jar.;”;
4、在“系统变量”中找到变量名为“path”,双击它,然后在变量值中添加“;%JAVA_HOME%\bin”;
检验环境变量是否正确:
在命令行中输入“java”命令没有出现如下信息“'java'不是内部或外部命令,也不是可运行的程序或批处理文件.”,如果输入“javac”命令没有出现如下信息“'java'不是内部或外部命令,也不是可运行的程序或批处理文件”,而是出现其它信息,则证明环境变量设置正确。
1.2.4Tomcat的安装
安装完JDK以后,安装Web服务器Tmocat,首先需要到Tomcat官方站点http:
//www.apache.org下载Tomcat。
现安装和使用的版本为Tomcat5.0。
1、根据安装向导单击[next]按钮→[IAgree],在弹出的组件选择安装界面中选择安装模式,然后[next]按钮。
2、在安装路径界面中选择安装路径。
如“c:
\Tomcat5.0”,然后[next]按钮。
3、进入端口与管理员设置界面,配置Tmocat的端口号。
Tomcat默认端口号是8080,如果该端口已被其他软件占用,就需要配置一个没有被占用的端口,然后[next]按钮。
4、选择JAVA虚拟机路径,Tomcat会自动检测到JDK的路径“C:
\j2sdk1.4.2”。
然后[install]按钮,开始安装Tmocat。
5、测试。
检查tomcat是否安装成功可以在IE中输入http:
//localhost:
8080如果在IE中显示tomcat服务器的主页面时则证明tomcat服务器安装成功(注:
8080为端口号,安装是默认的端口号是8080,如果安装时修改了,则在IE中输入http:
//localhost:
安装时输入的端口号)。
TOMCAT安装完成后可以通过http:
//localhost:
8080/成功访问TOMCAT欢迎页面,证明安装成功。
1.2.5MYSQL的安装步骤:
到网址http:
//下载mysql-5.0.1-alpha-snapshot-win-noinstall.zip压缩包,然后把它解压到C:
\mysql文件夹下;
1、将数据库驱动程序mysql-connector-java-3.1.4-beta-bin.jar文件复制到Tomcat5.0\common\lib里。
2、在命令行中进入到“C:
\mysql\bin”目录下;
3、在命令行中输入mysqld-nt–install安装命令;
4、在第三步中提示的安装成功后面输入netmysqlstart命令,则提示mysql已经启动则证明mysql安装成功,或者在系统管理工具中的服务中将MySQL手动启动。
5、建立名为bs的数据库;
6、导入数据:
将bs.sql拷到C:
\mysql\bin目录下,在命令行中输入mysqlbs 1.2.6程序开发工具的选取 在计算机开发语言的历史中,Java语言受到了众多厂商的支持,有很多的开发工具。 编程工具只是工具,为了方便人们工作而开发的,各有特点,因此,选工具主要的依据自己将要从事的领域是什么,而不是盲目的认为那种工具好,那种工具不好。 下面将JDK、Jbuilder和Eclipse的优点和缺点作了个比较,并根据本系统的实际需要选择了合适自己的java开发工具——Eclipse。 Eclipse是一种可扩展的开放源代码IDE。 2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。 集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。 为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。 Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。 Eclipse框架的这种灵活性来源于其扩展点。 它们是在XML中定义的已知接口,并充当插件的耦合点。 扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。 任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。 除了了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。 利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。 事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。 Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。 Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。 这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。 缺点就是较复杂,对初学者来说,理解起来比较困难。 从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。 JDK的另一个显著特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。 但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。 虽然JBuilder环境开发程序方便,是纯的Java开发环境,适合企业的J2EE开发;但一开始人们难于把握整个程序各部分之间的关系,且对机器的硬件要求较高,比较吃内存,运行速度显得较慢。 因此,根据本系统的需要,选择了程序开发工具Eclipse。 Eclipse是一种可扩展的开放源代码IDE。 允许在同一IDE中集成来自不同供应商的工具,实现了工具之间的互操作性,从而显著改变了项目工作流程,使我们可以专注在实际的嵌入式目标上利用Eclipse,可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 1.2.7Eclipse的安装 到网址http: //www.eclipse.org下载eclipse软件的安装系统。 解压系统到eclipse的安装目录。 到网上下载开发WEB程序所需要的插件和eclipse的汉化插件。 插件下载后解压到对应的文件夹下。 在eclipse中设置tomcat的路径和引入jdk中的jar文件 测试eclipse中的tomcat环境是否设置正确,主要看在eclipse中启动tomcat是否能够启动起来,如果顺利启动tomcat则证明在eclipse中tomcat设置正确。 二、案例需求分析设计 2.1可行性分析 1、技术可行性 可运用JSP技术进行开发,并结合适当的操作平台(window2000)及服务器(tomcat),建立Web服务器站点,实现与Internet的网络连接,用Mysql作为数据库。 2、经济可行性 本系统逻辑相对简单,开发周期较短,故成本不高,应用于毕业设计管理可以提高工作效率,使每个学生的选择更加公平,完善管理。 3、操作可行性 本系统主要是为了让学生在网上查询并选择毕业设计,教师也可以在网上申报、修改、查看毕业设计题目并查看选择了自己毕业设计学生名单。 通过强大的查询功能,学生和教师都能容易的找到自己想要的信息,并做出自己的选择。 用户是学生和教师。 系统界面美观,操作简单,只要用户会汉语和懂得基本的计算机操作就可以自如的使用本系统。 2.2需求分析 明确该系统用户的具体需求,写出系统需求说明书,毕业设计管理系统功能需求如下。 2.2.1系统需求 毕业设计管理系统主要用于管理毕业生毕业设计的相关工作。 系统提供给了学生和老师通过Web浏览器在任何可以连到教务WEB服务系统的地方分别进行相应的操作。 系统需要满足来自三方面的需求,这三方面分别是教师,学生和教学办老师。 学生可以选择毕业设计题目,更改选择、查看自己的选择、修改个人密码等;教师可以申报毕业设计题目、更改题目、查看选择自己题目的学生、修改个人密码等;教学办老师可以审核毕业设计题目、审核学生的毕业设计选择、管理毕业生和教师资格、修改个人密码等。 首先,由学院教师根据自己的研究方向或者当前教学、社会服务的实际需要,拟定毕业设计题目。 毕业设计题目的拟定,要贯彻因材施教原则,使各类学生在知识水平和能力培养上有较大提高,鼓励学生有所创新。 题目的类型可分为设计型和研究型。 教师在学院主页教师模块上填报好自己的毕业设计题目后提交到教学科,提交后教师将没权修改毕业设计题目。 教学科管理员根据题目的具体要求对其进行审核,需要修改的题目通过网上控制反馈给教师,教师则能够修改题目内容。 修改后又提交到教学科审核。 满足要求的毕业设计题目将通过审核,通过审核后的题目显示给学生作为毕业设计的选择题目,毕业生可查询到题目的详细信息,选择符合自己兴趣的课题,并与指导教师联系。 毕业生在学生模块按照规定的题目个数选择好毕业设计题目后提交到教学科,在教学科管理员还未对此进行审核之前,学生有权修改所选择的毕业设计题目,教学科管理员针求指导教师的意见对学生的选择情况进行审核后,学生的毕业设计题目将不允许发生变动。 最终的结果将显示在教师和学生信息模块中。 由于数据量特别多,在设计时应充分考虑到了这一点,在操作的时候能够更简单,更人性化。 所以在设计中需要实现满足多种条件的查询功能,用户和管理员能够在大量的数据中利用自己所知的一部分信息,能够快速准确的查找到所需要的信息,然后对其进行操作。 此外,强大的查询功能还能为管理者了解老师的申报题目情况和学生的选择题目情况,提供了强大的平台支撑。 2.2.2性能需求 基于以上对毕业设计管理系统需求的分析,对该系统的性能需求如下: 1、可靠性 毕业设计信息资源的高可用性对毕业设计管理工作来说是至关重要的,系统要求采用性能优越的数据库系统。 这样有利于提高大批量数据的吞吐时间,使整个系统管理规范化;而且随着数据库的增大和操作扩展到一天24小时、一周7天,能够执行备份操作而不影响系统的正常运转。 此外,在灾难性故障发生后能够还原数据库,能在最短时间内还原它,使数据的完整性、安全性得到保障。 为了确保整个系统运行的可靠性,系统应具有强大的容错能力。 2、可扩展性 全部系统完成以后,将统一管理毕业设计相关工作,涉及上千名毕业生和教师。 因此,网络活动必须能实时控制和管理,每年毕业设计的要求都会根据当年的具体情况而有所不一样,系统要求能够封装实现策略,把能够解决同一类应用的程序代码封装在类中,对外只提供公有的接口,从而提高今后修改数据结构或算法的自由度。 精心确定公有方法,在开发出的系统的基础上能够很好地添加新的功能。 系统网络结构应易于扩充,以满足今后不断增加的用户端的需求和可能出现的大任务负载。 3、可维护性 毕业设计管理系统维护需要的工作量比较大,因此要求系统的设计能够让软件维护人员很容易地理解、改正、改动和改进系统。 减少软件维护所需的工作量,降低软件系统的总成本。 而文档是影响软件可维护性的决定因素,要求有描述系统功能和使用方法的用户文档和描述系统设计、实现和测试的系统文档。 4、可复用性 软件复用性是提高软件开发生产率和目标系统质量的重要途径。 面向对象方法的一个主要目标,就是提高软件的可复用性。 要求能够提高设计系统方法的内聚,减少方法的规模,保持方法的一致性以及把策略和实现分开。 要求在编程时不要把策略和实现放在同一个方法中,把算法的核心部分放在一个单独的具体实现方法中,从策略方法中提取出具体参数,作为调用实现方法的变元。 5、可交互性 系统的建立就是为了给学院的管理者,教师以及学生带来方便,给师生们提供一个方便简易的操作平台。 因此系统要求采用Web界面的形式,客户机中只要安装普通浏览器即可。 模块之间具有很强的独立性,用户可以在不同的客户端对不同模块并行操作,具有简单易用、使用方便的特点。 因此要求用户界面友好,操作方便。 2.2.3功能需求 该系统需要分为三个模块: 教师模块、学生模块和教学办模块。 1、教师模块: (1)毕业设计题目申报 可由老师在毕业设计立题申报页面中填写毕业题目申报表格,老师把申报毕业设计的相关信息填好后提交,并在操作时提供系统安全性提示。 (2)毕业设计题目修改 当教学办管理员将题目设置为可修改,那么教师就可以在修改页面里看到相应的题目,点击修改就可以进行修改。 (3)毕业设计题目查询 要求能够查看到所有的毕业设计题目信息,包括毕业设计题目名称、教师姓名、联系电话、计划人数、选择人数、时间、是否审核和可否修改这些内容。 有一个按钮能控制题目是否能够修改,可以根据需要,输入题目名称、负责教师姓名、或选择时间、题目人数是否已经选满、题目是否被审核来进行个别查询。 (4)毕业设计选择情况查询 教师可以看到自己毕业设计题目的选择情况,包括选择了自己题目的学生名单、班级、联系方式等。 (5)毕业设计最终结果查询 要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。 (6)个人密码修改 要求能够进行登陆用户自己密码的修改。 2、学生模块: (1)毕业设计题目选择 学生可以在该页面查看到所以已审核的毕业设计题目,然后选择自己志愿的题目,当选择的题目超过三个或者选择了重复题目时会提示错误。 (2)毕业设计选择情况查看 在该页面学生可以看到自己已选了的题目。 (3)毕业设计最终结果查询 要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。 (4)个人密码修改 要求能够进行登陆用户自己密码的修改。 3、教学办模块: (1)毕业设计题目审核 要求能够查看到所有没有被审核教师申报的毕业设计题目以及题目的详细信息,能按照题目名称和教师姓名进行个别查询,能够准确无误地实现对题目的审核和删除操作。 (2)毕业设计题目查询 要求能够查看到所有的毕业设计题目信息,包括毕业设计题目名称、教师姓名、联系电话、计划人数、选择人数、时间、是否审核和可否修改这些内容。 有一个按钮能控制题目是否能够修改,可以根据需要,输入题目名称、负责教师姓名、或选择时间、题目人数是否已经选满、题目是否被审核来进行个别查询。 (3)毕业设计学生查询 要求能够查看到所有符合选择毕业设计条件学生的信息,包括学号、学生姓名、班级名、联系电话和电子邮箱。 可以对学生的信息进行删除、添加和修改操作。 (4)毕业设计学生审核 要求能够查看到所有选择了毕业设计题目学生的选题情况,能按照题目名称或教师姓名进行个别查询,能够准确无误地实现对学生所选题目的审核和删除操作。 (5)毕业设计结果查询 要求能够查看到所有被审核了的学生以及他们的最终毕业设计题目,包括毕业设计题目、教师姓名、学生姓名和学号。 能按照学生姓名、学号或教师姓名进行个别查询。 能够进行删除操作。 (6)个人密码修改 要求能够进行登陆用户自己密码的修改。 (7)教师基本信息查询 要求能够查看到所有教师的基本信息,包括登陆号、姓名、联系电话和身份。 可以对教师的信息进行删除、添加和修改操作。 三、案例设计方案的设计 在需求分析的基础上,可以进行设计方案的选择工作。 3.1设计方案比较 1、设计方案1 用JSP+JAVABEAN技术来实现,JSP作为视图,同时也有部分控制器的功能,JAVABEAN组件作为模型和控制器,当HTTP请求到达JSP时,它首先设置JAVABEAN组件的属性,然后调用JAVABEAN组件的方法,JAVABEAN组件通过连接数据库来执行业务逻辑,最后JAVABEAN组件把执行的结果返回给JSP页面,数据传递关系如图1所示。 View 设读 置取 JDBC Model/Control 图1方案1数据传递关系图 方案1优点: 程序编码简单,客户端传送的参数将在另一个页面进行处理,复杂的逻辑处理都在JAVABEAN中进行。 方案1缺点: 维护性差,扩展性差,所有的页面控制都将在页面进行,导致页面中的JAVA代码过多,使用效率降低。 2、设计方案2 用JSP+JAVABEAN+SERVLET技术,主要是通过客户端请求首先发送到SERVLET,SERVLET执行一些必要的操作处理,然后调用JAVAEBAN组件,通过JAVABEAN组件来连接数据库并执行逻辑处理,操作完成后用JAVABEAN来封装执行的结果,然后把结果保存到请求的对象中,最后把视图发送到显示的JSP页面,JSP页面读取SERVLET的执行结果进行显示。 数据传递关系如图2所示。 View 设置Control Model读取 JDBC 图2方案2数据传递关系图 方案2优点: 各组件分工很明确,层次关系清楚,开发页面易于维护,在此模式中,JSP用于显示,它充当视图的角色,SERVLET用于传递参数等,它充当控制器的角色,JAVABEAN组件用于执行业务逻辑,相当于模型角色。 方案2缺点: 与方案1相比较,模式2程序编码相对来说比较复杂,它的逻辑处理以及控制都在JAVABEAN和SERVLET中完成。 3.2设计方案选择 鉴于以上两种设计方案的优缺点,本小组成员讨论出了自己的设计思想: 系统采用跨平台性能较好的Java编程语言,编码严格按照面向对象的思想来进行,所有的后台处理都放在类里实现,不采用Servlet来进行后台处理,这样做是因为对权限进行配置时对Servlet的配置比较麻烦。 后台处理主要分为公用部分和后台处理类。 前台的所有对数据库的操作一定要调用后台类或公用类来实现。 在后台类中为了达到功能单一、高内聚低偶合的目的,把类的操作和数据库的操作分开。 在前台中尽量不把后台类声明为JavaBean的形式,最好用new运算符生成一个对象,再用对象来调用类中的方法。 这样,便于对系统的维护和修改。 为了能够更好控制数据库的连接和关闭,在JSP页面中不能出现对数据库的连接语句,将对数据库的连接和关闭都放在后台的公用类中。 在JSP页面中能用JavaScript实现的功能尽量不使用Java语言来实现,虽然JSP实现了动态页面,但是在服务器端执行,而JavaScript不需要Java编译器,是直接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 综合 实验教学 案例
![提示](https://static.bdocx.com/images/bang_tan.gif)