zoukankan      html  css  js  c++  java
  • 201871010106-丁宣元 实验四 团队作业1:软件研发团队组建之个人博客

    项目 内容
    课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST/
    这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/14660499.html
    团队名称 永远的Ace
    团队的课程学习目标 1.掌握如何更好地组建团队,合作发挥每个人的优势;
    2.通过沟通合作组建团队;
    3.进行代码审查,取长补短。
    这个作业在哪些方面帮助团队实现学习目标 1.熟练Github的基本操作;
    2.通过理论学习,组建团队进行沟通合作,最大化地发挥个人优势,更好地推动团队协作;
    3.建立企业微信群进行沟通,并开通团队博客。
    团队博客链接 链接

    一、实验目的与要求

    (1)实验三作业互评。

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

    二、实验内容和步骤

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

      1. 阅读博文,进行评论。

      评价博客链接 评论作业的Github项目仓库链接
      链接 仓库链接1 仓库链接2
      2. 克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
      • clone项目源码:在clone的过程中经常出现Github等待超时的问题。
        (注:仓库链接2是私有的,通过与同学沟通后成功运行。)


      • 运行代码
        • 平台功能
        • 代码核查表
    1. 概要部分 代码能符合需求和规格说明么?
    代码设计是否有周全的考虑?
    代码可读性如何?
    代码容易维护么?
    代码的每一行都执行并检查过了吗
    符合需求
    基本周全,但有一些细节暂未考虑到
    可读性好
    比较容易维护
    已每行都进行执行检查
    2.设计规范部分 设计是否遵从已知的设计模式或项目中常用的模式?
    有没有硬编码或字符串/数字等存在?
    代码有没有依赖于某一平台,是否会影响将来的移植?
    开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
    有没有无用的代码可以清除?
    遵循
    没有
    代不依赖某一单一平台
    有类似功能可以直接调用
    没有
    3.代码规范部分 修改的部分符合代码标准和风格么? 符合
    4.具体代码部分 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
    参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
    边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环?
    有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
    对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露?有没有可能优化?
    数据结构中是否有无用的元素?
    处理了错误
    参数传递无错误
    未发现死循环
    没有
    没有资源泄露
    没有
    5.效能 代码的效能(Performance)如何?最坏的情况是怎样的?
    代码中,特别是循环中是否有明显可优化的部分?
    对于系统和网络调用是否会超时?如何处理?
    效能良好,达到了具体任务的要求
    暂无
    不会超时
    6.可读性 代码可读性如何?
    有没有足够的注释?
    可读性好
    注释足够
    7.可测试性 代码是否需要更新或创建新的单元测试? 暂时不需要
    • 在阅读代码后,我觉得该小组代码非常规范。但是个人觉得有关软件的运行方法阐述较少,如果把软件如何运行的文档写的更详细一些会更好。
      bug:

      1.在遗传算法中没有保存日志文件;
      2.绘制散点图时,若数据区间过大,但坐标较小时,数据的位置可能会超出坐标轴的范围;
      3.测试的代码类型较单一;
      4.暂未完成遗传算法解决D{0-1}背包问题。

    3. 阅读《现代软件工程—构建之法》第12章内容:
    • 《现代软件工程—构建之法》第12章是用户体验。这是在我的学习中首次关注到软件的使用者的感受,通过学习,我的收获非常大。总结核心内容如下:

      (1)应该考虑的问题:目标用户是谁?第一次体验时提高用户的满意度。
      (2)站在用户的角度考虑:“同理心”;
      (3)用户体验设计:分阶段设计和讨论;
      (4)评价标准:尽快提供可感触的反馈;系统界面符合现实惯例;用户有控制权;一致性和标准化;适合各种类型的用户;帮助用户识别诊断并修复作用;有必要的提示或帮助文档

    • 任务
      A. 体验任务3实现软件功能,使用软件的照片;
      编辑器使用Idea。

      • 第一组排序
      • 散点图

      • 测试代码
      • 遗传算法

      B. 总结任务3要求的功能软件,软件在数据量/界面/功能上的优缺点并对该软件产品功能提出改进意见。

      功能 界面 意见
      基本实现,但遗传算法只实现了0-1背包问题 页面也比较美观,操作简单方便 散点图可以绘制的更美观一些

      该组任务3要求的功能基本实现,但遗传算法只实现了0-1背包问题。除此之外,软件功能较全面,页面也比较美观,操作简单方便,可以绘制散点图、排序。通过运行代码后发现,绘制散点图时,有时候数据会过于集中,我觉得散点图可以绘制的更美观一些。

      C. 概括任务3所研发软件产品的典型用户群特征。

    职业 学历 年龄 专业 收入 表面需求 潜在需求
    编程能力的学生或编程业余爱好者 本科或研究生 20+ 多为计算机 5000+ 了解D{0-1}背包问题,测试代码,动态规划算法,回溯算法,遗传算法 拓宽思维,学习写更好性能的代码
    4. 评价作业的结论:

    (d)非常推荐。该小组无论是在完成度还是在代码规范上都具有很好的学习价值,故推荐。

    5. 结合1—3的评论体会,迭代改进本小组实验三任务3。
    • 本小组任务3的Github项目仓库链接、项目迭代改进要点说明。

      • 本小组在借鉴其他团队的优秀作业后,对项目进行修改功能如下:
        (1)美化页面,可以自适应; (2)显示已开发的项目。


      • 小组Github项目仓库链接:链接
    • 任务2:团队组建

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

      (1)软件团队模式:主治医师模式,明星模式,社区模式,业余剧团模式,特工模式,秘密模式,交响乐模式,爵士乐,功能团队,官僚模式。
      (2)开发模式:改了再改,瀑布,RUP,老板驱动,渐进交付。
      (3)RUP:初始阶段,细化阶段,构造阶段,交付阶段。

      • 完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;
      任务 花费的时间(h)
      任务1 4
      任务2 1
      任务3 1

      总结:通过本次实验,我们成功组建了小组,并对优秀的作业进行了代码审查。使我感受最深的是核查其他项目组的代码。切身体验了“一千个读者就有一千个哈姆雷特”,并且理解他人的代码思路困难较多,但这也拓宽了我的思维,发现自己的不足。在后续的学习中,要不断改进。

    附录:研读任务2中的第5,7,17章内容

    第5章:团队和流程,内容详解

    (1)软件团队模式:主治医师模式,明星模式,社区模式,业余剧团模式,特工模式,秘密模式,交响乐模式,爵士乐,功能团队,官僚模式。
    (2)开发模式:改了再改,瀑布,RUP,老板驱动,渐进交付。

    开发模式 详情
    写了再改 一窝蜂,难以符合实际需求
    瀑布 单项不可逆,后修改
    RUP 将各个阶段整合在一个框架
    老板驱动 由行政领导主导,或老板主导
    渐进交付 不断演进循环

    (3)RUP:初始阶段,细化阶段,构造阶段,交付阶段。

    第7章:实战中的软件工程

    MSF:微软解决方案框架
    MSF的9条原则:

    MSF团队模型:

    MSF过程模型:

    第17章:人、绩效与职业道德


  • 相关阅读:
    python--turtle库
    OpenCL编程基本流程及完整实例
    接口、虚函数、纯虚函数、抽象类
    [已解决问题] Could not find class XXX referenced from method XXX.<YYY>
    [基础] C++与JAVA的内存管理
    [OSX] 取消开机启动
    [基础] 重载的时候什么时候用引用&
    [JAVA关键字] synchronized
    [Audio processing] 常见语音特征 —— LPC
    [Audio processing] Harmonic change detection function (HCDF)
  • 原文地址:https://www.cnblogs.com/budinge/p/14675147.html
Copyright © 2011-2022 走看看