项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 这是个小队 |
团队的课程学习目标 | (1)学习并借鉴其他同学在实验三的项目成果; (2)开通并加入团队博客,建设团队文化,了解团队成员,建立团队目标; (3)在团队建设过程中建立团队精神。 |
这个作业在哪些方面帮助我实现学习目标 | (1)通过对实验三博客进行阅读评价,发现同伴不足的同时可以对自己实验二的部分遗留问题得到解决; (2)通过阅读《构建之法》第12章,体验任务3实现软件功能,帮助理解软件的使用过程; (3)与团队成员共同建设团队,为之后团队合作做出准备。 |
团队博客链接 | 博客链接 |
一.实验内容与步骤
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
1.博文作业的阅读以及评论:
- 评价博客链接:201871030133-徐作朝
- 评论作业的Github项目仓库链接:Github的仓库链接地址
- 评价截图:
2.克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
- 任务三提交代码:
- 克隆,阅读并运行后完成代码核查表:
核查内容 | 核查结果 |
---|---|
1.概要部分 | |
(1)代码能符合需求和规格说明么? | 符合 |
(2)代码设计是否有周全的考虑? | 整体设计较周全 |
(3)代码可读性如何? | 可读性较好 |
(4)代码容易维护么? | 不同功能用不同类完成,可维护性较强 |
(5)代码的每一行都执行并检查过了吗? | 已执行并检查 |
2.设计规范部分 | |
(1)设计是否遵从已知的设计模式或项目中常用的模式? | 遵从了项目常用的模式 |
(2)有没有硬编码或字符串/数字等存在? | 不存在 |
(3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? | 没有依赖,不会影响 |
(4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现? | 可以实现相关功能 |
(5)在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 可以 |
(6)有没有无用的代码可以清除? | 存在可清除代码 |
3.代码规范部分 | |
修改的部分符合代码标准和风格么(详细条文略)? | 较符合 |
4.具体代码部分 | |
(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 没有处理异常 |
(2)参数传递有无错误 | 没有错误 |
(3)边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环? | 没有出现死循环 |
(4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足? | 没有使用 |
(5)有没有可能优化? | 可以进行优化 |
(6)数据结构中是否有无用的元素? | 存在部分无用元素 |
5.效能 | |
(1)代码的效能(Performance)如何?最坏的情况是怎样的? | 代码效能整体较好 |
(2)代码中,特别是循环中是否有明显可优化的部分? | 没有 |
(3)对于系统和网络调用是否会超时?如何处理? | 未处理 |
6.可读性 | |
代码可读性如何? | 代码可读性较好 |
7.可测试性 | |
代码是否需要更新或创建新的单元测试? | 不需要 |
3.阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
-
(1)体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
- 软件使用较简单,可根据首页的提示查看数据,选择用动态规划算法,回溯法或遗传算法处理数据,以及进行降序排序和绘制散点图;
- 使用软件的照片:
-
(2)总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
- 任务三要求的功能软件实现了部分功能;
- 软件的数据量足够,但是大部分都是虚拟数据,未进行真实数据的实验;GUI界面功能完成,但是最终的呈现不是很优美;大部分功能都实现,附属功能和个别功能不完整;
- 改进意见:可以在用户进行注册时加入属性元素,如年龄,性别,地区和学历等,还可以记录用户行为数据,从而方便我们统计用户的特点;给该软件产品增加用户评论功能,更好的收集用户意见;提高界面的优美性,加入有趣的动画界面,从而扩大软件用户使用量。
-
(3)从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
- 用户群特征:该软件适用于要处理大量数据的会计,工程师,数据分析师等;学历在专科及以上;年龄在18岁以上;专业比较广泛,但理工科占比应该会较大,此外的会计,财务处理等专业也可以使用;用户应该会对数字比较敏感,对待工作较严谨。
- 表面需求:需要进行大量数据分析,呈现数据结果,进行部分数据数量,容量,价值的计算与呈现的用户。
- 潜在需求:可以配合第三方数据分析工具,达到用户需要统计的数据维度。
4.经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
- 评价作业:201871030133-徐作朝
- 评价结果:d) 好,不错
- 评价理由:通过对评价作业提交的实验三的阅读,对其本次项目的博文结构,博文内容,以及PSP进行了详细的评价, 总体完成度都很好;其次通过代码的审查,发现了其部分的问题,但项目的功能与目标基本实现,所以本次评价作业很好,不错。
5.结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
由于本人能力不足,未能成功对本小组的实验任务三进行相关迭代改进。
二.实验总结
通过本次实验作业,对其他同学的实验三博客进行评价之后,对自己在实验三上的不足有了清晰的认识,从而可以进行改进,对任务三的项目内容以及相关算法有了更深刻的学习,自己在课后应该进一步加强学习。阅读《构建之法》第12章后,体验了任务3实现软件功能,理解软件的使用过程;在任务二的团队组建中,开通并加入了团队博客,通过建设团队文化,了解团队成员,建立团队目标,从而理解团队精神,为之后进行相关团队工作进行准备。
三.完成《实验四 团队作业1:软件研发团队组建》博文作业
已提交团队作业至班级博客:团队作业一