软件工程
2009-10
北京大学出版社
王立福 等编著
351
无
编写一本适合本科生学习的软件工程教材,实在是一件很困难的事情。其原因主要有三:一是软件工程这门课程所涉及的内容十分宽泛,既涉及技术层面,又涉及管理层面;既关联实际问题的理解和描述,又关联软件工具的使用;二是在社会需求的拉动下,软件工程技术发展非常迅速,新概念、新技术、新方法不断出现;三是作为一门技术学科,其内容具有很强的技术特征,而且仅仅走过了40余年的发展历程,与其他学科相比,例如数学、物理、化学以及建筑等,还是相当“年轻”的一门学科。因此,在教材内容的选取与组织方面,在有关概念的表述方面,实在是一种挑战。通过参与杨芙清院士主持的国家科技攻关项目,通过参与张效祥院士主编的《计算机科学技术百科全书》,通过参与国家有关标准规范的制定,特别是通过几年来的教学实践,对软件工程有关的知识还有些领悟,有所积累。在教材内容的选取方面,基本遵循以下两条原则:一是选取的内容能够有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实践和工程管理的能力;二是选取的内容基本上是基础性的,是比较“稳定”的,尽量介绍有关软件工程的国际标准,尽量讲解成熟技术。在教材内容的组织方面,依据内容选取的基本原则,基于对软件开发本质的认识,紧紧围绕软件开发,主要讲解了软件工程的两大技术问题,一是开发逻辑,二是开发途径。其中,开发逻辑涉及软件生存周期过程、工程中常用的软件生存周期模型——有关过程、活动和任务的组织框架,以及项目软件生存周期的规划与监控;开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。并且简单介绍作用于开发活动上的一些管理活动,其中重点介绍支持管理活动的一些基础性技术,例如规模、成本、进度估算等。
本书是在北京大学计算机科学技术系使用的《软件工程》(第二版)教材的基础上,结合IEEE最新发布的软件工程知识体系SWEBoK(software Engineering Body of Knowledge)和IEEE/AcM软件工程学科小组公布的软件工程教育知识体系SEEK(Software Engineering Education Knowledge),由主讲、主考教师编写而成的。本书既是北京大学计算机科学系本科生指定教材,也可作为其他高校的本科生教材及软件从业人员的参考书。 本书注重基础知识的系统性,并注重选材的先进性及知识的应用,有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实践和工程管理的能力。
第一章 绪论 1.1 软件工程概念的提出与发展 1.2 软件开发的本质 1.3 本章小结 习题一第二章 软件过程 2.1 软件生存周期过程 2.1.1 基本过程 2.1.2 支持过程 2.1.3 组织过程 2.1.4 软件生存周期过程以及角色和关系 2.2 软件生存周期模型 2.2.1 引言 2.2.2 瀑布模型 2.2.3 增量模型 2.2.4 演化模型 2.2.5 螺旋模型 2.2.6 喷泉模型 2.3 软件项目生存周期过程的规划与控制 2.3.1 概念:软件项目生存周期过程 2.3.2 软件项目生存周期过程的规划 2.3.3 软件项目生存周期过程的监控 2.4 本章小结 习题二第三章 软件需求与软件需求规约 3.1 需求与需求获取 3.1.1 需求定义 3.1.2 需求分类 3.1.3 需求发现技术 3.2 需求规约(SRS)及其格式 3.2.1 定义 3.2.2 基本性质 3.2.3 需求规约(草案)格式 3.2.4 表达需求规约(规格说明书)的三种风格 3.2.5 需求规约的作用 3.3 本章小结 习题三第四章 结构化分析方法 4.1 基本术语 4.2 模型表示 4.3 建模过程 4.4 实例研究 4.5 应用中注意的问题 4.6 需求分析的输出 4.7 需求验证 4.8 本章小结 习题四第五章 结构化设计 5.1 总体设计的目标及其表示 5.2 总体设计 5.2.1 数据流图的类型 5.2.2 变换设计与事务设计 5.2.3 模块化及启发式规则 5.2.4 实例研究 5.3 详细设计 5.3.1 结构化程序设计 5.3.2 详细设计工具 5.4 结构化方法小结 习题五第六章 面向对象方法——UML 6.1 表达客观事物的术语 6.1.1 类与对象 6.1.2 接口 6.1.3 协作 6.1.4 用况 6.1.5 主动类 6.1.6 构件 6.1.7 制品 6.1.8 节点 6.2 表达关系的术语 6.2.1 关联 6.2.2 泛化……第七章 面向对象方法——RUP第八章 软件测试 第九章 软件工程项目管理概述 第十章 软件开发工具与环境 第十一章 内容总结参考文献
插图:第一章 绪论正确认识软件开发,是从事软件开发实践和软件工程项目管理的思想基础。1.1 软件工程概念的提出与发展 软件工程这一术语首次出现在1968年的NAT0会议上。20世纪60年代以来,随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”。当时,软件开发虽然有一些工具支持,例如编译连接器等,但基本上还是依赖开发人员的个人技能,缺乏可遵循的原理、原则、方法体系以及有效的管理,使软件开发往往超出预期的开发时间要求和预算。一般而言,工程是将科学理论和知识应用于实践的科学。在理解“工程”这一概念的基础上,可以把软件工程定义为:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。软件工程概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的“软件危机”。软件工程作为一门学科至今已有30余年的历史,其发展大体可划分为两个时期。20世纪60年代末到80年代初,软件系统的规模、复杂性以及在关键领域的广泛应用,促进了软件的工程化开发和管理。这一时期主要围绕软件项目,开展了有关开发模型、开发方法和支持工具的研究。主要成果体现为:提出了瀑布模型,试图为开发人员提供有关活动组织方面的指导;开发了诸多过程式语言(例如PASC'A,L语言、C语言、Ada语言等)和开发方法(例如Jackson方法、结构化方法等),试图为开发人员提供好的需求分析和设计手段,并开发了一些支持工具,例如调试工具等。在这一时期,开始出现各种管理方法,例如费用估算、文档复审等;开发了一些相应支持工具,例如计划工具、配置管理工具等。因此这一时期的主要特征可概括为:前期主要研究系统实现技术,后期则开始关注软件质量和软件工程管理。
《软件工程(第3版)》:高等院校计算机专业及专业基础课系列教材,普通高等教育“十一五”国家级规划教材
无
此书内容详细,印刷质量过硬,浅醒易懂,是一本学习软件工程的好书!
计算机学习用书,比较实用。
正版,作为教材足够了
北大软工的教材,内容精炼
上这个老师的课,将的相当好,所以买了本书
很好的一本书。很有收获。
考试用书。
这本书写的还是有些深度,初学可能会有些不明白,但是对于工作还是不错的。
为了学业,读书,书很全面,
书的质量不错,物流速度也很快。书里的内容还好,比较容易懂,相信读了之后会受益匪浅。
整体上讲,中规中矩
一本考试、学习不错的书籍!
书本质量还不错,是正版的。
算是一本好书吧!!!
这个书好,还没开始上课,先买了吧
内容详实,排版一般
1、内容还行,但是有的内容不是太具体
2、书中的有的地方错误。不知道是盗版的还是作者的疏忽。
做教材用的,还没有看。