201971010111-何晨泽 实验四 团队作业1:软件研发团队组建


项目 内容
课程班级博客链接 2019级卓越工程师班
这个作业要求链接 实验四 团队作业1:软件研发团队组建
团队名称 待宰的高羊
我的课程学习目标 (1)迭代实验三项目
(2)复审优秀项目,取长补短
(3)组建软件项目研发团队
这个作业在哪些方面帮助我实现学习目标 (1)通过测试他人优秀项目来迭代自己的项目
(2)进行团队建设,明确团队分工
团队博客链接 待宰的高羊

任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成任务

项目 内容
被评论作业的博客链接
被评论作业的Github项目仓库链接 soft3
  1. 博客评论
  1. 博文结构
    整体结构较为简练,条目清晰,但在排版上存在一定的欠缺,背景与前景的结合导致内容阅读存在一定的困难。
  2. 博文内容
    总体上完成了要求的内容,以各任务为中心构成行文路线。
  3. 博文结构与PSP中“任务内容”列的关系
    博文结构与“内容任务”列并非完全对应。博文结构以各任务串联起内容,本博文PSP中“内容任任务”列则是以较为通用的概括条目。
  4. PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究
    可以看到实际所需相比计划时间更长,其中需求分析、学习新技术、具体编码的实际完成时间与计划差异较大。主要原因是实现项目中涉及到的新技术学习时间超过预期、对部分编码熟悉程度不足等。
  5. 进度计划方面可以提高的具体建议
    对于自己不熟悉的项目可以相应留出更长的时间,也可在一些分析的部分提高效率。
  1. 克隆项目,阅读并测试
    • 克隆项目至本地文件夹
    • 代码核查表
项目 内容
概要部分
代码符合需求和规格说明么?
代码设计是否考虑周全?
代码可读性如何? 较好
代码容易维护么? 易维护
代码的每一行都执行并检查过了吗?
设计规范部分
设计是否遵从已知的设计模式或项目中常用的模式?
有没有硬编码或字符串/数字等存在?
代码有没有依赖于某一平台,是否会影响将来的移植? 对移植影响较小
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以通过调用而不用全部重新实现? 是,代码中使用了Matplotlib库
有没有无用的代码可以清除?
代码规范部分
修改的部分符合代码标准和风格么? 符合
具体代码部分
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 已处理
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 无错误;字符的长度;从0开始
边界条件是如何处理的?switch语句和default分支是如何处理的?循环有没有可能出现死循环? 前提分析推导边界条件;可能
有没有使用断言来保证我们认为不变的条件真的得到满足?
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄露?有没有优化的空间? 有对应的申请、释放语句;不存在;有
数据结构中有没有用不到的元素?
效能
代码的效能如何?最坏的情况是怎么样的? 效能一般;最坏情况下回溯算法将在极长的一段时间无法给出结果
代码中,特别是循环中是否有明显可优化的部分? 有,如动态规划可优化为一维
对于系统和网络的调用是否会超时?如何处理?
可读性
代码可读性如何?有没有足够的注释? 没有足够的注释,但代码较为清晰,故可读性较好
可测试性
代码是否需要更新或创建新的单元测试?
  1. 阅读《现代软件工程—构建之法》第12章内容,完成分析任务

    • A. 体验软件功能,简要描述软件的使用过程,上传使用软件的照片
      运行软件后,首先需要点击“请选择文件”按钮选择文件,随后选择使用的算法,点击求解问题,程序将在“结果”部分显示最优解、时间以及对应的日志记录。
      对数据“beibao3.in”采用遗传算法求解,并将其排序,随后绘制散点图的程序页面如下图所示。

      绘制出的散点图如下图所示。
    • B. 总结要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
    项目 内容
    要求的功能解决了吗? 已解决
    优点 (1)数据量:可以处理较大范围的数据
    (2)界面:简洁明了
    (3)功能:实现的较为全面
    缺点 (1)数据量:面对较大范围的数据时处理速度不佳
    (2)界面:界面相对较为朴素,不够美观
    (3)功能:没有自己的扩展功能实现
    • C. 从学历、年龄、专业、爱好、收入等方面概括软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?
    学历 年龄 专业 爱好 收入 表面需求 潜在需求
    学士/硕士 18+ 以计算机类为主 编程 无收入或较少收入 利用软件解决0-1背包问题 掌握各算法,提高编程能力
  2. 结合上述工作,给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
    经过上述的测试与分析,该小组在博文的撰写与软件的实现上体现出了较高的完成度,除了有一些小缺点外,其余均有较好的实现。
    故给出:d) 好,不错 的结论

  3. 迭代改进本小组实验三的任务3

    • 结合上述对其它组项目的测试评估,我们优化了本小组系统散点图绘制的用户界面,使其视觉效果有所提升,如下图所示。
    • 同时,更新了首页的开发进度信息,如下图所示。
    • 更新后的部分GitHub项目信息
      • 新提交的Commits
      • 新提交的Release

任务2:团队组建

  1. 团队名称
    待宰的高羊

  2. 团队成员组成

成员学号 成员姓名 个人博客地址 备注
201971010111 何晨泽 博客地址 PM
201971010110 高杨 博客地址
201971010101 阿丽米拉 博客地址
201971010160 谢家俊 博客地址
  1. 成员风采
成员姓名 风格 擅长技术 编程兴趣 希望承担的软工角色 宣言
何晨泽 求是 擅长主流编程语言,算法、前端等 对算法、数据挖掘等方面兴趣较高 PM(开发) 我要上浙江大三本
高杨 知术欲圆,行旨须直 C/C++ 前端、Python 测试 好好学习,天天向上
阿丽米拉 喜欢动手,善于查找 C 前端开发 文档 知识就是力量
谢家俊 积极思考,擅于发现 Web前端开发 喜欢前端开发 开发 坚持不懈,加油
  1. 阅读《现代软件工程—构建之法》第7章,理解MSF的9点基本原则

    • 推动信息共享与沟通(Foster open communications)
      所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。当然,对牵涉到的技术机密、安全性等信息要采取必要的保护措施。
    • 为共同的远景而工作(Work toward a shared vision)
      这个目标必须是明确的,没有二义性;这个目标不是当前就能达到,必须是通过努力才能达到的;这个目标不是空泛的,它应该对项目成员每天的工作都有指导作用。
    • 充分授权和信任(Empower team members)
      平等协作---成员之间、团队之间是平等协作的关系;充分授权给团队和成员。
    • 各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
      无责任的旁观者和有重大责任的当局者的看法自然是不一样的。对此事负责的角色要自己拿主意。
    • 重视商业价值(Focus on delivering business value)
      如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决问题,那你就不应该贸然创业。
    • 保持敏捷,预期变化(Stay agile,expect change)
      软件工程,唯一不变的是变化。所以干脆别幻想客户的需求会在第一-时刻很明确,然后保持不会变。但要注意,我们是预期变化,不是期望变化。
    • 投资质量(Invest in quality)
      不是质量第一,而是解决用户的问题第一。
    • 学习所有的经验(Learn from all experiences)
      把经验总结出来;分享经验。是为了:让团队成员从别人的成果和失败的例子中学到东西;帮助新项目重复以往成功的做法;培育团队总结的习惯和“批评与自我批评”的文化。
    • 与顾客合作(Partner with internal and external customers)
      MSF强调产品团队与顾客的交流与合作,并不是产品团队拿到合同之后,就闭门造车,直到产品完成才告诉用户,给他们一个惊喜。
  2. 组建团队企业微信群
    群成员如下图所示。

  1. 团队特色描述
    • 团队特点:团队成员性格各不相同,但不会互相冲突,能从多角度看待、解决问题。
    • 核心竞争力:编程能力较强。

任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业

  1. 完成各项任务实际花费的时间
任务内容 实际花费的时间(min)
任务1 120
任务2 50
确定团队成员 3
确定团队各项信息 8
收集成员信息 16
组建群聊、申请团队博客、加入班级博客 23
学习MSF 30
任务3 30
  1. 完成本次作业的感受和体会
    本次作业是我第一次按照规程条目组织团队,虽然此前已有多次担当队长的经历,但感受到这次团队的组建相比此前更有组织性,相信能够进一步提升自己的能力。