问题1 软件工程是什么?
打开课本目录第一页,映入眼帘的就是第一张概论里面的软件工程是什么。是的,我们这门课就叫软件工程,那到底软件工程是什么呢?
软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
- 学习这门课,首先就得知道软件工程是什么,上面是书上给出的定义。我自己的理解就好像是建一栋高楼,首先得知道你需要些什么,譬如这栋楼得多大,需要容纳多少人,然后就是设计图纸,你希望把这栋楼建成什么样,内部的构造等等,做完这些就可以开工了,按照先前的需求和设计去实现,然后测试质量是否过关,最后还需要一点维护。
问题2 代码规范问题
(第4章 4.1)
现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看代码”,每个人都能看“别人的代码”,并发表意见。
- 这个代码规范观点我很认同。我们之前都是一个人单独写代码,自己写的自己看的懂就行了。但现在外面都是分工明确的,一个项目都分成了若干个部分,需要几个人一起分工合作去做。这样就必须要有个标准,每个人都按照标准去做,不然同组的人相互之间都看不懂对方的代码,这样合作的效率反而会降低,甚至不如一个人单干。团队的力量总是会大于个人的,这个时候规范代码风格设计就显得无比重要,在别人能看懂你的代码的情况下,还可以指出你的不足之处,你也能通过看别人的代码学到别人的长处。
问题3 需求分析重要吗?
答案是非常重要的,从这本书用了整整一章来讲就可以看出需求分析的重要性。可能平时在编程时,我们主要的都是在敲代码,想着怎么尽量把那些代码有错的地方纠正,让它能够跑起来。但其实我们忽略了需求分析这一点。
(第8章 8.1)人们为了解决现实社会和生活中的个汇总问题,要求助于软件。人们的需求五花八门,那么软件团队如何才能准确而全面地找到这些需求呢?
我记得有个老师曾经对我们说过,我们编程其实是为了偷懒,让软件去实现我们想要的东西,是有目的性的,这目的就是我们的需求。只有明确需求之后,才能有条不紊的进行下去。
问题4 好的想法一定会赢?
这个问题源于第16章 16.1.3,这一小节举了两个例子,一个是原本有优点最后却不尽人意,一个是有想法却没付诸行动。
- 对利益相关人要讲清楚“你能从中得到什么”。
- 创新的想法和目前流行的做法相比,有什么相对优势,能让别人清楚地看到这个区别,并能够尝试。
- 创新和目前大众习惯、已有系统是否兼容。
- 避免过度描述复杂的技术。
事实证明,有好的想法也不一定会赢,但如果没有好的想法,那就没的谈了。
问题5 要成为领域的专家,才能创新?(16.1.5)
- 这个我倒不这么认为,一般在这个领域很擅长的人,都很容易被惯性思维束缚,这导致其创新难度大大增加。创新在于一个新字,要敢于人先,敢于尝试,挑战领域内惯性思维认为不可能的事。