軟件開發這點事兒

所属分类:軟件工程及軟件方法學  
出版时间:2009-3   出版时间:電子工業出版社   作者:邵志東   页数:294  

前言

  計算機研究所研究員  給程序員的一份信  關于學習,有些感受和大家交流。  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等常用工具的使用,并且还提供了各种模板和规范,使得读者进行软件开发变得事半功倍。”  ——汤涛  技术专家原微软(中国)有限公司政府行业高级咨询顾问  人才的发展应该是全方位的,一个职业化员工不仅要具备“硬技能”——专业技能,更需要具备“软技能”——素质技能。从人才培养的角度上看,具备本书所述所有技能的程序员一定是受企业欢迎的。  ——陈昉  原惠普远东区培训发展总监  程序员是一个综合性的岗位,除了要掌握编程语言外,软件开发过程中还要涉及其他多方面的技能。不仅要注重专业技能的积累,更主要的是培养一种专业的精神。  ——郭宗明  博士生导师 北京大学

编辑推荐

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

图书封面




    軟件開發這點事兒下載



用户评论 (总计4条)

 
 

  •       《軟件開發這點事兒:軟件開發工具手冊》中,讀者將會找到這些問題的答案。在《軟件開發這點事兒:軟件開發工具手冊》的開章,讀者可以了解到作為一個軟件程序員需要掌握的專業和素質技能,並介紹了軟件程序員的職業發展方向;  在《軟件開發這點事兒:軟件開發工具手冊》知識篇、工具篇中,讀者可以學習到軟件開發的精髓︰軟件開發過程中所涉及的相關知識、需要掌握的相關工具。  利用《軟件開發這點事兒:軟件開發工具手冊》的介紹,讀者可以快速掌握這些開發工具;最後,在《軟件開發這點事兒:軟件開發工具手冊》的模板篇、規範篇,讀者可以驚喜地找到非常實用的軟件開發模板和項目組建設所需要的規範文檔。  通過《軟件開發這點事兒:軟件開發工具手冊》的幫助,相信廣大讀者能快速走上真正的軟件開發之路!  《軟件開發這點事兒:軟件開發工具手冊》非常適合軟件程序員或有志于成為軟件程序員的讀者閱讀。軟件技術和編程語言的發展日新月異,如何能在如此快速的技術革新中把握技術發展趨勢,掌握軟件開發的精髓;掌握一門編程語言就是程序員了嗎?如何能夠成為一名優秀的程序員?作為一名程序員,職業發展路在何方……在《軟件開發這點事兒:軟件開發工具手冊》中,讀者將會找到這些問題的答案。
  •       有點標題黨的感覺,但不否認本身在序言和結尾處的苦口婆心和開發理念的推廣,我覺得這是本書的精華,但可能剛看這本書的人不太容易消化理解到,呵呵。
      
      主要看了第一,二章和最後,謝謝!
      
      --所有書評都基于我的知識儲備和立場做的,謝謝!
  •       本書解決了和程序員相關的兩個難題︰
      第一︰一名合格的,優秀的程序員需要掌握哪些知識。軟件開發有如在大海中航行,從立項的此岸到產品交付的彼岸,期間會遇到礁石,險灘,暗流。程序員就是航行中的水手,要帶領船只到達勝利的彼岸,既需要技術,更需要技巧。本書不但教會水手航行的基本技能,更是水手航行的指南針,在煙波浩淼的大海中為水手指明正確的方向。
      
      第二︰作為一個程序員,該如何規劃自己的職業發展道路?我相信這是每一個從業多年的程序員都會考慮的問題。從“靠技術吃飯”轉換到“靠思想吃飯”,從單純的體力勞動轉換到腦力勞動,在關鍵的時刻能輕松的轉身,看似容易,若無提早規劃,只能是一場空。
      
      很多道理只有在經歷之後才能明白。讀讀這本書,你會少走彎路;讀讀這本書,你的職業發展道路會更順暢。
      
  •     感謝
    ”一名合格的,優秀的程序員需要掌握哪些知識“ 沖這條我得看看
    “作為一個程序員,該如何規劃自己的職業發展道路?” 相信未來路上的我會需要

类似《軟件開發這點事兒》的图书资源

 

計算機與互聯網 PDF免费下载,軟件工程及軟件方法學PDF免费下载。 计算机教程网 

计算机教程网 @ 2017