软件工程思想

2008-04-09 04:04:09来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


注:
1)浙大林锐博士的《软件工程思想》一书中的全部8个篇章。这是林锐在自己经营公司不够成功后的深刻总结,值得推荐,他的另一篇文章《大学十年》也很不错。
2)文章中的图片我没有贴。

软件工程思想

目录
1序言、前言4
1.1序4
1.2前 言4
1.3致 谢5
2软件工程基本观念7
2.1软件工程的目标与常用模型7
2.2软件开发的基本策略9
2.2.1复用9
2.2.2分而治之10
2.2.3优化——折衷11
2.3一些不正确的观念12
2.4一些有争议的观念13
2.5小 结14
3程序员与程序经理15
3.1了解程序员15
3.2了解程序经理17
3.3程序员升为经理后是否还要编程18
3.4经理与技术队伍的建设18
3.5向错误与失败学习20
3.6提高综合素责21
3.7小结22
4项目计划与质量管理22
4.1项目计划23
4.1.1知己知彼23
4.1.2进度安排24
4.2零缺陷质量管理的观念25
4.2.1高目标25
4.2.2可执行的规范26
4.3软件的质量因素26
4.3.1正确性与精确性27
4.3.2性能与效率28
4.3.3易用性28
4.3.4可理解性与简洁性28
4.3.5可复用性与可扩充性29
4.4质量检查29
4.5小结31
5可行性分析与需求分析31
5.1可行性分析的要素32
5.1.1经济32
5.1.2技术33
5.1.3社会环境34
5.1.4人35
5.2可行性分析案例35
5.2.1可行性分析案例之一36
5.2.2可行性分析案例之二38
5.2.3可行性分析案例之三42
5.3需求分析为什么困难44
5.3.1客户说不清楚需求44
5.3.2需求自身经常变动44
5.3.3分析人员或客户理解有误45
5.4如何进行需求分析46
5.4.1应该了解什么46
5.4.2通过什么方式去了解47
5.5小结47
6系统设计48
6.1体系结构设计49
6.1.1层次结构49
6.1.2客户机/服务器结构51
6.2模块设计53
6.2.1信息隐藏53
6.2.2内聚与耦合54
6.2.3封闭、开放性55
6.3数据结构与算法设计56
6.4用户界面设计57
6.4.1界面设计中美的需求与导向作用57
6.4.2界面美的内涵58
6.5系统设计示例60
6.5.1设计背景60
6.5.2Intra3D 2.061
6.5.3支持协同工作的网络通讯开发系统 CNC 1.064
6.5.4应用示例69
6.6小 结69
7C 面向对象程序设计70
7.1C 面向对象程序设计的重要概念71
7.1.1类与对象72
7.1.2继承与组合73
7.1.3虚函数与多态77
7.2良好的编程风格81
7.2.1命名约定81
7.2.2使用断言82
7.2.3new、delete与指针83
7.2.4使用const85
7.2.5其它建议87
7.3小结88
8测试与改错89
8.1对测试的理解89
8.1.1测试的目的90
8.1.2测试的心理要求90
8.1.3测试的真理90
8.1.4测试与质量的关系91
8.2测试人员的选择91
8.2.1Microsoft公司的经验教训91
8.2.2测试人员的分工92
8.3测试的主要内容与常用方法93
8.3.1正确性测试93
8.3.2容错性测试94
8.3.3性能与效率测试94
8.3.4易用性测试95
8.3.5文档测试95
8.4改错95
8.5小结96
9维护与再生工程97
9.1软件维护的常识97
9.2维护的代价及其主要因素98
9.3再生工程99
9.3.1重构100
9.3.2逆向工程100
9.3.3前向工程100
9.4小 结100


1 序言、前言
1.1序
《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特,构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。
作者从事了八年的软件开发工作,在他的博士学位论文完成之际写下了这本“心之所感”。虽然它探讨的是软件工程最常见的内容,但他将亲身所历的感悟写成活泼生动的文字,将软件工程的很多原则和方法融于笑谈之中,让人看得轻松,时有共鸣。尽管很薄,然其内涵不逊于厚近千页的有关教科书。
每次回浙大我都要和林锐相聚,谈学术、论社会,直面人生,“位卑未敢忘忧国”,每每至凌晨。前不久我在某大学计算机系作讲座,最后冒昧谈了几句题外话,其中之一是“学问与明理”。古人云:“读书明理”,意即读书要明白做人的道理。我以为其中的重要内涵,是要有积极的人生观,以贡献社会为己任。这也是我们的共识。林锐曾立誓做一名“真实、正直、优秀的科技人员”。他在自己困难的时候依然资助数名贫困中学生和大学生;常常躬身拾捡被乱扔于地的废纸、塑料袋,以示后生。这都会使很多的学人汗颜有加。
简言之,林锐对软件工程实践的积极思考、轻快而不失深邃的文笔及其言行,都是出色之处。
正由于此,而不仅因为是同行,我才不惭浅陋,接受他的要求,荣幸地成为本书的第一位读者,并在本来应是名人大家留文的地方谈林说森。


董军,2000年2月于
朝夕室


1.2前 言

在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地编程,结果产生了一堆问题:程序质量低下,错误频出,进度延误,费用剧增……。这些问题导致了“软件危机”。
在1968年,一群程序员、计算机科学家与工业界人士聚集一起共商对策。通过借鉴传统工业的成功做法,他们主张通过工程化的方法开发软件来解决软件危机,并冠以“软件工程”这一术语。三十年余年来,尽管软件的一些毛病如人类的感冒一样无法根治,但软件的发展速度超过了任何传统工业,期间并未出现真真的软件危机。这的确是前人的先见之明。如今软件工程成了一门学科。
软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,关键在于运用。我们不可以把软件工程方法看成是诸葛亮的锦囊妙计─—在出了问题后才打开看看,而应该事先掌握,预料将要出现的问题,控制每个实践环节,并防患于未然。研究软件工程永远做不到理论家那么潇洒:定理证明了,就完事。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:中间件讨论

下一篇:[原创]C Builder界面设计专辑