第一图书网

软件开发这点事儿

邵志东 电子工业出版社
出版时间:

2009-3  

出版社:

电子工业出版社  

作者:

邵志东  

页数:

294  

Tag标签:

无  

前言

  计算机研究所研究员  给程序员的一份信  关于学习,有些感受和大家交流。  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、数据库、网络等,选择网络的可能就比选择数据库的竞争力强些(特别是在网络编程比较火的现在)。  对于我们,我感觉还是先“求精”,有了一技之长,然后在这个基础上拓展自己掌握知识的范围。  但最重要的还是要逐渐从“靠技术吃饭”转到“靠思想吃饭”。  因此我们的重点应该是总结、培养自己的各种“习惯”。当一切成为一种下意识的举动时,你自己的“修为”就又上了一个新的台阶。  其实,在我看来,生活就是在培养一种种新的习惯,如果把根据结果修订习惯也变为一种习惯,那就是一种真正意义上的“习惯”(比如,朋友。如果根本不相往来的话,那根本不算是朋友;但如果你和他的相处已经成为一种“习惯”后,你会发现他才是你真正的朋友,他已经成为你生活的一个部分)。

内容概要

  《软件开发这点事儿:软件开发工具手册》中,读者将会找到这些问题的答案。在《软件开发这点事儿:软件开发工具手册》的开章,读者可以了解到作为一个软件程序员需要掌握的专业和素质技能,并介绍了软件程序员的职业发展方向;  在《软件开发这点事儿:软件开发工具手册》知识篇、工具篇中,读者可以学习到软件开发的精髓:软件开发过程中所涉及的相关知识、需要掌握的相关工具。  利用《软件开发这点事儿:软件开发工具手册》的介绍,读者可以快速掌握这些开发工具;最后,在《软件开发这点事儿:软件开发工具手册》的模板篇、规范篇,读者可以惊喜地找到非常实用的软件开发模板和项目组建设所需要的规范文档。  通过《软件开发这点事儿:软件开发工具手册》的帮助,相信广大读者能快速走上真正的软件开发之路!  《软件开发这点事儿:软件开发工具手册》非常适合软件程序员或有志于成为软件程序员的读者阅读。软件技术和编程语言的发展日新月异,如何能在如此快速的技术革新中把握技术发展趋势,掌握软件开发的精髓;掌握一门编程语言就是程序员了吗?如何能够成为一名优秀的程序员?作为一名程序员,职业发展路在何方……在《软件开发这点事儿:软件开发工具手册》中,读者将会找到这些问题的答案。

作者简介

  邵志东,计算机软件硕士。历任北大方正电子有限公司项目开发经理、新东方IT教育教学部经理、北京新科海学校副总经理。  拥有近15年的软件设计、需求分析和项目管理、编程经验,参与过国内外的众多项目开发,熟悉整个软件项目管理流程,对.Net平台开发有着特别深入的研究。  有近十年微软产品技术讲座的经验;曾经为各行业企业单位讲授过上千场微软技术培训课程。在多年教学同时,长期专注基于微软产品的二次开发及解决方案,曾为多个大型企业实施及开发过百个基于微软产品平台的系统,有非常丰富的项目开发及实施经验。  从2005年3月起,受邀成为微软中文网络广播MsDNWebcast特约讲师,至今累计授课近百次。主讲了《ASP.NET实用编程系列》、《.NETWindows编程系列》、《ADo.NET2.O系列》等课程。被评为“2006年微软中文网络广播最佳讲师”,新作《.NET编程这点事儿》即将出版。

书籍目录

第1篇 知识篇第1章 恭喜你,成为软件程序员 21.1 软件程序员专业技能 21.1.1 专业技能检核表 21.1.2 软件程序员岗位技能图 41.2 软件程序员素质技能 41.2.1 软件程序员的素质技能 41.2.2 高级软件程序员的素质技能 51.3 软件程序员职业发展图 61.3.1 软件企业的人才类型和素质结构关系 61.3.2 高级技术人才理想成长路径 71.3.3 高级管理人才理想成长路径 71.3.4 高级综合人才理想成长路径 8第2章 软件开发流程 92.1 项目还是产品——程序员心中的痛 92.2 软件开发流程 102.2.1 项目开发流程 102.2.2 产品开发流程 112.3 标准还是效率——痛苦的抉择 112.3.1 质量/过程标准的来源 112.3.2 标准能做到什么和不能做到什么 122.3.3 质量标准和过程控制有什么用 122.3.4 软件开发过程中如何应用这些标准 13第3章 可行性研究 143.1 可行性分析的要素 143.2 市场可行性分析 153.3 政策可行性分析 153.4 技术可行性分析 153.5 成本—收益分析 163.6 SWOT分析 163.6.1 竞争优势分析 173.6.2 竞争劣势分析 173.6.3 外部机会分析 183.6.4 外部威胁分析 183.6.5 SWOT核心问题 19第4章 需求分析 204.1 需求分析的重要性 204.2 需求分析为什么困难 204.3 需求分析基本任务 214.4 需求分析的结果 224.5 需求分析阶段工作重点 224.6 UML和Rational Rose 224.7 Microsoft Visio 23第5章 系统设计 245.1 系统设计工作流程图 245.2 面向对象的设计方法 255.2.1 面向对象的概念 265.2.2 面向对象设计方法目标 295.3 三层应用程序模型 295.4 函数、对象和组件 305.4.1 函数和过程 305.4.2 类和对象 305.4.3 组件 305.5 系统设计内容 315.5.1 数据库设计 325.5.2 界面设计 425.5.3 模块设计 465.5.4 数据结构和算法设计 485.5.5 OOP(Object Oriented Programming)设计方法步骤 49第6章 编码 506.1 编程语言和开发工具 506.1.1 编程语言 506.1.2 开发工具 526.2 网络编程必备知识 536.2.1 HTML/JavaScript 536.2.2 XML 536.2.3 WebService 546.2.4 Ajax 546.3 了解极限编程 556.4 编码规范 566.5 源代码控制 566.5.1 版本管理的必要性 566.5.2 常用源代码控制工具 576.5.3 源代码控制规范 58第7章 软件测试 597.1 软件测试基本概念 597.1.1 单元测试 607.1.2 集成测试 607.1.3 系统测试 627.1.4 性能、压力和负载测试 627.1.5 测试成本 637.1.6 黑盒测试和白盒测试 637.2 白盒测试用例 647.2.1 测试用例简介 647.2.2 白盒测试用例设计 667.2.3 测试用例设计步骤 677.3 软件测试工具 737.3.1 常见软件测试工具列表 737.3.2 常用单元测试工具介绍 74第8章 结项和产品化 768.1 安装盘制作 768.1.1 使用InstallShield 768.1.2 使用Visualstudio.NET发布程序 768.1.3 安装盘制作规范 778.2 软件加密 778.2.1 软件加密概述 778.2.2 常见的软件加密技术 778.3 说明书制作 798.3.1 Word书籍版说明书 798.3.2 电子说明书制作 79第9章 项目组建设 819.1 项目组守则 819.2 常用代码 819.3 编程技巧 829.4 编写工作计划总结 829.5 代码量统计工具 83第2篇 工具篇第10章 Rational Rose实例入门 8610.1 创建工程 8610.2 建立Actor 8810.3 创建Use Case 8910.4 用顺序图描述Use Case 9010.5 建立协作图 9210.6 建立类 9310.7 实现模型 9410.8 UML符号和图形 95第11章 Power Designer实例入门 9911.1 创建项目工程 9911.2 建立概念数据模型 10011.2.1 创建实体 10011.2.2 添加属性 10111.2.3 定义属性的标准检查约束 10211.2.4 定义实体的主、次标识符 10311.2.5 创建其他实体 10511.2.6 建立联系 10711.3 生成物理数据模型 11011.4 生成数据库建库脚本 11211.5 生成关系数据库 11311.6 Power Designer的4种模型文件 113第12章 NUnit实例入门 11512.1 NUnit下载安装 11512.2 创建测试项目 11612.3 添加NUnit引用 11612.4 创建测试用例 11712.5 创建被测试类 11812.6 编译项目 11812.7 运行图形测试工具 11812.8 修改测试 11912.9 异常测试 120第13章 JUnit实例入门 12113.1 JUnit下载和安装 12113.2 创建测试项目 12213.3 添加JUnit引用 12213.4 创建被测试类 12413.5 创建测试用例 12513.6 创建测试单元 12613.7 运行测试 12713.8 JUnit结构说明 128第14章 InstallShield实例入门 12914.1 创建安装项目 12914.2 安装程序语言设计 13014.3 应用程序信息设置 13114.4 设置程序运行条件 13114.5 设定安装架构 13114.6 添加要发布的网站文件 13114.7 添加程序快捷键 13214.8 添加注册表修改 13314.9 安装界面设置 13414.10 多语言字符串修改 13414.11 生成安装 13414.12 运行安装文件 13514.13 添加数据库支持 13614.14 直接附加数据库 14114.15 程序卸载 141第15章 “VisualStudio.NET部署应用程序”实例入门 14215.1 创建要发布ASP.NET Web应用程序 14215.2 创建安装程序类 14315.3 创建包含SQL语句的文本文件以创建数据库 14315.4 将代码添加到安装程序类中以阅读文本文件 14515.5 创建部署项目 14715.6 将主程序项目的输出添加到部署项目中 14815.7 创建自定义安装对话框 14815.8 创建自定义操作 14915.9 程序部署 150第16章 HLP文件制作实例入门 15116.1 RTF源文件制作 15116.2 编译成为HLP文件 15516.3 制作主题帮助文件(CNT文件) 15816.4 把CNT文件加入工程 159第17章 CHM文件制作实例入门 16117.1 材料准备 16117.2 创建工程 16117.3 设置CHM文档的标题 16417.4 修改文档对话框属性 16717.5 制作目录 16817.6 添加目录 17017.7 制作索引 17217.8 添加索引 17317.9 说明 174第18章 Visual SourceSafe实例入门 17518.1 软件安装 17518.2 服务端创建VSS数据库和用户 17518.3 客户端选择数据库 17718.4 添加项目到VSS数据库 17818.4.1 通过SourceSafe添加项目 17918.4.2 通过VisualStudio.Net2005集成开发环境添加项目 18018.5 在客户端VS.NET开发环境中使用VSS 18218.6 修改历史查看 18418.7 用户权限修改 185第19章 CVS实例入门 18719.1 安装CVSNT 18719.2 服务端创建仓库和用户 18919.3 添加项目到CVS服务器 18919.4 在Eclipse客户端开发环境中使用CVS 19319.5 VS.NET中集成CVS 19619.6 CVS和VSS比较 199第20章 Visio实例入门 20020.1 建立新文档 20020.2 创建流程图 20120.3 保存 20420.4 自定义形状的制作 204第3篇 实例篇第21章 网上商城系统开发实战 20821.1 项目概述 20821.2 可行性分析 20921.2.1 系统目标 20921.2.2 开发的可行性分析 20921.3 需求分析 21021.3.1 确定用户类型 21021.3.2 用户工作流程 21021.3.3 软件功能 21221.3.4 UML图 21321.3.5 系统运行环境 21421.4 系统设计 21521.4.1 数据库设计 21621.4.2 页面设计 22821.4.3 页面关系图 23021.4.4 界面设计 23121.5 编码和测试 24421.5.1 公共模块设计 24421.5.2 源代码控制 25421.5.3 单元测试工具 25421.5.4 系统源代码 25421.6 制作安装盘 25421.7 本章源文件 254第4篇 模板与规范篇第22章 软件开发模板 25622.1 软件立项申请书 25722.2 可行性分析报告 25922.3 立项评审报告 26022.4 用户需求说明书 26122.5 需求分析评审报告 26522.6 总体设计书 26622.7 开发策划书 26622.8 详细设计书 26822.9 编码计划 26820.10 测试方案 26920.11 测试报告 27022.12 软件开发结项报告 272第23章 项目组规范 27323.1 项目组工作守则 27323.2 C#编码规范 27623.2.1 命名 27723.2.2 代码格式书写规范 27823.2.3 其他 28023.3 SourceSafe使用规范 28123.4 数据库命名规范 28323.5 用户界面设计规范 28623.6 安装盘制作规范 290

章节摘录

  2.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技术,它的程序代码与页面标识可以完全剥离,不会混合在一个页面上,这样便于程序员修改。

媒体关注与评论

  “对于有志于成为一名优秀程序员的大学毕业生来说,这本书是必读之物。它不仅详细讲解了程序员需要具备的专业技能、素质技能,还介绍了程序员的职业生涯前景。”  ——周怀军  就业教育专家 中国就业促进会理事  “这是一本很特别的讲述软件开发的书,它不仅介绍了软件开发过程中程序员所要具备的各种知识,更详细介绍了Rose、PowerDesigner等常用工具的使用,并且还提供了各种模板和规范,使得读者进行软件开发变得事半功倍。”  ——汤涛  技术专家原微软(中国)有限公司政府行业高级咨询顾问  人才的发展应该是全方位的,一个职业化员工不仅要具备“硬技能”——专业技能,更需要具备“软技能”——素质技能。从人才培养的角度上看,具备本书所述所有技能的程序员一定是受企业欢迎的。  ——陈昉  原惠普远东区培训发展总监  程序员是一个综合性的岗位,除了要掌握编程语言外,软件开发过程中还要涉及其他多方面的技能。不仅要注重专业技能的积累,更主要的是培养一种专业的精神。  ——郭宗明  博士生导师 北京大学


编辑推荐

  《软件开发这点事儿:软件开发工具手册》特色:  ·全面反映新大纲:在参考和分析历年考试试题的基础上,着重对最新版的考试大纲规定的内容有重点地进行细化和深化。阅读本丛书,就相当于阅读了一本详细的考试大纲的精解。  ·试题最新最全:将近几年考试的试题一网打尽,从而便于读者摸清考试新趋向,紧跟考试动态,熟悉考试方法、试题形式,了解试题的深度和广度,以及内容的分布。  ·名师精心锤炼:由名师主笔,亲授解题技巧。内容全面翔实,文字表达简洁明了,层次清晰,结构严谨,特别突出了解题方法,强调知识的综合运用与提高,导向准确。  ·题型分析透彻:重点定位在考试知识点的介绍和解题方法与技巧上,不仅授人以“鱼”,更授人以“渔”,对例题进行了细致深入的分析、完整的解答和点评扩展,能让读者达到触类旁通、举一反三之功效。  ·全真试题实战:不但配有例题分析,并给出了详细的试题分析与解答,便于读者实战演练,自测与提高。网络工程师考试辅导指定教材,基于前两版再度精心修订精研最新版考纲,涵盖最新网络工程师考试所有知识点深入历年考试真题,详尽分析近年最新考题中的重点和难点。特别制作:历年考点分布大表,高度概括考试要点,帮助您归纳、总结、记忆特别提醒:书中特殊标记考试关键点、重点、难点,引起考生高度注意。

图书封面

图书标签Tags

广告

下载页面


软件开发这点事儿 PDF格式下载



  《软件开发这点事儿:软件开发工具手册》中,读者将会找到这些问题的答案。在《软件开发这点事儿:软件开发工具手册》的开章,读者可以了解到作为一个软件程序员需要掌握的专业和素质技能,并介绍了软件程序员的职业发展方向;  在《软件开发这点事儿:软件开发工具手册》知识篇、工具篇中,读者可以学习到软件开发的精髓:软件开发过程中所涉及的相关知识、需要掌握的相关工具。  利用《软件开发这点事儿:软件开发工具手册》的介绍,读者可以快速掌握这些开发工具;最后,在《软件开发这点事儿:软件开发工具手册》的模板篇、规范篇,读者可以惊喜地找到非常实用的软件开发模板和项目组建设所需要的规范文档。  通过《软件开发这点事儿:软件开发工具手册》的帮助,相信广大读者能快速走上真正的软件开发之路!  《软件开发这点事儿:软件开发工具手册》非常适合软件程序员或有志于成为软件程序员的读者阅读。软件技术和编程语言的发展日新月异,如何能在如此快速的技术革新中把握技术发展趋势,掌握软件开发的精髓;掌握一门编程语言就是程序员了吗?如何能够成为一名优秀的程序员?作为一名程序员,职业发展路在何方……在《软件开发这点事儿:软件开发工具手册》中,读者将会找到这些问题的答案。


  有点标题党的感觉,但不否认本身在序言和结尾处的苦口婆心和开发理念的推广,我觉得这是本书的精华,但可能刚看这本书的人不太容易消化理解到,呵呵。
  
  主要看了第一,二章和最后,谢谢!
  
  --所有书评都基于我的知识储备和立场做的,谢谢!


  本书解决了和程序员相关的两个难题:
  第一:一名合格的,优秀的程序员需要掌握哪些知识。软件开发有如在大海中航行,从立项的此岸到产品交付的彼岸,期间会遇到礁石,险滩,暗流。程序员就是航行中的水手,要带领船只到达胜利的彼岸,既需要技术,更需要技巧。本书不但教会水手航行的基本技能,更是水手航行的指南针,在烟波浩淼的大海中为水手指明正确的方向。
  
  第二:作为一个程序员,该如何规划自己的职业发展道路?我相信这是每一个从业多年的程序员都会考虑的问题。从“靠技术吃饭”转换到“靠思想吃饭”,从单纯的体力劳动转换到脑力劳动,在关键的时刻能轻松的转身,看似容易,若无提早规划,只能是一场空。
  
  很多道理只有在经历之后才能明白。读读这本书,你会少走弯路;读读这本书,你的职业发展道路会更顺畅。
  


感谢
”一名合格的,优秀的程序员需要掌握哪些知识“ 冲这条我得看看
“作为一个程序员,该如何规划自己的职业发展道路?” 相信未来路上的我会需要


相关图书