201871010114-李岩松 实验四 团队作业1:软件研发团队组建(个人博客)
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
团队名称 | 永远的Ace |
团队的课程学习目标 | 完成《构建之法》第五章、第七章的学习,确定团队的绩效考核目标 理解MFS |
这个作业在哪些方面帮助团队实现学习目标 | 任务3、任务2,阅读《构建之法》 |
团队博客链接 | https://www.cnblogs.com/yongyuandeAce/ |
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下: |
- 对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
被评论博客链接:https://www.cnblogs.com/xiaobeike/p/14630491.html
- 克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
复审项目 复审问题 复审结果 概要部分 代码能符合需求和规格说明么?
代码设计是否有周全的考虑?
代码可读性如何?
代码容易维护么?
代码的每一行都执行并检查过了吗代码未实现算法调用,博文中未找到规格说明文档
较为周全
较好
维护性较好
已完成设计部分 设计是否遵从已知的设计模式或项目中常用的模式?
有没有硬编码或字符串/数字等存在?
代码有没有依赖于某一平台,是否会影响将来的移植?
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?
在本项目中是否存在类似的功能可以调用而不用全部重新实现?
有没有无用的代码可以清除?遵循
存在文件名字符串存在
无依赖
无
排序功能
无代码规范 修改的部分符合代码标准和风格么? 符合 具体编码 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
边界条件是如何处理的?
Switch语句的Default是如何处理的?
循环有没有可能出现死循环?有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
对资源的利用,是在哪里申请,在哪里释放的?
有没有可能导致资源泄露?有没有可能优化?
数据结构中是否有无用的元素?代码中无容错处理
没有检查返回值
未发现异常
没有使用switch语句
循环没有死循环
无断言存在
读取文件资源,无释放
无效能 代码的效能(Performance)如何?最坏的情况是怎样的?代码中,特别是循环中是否有明显可优化的部分?
对于系统和网络调用是否会超时?如何处理?算法未实现,无法测试效能
在散点图中没有无代码优化可测试性 代码是否需要更新或创建新的单元测试? 不需要
- 代码中存在的bug
1、算法求解解向量、遗传算法求解未实现
2、代码功能单一,如果使用不同类型的文件,无报错信息
3、遗传算法没有保存日志文件
4、代码在提交等待的过程当中无时间显示,且由于算法设计求解数据有限
5、散点图数据区间过大时如果出现坐标较小的数据时显示的位置可能会超出坐标轴的范围
6、对于较少的数据求解时返回值为0s
-
阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
使用软件照片:
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?- 软件很好的解决了任务三要求的各项功能,而且基本功能均能实现而且用户界面友好,界面简洁大方,求解过程当中可对数据库中的数据进行一键添加、一键删除等操作,在具体的使用过程当中得出以下意见:
优点:
用户界面友好、功能完善。
一键添加数据,方便用户更换数据集进行测试,
使用vue.js无刷新技术,不用跳转就可实现结果传输,用户体验友善
缺点:
测评时没有错误和报错信息
回溯算法求解时间过长且无提示
无求解过程当中的日志信息
代码嵌入模块,能够求解和测试代码类型单一
软件功能改进意见:
1.在用户等待过程当中,加上等待时间
2.能够拥有日志信息,用户可以在线编辑代码,加上在线代码编辑器
3.能够求解多种编程语言
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
- 用户群体特征:
职业:学生、程序员、算法工程师、计算机专业教师
学历:大多数为本科和硕士
年龄:18-26岁
收入:大部分用户群体应该为无收入和较少收入群体 - 表面需求: 使用该算法测试自己编写代码的性能,优化算法复杂度、利用平台的测评数据集实现D{0-1}背包问题的求解
- 潜在需求:掌握遗传算法、回溯算法、动态规划算法,提高自己的编程能力,计算思维,算法设计与分析的能力
- 软件很好的解决了任务三要求的各项功能,而且基本功能均能实现而且用户界面友好,界面简洁大方,求解过程当中可对数据库中的数据进行一键添加、一键删除等操作,在具体的使用过程当中得出以下意见:
-
经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
对于本次选用的测评平台,我使用了很久以后一致认为选择是d,待开发者改进后,可以给到e -
经过阅读其他团队对本项目的测试对此进行迭代更新,根据用户使用体验,解决了如下问题
- 在阅读了对本小组的算法平台使用体验后,根据自己的能力,对平台做出如下更新:
- 用户提交代码后报错问题
- 散点图绘制过程当中出现的浏览器缓存更新不及时问题
- 使用多种编程语言嵌入求解
个人负责部分commit记录:
pull request记录:
任务2:团队组建(已完成)
- 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;(3分)
- 开通团队博客:已开通,详见团队博客;
- 提交团队信息:已提交,详见团队博客;
- 加入班级:已加入,详见团队博
- 团队博客链接:https://www.cnblogs.com/yongyuandeAce/
- 阅读《现代软件工程—构建之法》第5章内容
任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业(已完成)
团队博客链接:https://www.cnblogs.com/yongyuandeAce/
阅读《现代软件工程—构建之法》第7章、第17章,理解MSF的9点基本原则和团队成员绩效
阅读记录:
- 第七章
MSF过程模型寿命周期简图
MSF原则:
- 第17章 人、绩效和职业道德
在本章中收获最丰富的还是绩效考核,在最初的软件工程这门课的学习当中,提出的问题,在本章中得到和好的解答,从下表的二维评价体系当中能够很好的阐述绩效评价的相关内容
完成本次作业的时间:
任务1 : 2h
任务2 : 3h
任务3 : 3.5h
完成本次作业心得:- 对于任务3中选择的团队开发的算法测评平台,博主不仅编程能力强,而且在整体的用户体验都很完整,在使用过程当中支持一键添加数据库,而且在算法嵌入求解页面,能够给出样例程序,能够在本次其他团队完成的作业得到很好的收获。反观之,阅读了其他同学对本组的使用体验,我们对本组的作业进行了迭代,参考本次对常龙龙和刘佳华同学开发的测试平台,借他人之长,对我们编写的算法平台进行二次更新和更好的用户体验升级,这个过程收获颇丰,在以后的学习过程当中还是要不断的进行迭代
- 团队组建部分的我阅读了《构建之法》第五章以及后面的内容,对于邹欣老师的博文中关于团队开发的流程有了很多的认识,相信在本次团队项目开发当中能够运用到邹欣老师在文中说提到的各种方法,让团队的效率更高,开发出好的软件产品。