201871030140-朱婷婷 实验四 团队作业1:软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 实验四 团队作业1 |
团队名称 | 佩琪小分队 |
我的课程学习目标 | 1. 完成实验三作业互评; 2. 组建软件项目研发团队。 |
这个作业在哪些方面帮助我实现学习目标 | 1. 通过互评和阅读其他同学的代码,增强了学习能力; 2.提高了合作交流能力,增强了自己的合作意识; 3.通过互相借鉴学习,找到自身不足的地方并加以改正。 |
团队博客链接 | 团队博客 |
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容“列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。
-
被评论作业的博客链接:博客链接
-
对博文作业的评论如下图所示:
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
-
被评论作业的GitHub仓库连接:仓库链接
-
代码的运行结果:
-
GUI界面:
-
数据的查询:
-
散点图的绘制:
-
排序:
-
选择算法求解:
-
-
项目代码中的Bug:
1.读出的数据与所给文件中的不一致;
2.由于文件中的数据读取错误,绘制的散点图是错误的;
3.排序结果不准确;
4.算法求解结果不正确,最优解和最大价值都为0;
5.从不同的文件中读出的数据都是一样的。
6.只实现了动态规划算法求解折扣背包问题,不能选择其他算法进行求解。
-
代码核查表:
1.概要部分 (1)代码能符合需求和规格说明吗? 是 (2)代码设计是否有周全的考虑? 否 (3)代码可读性如何? 较好 (4)代码容易维护吗? 容易 (5)代码的每一行都执行并检查过了吗? 是 2.设计规范部分 (1)设计是否遵从已知的设计模式或项目中常用的模式? 是 (2)有没有硬编码或字符串/数字等存在? 没有 (3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? 没有 (4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现? 否 (5)在本项目中是否存在类似的功能可以调用而不用全部重新实现? 是 (6)有没有无用的代码可以清除? 无 3.代码规范部分 (1)修改的部分符合代码标准和风格吗(详细条文略)? 符合 4.具体代码部分 (1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 否 (2)参数传递有无错误 无 (3)边界条件是如何处理的?循环有没有可能出现死循环? 无死循环 (4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足? 没有 (5)有没有可能优化? 有 (6)数据结构中是否有无用的元素? 否 5.效能 (1)代码的效能(Performance)如何?最坏的情况是怎样的? 较好 (2)代码中,特别是循环中是否有明显可优化的部分? 否 (3)对于系统和网络调用是否会超时?如何处理? 否 6.可读性 代码可读性如何? 较高 7.可测试性 代码是否需要更新或创建新的单元测试? 是
(3)阅读《现代软件工程—构建之法》第12章内容并完成分析任务:
- 软件用户界面的评价标准:
① 尽快提供可感触的反馈系统状态;
② 系统界面符合用户的现实惯例;
③ 用户有控制权;
④ 一致性和标准化 ;
⑤ 适合各种类型的用户 ;
⑥ 帮助用户识别、诊断并修复错误;
⑦ 有必要的提示和帮助文档 。
-
分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
将被评论小组的源代码下载到本地机器上,编译无误后运行,出现如下图所示的页面:
用户可以输入需要读取的文件名称(如1.txt),输入需要读取第几组数据,然后选择需要进行的操作,有以下四个选项:①进行数据的查询,②绘制数据散点图,③对数据进行排序,④选择算法来求解。选择好之后点击确认按钮就能实现上述四个功能。
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
①设计实现了GUI界面,界面清晰,操作简单,并且实现了文件读取、散点图的绘制、动态规划法求解,但是结果存在一些问题;数据库的连接这部分功能没有完整实现。
②软件实现的功能不完整,只实现了要求的部分功能;设计的页面简单易懂,但是不够美观。
③该软件的界面可以设计得更美观一些,其中一些功能再加以完善,如数据库的连接、遗传算法和回溯法求解问题。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
职业:大学生、职场新人等
学历:专科、本科及以上学历
年龄:18岁以上
专业:计算机相关专业
爱好:喜欢编程,编写软件项目。
收入:0-5000
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
e)一般,根据博客内容可以看出此软件实现了要求的功能,下载运行源代码后发现此软件实现了其中的一部分功能,而且在我使用的过程中出现了结果错误、数据不准确、部分功能未实现等问题,因此从各方面综合来看此软件一般。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
根据我们小组对项目的完成情况,并结合上述评论体会,迭代改进了本小组的实验三任务3的内容。之前的代码实现了要求中的一部分内容,用户可以选择用动态规划法或者回溯法求解问题的解,因此在这次改进后添加了一个选择算法的页面,但是整体的代码还存在问题,需要再进行迭代修改。
本小组任务3的Github项目仓库链接:仓库连接
任务2:组建团队
-
在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
-
队名:佩琪小分队
-
团队成员:
成员学号末五位 成员*名 个人博客地址 备注 30109 *诚 博客地址 组长(PM) 30133 *作朝 博客地址 开发 30118 *云云 博客地址 测试 30140 *婷婷 博客地址 文档 -
阅读《现代软件工程—构建之法》第7章、第17章,理解MSF的9点基本原则和团队成员绩效:
MSF(微软解决方案框架)的基本原则:
① 推动信息共享与沟通;
② 为共同的远景而工作;
③ 充分授权和信任;
④ 各司其职,对项目共同负责;
⑤ 交付增量的价值;
⑥ 保持敏捷,预期和适应变化;
⑦ 投资质量;
⑧ 学所有的经验;
⑨ 与顾客合作。
-
组建团队企业微信群并给出群成员截图:
-
-
申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;
-
成员风采:
介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、宣言等。
-
阅读《现代软件工程—构建之法》第5章内容。
- 软件团队的模式:
主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式。
- 开发流程:
写了再改模式、瀑布模型、统一流程(RUP)、老板驱动的流程、渐进交付的流程等。
总结
在本次实验中,通过互评和阅读其他同学的代码,增强了我的学习能力;通过阅读《构建之法》了解了团队模式和MSF,在团队组建的过程中,提高了我的合作交流能力,同时也增强了自己的合作意识。通过互相借鉴学习,结合其他同学的代码和博客,找到自身不足的地方,并且加以改正,在完成实验的整个过程中我收获了很多!