[软件工程基础]第 1 次个人作业

快速看完整部教材,列出你仍然不懂的5到10个问题

  1. 关于需求,书中提到“在需求实现之前,并没有用户明确表达具体的需求”,并且举了偷菜的例子,说明可以从”用户需要和朋友之间玩游戏,用户有证明自己的需求“出发来挖掘需求。但是这种人的需求一直都有,满足这种需求的服务也很多,但是为什么只有偷菜火了?
  2. 接着上面问,为什么偷菜很快就衰败了?人的这种需求并没有变啊。
  3. 如果通过各种方法调研,发现了某种需求。但是做出产品以后,发现并没有很多人用,这是为什么?比如微软早期也推出过平板电脑,但是现在却鲜有人知。
  4. 有时候可能一个需求就是由一个产品带来的,比如直播,在它火起来之前,大部分人会觉得看别人玩游戏也是一种需求吗?但是如果没有看到需求,或者预估这种需求是非常少量的,是做还是不做呢?
  5. 在创新一节中,书中提到开发团队要考虑产品的价值。要问“这一产品足以让本产品和目前市场上已有的产品区分开吗?” 那么微信是究竟提供了什么价值使得其与QQ区分开?在我看来,两者的主要功能没有什么差异,微信还有很多地方并没有QQ做得好。

请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?

Richard R. Carhart 于1953年8月于书中提出”软件“

Margaret Hamilton在阿波罗11号计划期间首次提出“软件工程”

大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?

Unix的发明人Ken Thompson在贝尔实验室工作时,他的同事发现他总能进入他们的Unix账户,拿到最高权限。因此有人分析了Unix代码然后找到了后门,修改代码后重新编译了一遍,但是Ken还是能拿到他们的账户权限。最后Ken自己说出原因,原来代码的后门藏在编译Unix代码的C编译器里面。

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

版本控制

Git

分布式版本管理,功能强大,但同时也非常复杂。

非文本文件支持不好

(网上吐槽git离线以后就不能联网查找用法了)

SVN

集中式版本管理。相比git可以控制权限。可以管理非文本数据。

分支功能不如git

Mercurial

分布式版本管理。比git轻量,学习门槛低,但因而没有git强力。

项目管理

Microsoft TFS

看起来比较适合小团队的开发,项目管理的功能比较完全,和VS无缝衔接

但是据说比较慢。

Trac

易用的项目管理软件

Bugzilla

一个开源的缺陷跟踪系统。看起来只能跟踪bug?

项目托管平台

GitHub

世界上最大的代码托管平台、最大的同性 程序员交友平台。

Bitbucket

一个代码托管平台。相比github支持免费的私有仓库。

估算

Stack Overflow上的问题数

Git 90,516

GitHub 25,608

SVN 25,010

TFS 16,121

Mercurial 7,590

Bitbucket 4,193

Trac 687

Bugzilla 533

这个虽然并不能完全代表用户数量,但是还是能体现用户的多少的。

不过具体的用户数很难通过这个估算。

posted on 2017-09-26 21:21  Damocles  阅读(178)  评论(1编辑  收藏  举报

导航