项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST/ |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
团队的课程学习目标 | 实验三作业互评;组建软件项目研发团队。 |
这个作业在哪些方面帮助团队实现学习目标 | |
团队博客链接 | https://www.cnblogs.com/dizao/ |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
评论博客链接:https://www.cnblogs.com/z-thorn/p/14636029.html
Github链接:被评论作业的Github项目仓库链接
评论截图:
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
1.克隆到本地机:
、
2.运行代码(部分截图):
3.运行全部适合,无法找出bug。
4.核查表复审项目代码记录:
说明 | 内容 |
---|---|
概要部分 | |
代码符合需求和规格说明么? | 基本符合,但部分功能完成度较差。 |
代码设计是否考虑周全? | 考虑周全 |
代码可读性如何? | 采用模块化编程,代码可读性好。 |
代码容易维护么? | 对于不同的功能模块,分别存储在不同的类中,维护较为容易。 |
代码的每一行都执行并检查过了吗? | 是的 |
设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 采用了抽象工厂设计模式(对象创建型模式) |
有没有硬编码或字符串/数字等存在? | 没有,采用的都是符合命名规范的变量名 |
代码有没有依赖于某一平台,是否会影响将来的移植? | 没有 |
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现? | 能调用 |
有没有无用的代码可以清除? | 没有 |
代码规范部分 | |
修改的部分符合代码标准和风格吗? | 符合规范 |
具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 没有处理异常值 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数? | 没有 |
边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 采用哨兵处理边界;没有使用switch语句;循环不会出现死循环。 |
有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? | 程序较为简单,所以没有使用断言。 |
数据结构中有没有用不到的元素? | 有 |
效能 | |
代码的效能(Performance)如何?最坏的情况是怎样的? | 运行效率较低。 |
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string的操作是否能用StringBuilder来优化)? | 无 |
对于系统和网络的调用是否会超时?如何处理? | 没有对网络的调用 |
可读性 | |
代码可读性如何?有没有足够的注释? | 关键语句都有注释,可读性高 |
可测试性 | |
代码是否需要更新或创建新的单元测试? | 不需要 |
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
第一步:链接数据库,
第二部:启动程序,
第三步:上传数据,
第四步:使用算法解决问题。
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
- 每一个功能软都解决了;数据量上,可以处理大数据;界面美观实用;功能齐全;该要的都有了。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
用户群特征 | |
---|---|
职业 | 学生 |
学历 | 本科 |
年龄 | 18-25 |
专业 | 计算机/数学专业 |
爱好 | 编程/数学计算 |
收入 | 0 |
表面需求 | 获取一些算法的代码进行研究 |
潜在需求 | 用编程语言实现动态规划等算法,研究其代码,掌握许多算法,提升自己的编程能力。 |
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
综上所述给本博客 e。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
暂时无修改的地方。