201871030119-马桂婷 实验四 团队作业1:软件研发团队组建

项目 内容
课程班级博客链接 2018卓越工程师班
这个作业要求链接 实验四 团队作业1:软件研发团队组建
团队名称 零基础619
团队的课程学习目标 1、组建软件项目研发团队;
2、熟悉团队合作流程;
3、学会团队合作。
这个作业在哪些方面帮助团队实现学习目标 1、组建了软件项目研发团队;
2、熟悉了团队的合作流程。
团队博客链接 零基础619


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

    • 评论博客:

      点评博客:胡佳媚

    • 被评论作业的GitHub项目仓库链接:

      被点评仓库链接

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

      • 5个bug:

        1、代码开头有个IPython模块的使用,但是通过查阅资料知道该代码只能在 jupyter notebook 或者 ipython 下使用,不可以使用 python直接执行,以及在回溯法的代码中,出现了大小写使用出错的情况;

        2、在选择菜单中如果直接选择功能2绘制散点图,则会出现错误提示,通过分析应该是没有第一步导入数据的过程,所以第二步绘制散点图没有基数去绘制,如果是这样,那么第一步就应该是必要的一步,因为后面的每一步都应该是基于功能1的;

        3、在功能4中,自主选择的算法中没有包含遗传算法;

        4、选择了功能4中相应的算法后结果中没有解向量;

        5、在选择功能5退出程序后会出现遗传算法的最大值计算结果。

      • 代码审查表:

        复审原则 内容
        概要部分
        代码符合需求和规格说明么? 代码基本符合需求
        代码设计是否考虑周全? 代码考虑周全
        代码可读性如何? 可读性好
        代码容易维护么? 容易维护
        代码的每一行都执行并检查过了吗? 是的,都执行了
        设计规范部分
        设计是否遵从已知的设计模式或项目中常用的模式? 设计遵从了项目中常用的模式
        有没有硬编码或字符串/数字等存在? 基本没有
        代码有没有依赖于某一平台,是否会影响将来的移植? 没有
        开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?
        有没有无用的代码可以清除? 基本没有
        代码规范部分
        修改的部分符合代码标准和风格吗? 符合
        具体代码部分
        有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 没有
        参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度是以0开始计数还是以1开始计数? 没有
        边界条件是如何处理的? switch语句的default分支是如何处理的?循环有没有可能出现死循环? 没有可能出现死循环
        有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? 没有
        数据结构中有没有用不到的元素? 没有
        效能
        代码的效能(Performance)如何?最坏的情况是怎样的? 效能可以,最坏的情况运行出错
        代码中,特别是循环中是否有明显可优化的部分(string的操作是否能用StringBuilder来优化)? 没有
        对于系统和网络的调用是否会超时?如何处理? 没有出现超时现象
        可读性
        代码可读性如何?有没有足够的注释? 可读性好,注释较为合理
        可测试性
        代码是否需要更新或创建新的单元测试? 不需要更新
    • 阅读《现代软件工程—构建之法》第12章内容,完成分析任务:

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

        1.实现软件功能

        (1) 可正确读取数据集并处理数据;
        (2) 可对读出的数据集进行散点图的绘制;
        (3) 可以按照第三项的价值:重量比进行非递增排序;
        (4) 可自主选择用动态规划算法或回溯算法求解背包问题并将结果写进TXT文档。

        2.使用过程

        (1) 运行程序,软件运行结果显示,出现菜单栏;
        (2) 首先输入1进行要读取的数据集的选择,然后根据提示信息选择要读取的数据,此时可以看到读取到的相关信息已显示;
        (3) 读取完数据集后输入菜单中相应的数字便可以进行散点图的绘制或得出第三项价值:重量比的非递增排序结果;
        (4) 可自主选择动态规划算法或回溯算法进行背包问题的求解,并将结果写入到指定的TXT文件中。

        3.使用软件的图片

      ![](https://img2020.cnblogs.com/blog/2320222/202104/2320222-20210421021851133-331724441.png) **读取数据**


      绘制散点图


      价值:重量比非递增排序


      选择算法解决0-1背包问题

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

    1.实现的功能

    ​ (1) 可正确读入实验数据文件的有效D{0-1}KP数据;

    ​ (2) 能够绘制任意一组D{0-1}KP数据以重量为横轴、价值为纵轴的数据散点图;

    ​ (3) 能够对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序;

    ​ (4) 用户能够自主选择动态规划算法、回溯算法求解指定D{0-1} KP数据的最优解和求 解时间(以秒为单位);

    ​ (5) 任意一组D{0-1} KP数据的最优解、求解时间可保存为txt文件;

    ​ (6) 遗传算法求解D{0-1}KP。

    2.还未实现的功能

    ​ (1) 没有解向量;

    ​ (2) 没有将D{0-1}KP 实例数据集需存储在数据库;

    ​ (3) 没有将设计的遗传算法嵌入到平台。

    3.优缺点

    ​ (1) 优点:数据提取清晰便捷;功能已实现的部分较为完整。

    ​ (2) 缺点:部分功能没有实现。

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

    任务3所研发的软件产品的典型用户群应该是学生,学历应该在大专及以上,年龄不限,专业应该是在理工科范围内,爱好应该与计算机网络关联较大,他们的表面需求是通过各种不同的算法解决一个问题,让问题的解决过程简单化,潜在需求是通过软件来解决一些较为复杂的数据问题。

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

      结论:好,不错

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

      本小组任务3的Github项目仓库链接


总结:本次实验虽然没有代码的编写,但通过本次实验中小组互评以及代码运行分析的过程,我的收获也是不小的。首先对于上次实验我的完成度是非常不好的,虽然最后勉强提交了作业,但在今天学习了其他小组的作业后,我们对自己的代码的改进也有了一点简单的想法,所以希望在之后的学习中能够有所进步。

posted @ 2021-04-21 09:43  马桂婷  阅读(66)  评论(0编辑  收藏  举报