zoukankan      html  css  js  c++  java
  • 提问回顾与个人总结

    Q A
    这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
    这个作业要求在哪里 提问回顾与个人总结
    我在这个课程的目标是 学习团队之间的合作,如何有条理的、高效的进行软件的开发
    这个作业中在哪个具体方面帮我实现目标 加强我对软件工程的认识

    一、第一次作业链接

    第一次博客作业

    二、问题解答

    • 问题一

      2.4.1下面练习可以用来锻炼学生的编程基本功

      1.全部用命令行工具和Notepad编辑器,不用Viusal Studio等集成编辑环境,每人手工创建并编译一个C的命令行程序:“Hello World”

      Q1:用一些集成编辑环境真的会基本功造成影响吗?

      答:在这次软工团队项目中,我负责的后端,语言是python,经过这次实践,我认为使用一些集成编辑环境是不会对基本功造成影响的。因为集成的编辑环境只是一个更方便人们使用的一个工具,具体的算法思路,功能的实现还是要自己去摸索。

    • 问题二

      4.5.4 如何结对编程

      3.驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。

      Q2:驾驶员和领航员要轮换吗?为什么不能连续工作一小时?

      答:在这次的结对编程中,我们采用的是轮换的形式,的确这样会更好一点,因为每个人都能体会到另一个的难处,体会到两个职业的不同方面。而连续工作我们还是认为需要连续工作几个小时,因为当我们结对编程时,已经沉浸在编程中了,进入了状态,连续工作更有效率。

    • 问题三

      单元测试应该覆盖所有代码路径。

      做过实际项目的工程师都知道,程序里的很多语句是用来处理种种异常情况的,这些情况大多都不会发生。但是这些语句未被覆盖的话,这个模块的覆盖率就会下降,就达不到80%的目标,所以会花很多时间构造各种奇怪的测试数据。

      Q3:这是文中不同地方的观念,所以单元测试应该要覆盖所有代码路径吗?

      答:的确是不用覆盖所有代码路径,就在我们这次团队项目中,因为我们的数据是由爬虫在线爬取数据,而爬虫会有很多种意外情况,就比如爬取的网站抽风等待情况,而这种情况是很难遇到的,也就是说很难覆盖到这种代码路径。当然不需要覆盖所有代码路径不代表就不需要提高代码覆盖率,还是需要尽可能的提高代码覆盖率。

    • 问题四

      迷思之三:好的想法会赢

      Q4:文中说好的想法不一定赢,难道好的想法不会赢吗?

      答:好多想法还是会赢的,这次我们软工α阶段没有采用代码风格检查,这是我们所没考虑到的地方。而经过助教的提醒,我们在β阶段采用了pylint来进行代码风格检查,尽管在代码重构上我们花了很大时间,但这是一个好的想法,我们需要尽力的去完成。

    • 问题五

      迷思之五:要成为领域的专家,才能创新

      Q5:只有对应该领域有着深入了解才能创新。

      答:经过这次软工,我认为还是要对领域由深入了解才能创新,在整个软工项目中,其实有很大部分时间我们都用来学习新的技术了,而真正的实现代码阶段相对来说时间比较少,因为已经对技术有过足够了解,所以我认为还是应该要成为领域的专家才能创新。

    三、新问题

    • 问题一:

      对于团队项目中的转会制度是否合理,不可置否部分团队的确有划水的人,需要转会,但是也有很大团队已经磨合的很好了,每个人都有很深的感情,真的需要强制转会吗?

    • 问题二:

      对于小的项目也就是我们这种项目需要专门的测试人员吗?我现在所了解的很多组都是自己负责自己所写的代码的测试,这样更快,也更方便进行测试。

    四、软工过程中学到的知识点

    • 需求阶段

      这一阶段,学到的最重要的是我们要考虑的不仅仅是用户需要什么,更要考虑市场上是否已经有相应的产品满足了用户的需求,或者是从另一方面满足用户的需求,例如我们实现的产品有一个功能ddl查询,这就是市场没有的,也就是无法被替代。这样才能是产品的核心。

    • 设计阶段

      在设计阶段,因为我是负责后端,我认为最重要的是画好ER图,了解整体的数据库框架,因为如果前期不设计好数据库,到后面修改数据库会有很多麻烦。甚至是留一些空白字段,这样为以后新添的功能做好冗余。

    • 实现阶段

      在实现阶段,以前由于很少写过项目,对于一些异常处理我很少进行处理,没有考虑到调用模块有可能出现的异常,例如前端错误调用后端的API,需要给前端做错误提示,因为不能保证每次调用都能够完全正确。还有就是当实现功能后,也要对相应文档进行撰写,让前端和更好的了解后端。

    • 测试阶段

      在测试阶段,学到了一个好的单元测试是非常必要的,因为当你写好一个单元测试后,你可以不用去管他,当你添加新的功能后,以前的单元测试照样可以用来测试。这对于项目是非常重要的。

    • 发布阶段

      在发布阶段,一个好的发布公告和美工是很重要的,还有就是获取方式,在整个软工团队项目中有个做小程序的,因为小程序是很容易获取的,只要有微信只要点一下就可以了,而他们推广的结果也是很好的。而对于一些做APP的,网页的,由于需要人下载APP,是有点麻烦的,这也会影响一些人。

    • 维护阶段

      在维护阶段,我们应该有个好的反馈功能,在α阶段我们由于时间有限没有增加反馈页面,而β阶段我们添加了反馈界面,这样更容易了解到客户的信息,是否出现bug,更容易进行维护。

    五、结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得

    • 个人项目

      在个人项目中,其实难度并不是很大,更多是让我们了解到项目的开放流程,如何进行开发。同时,其中学到最重要的一点就是测试的重要性,其中有一个bug就是通过测试所测试出来的,就是未考虑精度对于结果的影响。

    • 结对编程

      在结对编程中,其实就是个人项目的拓展,更重要的学习如何和别人合作,达到1+1大于2的作用。每个人有不同的思路,合作才能共赢,也学习到了如何通过github共同管理多人项目,而不是把github当作一个简单的私人仓库。

    • 团队项目

      在团队项目中,我负责的是后端部分,学习路很多后端相关知识,数据库的设计,管理,如何有效的和前端交互。了解到了在一个团队中,写代码只是其中的一部分,更重要的还有文档的撰写,这样才能和其他部门更好的交互,也能让项目的可维护性增强。当然,在整个团队项目中,也收获了一群有趣的伙伴,每个人都尽心尽力的完成自己所负责的部分,也了解到了一个好的团队是需要每个人的努力的。

  • 相关阅读:
    python链接Hive
    input type=file输入框
    JQ剪辑图片插件,适用于移动端和PC端
    随笔
    Js获取当前日期时间及其它操作
    SQL中like语句的索引使用
    MS SQLSERVER 数据库表存储结构
    Jdom 解析 XML
    sqlserver 查询时,datetime的相关函数
    xml转换String输出
  • 原文地址:https://www.cnblogs.com/ilwf/p/13150125.html
Copyright © 2011-2022 走看看