1、软件工程课程作业社团在线报名系统组 长: XXX(201211671123)小组成员: XXX(201211671128) XXX(201211671130) 专业: 信息管理与信息系统 班 级: 指导教师: 年 月 日目录1.课程作业概述(完成人:XXX)11.1课程设计目的11.2课程设计的任务11.3课程设计采取的基本原理和主要技术方法11.4开发阶段任务及角色分工12.可行性研究(完成人:XXX)22.1编写的目的22.1.1目的22.1.2预期读者22.2问题定义22.2.1开展该工程的原因22.2.2该工程的基本目标22.2.3经济目标22.3可行性研究的方法及评价度32.3.1可
2、行性研究所采用的方法32.3.2评价尺度32.4工作产品32.4.1设计目标32.4.2设计及约束条件32.4.3产品工作原理32.4.4产品系统流程图42.4.5数据流图52.4.6数据字典52.4.7产品功能62.4.8技术方面可行性62.5可选方案62.6投资及收益分析62.6.1市场分析72.6.2投资估计72.7社会因素方面的可行性72.7.1技术72.7.2使用方面的可行性72.8产品可检测性72.8.1检测标准82.8.2检测方法82.9产品的可生产性82.10可行性综合分析83.需求分析(完成人:XXX)83.1任务概述83.1.1目标93.1.2运行环境93.1.3条件和限制
3、93.1.4数据库描述93.2社团管理数据流图103.2部分数据字典的内容113.3功能需求113.3.1系统功能设计123.3.2社团信息管理功能123.3.3社团账号管理:123.3.4用户账号管理:123.3.5社团信息展示功能123.3.6学生报名功能123.3.7学生报名信息管理功能123.4性能需求123.5数据描述133.5.1E-R图133.5.2静态数据描述143.5.3动态数据153.6小结164.概要设计(完成人:XXX)164.1系统结构164.1.1社团账号管理模块:184.1.2社团信息管理模块:184.1.3学生报名信息管理模块:184.1.4用户账号管理模块:1
4、84.1.5社团信息展示模块:194.2数据库表194.2.1数据库表说明204.3个人总结205.详细设计及实现(完成人:XXX)205.1各个JavaBean类UML类图 (属性)205.2各JavaBean关联结果215.3公用分页JavaBean:pageBean225.4各个类属性和方法的详细描述225.4.1公有的Dao类 DaoSupport225.4.2公有Action BaseAction235.5 Service类245.5.1用户Service245.5.2社团Service255.5.3社团相片Service255.6 Action类265.6.1首页Action265
5、.6.2社团Action275.6.3 学生Aciton305.7整个系统类调用流程305.8系统的关键问题315.8.1如何使用富文本编辑器(kindeditor)保存社团的相片?315.9部分关键伪代码如下:336系统测试(完成人:XXX)346.1测试的目的与目标346.2测试方法346.3测试项目356.3.1学生注册测试356.4测试小结367使用说明(完成人:XXX)377.1使用说明377.2可能遇到的问题378小组总结(完成人:XXX)37 391. 课程作业概述(完成人:XXX)1.1课程设计目的把软件工程中规范化的软件开发方法应用到本次社团在线报名系统的开发过程中,以经济地
6、开发出高质量的软件并有效地维护。1.2课程设计的任务根据软件工程开发工程的过程,分析设计一个社团在线报名系统1.3课程设计采取的基本原理和主要技术方法本系统专门针对学校的社团报名和管理而开发的一个功能齐全、操作简单的社团在线报名系统。适合学校的学生及社团管理人员使用。本系统实现以下基本功能:学生可以在线查看各社团详细介绍,对开放报名的社团可以在线提交学生信息进行报名。社团管理人员可以实时根据邮箱提醒查看报名表,进入系统查看报名表,并下载,还可以对报名信息进行统计。本系统是采用MyEclipse10.0来开发的,采用MySQL5.1 的数据库管理系统,采用面向对象的设计方法。1.4开发阶段任务及
7、角色分工组长:XXX(学号:201211671123)主要任务:分析系统的可行性并确定设计的主要目标,总结各组员收集的信息,为个组员分配任务,协调组员之间的关系。完成详细设计及实现还有管理和整理文档工作并做总结。辅助程序员:XXX(学号:201211671130)主要任务:主要辅助系统的可行性研究、需求分析。辅助程序员:XXX(学号:201211671128)主要任务:主要负责系统的概要分析、系统测试。2.可行性研究(完成人:XXX)2.1编写的目的2.1.1目的这份可行性研究报告是对社团在线报名系统做的可行性研究分析及指出存在的必要性。2.1.2预期读者软件管理人员,开发人员,维护人员。2.
8、2问题定义2.2.1开展该工程的原因由于现今大学校园学生社团数量大,学生多,社团宣传,手工报名操作,需要付出大量的人力、物力,效率低,因此为了方便社团推广,调高工作效率,减轻工作人员负担,君顶开发社团在线报名系统。2.2.2该工程的基本目标开发次社团在线报名系统,以提供方便社团方便推广,管理报名信息,学生方便了解社团,报名社团。同时提高我们的软件开发能力,提高工作涉及思想,想通过本次的工程开发及与老师的交流,使小组成员从中学习知识吸取经验,为今后高层次的软甲开发准备知识。2.2.3经济目标由于本社团在线报名系统开发的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重小组成员整体水平的
9、提高。2.3可行性研究的方法及评价度2.3.1可行性研究所采用的方法本小组成员都拥有MyEclipse编程经验,也具有mysql是使用经验,因而开发此次社团在线报名系统采用MyEclipse结合MySQL的数据库系统开发。2.3.2评价尺度本软件暂时知识一个初级产品,实现的功能也只能完成初步的工作。2.4工作产品2.4.1设计目标本工程的设计目标就是为社团管理,及学生报名提供便捷,省去大量诸如手工登记的操作,提高工作效率,推动社团报名管理无纸化。2.4.2设计及约束条件a 软件系统的界面要美观,布局要合理,窗口的内容尽量简明和提供信息,语言要通俗易懂,有层次感,清晰易懂。b 系统功能要尽量符合
10、一般社团要求,操作符合正常人思维2.4.3产品工作原理a 先建立数据库和加载数据库驱动b 使用前,社团管理人员先注册登录后台管理系统c 登录后,社团可以对本社团信息进行编辑修改,可以修改招新信息d 发布信息后,前台页面显示社团发布的信息,学生可以进行查看e 学生报名社团,需先注册登录后方可进入报名界面填写报名表信息并报名f 报名成功后,系统会根据社团注册所留下的邮箱向该社团邮箱发送一份表示有新报名表的邮件g 社团可以登录并查看报名表,并可以下载成word格式2.4.4产品系统流程图图2.1 系统流程图2.4.5数据流图2.4.6数据字典数据字典是关于数据的信息的集合,也就是对数据总包含的所有元
11、素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统是作为一个必要的工具。本数据字典主要定义数据字典3个主要字段内容,具体说明如下:1、 名字:数据元素的名字,作为在数据流图中的标示符,显示数据流的内容。2、 描述:是对这个名字代表的数据流进行简单的描述,以加深理解:3、 位置:表示这个数据流的来源以下是图2.2的数据流图中部分的数据信息的数据字典名字:社团信息描述:记录社团详细信息位置:社团表名称:学生信息描述:记录学生详细信息位置:学生表2.4.7产品功能a、 社团可以通过该平台进行社团推广b、 社团可以通过该平台发布招新信息,并处理招新信息c、 用户可以通过该平台了解社
12、团d、 用户可以通过该平台在线报名社团2.4.8技术方面可行性本小组成员拥有想好的java web开发能力,级MySQL使用经验,在根据上述分析情况,利用现有人力和物理是具备开发此系统能力的。加之学校老师指导,社团在线报名系统在技术上是完全可行的2.5可选方案为了在数据库上能有完善的管理功能切日后数据库升级方便,因而本次主要根据数据库的易用性及易升级行提供两种方法:a、 采用Oracle数据库设计,这一数据库现在已成为主流的数据库管理系统,切易操作,易升级,因此提供这一方案。b、 采用MySQL的数据库管理系统实现根据小组成员的技术,目前尚只具备使用MySQL数据库开发环境的能力,且当前大多数
13、中企业经常使用MySQL,因而本次开发采用MySQL为了方便处理业务流程,因而本次主要的编程框架有两种选择:a、 采用Spring+SpringMvc+mybatis开发,当前SSM框架已经越来越流行,mybatis相对于hibernate在处理复杂数据时性能更高。SpringMvc这种基于方法开发的方式相对于Struts2这种基于类开发的方式在某些条件下性能更优,因此提供这一方案。b、 采用Struts2+Spring+Hibernate开发,作为传统的开发框架SSH依然是当下最为流行的框架,依旧是企业采用的热门,Struts2拥有强大的表达式和内置标签库,hibernate有用强大的ORM
14、能力,封装了sql语句,操作简单。由于本系统对象关系并不复杂,且团队成员更加数据SSH框架,所以采用SSH框架进行开发。综上所述,本系统采用SSH+MySQL进行开发。2.6投资及收益分析2.6.1市场分析社团在线报名系统主要是为了解决社团推广与报名的问题,并且减少工作人员的工作负担,特别是对于像广东海洋大学这样面积辽阔,学生数量较多的学校。本系统是针对广大学校社团面临的问题而开发的,适合广大学校的需求,他追求的是简单,易学,易懂,易升级,方便,能够更有利地减轻工作人员的工作负担,因为市场是光明的。2.6.2投资估计按本软件开发方案,对于本系统软件投资方向,体现于软件开发、软件生产、及软件测试
15、。本系统完全按开发计划进行估算,估计服务器,上网,打印需要一些费用。本系统大约总体耗费主要为时间,精力。本系统本非收益性质开发,重要是为解决学校社团现在面临的问题的需要。2.7社会因素方面的可行性2.7.1技术本系统与学校社团精密结合2.7.2使用方面的可行性学校社团和学生对该产品的应用是可行的2.8产品可检测性2.8.1检测标准软件标准:软件规模、复杂程度、安全性、可操作性、可观察性、课控制性、冗余的大小2.8.2检测方法通过软件测试;黑盒测试:主要在软件界面上进行的测试。白盒测试:在重要逻辑路径进行测试,检测重要数据结构的有效性。2.9产品的可生产性正确性:程序是否按程序流程图及数据字典完
16、成程度。可靠性:安全运行时间越长越好。可用性:是否能够解决实际的存在问题。完整性:对未授权的人员访问此软件可控性强;灵活性:修改一个程序的工作量;2.10可行性综合分析本工程产品开发周期为2周。要求所有数据信息的存储都由数据库和文件流来完成。时间虽然紧,但由于老师的大力支持,对我们工程的进程非常有利。3.需求分析(完成人:XXX)目前,我们学校的社团推广和报名采用的还是人工来进行,面对目前学校发展的实际状况,我们通过实地调研之后,对社团在线报名系统开发做了一个详细的概述。3.1任务概述3.1.1目标本设计要实现的是社团在线报名系统,在设计系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应
17、该具有如下功能:1、 社团应该输入正确的账号和密码才能进入系统。2、 系统可以对社团信息,招新信息进行编辑修改。3、 社团可以查看、下载、统计报名学生的信息4、 学生可以查看所有社团信息5、 学生要报名社团必须先注册登录系统6、 学生报名成功发可以向已经激活邮箱的社团发送邮箱提示3.1.2运行环境Cpu:奔腾系列以上内存:512MB以上硬盘空间:100M以上硬盘剩余空间输入设备:键盘/鼠标操作系统:Windows 2000 Server数据库:MySQL5.1开发环境:MyEclipse10.03.1.3条件和限制一个更为完善的社团在线报名系统应该提供更为便携的操作,如APP手机客户端,由于开
18、发时间有限,该系统暂未提供这一功能。对信息的保护手段及文件的备份还比较简单,不能防止恶意的破坏,安全性能还有待进一步完善。3.1.4数据库描述数据库是数据管理的最新技术,是计算机科学的重要分支。多以来,数据库管理系统已从专用的应用程序发扎成为通用系统软件。由于数据库具有数据结构化,最低冗余度、较高的程序与数据独立性、易于扩充、易于缩制应用程序等优点,较大的信息系统都是建立在数据库设置之上的。选用MySQL数据库开发,MySQL是一种常用的关系数据库,对于本系统而言,满足存放和读取数据的能力,故选用MySQL数据库。3.2社团管理数据流图图3.1社团管理数据流图数据字典是关于数据的信息的集合,也
19、就是对数据总包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统是作为一个必要的工具。以下是图3.1部分数据字典的内容名字:社团信息描述:记录社团的详细信息定义:社团信息=社团ID+登录名+密码+社团名+简介+邮箱+邮箱激活码+邮箱激活状态+招新信息+截止时间+发布时间位置:社团表用户使用数据流图图3.2用户使用数据流图3.2部分数据字典的内容名称:用户信息描述:记录用户详细信息定义:用户信息=用户ID+登录名+密码位置:用户表名称:学生信息描述:记录报名的学生详细信息定义:学生信息=学生ID+学号+姓名+性别+手机+学院+专业+家乡+兴趣+照片路径+申请原+对应
20、社团ID+对应用户ID位置:学生表3.3功能需求3.3.1系统功能设计在整体设计中,我们将报名系统分为5个功能:社团账号管理、社团信息管理功能、学生报名信息管理功能、社团信息展示功能、用户账号管理。3.3.2社团信息管理功能包括社团信息,招新信息的编辑修改3.3.3社团账号管理:包括账号密码的管理3.3.4用户账号管理:包括账号密码的管理3.3.5社团信息展示功能包括社团信息的展示3.3.6学生报名功能包括学生报名功能3.3.7学生报名信息管理功能包括对报名信息进行查看,统计,下载3.4性能需求社团在线报名系统管理权限上应当进行严格控制,具体思想如下:某些需要登陆的对没有登陆的社团或用户的进行
21、拦截,以确保系统的严密性和安全性3.5数据描述3.5.1E-R图图3.3 系统E-R图用户名ID 密码ID 用户用户ID图3.4用户属性社团名密码ID 社团简介登陆名ID 社团社团邮箱发布时间邮箱激活码招新截止招新信息邮箱状态 图3.5社团属性相片路径ID 对应社团ID社团相片相片ID图3.6 社团相片属性头像姓名学号申请社团ID报名学生学生ID申请理由性别对应用户ID手机兴趣家乡专业学院图3.7 报名学生属性3.5.2静态数据描述社团在线报名系统包括:用户(User)社团(society)社团相片(societyPhoto)学生(student)3.5.3动态数据输入数据:鼠标对按钮的点击
22、用户信息的录入 学生信息的录入 社团信息的录入输出数据:统计结果及其格式化文件 信息修改结果 查询关键字确定的数据库记录的子集内部数据:查询操作建立的索引3.6小结通过这次课程设计,我拓宽了知识面,锻炼了能力,对软件工程的重要性有了更深的体会,在这次课程设计当中我负责的需求分析这一部分,在开始阶段遇到了一些困难,比如对目标系统的需求定义不够完善,清晰,给后续工作地阿里啊相当的困难,后来经过小组成员的沟通协作,才得以完成。4.概要设计(完成人:XXX)4.1系统结构系统的大致结构如下:在B/S结构下的社团在先报名系统大致可以划分为以下模块:在整体设计中我们将报名系统分为5个模块:社团账号管理模块
23、、社团信息管理模块、学生报名信息管理模块、社团信息展示模块、用户账号管理模块。4.1.1社团账号管理模块:社团账号管理模块包括:社团登陆,注销,修改密码三个部分登陆:实现社团登陆进入系统注销:实现正常的退出系统修改密码:可以修改原有密码4.1.2社团信息管理模块:社团信息管理模块包括:修改社团信息、发布招新信息、查看发布信息、修改发布信息、删除发布信息。修改社团信息:实现对社团信息编辑修改发布招新信息:可以发布招新信息到系统平台上查看发布信息:可以查看本社团的发布信息修改发布信息:可以对已发布的信息进行编辑修改删除发布信息:可以删除已经发布的信息4.1.3学生报名信息管理模块:学生报名信息管理
24、模块包括:查看报名表、报名信息统计、导出报名表到word查看报名表:可以查看已经报名本社团的所有学生信息报名信息统计:可以对已经报名的学生进行性别统计导出报名表到word:可以对报名的学生表进行下载4.1.4用户账号管理模块:用户账号管理模块包括:登陆、注册、注销。注册:可以注册本系统账号,然后才可以登陆登陆:登陆后方可报名社团注销:可以正常退出本系统4.1.5社团信息展示模块:社团信息展示模块包括:浏览社团信息、报名参加社团浏览社团信息:可以浏览所有已经在本平台注册的社团信息报名参加社团:可以向社团投报名表4.2数据库表表4.1 用户(User)表4.2 社团(society)表4.3 社团
25、相片(societyPhoto)表4.4 学生(student)4.2.1数据库表说明本系统共用到4个表:用户表(user),社团表(society),社团相片表(societyPhoto),学生表(student),各表之间具有一定的联系,可以进行关联。学生表中的uesrId跟用户表的userId关联,社团相片表中的societyID跟社团表的societyId关联,学生表中的societyId跟社团表的societyId关联,userId跟用户表的userId关联。当某个表发生插入、修改、删除等操作时其关联表会随着进行改动。4.3个人总结概要设计阶段的主要任务是软件总体结构的设计,通过对需
26、求分析阶段数据路途和E-R图的进一步分解,划分出五个模块进行细化。其中遇到的问题主要是对软件总结结果的进一步划分有许多不足的地方。5.详细设计及实现(完成人:XXX)5.1各个JavaBean类UML类图 (属性) 图5.1User(用户) 图5.2社团(society) 图5.3 societyPhoto(社团相片) 图5.3 student(学生) 5.2各JavaBean关联结果 5.3公用分页JavaBean:pageBean5.4各个类属性和方法的详细描述5.4.1公有的Dao类 DaoSupport5.4.2公有Action BaseAction5.5 Service类5.5.1用
27、户Service5.5.2社团Service5.5.3社团相片Service5.5.4学生Service5.6 Action类5.6.1首页Action5.6.2社团Action5.6.3 学生Aciton5.7整个系统类调用流程整个系统类调用流程大概如下:5.8系统的关键问题5.8.1如何使用富文本编辑器(kindeditor)保存社团的相片?大致流程图如下:业务流程如下:如果上传图片1) 如果数据库不存在的那么存进数据库,如果已存在不再重复存,如何存放? (1) 从uploadimage文件找到目标图片并复制到image文件夹里 (2) 修改页面传过来的标签的路径内容,把里面uploadi
28、mage替换成image (3) 把image的路径放到societyPhoto类里,并存放进数据库2) 删除之前已经存放在数据库里的路径但现在不在页面传过来的图片路径,表示用户已经删除了该图片3) 最后删除之前存放在uploadimage 文件夹里的所有图片,因为上传的图片已经复制得到image文件夹里5.9部分关键伪代码如下:1、 登陆Function login输入用户名与密码If(用户名与密码与数据库匹配)then进入系统Else显示错误提示,并重新进入登陆界面End Function login2、 修改密码Function alterpassword输入原密码与新密码、确认密码If
29、(确认密码与新密码一致)thenIf(原密码与数据库一致)then修改成功Else 显示原密码错误,并重新进入修改密码界面Else 显示两次密码不一致错误提示End Function alterpassword3、 修改社团信息Function edit输入新的社团信息If(邮箱跟数据库的不一致) then更新数据库邮箱,激活码,并把激活状态置为0,发送验证邮箱邮件If(点击邮件激活)If(激活码跟数据库一致) then邮箱激活状态置为1Else 显示激活码错误提示Else 直接更新数据库数据End Function edit4、 学生报名社团Function addStudent输入学生信息
30、If(学生上传了图片)then保存图片到student_images文件夹,并设置设置图片路径保存数据到数据库If(学生报名社团的社团邮箱是激活的) then发送邮箱通知该社团有新报名表End Function addStudent6系统测试(完成人:XXX)6.1测试的目的与目标在此系统进行初步实现之后,开始进行对系统进行测试,找出系统中存在的Bug,通过测试,用提交的Bug报告来为以后软件的改进提供标准和参考,能够在以后的系统改进中找到依据。测试后的软件各模块基本功能可以顺利进行,尽可能的提高软件的健壮性。6.2测试方法l 从是否关心软件内部结构和具体实现的角度划分:黑盒测试和白盒测试;l
31、 从是否执行程序的角度:静态测试和动态测试;l 从软件开发的过程按阶段划分有:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试、Alpha测试、Beta测试;单元测试又称模块测试,是针对软件设计的最小单位 程序模块(这里所说的程序模块在Java中一个模块就是一个方法),进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。集成测试 (组装测试、联合测试),通常在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:l 在把各个模块连接起来的时候,穿越模块接口的数
32、据是否会丢失;l 一个模块的功能是否会对另一个模块的功能产生不利的影响;l 各个子功能组合起来,能否达到预期要求的父功能;l 全局数据结构是否有问题;l 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。确认测试(Validation Testing),确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。系统测试(System Testing),是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结
33、合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。验收测试(Acceptance Testing),在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。6.3测试项目由于测试内容篇幅较长,所以在本论文中只介绍部分代表性的测试用例。6.3
34、.1学生注册测试a) 划分等价类:输入条件合理等价类不合理等价类用户名长度1、3-20位之间任意字符2、小于3位字符3、大于20位字符4、空密码长度5、3-20位之间任意字符6、小于3位字符7、大于20位字符8、空确认密码9、跟密码一致10、跟密码不一致11、空b) 设计合理等价类测试用例1、3-20位之间任意字符5、3-20位之间任意字符9、跟密码一致测试用例期望结果实际结果覆盖范围用户名:123密码:123确认密码:123输入有效与期望结果相符1、5、9c) 为每个不合理等价类设计测试用例2、用户名小于3位字符3、用户名大于20位字符4、空6、密码长度小于3位字符7、密码长度大于20位字符
35、8、空10、确认密码跟密码不一致11、空测试用例期望结果实际结果覆盖范围用户名:空密码:空确认密码:空输入无效与期望结果相符4、8、11用户名:1密码:1确认密码:1输入无效与期望结果相符2、6用户名:1-21(21位)密码:1-21(21位)确认密码:1-21(21位)输入无效与期望结果相符3、7用户名:123密码:123确认密码:1234输入无效与期望结果相符106.4测试小结把开始的代码写得越好,它出现的错误也就越少,你也就越能相信所做过的测试是彻底的。系统化测试以一种有序方式设法探测潜在的麻烦位置。同样,毛病最可能出现在边界,这可以通过手工的或者程序的方式检查。自动进行测试是最理想的,
36、用得越多越好,因为机器不会犯错误、不会疲劳、不会用臆想某此实际无法工作的东西能行来欺骗自己。回归测试检查一个程序是否能产生与它们过去相同的输出。在做了小改变之后就测试是一种好技术,能帮助我们将出现问题的范围局部化,因为新问题一般就出现在新代码里面。测试和排错常常被说成是一个阶段,实际上它们根本不是同一件事。简单地说,排错是在你已经知道程序有问题时要做的事情。而测试则是在你在认为程序能工作的情况下,排错是在你已经知道程序有问题时要做的事情。而测试则是在你在认为程序能工作的情况下,为设法打败它而进行的一整套确定的系统化的试验。Edsger Dijkstra有一个非常有名的说法:测试能够说明程序中有
37、错误,但却不能说明其中没有错误。他的希望是,程序可以通过某种构造过程正确地做出来,这样就不再会有错误了,因此测试也就不必要了。这确实是个美好生活的目标,但是,对今天的实际程序而言,这仍然还只是一个理想。所以应该集中精力讨论如何测试,如何才能够更快地发现程序错误,如何才可以使得工作更有成效、效率更高。7使用说明(完成人:XXX)7.1使用说明本软件采用jdk1.6版本进行开发,需要支持jdk1.6及以上。本软件应该打包成war包,然后发布到tomcat或者weblogic之类的服务器,加入运行在tomcat上,则应该吧war包放到webapps目录下,启动tomcat后则自动发布到tomcat服
38、务器上。数据库文件则需要导入懂啊MySQL数据库,本系统使用MySQL5.1以上版本。数据库配置文件(数据名,用户名,密码等)在db.properties配置文件中可以修改。默认采用数据库名:kxj,账号:root,密码:123456.发邮箱配置文件和邮箱验证配置文件分别为email_template.properties和validateEmail_template.properties,其中from字段为发邮箱的源地址,host为采用的邮箱主机,username为邮箱用户名,例如XXX,则username为XXX,password为邮箱密码。7.2可能遇到的问题1、 假如打开首页出现异常则
39、可能是数据库配置或者加载出现问题,此时需要重新检查下配置文件,数据库导入有没问题2、 假如社团已激活邮箱无法收到邮件,则可能是因为邮箱配置文件出问题或者可能使用QQ邮箱,因为QQ邮箱可能拦截陌生人邮件,需在好友里面添加本系统默认使用邮箱,建议使用163邮箱则无此问题。还有要发送邮件的邮箱应该开启SMTP或者POP3之类的邮件传输协议,否则无法发送邮件。8小组总结(完成人:XXX)通过此次课程设计设计的社团在线报名系统,我们收获颇丰,在本次的设计中,我们既锻炼了编程能力,又锻炼了逻辑思维能力,同时还提高了自学能力。在本次开发中,我们总体上使用SSH(Struts+Spring+Hibernate
40、)框架技术,结合JavaMail,JFreeChart,FreeMarker等技术。采用MVC设计模式。既巩固已学知识,又进一步学习了新知识。在开发过程中我们遇到很多问题,例如:在考虑如何保存数据到word文件时,我们通过在网上的大量查找资料,对比各技术的优缺点,最终决定使用FreeMarker技术来保存数据到Word文档;在考虑如何更好的展示社团图片时,我们通过网上查找资料,并最终采用了一个图片切换插件,实现图片的可交互操作且可以自动切换。在本次开发中,我们使用SVN版本控制工具协作开发,锻炼了组员的共同协作开发能力。当然在开发过程中遇到的问题还很多,例如对于文档的编写,各种说明图的制作基础还不扎实,需要不断的查询课本,网上资料慢慢学习完成,虽然平时上软件工程听是懂,或者上实验课做实验大部分都明白,但真正自己独立开发,编写文档时发现很多其实并不明白,这点需要以后的日子里进一步学习,因为这对于以后工作的规范化开发是很重要的。最后,要感谢小组成员的共同努力,我们最终完成了预期所想完成的系统和编写了本系统说明书,还要感谢本课程老师对我们的帮助和培养。系统不免有错误和待改进之处,真诚欢迎各位师长提出宝贵意见。