-
测试驱动开发
《测试驱动开发》(中文版)设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。你需要一个防倒转的装置,以保证每转一次可以休息一会儿。水桶越重,防倒转的棘齿相距越近。测试驱动开发中的测试程序就是防倒转装置上的棘齿。一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。现在我们的工作是让下一个测试程序工作,然后再下一个,就这样一直进行。分析表明,要编程解决的问题越难,每次测试所覆盖的范围就应该越小。 -
重构(影印版)
随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以step by step的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用于任何面向对象编程语言。 本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明,重构是防止软件没落的可行方式。 本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细目录,给出了重构的工作原理,并以step by step的形式给出了应用每一种重构的指南。这些示例都是用Java语言写成的,但其中的思想却可以运用到任何面对象的编程语言中。 第一作者Martin Fowler,除了是对象技术方面的专家外,还是UML和模式方面的专家。他撰写的Analysis Patterns、UML Distilled、Patterns of Enterprise Application Architecture和Planning Extreme Programming几本书也广受赞誉,在亚马逊上的评价也极高(最低星级为4星),从这些也足可见其在业内的显赫地位。相信这本书以影印版的形式在国内推出,巨匠巨著,原汁原味,无疑是给国内广大软件开发人员提供了一盏前进路上的明灯。 读者对象:软件开发人员,项目管理人员,高等院校计算机及相关专业师生,其他相关人员 -
探索需求
本书将与您一起寻找"什么是客户真正想要的"这一问题的答案。 本书着眼于系统设计之前的需求过程,它是整个开发过程(如何设计人们想要的产品和系统)中最有挑战性的那部分。通过对一些需求分析中的常见误区和问题的分析和讨论,从和客户沟通开始,深入研究一些可能的需求,澄清用户和开发者期望值,最终给出了能够大幅度提高项目成功几率的一些建议方法。 本书由该领域内公认的两位作者合著,搜集了他们在大大小小的公司里加起来超过60年的在工作中发现、提炼和检验之后的观点。在本书中描述的原则并不局限于软件开发,还涉及到所有需要为别人设计和制作产品的领域。这些技巧已经成功的应用于开发所有类型的产品和系统--包括计算机硬件和软件、家具、建筑和书籍等等。 本书认为,开发是把人们的期望转化成一种能够满足其期望的产品的过程。本书的讨论围绕着需求过程--在开发中人们试图发现其期望的产品--的那一部分。通过对五个关键词语"期望"、"产品"、"人们"、"试图"和"发现"的层层分析,给出了大量使用的技巧和观点。 产品开发项目可能失败的原因非常多,最糟糕的莫过于在需求过程带入的缺陷。目前已有了很多书籍来阐述避免那些缺陷的方法,而本书则是集中在需求过程的以下三个危险而又被忽视的人性视角: 1. 在所有参与者中开发一种对需求的可靠的理解。 2. 开发一种项目的团队工作期望。 3. 开发一些必要的技巧和工具以能够有效的像团队一样来定义需求。 由于这些主题或多或少有些被有关系统开发的著作所忽略,《探索需求》可以用作对你当前的任何需求过程的一个补充,而不管其是否正式。本书的很多章节都设计成独立的模块,每一个都介绍了一到几种用于提高需求技术的工具或方法。读者可以逐页阅读本书,也可以在任何时间只读那些你最需要的章节。 全书通俗易懂、层次分明,其中共有上百幅插图,便于读者深入理解,是需求分析人员的入门和提高必备指南。 -
成为技术领导者
《成为技术领导者》阐述了作为一名成功领导者所必须掌握的领导方法与技巧——创新、激励和组织。本书提出了一些方法,供读者分析自己在这三个方面的领导技巧,并提供了开发这些技巧所需的实践步骤。本书是一本个性化的掼,帮助人们培养成为成功领导者的素质。它告诉人们在技术的环境下,哪些领导技能最有效,以及为什么技术人员在向技术领导者转变的过程存在这样或那样的困难。本书探讨的范畴不仅仅局限于技术层面,而且还拓展到了如何与他人更好地协作。温伯格通过他幽默和坦诚的语言在书中阐述了不同类型的领导行为,分析了那些阻止有效领导或排斥他人领导的不利因素,并指出了能够把事情做得更好的行为因讲解基本原理的过程中所举的逸闻趣事、类比与比喻令人印象深刻,非常有助于读者领会其中精要。本书在美国项目管理学会的《项目管理知识体系指南》(PMBOK)中,被确定为重要的参考文献。本书适合所有管理者和被管理者,以及那些管理者和被管理者共同生活或相识的人。对于那些领导者、希望成为领导者的技术人员、以及不想成为领导者的技术人员,本书绝对值得拥有。 -
个体软件过程
《个体软件过程》(简称“PSPI”),是Watts S.Humphrey于1997年特为美国大学一年级学生编写的教科书。书中描述了很多资深的软件工程师解决软件工程问题的方法,特别是有关软件项目计划和软件质量控制方面的先进方法,并提供了很多练习来帮助读者掌握这些方法。 美国Embry-Riddle航空大学计算机科学系以本书初稿为教材,为该系一年级学生讲授了这门课程,经验证明,这对造就学生成为合格的软件专业人员很有帮助。每章之后还附有习题,以帮助读者复习与掌握该章的主要内容。由于本书是在两个学期的计算机科学或软件工程导论课程中使用,所以本书的内容分成两部分,在第一学期中讲授时间管理(前10章),在第二学期中讲授质量问题(后10章)。 本书实用性与可读性较强,可作为高等学校计算机软件工程课程的教材,也可作为工程技术人员自学个体软件过程的教材,是进行软件过程改善和能力成熟度模型SW-CMM评估的重要参考资料。本书同样适用于软件开发项目经理、程序员和一般编程爱好者在开发软件时参考。 -
Why Programs Fail