在上一篇博客中,我提到了一些并没有完成的部分,如如何获取多选框里的乘客信息并分别提取数据、提交表单,生成不同的机票……
在实际开发过程中,我成功解决了这些问题。对于如何多选乘客信息,我选择在在点击机票订购的时候先查询所有乘客信息,同时在foreach循环中添加一个checkbox多选框,获取选择的乘客信息,传输字符串信息,在需要的时候用.split(“,”)语句来把字符串分为多个字符数组,分别保存每个乘客的信息。对于机票的录入,可以直接用一个for循环,对每张机票进行订单号、航班号、舱位级别、对应乘客的信息录入,这样就解决了乘客的多选问题与生成不同机票的问题。
而对于表单的提交问题,可以用表单的id来进行区分。但在这个项目里,我是采用了两个分离的表单,一个表单添加订单信息、一个表单添加机票信息,进行分别添加与录入。对订单里的机票价格的计算,采用了在controller层对舱位级别的判断并获取相应舱位的对应价格,统计乘客的人数,再相乘得出,为了方便计算与获取舱位价格,我设置了多个全局变量,在点击机票详情时直接赋值,方便后续操作。
完成这个项目各自所负责的项目之后,我们就需要把项目进行整合与整理。由于页面的设计我是后来才发给我的队员的,因此她需要把view层功能的实现与页面背景的代码放在一起;同时,她的页面只是把表单元素直接按顺序排列,因此她再把她负责的那部分项目给我,我来进行页面布局的调整与美化,并且把她的项目与我的项目整合到一起,集成一个完整的项目。
做完之后才发现,其实这种操作方式相对复杂,要进行多次的整合与代码互传。如果先把项目的界面设计做完,直接把模版分享给我的队友,我的队友就可以在已有的页面布局上直接对数据进行设计与加工,这样既不用对功能实现的代码与页面背景的代码进行融合、也不用再次对表单元素进行页面布局与美化加工,更加的清晰、便利,可以省去我们许多的麻烦,同时也可以避免在代码传输过程中出现的部分差错。
对于该项目的测试,我们也遇到过一些困难。由于我们之前并没有系统的写过软件测试报告,只是分批对等价类测试、边界值测试、单元测试、功能测试与性能测试有过练习,因此我们选择先参考了网上的测试报告模版,看看别人的测试报告里都有些什么内容。
在借鉴了别人的测试报告后,再结合我们自己的项目真实情况,我们决定对项目进行黑盒测试、验收测试等,并对项目缺陷进行统计,以便后续开发与维护。
首先在整合之前,我们先对该项目各自负责的部分进行测试,保证了每个单元可运行性。
而在这之中,我们的项目多为字符输入查找,因此采用等价类测试的方式,查看不同的输入情况对项目输出内容的影响。
在分别对自己负责的部分测试完成后,我们再对集成后的项目进行更加完整的测试,查看集成过程中是否有接口冲突、代码冲突等,确保集成后的项目的每个单元仍然能够正常运行。并且在这个时候,我们开始着重比对项目的需求与实际开发内容,查看最初撰写的需求分析报告与项目设计方案,推算需求覆盖程度,来判断这个项目的完善程度与不完善部分,对重大缺陷进行调整与重写,再次进行验收测试,然后推出该项目的第一个版本。
对于小组成员合作方面,这次的合作过程可以说还是很顺利的。由于这个项目用到的数据库与项目思路都是基于上个学期的移动开发技术的大作业而来的,而我们当时就根据项目的功能与模块逻辑进行过细致的讨论与分析,因此这个项目对我们来说都是比较熟悉的。
在明确的分工过后,我们各自先完成了自己负责部分的大致框架,并且先把功能关联比较密切的模块进行相互的分享与解释,熟悉彼此的模块。而对于每个报告,我们也是各有分工,完成的有条不紊。
经过这个暑期项目的开发与练习,我们再次加深了对ssm框架的理解。其实只是通过为期短短两周的短学期学习与实训,要想熟练掌握这个框架的运用是比较困难的。但是通过这个暑期不断的进行代码的编写,也算是成功的运用了假的期时间,来巩固当时的学习成果,并且有了属于自己的感悟。