第一章

       介绍了软件的概念,并且通过了很多例子来阐述软件开发的不同阶段。介绍了软件工程的概念,还有阐述了它的五个性质:复杂性,不可见性,易变性,服从性,非连续性。还有软件工程和计算机科学的关系,虽然它们有相似的地方,但是,它们的侧重点不一样,计算机科学发现的真理是长期的,而软件工程是短期的。计算机科学强调的是原创性,而软件工程是侧重最好的,成熟的试验方法。从这一章节我们可以发现,软件工程的目标是为人类创造出“足够好”的软件。

问题:如果在一个用户选择的界面中有一个用户几乎不去选择的功能,这个功能对创造者来说,或许觉得有必要,但是,在用户的角度,这个功能基本不被考虑,那么这个功能还需要被创造吗?

第二章

       单元测试是一个可以解决自己负责的模块功能定义明确,模块内部的改变不会影响其他的模块,而且模块的质量能够得到稳定,量化的保证!两种效能分析的方法:抽样和代码注入。做法是:先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。PSP的目的是记录工程师如何实现需求的效率。

问题:在完成一个项目过程中,应该如何去分析,分解一个项目的需求?

第三章

       对软件工程师简单的工作质量衡量是:多块搬完?搬得过程中损坏了多少块砖?

       积累软件开发相关的知识,提升技术技能;积累问题的领域知识和经验;对通用的软件设计思想和软件工程思想的理解;提升职业技能;实际成果,这五项是对初级软件工程师的成长。

      问题:做一个合格的软件工程师需要哪些能力?