《软件工程思想》读后感

在老师的强烈推荐下, 我花了两天时间略看了林锐博士的《软件工程思想》这本书,尽管不是字字斟酌,但读完后还是收获颇丰。

这本书不过百页,总体看来,作者文笔不错,文风幽默又略带自谦,这是我很喜欢的。在读到作者形容程序员的生活和工作已融为一体,尽管单调却不乏味,还能独享孤独一处时,作者写到,“有诗为证:我编程三日,两耳不闻人声,只有硬盘在歌唱。”我不禁笑喷。哈哈~~却实是很好玩一人,心里顿时对这本书的下文来了兴趣。仔细想想,我国当今的程序员队伍虽然强大,但以木讷不善言谈者居多,而此书作者能够将此书写得此般精简透彻,幽默风趣,足以想象他的其它作品的魅力。以后还要继续拜读他的其它作品!

此书核心讲的是设计,贯穿全文的是思想。共八章,后面附录“大学十年”。

第一章“软件工程基本观念”;

第二章“程序员与程序经理”;

第三章“项目计划与质量管理”;

第四章“可行性分析与需求分析”;

第五章“系统设计”;

第六章“C++ 面向对象程序设计”;

第七章“测试与改错”; 读后感

第八章“维护与再生工程”。

此书先讲述了软件工程的基本观念,从宏观上探讨了软件工程。第一章讲述软件工程的目标和常用的软件工程模型,软件开发的基本策略:“复用”、“分而治之”、“优化——折衷”,有助于指导实践者选择方法和产生新方法。后面取材于早期软件人员比较幼稚的想法,例举了一些不正确的观念,可以让初学者引以为戒。接着让读者了解程序员的那些事,并谈到真正程序员具有的四个秉性:诚实,简单--实用主义,爱憎分明,工作单调但不乏味。真正的程序员会对自己喜欢的工作一直保持兴趣,生活和工作已融为一体,尽管单调却不乏味,还能独享孤独。优秀的程序员没有理由不让人喜欢,他们远比怪癖来得可爱。这着实是对程序员的一种勉励。此外,作者指出一个好的程序经理应该技压群雄,博学多才,更应有人格魅力,无论何时,用实力征服他人是硬道理,而程序员经理在管理上要“以身作则”、“公正待人”,唯有做到这些,别人才会信服你,团队才有凝聚力开发出优秀的软件。程序员在编程过程中,难免会遇到挫折,所以要向错误与失败学习,冷静地分析问题,找出问题的内因与外因,而不能目光短浅,力求深刻才会有效。程序员如何提高综合素责?倘若自己资质一般,但愿意亡羊补牢,力求学得更深更广,最终总会有意想不到的收获。最后疏导,程序员不该因为幼稚而显得单纯,应该是成熟了才变得单纯,才配得上这个充满活力的职业。不该因为幼稚而显得单纯,应该是成熟了才变得单纯,我想做人也是同一个道理。紧接着是项目计划与质量管理,项目计划的准则是要提供一份合理的进程表,让所有开发人员任务明确、步调一致,最终共同准时地完成项目。所以软件的项目计划重在“准确”“实在”,提高质量是软件工程的主要目标。但又因为软件开发是一种智力创作活动,很难象传统工业那样通过执行严格的操作规范来保证软件产品的质量,因此程序员必须了解软件质量的方方面面(称为质量因素),如正确性、性能、易用性、灵活性、可复用性、可理解性等等,才能在进行系统设计、程序设计时将高质量内建其中。软件的高质量并不是“管理”出来的,实质上是设计出来的,质量的管理只是一种预防和认证的手段而已。关于软件的可行性分析与需求分析,软件领域的可行性分析主要考虑四个要素:经济、技术、社会环境和人。对于系统设计,第五章讲述了系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。并将软件系统比喻为人体,体系结构就如同人的骨架;模块就如同人的器官,具有特定的功能;数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能;用户界面就如同人的外表。在进行系统设计时,要深情地关注软件的质量因素,如正确性与精确性、性能与效率、易用性、可理解性与简法性、可复用性与可扩充性等等。即使把系统设计做好了,也并不意味着就能产生好的软件系统。在程序设计、测试、维护等环节还要做大量的工作,无论哪个环节出了差错,都会把好事搞砸了。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。第六章,C++面向对象程序设计。这章讲叙了 C++面向对象程序设计的重要概念,如类与对象,继承与组合, 虚函数与多态,良好的编程风格等,内功深厚的武林高手出招往往平淡无奇,同理,编程高手也不会用奇门怪招写程序。良好的编程风格是产生高质量程序的前提。再到后面的new、delete与指针,const的使用。第七章主要是测试与改错。第八章讲的是维护与再生工程。

读后感

一个好的项目,设计至少可以占到百分之五十甚至更多。林锐的文章当中,自始至终在灌输两个思想,一个是高内聚低耦合,一个是设计应当以行为为中心而非数据为中心,业界的话就是应当以需求为中心。

书的最后,林锐博士更是讲叙了自己的“十年”大学生涯,生动而精彩,让人回味无穷。

所以,我想以作者的肺腑之言结束我的这篇读后感:

一、主动去创造环境,否则你无法设计人生。

二、生活和工作要充满激情,否则你无法体会到淋漓尽致的欢乐与痛苦。

时间: 2024-12-29 04:32:52

《软件工程思想》读后感的相关文章

大道至简第五章读后感

第五章 失败的过程也是过程 今天照样老师带领着我们阅读了大道至简第五章,阅读了<大道至简>的第五章,这章在前面的基础上又进了一步,有了技术和团队,加上有效的沟通,接下来就要接项目做工程. “虚有其表耳”,本章以<明皇实录>中的一句话来告诉我们一个深刻的道理:不要只求外表,只做形象工程,而是要透过表象,力求实质. 失败了不要紧,没有失败也就找不到自己的不足,也就不会发现自己的问题,更不用谈改进了.我们的前辈们就是在不断的失败中才总结出了“瀑布模型”“螺旋模型”等模型,方便了我们.但是

大道至简 第五章读后感

第五章 失败的过程也是过程 以得失而论,在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质:学习后者而不成,可得文字的架子. 如果懂得了所谓的模型原本都演化自那个简单的瀑布,那么文档是按XP写还是按RUP写,也就可以应时.应需,因地置宜,择善而从了. 越是简单的东西,往往越是接近于本质. 项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目.四川有句地方话叫“做过场”,也有说成“走过场”的.“过场”是舞台术语,意思是角色从舞台一端出场,再走到另一端

大道至简 第五章 失败的过程也是过程 读后感

今天该写一写大道至简第五章读后感了. 首先是“做过程不是做工程”,过程是为了实现某种目的而经历的一些事情,过程有很多种,虽然经历了某种过程,但不一定能实现某种功能.做完过程的每一个阶段,并不等于做工程.做过程不是做工程的精义,也不是最终目的. 然后是“做过场”,做过场就好像是一种形式一样,做了没必要做的事情,就是浪费时间. 我们为什么做工程,不要忘了最终目的.目的,是实现客户的要求,工程只是一种实现的途径.最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解决了问题,也一样实现了

大道至简第七章读后感

大道至简第七章读后感——现实中的软件工程 “王不如远交而近攻,得寸,则王之寸:得尺,亦王之尺也.”——<战国策.秦策> 1:大公司手中的算盘 文中列举了IBM,Borland和Microsoft的一些体系,来说明大公司眼中的世界. 大公司们在标准.理论.语言上的争来夺去,未必全然出于“软件实现”的考虑.对统一理论.统一工具.统一过程的企图,其最终目的是在整个软件工程体系中的全面胜出.算 盘 上 的 绝 大 多 数 人 , 只 是 用 于 计 算 胜 负 的 一 枚 算子.所谓编程语言,只不过是

大道至简第五章阅读感想

第五章失败的过程也是过程 今天王建民老师依旧带领着我们阅读了大道至简第五章,第五章是失败的过程也是过程.通过前面的技术.团队和沟通,这章主要讲了关于做工程的问题. 文章开篇以一句<明皇实录>中的“虚有其表耳”来说明一个很重要的问题就是:不能只求外表,而是要透过表象,力求实质. 第五章的整体思想是让我们注重过程,因为有很多人从来不注重过程,只注重结果.然而过程对于一个编程人员也是非常重要,如果一个好的编程员从来不在乎程序的过程,只是关心最后程序是否能够实现,那么这个编程员一定不是一个好的编程员.

大道至简 第六章 读后感

说点什么呢,今天看了看大道至简第六章<从编程到工程>. 文章以<列子·说符>的“得其精而忘其粗,在其内而忘其外:见其所见,不见其所不见,视其所视,而遗其所不视.”为题记.第一节讲了“语言只是工具”,作者讲述了他曾经对一些编程语言的看法.他曾经也热衷于讨论语言的优劣,但是他现在不这样了,他已经不再专注于语言, 正如他在第一章中写到的一样:成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的.确实,程序的好坏不在于语言,在于算法. 第二节又写了“程序”,程序=算法+结构,编程的精义于此

《大道至简》第一章读后感

经常听见有人抱怨编程太难,说自己不是学软件的料,那么他们真该好好看看<大道至简>这本书,相信他们看完这本书后会有很大收获. <大道至简>第一章引用了一个很简单的故事“愚公移山”,用这个故事很好的概述了我们在完成一个项目时所要进行的步骤.听上去“愚公移山”和编程简直是风马牛不相及,但是看过作者的叙述又有原来如此的感觉.其实编程并没有什么难懂的,就和我们日常生活一样,发现问题,分析问题,提出解决问题的方案,实施,和后续的验收.例如某天我们突然发现家里放不出水了,这就是发现问题,我们会观

大道至简第三章读后感

---恢复内容开始--- 大道至简第三章的是团队的问题.我们知道,随着人们生活水平的不断提高,用户对计算机软件的功能要求也日趋上升.这样一来,计算机软件就变得越来越复杂,规模变得越来越庞大,源代码的量也越来越多.在这种市场需求和自身发展的共同要求之下,一个团结而高效的开发团队的作用就不言而喻了.那么如何打造一支强有力.听指挥.能干活的开发团队呢?这一章作者就这个问题和我们展开了讨论. 作者着重的强调了项目经理在开发团队中的作用.首先声明一点,这并不是说团队的开发人员不重要,作者从始至终都认为编程

一切都是为了实现-大道至简第六章读后感

大道至简第六章的内容比较多,也比较深.或者说这一章作者是从一个更高的层次.更开阔的视野.更独特的角度来解读软件工程这四个字的具体含义的. 作者的这些肺腑之言都是作者在软件行业工作了多年之后总结出来的.开发技术对一个软件产品质量的好坏和最终的成功的影响并虽然不能说是一点也没有,但也不是很大.真正起到决定性因素的不是那些技术细节,而是一个高度过程化.通晓方法论.拥有大量工具的开发团队或者是开发公司.在这个团队里面,无论是对项目经理还是开发经理甚至是一个普通的开发人员的要求都是很高的.团队内的每个人必

《大道至简》第一章读后感和伪代码

阅读了<大道至简>第一章,感到作者对编程的精义分析非常具体形象,引用<愚公移山>的故事,说明了编程的本质.又将他们扮演的管理者,技术人员,程序分析师众多形象展现出来.又在困惑人们的"我能不能学会编程"这一问题做出回答,作者列举生活实例,给出了肯定的答案,将很多抽象的东西,简单化,通过最常见的生活中的实例介绍"大道". import java.大道至简.*; public class.yishan.*; { public static void