内容简介
《软件工程(第3版)》是在北京大学计算机科学技术系使用的《软件工程》(第二版)教材的基础上,结合IEEE新发布的软件工程知识体系SWEBoK(software Engineering Body of Knowledge)和IEEE/AcM软件工程学科小组公布的软件工程教育知识体系SEEK(Software Engineering Education Knowledge),由主讲、主考教师编写而成的。《软件工程(第3版)》既是北京大学计算机科学系本科生指定教材,也可作为其他高校的本科生教材及软件从业人员的参考书。
《软件工程(第3版)》注重基础知识的系统性,并注重选材的先进性及知识的应用,有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实践和工程管理的能力。
内页插图
目录
第一章 绪论
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 泛化
6.2.3 细化
6.2.4 依赖
6.3 组织信息的一种通用机制——包
6.4 模型表达工具
6.4.1 类图
6.4.2 用况图
6.4.3 状态图
6.4.4 顺序图
6.5 UML小结
习题六
第七章 面向对象方法——RUP
7.1 RUP的作用和特点
7.2 核心工作流
7.2.1 需求获取
7.2.2 需求分析
7.2.3 设计
7.2.4 RUP的实现和测试
7.3 RUP小结
习题七
第八章 软件测试
8.1 软件测试目标与软件测试过程模型
8.1.1 软件测试目标
8.1.2 测试过程模型
8.2 软件测试技术
8.2.1 路径测试技术
8.2.2 基于事务流的测试技术
8.2.3 其他功能测试技术简述
8.3 静态分析技术——程序正确性证明
8.4 软件测试步骤
8.4.1 单元测试
8.4.2 集成测试
8.4.3 有效性测试
8.5 本章 小结
习题八
第九章 软件工程项目管理概述
9.1 软件工程管理活动
9.2 软件规模、成本和进度估算
9.2.1 软件系统/产品规模估算
9.2.2 成本和进度估算
9.3 能力成熟度模型CMM
9.3.1 CMM产生的背景
9.3.2 CMM的成熟度等级
9.3.3 CMM的结构
9.3.4 CMM的使用以及对相关标准的影响
9。4ISO9000系列标准简介
9.4.1 八项质量管理原则
9.4.2 质量管理体系基础
9.4.3 ISO9001和ISO9004标准的关系
9.5 CMM与ISO9000系列标准的比较
9.6 本章 小结
习题九
第十章 软件开发工具与环境
10.1 基本概念
10.2 工具集成模型
10.3 大型软件开发环境青鸟系统概述
10.4 本章 小结
习题十
第十一章 内容总结
11.1 关于软件过程范型
11.1.1 软件生存周期过程
11.1.2 软件生存周期模型
11.1.3 软件项目生存周期过程规划
11.2 关于软件设计方法
11.2.1 结构化方法
11.2.2 面向对象方法
参考文献
精彩书摘
第一章 绪论
正确认识软件开发,是从事软件开发实践和软件工程项目管理的思想基础。
1.1 软件工程概念的提出与发展
软件工程这一术语首次出现在1968年的NAT0会议上。20世纪60年代以来,随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”。
当时,软件开发虽然有一些工具支持,例如编译连接器等,但基本上还是依赖开发人员的个人技能,缺乏可遵循的原理、原则、方法体系以及有效的管理,使软件开发往往超出预期的开发时间要求和预算。
一般而言,工程是将科学理论和知识应用于实践的科学。在理解“工程”这一概念的基础上,可以把软件工程定义为:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。
软件工程概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的“软件危机”。
软件工程作为一门学科至今已有30余年的历史,其发展大体可划分为两个时期。
20世纪60年代末到80年代初,软件系统的规模、复杂性以及在关键领域的广泛应用,促进了软件的工程化开发和管理。这一时期主要围绕软件项目,开展了有关开发模型、开发方法和支持工具的研究。主要成果体现为:提出了瀑布模型,试图为开发人员提供有关活动组织方面的指导;开发了诸多过程式语言(例如PASCA,L语言、C语言、Ada语言等)和开发方法(例如Jackson方法、结构化方法等),试图为开发人员提供好的需求分析和设计手段,并开发了一些支持工具,例如调试工具等。在这一时期,开始出现各种管理方法,例如费用估算、文档复审等;开发了一些相应支持工具,例如计划工具、配置管理工具等。因此这一时期的主要特征可概括为:前期主要研究系统实现技术,后期则开始关注软件质量和软件工程管理。
前言/序言
编写一本适合本科生学习的软件工程教材,实在是一件很困难的事情。其原因主要有三:一是软件工程这门课程所涉及的内容十分宽泛,既涉及技术层面,又涉及管理层面;既关联实际问题的理解和描述,又关联软件工具的使用;二是在社会需求的拉动下,软件工程技术发展非常迅速,新概念、新技术、新方法不断出现;三是作为一门技术学科,其内容具有很强的技术特征,而且仅仅走过了40余年的发展历程,与其他学科相比,例如数学、物理、化学以及建筑等,还是相当“年轻”的一门学科。因此,在教材内容的选取与组织方面,在有关概念的表述方面,实在是一种挑战。
通过参与杨芙清院士主持的国家科技攻关项目,通过参与张效祥院士主编的《计算机科学技术百科全书》,通过参与国家有关标准规范的制定,特别是通过几年来的教学实践,对软件工程有关的知识还有些领悟,有所积累。
在教材内容的选取方面,基本遵循以下两条原则:
一是选取的内容能够有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实践和工程管理的能力;
二是选取的内容基本上是基础性的,是比较“稳定”的,尽量介绍有关软件工程的国际标准,尽量讲解成熟技术。
在教材内容的组织方面,依据内容选取的基本原则,基于对软件开发本质的认识,紧紧围绕软件开发,主要讲解了软件工程的两大技术问题,一是开发逻辑,二是开发途径。其中,开发逻辑涉及软件生存周期过程、工程中常用的软件生存周期模型——有关过程、活动和任务的组织框架,以及项目软件生存周期的规划与监控;开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。并且简单介绍作用于开发活动上的一些管理活动,其中重点介绍支持管理活动的一些基础性技术,例如规模、成本、进度估算等。
软件工程(第3版)/高等院校计算机专业及专业基础课系列教材·普通高等教育“十一五”国家级规划教材 下载 mobi epub pdf txt 电子书 格式
软件工程(第3版)/高等院校计算机专业及专业基础课系列教材·普通高等教育“十一五”国家级规划教材 下载 mobi pdf epub txt 电子书 格式 2024
软件工程(第3版)/高等院校计算机专业及专业基础课系列教材·普通高等教育“十一五”国家级规划教材 mobi epub pdf txt 电子书 格式下载 2024