书籍详情
软件开发的科学与艺术
作者:陈宏刚 等著
出版社:电子工业出版社
出版时间:2002-03-01
ISBN:9787505375550
定价:¥38.00
购买这本书可以去
内容简介
前言:《软件开发的科学与艺术》成书的原因与过程微软亚洲研究院成立三年多来,不但在学术领域取得了令人瞩目的成就,在促进亚太地区学术交流、推动先进学术思想在本地区传播、帮助优秀的软件技术在本地区的开发和应用方面倾注了大量心血,进行了许多不凡的工作。在中国,我们一直把支持教育、帮助中国培养高水平的计算机人才视为重要工作之一。《软件开发的科学与艺术》一书取材于2000年秋季在北京大学所开设的一门选修课。当时,北京大学计算机系主任李小明老师向我们建议,希望我们能在北京大学讲一讲"微软的软件是怎样写的,微软的研究是怎样做的?"。在国内工作三年多来,有机会与众多教育界及产业界人士探讨一些计算机产业发展的问题,我们都强烈意识到:中国学生所需要的不仅仅是一些编程的技巧,更需要一些程序设计、项目管理和从事研究的知识和经验。在这一考虑下,我们邀请微软总部以及微软亚洲研究院的多位资深研究人员、程序开发人员和项目经理在北大做了题为《软件开发的科学与艺术》(The Science And Art of Software Development)的系列讲座,并为此讲座编写了专门的课程设计作为实践环节,希望学生们能够从我们的亲身体会以及实践经验中学习到一些实实在在的东西。讲座异乎寻常的成功。未能参加讲座的学生和老师们再三呼吁我们将讲座的内容编辑成册。强烈的责任感和使命感让我们认识到,这是一项非常有意义的工作。不管需要投入多大的心力和资源,我们也要成就此书,让更多的高校师生和软件业从业人员分享到微软公司多年来积累的软件研发和管理经验。《软件开发的科学与艺术》于2001年5月正式开始整理和编辑。在长达一年的整理和编辑过程中,正值中国政府发布鼓励软件产业政策,在全国35所高校试办示范性软件学院。许多老师在读完初稿后认为此书非常适合做软件学院的教材或参考书。于是,我们在北大课程的基础上进行了大规模的内容扩充,加入了全球软件产业发展趋势、中国软件产业发展机会与挑战、微软二十几年发展过程中总结并形成的软件产品开发和项目管理经验、现代软件开发对人才的要求以及微软产品开发团队的详细介绍的章节。本书还用大量、详尽的案例揭示了在软件开发过程中可能遇到的问题和解决的方法。《软件开发的科学与艺术》一书是集体智慧和共同努力的结晶:我很高兴能将近年来我对中国软件产业发展的一些看法和大家一起分享。凌小宁博士从回到中国帮助创办微软中国研究院到调回微软总部担任项目经理,一直热切关注着中国软件业发展的状况。此次,他将多年来在软件设计、软件开发和项目管理方面的经验写到了书中。张益肇博士结合自己在美国成功创办语音门户Nuance的经验,介绍了有关将研究成果转化成产品的经验。微软亚洲研究院新技术开发部的林斌结合自己在微软及其他美国公司多年的软件开发经验,总结了写好代码的秘诀;陈宏刚博士结合自己在微软多年的软件测试经验,系统地总结了软件测试的过程和方法;熊明华在微软的产品部门任项目经理多年,当他得知此书的写作消息后,在繁忙的工作之余,总结了自己对项目管理的经验和体会,并对书稿进行了多次认真的修改。感谢本书编写组织委员会的成员,包括微软公司马歆、陈宏刚,电子工业出版社郭立,是他们的辛勤劳动推动了本书的顺利面世。感谢俞俊平和余安萍,他们在数月间认真的整理素材才使得本书的面世成为可能,本书的字里行间都凝聚了两位整理者的心血。感谢微软公司的崔力红小姐、郝海洋先生、彭云峰先生,他们为本书的部分章节提供了部分文档和案例,增强了本书的可读性和实际应用性。《软件开发的科学与艺术》的内容软件开发是一门科学,更是一门艺术。如何学习和借鉴微软公司在软件开发方面的成功经验、了解它独特的企业文化,对于中国软件企业的未来发展可能有所裨益。《软件开发的科学与艺术》一书将收录以下内容:1.The Challenges and Opportunities of the Global Software Industry 全球软件产业现状、趋势与挑战2.Talent Beyond Technology : What Kind of Talent We Need for Modern Software Development现代软件开发对人才的要求3.From Research to Products 从研究到产品4.Software Development at Microsoft 微软的软件开发5.Source of the Software Design软件设计之源6.Program Management 项目管理7.Things you can Do to Write Better Code 写好代码的十个秘诀8.Secrets of Software Performance如何提高程序的性能9.Basic of Software Testing 软件测试基础10.Write Good Testing Documents如何撰写测试文档本书的意义具有极高的实践性和实用价值是本书的主要特点。通过阅读本书,我们希望大家:× 学会如何在现代IT企业的文化环境中做一个成功者× 学会如何做世界级的、高质量的研究× 学会如何创建大规模的软件产品如果你想:× 成为一个成功的工程师× 成为一个成功的研究人员× 成为一个成功的管理人员× 为一个成功的软件公司工作你会发现这本书的内容对你是非常有帮助的。《软件开发的科学与艺术》作为第一本由微软员工编写、介绍微软公司软件研发经验的中文书籍,将成为中国软件教育和软件企业很好的参考资料。我想借此机会代表所有在微软工作的中国工程师,表达对中国软件产业健康发展的诚挚祝福;表达微软亚洲研究院对支持中国软件教育事业的诚意和长期的承诺。我们将进一步通过教师培训、课程建设、对软件学院的支持等多种形式,为中国的软件事业发展尽一份力。微软亚洲研究院院长、首席科学家 张亚勤本书凝聚了微软专家多年研究和工作中获得的宝贵经验,是特为每个关注软件开发的人而准备的一本书。书中,这些微软专家现身说法,提供了许多成功亦或失败的案例,并进行深刻中肯的剖析,为读者展现微软企业文化,以及微软的软件开发过程和项目管理等方面的内容。相信这些内容能够带给读者许多思想和观念上的重塑,从而对我们的后继学习和工作产生重要的影响。重要的是通过学习和借鉴软件巨人─微软的成功经验,从而推动中国现代IT企业的发展和进步。不论是软件开发人员,还是项目管理人员都将从中获益匪浅。本书将是每个从事软件开发的人员案头不可或缺的珍藏书。
作者简介
陈宏刚微软亚洲研究院商务及高校关系高级经理,主管微软亚洲高校关系、微软亚洲研究院人力资源和商务计划及发展等。在微软总部工作期间,参加过Windows95,ExchangeServer4.0和4.5,InternetExplorer4.0和5.5,SQLServer2000的开发和测试。
目录
《软件开发的科学与艺术》成书的原因与过程 1
《软件开发的科学与艺术》的内容 3
本书的意义 4
第1章 全球软件产业现状. 趋势与挑战 5
The Challenges and Opportunities of the Global Software Industry
软件是一台计算设备的思维中枢. 经过数十年的发展, 软件产业已经成为当今世界投资回报比最高的产业之一, 而这一产业正在潜移默化地改变着我们赖以生存的这个星球的面貌. 新世纪, 软件产业已经呈现出了一些引人入胜的转变迹象, 本章概括地把这些迹象表述为三个趋势:网络化. 服务化与全球化, 并从技术角度就高科技产业所面临的机遇与挑战阐述了作者的观点.
1.1 软件产业的网络化趋势 8
1.2 软件产业的服务化趋势 11
1.3 软件产业的全球化趋势 13
1.4 网络化. 服务化. 全球化趋势对中国软件产业的启示 15
第2章 现代软件开发对人才的要求 19
Talent Beyond Technology What Kind of Talent We Need for
Modern Software Development
软件开发是一门科学, 更是一门艺术. 微软在二十几年的发展过程中形成了其独特的软件开发与设计的企业文化. 目前, 中国软件业的发展喜忧参半. 中国拥有高素质. 基础扎实. 学习能力强且思维敏锐的软件专业人员, 但中国大规模的软件生产尚处于初期发展阶段, 软件的研究与开发过程中尚有许多亟待解决的问题. 本章中, 凌小宁博士关于微软企业文化以及软件开发人才等方面作了精辟的论述, 这些内容是我们中国学生及软件从业人员应该了解. 理解并恰到好处地遵循的.
2.1 现代软件开发概述 21
2.2 独具魅力的微软企业文化与软件开发人员的培养 23
2.3 从差别中寻找解决方案 28
2.4 扎实的基础和创新. 独立的工作能力 33
2.5 主人翁精神和团队精神 34
2.6 锲而不舍. 从错误中学习的精神 46
第3章 从研究到产品 51
From Research to Products
如何将研究成果投向市场并获得成功, 这是许多人关心的问题. 实际上, 从研究成果到产品是一个非常复杂并且非常漫长的过程, 其中会牵涉到相当多的问题. 张益肇博士根据多年来积累的丰富实践经验, 首先介绍了一种关于产品空间的思维方式 技术生命周期, 以及在生命周期各阶段中用户对技术和市场的影响, 其次通过具体的案例说明技术和市场的关系, 最后总结出了三条宝贵的规则, 相信会给读者带来很大的启发.
3.1 引言 53
3.2 技术生命周期 56
3.3 案例分析 62
3.4 练习 67
3.5 间断技术 73
3.6 基本规则 83
3.7 推荐书目 87
第4章 微软的软件开发 89
Software Development at Microsoft
现在的软件开发不再是个人英雄主义打天下的时代了, 尤其是像微软这样大的软件公司, 一个软件都是由几百人甚至几千人共同合作完成的. 那么如何管理这样庞大的开发阵容?员工是如何分工的?他们之间又是如何协作的?这些都是大家关心的问题. 陈宏刚博士结合自己在微软公司的亲身体验, 并结合具体实例, 从一个较高层次介绍了微软的产品团队. 软件开发过程和开发方法.
4.1 概述 91
4.2 微软的产品团队 94
4.3 微软的软件开发过程 106
4.4 想法和意图批准里程碑 112
4.5 产品计划的通过里程碑 118
4.6 范围完成/第一次使用里程碑 123
4.7 发布阶段 130
第5章 软件设计之源 141
Source of the Software Design
在一些人眼里, 今天的软件开发似乎已成为简单的事件:已有了不少很好的开发工具和软件库, 软件开发人员训练有素, 都强烈渴望去编写很酷的软件, 可以在几天的时间里编写出一个相当复杂的软件. 但为什么有一些软件能够得到用户的喜欢, 而另一些则不能?为什么有些软件能够在市场上成功, 而有些则受到冷落?由此可见, 开发软件并不一定难, 难就难在如何开发有用的软件. 本章, 凌小宁博士就根据自己多年的实践经验, 回答"如何设计有用的软件"这个问题.
5.1 软件设计简述 143
5.2 三个困难的问题 144
5.3 设计之源 145
5.4 错误设计之源 149
5.5 基于用户情景的设计 153
第6章 项目管理 161
Program Management
项目管理是一种广泛应用于各种工程. 金融甚至农业生产中的技术管理过程. 在IT行业, 项目管理常常是决定产品或企业能否成功的最重 要指标之一. 中国历经了15年的不懈努力, 加入世界贸易组织终成现实, 这为我们带来了前所未有的机遇和挑战. 我国政府所属各部门和企业领导对于项目管理也越来越重视, 现在市场上名目繁多的各类项目管理培训就可见一斑.
熊明华在微软担任项目经理这一职位多年. 本章是根据他亲身实践, 对微软的项目管理进行了详细的介绍,相信对我国软件业项目管理水平的提高会有所促进.
6.1 项目管理简述 163
6.2 什么是项目经理 164
6.3 项目经理的行政结构与工作关系 167
6.4 为什么需要项目经理 175
6.5 项目经理每天的具体工作是什么 178
6.6 做项目经理的背景要求 182
6.7 结论 187
第7章 写好代码的十个秘诀 189
10 Things You Can Do To Write Better Code
在现代软件的开发中, 如何写出具有正确逻辑而且执行速度快的代码是众多的软件开发人员所追求的目标. 林斌在微软总部担任了多年软件开发高级工程师, 参加了微软多种产品的开发工作. 本章, 他根据自己多年的亲身体验, 为读者总结出一流代码应该具备的特性, 以及写一流代码的十个秘诀. 文中展示了丰富的具体代码实例, 并进行了详尽透彻的分析, 最后提供了正确的解决之道. 如果你是一名软件开发人员, 相信本章对你今后的编程工作会有很大的帮助.
7.1 简介 191
7.2 编写代码的十大秘诀 196
7.3 结束语 228
第8章 如何提高程序的性能 231
Secrets of Software Performance
如果你是一名软件开发人员, 是不是经常因为程序的性能而受到老板的指责?你是不是经常因为程序的性能而被用户刁难?你是不是经常因为程序的性能而饱受等待之苦?那么, 怎样才能尽量优化应用程序, 提高其性能呢?本章, 林斌根据自己多年在微软进行软件开发的实践经验, 为我们提供非常棒的提高性能的方法, 并列举了具体的案例学习, 最后, 还详细介绍了令无数软件开发人员头痛的内存问题. 如果你是一名软件开发人员, 阅读本章后, 立即将这些方法应用到你的应用程序中, 体验一下性能提高的喜悦吧.
8.1 提高性能的方法 233
8.2 案例学习 234
8.3 内存 241
第9章 软件测试基础 255
Basic of Software Testing
软件测试是一门非常崭新的学科, 目前研究的内容还不很深入, 所涉及的只是测试数字. 测试函数等一些非常简单的问题, 可以说还处于婴儿阶段. 由于软件测试学科还不成熟, 它到底需要一个什么样的专业基础, 尚无定论, 而且目前还没有一种很好的标准来衡量一名测试人员的优劣. 本章, 陈宏刚博士根据亲身体验, 以微软公司为例讲述软件测试的方法及实施过程. 陈宏刚博士指出, 软件测试学的发展还有赖于大家共同努力, 促进其研究的不断深入. 相信本章能对软件测试工作起一定的指导作用
9.1 概述 257
9.2 关于Bug 266
9.3 软件测试方法和辅助工具 269
9.4 相关测试文档 276
9.5 如何与项目经理及开发人员沟通 278
9.6 结束语 286
第10章 如何撰写测试文档 291
Write Good Testing Documents
正因为软件测试还是一门新兴学科, 各方面的规范还不完备, 目前软件测试工作还无一定的规范可依据. 微软经过二十余年的发展, 在实践中不断摸索和总结出一套独特的软件测试方法. 本章中, 陈宏刚博士主要结合自己在微软公司多年的测试工作总结出宝贵的经验, 为读者介绍如何撰写测试的相关文档, 包括测试计划文档. 测试规范文档. 测试案例文档. 测试报告文档以及Bug报告文档. 本章附件中包含了陈宏刚博士亲手撰写的一些测试文档实例.
10.1 测试计划(Test Plan) 293
10.2 测试规范(Test Specification) 298
10.3 测试案例(Test Case) 301
10.4 测试报告(Test Report) 301
10.5 Bug报告(Bug Report) 302
附录A 微软亚洲研究院介绍 343
附录B 课程设计 347
编辑手记 351
《软件开发的科学与艺术》的内容 3
本书的意义 4
第1章 全球软件产业现状. 趋势与挑战 5
The Challenges and Opportunities of the Global Software Industry
软件是一台计算设备的思维中枢. 经过数十年的发展, 软件产业已经成为当今世界投资回报比最高的产业之一, 而这一产业正在潜移默化地改变着我们赖以生存的这个星球的面貌. 新世纪, 软件产业已经呈现出了一些引人入胜的转变迹象, 本章概括地把这些迹象表述为三个趋势:网络化. 服务化与全球化, 并从技术角度就高科技产业所面临的机遇与挑战阐述了作者的观点.
1.1 软件产业的网络化趋势 8
1.2 软件产业的服务化趋势 11
1.3 软件产业的全球化趋势 13
1.4 网络化. 服务化. 全球化趋势对中国软件产业的启示 15
第2章 现代软件开发对人才的要求 19
Talent Beyond Technology What Kind of Talent We Need for
Modern Software Development
软件开发是一门科学, 更是一门艺术. 微软在二十几年的发展过程中形成了其独特的软件开发与设计的企业文化. 目前, 中国软件业的发展喜忧参半. 中国拥有高素质. 基础扎实. 学习能力强且思维敏锐的软件专业人员, 但中国大规模的软件生产尚处于初期发展阶段, 软件的研究与开发过程中尚有许多亟待解决的问题. 本章中, 凌小宁博士关于微软企业文化以及软件开发人才等方面作了精辟的论述, 这些内容是我们中国学生及软件从业人员应该了解. 理解并恰到好处地遵循的.
2.1 现代软件开发概述 21
2.2 独具魅力的微软企业文化与软件开发人员的培养 23
2.3 从差别中寻找解决方案 28
2.4 扎实的基础和创新. 独立的工作能力 33
2.5 主人翁精神和团队精神 34
2.6 锲而不舍. 从错误中学习的精神 46
第3章 从研究到产品 51
From Research to Products
如何将研究成果投向市场并获得成功, 这是许多人关心的问题. 实际上, 从研究成果到产品是一个非常复杂并且非常漫长的过程, 其中会牵涉到相当多的问题. 张益肇博士根据多年来积累的丰富实践经验, 首先介绍了一种关于产品空间的思维方式 技术生命周期, 以及在生命周期各阶段中用户对技术和市场的影响, 其次通过具体的案例说明技术和市场的关系, 最后总结出了三条宝贵的规则, 相信会给读者带来很大的启发.
3.1 引言 53
3.2 技术生命周期 56
3.3 案例分析 62
3.4 练习 67
3.5 间断技术 73
3.6 基本规则 83
3.7 推荐书目 87
第4章 微软的软件开发 89
Software Development at Microsoft
现在的软件开发不再是个人英雄主义打天下的时代了, 尤其是像微软这样大的软件公司, 一个软件都是由几百人甚至几千人共同合作完成的. 那么如何管理这样庞大的开发阵容?员工是如何分工的?他们之间又是如何协作的?这些都是大家关心的问题. 陈宏刚博士结合自己在微软公司的亲身体验, 并结合具体实例, 从一个较高层次介绍了微软的产品团队. 软件开发过程和开发方法.
4.1 概述 91
4.2 微软的产品团队 94
4.3 微软的软件开发过程 106
4.4 想法和意图批准里程碑 112
4.5 产品计划的通过里程碑 118
4.6 范围完成/第一次使用里程碑 123
4.7 发布阶段 130
第5章 软件设计之源 141
Source of the Software Design
在一些人眼里, 今天的软件开发似乎已成为简单的事件:已有了不少很好的开发工具和软件库, 软件开发人员训练有素, 都强烈渴望去编写很酷的软件, 可以在几天的时间里编写出一个相当复杂的软件. 但为什么有一些软件能够得到用户的喜欢, 而另一些则不能?为什么有些软件能够在市场上成功, 而有些则受到冷落?由此可见, 开发软件并不一定难, 难就难在如何开发有用的软件. 本章, 凌小宁博士就根据自己多年的实践经验, 回答"如何设计有用的软件"这个问题.
5.1 软件设计简述 143
5.2 三个困难的问题 144
5.3 设计之源 145
5.4 错误设计之源 149
5.5 基于用户情景的设计 153
第6章 项目管理 161
Program Management
项目管理是一种广泛应用于各种工程. 金融甚至农业生产中的技术管理过程. 在IT行业, 项目管理常常是决定产品或企业能否成功的最重 要指标之一. 中国历经了15年的不懈努力, 加入世界贸易组织终成现实, 这为我们带来了前所未有的机遇和挑战. 我国政府所属各部门和企业领导对于项目管理也越来越重视, 现在市场上名目繁多的各类项目管理培训就可见一斑.
熊明华在微软担任项目经理这一职位多年. 本章是根据他亲身实践, 对微软的项目管理进行了详细的介绍,相信对我国软件业项目管理水平的提高会有所促进.
6.1 项目管理简述 163
6.2 什么是项目经理 164
6.3 项目经理的行政结构与工作关系 167
6.4 为什么需要项目经理 175
6.5 项目经理每天的具体工作是什么 178
6.6 做项目经理的背景要求 182
6.7 结论 187
第7章 写好代码的十个秘诀 189
10 Things You Can Do To Write Better Code
在现代软件的开发中, 如何写出具有正确逻辑而且执行速度快的代码是众多的软件开发人员所追求的目标. 林斌在微软总部担任了多年软件开发高级工程师, 参加了微软多种产品的开发工作. 本章, 他根据自己多年的亲身体验, 为读者总结出一流代码应该具备的特性, 以及写一流代码的十个秘诀. 文中展示了丰富的具体代码实例, 并进行了详尽透彻的分析, 最后提供了正确的解决之道. 如果你是一名软件开发人员, 相信本章对你今后的编程工作会有很大的帮助.
7.1 简介 191
7.2 编写代码的十大秘诀 196
7.3 结束语 228
第8章 如何提高程序的性能 231
Secrets of Software Performance
如果你是一名软件开发人员, 是不是经常因为程序的性能而受到老板的指责?你是不是经常因为程序的性能而被用户刁难?你是不是经常因为程序的性能而饱受等待之苦?那么, 怎样才能尽量优化应用程序, 提高其性能呢?本章, 林斌根据自己多年在微软进行软件开发的实践经验, 为我们提供非常棒的提高性能的方法, 并列举了具体的案例学习, 最后, 还详细介绍了令无数软件开发人员头痛的内存问题. 如果你是一名软件开发人员, 阅读本章后, 立即将这些方法应用到你的应用程序中, 体验一下性能提高的喜悦吧.
8.1 提高性能的方法 233
8.2 案例学习 234
8.3 内存 241
第9章 软件测试基础 255
Basic of Software Testing
软件测试是一门非常崭新的学科, 目前研究的内容还不很深入, 所涉及的只是测试数字. 测试函数等一些非常简单的问题, 可以说还处于婴儿阶段. 由于软件测试学科还不成熟, 它到底需要一个什么样的专业基础, 尚无定论, 而且目前还没有一种很好的标准来衡量一名测试人员的优劣. 本章, 陈宏刚博士根据亲身体验, 以微软公司为例讲述软件测试的方法及实施过程. 陈宏刚博士指出, 软件测试学的发展还有赖于大家共同努力, 促进其研究的不断深入. 相信本章能对软件测试工作起一定的指导作用
9.1 概述 257
9.2 关于Bug 266
9.3 软件测试方法和辅助工具 269
9.4 相关测试文档 276
9.5 如何与项目经理及开发人员沟通 278
9.6 结束语 286
第10章 如何撰写测试文档 291
Write Good Testing Documents
正因为软件测试还是一门新兴学科, 各方面的规范还不完备, 目前软件测试工作还无一定的规范可依据. 微软经过二十余年的发展, 在实践中不断摸索和总结出一套独特的软件测试方法. 本章中, 陈宏刚博士主要结合自己在微软公司多年的测试工作总结出宝贵的经验, 为读者介绍如何撰写测试的相关文档, 包括测试计划文档. 测试规范文档. 测试案例文档. 测试报告文档以及Bug报告文档. 本章附件中包含了陈宏刚博士亲手撰写的一些测试文档实例.
10.1 测试计划(Test Plan) 293
10.2 测试规范(Test Specification) 298
10.3 测试案例(Test Case) 301
10.4 测试报告(Test Report) 301
10.5 Bug报告(Bug Report) 302
附录A 微软亚洲研究院介绍 343
附录B 课程设计 347
编辑手记 351
猜您喜欢