软件工程及软件方法学
-
数据结构导学苏光奎,李春葆编著本书汇集作者多年讲授“数据结构”的教学经验,结合计算机专业的相关教学大纲编写而成。全书共分8章,详细介绍数据结构的基本概念、基本算法以及线性表、栈和队列、串和数组、树和二叉树、图、排序、查找等内容。本书注重实用性和可读性,对概念原理的阐述准确、精炼,通俗易懂;在介绍数据结构的基本运算时,不仅介绍算法思想,更注重程序的实现过程,并提供了各种数据结构运算算法的源程序,有助于读者水深刻领会数据结构的内涵。本书还在最后提供了6个实习题。本书面向欲通过“数据结构”来提升自己程序设计能力的读者,也可作为计算机专业的成人教育、自学考试和各类培训班的教材。 -
数据结构李大友主编;彭波编著本教材是《21世纪计算机专业大专系列教材》之一。全书共分9章,第1章综述数据、数据结构、算法描述、算法分析,以及数据结构与其他课程之间的关系等。第2章至第7章介绍了基本的数据结构,如线性表、栈、队列、串、数组、广义表、材、二叉树及图等,分别讨论了数据的逻辑结构和存储结构,以及相应运算的算法。第8章和第9章为查找和排序,介绍了常用的几种查找方法和内部排序方法。教材中使用类C语言作为算法描述语言,且所有算法都可以在任何一种C语言的开发环境中实现。在随书的配套光盘中可以看到这些算法的C语言程序。本书中所介绍的数据结构概念清楚,内容丰富。为了有助于学生加深对基础理论知识的理解,培养实际应用的能力,各章(除第1章外)都配有与该章内容相关的操作应用举例,且配有大量习题。本书可作为高等院校计算机专业大专数据结构课程的教材,也可作为非计算机专业本科生的教材。 -
信息系统建模张维明主编本书全面论述了信息系统建模的内容,主要包括信息系统建模的基本概念、基本原理、方法和工程技术与工具。全书共分10章。第1章介绍模型与信息系统的基本概念和相互关系。第2章介绍面向信息系统的建模以及建模的过程。第3章介绍面向需求分析的结构化分析方法。第4章重点论述使用实例驱动的需求分析方法。第5章介绍面向对象的基本概念和几种经典的方法。第6章介绍面向逻辑建模的静态建模方法。第7章介绍对象的行为描述。第8章介绍信息系统建模方法UML。第9章介绍对多主体系统的UML建模。第10章介绍数据建模。本书可作为高等院校信息工程专业或信息管理专业的研究生教材,也可以供信息系统项目管理人员和系统分析人员参考。 -
软件开发的科学与艺术陈宏刚 等著前言:《软件开发的科学与艺术》成书的原因与过程微软亚洲研究院成立三年多来,不但在学术领域取得了令人瞩目的成就,在促进亚太地区学术交流、推动先进学术思想在本地区传播、帮助优秀的软件技术在本地区的开发和应用方面倾注了大量心血,进行了许多不凡的工作。在中国,我们一直把支持教育、帮助中国培养高水平的计算机人才视为重要工作之一。《软件开发的科学与艺术》一书取材于2000年秋季在北京大学所开设的一门选修课。当时,北京大学计算机系主任李小明老师向我们建议,希望我们能在北京大学讲一讲"微软的软件是怎样写的,微软的研究是怎样做的?"。在国内工作三年多来,有机会与众多教育界及产业界人士探讨一些计算机产业发展的问题,我们都强烈意识到:中国学生所需要的不仅仅是一些编程的技巧,更需要一些程序设计、项目管理和从事研究的知识和经验。在这一考虑下,我们邀请微软总部以及微软亚洲研究院的多位资深研究人员、程序开发人员和项目经理在北大做了题为《软件开发的科学与艺术》(The Science And Art of Software Development)的系列讲座,并为此讲座编写了专门的课程设计作为实践环节,希望学生们能够从我们的亲身体会以及实践经验中学习到一些实实在在的东西。讲座异乎寻常的成功。未能参加讲座的学生和老师们再三呼吁我们将讲座的内容编辑成册。强烈的责任感和使命感让我们认识到,这是一项非常有意义的工作。不管需要投入多大的心力和资源,我们也要成就此书,让更多的高校师生和软件业从业人员分享到微软公司多年来积累的软件研发和管理经验。《软件开发的科学与艺术》于2001年5月正式开始整理和编辑。在长达一年的整理和编辑过程中,正值中国政府发布鼓励软件产业政策,在全国35所高校试办示范性软件学院。许多老师在读完初稿后认为此书非常适合做软件学院的教材或参考书。于是,我们在北大课程的基础上进行了大规模的内容扩充,加入了全球软件产业发展趋势、中国软件产业发展机会与挑战、微软二十几年发展过程中总结并形成的软件产品开发和项目管理经验、现代软件开发对人才的要求以及微软产品开发团队的详细介绍的章节。本书还用大量、详尽的案例揭示了在软件开发过程中可能遇到的问题和解决的方法。《软件开发的科学与艺术》一书是集体智慧和共同努力的结晶:我很高兴能将近年来我对中国软件产业发展的一些看法和大家一起分享。凌小宁博士从回到中国帮助创办微软中国研究院到调回微软总部担任项目经理,一直热切关注着中国软件业发展的状况。此次,他将多年来在软件设计、软件开发和项目管理方面的经验写到了书中。张益肇博士结合自己在美国成功创办语音门户Nuance的经验,介绍了有关将研究成果转化成产品的经验。微软亚洲研究院新技术开发部的林斌结合自己在微软及其他美国公司多年的软件开发经验,总结了写好代码的秘诀;陈宏刚博士结合自己在微软多年的软件测试经验,系统地总结了软件测试的过程和方法;熊明华在微软的产品部门任项目经理多年,当他得知此书的写作消息后,在繁忙的工作之余,总结了自己对项目管理的经验和体会,并对书稿进行了多次认真的修改。感谢本书编写组织委员会的成员,包括微软公司马歆、陈宏刚,电子工业出版社郭立,是他们的辛勤劳动推动了本书的顺利面世。感谢俞俊平和余安萍,他们在数月间认真的整理素材才使得本书的面世成为可能,本书的字里行间都凝聚了两位整理者的心血。感谢微软公司的崔力红小姐、郝海洋先生、彭云峰先生,他们为本书的部分章节提供了部分文档和案例,增强了本书的可读性和实际应用性。《软件开发的科学与艺术》的内容软件开发是一门科学,更是一门艺术。如何学习和借鉴微软公司在软件开发方面的成功经验、了解它独特的企业文化,对于中国软件企业的未来发展可能有所裨益。《软件开发的科学与艺术》一书将收录以下内容:1.The Challenges and Opportunities of the Global Software Industry 全球软件产业现状、趋势与挑战2.Talent Beyond Technology : What Kind of Talent We Need for Modern Software Development现代软件开发对人才的要求3.From Research to Products 从研究到产品4.Software Development at Microsoft 微软的软件开发5.Source of the Software Design软件设计之源6.Program Management 项目管理7.Things you can Do to Write Better Code 写好代码的十个秘诀8.Secrets of Software Performance如何提高程序的性能9.Basic of Software Testing 软件测试基础10.Write Good Testing Documents如何撰写测试文档本书的意义具有极高的实践性和实用价值是本书的主要特点。通过阅读本书,我们希望大家:× 学会如何在现代IT企业的文化环境中做一个成功者× 学会如何做世界级的、高质量的研究× 学会如何创建大规模的软件产品如果你想:× 成为一个成功的工程师× 成为一个成功的研究人员× 成为一个成功的管理人员× 为一个成功的软件公司工作你会发现这本书的内容对你是非常有帮助的。《软件开发的科学与艺术》作为第一本由微软员工编写、介绍微软公司软件研发经验的中文书籍,将成为中国软件教育和软件企业很好的参考资料。我想借此机会代表所有在微软工作的中国工程师,表达对中国软件产业健康发展的诚挚祝福;表达微软亚洲研究院对支持中国软件教育事业的诚意和长期的承诺。我们将进一步通过教师培训、课程建设、对软件学院的支持等多种形式,为中国的软件事业发展尽一份力。微软亚洲研究院院长、首席科学家 张亚勤本书凝聚了微软专家多年研究和工作中获得的宝贵经验,是特为每个关注软件开发的人而准备的一本书。书中,这些微软专家现身说法,提供了许多成功亦或失败的案例,并进行深刻中肯的剖析,为读者展现微软企业文化,以及微软的软件开发过程和项目管理等方面的内容。相信这些内容能够带给读者许多思想和观念上的重塑,从而对我们的后继学习和工作产生重要的影响。重要的是通过学习和借鉴软件巨人─微软的成功经验,从而推动中国现代IT企业的发展和进步。不论是软件开发人员,还是项目管理人员都将从中获益匪浅。本书将是每个从事软件开发的人员案头不可或缺的珍藏书。 -
软件需求管理(美)Dean Leffingwell,(美)Don Widrig著;蒋慧,林东译;蒋慧译近年来,需求管理在软件项目中开始占据显著地位并且得到人们的普遍重视,本书可以说是第一本关于需求管理的实用手册。全书语言平实生动,并且采用大量实例和图表,以作者亲历的项目开发为例,全面探讨了软件开发过程中与需求有关的活动。本书是作者对近二十年的软件工程、需求工程、面向对象等领域成熟的思想、方法、技术及实践经验的总结,全书内容围绕着作者认为团队在需求管理中必须掌握的六大重要的团队技能进行组织和展开,这六大技能是:分析问题、理解用户需要、定义系统、管理广度、细化系统定义和构建正确系统。??本书提出了应对软件项目开发中需求管理挑战的全方位解决方案,对于实际的需求管理具有非常强的指导意义和实用价值,本书可作为计算机专业高年级本科生及研究生学习软件需求管理的教材,也可作为软件开发人员开发过程中随时参考的手册。 -
软件工程王立福,张世琨,朱冰编著《软件工程(第2版)》是在北京大学计算机科学技术系使用《软件工程》教材的基础上,根据全国高等教育自学考试指导委员会制定的《软件工程考试大纲》的要求,由主讲、主考教师编写而成的,既是北京大学计算机系本科生指定教材,也是北京市高等教育自学考试指导定教材。《软件工程(第2版)》结合国内外软件工程的发展,特别是国家“八五”攻关实践,详细地讲述了软件工程的基本内容,包括基本概念、基本模型、基本方法及相应的支持工具。《软件工程(第2版)》注重基础知识的系统性,同时注意选材的先进性,内容全面、层次清楚。 -
CMM软件过程改进指南(美)Joseph Raynus著;邱仲潘等译;邱仲潘译本书是用SEI的能力成熟度模型(CMM)改进机构软件开发过程的实用指南,向软件项目经理和管理员提供CMM软件过程改进的实用知识,并介绍软件寿命周期每个阶段的实现方法。本书强调软件过程定义、有效利用软件度量和常识软件项目管理。这种集成方法能帮助专业人士用CMM作为工作准则,不断实现软件过程改进。前言在我们的生活中,有时会遇到特别的人物,发现某种产品,从而改变我们对某个东西的看法。对我来说,这个人就是Joe Raynus,这个产品就是他实现的软件工程衡量标准。我在20世纪80年代末遇到他,听说他开发了一个令人不可思议的产品,可以自动生成软件衡量标准,帮助分析结果。毫无疑问,经过几个星期的讨论与评估,我不仅理解了这个产品及其工作原理,而且理解了这个人及其思考方法。简而言之,他可以把每个复杂的过程与计算简化成我能方便地理解和交流的管理术语与图表。许多软件专家还在把软件工程看成一门艺术,而Joe已经可以向产品经理说明如何把原先的知识与软件工程原则联系起来了。Joe的工作不断改进,Carnegie Mellon大学软件工程学会(SEI,Software Engineering Institute)收集和建档的知识也在不断?慕4邮鹿廊砑钅康娜硕蓟辜堑茫琒EI的能力成熟度模型(Capability Maturity Model)是用于帮助政府项目经理更好地理解参与政府工作的公司具有的成熟程度,但其大多数内容要求了解软件开发活动中如何出错,为何出错。将我在政府部门遇到的问题与在商业化市场中遇到的问题相比,我发现问题是相同的。速度、质量、要求满意度、测试方法、配置管理、项目计划与监管、成本、风险管理和预见性在小项目和大型政府软件开发中都要遇到。SEI的知识和Joe的智慧能帮助任何软件公司更好地建立世界一流的产品。他的方法简单而直接,他的例子非常明确,他的实践极为丰富。商业部门的同行在机构中领导软件改进活动时应密切关注CMM和Joe的作品,也许你还不知道,你的许多竞争对手已经实现了能在时间和质量上占优势的关键过程。Michael J. Prowse 质量与客户服务部主任Sun公司Solaris软件公司序十五年前,老板的老板把我叫到办公室,提出了三个“简单”问题:1. 支持与维护软件产品的费用为什么这么高?2. 产品可靠性如何?3. 一个软件故障的平均成本如何?为了回答这些问题,我成了查错者和制错者。几年之后,我自己开了一家公司,主要产品是自动生成软件衡量标准的工具。当时我是个经理,是软件厂商。生活中有时需要进行一些艰难的决定。我离开自己创办的公司和倍感亲切的产品,回到行业中。我看到自己的使命就是帮助客户回答上述问题。不久,我发现,要了解这些问题,就要“深入基层,了解民情”。即使是一组软件衡量标准,也不可能对这些问题提供现成的方案。每个客户的情形各不相同,除非了解特定问题,否则不可能提出建议。没有像了解美国空军一样了解软件管理问题的机构。大约有一年时间,我曾是源选择评审委员会(Source Selection Evaluation Board,SSEB)的技术顾问。审查各种提案,很好地了解外部看到的潜在问题,这些问题的影响程度,客户有什么预期,软件生产过程可能遇到怎样的问题。之后,我成为了一名客户。结束了在SSEB的工作之后,我花了几年的时间帮助我的客户管理和控制他们的软件问题。我将软件开发过程中遇到的问题组织起来,供客户参考。有时,很明显的信息被隐藏了起来。我已经体验了他们的生活,并帮助他们解决了问题。后来我做了顾问。了解能力成熟度模型(CMM)对我很重要。我在评审小组期间进行的几次评审使我对软件管理问题有了更深的了解。与此同时,我知道有一种方法可以帮我在软件项目管理的迷途中导航。解释的灵活性保证了导航的自由度。我的解释来自下列简单的观点:做软件行业中可行和正确的事,保证软件更好、更成熟。我开始用CMM作为参考指南,用软件衡量标准作为软件过程改进工作的基础与粘接剂。我把这个方法介绍给客户,他们使用CMM,帮我改进CMM与软件衡量标准。我发现,任何事情的最佳做法是自己感到合理的方法。说明本书用苏菲的故事,讲述既聪明又愚蠢的毛拉。苏菲认为,直觉是知识的惟一真正准则,并用这些故事作为例证。这些故事适用于许多不同情形,包括软件管理过程。苏菲的故事来源于Indries Shah的《The Pleasantries of the Incredible Mulla Nasrudin》(ARKANA Penguin图书出版公司,1993年再版)。“什么是命运?”一位学者问毛拉。“无穷无尽相互交织的事件,每个事件都是相互影响的。”“这个答案并不好,我信的是因果。”“好的,”毛拉说,“你看。”他指向街上的人群,“那人就要送上绞刑架了,是别人给他银子,让他买了匕首,杀了人,还是别人看到他这么干,还是因为没有人阻止他?” -
软件测试(美)Ron Patton著;周予滨…等;周予滨译《软件测试》是一本讲解软件测试的入门书,借助WindoWS95/98和 Windows NT/2000附带的计算器、记事本和写字板等常用小应用程序方法介绍了软件测试的通用方法,可以用于测试任何计算机软件。全部内容包括基本的和高级的软件测试技术、软件测试在软件开发过程的运用、利用自动化方法提高测试效率、计划和编制测试目标、报告发现的问题、评估测试目标和产品进度、测试和质量认证的区别,以及软件测试员职业指导。《软件测试》适合对软件测试感兴趣的学生和爱好者。同时对软件开发小组中希望增强知识并了解软件测试的程序员、软件工程管理员具有指导意义。 -
软件工程学教程陈明编著本书主要介绍了软件工程学及应用的有关内容,主要包括可行性研究、需求分析、概要设计、详细设计、编码、测试、维护和有关软件开发工具与软件开发环境方面的内容。为了保持教材内容的先进性,本书还介绍了面向对象软件工程学方面的内容和较流行的PowerDesigner软件开发工具。本书可作为高等院校相关专业的教材,也可作为从事软件开发与应用的工程技术人员的参考书。 -
别墅建筑建模实例梁栋编著本书介绍了一些具有代表性的别墅实例,如欧美式别墅与加拿大别墅。在本书中,读者不但可以学会如何利用3ds max创建别墅,还能了解到每个别墅的构造与特点,别墅与别墅之间的共同点与不同点。在创建模型时,一定要抓住每个模型的“发光点”,就会创建出比书中更好的模型。在书中,作者尽量以简洁、明了的语句并加以图片的讲解,来讲述每个模型的创建过程。使读者在创建时很轻松的掌握并学会如何创建别墅模型。书中的“指点”可以使读者在操作过程中避免误操作。本书中的所有实例代表了建筑模型失败方面的发展趋势。本书不仅是建筑设计者、建筑系学生心备的工具书,同时也可以作为相关专业的师生自学、教学参考书和社会电脑设计培训教材。
