201871030103_陈荟茹 实验四 团队作业1:软件研发团队组建个人博客

项目 内容
课程班级博客链接 班级博客
这个作业要求链接 作业要求
团队名称 天线宝宝突击队
团队的课程学习目标 1.申请开通团队博客
2.完成实验任务
3.根据每个成员的擅长领域不同,合作完成项目
这个作业在哪些方面帮助团队实现学习目标 1.组建团队企业微信群,并且开通博客园的团队博客
2. 小组里团队进行分工,合作完成项目开发
团队博客链接 团队博客

1、实验目的与要求

(1)实验三作业互评。

(2)组建软件项目研发团队。

2、实验内容与步骤

任务1

2-1.博客评论

    结对方博客链接:对方博客链接

图1

2-2.代码核查表

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

   1.Fork

      (1)点击原作者仓库github右上角的fork按钮,就会在你自己的github中新建一个同名仓库,如图2:

图2

   2.Clone

      (1)进入自己的页面,打开原作者的同名仓库,如图3:

图3

      (2)clone fork仓库到本地,如图4:

图4

      (3)打开git bush here,输入:git clone http clone 的地址,如图5:

图5

   3.本地库与原始库关联

      (1)进入我们的项目文件夹: cd d01fypwf,如图6:

图6

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

图7

      (3)从原始库中抓取最新的更新,如图8:

图8

   4.Push过程

      (1)把Test文件夹下面的文件都添加进来,查看,如图9:

图9

      (2)git commit -a -m"提交信息",如图10:

图10

      (3)https://github.com/chenhuiru-ch/d01fypwf ,如图11:

图11

   5.Pull request

      (1)在项目主页上,如图12:

图12

      (2) 代码目录左上方有如图所示的图表,点击拉取要求的图标,然后就可以比较你的版本和源中代码的差别,然后就可以选择发送一个Pull request给主开发者,添加修改的原因描述。然后就等待主开发者去merge了,如图13:

图13

  2.阅读并运行代码,找出项目代码的5个以上bug步骤如下:

   1.Bug1:
      没有实现将txt文件放进项目中,只能先将txt文件下载到本地并更改文件读取路径才能使用 , 如图14:

图14

   2.Bug2:

      HTML页面写了结果展示部分,但并未将结果显示在这里,如图15:

图15

   3.Bug3:
      未将散点图和遗传算法在GUI人机交互页面实现,如图16:

图16

   4.Bug4:
      代码中无回溯算法代码,希望可以添加进去,如图17:

图17

   5.Bug5:

      在博客介绍中写到做了代码检测功能,但是实际只检测了“请输入您检测的第几组数据”不为空,其余为检测,当其他部分为空时,就不会出现结果,如图18-1和18-2:

图18-1

图18-2

  3.代码核查表具体内容如下:

   -概要部分

      (1)代码能符合需求和规格说明么?

            答:基本符合,就是有些代码可能是因为平台的问题,有些语句显示时有一点问题。

      (2)代码设计是否有周全的考虑?

            答:在switch语句使用时没有运用Default。

      (3)代码可读性如何?

            答:可读性很好。对类,方法还有变量都做了相关注释。

      (4)代码容易维护么?

            答:比较容易 。

      (5)代码的每一行都执行并检查过了吗?

            答:是的,检查过。

   -设计规范部分

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

            答:是。

      (2)有没有硬编码或字符串/数字等存在?

            答:有一部分。

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

            答:没有依赖

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

            答:可以实现,不存在

      (5)有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。)

            答:没有。

   -代码规范部分

      (1)修改的部分符合代码标准和风格么(详细条文略)?

            答:符合代码标准和风格。

   -具体代码部分

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

            答:有错误处理,并且处理了异常。

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

            答:无错误,字符串的长度是字节的长度,以0开始计数。

      (3)边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环?

            答:针对需要的操作进行Switch,在目前代码中没有发现Default。经测试代码不会出现死循环。

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

            答:没有。

      (5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有可能优化?

            答:资源都是在类中申请,在类中释放,对资源都有一定的控制,不会导致资源泄露。

      (6)数据结构中是否有无用的元素?

            答:没有。

   -效能

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

            答:经检查,代码正确,并且功能都已实现,暂无错误。

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

            答:循环中暂无,但在柱状图的设置部分需要优化。

      (3)对于系统和网络调用是否会超时?如何处理?

            答:不会超时。

   -可读性

      (1)代码可读性如何?有没有足够的注释?

            答:代码可读性较好,对类,方法和变量都进行了注释。

   -可测试性

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

            答:希望用较多的数据对代码进行测试。

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

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

   1.关于软件的操作过程:

      (1)对方小组所使用的软件为MyEclipse,在自己的笔记本中下载该软件,根据2-2步骤中将对方的项目clone到本地后,打开MyEclipse,如图19:

图19

      (2)选择项目,点击右键,选择运行,将运行的连接复制到浏览器中,查看结果,如图20:

图20

   2.对方项目显示结果:

      (1)前端页面显示结果,如图21:

图21

      (2)散点图页面显示结果,如图22:

图22

      (3)遗传算法页面显示结果,如图23:

图23

      (4)求解最优解页面显示结果,如图24:

图24

      (5)将数据库中的数据导入页面显示结果,如图25:

图25

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

   1.关于功能软件的解决:

      (1)对方小组所使用的软件为MyEclipse,基本实现了要求的功能,但是在人机交互界面仅实现了求优先算法的问题,散点图部分没有用到人机交互界面。
      (2)对方小组没有实现将txt文件放进项目中,只能先将txt文件下载到本地并更改文件读取路径才能使用。
      (3)对方小组没有回溯算法代码,希望可以添加进去。

   2.软件在数据量/界面/功能上各有什么优缺点:

      (1)界面:
               优点:界面简单大方,易于操作。
               缺点:散点图部分没有与web前端相结合。且可以将前端做功能更加丰富一些。

      (2)功能:
               优点:要求的功能基本实现。
               缺点:没有实现回溯算法。

      (3)数据量:
               计算机科学与工程学院的学生。

   3.对该软件产品功能的改进意见:

      (1)可以让前端的功能更加完善,提高用户的可读性。
      (2)没有实现的回溯算法,希望可以添加到项目中。

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

   1.表面需求:

    1.核心用户群就是西北师范大学在校大学生和老师,年龄以二十岁左右的年轻人,专业分布大多是以计算机专业为主。
    2.主要是为了学生在开始学习数据处理的时候,只要简单将需要处理的数据进行导入,就可以通过前端页面中的散点图来观察数据的分布。
    3.可以实现对数据(价值,重量比)的排序。
    4.用户可以通过遗传算法,动态规划算法,回溯算法对可以求出最优解。

    学历:本科及以上
    年龄:20岁左右
    专业:大数据,计算机,数学统计等
    爱好:计算机,编程,软件开发

   2.潜在需求:

     其它数据处理可以用到该项目。

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

   结论:e

      对方小组的项目完成的很不错,基本的功能都已经实现了,但是一小部分功能还需要进行完善,比如说回溯算法需要完善,项目的散点图可以与前端页面相结合等。总体来说,对方小组的很多地方值得我们小组去学习,比如文件的导入使用了与我们小组不同的方式等等,这些地方我们可以共同探讨,一起进步。

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

   已迭代项目路径

   1.迭代后的前端页面

      (1)排序页面,如图26:

图26

      (2)散点图页面,如图27:

图27

      (3)迭代后的遗传算法页面,如图28:

图28

任务2

       已完成团队任务2。

          团队任务博客连接


任务3

3-1.关于任务1

       已完成任务1,如上2-1——2-5。

3-2.关于任务2

       已完成团队任务2。

          团队任务博客连接

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

任务名称 计划用时(min) 实际用时(min)
任务1 360 300
任务2 100 120
任务3 80 60

3、本次作业的感受和体会

       在本次作业中,通过测试其他小组的项目,让我收获很多,了解了自身的不足。在两人小组编程时,有时会出现对整体架构把握不清的情况,这时如果能跟队友共同讨论分析,会大大加快理解以及设计的速度。让我学习到了更多的经验,希望在日后团队开发项目的过程中,可以收获更多的知识与友谊。

posted @ 2021-04-20 20:56  201871030103-陈荟茹  阅读(102)  评论(0编辑  收藏  举报