本书全面论述了软件复用的基本概念和过程以及管理方面所面临的挑战,提供了可操作的管理概念以使软件复用人员能够以低成本的方式使用软件复用技术,并有助于创建一个管理框架,使复用人员在逐步引入软件复用时可以进行管理。本书对于软件复用具有很高的指导价值,能够为软件开发人员和管理人员提供一个及时发现软件复用方面问题及解决方案的指南。本书前言译者序:自从1968年NATO软件工程会议以来,软件工程的发展已近三十年,其间取得了丰硕的研究成果,但离彻底解决“软件危机”还有相当大的距离。近几年来,面对日益复杂的软件系统,研究人员开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。从软件复用概念提出至今已近三十年,在技术研究上已取得了较大进展,有许多成功的复用研究和实践活动。随着技术发展,人们发现现有的组织管理模式已成为推行复用技术的障碍,目前达成的一个共识是:为了进行有效地进行软件复用,必须改革现有的管理方式和组织结构。如何使用成熟的软件复用技术,将软件复用真正有效地引入到软件组织中,从而提高组织的软件生产率、降低软件开发成本、提高软件质量及减少产品投放市场的时间,这一问题越来越成为软件研究开发人员关注的焦点。目前,关于软件复用方面的书籍很少,并且有关软件复用理论与实践相结合的书籍更少,而这样的书籍又恰恰是广大从事软件开发人员和软件项目管理人员在进行软件复用实践中所迫切需要的。本书在软件复用理论与实践上结合得很好,为了使中国的读者能够更好地从中受益,译者受机械工业出版社的委托,翻译了这本书。本书对软件复用具有很高的指导价值,它能帮助那些想得到帮助、务实的软件开发人员和管理者提供一个及时发现软件复用相关问题及解决方案的指南。少谈理论而更多地注重实践、内行专家的建议和指导,这些将为代价高昂的软件复用问题提供已证实的、易于实现的解决方案,而这些问题正不断困扰着当今的软件复用实践。本书将提供以下指导:帮助深入理解与开发组织的软件复用工作相关的基本概念、过程和管理挑战帮助创建一个管理框架以便软件复用倡导者在逐步引入软件复用时可以管理软件复用提供可操作的和管理概念以便允许软件复用倡导者在大多数节省成本的方式下使用正在出现的软件复用技术。对于每个软件开发人员和项目管理人员来说,本书是不可多得的软件复用在实践上的指导书籍。对于在高校和研究所从事软件工程研究的人员来说,本书也是一本很好的软件复用参考书。《软件复用实践》一书共分12章,第1章到第7章的翻译工作由孙艳春负责;第8章到第12章的翻译工作由马亮负责;另外孙艳春负责了全书的修改与校对工作。本书在翻译过程中,得到以下同志的大力帮助,他们是:黄毅斌、麻志毅、赵俊峰、张路、贾宏宇、赵海燕、周明辉、焦文品、严伟、解军。在此对这些同志表示衷心的感谢。感谢机械工业出版社华章公司的领导和有关编辑,他们为本书的顺利出版,付出了大量的辛勤劳动。由于译者自身的知识局限,时间也比较仓促,译文难免存在着疏漏和错误,诚恳地希望广大读者给予批评与指正。译者2003年6月于北京大学前言介绍软件复用:一种实践方法在过去六年中,我在几个大公司和政府部门领导了软件复用工作。作为一个变革代理人,我的工作是将新技术引入到准备进行技术创新的公司中。为了进行变革,我必须设想能直接论证这些技术将在广阔范围内产生积极效益的战略和实现策略,我必须基于新思想本身的优点,把它们推销给倡导者和批评家。为了实现变革,我必须设计出受固定进度和预算制约的实践方法。在过去的两年中,我停止撰写本书并且承担了管理国防部软件复用启动的工作。我面临的挑战与我在企业界所遇到的挑战相似。然而,规模更大,并且政治因素更浓重。为了能顺利开展工作,我必须成为一个变革代理人。在这样大的部门中部署变革策略是一项困难的工作。这需要技巧、民主以及最重要的协作工作。可能在政府中我获得的所有经验中最关键的是当推力起推动作用时,能让人信服的是一个强有力的企业案例。因此,我已经将本书的重点变为帮助本书的读者来建立这样一个案例。无疑,你已经阅读了关于面向对象方法、CASE(计算机辅助软件工程)和许多其它新技术的优点的言过其实的报导。我们好象一直在寻找银弹(silverbullet)。这些技术已经能被使用吗?它们稳定吗?能花很小的代价将它们引入到部门中吗?这些技术的不足有哪些?你怎样使用它们?其他人使用这些技术时获得了哪些经验?你可能想过这些问题及大量相关问题。希望当你在组织内启动复用项目时,本书能帮你解决这些问题及其它问题。即使你解决了所遇到的问题,在你的组织内所发生的任何大变革对企业来说都是危险的。尽管技术可能看起来好,但你的公司可能不准备使用它。技术可能不成熟,不能用于应用系统或需要剪裁后才能用于项目开发中。当你想用这些技术进行变革时,时间、才能和资金可能不够用。管理层可以决定其它的优先级,或者不愿意进行必要的投资。你所领导的项目成员当面临变革时可能感到恐惧或者不能确定要做什么。即使你获得了保证,但依照所需的进度,你可能不能生产出产品,因为它们功能太复杂了,或者因为当你需要主力成员时,主力成员却不够。如果你不能交付你所承诺的产品,你知道在下一个预算周期将不能获得未来资源以继续你的追求(和信誉)。许多事情都可能发生。你可能正在想在高速路上的生命的确是有趣和令人兴奋的。可能是这样。然而,记住它同样可以是危险的。在本书中使用安全提示以帮助避免灾难。当所有的云雾消散,使用技术的基本目标将是节省时间、工作量或资金。人们给出的其它原因都是些废话。达到这些目标的最简单的方法包括以下几点:提高成员的效率(以同样的投入获得更大的产出)降低工作量(通过复用需要更少的新产品,因此投入更少)因为系统级软件复用相对较新,已验证的用于将复用引入各组织的管理方法正刚刚出现。在一个地点实用的方法在另一个地点可能就不实用。换句话说,你必须灵活。更重要的是,你必须注重实效并且跟随潮流。基于我的经验,我为中等规模到大规模公司中软件复用的引入管理工作编写了本书以提供实践指导。我所选择的例子,目的是为了给你提供处理多种情况的建议。本书是基于问题和面向行动来编写的。我已经将本书的重点放在解决许多不一致的管理的、技术的、政治的和心理的挑战上,这些挑战经常造成软件复用的启动工作的成功或失败。我为本书设定的三个特定目标是:帮助您深入理解与开发组织的软件复用工作相关的基本概念、过程和管理挑战帮助创建一个管理框架以便倡导者在逐步引入软件复用时可以管理软件复用提供可操作的和管理概念以便允许倡导者在大多数节省成本的方式下使用正在出现的复用技术。幸运的是,我有机会在几个有远见的商业组织中和国防部的早期采纳项目中测试了这些复用策略。它们的经验和所获得的教训作为以下章节中我所提供的建议的基础。当它们是可选择的时候,我将讨论它们。当有问题时,我将描述这些问题并给出解决方案(如果存在的话)。与正在出现的技术相关的所有问题决不可能都解决。所以,你可以感受到一些现存的问题还有待进一步解决。如果这样令你讨厌我首先表示歉意。但是,告诉你被识别出的问题并且该问题正在被研究,可能是我目前能提供给你的最好的建议。尽管注重实效,在本书中所阐述的概念都基于已验证的管理理论。这些技术强调需要创新、合理的计划、意见一致、团队工作、坚持到底。这些建立于现代化的组织和激励措施理论之上。这些强调过程成熟度并且利用了许多在变革管理新领域中的理论和经验教训。本书适用于对将软件复用引入一个组织这个话题感兴趣的任何人。行政人员、管理人员、工程师、程序员、研究人员、教授和学生都可以从本书的研读中获益。我衷心地希望本书能激励你的工作。对我最好的致意就是你将本书提供的一些思想贯彻到你所在的组织中。我也对结果感兴趣。不要害怕写信告诉我好的、坏的以及可怕的结果。我有兴趣将你获得的经验教训放到本书的未来版本中。最终的想法是:寻找快乐。记注,将变革引入一个组织中是一件令人兴奋的事。当遇到困难时,也是一个有益的经历。DonaldJ.Reifer托兰斯,加利福尼亚州