大道至简读书笔记之二

书中曾提到客户不会用C,难道就会用UML?作为开发人员,我们当然希望用户能学习或者精通c语言,这样客户就知道开发人员正在做什么,或者,这样的客户还能以c语言的方式告诉开发人员他们究竟想要什么。可是,要求用户学习c语言明显是自杀式的行为。这样的用户学会用c语言向开发人员描述需求时,可能他就已经被老板开除了,因为没有用户会笨到愿意用c语言来描述他们的需求。 c语言是程序员与计算机交流的语言,而不是他与客户交流的语言。程序员面对的是计算机,但计算机不是客户。所以,我们在做用户需求分析时,不要希望用户能了解计算机语言,而是根据他们所说,转化成c语言等计算机语言与计算机进行交流,最后做出成型的软件。

沟通问题不仅仅存在与客户交流之中。还存在于与项目的各个角色之间。项目的分析报告为设计人员所看不懂,设计人员的方案为开发人员所看不懂,而开发的结果以为测试人员所看不通。等等都是沟通问题。UML的确是解决沟通问题的最佳手段之一。然而如果项目一开始就不能用它,那么强求的结果必然是痛苦的。——要让 UML 在一个没有经过相关培训的团队及其各个角色之间用起来,几乎是不可能的事。即使用得起来,也存在经验问题。千万不要指望仅仅一个项目,就能让你的组员深刻的理解 UML 的思想。使用与不适用UML,其根本问题在于沟通方式的选择。只要是行之有效,能在各个项目角色间通用,就是好的沟通方式。

软件工程本质就是实现。工程只是一种实现的途径。最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解决了问题,也一样实现了目的。而现如今,我们讲工程了,讲过程了,讲方法了,却什么都再也做不出来了。不奇怪么?工程被当成了借口,掩盖了我们做事的真正目的:“实现”。因此,我们在一个项目中常常听到说“工程要这样做”,或者“工程要那样做”,而绝少听到“项目要求这样做”或者“客户的本意是那样的”。这样的结果是:我们做完了工程( 的每一个过程) ,却没有完成项目。为工程而工程的人,都迷失在项目中了。就象开发人员迷失在一个技术的细节上一样。专注于 RUP 或者 RAD之间的区别的人,可以把每一个过程的流程图都画出来,却也被这每一个流程给捆绑得死死的,再也没有挣扎一下的力气。

时间: 2024-10-27 02:22:23

大道至简读书笔记之二的相关文章

大道至简读书笔记之一

大道至简是一本“阐明软件工程的思想核心”的书,全书分为八章,从各个角度全面,细致而深刻地分析了工程中各个环节的由来,价值和内在关系.作者对于章节的安排是基于其对软件工程的总结给出的,而作者整体思想则体现在了其在书中提出的软件工程层状模型图里.从章节的安排可以看出,本书的前面六章,作者为我们详细解析了软件工程里各个工程元素的基本概念,从程序的实现到方法,再到过程.工程,最后到组织.第七章是承前启后的一章,因此以这一章作为样张也是比较用心的一种做法.而从第八章开始,作者为我们揭示了软件工程里各个工程

大道至简读书笔记(1)

今天读了一部分大道至简,开篇的引言让我很震惊,首先作者写这篇文章的目的很让我敬佩,不为盈利,只为让好的思想流传下去,能够让更多的人学习到有营养的东西,能够更好的为社会做贡献. 后又引用了<愚公移山>中的一段话,在这里和大家共勉: ”虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙,子子孙孙,无穷匮野,而山不加增,何苦而不平?'' 这段话表现了愚公移山之决心,精神之伟大无不令我辈折服,我辈当着重学习这种精神,将这种精神在编程的道路上发扬广大,所谓“世上无难事,只怕有心人.” 我们需拥有

大道至简---阅读笔记(二)

1.一个人算不得团队,那是个体.两个人则互相支撑,三个人便可以构成 团队,这样便有了团队的一些基本特性:主从.监督和责任. 一个人的开发行为可以成功,这取决于个人努力:.二人小组如果能相互支撑,那也是 可以获得成功的:到了三个人的时候呢,就得选个领导了,来管理项目.做管理起码需要能承担责任,这是最基本的素质. 2.制度对于一个公司来说非常重要: 没有制度,你没有办法和依据来惩戒员工,因此 是管理者的过失: 有了制度而没有惩戒他,是执行者和监督者的过 失: 一而再.再而三地犯错,又一而再.再而三地

大道至简 读书笔记01

粗略的看了书本开头两篇序,以及它的章节目录,大概了解了这本书主要讲什么.其实它并不是我想象中的给我这个阶段的人讲这么压缩你的代码.怎么写的更加精妙之类的,倒像是给已经走出校门,要真正承接项目挣钱的人看的. 书中有些例子看的时候的确发人深省,比如,让作者哆嗦的那句“那我们就开始开发吧”.回想一下自己拿到老师的题目何尝不是如此,就算还没想好到底怎么实现这个问题也一定要把include.iostream之类写好再发愁.这大概是一个现在看来无伤大雅的行为吧.我们习惯于小程序的开发,对于一些复杂的无法一念

大道至简 读书笔记02

这本书的作者一看就知道是一位实际参与软件工程经验丰富的人,他在几十年的工作之后写下了这本书,用非常通俗的语言告诉我们那些“雷区”(想来想去不知道用什么词形容,姑且暂用). 可我想,事实上,我们现阶段作为未出校门的学生,并没有实践的经验,对这个行业也没有很深的认识,很多东西其实在我看来是有些看不懂的,所以,一条一条来看,这本书的确有我们当下的影子,有我们值得吸取的东西.但是很可惜,由于我自身高度的不足,所以看不懂的部分多过看得懂的.也许这就是不是一个层次的人就无法理解那个层次的事的情况吧. 在软件

大道至简读书笔记之三

书中曾提到从最初的简单编程开始,到现在工程团队的组织开发,实现一个软件是最终的目的,所以,实现是软件开发的本质需求.正是由于实现的需要语言工具,方法,过程和实现对象.为了实现更大规模的软件系统而有了团队组织模式,而团队的协作决定了过程模型的产生.工具的产生依旧是处于软件实现的需要.在软件工程的体系中,实现作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成. 思考问题的方法可以是由点及面的,也可以是统揽全局的.换成业界最常用的词汇,就是“自上而下”还是“自下而上

大道至简阅读笔记之二

作者提到为那些争论语言孰优孰劣的开发人员感到可悲.然而,能够得出这样一个结论之前的人,恰恰之前正在经历这样一个阶段.作为JAVA开发人员来讲,使用何种开发语言的确已经显得不那么重要了,因为任何语言都是可以学习的,他们只是工具,或者说是知识,真正转化为生产力的, 还是需要用语言来实现系统.完成系统需求,让客户满意.不善思考的程序员或许需要很长时间绕出这个圈子,然而最近两三年的软件行业的变化(Ruby,Groovy,Scala,JRuby,Python…),不得不让每个业内的开发人员思考这样一个问题

大道之简读书笔记1

这本书作者上来就引用了愚公移山里的一段话:“虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙.子子孙孙,无穷匮也.而山不加增,何苦而不平?”把愚公移山看成一个团队对软件进行开发 .浓缩了项目组织者.团队经理.编程人员.技术分析师等众多角色的优秀素质.在愚公的论述中,我们看到了编程的根本:顺序.分支和循环.庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的.这,就是编程的精义. 里面说过:程序=算法+结构.编程作为一种行为,只需要知道其逻辑方法就可以了.所谓编程实际上是把一

大道至简读书笔记一

本书一开始就用了愚公和李冰两人的例子.我觉得他们代表了两种编程人员:一种只会埋头编代码,花大量的时间,最终或许把功能都实现了,但是花费了大量的时间和精力.另一种善于思考,不是一上来就是敲代码,而是先对问题进行分析,找出问题的切入点,将问题简单化,能快速的将代码的功能实现,效率很高. 我认为身为一个程序员,应该学习一下李冰,一味埋头苦干,很容易导致出错,编程成果也跟不上时代.无论做什么行业,善于思考,寻找正确的切入点是很必要的素质.