软件开发这点事儿:软件开发工具手册(附赠CD光盘1张)

分类: 图书,计算机与互联网,软件工程及软件方法学,综合,
品牌: 邵志东
基本信息·出版社:电子工业出版社
·页码:294 页
·出版日期:2009年
·ISBN:7121080729/9787121080722
·条形码:9787121080722
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·附带品描述:附赠CD光盘1张
产品信息有问题吗?请帮我们更新产品信息。
内容简介在《软件开发这点事儿:软件开发工具手册》中,读者将会找到这些问题的答案。在《软件开发这点事儿:软件开发工具手册》的开章,读者可以了解到作为一个软件程序员需要掌握的专业和素质技能,并介绍了软件程序员的职业发展方向;在《软件开发这点事儿:软件开发工具手册》知识篇、工具篇中,读者可以学习到软件开发的精髓:软件开发过程中所涉及的相关知识、需要掌握的相关工具。利用《软件开发这点事儿:软件开发工具手册》的介绍,读者可以快速掌握这些开发工具;最后,在《软件开发这点事儿:软件开发工具手册》的模板篇、规范篇,读者可以惊喜地找到非常实用的软件开发模板和项目组建设所需要的规范文档。通过《软件开发这点事儿:软件开发工具手册》的帮助,相信广大读者能快速走上真正的软件开发之路!《软件开发这点事儿:软件开发工具手册》非常适合软件程序员或有志于成为软件程序员的读者阅读。软件技术和编程语言的发展日新月异,如何能在如此快速的技术革新中把握技术发展趋势,掌握软件开发的精髓;掌握一门编程语言就是程序员了吗?如何能够成为一名优秀的程序员?作为一名程序员,职业发展路在何方……
作者简介邵志东,计算机软件硕士。历任北大方正电子有限公司项目开发经理、新东方IT教育教学部经理、北京新科海学校副总经理。
拥有近15年的软件设计、需求分析和项目管理、编程经验,参与过国内外的众多项目开发,熟悉整个软件项目管理流程,对.Net平台开发有着特别深入的研究。
有近十年微软产品技术讲座的经验;曾经为各行业企业单位讲授过上千场微软技术培训课程。在多年教学同时,长期专注基于微软产品的二次开发及解决方案,曾为多个大型企业实施及开发过百个基于微软产品平台的系统,有非常丰富的项目开发及实施经验。
从2005年3月起,受邀成为微软中文网络广播MsDNWebcast特约讲师,至今累计授课近百次。主讲了《ASP.NET实用编程系列》、《.NETWindows编程系列》、《ADo.NET2.O系列》等课程。被评为“2006年微软中文网络广播最佳讲师”,新作《.NET编程这点事儿》即将出版。
媒体推荐“对于有志于成为一名优秀程序员的大学毕业生来说,这本书是必读之物。它不仅详细讲解了程序员需要具备的专业技能、素质技能,还介绍了程序员的职业生涯前景。”
——周怀军就业教育专家 中国就业促进会理事
“这是一本很特别的讲述软件开发的书,它不仅介绍了软件开发过程中程序员所要具备的各种知识,更详细介绍了Rose、PowerDesigner等常用工具的使用,并且还提供了各种模板和规范,使得读者进行软件开发变得事半功倍。”
——汤涛技术专家原微软(中国)有限公司政府行业高级咨询顾问
人才的发展应该是全方位的,一个职业化员工不仅要具备“硬技能”——专业技能,更需要具备“软技能”——素质技能。从人才培养的角度上看,具备本书所述所有技能的程序员一定是受企业欢迎的。
——陈昉原惠普远东区培训发展总监
程序员是一个综合性的岗位,除了要掌握编程语言外,软件开发过程中还要涉及其他多方面的技能。不仅要注重专业技能的积累,更主要的是培养一种专业的精神。
——郭宗明博士生导师北京大学
编辑推荐《软件开发这点事儿:软件开发工具手册》系列丛书特色:·全面反映新大纲:在参考和分析历年考试试题的基础上,着重对最新版的考试大纲规定的内容有重点地进行细化和深化。阅读本丛书,就相当于阅读了一本详细的考试大纲的精解。·试题最新最全:将近几年考试的试题一网打尽,从而便于读者摸清考试新趋向,紧跟考试动态,熟悉考试方法、试题形式,了解试题的深度和广度,以及内容的分布。·名师精心锤炼:由名师主笔,亲授解题技巧。内容全面翔实,文字表达简洁明了,层次清晰,结构严谨,特别突出了解题方法,强调知识的综合运用与提高,导向准确。·题型分析透彻:重点定位在考试知识点的介绍和解题方法与技巧上,不仅授人以“鱼”,更授人以“渔”,对例题进行了细致深入的分析、完整的解答和点评扩展,能让读者达到触类旁通、举一反三之功效。·全真试题实战:不但配有例题分析,并给出了详细的试题分析与解答,便于读者实战演练,自测与提高。网络工程师考试辅导指定教材,基于前两版再度精心修订精研最新版考纲,涵盖最新网络工程师考试所有知识点深入历年考试真题,详尽分析近年最新考题中的重点和难点。特别制作:历年考点分布大表,高度概括考试要点,帮助您归纳、总结、记忆特别提醒:书中特殊标记考试关键点、重点、难点,引起考生高度注意。
目录
第1篇 知识篇
第1章 恭喜你,成为软件程序员2
1.1 软件程序员专业技能2
1.1.1 专业技能检核表2
1.1.2 软件程序员岗位技能图4
1.2 软件程序员素质技能4
1.2.1 软件程序员的素质技能4
1.2.2 高级软件程序员的素质技能5
1.3 软件程序员职业发展图6
1.3.1 软件企业的人才类型和素质结构关系6
1.3.2 高级技术人才理想成长路径7
1.3.3 高级管理人才理想成长路径7
1.3.4 高级综合人才理想成长路径8
第2章 软件开发流程9
2.1 项目还是产品——程序员心中的痛9
2.2 软件开发流程10
2.2.1 项目开发流程10
2.2.2 产品开发流程11
2.3 标准还是效率——痛苦的抉择11
2.3.1 质量/过程标准的来源11
2.3.2 标准能做到什么和不能做到什么12
2.3.3 质量标准和过程控制有什么用12
2.3.4 软件开发过程中如何应用这些标准13
第3章 可行性研究14
3.1 可行性分析的要素14
3.2 市场可行性分析15
3.3 政策可行性分析15
3.4 技术可行性分析15
3.5 成本—收益分析16
3.6 SWOT分析16
3.6.1 竞争优势分析17
3.6.2 竞争劣势分析17
3.6.3 外部机会分析18
3.6.4 外部威胁分析18
3.6.5 SWOT核心问题19
第4章 需求分析20
4.1 需求分析的重要性20
4.2 需求分析为什么困难20
4.3 需求分析基本任务21
4.4 需求分析的结果22
4.5 需求分析阶段工作重点22
4.6 UML和Rational Rose22
4.7 Microsoft Visio23
第5章 系统设计24
5.1 系统设计工作流程图24
5.2 面向对象的设计方法25
5.2.1 面向对象的概念26
5.2.2 面向对象设计方法目标29
5.3 三层应用程序模型29
5.4 函数、对象和组件30
5.4.1 函数和过程30
5.4.2 类和对象30
5.4.3 组件30
5.5 系统设计内容31
5.5.1 数据库设计32
5.5.2 界面设计42
5.5.3 模块设计46
5.5.4 数据结构和算法设计48
5.5.5 OOP(Object Oriented Programming)设计方法步骤49
第6章 编码50
6.1 编程语言和开发工具50
6.1.1 编程语言50
6.1.2 开发工具52
6.2 网络编程必备知识53
6.2.1 HTML/JavaScript53
6.2.2 XML53
6.2.3 WebService54
6.2.4 Ajax54
6.3 了解极限编程55
6.4 编码规范56
6.5 源代码控制56
6.5.1 版本管理的必要性56
6.5.2 常用源代码控制工具57
6.5.3 源代码控制规范58
第7章 软件测试59
7.1 软件测试基本概念59
7.1.1 单元测试60
7.1.2 集成测试60
7.1.3 系统测试62
7.1.4 性能、压力和负载测试62
7.1.5 测试成本63
7.1.6 黑盒测试和白盒测试63
7.2 白盒测试用例64
7.2.1 测试用例简介64
7.2.2 白盒测试用例设计66
7.2.3 测试用例设计步骤67
7.3 软件测试工具73
7.3.1 常见软件测试工具列表73
7.3.2 常用单元测试工具介绍74
第8章 结项和产品化76
8.1 安装盘制作76
8.1.1 使用InstallShield76
8.1.2 使用Visualstudio.NET发布程序76
8.1.3 安装盘制作规范77
8.2 软件加密77
8.2.1 软件加密概述77
8.2.2 常见的软件加密技术77
8.3 说明书制作79
8.3.1 Word书籍版说明书79
8.3.2 电子说明书制作79
第9章 项目组建设81
9.1 项目组守则81
9.2 常用代码81
9.3 编程技巧82
9.4 编写工作计划总结82
9.5 代码量统计工具83
第2篇 工具篇
第10章 Rational Rose实例入门86
10.1 创建工程86
10.2 建立Actor88
10.3 创建Use Case89
10.4 用顺序图描述Use Case90
10.5 建立协作图92
10.6 建立类93
10.7 实现模型94
10.8 UML符号和图形95
第11章 Power Designer实例入门99
11.1 创建项目工程99
11.2 建立概念数据模型100
11.2.1 创建实体100
11.2.2 添加属性101
11.2.3 定义属性的标准检查约束102
11.2.4 定义实体的主、次标识符103
11.2.5 创建其他实体105
11.2.6 建立联系107
11.3 生成物理数据模型110
11.4 生成数据库建库脚本112
11.5 生成关系数据库113
11.6 Power Designer的4种模型文件113
第12章 NUnit实例入门115
12.1 NUnit下载安装115
12.2 创建测试项目116
12.3 添加NUnit引用116
12.4 创建测试用例117
12.5 创建被测试类118
12.6 编译项目118
12.7 运行图形测试工具118
12.8 修改测试119
12.9 异常测试120
第13章 JUnit实例入门121
13.1 JUnit下载和安装121
13.2 创建测试项目122
13.3 添加JUnit引用122
13.4 创建被测试类124
13.5 创建测试用例125
13.6 创建测试单元126
13.7 运行测试127
13.8 JUnit结构说明128
第14章 InstallShield实例入门129
14.1 创建安装项目129
14.2 安装程序语言设计130
14.3 应用程序信息设置131
14.4 设置程序运行条件131
14.5 设定安装架构131
14.6 添加要发布的网站文件131
14.7 添加程序快捷键132
14.8 添加注册表修改133
14.9 安装界面设置134
14.10 多语言字符串修改134
14.11 生成安装134
14.12 运行安装文件135
14.13 添加数据库支持136
14.14 直接附加数据库141
14.15 程序卸载141
第15章 “VisualStudio.NET部署应用程序”实例入门142
15.1 创建要发布ASP.NET Web应用程序142
15.2 创建安装程序类143
15.3 创建包含SQL语句的文本文件以创建数据库143
15.4 将代码添加到安装程序类中以阅读文本文件145
15.5 创建部署项目147
15.6 将主程序项目的输出添加到部署项目中148
15.7 创建自定义安装对话框148
15.8 创建自定义操作149
15.9 程序部署150
第16章 HLP文件制作实例入门151
16.1 RTF源文件制作151
16.2 编译成为HLP文件155
16.3 制作主题帮助文件(CNT文件)158
16.4 把CNT文件加入工程159
第17章 CHM文件制作实例入门161
17.1 材料准备161
17.2 创建工程161
17.3 设置CHM文档的标题164
17.4 修改文档对话框属性167
17.5 制作目录168
17.6 添加目录170
17.7 制作索引172
17.8 添加索引173
17.9 说明174
第18章 Visual SourceSafe实例入门175
18.1 软件安装175
18.2 服务端创建VSS数据库和用户175
18.3 客户端选择数据库177
18.4 添加项目到VSS数据库178
18.4.1 通过SourceSafe添加项目179
18.4.2 通过VisualStudio.Net2005集成开发环境添加项目180
18.5 在客户端VS.NET开发环境中使用VSS182
18.6 修改历史查看184
18.7 用户权限修改185
第19章 CVS实例入门187
19.1 安装CVSNT187
19.2 服务端创建仓库和用户189
19.3 添加项目到CVS服务器189
19.4 在Eclipse客户端开发环境中使用CVS193
19.5 VS.NET中集成CVS196
19.6 CVS和VSS比较199
第20章 Visio实例入门200
20.1 建立新文档200
20.2 创建流程图201
20.3 保存204
20.4 自定义形状的制作204
第3篇 实例篇
第21章 网上商城系统开发实战208
21.1 项目概述208
21.2 可行性分析209
21.2.1 系统目标209
21.2.2 开发的可行性分析209
21.3 需求分析210
21.3.1 确定用户类型210
21.3.2 用户工作流程210
21.3.3 软件功能212
21.3.4 UML图213
21.3.5 系统运行环境214
21.4 系统设计215
21.4.1 数据库设计216
21.4.2 页面设计228
21.4.3 页面关系图230
21.4.4 界面设计231
21.5 编码和测试244
21.5.1 公共模块设计244
21.5.2 源代码控制254
21.5.3 单元测试工具254
21.5.4 系统源代码254
21.6 制作安装盘254
21.7 本章源文件254
第4篇 模板与规范篇
第22章 软件开发模板256
22.1 软件立项申请书257
22.2 可行性分析报告259
22.3 立项评审报告260
22.4 用户需求说明书261
22.5 需求分析评审报告265
22.6 总体设计书266
22.7 开发策划书266
22.8 详细设计书268
22.9 编码计划268
20.10 测试方案269
20.11 测试报告270
22.12 软件开发结项报告272
第23章 项目组规范273
23.1 项目组工作守则273
23.2 C#编码规范276
23.2.1 命名277
23.2.2 代码格式书写规范278
23.2.3 其他280
23.3 SourceSafe使用规范281
23.4 数据库命名规范283
23.5 用户界面设计规范286
23.6 安装盘制作规范290
……[看更多目录]
序言计算机研究所研究员
给程序员的一份信
关于学习,有些感受和大家交流。
1.“软件开发学习的重点是流程,而非技术本身”
事实上,技术的发展是日新月异的。记得我第一次做项目用的编程工具是Turbo C,后来用VC++5.0,再后来开始在微软中文网络广播讲VisualStudio.NET 2002,不久又换成了VisualStudio.Net2003,最近又讲的是VisualStudio.NET 2005,当然VisualStudio.NET 2008已经出来了……如此快得更新速度,不由得让我们感叹:“做一个程序员真累啊!”。
所以,作为一个程序员要求一直走在时代的前列,真得很难!那么面对如此快速的变化,我们该怎么办呢?
其实,细心的程序员分析一下,可以看到,在如此快速的技术变化后面,软件开发的流程基本没有改变!原来困扰我们的只是一个开发工具、一门编程语言而已。真正的武学大师,何必在意手中的武器到底是刀,还是剑呢?
所以,笔者认为,了解软件开发的过程,把握各个阶段需要掌握的基本知识,熟悉各个阶段所涉及的工具,这才是“以不变应万变之道”!
掌握了这些,所有的编程语言和开发工具,都是任君选择。是用Java这个“倚天剑”,还是用C#这把“屠龙刀”,就由我们的个人爱好和开发的需要来决定了!
这也是我写作本书的理由。
2.学习的重点:培养一种“习惯”
我们每个人都应该把学习的重点放在能力、方法的长进上,而不是具体的某种技术、某个知识点的学习。在如今的知识爆炸时代,新的技术、新的知识层出不穷,即使我们穷其一生,仍然不可能学习掌握所有的知识和技术,而只能是在茫茫的知识海洋中占据一片孤岛。所以我们的重点应该放在培养适合于自己的一种学习方法,更确切地说,是培养一种习惯,一种学习的习惯。
我再三强调大家要自己有意识地总结一套学习新东西的方法,就是这个意思。
如果能够掌握一套得心应手的学习新东西的方法,面对茫茫的知识海洋你也会信心十足的。正如一句笑话:如果你是一个数学高手,当面对新的技术挑战时,你问一下自己:难道这个技术比高等数学还复杂?这样一想,你顿时会信心十足。虽是笑话,但也是很有道理的。
3.一些思维方式的培养
生活、学习中每个问题的求解,到最后或者是归结为一种数学模型,或者是归结成一种哲学思想。因此我建议大家在自己的自由时间能抽空学习一些哲学、数学方面的思想。这对自己是终生有益的。
人的价值往往体现在他的思想上,正如一个公司的品牌价值;技术永远是要被淘汰的;但一种思想永远有其存在的价值。因此当对某个问题,你自己有你自己的一套完整理论时,你的身价就会上一个(几个)新的台阶。
4.何为“高手”?如何成为“高手”?
所谓的“高手”是否就是什么都懂?并不是。上面谈过,世界上是没有一个人精通所有的知识的,从古至今都没有。所谓的高手只不过是对于某些事情的处理已经养成了一种良好的习惯。举例说明,一个VC高手,是否就是熟悉MFC的每个类?了解Windows的所有SDK?显然不是。现实中可能有这样的“高手”,但寥寥无几。
只要在遇到各种问题后能很快地找到解决问题的方法,就可以算的上是一个真正的高手了。
因此在实际的生活、学习中,我们应该注意多总结方法、修订方法,特别是对于一些重复发生的事情(大到“学习”这个行为,小到VC编程中每次遇到问题),我们应该总结每次发生问题时自己采取的方法,并在下次发生时采用。
时间一长,就会新成一种习惯,并能时常修订自己的这种习惯。
5.求精与求广
对于知识的学习,我们或者可以“求精”,即选中一个点,精通它,因为尽管知识是无限的,但具体到某个知识点是有限的,我们有可能对某个知识点的所有知识加以了解;或者“求广”,因为人的生存,归根到底是人的竞争,你懂的东西比别人多,你就会在竞争中获胜。
相比较两种情况,后者难一些,因为在“求广”的同时,其精度不好掌握:浅了如同一无所知;深了精力有限不太可能。前者容易些,但这个点必须选对,否则就可能被社会遗弃。比如,对于我们知识点有:VC、数据库、网络等,选择网络的可能就比选择数据库的竞争力强些(特别是在网络编程比较火的现在)。
对于我们,我感觉还是先“求精”,有了一技之长,然后在这个基础上拓展自己掌握知识的范围。
但最重要的还是要逐渐从“靠技术吃饭”转到“靠思想吃饭”。
因此我们的重点应该是总结、培养自己的各种“习惯”。当一切成为一种下意识的举动时,你自己的“修为”就又上了一个新的台阶。
其实,在我看来,生活就是在培养一种种新的习惯,如果把根据结果修订习惯也变为一种习惯,那就是一种真正意义上的“习惯”(比如,朋友。如果根本不相往来的话,那根本不算是朋友;但如果你和他的相处已经成为一种“习惯”后,你会发现他才是你真正的朋友,他已经成为你生活的一个部分)。
文摘插图:

21.3.5系统运行环境
1.开发环境
本系统计划使用VisualStudio.NET 2005作为开发工具,编程语言是C#,编程技术是.ASRNET。
使用VS.NET的最大优点是容易上手,开发效率高,很多框架代码都由VS.NET。自动完成。
使用C#,是因为它是微软为.NET平台量身定做的程序语言,既拥有C++的强大的功能又有Visual Basic简易的特性,它在带来对应用程序的快速开发能力的同时,并没有牺牲C与C++程序员所关心的各种特性,C#忠实地继承了C和C++的优点。可以说,C#是最能够体现.NET优势的语言。
相对于ASP来说,ASRNET最大的特点是编译执行,而不是ASP的解释执行,这样使得整个程序的执行效率大大增加。同时由于ASP.NET。是建立在.NET框架之上的,因此.NET的各种优点都可以使用。同时由于采用了CodeBehind技术,它的程序代码与页面标识可以完全剥离,不会混合在一个页面上,这样便于程序员修改。