摘要: 所谓银弹,是能杀死狼人的利器。当然现实中是没有狼人的。但现实中确实有银弹这个东西。而其意义也类似于能杀死狼人的最好办法。现实中的狼人可以是一个棘手的项目,或者一件不可能的事。而“银弹”就是指能解决这些事的方法,或者技术手段。 我们做软件的时候可能常常希望有一项技术或方法可使软件工程的生产力得到突破性的提高,然而事实上真的存在这样的东西么? 在《No Silver Bullet》这篇IBM大型电脑之父佛瑞德·布鲁克斯(Fred Brooks)在1987年所发表的一篇关于软体工程的经典论文中,强调了由于软件的复杂性本质,而使真正的银弹并不存在;所谓的没有银弹是指没有任何一项技术或方法可使 阅读全文
posted @ 2012-11-14 03:04 洪虹 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。这些年来,为了对付这个泥球,我们看到了多种指导方法,比如SOLID、GRASP和KISS,与其他诸多年代久远的、提倡高内聚、低耦合的方法一起出现。然而,实际情形没多大变化,“大泥球”看起来仍然是设计软件架构的最常见方法。我们现在惯用的敏捷性开发(Agile)的很多方面会直接导致泥球,包括:缺少前期设计、应对需求变化过晚、应对架构变化过晚、碎片式增长。 我们理想中的代码是清晰的,优雅的,云淡风轻,一望无垠,坐在电脑前深呼吸,都能闻到雨后泥土的芬芳。但是现实呢?一打开编译器就头痛。代码看得眼花,整天去修BUG,还要花半天时间先读以... 阅读全文
posted @ 2012-11-14 02:21 洪虹 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 当前,传统的软件工程方法越来越难以适应迅速变化的需求。近年来出现了一类新的轻量级的软件开发方法,它们被统称为敏捷型软件开发方法。在所有敏捷开发方法中,XP 是最引人注目的。 早期的时候,多数软件开发仍然是一个显得混乱的活动,即典型的“边写边改” (code and fix〕。设计过程充斥着短期的、即时的决定,而无完整的规划。这种模式对小系统开发其实很管用,但是当系统变得越大越复杂时,要想加入新的功能就越来越困难。同时错误故障越来越多,越来越难于排除。一个典型的标志就是当系统功能完成后有一个很长的测试阶段,有时甚至有遥遥无期之感,从而对项目的完成产生严重的影响。 软件行业中最初的一场... 阅读全文
posted @ 2012-11-14 01:46 洪虹 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 所谓瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。我们可以通过图片一步步地了解所谓的瀑布模型:一个小的程序只有简单的两步经典的Waterfall软件工程模型包括以下几部分:用户需求,软件需求,需求分析,设计,编码,测试,运维。为了保证每个步骤都能正确实施,要在每个步骤之间添加一定的交互如果在测试的时候发现了设计甚至需求的问题,就必须返回为了解决上面的“返工”问题,我们可以使用下面的几步来解决 阅读全文
posted @ 2012-11-14 01:20 洪虹 阅读(303) 评论(0) 推荐(0) 编辑