第一次阅读做业

第一次阅读做业

=======================================================================================git

一、快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的我的博客上。

  (1)如何衡量一个bug是须要解决的问题,仍是能够容许的存在?应该怎么肯定这个标准?对于不一样的项目,怎样才能称为足够好?编程

是虫子(Bug),仍是肉芽?不一样的人有不一样的答案。软件行业也有一句著名的笑话:这不是缺陷,这是一个功能(It’s not a bug, it's a feature)!不少人认为有Bug就是质量不合格,没有Bug就是质量完美,其实这也未必。移山软件学院的小芳同窗穿了一条新的牛仔裤,她的同窗在大街上看到不少不一样品牌的汽车,这些汽车出厂时都经过了行业的质量标准。可是你问路人哪些车的“质量好”,不少人会告诉你有些车的质量大大好于另一些车,那为何还有人买那些质量“不够好”的汽车呢?对于某些顾客来讲,某一类的汽车知足了他们的需求,他们就会买。若是销售人员向不合适的目标用户推销本身公司的汽车,最后销量未必理想。服务器

  (2)怎样的单元测试可以最大地确保程序的正确性?单元测试可能覆盖全部会出现的状况吗?网络

e.其余与外部条件相关的问题(例如与设备、网络、执行环境相关的问题)。咱们在第1章提到飞机被炸开一个洞,你以为飞机的程序应该考虑“覆盖”这种状况吗?单元测试

  (3)如何避免在软件开发过程当中的思惟误区?怎样少走弯路?学习

分析麻痹:一种极端的状况是想弄清楚全部细节、全部依赖关系以后再动手,心理上过于悲观,不想修复问题,出了问题都赖在相关问题上。
......
不分主次,想解决全部依赖问题:另外一种极端是过于积极,想立刻动手修复全部主要和次要的依赖问题,而后就能够“完美地”达成最初设定的目标,而不是根据现有条件找到一个“足够好”的方案,
......
过早优化:......一个工程师在写程序的时候,常常容易在某一个局部问题上陷进去,花大量时间对其进行优化,五十这个模块对全局的重要性,甚至还不知道这个“全局”是怎么样的。
......测试

  (4)结对编程对于水平不一样的搭档该如何合理地分配工做?我属于基本功不是很好的类型,目前也在积极地学习,可是仍是和其余同窗有差距。我但愿能从结对编程中多写代码,多学习技巧和知识,而但愿搭档能够更多地指导指导我。虽说地位平等,但我更多的抱着学习的态度。优化

  (5)创新须要到达什么样的高度?怎样才能对于可创新的领域保持敏感?是否是没有固定的方法?命令行


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

  最先在工程背景下出版的术语“software”是由Richard R. Carhart在Rand Corporatio研究备忘录中于1953年8月出版的。Paul Niquette声称他最初在1953年10月创造了“software”这个词,尽管他找不到支持他的主张的任何文件。Margaret Heafield Hamilton(1936年8月17日出生)是美国计算机科学家,系统工程师和企业主。她创造了“软件工程”这个术语。设计


三、【附加题】:你们知道了软件和软件工程的起源,请问软件工程发展的过程当中有什么你以为有趣的冷知识和故事?

海蒂·拉玛(HedyLamarr),曾被称为“世界上最美丽的女人”。18岁的时候在电影《神魂颠倒》担当女主角。她又是一位女发明家,她与别人合做发明的“扩频通讯技术”,被普遍用于今天的手机、卫星通信和无线互联网,她于是被后世尊为“CDMA之母”。直到83岁高龄,当以CDMA为基础的通讯技术开始走入大众生活,美国电子前沿基金会才授予了海蒂·拉玛早应获得的荣誉。

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

  (图片来自维基百科

  • Git
    • 优势:
      • 可用性好,十分方便;
      • 用户多,项目多,利于交流学习;
      • 有本身的十分强的功能。
    • 缺点: 
      • 资料少;
      • 学习周期相对而言较长;
      • 代码保密性差。 
  • Mercuria
    • 优势:
      • 照顾命令行用户,大多数命令都有双字母的简称,效率更高;
      • 照顾SVN的迁移用户,命令上大多数都继承自SVN,使得用户更加习惯;
      • 基于Python,服务器配置相对于Git更加容易。
    • 缺点:
      • Mercurial的branch管理和Git相比不方便,branch出来就删不掉。
  • Bitbucket
    • 优势:
      • 拥有免费私有库,支持git
    • 缺点:
      • 不容易找到项目;
      • 社区活跃度不是那么大。
  • Trac
    • 优势:
      • 有良好的扩充性;
      • 权限体系的设计比较完备;
      • 灵活可定制。
    • 缺点:
      • 不支持多项目;
      • 需求和缺陷没有分离;
      • 中文化不完整。
  • Bugzilla
    • 优势: 
      • 定制功能很强;
      • 对语言的支持很强;
      • 免费,响应速度较快 。
    • 缺点:
      • UI设计差。
相关文章
相关标签/搜索