项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
我的课程学习目标 | 1.掌握复审项目的方式,并学会以代码核查表的方式记录复审结果 2.熟练掌握Github协作开发程序的操作方法 |
这个作业在哪些方面帮助我实现学习目标 | 1.通过完成实验三作业互评,对代码复审的相关流程有了更加清晰的认识 2.通过迭代改进本小组实验三任务3,对Github的操作有了更加熟练的掌握 |
被评论作业的博客链接
https://www.cnblogs.com/123456789wq/p/14655467.html
被评论作业的Github项目仓库链接
https://github.com/wqwqwqwwq/SoftProject
博客评论
-
从博文结构来看,博文整体的排版简洁整齐,各部分的内容也都有清晰的分界,阅读起来对各部分的内容还是能有一个较为明确的把握的。
-
从博文内容来看,实验所要求的各个任务点都有写出来,D{0-1}KP 实例数据集算法实验平台的功能实现也有一个全面的展示,整体上完成度还是很不错的。不过其中对结对方项目仓库中的Fork、Clone等操作以及日志数据的展示的这部分完成的不是很全面,这方面可以再注意一下。
-
从博文结构与PSP中“任务内容”列的关系来看,整体上PSP中体现的任务内容以及各部分所花费的时间与博文结构还是较为对应的,能够反映出整个项目进行的流程。
-
关于PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,从PSP中可以看出来,具体设计、具体编码以及代码复审这三项的实际完成时间是略多于计划时间的,这些都是属于具体开发的一部分,可见对开发时间的把握与计划还是稍有欠缺的。
-
在进度计划方面可以提高的具体建议是,在制定计划时,可以通过需求分析对任务难度有一个较为准确的把握,从而给具体设计以及具体编码部分制定一个更加合理的计划时间。另外,测试部分计划的时间稍短,可以适当增加,这部分对于软件的完善还是较为重要的。
克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录
-
项目代码的bug
-
软件只能读取和测试一组数据,不能自由选择想要读取的任一数据
-
数据过多时,窗口界面容纳不下,无法显示全部数据
-
对于“散点图、遗传算法求解”等操作的选择只能进行一次,不能再次选择其余操作
-
对于数据是否成功存入数据库没有给出提示信息
-
没有给出动态规划算法求解问题的运行时间
-
遗传算法求解出的结果是一组01序列,阅读起来不是很清晰
-
-
代码核查表
复审原则 | 复审结果 |
---|---|
概要部分 | |
代码符合需求和规格说明么? | 符合 |
代码设计是否考虑周全? | 考虑周全 |
代码可读性如何? | 较好 |
代码容易维护么? | 容易维护 |
代码的每一行都执行并检查过了吗? | 检查过了 |
设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 遵从 |
有没有硬编码或字符串/数字等存在? | 没有 |
代码有没有依赖于某一平台,是否会影响将来的移植 | 没有,不会影响将来的移植 |
有没有无用的代码可以清除? | 没有 |
代码规范部分 | |
修改的部分符合代码标准和风格吗? | 符合 |
具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 没有对错误进行处理,未处理异常 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数? | 没有错误 |
边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 没有出现死循环 |
有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? | 没有 |
数据结构中有没有用不到的元素? | 没有 |
效能 | |
代码的效能(Performance)如何?最坏的情况是怎样的? | 读取数据量不大,效能不错 |
代码中,特别是循环中是否有明显可优化的部分(string的操作是否能用StringBuilder来优化)? | 没有 |
对于系统和网络的调用是否会超时?如何处理? | 不会超时 |
代码可读性如何?有没有足够的注释? | 可读性较好,有足够的注释 |
可测试性 | |
代码是否需要更新或创建新的单元测试? | 需要更新 |
阅读《现代软件工程—构建之法》第12章内容,完成分析任务
- 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片
软件使用的过程
将软件及其数据文件从Github上下载至本地
运行软件
在选择框中输入“1”查看散点图
在选择框中输入“2”查看价值重量比递增排序
在选择框中输入“3”查看动态规划算法求解出的结果
在选择框中输入“4”查看遗传算法求解出的结果
选择操作需再次运行方可选择另外的操作~~
使用软件的照片
选择界面
散点图界面
价值重量比递增排序界面
动态规划算法求解问题界面
遗传算法求解问题界面
-
总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
-
任务3要求的功能软件没有完全解决,没有给出动态规划算法的运行时间,没有将最后的运行结果保存至txt文件中。
-
软件的优缺点
数据量:只能对一组数据进行测试,不能测试体量较大的数据。
界面:界面简洁清晰,但是由于没有回退选择的设置,使用起来不是很友好。
功能:功能基本实现,较为完善。
-
对软件产品功能的改进意见
希望后续可以增加多次选择操作的功能,和使用者有一个更好的交互。另外,遗传算法的结果显示可以更加清晰一些,方便阅读。
-
-
从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
| 职业 | 年龄 | 学历 |专业 | 爱好| 收入| 表面需求 |潜在需求|
| ---- | ---- | ---- |---- |---- |---- |---- |---- |---- |
| 学生,计算机相关工作者 | 18岁以上 | 专科及以上 |计算机,软件|编程,算法|0-10000|学习遗传算法,提升编程能力|提升个人专业知识素养,增强专业水平|
经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
结论是:好,不错。
本小组任务3的Github项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况
- 本小组任务3的Github项目仓库链接
https://github.com/YQY128/SoftwareEngineering/tree/main/D{0-1}KP 实例数据集算法实验平台
- 项目迭代改进要点说明
对于是否成功将数据存入数据库给出提示信息。
-
项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况
-
将项目Fork至自己的Github:
-
将项目clone至本地:
-
在本地对项目进行修改,增加是否成功将数据存入数据库的提示信息:
-
将修改的内容申请同步到原项目中:
-
合并修改:
-