201971010223-刘温元 实验四 团队作业1——软件研发团队组建
项目 | 内容 |
---|---|
班级博客 | 2022年春软件工程课程班 |
作业要求 | 实验四 团队作业1:软件研发团队组建 |
学习实现 | (1)实验三作业互评。(2)组建软件项目研发团队。 |
目标实现 | (1)对实验三中完成质量较高小组的项目进行学习(2)对本组实验三的项目进行了修改(3)找到了合适的队友并进行了团队的组建 |
团队博客 | 软件工程四人小团队 |
任务1
(1)评论
项目 | 内容 |
---|---|
被评论作业的博客链接 | 李瑞婷的博客 |
被评论作业的仓库链接 | 李瑞婷的仓库 |
评论内容 | (1)博文结构:博文结构简洁明了,阅读起来赏心悦目(2)博文内容:内容充实,在文字解释的同时有图片辅助,将实验三所有的要求都详细呈现,将项目实现的细节一一陈述。让人清楚明白(3)博文结构与PSP中“任务内容”列的关系:PSP表中的要点在本篇博文中均可找到相关内容,可见博主对PSP流程有所学习并掌握了它。(4)PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究:根据博主的PSP表,发现实际与计划差异最大的方面为具体编码,可能是因为要编写遗传算法的代码或之前没有接触过的内容导致的。总结:该博文完成度非常高,各方面都描述的非常详细,项目完成度也非常高,从中我学习了很多 |
(2)代码审查
代码审查表
项目 | 说明 |
---|---|
概要部分 | |
代码符合需求和规格说明么? | 基本符合,功能大致完成 |
代码设计是否考虑周全? | 考虑比较周全,还可以 |
代码可读性如何? | 较差 |
代码容易维护么? | 不易维护 |
代码的每一行都执行并检查过了吗? | 是 |
设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 没有 |
有没有硬编码或字符串/数字等存在? | 没有,采用的变量名符合代码规范 |
代码有没有依赖于某一平台,是否会影响将来的移植? | 没有,对移植影响较小 |
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现? | 是 |
在本项目中是否存在类似的功能可以通过调用而不用全部重新实现? | 没有 |
有没有无用的代码可以清除? | 有 |
代码规范部分 | 大致符合 |
具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 有 |
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 | 无错误;字符的长度;从0开始 |
循环有没有可能出现死循环? | 没有 |
有没有使用断言来保证我们认为不变的条件真的得到满足? | 没有 |
有没有优化的空间? | 有 |
数据结构中有没有用不到的元素? | 有 |
效能 | |
代码的效能如何?最坏的情况是怎么样的? | 效能可以 |
代码中,特别是循环中是否有明显可优化的部分? | 有 |
对于系统和网络的调用是否会超时?如何处理? | 无 |
可读性 | |
代码可读性如何?有没有足够的注释? | 关键地方注释少,阅读困难 |
可测试性 | |
代码是否需要更新或创建新的单元测试? | 是 |
阅读《现代软件工程—构建之法》第12章内容,并进行分析
A.软件运行
- 界面登录
- 重要功能展示
- 散点图绘制
- 排序
- 算法选择及最优解
- 遗传算法求解
B.总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
- 该软件将任务3的要求全部实现
- 优点
- 整体上来说界面简单,对用户友好
- 功能齐全,扩展功能也十分强大
- 缺点
- 代码可读性差,把项目交予顾客后软件的维护较难
- 功能基本实现,但是设计的GUI界面与使用的框架中已有的部分处理不是很好;
- 改进意见
- 希望多增加代码注释
C.用户特征刻画
内容 | 说明 |
---|---|
学历 | 本科及以上 |
年龄 | >=18 |
专业 | 计算机科学与技术 |
爱好 | 前端、算法 |
收入 | 不限 |
表面需求 | 需要利用贪心,回溯,动态规划及遗传算法来求解01背包问题 |
潜在需求 | 需要完成一个关于算法的简易项目 |
经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
结论:d
理由:整体完成度不错,基本实现老师的实验要求,但是有些版块需要完善。
结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3
Git操作:包括commit, git pull, merge, push等
任务2、3《现代软件工程—构建之法》第5章阅读
- 1.软件团队的模式:
- 主治医师模式
- 各司其职,为主治医师服务。
- 明星模式
- 主治医师模式的极点
- 社区模式
- 每个人参与自己感兴趣的方向。
- 业余剧团模式
- 每个团队在不同的项目会挑选不同的角色。
- 秘密团队
- 每个人在秘密条件下进行。
- 特工团队
- 有特殊技能的专业人士。
- 交响乐团模式
- 交响乐团的演奏模式。
- 爵士乐模式
- 与交响乐队模式对立。
- 功能团队模式
- 具备不同能力的人平等协作。
- 官僚模式
- 小头目-->中头目-->大头目。
- 主治医师模式
- 2.TSP原则
- 使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;
- 团队的各个成员对团队的目标、角色、产品都有统一的理解;
- 尽量使用成熟的技术和做法;
- 尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
- 制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);
- 增加团队的自我管理能力;
- 专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)
团队任务
其余任务见
软件工程四人小团队