松果生活Beta冲刺答辩博客
这个作业属于哪个课程 | 2019学年02学期单红老师软件工程实践 |
---|---|
这个作业要求在哪里 | 事后诸葛亮 |
团队名称 | 松果星球委员会 |
这个作业的目标 | 答辩博文 |
作业正文 | 本博文 |
其他参考文献 | 相关博客、构建之法 |
一、设想和目标
- 项目简介:
松果生活是一个致力于帮助福大学子们进行生活分享的平台,摆脱其他社交软件年龄范围过大、内容良莠不齐、不够贴近个人生活的缺点,营造属于福大人的主题分享论坛。
- beta冲刺目标与完成情况:
名称 | 需完善的功能 | 新增的功能 | 具体进度 |
---|---|---|---|
安卓端 | 完善文章发布功能、完善登录功能、完善文章查看功能 | 添加注册功能、添加文章修改、删除功能、添加点赞、收藏、评论功能、添加修改个人信息功能、添加松鼠模块、添加消息提醒功能(保留) | 消息提醒功能没写,其他的基本完成 |
ios端 | 完善文章查看、管理部分、完善登陆部分中的验证码逻辑 | 新增个人信息功能、新增已发布文章修改删除功能、新增松鼠模块、新增消息提醒功能 | 消息提醒没有实现,松鼠模块作为保留功能 |
后台系统 | 后台网页:数据统计页有三张图表定位和实现还比较模糊,要在beta阶段进行完善 | 后台网页:我们观察到一些应用都有“周报”、“月报”这样的统计方式。所以考虑在有余力的情况下给后台网页加入“松果日报”功能,让管理员能够更清楚明了地了解松果生活当日的相关数据。 | 后台消息功能没有实现,实现了博客说的松果日报功能 |
后端数据库 | 1.账号管理部分:需要完善用户登录、注册、关注、头像与修改等接口并与前端对接;2.文章管理部分:需要完善举报接口并与前端对接;3.后台部分:需要完善公告、文章的各类数量统计、用户的各类数量统计等接口并与前端对接 | 1.账户管理部分:在数据库新增一些用户信息字段如地址,实现多种方式的用户登录等;2.文章管理部分:对评论增加评论和点赞功能,对文章列表和评论列表优化排序功能等;3.后台部分:通过增加数据库表以实现更细致的文章、用户统计功能,使得后台的数据分析更有意义等;4.其他:对部分代码进行重构,减少冗余;学习提高数据库效率的方法并运用在项目上;继续深入学习和理解spring boot的ioc和aop,并在项目中实战应用等 | 后端数据库的对评论增加评论和点赞没写,其他的基本完成 |
总体来说,项目启动时定的计划基本完成,除保留功能外,其他功能都进行了一定的测试以及修改。Beta阶段冲刺有条不紊地完成了一个基本可以正常使用的“校内主题分享论坛+虚拟宠物养成”APP。
二、设计和实现
- UML文档:
项目开始时,我们的UML文档主要是确定功能和主要类,开发时还对每个功能单独进行单元测试、产品雏形进行黑盒与白盒测试,还有使用Postman测试接口等。项目开始后的UML文档添加了许多工具类,例如图片加载以及图片选择器等等,同时还有根据新增功能设计新的用况和类图,例如松鼠模块本身是在保留功能中的,并没有在UML中设计太多的内容,但是我们重新对其进行规划,根据优化后的文档新增了松鼠板块的相关主类和工具类以及相关布局和接口,完成了松鼠模块。
- 功能BUG:
在BUG的修复上,安卓端所发现的闪退BUG有:Toast消息在活动或碎片被销毁时引发的闪退;Retrofit请求回调时的SharedPreference相关处理不当导致第一次登录查看文章闪退;XML文件id取名过于复杂导致定位时id错误输入导致无法获取对象闪退等等等等,这些BUG的特点就是满足条件较为隐蔽,运行报错产生连环反应导致MainActivity也会报错,修改难度也较大,因为例如回调要判断计算机同步异步执行逻辑是否正确等等。
- 代码复审:
代码复审我们组通过负责人牵头,多端同步进行代码审查,对照项目开始初期的代码规范,同时通过QQ群通话做相关的讲解和报告,被审查者通过对代码的讲解和理解回答审查者的相关问题,必要时做相应的修改。同时积极讨论,公开代码内容,方便编程基础弱的同学进行学习和提问。
三、与alpha阶段相比的提升
- 计划安排方面:
计划安排上alpha冲刺的工作量是比beta工作量来的更多的,因为大家不熟悉项目开发的工具以及流程,组长和相关方向的负责人可能负责问题的讲解以及学习还有主力开发的任务,任务量较大。同时因为时间的安排较为紧凑,大家学习、上课、开发的时间基本都是混在一起的,经常需要熬夜来开发或是学习新知识。beta阶段中,大家基本掌握了开发的工具和流程,再加上alpha中的代码有部分可以进行复用,同时因为alpha冲刺,大家对一些简单页面熟能生巧,不仅减轻了各个方向负责人的负担,同时也加快了beta开发进度,加快了功能的完善,也提供了开发新模块的可能。
在燃尽图中,各个方向根据自己实际上需要的代码编写时间(不包括学习时间),进行小时估计,量化工作量,再根据各个方向的估计时间求和算出项目总耗时,同时再加上一定的弹性限度,估算出燃尽图的相关数值。
- 团队分工方面:
在Alpha冲刺中我们的分工还是较为集中的,安卓iOS后台数据库分别由一位负责人牵头进行开发和答疑,所以负责人的工作量会在组员中较为繁重。在Beta阶段中任务量优化,同样的工作量时间周期拉长、工作份额均摊,达到了较好意义上的平均分工。
- 工具流程方面:
在Github的使用上,起初大家不是很了解如何进行版本控制以及协作编码,但是根据前几次作业大家都对团队合作有了大致的概念。而且对于辅助开发的工具来说,刚开始大家可能并不了解,通过自己实践或者查看相关博客的方式,大家都学会了一些辅助编码的工具,优化了开发流程,完善了开发成果。
- 测试和发布:
alpha阶段的测试主要还是单元测试,因为功能不完善,可视化页面较少,所以接口等通过postman进行测试后再分批和前端进行对接,保证了接口的可用性的同时也避免了前端页面构建导致后端开发停滞的情况。beta阶段的测试基本是虚拟机测试和真机测试,根据单元测试、黑盒测试、白盒测试反馈的错误进行情景重现并寻找BUG修复。虽说自动化程度较低,但是还是较为全面的检测到了现有BUG并修复。
团队的测试计划就是先是单元测试,后是白盒测试最后是黑盒测试。测试内容首先对发布、查看等主要文章编辑功能进行查看,其次再针对保留功能,如社交模块、松鼠模块等功能进行相关的测试,是否具有合理的提示或者合理的逻辑。在发布内测版本时,我们都进行了较为完善的验收测试,例如不同机型、不同屏幕以及不同用户操作等。
跟踪软件的效能主要根据反应速度、数据库相应速度、服务器传输速度等进行查看,是否符合预期效果,若不满足则进行代码优化和相关处理。还未进行压力测试,只保证了数据的完整性以及软件的可用性。
第一次发布碰到了签名的相关问题,也是花费了一天的时间研究如何正确发布release版本的apk,如何获得MD5编码等等。
四、总结
- 1.项目是否出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
beta冲刺中遇上一次服务器瘫痪的问题,服务器CPU占用率一度接近100%。宕机期间已有的产品都不能正常使用。最后查明是后台网页一个功能发生错误,反复向接口发送请求造成的。
上述问题算是开发环境风险。之所以没有评估到因为开发经验不足和设备有限,因为我们只有一台服务器,所以开发环境和生成环境是放一起的,就导致了开发过程中发生的意外影响到了现有成品。
- 2.总结第二部分的四个方面,你们学到了什么? 如果重来一遍, 你们会做什么 改进?
如果重来一遍,我们会制定更详细的规范。或者说带着现在的项目经验来制定规范,包括文件划分、外置配置信息、组件粒度等问题。
- 3.你们觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?你们觉得团队目前 处于萌芽/磨合/规范/创造阶段的哪一个阶段?
可管理级:能够建立基础的项目管理规范,项目实施有对应的计划和流程从而保证了项目的完美实施并且完成;
规范阶段:我们团队现处于规范阶段,力求规范化功能模块、规范化代码;
五、用户使用调查报告
- 介绍调查方式、参与人数、调查内容和调查结果。参与者评价如何?提出了什 么改进建议?
我们使用网上问卷的方式进行用户使用调查。问卷投放周期为3天,在qq空间、微信朋友圈等社交媒体进行了投放和公布内测,实际回收了120份问卷。
调查内容:针对用户在移动端的使用场景、使用习惯、兴趣爱好的统计分析用户的社交习惯、生活习惯、审美习惯。同时将安装包发布,用户可以使用我们的产品进行内测,根据用户反馈的问题进行产品优化。
调查结果
收到有效问卷120份,60%为大三学生,但是也有很多其他年级的同学。男女比例为6:4,不存在一边倒的情况,符合预期。
85%同学认为有校内推荐平台的相关需求,如果有这样一款软件他们会使用,说明“松果生活”存在的市场是相对灵活且有潜力的。但是只有半数同学会选择在这个平台上分享自己的生活,40%的同学会选择浏览相关推荐博文。
针对我们的原型图(和内测图基本一致),92%的同学觉得较为吸引人,所以松果生活基本满足了当代大学生的主流审美,在UI优化部分只需要做一点修改即可。
大家认为一款论坛软件最重要的还是高质量的分享,所以我们在内容的管理方面可能会有更多的审核机制,避免相关的营销号或者垃圾文章的出现。
根据数据的反馈,我们了解到大家使用“松果生活”的主要原因还是查看食堂部分,了解周边有哪些好吃的店铺或者食物。
针对松鼠模块的相关调研,大部分人会选择对话、点击和佛系养宠,目前松果生活的松鼠模块大概是旅行青蛙式,所以可能可以在模式上做一些改进和重构。
参与者普遍评价良好。92.5%的参与者表示被松果生活的界面所吸引。
参与者主要提出了三方面的建议:1.保证平台内容的高质量;2.希望添加打卡地图功能,用气泡的方式展示发布位置;3.可以在现有分类里适当扩大分享内容;
六、项目展示
后台:文章管理、用户管理、数据查看、松果日报
移动端:文章发布、文章修改删除、文章查看、点赞评论收藏、个人空间、个人信息修改、松鼠模块
七、下一阶段展望
- 1.你们的应用还有什么不完善的功能?是否还打算扩展新功能?
我们要用还没有完善的消息通知功能以及地图打卡功能,包括文章的标签化处理,根据标签进行搜索、智能算法推荐等等。若有余力,我们会尝试扩展。
- 2.对于 1 中提到的改进/新增功能,你们的计划是?
若有余力,后续实现,先补充所需要的相关知识,再进行微小版本的迭代,慢慢补充到APP中。
- 3.你们的应用是否计划投入使用?如果是,你们的发布、推广计划是?如果不是,为什么?
暂时没有计划进行投入使用,因为如果是主机软件,如日记、记账等较少涉及到社交方面的产品,在运行上面是不需要做特别多的工作的,但是对于社交软件,特别是松果生活这样的主题论坛,对于消息的审核都是必要的,但是目前来说最有效的方式还是使用人工审核,因为对于文章的分类、文章的内容、文章的配图等等都需要进行一系列的审核,若出现政治不正确或者淫秽图片等,容易给用户造成不良影响,同时还会导致产品下架等后果。对于运营来说,松果生活人力有限,无法做到大量文章以及图片、评论等的审核,同时为了提供良好的用户体验,在服务器上也需要进行优化处理,抑或是相关的推荐算法,安卓的代码也需要符合版本迭代的要求,可能会进行大幅度的代码重构,这都是我们所要面临的挑战,所以松果生活目前暂时并没有投入使用的打算。