项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
团队名称 | The Superego |
团队的学习目标 | (1)实验三作业互评,撰写个人博客 (2)组建软件项目研发团队,确定团队名称、口号,了解团队成员个人特性 (3)确定项目开发流程,明确成员分工 |
这个作业在哪些方面帮助团队实现学习目标 | (1)通过互评优秀作业,让我了解到自身与他人的差异,同时在撰写博客和编程方面受到一定启发 (2)通过读《现代软件工程—构建之法》了解了项目研发团队组建的关键要素 (3)克隆任务3项目源码可以让我更好地掌握结对编程与借鉴别人的编程思路 (4) 找项目代码的bug,让我体会到代码复审环节的重要性 |
团队博客链接 | https://www.cnblogs.com/qwe0420/ |
任务内容:
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
被评论的博客连接:https://www.cnblogs.com/xiaobeike/p/14630491.html
被评论作业的Github项目仓库链接:https://github.com/beike666/bag_client
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
复审原则 | 内容 |
---|---|
代码符合需求和规格说明么? | 符合 |
缺少相应的规范说明,参照《码出高效—阿里巴巴开发手册》的代码规范来看,代码是符合规范说明的 | 是 |
代码设计是否考虑周全? | 是 |
代码可读性如何? | 良好 |
代码容易维护么? | 比较容易维护 |
代码的每一行都执行并检查过了吗? | 是 |
设计是否遵从已知的设计模式或项目中常用的模式? | 遵从 |
有没有硬编码或字符串/数字等存在? | 没有 |
代码有没有依赖于某一平台,是否会影响将来的移植? | 不会影响移植,任何平台都可以 |
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现? | 可以用 |
存在,有些代码是可以调用的 | 存在 |
有没有无用的代码可以清除? | 没有 |
代码规范部分 | 符合代码规范 |
修改的部分符合代码标准和风格吗? | 符合 |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 使用回溯求解大数据时会出现内存溢出的异常 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数? | 没有 |
边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 没有出现死循环 |
有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? | 没有 |
数据结构中有没有用不到的元素? | 没有 |
代码的效能(Performance)如何?最坏的情况是怎样的? | 达到了具体任务的要求 |
代码中,特别是循环中是否有明显可优化的部分(string的操作是否能用StringBuilder来优化)? | 没有 |
对于系统和网络的调用是否会超时?如何处理? | 不会 |
可读性 | 可读性良好 |
代码可读性如何?有没有足够的注释? | 可以顺利阅读 |
有足够的注释 | 有注释,可以读懂 |
可测试性 | 测试性良好 |
代码是否需要更新或创建新的单元测试? | 可以继续开发 |
克隆后运行截图:
该项目不足之处:
1.使用回溯求解大数据时会出现内存溢出的异常
2.遗传算法没有保存日志文件
3.散点图数据区间过大则会超出坐标轴范围
4.在动态规划和回溯算法中,没有给出解向量
5.SoringBoot 测试FrameworkApplicationTests无法启用
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
1.数据库存储
2.数据信息
3.删除后的数据表
4.回溯算法求最优解
5.动态规划算法求最优解
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
任务3要求的功能软件(数据写入数据库、绘制散点图、对数据项集排序、求解0/1背包问题最优解、将求解结果写入文件)都解决了
优点:设计的软件界面清晰美观,可读性强,存储最优解时有提示框,使用效果良好
缺点:散点图数据区间过大则会超出坐标轴范围,代码文件类型单一,算法求解没有展示解向量
改进意见:界面布局不是特别美观,可以考虑重新设计整体布局,增强用户感体验感,设计算法解决使用回溯法求解大数据时会出现内存溢出异常问题
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
职业 | 学生以及软件开发人员 |
---|---|
学历 | 本科及以上 |
年龄 | 18到40左右 |
专业 | 计算机专业 |
爱好 | 爱好代码编程方面,以及喜欢偏向于计算机方面的东西 |
收入 | 6000以上 |
表面需求 | 满足用户需求,设计算法实现基本功能要求 |
潜在需求 | 软件项目开发 |
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
d)好,不错,通过对该组同学作业的阅读以及对其软件的使用,体会到该软件使用体验良好。