201971010142-王玉慧 实验四 团队作业1:软件研发团队组建个人博客 软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 为党和国家办事 |
我的课程学习目标 | 1.增强团队合作交流能力; 2.学会评论其他软件项目并作出相应的意见和建议; 3.组建软件项目研发团队 |
这个作业在哪些方面帮助实现学习目标 | 1.增强成员之间要相互理解,就要提升自己与团队成员的合作交流能力合作意识的; 2.参加了软件项目研发团队; 3.对优秀项目进行学习和借鉴,加强了对编码规范的进一步了解 |
团队博客链接 | https://www.cnblogs.com/wyhtkywcy/ |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)挑选我认为完成质量较高的一组项目成果进行评论:
评论博客链接:评论博客
评论作业的Github仓库链接:仓库链接
(2)克隆任务3项目源码到本地机器,阅读并运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
代码复审核查表
内容 | 完成效果 |
---|---|
----------概要部分---------- | |
代码是否符合需求和规范说明 | 符合 |
代码设计是否考虑周全 | 周全 |
代码可读性如何 | 清晰易读 |
代码容易维护吗 | 容易 |
代码的每一行都执行并检查过了吗 | 否 |
----------设计规范部分---------- | |
设计是否遵循从已知的设计模式或项目中常用的设计模式 | 是 |
有没有硬编码或字符串/数字等存在 | 有 |
代码是否依赖于某一平台,是否会影响将来的移植 | 代码由C#编写,可能会影响移植 |
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以通过调用而不用全部重新实现? | 是,用已有的Library/SDK/Framework中的功能实现 |
有没有无用的代码可以清除 | 有 |
----------代码规范部分---------- | |
修改的部分符合代码标准和风格么 | 符合 |
----------具体代码部分---------- | |
是否可正确读入实验数据文件的有效D{0-1}KP数据 | 代码实现了从本地读取数据,符合需求且比较容易维护 |
是否能够绘制任意一组D{0-1}KP数据以重量为横轴、价值为纵轴的数据散点图 | 可根据读入的不同数据准确绘制以重量为横轴、价值为纵轴的数据散点图,符合实验要求。 |
是否对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序; | 对不同的数据可以进行选择并对其进行能够对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序;但相关部分代码可读性较差,存在较多问题。 |
是否自主选择动态规划算法、回溯算法求解指定D{0-1} KP数据的最优解和求解时间 | 代码中选择动态规划算法任意选择一组数据并求解了这组数据的最优解和求解时间,求解时间也是按照以秒为单位,符合实验要求 |
是否将任意一组D{0-1} KP数据的最优解、求解时间和解向量可保存为txt文件或导出EXCEL文件。 | 完成了任意一组D{0-1} KP数据的最优解、求解时间和解向量可保存为txt文件或导出EXCEL文件保存在本地。 |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 已处理 |
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 | 无错误,字符的长度,从0开始计数 |
边界条件是如何处理的?switch语句和default分支是如何处理的?循环有没有可能出现死循环? | 通过前提分析推导边界条件 |
有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? | 否 |
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄露?有没有优化的空间? | 自动申请释放,不会存在资源泄露,有优化的空间 |
数据结构中有没有用不到的元素? | 有 |
----------效能---------- | |
代码的效能(Performance)如何?最坏的情况是怎么样的? | 效能一般,数据量过大可能会需要很长的运行时间而得不到结果 |
代码中,特别是循环中是否有明显可优化的部分? | 无 |
对于系统和网络的调用是否会超时?如何处理? | 如果超时,重新调用 |
代码可读性如何?有没有足够的注释? | 结构清晰,但注释较少 |
----------可测试性---------- | |
代码是否需要更新或创建新的单元测试 | 否 |
a.克隆任务三项目源码:
b.克隆人任务三源代码到本地机器:
c.运行代码:
-
用py charm打开clone的源代码
-
写入数据
-
运行结果
-
排序
-
计算最大价值
-
绘制散点图
-
日志记录功能
-
bug:
-
绘制的散点图有缺点,若数据区间过大则会超出坐标轴范围;
-
没有单独创建文件夹,用来存中间计算过程中的数据,不利于监测;
-
依赖包版本过低时出现Error: python: Compilation failed: internal python compiler error问题。
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片
B.总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
对方项目完成认真且符合任务三要求:
* D{0-1}KP 实例数据集存储在数据库
* 平台可动态嵌入任何一个有效的D{0-1}KP 实例求解算法,并保存算法实验日志数据;
* 人机交互界面要求为WEB页面;
* 遗传算法求 D{0-1}KP。
优缺点:
* 优:设计的软件界面清晰美观,可读性和顺序性强;
* 缺:代码文件类型单一,算法求解没有展示解向量。
改进意见:
* 该产品若是可以提高使用的方便性便可以更好地展示软件的优点。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
职业方面:学生
学历方面:大学三年级,能熟练地使用电脑,熟悉前端开发和算法设计;
年龄:20-23;
专业:计算机科学与技术
爱好:喜欢新颖有趣且实用的软件,下载并使用它;
收入:低收入或基本无收入者。
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
- 项目认真完成,符合项目所有要求;
- e)非常推荐。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
-
Github项目仓库链接:https://github.com/keyi21/shiyan3
-
项目迭代改进要点说明:在我们项目提交的过程中,我们会提交多次,每次提交的都是我们改动或新添加的代码。我们这次在上次的基础上添加了新功能,包括将数据的解写到文件中,将数据库中的数据显示在前端,并将前端进行完善。
-
本小组任务3的Github项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况(25分)
-
Fork
-
Clone
-
Push
-
Pull request
-
每位同学针对任务1撰写个人博客作业,评分要点:
1.被评论作业的博客链接(1分);
2.被评论作业的Github项目仓库链接(1分);
3.符合(1)要求的博客评论(10分);
4.符合(2)要求的代码核查表(10分);
5.符合(3)要求总结:A(5分)、B(5分)、C(5分);
6.符合(4)要求结论(3分)
7.本小组任务3迭代改进要点说明,项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况(25分)
任务2:团队组建
- 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 申请开通团队博客,点击链接(https://www.chaojibiaoge.com/U/url/7lxwx4sx)提交团队信息,将团队博客加入到班级博客;(3分)
- 阅读《现代软件工程—构建之法》第5章内容
博客作业中针对任务2的评分要点:
1.队名;(3分)
2.团队成员组成,按以下列表形式给出,个人博客地址需加超链接,在备注中标记团队组长(PM);(3分)
成员学号 成员姓名 个人博客地址 备注
0001 张三
0003 李四
0007 王五
3.成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等;请阅读《现代软件工程—构建之法》第7章,理解MSF的9点基本原则,例如: (6分)- 为共同的远景而工作
- 充分授权和信任
- 各司其职,为项目共同负责
4.组建团队企业微信群,给出群成员截图;(2分)
5.团队特色描述,言简意赅的描述团队特点或核心竞争力;(6分)
完成情况:已完成
团队链接:https://www.cnblogs.com/wyhtkywcy/
任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业
博文作业格式评分要点:
博文名称:团队名称 实验四 团队作业1:软件研发团队组建(1分)
博文开头格式:(1分)
项目 内容
课程班级博客链接 <填写课程班级博客链接>
这个作业要求链接 <填写作业要求链接>
团队名称 <填写团队名称>
团队的课程学习目标 <填写目标>
这个作业在哪些方面帮助团队实现学习目标 <填写相关内容>
团队博客链接 <填写地址>
博文作为《实验四 团队作业1:软件研发团队组建》的文字资料,需完整包含以下内容:
满足任务2 评分要点的材料;
满足任务3 评分要点的材料;
记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;(5分)
谈谈完成本次作业的感受和体会。(5分)
- 完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间:
任务内容 | 计划共完成的时间(min) | 实际完成时间(min) |
---|---|---|
计划 | 30 | 30 |
团队组建 | 10 | 15 |
成员认识及确认组长 | 20 | 15 |
团队建成 | 95 | 155 |
创建企业微信群里 | 5 | 5 |
开通团队博客 | 30 | 90 |
成员了解 | 60 | 60 |
报告 | 210 | 335 |
博客互评 | 30 | 40 |
运行其他团队项目 | 30 | 120 |
阅读《构建之法》 | 60 | 60 |
博客园编写 | 60 | 100 |
反思及总结 | 30 | 15 |
- 完成本次作业的感受和体验
通过测试其他团队的软件项目与博客阅读学习,对我的感触很大.认识到了自己的很多不足之处,也发现了自己的一些独特之处。值得我学习的地方有很多,让我知道了什么叫做山外有山,楼外楼。比起大佬们,我并没有什么值得骄傲的成绩,在以后的学实习生活当中,确实应该将自己沉淀下来,虚心学习讨教。
本次学习相当于让我走了很多遍团队项目的流程,有很多开发经验和技术值得学习借鉴。这对我以后的团队项目当中有很重要的作用。