欢迎来到常祺的博客

人生三重境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

201871030104-常祺 《实验四 团队作业1:软件研发团队组建》

实验四 团队作业1:软件研发团队组建
>

项目
内容
课程班级博客链接
班级博客
这个作业要求链接
作业要求
团队名称
泰山
团队的课程学习目标
1、通过团队项目学习软件工程
2、通过团队项目对软件开发有更深的认识
3、通过团队项目学习GitHub的一些团队操作
4、通过团队项目体会团队合作的优势
这个作业在哪些方面帮助我实现学习目标
1、下载并运行其他小组的源码找出他们的代码的优点和bug可以由其对自己的项目进行改进,实现自我提高。
2、进行团队合作,进行多方面的提高。
团队博客链接
团队博客

任务1:浏览实验三作业,任选一个小组的项目成果,完成以下任务

1.对博文作业进行阅读,并结合评分要求进行评论:
评论作业的博客链接
https://www.cnblogs.com/chenpiawu/p/14645555.html
被评论作业的Github项目仓库链接
https://github.com/chenpiawu/boki

我的评论如下:

2.克隆源码到本地机器,阅读并运行代码,找出代码的5个以上bug,并核查表复审项目代码并记录。

(1)代码核查表如下:

符合(2)要求的代码核查表

  1. 概要部分

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

      代码符合部分需求,部分功能未能实现;缺少代码规格说明。

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

      设计过程中实现了部分功能,考虑周全但是未能全部实现其需求。

    • 代码可读性如何?

      代码可读性良好,注释有点不足。

    • 代码容易维护么?

      代码容易维护,实现代码比较简单,维护较为便利。

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

      代码的每一行进行了检查并且顺利执行。

  2. 设计规范部分

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

      设计遵从软件项目中常用的PSP,设计过程严格按其执行。

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

      没有。

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

      不依赖于某一平台,不影响将来的移植。

    • 开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?

      部分代码可以用已有的Library/SDK/Framework中的功能实现,在本项目中存在类似的功能可以调用而不用全部重新实现。

  3. 代码规范部分

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

      大致上符合,在修改代码的过程中大致按照代码标准和风格修改。

  4. 具体代码部分

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

      在审查过程中,对错误代码进行了处理,对于调用的异常函数,也对其进行了调试。

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

      参数传递没有错误,但是缺少了字符错误的检查。

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

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

  5. 效能

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

      代码实现了少部分的功能,但是实现部分效能良好。

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

      在审查中,发现了循环里可优化的部分并将其进行了优化。

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

      在实验过程中未出现超时情况。

  6. 可读性

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

      代码可读性良好,注释有点不足。

  7. 可测试性

    • 代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。

      在今后的学习过程中,需要继续实现未实现的功能,补充代码。

(2)我运行的是陈啟程同学和王诗怡同学的小组项目的代码,找到的bug如下:

a.界面有问题,数据到要求的最大的数量极时有错误。

b.参数缺少异常处理,文件输入字符错误无法处理。

c.参数传递有点问题:具体表现在数据库中。

d.散点图数据处理到要求的最大的数量极时出现异常。

e.遗传算法数量级到要求的最大的数量极时出现异常

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

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

​ 软件功能实现良好,使用简单方便,GUI界面有点简陋。

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

  • 任务3要求的功能软件已经解决;

  • 软件在数据量/界面/功能上各有什么优缺点?

    界面友好,但是比较简陋,希望可以改善一下;数据的处理较为准确;软件产品功能基本实现,希望添加一些附加功能。

  • 对该软件产品功能有什么改进意见?

    该软件产品功能实现较为全面,GUI界面较为简洁,我觉得可以对界面进行提升!

(3)从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?

任务3所研发软件产品的典型用户群大多数为学生,因为任务3是对D{0-1}KP问题的解决,对于学生而言,需要对这些经典问题进行研究,对其算法进行了解,任务3的完成可以为这些用户提供极大的便利。

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

d:好,不错

(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。

本小组任务3的GitHub项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况

  1. Fork

    • 点击原作者仓库GitHub右上角的fork按钮,就会在你自己的GitHub中新建一个同名仓库
  2. Clone

    • 进入自己的页面,打开原作者的同名仓库

    • clone fork仓库到本地

    • 打开git bush here

  3. 本地库与原始库关联

    • 进入我们的项目文件夹: https://github.com/chenpiawu/boki

    • 添加与原始库的关联,命名为upstream,此地址是原项目开发者的项目主页上的clone的地址:这是专门用来与主开发者保持相同进度的方法。

    • 从原始库中抓取最新的更新。

  4. Push

任务2:团队组建

  1. 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
  2. 申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;
  3. 阅读《现代软件工程—构建之法》第5章内容

(1)队名:泰山

(2)成员组成:

成员学号末五位
成员姓名
个人博客地址
备注
10127
谢金鑫
个人博客 PM
10129
郑文潇
个人博客 文档
30134
余宝鹏
个人博客 开发
30104
常祺
个人博客 测试

(3)成员风采:

  • 成员介绍

    姓名 风格 擅长技术及编程兴趣 承担的软工角色
    谢金鑫 善于言谈、管理、汇报 擅长C,python PM
    郑文潇 技术担当,能力突出 擅长C,python 开发
    余宝鹏 善于编写文档,PPT制作 擅长C,python 文档
    常祺 能力突出,性格低调 擅长C,Java,Java ee 测试
  • MSF的9点基本原则和团队成员绩效

    MSF(Microsoft Solution Framework):微软解决方案框架,也就是微软推荐的软件开发方法。

    1. 9点基本原则

      1. 推动信息共享与沟通(Foster open communications)
      2. 为共同的远景而工作(Work toward a shared vision)
      3. 充分授权和信任(Empower team members)
      4. 各司其职,为项目共同负责(Establish clear accountability and shared responsibility)
      5. 交付增量的价值(Deliver incremental value)
      6. 保持敏捷,预期和适应变化(Stay agile,expect and adapt change)
      7. 投资质量(Invest in quality)
      8. 学习所有的经验(Learn from all experiences)
      9. 与顾客合作(Partner with internal and external customers)
    2. 团队成员绩效

      ​ 在MSF团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色无法实现其目标,都将危机整个项目。因此,每个角色都被认为是同等重要的,重要的决定都要共同做出。

(4)组建团队企业微信群,给出群成员截图

(5)团队特色描述,言简意赅的描述团队特点或核心竞争力

  • 我们团队最大的特色就是:只有男生!!!所以在整个团队项目过程中,都需要更加细心;
  • 团队内部成员互相都熟悉,气氛相处融洽,每个人都尽力而为;
  • 在每个人的特长基础上进行明确的分工,在分工明确的基础上互相帮助。

补充

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

PSP 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 13
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 15 13
Development 开发 110 130
Analysis 需求分析(包括学习新技术) 10 10
Design Spec 生成设计文档 10 10
Design Review 设计复审(和同事审核设计文档) 10 15
Coding Standard 代码规范(为目前的开发制定合适的规范) 10 10
Design 具体设计 10 15
Coding 具体编码 20 30
Code Review 代码复审 20 15
Test 测试(自我测试,修改代码,提交修改) 20 20
Reporting 报告 35 45
Test Report 测试报告 15 15
Size Measurement 计算工作量 8 10
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 12 20
posted @ 2021-04-20 23:14  常祺-13893874716  阅读(66)  评论(0编辑  收藏  举报