个人作业-Week1

1.快速看完整部教材,列出你不懂的 5 - 10 个问题。

  • 单元测试是测试代码中的每一个函数吗?我们课程上是否要做单元测试,以后实际工作中又是如何?
  • 结对开发程序效率真的不会比较差吗?毕竟两个人同时只能做一项工作。
  • 我们在这门课上需要学习什么技术?
  • 在实际开发中,每个人只扮演一种角色,那么我们只需要专精这方面的工作吗?还是需要掌握每种角色的技能。
  • 在软件工程中,我们曾经学习过的算法重要吗?或者说我们需要去复习那些很难的算法吗?

2.“软件”和“软件工程”这些词是如何出现的?

软件的理论最早是由Alan Turing在1935年的文章Computable numbers with an application to the Entscheidungsproblem 中提出的。

来自:https://en.wikipedia.org/wiki/Software#History

软件工程第一次出现是在1968年NATO赞助推动的一次会议上被用作标题。

来自:https://en.wikipedia.org/wiki/Software_engineering#History

3.上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? 

  1)Microsoft TFS

  优点:

  • 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用
  • 集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM
  • 能与 VS 无缝接合

  缺点:

  • 整个系统是用 asp 实现的,用浏览器访问相当慢
  • 从 IE 上访问、填写各种开发、测试记录,也是很慢,感觉不如 mantis BT 这样基于 php 的那么方便、迅速
  • 用 XP 系统无法访问,还得是64位的? 所以把电脑的整体性能拖下来了
  • 团队的邮件细节配置比较复杂,不关心的项目的变更集也会发邮件
  • 测试用例功能具体有无好的应用案例?如何配合自动化测试?

  来自:https://www.zhihu.com/question/21943395

  2)Git

  优点:

  • 版本库本地化,支持离线提交,相对独立不影响协同开发。
  • 更少的“仓库污染”。
  • 把内容按元数据方式存储,完整克隆版本库。
  • 支持快速切换分支方便合并,比较合并性能好。
  • 分布式版本库,无单点故障,内容完整性好。

  缺点:

  • 上层封装和底层实现的差异太大。
  • 分支合并的历史很容易搞乱。
  • 命令没有整体设计。
  • 各个版本之间的命令也有些许不兼容。

  来自:http://blog.csdn.net/dengsilinming/article/details/7999188

原文地址:https://www.cnblogs.com/qingchanghan/p/5878120.html