软件工程网络15我的阅读做业2(201521123084 林正晟)


本周做业

通读《构建之法》后所提的五个问题:

首先说一点,因为个人书是不知道从哪里搞来的,因此本来在书本最后的“给任课老师和助教的建议”被提早到了书本的前面几页 颇有多是盗版书。。。 因此在本篇做业当中,页码会有误差,一切以标题为准。前端

Q1: 1.2 软件工程是什么(第一章“概论”)P22

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护的上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工程设计和用户界面设计。程序员

以上是书中原文对软件工程的解释。
讲实话,若是没学这本书,我不会想到软件工程有包含这么多知识点。我最早开始,认为这门课可能就是教一教咱们如何去开发一个软件,而后就是无穷无尽的打代码。但上完两堂课后,我发现我错了,这门课并非要让你真正的去无尽的编程,而是想让看这本书的人去学会软件开发流程的思想。"软件 = 程序 + 软件工程",这本书,从基本概念到职业规划,从瀑布模型到敏捷开发,从软件测试到质量保证,从代码规范到用户体验,只要是软件开发会涉及的方面,这本书都涉及到了。可是我一直都有一个疑问,那就是软件工程为何须要掌握这么多思想?这对之后的实际软件开发会带来多少的好处?编程

Q2: 2.1.2 好的单元测试的标准(第二章“我的技术和流程”)P41

单元测试应该覆盖全部代码路径
单元测试应覆盖所测单元的全部代码路径,包括错误处理路径。为了保证代码覆盖率,单元测试必须测试公开的和私有的函数和方法。…………100%的代码覆盖率并不等同于100%的正确性!设计模式

对于我这种代码白痴,我想提的第一个问题:什么是代码覆盖率?(。。。)
第二个问题:100%的代码覆盖率并不等同100%的正确性,那么要怎么样才能保证100%的正确性?函数

Q3: 4.1 代码规范 (第四章“两人合做”)P74

“代码规范”能够分为两个部分:
1.代码风格规范,主要是文字上的规定,看似表面文章,实际上很是重要。
2.代码设计规范,牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。单元测试

我能够明白代码规范在软件开发当中是十分重要的,但我想问:学习

  • 代码的规范性,国内国际每一个公司都同样吗?
  • 有的规则太多,如何作到所有检查出来?

Q4: 4.5.2 为何要结对编程?(第四章“两人合做”)P89

每人在各自独立设计、实现软件的过程当中难免要犯这样那样的错误。在结对编程中,由于有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少不少,程序的厨师质量就会高不少,这样会省下不少之后修改、测试的时间。具体地说,结对编程有以下的好处:
1.在开发层次,结对编程能提供更好的设计质量和代码质量,两人合做解决问题的能力更强。
2.对开发人员自身来讲,结对工程能带来更多的信心,高质量的产出能带来更高的知足感。
3.在企业管理层次上,结对编程能更有效地交流,相互学习和传递经验,分享知识,能更好的应对人员流动。总之,若是运用得当,结对编程能够取得更高的投入产出比(Return of Investment)测试

其实,书中的原文已经将结对编程的好处说得十分清楚了,我也明白做者的意思。但我以为,做者的想法一切都是理想化的。若是将结对编程放在咱们现实的学习中,结对编程真的会对咱们形成很大的益处吗?职业规划

  • 若是两个编程经验都很少的同窗结了对子,是否是就等于这一对垮了呢?
  • 若是是“一神带一坑”,这个编程能力较高的同窗,会不会以为这种方式拖累了他的软件开发过程?
  • 若是二者出现分歧,而且谁都只认同本身的见解时,结对编程是否是就没什么优势可言了?

Q5: 8.2 软件产品的利益相关者(第八章“需求分析”)P180

软件开发不可能一次性知足全部利益相关者的要求,可是咱们必定要让相关角色在这个阶段有机会提出他们的需求和意见。同时,要弄清楚“他们想要从软件中获得什么”。设计

咱们作软件开发,最终的目的,就是将软件交付给用户。而用户的体验好坏,直接决定了咱们软件的成功或者失败。所以,用户需求确实是咱们须要了解的大头。

  • 因此咱们应该如何去获取用户对软件的体验?
  • 咱们应该如何改进和维护软件的功能来贴近用户的需求?
  • 用户到底是对前端界面的感觉更强,仍是对软件的功能?

附加题

豆瓣连接:https://book.douban.com/annotation/54358212/

相关文章
相关标签/搜索