软件工程(中级)

软件工程(中级)
作 者: 郑人杰 殷人昆 王萍 谢若阳
出版社: 清华大学出版社
丛编项: 计算机软件专业技术资格和水平考试指定用书(旧)
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 计算机软件专业技术资格和水平考试
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《软件工程(中级)》作者简介

内容简介

内容简介本书是根据1999年中国计算机软件专业技术资格和水平考试中心公布的《中国计算机软件专业技术水平考试大纲》对软件工程(中级)考试的要求编写的。书中分为3篇,第1篇是C++和面向对象程序设计;第2篇是用C++与面向对象方法描述的数据结构;第3篇是软件工程方法。本书的内容相当完整,基本覆盖考试要求。每章最后附有习题,可作为自测的依据。本书可作为参加考试的指导教材,还可以作为各有关院校计算机软件课程学习的参考教材,以及从事计算机软件开发的技术人员学习软件开发基本知识的辅助教材。

图书目录

第1篇C++语言与面向对象程序设计

第1章C++简介

1.1C++历史

1.2C++语言特点

1.3本篇的组织结构

第2章熟悉C++

2.1环境

2.2第一个示例程序

2.2.1注释

2.2.2#include语句与预处理

2.2.3main函数

2.2.4从main中返回

2.2.5终端输出输人

2.3第二个示例程序

2.3.1数据类型

2.3.2常量

2.3.3变量

2.3.4表达式与操作符

2.3.5类型转换

2.3.6语句

[习题]

第3章进一步熟悉C++

3.1更多的变量类型

3.1.1指针类型

3.1.2引用类型

3.1.3枚举类型

3.1.4数组类型

3.1.5用typedef定义自己的变量类型

3.2函数

3.2.1函数的参数与返回值

3.2.2内联函数

3.2.3递归函数

3.2.4作用域

3.2.5函数重载

3.2.6函数指针

3.3类与对象

3.3.1类与对象

3.3.2成员变量和成员函数

3.3.3访问权限

3.3.4构造函数与析构函数

3.3.5常量成员变量和函数

3.3.6静态成员变量和函数

3.3.7友元

3.3.8this指针

3.4结构.联合和位域

3.4.1结构

3.4.2联合

3.4.3位域

3.4.4指针与结构

[习题]

第4章类与继承

4.1单继承

4.1.1成员访问控制方式

4.1.2一个继承的示例

4.1.3构造函数和析构函数

4.1.4虚函数

4.1.5抽象类与纯虚函数

4.1.6虚析构函数

4.2多继承

4.2.1多继承中的构造函数与析构函数

4.2.2歧义性

4.2.3虚基类

4.2.4多继承的应用

[习题]

第5章C++高级应用

5.1模板

5.1.1函数模板

5.1.2类模板

5.1.3模板的应用

5.2I/O流

5.2.1标准I/0流

5.2.2文件I/0

5.2.3字符串I/0流

5.2.4重载操作符'>'

5.3堆管理

5.3.1动态空间申请与释放

5.3.2重载new和delete

5.3.3异常处理

5.4操作符重载

5.4.1双目运算符重载

5.4.2单目运算符重载

5.4.3引用在运算符重载中的应用

5.5异常

5.5.1异常处理

5.5.2异常发生之后

5.5.3嵌套异常

5.5.4处理未捕捉到的异常

[习题]

第2篇数据结构

第6章基本概念

6.1什么是数据结构

6.2抽象数据类型及面向对象概念

6.2.1数据类型

6.2.2抽象与抽象数据类型

6.3数据结构的抽象层次

6.4算法定义

6.5性能分析与度量

6.5.1评价算法的标准

6.5.2算法效率的后期测量

6.5.3算法的事前估计

6.5.4大0表示法

[习题]

第7章数组

7.1数组的概念

7.1.1数组的概念与数组抽象数据类型

7.1.2数组元素的定位

7.2顺序表

7.2.1顺序表的概念和定义

7.2.2顺序表的顺序搜索

7.2.3顺序表的插入和删除

7.3稀疏矩阵

7.3.1稀疏矩阵的概念

7.3.2稀疏矩阵的压缩存储表示

7.4字符串

7.4.1字符串的概念及其抽象数据类型

7.4.2字符串的运算

7.4.3字符串的模式匹配

[习题]

第8章链表

8.1单链表

8.1.l单链表的概念

8.1.2单链表的类定义

8.1.3单链表的插入与删除

8.1.4带表头结点的单链表

8.1.5单链表的类模板

8.1.6单链表的游标类

8.1.7静态链表

8.2循环链表

8.3双向链表

8.3.1双向链表的概念

8.3.2带表头结点的双向循环链表

8.3.3双向循环链表的搜索.插入和删除算法

8.4稀疏矩阵

[习题]

第9章栈和队列

9.1栈

9.1.1栈的定义

9.1.2栈的顺序方式实现(顺序栈)

9.1.3栈的链接方式实现(链式栈)

9.2队列

9.2.1队列的抽象数据类型

9.2.2队列的数组表示(循环队列)

9.2.3队列的链接存储表示(链式队列)

9.3优先级队列

9.3.1优先级队列的定义

9.3.2优先级队列的存储表示和实现

[习题]

第10章递归

10.1递归的概念

10.2递归过程与递归工作栈

10.3广义表

10.3.1广义表的概念

10.3.2广义表的表示及操作

10.3.3广义表存储结构的实现

10.3.4广义表的访问算法

10.3.5广义表的递归算法

[习题]

第11章树与森林

11.1树和森林的概念

11.1.1树的定义与术语

11.1.2树的抽象数据类型

11.2二叉树

11.2.1二叉树的定义与性质

11.2.2二叉树的类定义

11.3二叉树的表示

11.3.1数组表示

11.3.2链接表示

11.4二叉树遍历

11.4.1遍历二叉树的递归算法

11.4.2二叉树遍历的游标类

11.5线索化二叉树

11.5.1线索

11.5.2中序线索化二叉树

11.5.3前序与后序的线索化二叉树

11.6堆

11.6.1堆的定义

11.6.2堆的建立

11.6.3堆的插入与删除

11.7树与森林

11.7.1树的存储表示

11.7.2森林与二叉树的转换

11.7.3树的遍历

11.7.4森林的遍历

11.8二叉树的计数

11.9霍夫曼树

11.9.1路径长度

11.9.2霍夫曼树

11.9.3霍夫曼编码

[习题]

第12章集合与搜索

12.1集合及其表示

12.1.1集合基本概念

12.1.2以集合为基础的抽象数据类型

12.1.3用位向量实现集合抽象数据类型

12.1.4用有序链表实现集合的抽象数据类型

12.2等价类和并查集

12.2.1等价关系与等价类

12.2.2并查集

12.3静态搜索表

12.3.1搜索的概念

12.3.2静态搜索结构

12.3.3顺序搜索

12.3.4基于有序顺序表的折半搜索

12.4二叉搜索树

12.4.1二叉搜索树的定义

12.4.2二叉搜索树上的搜索

12.4.3二叉搜索树的插入

12.4.4二叉搜索树的删除

12.4.5二叉搜索树的性能分析

[习题]

第13章图

13.1图的基本概念

13.2图的存储表示

13.2.1邻接矩阵

13.2.2邻接表

13.2.3邻接多重表

13.3图的遍历与连通性

13.3.1深度优先搜索

13.3.2广度优先搜索

13.3.3连通分量

13.3.4重连通分量

13.4最小生成树

13.4.1克鲁斯卡尔算法

13.4.2普里姆算法

13.5最短路径

13.5.1边上权值非负情形的单源最短路径问题

13.5.2边上权值为任意值的单源最短路径问题

13.5.3所有顶点之间的最短路径

13.6活动网络

13.6.1用顶点表示活动的网络(AOV网络)

13.6.2用边表示活动的网络(AOE网络)

[习题]

第14章排序

14.1概述

14.2插入排序

14.2.1直接插入排序

14.2.2折半插入排序

14.2.3链表插入排序

14.2.4希尔排序

14.3交换排序

14.3.1起泡排序

14.3.2快速排序

14.4选择排序

14.4.1直接选择排序

14.4.2锦标赛排序

14.4.3堆排序

14.5归并排序

14.5.1归并

14.5.2迭代的归并排序算法

14.5.3递归的表归并排序

14.6基数排序

14.6.1多关键码排序

14.6.2链式基数排序

14.7磁盘排序

14.7.1磁盘排序的基本过程

14.7.2k路平衡归并

14.7.3初始归并段的生成

14.7.4最佳归并树

[习题]

第15章索引与散列

15.1静态索引结构

15.1.1线性索引

15.1.2倒排表

15.1.3m路静态搜索树

15.24AVL树

15.2.1AVL树的定义

15.2.2平衡化旋转

15.2.3AVL树的插入和删除

15.2.4AVL树的高度

15.3B_树与B+树

15.3.1动态的m路搜索树

15.3.2B_树

15.3.3B_树的插入

15.3.4B_树的删除

15.3.5B+树

15.4散列

15.4.1词典的抽象数据类型

15.4.2散列表与散列方法

15.4.3散列函数

15.4.4处理溢出的闭散列方法

15.4.5处理溢出的开散列方法——链地址法

15.4.6散列表分析

[习题]

第3篇软件工程方法

第16章软件工程基本概念

16.1软件的概念.特点和分类

16.1.1软件的概念与特点

16.1.2软件的分类

16.2软件的发展和软件危机

16.3软件工程过程和软件生存期

16.3.1软件工程过程

16.3.2软件生存期

16.4软件生存期模型

16.4.1瀑布模型

16.4.2进化模型

16.4.3螺旋模型

16.4.4喷泉模型

16.4.5智能模型

16.5软件工程的基本目标

16.5.1软件工程的定义

16.5.2软件工程项目的基本目标

[习题]

第17章系统分析

17.1基于计算机的系统

17.2计算机系统工程

17.2.1硬件和硬件工程

17.2.2软件和软件工程

17.2.3人与人类工程

17.2.4数据库和数据库工程

17.3系统需求识别

17.4可行性研究

17.5系统结构的模型化

17.5.1结构图

17.5.2系统结构的规格说明定义

17.5.3系统定义与评审

[习题]

第18章面向过程的软件需求分析

18.1软件需求分析的任务和过程

18.1.1软件需求分析的任务

18.1.2需求分析的过程

18.1.3软件需求分析的原则

18.2符号表示

18.2.1数据流图中的基本符号

18.2.2数据流与加工之间的关系

18.2.3分层的数据流图

18.3构造数据流模型

18.3.1构造数据流模型的步骤

18.3.2数据流图画法

18.4数据词典

18.4.1词条描述

18.4.2数据结构的描述

18.4.3加工逻辑说明

18.5系统行为描述

18.5.1状态迁移图

18.5.2时序图

18.5.3Petri网

18.6数据及数据库需求

18.6.1有关数据库的基本概念

18.6.2E—R方法和实体模型

18.6.3数据结构的规范化

18.6.4数据库分析的过程

[习题]

第四章原型化方法

19.1为什么使用原型化方法

19.2软件原型的分类

19.3快速原型开发模型

19.3.1原型生存期

19.3.2软件开发过程

19.4原型开发技术

19.4.1可执行规格说明

19.4.2基于脚本的设计

19.4.3自动程序设计

19.4.4专用语言

19.4.5简化假设

19.5软件复用技术

19.5.1软件复用概述

19.5.2软件复用技术

[习题]

第20章面向过程的软件设计方法

20.1软件设计的目标和任务

20.1.1软件设计在开发阶段中的重要性

20.1.2软件设计任务

20.2软件设计基础

20.2.1自顶向下.逐步细化

20.2.2软件结构

20.2.3程序结构

20.2.4数据结构

20.2.5模块化

20.2.6抽象化

20.2.7信息隐蔽

20.3模块设计

20.3.1模块

20.3.2模块独立性

20.3.3锅台性

20.3.4内聚性

20.4数据设计及文件设计

20.4.1数据设计的原则

20.4.2在设计程序结构时数据结构的选择方法

20.4.3文件设计

20.5结构化设计方法

20.5.1典型的系统结构形式

20.5.2变换分析

20.5.3事务分析

20.5.4软件模块结构的改进

[习题]

第21章用户界面设计

21.1用户界面应具备的特性

21.1.1可使用性

21.1.2灵活性

21.1.3复杂性和可靠性

21.2用户界面设计的任务分析

21.2.1用户特性分析

21.2.2用户工作分析

21.2.3用户模型和观点

21.3用户界面任务和工作设计

21.3.1任务分配

21.3.2工作方式和工作设计

21.4界面设计的基本类型

21.4.1界面设计类型

21.4.2菜单界面的设计

21.4.3图像

21.4.4对话

21.4.5问题描述语言POL

21.4.6窗口

21.5数据输人界面设计

21.5.1数据输入的规则

21.5.2输入表格设计

21.5.3其他数据输入的方法

21.6数据显示界面设计

21.6.1数据显示的规则

21.6.2字符数据的显示

21.6.3图形显示

21.6.4报告

21.7控制界面的设计

21.7.1用控制对话选择操作命令

21.7.2用菜单界面进行控制

21.7.3用功能键定义操作命令

21.7.4用图标表示对象或命令

21.7.5直接操纵

21.7.6用窗口划分屏幕

21.7.7命令语言

21,7.8自然语言

[习题]

第22章面向对象技术

22.1面向对象的概念

22.2面向对象方法的开发过程

22.2.1应用生存期

22.2.2类生存期

22.2.3应用开发过程

22.2.4系统体系结构

[习题]

第23章面向对象分析与模型化

23.1面向对象分析

23.1.1论域分析

23.1.2应用分析

23.2对象模型技术

23.2.1对象模型

23.2.2动态模型

23.2.3功能模型

23.2.4基于三个模型的分析过程

23.3Coad与Yourdon的00A方法

23.3.1面向对象的分析的考虑

23.3.2标识对象和类

23.3.3标识结构

23.3.4标识属性

23.3.5标识服务

23.3.6标识主题

[习题]

第24章面向对象设计

24.1高层设计

24.1.1高层设计模型

24.1.2高层设计的规则

24.2Coad与Youdon面向对象设计方法

24.2.1问题论域部分的设计

24.2.2用户界面部分的设计

24.2.3任务管理部分的设计

24.2.4数据管理部分的设计

24.2.5程序设计语言的影响

24.3类的设计

24.3.1类设计的目标

24.3.2类设计的方针

24.3.3通过复用设计类

24.3.4计数器类设计的实例

[习题]