- 博客(0)
- 资源 (3)
- 收藏
- 关注
软件工程思想--林锐
《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特,构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。
作者从事了八年的软件开发工作,在他的博士学位论文完成之际写下了这本“心之所感”。虽然它探讨的是软件工程最常见的内容,但他将亲身所历的感悟写成活泼生动的文字,将软件工程的很多原则和方法融于笑谈之中,让人看得轻松,时有共鸣。尽管很薄,然其内涵不逊于厚近千页的有关教科书。
每次回浙大我都要和林锐相聚,谈学术、论社会,直面人生,“位卑未敢忘忧国”,每每至凌晨。前不久我在某大学计算机系作讲座,最后冒昧谈了几句题外话,其中之一是“学问与明理”。古人云:“读书明理”,意即读书要明白做人的道理。我以为其中的重要内涵,是要有积极的人生观,以贡献社会为己任。这也是我们的共识。林锐曾立誓做一名“真实、正直、优秀的科技人员”。他在自己困难的时候依然资助数名贫困中学生和大学生;常常躬身拾捡被乱扔于地的废纸、塑料袋,以示后生。这都会使很多的学人汗颜有加。
简言之,林锐对软件工程实践的积极思考、轻快而不失深邃的文笔及其言行,都是出色之处
经典的软件工程书籍厚得象砖头,或让人望而却步,或让人看了心事重重。请宽恕我的幼稚,我试图用三个问题:是什么、为什么、怎么办,来解释软件工程的道理。所以本书薄得象饺子皮─—用来包“思想”这种有味道的“馅”。本书的八章经分别为:
第一章“软件工程基本观念”;
第二章“程序员与程序经理”;
第三章“项目计划与质量管理”;
第四章“可行性分析与需求分析”;
第五章“系统设计”;
第六章“C++ 面向对象程序设计”;
第七章“测试与改错”;
第八章“维护与再生工程”。
附录“大学十年”可以充当饭后的水果。
我偶尔也担心此书写得太肤浅,内容少得可怜。就象一只鸡在水里扑腾了几下,并不能产生美味的鸡汤。但是如果您化了几分钟时间翻阅本书的任意章节,您马上就愿意再化几个小时一口气读完全书,并且乐得直拍桌子:“好!很好!非常好!”
您可以把这本科技书当小说看,但在看书时请不要吃东西,免得喷了别人或者呛着自己。
如果您买了本书后觉得不值得,我一定赔偿您的损失。
2011-10-07
软件工程—实践者的研究方法
第一部分 产品和过程
在本书的这一部分中我们主要讨论什么是工程产品和如何为工程技术提
出一个框架的过程。在下面的章节中,我们主要解决下列问题:
·到底什么是计算机软件?
·为什么我们不断努力要建造高质量的基于计算机的系统?
·我们如何对计算机软件的应用领域分类?
·关于软件仍存在什么样的神话?
·什么是软件过程?
·是否存在一般性的方法评价一个过程的质量?
·软件开发中可以应用什么过程模型?
·线性过程和迭代过程有何区别?
·它们的优点和缺点是什么?
·在软件工程中可以建议什么更高级的过程模型?
一旦回答了这些问题,读者就能够更好地理解本书其余部分给出的工程
原则的管理和技术方面的知识。
第二部分 软件项目的管理
在本书的这一部分中我们主要考虑计划、组织、监管和控制软件项目所
需要的管理技术。在下面的章节中,我们主要解决下列问题:
·在一个软件项目中如何管理人员、问题和过程?
·什么是软件度量?如何使用它们管理软件过程和过程指导下的项目?
·什么度量能够辅助管理者评估开发的产品的质量以及使用的过程的有
效性?
·一个软件项目组如何对工作量、成本和项目时间进行可靠的评估?
·一个组织何时应该建造软件?何时应该获取软件?何时应该请求外
援?
·采用什么技术评估来影响项目成功的风险?
·一个软件项目管理者如何为特定项目选择合适的软件工程工作任务
集?
·如何创建一个项目进度计划?
·如何定义质量使得软件项目组能够控制它?
·什么是软件质量保证?如何使用它作为项目控制机制?
·为什么正式的技术复审那么重要?
·在计算机软件开发之中以及它被交付给用户之后如何进行变化管理?
认真回答这些问题使你能够以一种更好的方式管理软件,以便按时交付
高质量的产品。
第三部分 传统软件工程方法
在本书的这一部分,我们考虑那些可应用于计算机软件的分析、设计和
测试的技术概念方法和测度。下面章节中,我们将涉及下列问题:
·如何在一个大型系统的范围内设计软件?产品工程和信息工程在什么
地方发挥作用?·可应用于软件需求分析的基本概念和原则是什么?
·什么是结构化分析?它的各种模型如何使得软件工程师能够理解数
据、功能和行为?·软件设计活动中使用的基本概念和原则是什么?
·如何创建数据、体系结构、过程和界面等设计模型?
·实时系统有什么独特的特性?这些特性如何影响这种系统的分析和设
计方式?·可应用于软件测试的基本概念和原则是什么?
·如何使用黑盒和白盒测试方法来设计有效的测试用例?
·软件测试的策略是什么?
·什么技术度量可用于评估分析和设计模型、源代码、以及测试用例?
一旦这些问题得到回答,你将了解如何使用严格的工程方法去建造软件
第四部分 面向对象的软件工程
在本书的这一部分,我们讨论那些应用于面向对象软件的分析、设计和
测试的技术概念、方法和测度。下面章节中,我们将涉及下列问题:
·什么是应用于面向对象思维的基本概念和原则?
·如何计划和管理面向对象的软件项目?
·什么是面向对象的分析?它的各种模型如何能使软件工程师理解类及
它们的关系和行为?
·什么是“使用实例”?它如何被用于分析系统的需求?
·传统的和面向对象的方法有何不同?
·什么是面向对象设计模型的构成成分?
·如何将“模式(pattern)”用来创建面向对象设计?
·什么是应用于面向对象软件的测试的基本概念和原则?
·当考虑面向对象软件时,测试策略和测试用例的设计方法将如何改变?
·什么技术度量可用于评估面向对象软件的质量?
一旦这些问题得到回答,你将了解如何使用面向对象的范型去分析、设
计、实现和测试软件。
第五部分 软件工程高级课题
这部分我们考虑一些高级课题,这将扩展你对软件工程的理解。在下面
章节中,我们将讨论下列问题:
·什么是“形式化方法”,如何用于刻划软件?
·对形式化描述软件需要什么符号和数学预备知识?
·净室软件工程方法和传统方法有什么不同?
·什么是在净室过程中进行的关键技术活动?
·领域工程如何被用作建立可复用构件库的先导?
·当开始进行复用过程时,必须考虑哪些技术问题?
·什么是支持复用的经济论据?
·什么是业务过程再工程?它如何设定软件再工程的阶段?
·什么是软件再工程所需要的关键技术活动?
·客户/服务器体系结构如何影响软件开发的方式?
·什么是建立CASE 工具环境的体系结构选项?
·什么软件工程的发展方向?
一旦回答了这些问题,你将理解了在下个十年中对软件工程有深远影响
的课题。
2011-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人