银耳椰椰——Beta冲刺
本文主要内容:
alpha
冲刺后项目所存在的问题清单,并针对alpha
冲刺的问题给出团队的探索思路和解决过程。UML
设计图,系统模块的类图,软件的用例图、时序图、状态图、活动图,需要对改进完善的部分进行加粗等操作在文档中强调体现。- 介绍项目的现实进展,附上主要/特色功能界面截图以及功能介绍,并体现出对
alpha
冲刺不足的改进部分。完成部署上线的附上小程序的二维码、网址或其他可供用户使用的方式。 - 对项目中的关键模块制作自动化单元测试,并截图展示。
alpha冲刺后项目存在的问题
- 页面跳转有一些未完善,出现卡顿
- 部分校友认证模块还未落实到位
- 地图模块没有拓展到多张
- 虚拟合影模块待补充
探索思路与解决过程
- 对小程序进行测试并不断优化页面跳转。
- 校友认证存在的问题也在讨论中逐一攻克。
- 在
beta
冲刺过程中,遇到最为困难的模块便是虚拟合影功能的实现。起初原本打算采用人脸识别抠图的方式,将校友的照片与学校风景进行合影拼接,但人像识别算法的工作量大且执行时间耗时,我们便提供了动漫头像抠图和自己上传照片的方式供校友选择进行合影,年轻的动漫头像与校园优美风景的结合别有一番风趣,具体效果依旧很不错。
UML设计
需求分析(用例图)
用户使用时可以浏览校园资讯,查看活动并进行报名。
在福大地图中,有各个校区的完整地图以及标志性建筑的具体信息,点击对应的定位图标即可在页面上看到各种建筑及景点的介绍,为了满足校友对福大风景照的需求,我们设置了可供选择的虚拟形象在福大打卡点进行虚拟合影。
此外,用户填写必要的信息认证后可认证为校友,可以寻找校友并查看校友信息,以便与校友交流。
管理员使用时可以添加和删除校园资讯、添加和删除活动信息、审核用户信息和校友认证信息。
系统结构类图
系统主要由用户类、管理员类构成。
用户类可以使用地点类、资讯类、活动信息类的方法,进行虚拟合影、查看资讯、活动报名等。
校友类继承自用户类,用户经过校友认证后转变为校友。校友额外有匹配校友和查看校友详细信息的方法,以及校友认证所需的一些额外属性。
管理员类用于管理小程序的各种功能。里面有管理活动、管理资讯、管理用户信息的方法。
业务流程(活动图)
用户使用时,先需要登录软件,然后分别有浏览资讯,查看地图,寻找校友和个人空间四个主要活动。
资讯分为新闻和活动,用户在活动中还可以进行活动报名。
用户查看地图后可以在地图中可以查看各种景点的简介和风景照,可以在各种景点中留下自己的留言。也可以进行虚拟合影,选择自己的虚拟形象后进行虚拟合影。
用户使用寻找校友的功能前需要进行认证,在个人空间中有提供认证通道。用户填写完必要的信息后,系统后端进行审核通过即可使用校友功能,查看其他校友的个人信息及联系方式。
四个活动互不干扰,用户在使用软件期间可以不限次数的重复使用这些功能。
算法模块(时序图)
用户在小程序中输入想找的校友信息,校友信息被传送至服务器,服务器根据数据库及算法计算出用户想认识的校友并返回到用户的小程序界面。
用户在小程序的资讯中点击想浏览的资讯,在小程序前端中直接跳转到链接对应页面。管理员可以在通过服务器发布和修改资讯,更新资讯内容。
用户在小程序的活动中点击感兴趣的活动,可以跳转至活动介绍,感兴趣可以进入报名页面。管理员可以通过服务器发布和修改活动。
用户在小程序界面输入必要的认证信息,将认证信息传送至服务器等待管理员审核,管理员审核通过后将信息保存至后端并返回录入成功。失败则返回失败。
(业务流程)状态图
用户处于微信授权登录状态下时进入小程序,停留在新闻活动页面状态,此后可通过点击进入新闻和活动的浏览状态,对某个活动感兴趣时可以报名此活动,进入报名信息编辑状态,填写完成后进入提交状态,接着待管理员审核,报名成功则结束活动报名,报名失败可重新进入报名信息编辑状态再次报名。
浏览活动时对活动不感兴趣可以结束浏览,浏览新闻也可以随时结束浏览。
进入地图浏览状态,对某建筑感兴趣时可点击对应建筑进入建筑具体信息的浏览状态,之后结束浏览。
用户在个人中心可以进入校友认证状态,认证信息的编辑状态,编辑完成后进入提交状态,管理员审核后,返回认证成功或失败状态,认证失败后结束认证。认证成功状态下可进入搜索校友功能页面,在输入框输入校友姓名,之后进入搜索校友状态,有此校友则进入校友信息的查看状态,之后结束,无此校友则可搜索另外一个姓名。
用户在个人中心可以进入虚拟合影状态,接着进入选择状态,选择合影地点以及合影形象,最后后台将图片合成,返回。
项目现实进展
基本完成全部预期功能,包括新闻活动模块、校友查询及校友认证、虚拟合影,以及最为重要的地图模块。
小程序二维码
界面展示
新闻模块
校友查询模块
校友认证模块
地图浏览模块
虚拟合影模块
自动化单元测试
团队协作记录
成员过程体会
焦硕欣:这一次项目完成的经历对我来说是不断打磨与不断完善的一段难忘的回忆,我是第一次担任一个项目的组长,在无经验的情况下临危受命接手了团队项目,其实是有一定的心虚的,自己也默默做了很多看不到的工作,如了解每个组员的性格、代码能力、组织能力,发扬每个人的能动性去帮助小组完成项目的推进是一件又辛苦但又复有成就感的事情,作为组长其实还是有一些不称职的地方,没有完完全全掌握时间的分配和工作量的分配,导致一部分同学的工作量不饱和而一部分同学的工作量过饱和,这是我的分内错误,在之后的项目中我会合理安排与分配;在这次小组编程中,其实压力还是蛮大的,处理项目的问题和人与人之间的对接真的是比开发难多了。知识掌握程度不同,小组员之间的的配合,项目进度的跟进,都非常消耗精神和体力。在两次冲刺中,主要负责了团队分工与安排工作、协调了每个组员的工作量,最终还是基本完成了项目的任务,还是很有成就感的,希望能为以后的软件工程项目打好坚实的基础。
黄智鑫:经过两次的项目冲刺我积累了一定的团队合作开发以及团队之间相互沟通交流的经验,也了解到了软件开发从需求分析,软件设计,编码开发,测试和质量保障以及软件发布的整个过程以及过程中所需要用到的各类软工知识,同时也提升了自己实际的编码经验和开发能力,编码量有很大的提升。对于开发过程中的一些常见困难和团队问题,虽然能够预见和分析,但在具体解决上还存在困难。同时前端具体的编码和开发能力也仍有所不足,导致有些需求无法完成。希望能在今后的学习和工作中补足这些短板。
蒋镇岳:在这次的beta
冲刺中我们在第一次阿尔法冲刺的基础上完善了小程序的功能,调整了一些页面优化以及功能完善,最为重要的是完成了虚拟合影模块功能的实现。在这次的软件工程实践中,我慢慢摸索对程序开发有了一定的学习,同时小组中大家相互帮助,相互学习,积极参与问题的解决,在最后的vlog
中大家也一起参与了拍摄,总之这是一次很有意义的经历,感谢大家在项目中的共同努力。
林涵忠:在这次软件工程的实践合作的过程中,我担任了前端这一职位,从一开始啥都不懂,但是通过实践一点一滴在编程的过程中,通过百度慢慢搜索资料,并且边写边学,虽然过程很漫长且艰辛。但是在这个过程中,我学会了如何去搜索知识,提高了代码能力,并学会一定的前端知识,而且在与后端交互的阶段,让我知道了在编写代码的过程中不能只顾着自己,还应该提前与后端做好沟通,这样时再对接时才不会出现矛盾。尽管这次开发没有那么完美,但仍然要感谢每位组员在这次团队项目过程中的付出。
颜杰东:经历了alpha
冲刺,我对beta
冲刺更加游刃有余了,没有alpha
冲刺时的那种焦虑感。我们整个团队变得更加高效,分工明确各司其职。在beta
冲刺中,我主要负责了虚拟合影的模块,实现的过程使我对整个wxss
的flex
布局、float
作用等有了更加清晰的了解,对使用js
来实现单指、双指事件有了更深刻的体会,也了解了微信小程序一些其他自带的api
,如上传图片等。美中不足的是这个虚拟合影模块没能实现人像提取,希望通过以后学习模式识别、深度学习等知识来完善这部分的功能。总之,整个beta
冲刺进一步提升了我的团队协作能力,对github
等软件的使用也已经是轻车熟路了,也让我了解了微信小程序更多方面的一些知识。
江梦阗:beta
冲刺过程里,队友们的合作分工更加明确了,团队运作高效工作。这次冲刺阶段里我所负责的任务很少,因此也没有遇到特别特别麻烦和解决不了的问题。不过还是有许多收获,不管是前端工具的熟练使用,加上书本知识应用,实战开发的经验,当然还有团队合作的经历。还是得感谢队友们的帮助和理解。总的来说呢,beta
阶段还是挺充实的,学到了很多东西,也有很多地方需要提升,继续加油吧。
曾为庆:这是软件实验的冲刺阶段,我们对项目进行了完善,增加了一些功能,在和同学沟通交流过程中逐渐完善代码,最后实现功能,期间也有遇到各式各样的问题,在大伙的努力下都一样解决,这次的小组开发是一次宝贵的经验。
郑燕燕:开发院庆小程序项目完结啦!挺不可思议的。从一开始很担心自己拖后腿到开了很多小组会议确定项目进度明确了自己的任务到小程序逐渐成型这个期间,我一点点地找到了节奏,好好阅读了微信小程序开发文档,以及跟着哔哩上的教程学习项目开发,但因为课业繁重,也仅仅是浅尝辄止了,不过还是学习了新技能,beta
冲刺过程中对自己前面粗心大意或是不理解前端要求返回格式而出错的代码进行了修改。后期vlog负责了一部分拍摄。最大的感受是我们组的成员都很团结,他们都好靠谱,哈哈哈哈哈!大家都在为了同一个目标而努力着。然后就是人多力量大,原本一项看起来很复杂的任务,在经过合作之后就变得很简单。
王俊辉:beta冲刺相比于alpha冲刺来说,我对分配给自己的工作有了更为清晰的认知。这都是得益于alpha
冲刺时积累的经验和学习的知识。beta
冲刺分配给我的工作比较轻松,更多的是对alpha版本的项目的修缮和一些零碎的工作。在对项目的优化的过程中我也接触到了其他成员负责的模块,也加深了我对整个项目的构造和运行原理的理解。比起alpha
冲刺时无中生有、从零开始的困顿,beta
冲刺的开展算是顺风顺水。通过beta
冲刺工作的开展,之前只负责自己的模块的我才能更好地了解到项目的全貌,也从中学习到了许多新的知识。beta
冲刺不但提高了我的团队写作能力,对于我的知识结构的完善也有很大帮助。
陈龙乾:在这一次的冲刺中,我们小组基于阿尔法冲刺完成的小程序的基础上,逐步完善小程序的各项功能,由于小程序的基本框架已经形成,所以这一次冲刺的任务和压力相较于上一次冲刺要轻松很多,自己也在本次冲刺中完成了一定的任务,小组在项目成功上线的过程中出现了一些问题,小组成员也都积极的参与问题的解决。同时,我们还基于阿尔法阶段拍摄的视频又补充录制了一些,自己也参与了视频的拍摄。本次冲刺过后,小程序的功能基本完成,项目的大部分需求也得到了满足,自己对于本次项目的完成也很满意,是一次提升自我的经历。
补充
VLOG:
银耳椰椰VLOG