实验四 软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | 课程链接 |
这个作业要求链接 | 作业要求 |
我的课程学习目标 | 1.github拉取他人项目并运行 2. 评价他人项目 |
这个作业在哪些方面帮助我实现学习目标 | 1.通过本次作业的具体流程,再次熟悉了github的操作 2.运行他人项目,了解知识差异,取长补短 |
拉取对方的项目链接地址 | 卓越班(崔红梅第三次结对编程项目) |
团队名称 | 吃货团 |
团队博客链接 | https://www.cnblogs.com/chihuotuan/ |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
(4)经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
每位同学针对任务1撰写个人博客作业,评分要点:
- 被评论作业的博客链接(1分);
- 被评论作业的Github项目仓库链接(1分);
- 符合(1)要求的博客评论(10分);
- 符合(2)要求的代码核查表(10分);
- 符合(3)要求总结:A(5分)、B(5分)、C(5分);
- 符合(4)要求结论(3分)
- 本小组任务3的Github项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况(25分)
3、实验完成情况
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下(已完成)
-
1.1评价信息
-
1.2代码核查表
-
项目的开发者:崔红梅,包凤梅
-
项目的复审者:刘佳华
1、概要部分 代码符合需求和规格说明么? 代码符合需求 代码设计是否考虑周全? 考虑周全 代码可读性如何? 代码可读性较强,有着比较好的可读性。 代码容易维护么? 容易维护 代码的每一行都执行并检查过了吗? 是的,都可以执行 2.设计规范部分 设计是否遵从已知的设计模式或项目中常用的模式? 遵从 有没有硬编码或字符串/数字等存在? 没有 代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? 没有,不会影响移植,任何平台都可以 开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 可以用、存在,有些代码是可以调用的 有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码) 基本清除完毕了 3.代码规范部分 修改的部分符合代码标准和风格么? 符合,全都按照代码标准修改的 4.具体代码部分 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 对错误都进行了处理,没有异常 参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 无错误、本项目中不涉及字符串 边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? switch语句的default分支返回false,没有出现死循环 有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 有 对资源的利用是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间? 在对数据库进行操作之前申请数据库连接资源,操作完毕之后释放申请的资源、不会导致资源泄露、可以优化使用断言来保证我们认为不变的条件 数据结构中有没有用不到的元素? 没有 -
所测代码BUG:
- 具体功能的实现还不完全,只做了数据库存储,绘图等功能
- 页面设计时人机交互页面不是很友好
- 没有实现最后结果的文件存储或者日志存储
- 关于遗传算法没有提及到,没有实现
- 代码测评功能为实现
-
1.3clone 后运行
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
从整体项目Clone 运行 测试来看,她们组双人结对编程对于任务3的功能只实现了一部分,总觉得是在实验二的基础之上加了一个比较良好的展示界面,对于遗传算法,代码测评的实现都没有实现。软件在界面上还算是有点可交互性。对于她们的项目,我觉得可以在之后的时间里复盘一下。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
职业:学生,程序员,计算机老师。
学历:在校大学生。
专业:计算机相关专业。
潜在需求:通过该次实验设计的实验平台,解决D{0-1}背包问题求解这一类问题。
-
1.4 评价结论(C)
经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:
a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐 -
1.5 结合(1)—(3)的评论体会,迭代改进本小组实验三任务3
通过本次迭代,实现了数据库的查询,可以自行查看数据库的数据。
本次实验更新github仓库地址任务2:团队组建(已完成)
团队博客已发布,具体详情请查看团队博客 -
个人体会
虽然她们的项目有很多功能未实现,存在着一些不足,但是在她们的项目采用到了一些我不会的技术,这些属于课外的自学知识,这是值得我学习的地方。