实验四 团队作业项目
项目 |
内容 |
课程班级博客的链接 |
2019级卓越工程师班 |
作业要求链接 |
实验四 团队作业 |
团队名称 |
奋起上进 |
课程学习目标 |
1.组件软件项目研发团队; 2.互评实验三项目,吸取其他项目的优点。 |
团队博客 |
奋起上进 |
目标实现 |
1.对实验三中完成质量较高小组的项目进行学习; 2.对本组实验三的项目进行了修改;3.找到了合适的队友并进行了团队的组建。 |
任务一:
浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务
1.评论对象信息
2.博文评论:
- 博文结构: 博文结构清晰,排版整洁,内容充实
- 博文内容: 内容完整充实,完成了各个任务,条理清晰,整体简约。
- 博文结构与PSP中“任务内容”列的关系:博文结构与“任务内容”基本一致,基本遵循了PSP过程。
- PSP两列数据的差异化分析与原因探究:
- 该项目的PSP计划与实际时间基本一直,可以看出该组同学对计划的制定以及实施做到了精准的把握;
- 预计时间相对合理,有完成规划
3.克隆到本地,进行代码审查
项目 |
内容 |
1.概要部分 |
|
代码符合需求和规格说明么? |
基本符合需求和规格说明 |
代码设计是否考虑周全? |
基本周全 |
代码可读性如何? |
可读性高 |
代码容易维护么? |
容易维护 |
代码的每一行都执行并检查过了吗? |
检查过 |
2.设计规范部分 |
|
设计是否遵从已知的设计模式或项目中常用的模式? |
遵从 |
有没有硬编码或字符串/数字等存在? |
有部分 |
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到 Win64) |
不影响移植 |
开发者新写的代码能否用已有的 Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? |
可以实现 |
有没有无用的代码可以清除? |
无 |
3.代码规范部分 |
|
修改的部分符合代码标准和风格么(详细条文略)? |
符合 |
4.具体代码部分 |
|
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? |
对错误进行了处理,处理了异常 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度, |
无错误,是以0开始计数 |
边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出 |
没有出现死循环,循环语句正确 |
有没有使用断言(Assert)来保证我们认为不变的条件真的满足? |
无 |
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间? |
不会导致资源泄露 |
数据结构中是否有无用的元素 |
没有 |
5.效能 |
|
代码的效能(Performance)如何?最坏的情况是怎样的? |
程序运行正常,代码效能优秀。 |
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)? |
无 |
对于系统和网络调用是否会超时?如何处理? |
不会超时 |
6.可读性 |
|
代码可读性如何?有没有足够的注释? |
代码可读性好,有足够注释 |
7.可测试性 |
|
代码是否需要更新或创建新的单元测试?还可以有针对特定领域开发(如数据库、网页、多线程等)的核查表。 |
无 |
4.阅读《现代软件工程—构建之法》第12章内容
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片:
- 1.运行初始界面,并使用贪心算法
- 2利用遗传算法求解的实验截图
- 3散点图表
B.总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
项目 |
内容 |
任务3要求的功能 |
在实验二的基础上实现了遗传算法 |
功能 |
|
优点 |
GUI界面简约 |
缺点 |
没有实现数据库的功能 |
改进意见 |
增加一个数据存储的记录 |
C. 从学历、年龄、专业、爱好、收入等方面概括软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?
学历 |
年龄 |
专业 |
爱好 |
收入 |
表面需求 |
潜在需求 |
本科 |
20+ |
计算机专业 |
编程 |
中等收入 |
实现 |
算法掌握 |
经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐:
d) 好,不错
改进:无
任务二和任务三:
第五章阅读:
1、团队的特点:
- 团队有一致的集体目标,团队要一起完成这个目标。
- 团队成员有各自的分工,互相依赖合作,共同完成任务。
2、软件团队的模式:
- 主治医师模式 (Cheif Programmer Team, Surgical Team)
- 明星模式 (Super-star Model)
- 社区模式 (Community Model)
- 业余剧团模式 (Amateur Theater Team)
- 秘密团队 (Skunk Work Team)
- 特工团队 (SWAT)
- 交响乐团模式 (Orchestra)
- 爵士乐模式 (Jazz Band)
- 功能团队模式 (Feature Team)
- 官僚模式 (Bureaucratic Model)
3、开发流程:
(1) 软件开发流程概念:
- 我们在开发、运营、维护的过程中有很多的技术、做法、习惯和思想。软件工程把这些相关的技术和过
程统一到一个体系中,叫做“软件开发流程”。
团队作业个人总结
通过本次作业,软件工程作业正式进入团队合作模式,我和尚洁选择了曹永兴和张容星组,我之前和尚洁进行过
合作,团队组建起来很轻松,在进行交流及完成各项任务时也很容易,很快就完成了。相信我们团队在以后的实
验中会充分发挥团队的优势,充分利用每个人的优势。在以后的实验过程中我们会再接再厉。