201871030131-谢林江 实验四 团队作业1:软件研发团队组建

项目 内容
课程班级博客链接 班级博客
这个作业要求链接 作业要求
团队名称 卡其脱离太
团队课程的学习目标 1.学习团队软件项目流程(TSP)、团队成员协作要求
2.掌握敏捷流程原则及相关概念
这个作业在哪些方面帮助团队实现学习目标 这次作业进一步提升了我的合作意识,通过运行其他组的项目,我更加深刻的认识了实验三
团队博客链接 团队博客

实验四

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

实验三优秀案例推荐:周学铭&何飞

1.对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。

  • 被评论的同学:

    被评论的同学 201871010130-周学铭
    被评论的作业博客链接 201871010130-周学铭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
    被评论作业的仓库链接 仓库地址
  • 评论内容:

    目标 评论
    博文结构 层次明显,任务之间划分的很清楚,整体上清晰美观,可读性好,图文结合明显提升易读性。
    博文内容 博文的内容详细清楚,完成了老师布置的任务,并且完成了附加任务,对每一项实现的功能做了详细的展示
    博文结构与PSP中“任务内容”列的关系 博文结构与PSP相对应,PSP中许多项实际花费的时间和计划完成的时间相一致,对项目的整体把控很好。具体编码的时间比预计时间稍长,可以看出代码编写环节是花了很大的功夫,值得学习。

2.克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。

  1. 下载该组到本地进行测试

  1. 项目规范说明文档

    System-second
    项目代码规范说明
    (1)、包名使用小写英文字母
    (2)、接口类中的方法和属性不要加任何修饰符号(public也不要加),保持代码的简洁性
    (3)、获取单个对象的方法用get做前缀
    (4)、插入的方法用save(推荐)或insert做前缀
    (5)、删除的方法用remove(推荐)或delete做前缀
    (6)、如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
      左大括号前不换行
      左大括号后换行
      右大括号前换行
      右大括号后还有else等代码则不换行;表示终止右大括号后必须换行
    (7)、缩进采用4个空格,禁止使用tab字符
    (8)、一行代码不超过120个字符
    (9)、遇到其他同行可能不易看懂的内容时,在代码上一行使用“//”进行注释
    (10)、声明字符串常量:命名不不可以英文和拼音混合使用
    (11)、一行声明一个变量
    (12)、在对变量命名时,避免过多的描述
    (13)、避免可要可不要的修饰
    (14)、按照如下顺序来说明类中的成员:public、protected、private
    (15)、检查new的返回值
    (16)、释放指针时不用检查NULL

  2. 代码审查

    • 概要部分

      • 代码符合需求和规格说明么?

        符合基本需求与规格

      • 代码设计是否考虑周全?

        考虑全面

      • 代码可读性如何?

        采用了优秀的框架及算法,可读性好

      • 代码容易维护么?

        模块化设计,容易维护

      • 代码的每一行都执行并检查过了吗?

        已检查

    • 设计规范部分

      • 设计是否遵从已知的设计模式或项目中常用的模式?

        遵从项目中常用的模式

      • 有没有硬编码或字符串/数字等存在?

        不存在

      • 代码有没有依赖于某一平台,是否会影响将来的移植?

        不影响

      • 开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?

        可以

      • 有没有无用的代码可以清除?

        没有

    • 代码规范部分

      • 修改的部分符合代码标准和风格吗?

        符合规范

    • 具体代码部分

      • 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?

        检查了返回值并处理了异常

      • 参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数?

        参数传递无错误

      • 边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环?

        没有default分支,不会出现死循环

      • 有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足?

        没有使用断言

      • 数据结构中有没有用不到的元素?

    • 效能

      • 代码的效能(Performance)如何?最坏的情况是怎样的?

        程序运行正常

      • 代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string的操作是否能用StringBuilder来优化)?

        没有

      • 对于系统和网络的调用是否会超时?如何处理?

        没有对网络的调用

    • 可读性

      • 代码可读性如何?有没有足够的注释?

        对关键语句进行了注释,可读性高

    • 可测试性

      • 代码是否需要更新或创建新的单元测试?

        不需要

  3. 列举代码中存在的BUG

    • 选择10组数据时出现数据接口请求异常错误

3.阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务

  • A:体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片




  • B:总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见

    • 该组对任务3要求的功能基本实现,能够处理大量数据,界面设计简介明了,功能相对于项目要求较为完善。在GUI界面中,当选择不同功能时,出现的页面一样,显示不出差别,对于用户来说不是很友好,自己设计的GUI界面与使用的框架中已有的部分处理不是很好,使用过程没有提示,容易造成误解。
  • C:从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么

    • 职业:学生
    • 学历:本科、硕士
    • 年龄:18~30
    • 专业:计算机
    • 爱好:编程
    • 用户群特征:喜欢编程并对软件项目有浓厚的兴趣
    • 表面需求:深入学习使用算法
    • 潜在需求:学习软件项目开发

4.经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐

  • 经过测试,对该组项目:e)非常推荐

任务二:团队组建

任务要求:

(1)在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;

(2)申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客。

任务内容:

1.队名:卡其脱离太

2.团队成员组成,按以下列表形式给出,个人博客地址需加超链接,在备注中标记团队组长(PM)

成员学号后五位 成员*名 个人博客地址 备注
10130 *学铭 博客链接 PM
30110 *飞 博客链接
30131 *林江 博客链接
30107 * 雅伦 博客链接

3. 成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等

成员*名 擅长语言 擅长技术 编程兴趣 希望的承担的软工角色 宣言
*学铭 C/C++ 算法 爱好算法,喜欢创新 PM(算法工程师) 天总会亮的,没有太阳也会亮的。
*飞 JAVA SSM、thymeleaf等 不太喜欢编程,但我会尽力让自己爱上编程 测试 世间万物中,表里如一者,又有几何。
*林江 JAVA UI 想法很多,希望能设计出一款自己满意的APP。 UI设计 天地不仁,以万物为刍狗。
* 雅伦 Python 数据分析处理 编程不是我擅长的领域,但我会努力去克服它 文档 律己而强,勤勉则刚

4.阅读《现代软件工程—构建之法》第7章、第17章,理解MSF的9点基本原则和团队成员绩效

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强调产品团队与顾客的交流与合作,并不是产品团队拿到合同之后,就闭门造车,直到产品完成才告诉用户,给他们一个惊喜。

5. 组建团队企业微信群,给出群成员截图



6. 团队特色描述,言简意赅的描述团队特点或核心竞争力

我们小组普遍动手能力不错,各个成员有着各自擅长的领域,更有两位同学在平时拥有独立完成项目的能力,小组四人基本上擅长的编程语言基本涵盖了几门主流编程语言,希望我们小组的发展越来越好。

任务总结:

1.记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间

任务 耗时
任务一 3h
任务二 2h
任务三 1.5h

2.谈谈完成本次作业的感受和体会

  • 在本次任务二的学习中与同伴在理论上讨论了关于团队的概念和各种团队模式,体会到了一个团队要完成一个项目,需要各个成员做好分工协调工作,以及在项目启动时的开发计划尤为重要,这为我们之后的团队合作项目奠定了基础。
posted @ 2021-04-20 23:20  201871030131-谢林江  阅读(79)  评论(0编辑  收藏  举报