在进行了一次结对编程、一次团队编程和一次个人编程项目后,读了《No Silver Bullet: Essence and Accidents of Software Engineering》,在此说说自己的感想体会。在团队编程中我们遇到了很多个人、结对编程时没有遇到的问题。

  Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest.

  对于找“银弹”这个问题,我比较赞同《No Silver Bullet: Essence and Accidents of Software Engineering》里的看法。软件项目的复杂度增真的不是线性增加的,在这次团队编程我所在的团队中,每个热都先是被分配了自己的一部分工作,看代码、改代码效率还算比价高,但当我们尝试将每个人的代码整合到一起时,发现程序的接口已经被改得面目全非了,这是《No Silver》里面所提到的配合性。这绝不是一个能简简单单忽略的问题,最后我们在接口上花费了很多功夫。      

  Changeability. The software entity is constantly subject to pressures for change. Of course, so are buildings, cars, computers. But manufactured things are infrequently changed after manufacture; they are superseded by later models, or essential changes are incorporated into later-serial-number copies of the same basic design. Call-backs of automobiles are really quite infrequent; field changes of computers somewhat less so. Both are much less frequent than modifications to fielded software.

  我们团队的任务是根据上一组从网页中爬取的数据,将其进行分析加工,提取关键字、作者、生成规范的txt文件等等。在此基础上,我们对代码进行了常识性的扩充—在开发中每个人或多或少都会有一些自己的想法,这就导致我们最终有一些小地方和原来的代码会有差异,这跟《No Silver Bullet: Essence and Accidents of Software Engineering》里面所提到的易变性相似。在软件的使用过程中,由于环境和人主观意识的改变,软件的各个小地方可能都会需要进行修改。对于这种某个地方所做的修改,可能会牵扯到其他各个地方的一致性问题,这就需要团队之间建立良好的沟通渠道,修改的地方需要确认其他牵连代码也一并进行了修改,从而保持一致性。

  最后《No Silver Bullet: Essence and Accidents of Software Engineering》还提到了如何提高软件行业核心—设计人员。的确,在软件开发时,会遇到许多小问题及需求,看似简单,但是在真正去实现时候会发现困难无比。这是由于现实世界与计算机世界的转换困难。这也正是我们设计者需要重点考虑的地方,只要概念模型能构建起来,如何去实现是比较容易去解决的问题。

个人阅读作业2—《No Silver Bullet: Essence and Accidents of Software Engineering》读后感的更多相关文章

  1. [2017BUAA软工]个人阅读作业+总结

    阅读作业 没有银弹 No Silver Bullet - Essence and Accidents of Software Engineering - Brooks 在这篇论文中,作者阐述了软件的四 ...

  2. 【SE】Week7 : Silver Bullet & Cathedral and Bazaar & Big Ball of Mud & Waterfall ...

    1. Silver Bullet No Silver Bullet: Essence and Accidents of Software Engineering —— 无银弹理论,出自于美国1999年 ...

  3. 个人阅读作业2:结合《No Silver Bullet》谈谈我在软件开发过程的遇到的困难与体会

    英文捉急,只能挑一段看得比较懂的,而且正好和我们现在编程任务联系比较紧密的内容来谈一谈体会. 在<No Silver Bullet>中,作者描述了造成软件本质性困难(essence)的四个 ...

  4. 个人阅读作业 --软件工程M1/M2总结

    软件工程M1/M2总结 写在前面的话: 这学期的软件工程伴着考期的展开逐渐落下帷幕,回顾这学期的软件工程,我感觉我的热情在一次又一次的失落中逐步消耗殆尽,每个人对于这门课的体验都会有所不同吧,可以确定 ...

  5. 个人阅读作业WEEK7 (软件工程的瀑布, 大泥球, 教堂,集市,和银弹)

    一 . 关于银弹 (Silver Bullet) 银弹,被引申为解决问题的有效办法.IBM大型机之父福瑞德·布鲁克斯在1986年的论文<没有银弹>中表达了他的观点:软件工程中不存在银弹—— ...

  6. [阅读]个人阅读作业week7

    People-oriented in Agile People-oriented in Agile One Leader Prepare Good ideas from users People-or ...

  7. 个人阅读作业Week17

      个人阅读作业Week17 reading buaa software   解决的问题 这是提出问题的博客链接:http://www.cnblogs.com/SivilTaram/p/4830893 ...

  8. 个人阅读作业 final

    前两次阅读作业链接: http://www.cnblogs.com/SteelPillar/p/4027877.html http://www.cnblogs.com/SteelPillar/p/40 ...

  9. 软件工程M1/M2总结及阅读作业总结

    一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽 ...

随机推荐

  1. Linux命令大全总结

    目录方面的命令:ls,dir,cd,clear,mkdir ls 显示指定目录的文件和目录 ls -a 列出目录下的所有文件,包括以 . 开头的隐藏文件 ls -l 显示指定目录的详细列表 ls -R ...

  2. python学习--Django虚拟环境搭建

    一 . 为什么选择搭建虚拟环境 搭建一个只对本次项目有用的虚拟环境,而不影响主环境 二 . 安装前准备 #    1. 安装 python #    2. 安装virtualenvwrapper #  ...

  3. linux系统日志自动切割工具----logrotate

    参考资料 :https://www.cnblogs.com/kevingrace/p/6307298.html 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务 ...

  4. Linux结构目录

    linux结构目录 Linux中有一句话叫做:一切皆文件. 下面来了解一下这些文件. 首先看一下Linux根目录下结构: bin:存放二进制可执行文件,一般常用命令都存放在这里. boot:存放系统启 ...

  5. 使用Maven分环境打包:dev sit uat prod

    使用Maven管理的项目,经常需要根据不同的环境打不同的包,因为环境不同,所需要的配置文件不同,比如database的连接信息,相关属性等等. 在Maven中,我们可以通过P参数和profiles元素 ...

  6. java用星星符号打印出一个直角三角形

    package debug; public class Demo10 { public static void main(String[] args) { //用星星符号打印出一个直角三角形 for( ...

  7. C#常见委托のdelegate定义,Func,Action,Predicate总结

    委托,顾名思义,就是让其他代理,本质就是为具有共性方法组定义一个方法模板:(交流可以加qq群:435226676) 委托常见的方式有一般委托显示定义,Func<T,TResult> (T, ...

  8. MessageQueue 相关概念

    /**  * Implements a thread-local storage, that is, a variable for which each thread  * has its own v ...

  9. MySQL的用户的创建以及远程登录配置

    最近工作中使用HIve工具,因此搭建了一个Hive的测试环境.通常我们都将Hive的元数据信息存储在外界的MySQL中,因此需要安装并配置MySQL数据库.接下来将讲解MySQL的安装以及配置过程. ...

  10. Spark算子讲解(二)

    1:glom def glom(): RDD[Array[T]] 将原RDD的元素收集到一个数组,创建一个数组类型的RDD 2:getNumPartitions final def getNumPar ...