201971010245_王亚亚 实验四 团队作业1:软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs |
这个作业要求链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs/homework/12578 |
团队名称 | 花开富贵! |
团队课程学习目标 | 1.思维方面,有利于构建软件项目合作意识。 2.学习经验方面,学会如何去完成结对软件项目。 |
这个作业在哪些方面帮助团队实现学习目标 | 1.熟悉软件项目结对合作开发流程,并开发出本次软件项目。 2.通过阅读完成质量较高的项目小组的代码,了解其思想,进行代码复审,进而提高自身能力。 |
团队博客链接 | https://www.cnblogs.com/2019wang/p/16126506.html |
博客正文
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
点评截图:
(2)克隆任务3项目源码到本地机器,阅读并运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
- 代码核查表
复审原则 | 内容 |
---|---|
概要部分 | |
代码符合需求和规格说明么? | 1. 代码符合需求 2. 缺少相应的规范说明,参照《码出高效—阿里巴巴开发手册》的代码规范来看,代码是符合规范说明的 |
代码设计是否考虑周全? | 考虑周全 |
代码可读性如何? | 可以顺利读下去 |
代码容易维护么? | 比较容易维护 |
代码的每一行都执行并检查过了吗? | 是的,都可以执行 |
设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 遵从 |
有没有硬编码或字符串/数字等存在? | 没有 |
代码有没有依赖于某一平台,是否会影响将来的移植? | 没有,不会影响移植,任何平台都可以 |
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现? | 可以用 存在,有些代码是可以调用的 |
有没有无用的代码可以清除? | 没有 |
代码规范部分 | |
修改的部分符合代码标准和风格吗? | 符合,都按照代码标准修改的 |
具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 当出现错误时返回空值 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数? | 没有 |
边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环? | switch语句的default分支返回false,没有出现死循环 |
有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? | |
对资源的利用是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间? | 在对数据库进行操作之前申请数据库连接资源,操作完毕之后释放申请的资源、不会导致资源泄露、可以优化使用断言来保证我们认为不变的条件 |
效能 | |
代码的效能(Performance)如何?最坏的情况是怎样的? | 达到了具体任务的要求 |
代码中,特别是循环中是否有明显可优化的部分(string的操作是否能用StringBuilder来优化)? | 没有,已经比较优化了 |
对于系统和网络的调用是否会超时?如何处理? | 目前没有出现超时的现象。 |
可读性 | |
代码可读性如何?有没有足够的注释? | 代码注释较少 |
可测试性 | |
代码是否需要更新或创建新的单元测试? | 可以继续开发,测试数据库的复杂性操作 |
- BUG
1.绘制散点图更新不及时,有浏览器缓存
2.回溯算法求解过程太长,用户体验不是很友好
3.没有算法测评报错信息,用户提交成功后需要长时间等待
4.在无工作人员的介绍下,用户不能轻松的运行其该项目
5.算法求解时间过长,时间复杂度高
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
- 实现功能
- 将数据集中的数据存储到数据库
- 对某一组数据绘制重量-价值散点图
- 对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序
- 对一组D{0-1}KP进行求解
- 软件使用过程
1.先将项目运行起来,在浏览器输入localhost:8099/database进入软件项目
2.在数据库存储页面点击存储按钮将文件中的数据存储到数据库中
3.在绘制散点图页面输入文件名和组数,点击提交按钮绘制散点图
4.在数据排序页面输入文件名、组数和算法名称,点击提交按钮显示求解结果
5.在算法求解页面输入文件名和组数,点击提交按钮显示排序结果 - 使用软件的照片
绘制散点图
数据排序
算法求解
B总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
任务3要求的功能未全部实现,没有遗传算法,没有代码测评,没有保存文件
软件评价
优点 | 缺点 | |
---|---|---|
数据量 | 数据量取决于数据集文件中数据的多少,无明显优点 | 无明显缺点 |
界面 | 界面美观,易操作,具有良好的人机交互界面 | 在输入信息时没有提示,新用户不知道该输入 |
功能 | 功能设计人性化,实现了基本的功能 | 有些功能没有实现 |
该软件可以继续深入开发,完善未完成的其他功能,如果能再添加对数据库数据的展示以及增删改查就更加完美
C 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
职业 | 学历 | 年龄 | 专业 | 爱好 | 收入 | 表面需求 | 潜在需求 |
---|---|---|---|---|---|---|---|
学生和从事软件开发的人 | 一般为大专及以上 | 18-35 | 计算机专业和数学专业 | 爱好计算机编程、网站开发、偏爱算法研究 | 8000-15000 | 了解该软件项目的功能,使用网站界面显示算法结果 | 需要良好的人机交互界面以及掌握前后端的技术将算法更好地展示 |
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
好,不错
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3。
散点图的改进
项目总结
在本次作业中,我选择了谢宇涵小组项目成果进行测试、复审,他们这组的作业代码功能实现的完整性比较高。所以于我而言此次复审的过程就是一个学习的过程,让我充分认识到了自己的不足,也更加意识到应该多向优秀的同学看齐。在阅读《构建之法》这本书时,我了解到了什么是团队和非团队、TSP原则,以及绩效管理等各种关于团队的内容,使我受益颇多。本次组建团队的过程中,我们也是费了一定的功夫,我们意识到组建一个合适的团队不仅要考虑各成员的学习能力,还要考虑对方性格方面是否适合、学习态度是否端正等多方面因素。本次组建团队之后,也让我更加下定决心要在之后的学习中多提升自己的能力,成为一个对自己有用、对团队有用、对社会有用的人。