微信扫一扫,移动浏览光盘
简介
《软件详细设计教程》在软件工程知识体系框架下,围绕着软件形成过程,以软件详细设计这一关键环节为中心,系统讲述了软件详细设计的基本思想、理论、方法、技术,以及软件详细设计技术在软件工程中的应用方法、原则和技术规范。
《软件详细设计教程》首先从详细设计阶段前的先导过程出发,介绍了包括软件体系结构、统一建模语言、软件需求工程、软件设计工程在内的相关基础性知识;其次重点介绍了软件结构化详细设计和面向对象详细设计这两类主流技术,并与软件实现过程相结合,介绍了软件编码设计与规范,指出了面向对象软件实现的衔接方法;最后介绍了软件测试的方法、过程与技术,强调了软件详细设计与软件测试二者之间的应用关系和协作方法。
《软件详细设计教程》适合作为高等院校计算机、软件工程、信息工程、通信工程、自动化、电子技术等相关专业的本科及研究生教材,也可作为信息科学、系统工程等领域科研人员的参考书。
目录
《软件详细设计教程》
第1章 软件工程概述
1.1 软件
1.1.1 软件的定义
1.1.2 软件的特性
1.1.3 软件的发展
1.2 软件危机
1.3 软件工程
1.3.1 软件工程的概念
1.3.2 软件工程的三要素
1.3.3 软件质量的特性
1.3.4 软件工程方法
1.4 软件工程知识体系(swebok)
1.4.1 swebok页目介绍
1.4.2 swebok的组成
1.4.3 软件工程与其他相关学科的关系
1.5 软件过程
1.5.1 软件过程的概念
1.5.2 软件过程模型
1.6 软件项目管理基础
.1.7 小结
第2章 软件体系结构
2.1 软件体系结构的产生与发展
2.1.1 软件体系结构的定义
2.1.2 软件体系结构的发展史
2.1.3 软件体系结构的研究现状
2.1.4 软件体系结构的影响
2.1.5 软件体系结构的发展方向
2.2 软件体系结构建模
2.2.1 “4+1”视图模型
2.2.2 软件体系结构的核心模型
2.2.3 软件体系结构的生命周期模型
2.3 基于体系结构的描述
2.3.1 软件体系结构的描述方法
2.3.2 软件体系结构的描述框架标准
2.3.3 软件体系结构的描述语言
2.4 基于体系结构的软件设计
2.4.1 基于体系结构的设计模式
2.4.2 基于体系结构的设计方法
2.4.3 体系结构的设计与演化
2.5 小结
第3章 统一建模语言uml基础
3.1 uml概述
3.1.1 uml的发展历程
3.1.2 uml的内容
3.1.3 uml的特点
3.1.4 uml的应用领域
3.2 通用模型元素
3.2.1 模型元素
3.2.2 约束
3.2.3 依赖关系
3.2.4 细化
3.2.5 注释
3.3 用例模型
3.3.1 用例图
3.3.2 画用例图
3.3.3 用例图的示例
3.4 静态模型
3.4.1 类图
3.4.2 对象图
3.4.3 包图
3.5 动态模型
3.5.1 状态图
3.5.2 活动图
3.5.3 顺序图
3.5.4 协作图
3.6 实现模型
3.6.1 构件图
3.6.2 配置图
3.7 从uml1.x到uml2.0
3.7.1 uml2.0提案需求
3.7.2 被采纳的uml2.0提案
3.7.3 uml2.0概况
3.7.4 进步与不足
3.8 小结
第4章 软件需求工程
4.1 软件需求概述
4.1.1 业务需求
4.1.2 用户需求
4.1.3 功能需求和非功能需求
4.1.4 系统需求
4.2 需求工程过程
4.2.1 需求获取
4.2.2 需求分析
4.2.3 需求规格说明
4.2.4 需求验证
4.2.5 需求管理
4.3 需求获取技术
4.3.1 面谈
4.3.2 需求专题讨论会
4.3.3 观察用户工作流程
4.3.4 原型化方法
4.3.5 基于用例的方法
4.4 可行性研究
4.4.1 意义
4.4.2 可行性研究的内容
4.4.3 可行性研究报告
4.5 需求建模
4.5.1 需求建模方法
4.5.2 实体一关系图
4.5.3 数据流图
4.5.4 状态转换图
4.5.5 数据字典
4.6 小结
第5章 软件设计工程
5.1 软件工程中的设计
5.2 设计过程和设计质量
5.3 设计概念
5.3.1 抽象
5.3.2 体系结构
5.3.3 模式
5.3.4 模块化
5.3.5 信息隐蔽
5.3.6 功能独立
5.3.7 求精
5.3.8 重构
5.3.9 设计类
5.4 设计模型
5.4.1 数据设计元素
5.4.2 体系结构设计元素
5.4.3 接口设计元素
5.4.4.构件级设计元素
5.4.5 部署级设计元素
5.5 基于模式的软件设计
5.5.1 描述设计模式
5.5.2 在设计中使用模式
5.5.3 框架
5.6 小结
第6章 软件总体设计
6.1 软件设计的重要性
6.2 设计过程
6.3 软件总体设计
6.4 设计基本原理
6.4.1 抽象
6.4.2 细化
6.4.3 模块化
6.4.4 软件体系结构
6.4.5 程序结构
6.4.6 数据结构
6.4.7 软件过程
6.5 体系结构设计
6.5.1 软件结构图
6.5.2 模块的大小
6.5.3 扇出和扇入与深度和宽度
6.5.4 模块的耦合
6.5.5 模块的内聚
6.5.6 结构设计的一般准则
6.5.7 模块的作用域与控制域
6.6 结构化设计
6.6.1 数据流的类型
6.6.2 过程步骤
6.6.3 变换分析设计
6.6.4 事务分析设计
6.6.5 混合流设计
6.6.6 结构化设计方法应用示例
6.6.7 设计的后期处理
6.7 软件结构优化
6.7.1 软件结构设计优化准则
6.7.2 软件结构的hipo图
6.8 小结
第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.3.3 常用符号
7.4 结构化定理
7.4.1 程序函数
7.4.2 基本定理
7.4.3 过程设计语言
7.5 面向数据结构的设计
7.5.1 jackson图
7.5.2 纲要逻辑
7.5.3 jackson方法
7.5.4 jsp应用
7.5.5 jsd方法
7.6 小结
第8章 面向对象软件详细设计
8.1 面向对象简介
8.1.1 面向对象的概念
8.1.2 面向对象方法的历史及现状
8.2 面向对象的相关概念
8.2.1 对象
8.2.2 类
8.2.3 对象图
8.2.4 属性
8.2.5 服务(操作或方法)
8.2.6 封装
8.2.7 继承
8.2.8 多重继承
8.2.9 消息
8.2.10 结构与连接
8.2.11 多态性
8.2.12 永久对象
8.2.13 主动对象
8.2.14 对象类的表示方法
8.3 链接与关联
8.3.1 一般概念
8.3.2 重数
8.3.3 关联的重要性
8.3.4 三元关联
8.3.5 关联的候选关键字
8.3.6 异或关联
8.3.7 资格关联
8.3.8 链接属性
8.3.9 将关联模型化为类
8.3.10 角色名
8.3.11 排序
8.3.12 资格符
8.4 聚合
8.4.1 聚合与关联
8.4.2 聚合与概括
8.4.3 递归聚合
8.4.4 操作的传播
8.4.5 物理聚合与分类聚合
8.4.6 物理聚合的语义扩展
8.4.7 分类聚合的语义扩展
8.5 概括
8.5.1 一般概念
8.5.2 重写特征
8.5.3 抽象类和具体类
8.5.4 概括与其他对象建模结构
8.6 构造分组
8.6.1 模块
8.6.2 表
8.7 小结
第9章 面向对象分析
9.1 分析过程
9.1.1 概述
9.1.2 三个子模型与五个层次
9.2 需求陈述
9.2.1 书写要点
9.2.2 例子
9.3 建立对象模型
9.3.1 确定类与对象
9.3.2 确定关联
9.3.3 划分主题
9.3.4 确定属性
9.3.5 识别继承关系
9.3.6 反复修改
9.4 建立动态模型
9.4.1 编写脚本
9.4.2 设想用户界面
9.4.3 画事件跟踪图
9.4.4 画状态图
9.4.5 审查动态模型
9.5 建立功能模型
9.5.1 画出基本系统模型图
9.5.2 画出功能级数据流图
9.5.3 描述处理框功能
9.6 定义服务
9.6.1 常规行为
9.6.2 从事件导出的操作
9.6.3 与数据流图中处理框对应的操作
9.6.4 利用继承减少冗余操作
9.7 面向对象分析实例
9.7.1 需求陈述
9.7.2 建立对象模型
9.7.3 建立动态模型
9.7.4 建立功能模型
9.7.5 进一步完善
9.8 小结
第10章 面向对象设计
10.1 面向对象设计的准则
10.1.1 模块化
10.1.2 抽象
10.1.3 信息隐藏
10.1.4 弱耦合
10.1.5 强内聚
10.1.6 可重用
10.2 启发规则
10.2.1 设计结果应该清晰易懂
10.2.2 一般—特殊结构的深度应适当
10.2.3 设计简单的类
10.2.4 使用简单的协议
10.2.5 使用简单的服务
10.2.6 把设计变动减至最小
10.3 系统分解
10.3.1 子系统之间的两种交互方式
10.3.2 组织系统的两种方案
10.3.3 设计系统的拓扑结构
10.4 设计问题域子系统
10.4.1 调整需求
10.4.2 重用已有的类
10.4.3 把问题域类组合在一起
10.4.4 添一般化类以建立协议
10.4.5 atm系统之例
10.5 设计人机交互子系统
10.5.1 设计人机交互界面的准则
10.5.2 设计人机交互子系统的策略
10.6 设计任务管理子系统
10.6.1 分析并发性
10.6.2 设计任务管理子系统
10.7 设计数据管理子系统
10.7.1 选择数据存储管理模式
10.7.2 设计数据管理子系统
10.7.3 例子
10.8 设计类中的服务
10.8.1 确定类中应有的服务
10.8.2 设计实现服务的方法
10.9 设计关联
10.9.1 关联的遍历
10.9.2 实现单向关联
10.9.3 实现双向关联
10.9.4 关联对象的实现方法
10.10 设计优化
10.10.1确定优先级
10.10.2 提高效率的几项技术
10.10.3调整继承关系
10.11 面向对象分析与设计实例
10.11.1 面向对象分析
10.11.2 面向对象设计
10.12 小结
第11章 编码设计与规范
11.1 程序设计语言
11.1.1 程序设计语言的基本概念
11.1.2 程序设计语言的发展及种类
11.1.3 程序设计语言的基本成分
11.1.4 程序设计语言的要素
11.1.5 编程语言的选择
11.1.6 面向对象语言的优点
11.1.7 面向对象语言的技术特点
11.2 编码规范
11.2.1 源程序文档化
11.2.2 数据说明
11.2.3 语句结构
11.2.4 输入/输出
11.3 编码风格
11.3.1 提高可重用性
11.3.2 提高可扩充性
11.3.3 提高健壮性
11.4 程序效率
11.4.1 程序效率的原则
11.4.2 算法对效率的影响
11.4.3 存储器效率
11.4.4 输入/输出效率
11.5 编程安全
11.5.1 冗余程序设计
11.5.2 防错性程序设计
11.6 小结
第12章 软件测试
12.1 软件测试概述
12.1.1 软件测试的定义
12.1.2 软件测试的摹本策略
12.1.3 软件测试的基本原则
12.1.4 软件测试与软件开发各阶段的关系
12.1.5 测试文档
12.2 软件测试过程
12.2.1 单元测试
12.2.2 集成测试
12.2.3 系统测试
12.2.4 验收测试
12.3 测试技术
12.3.1 软件测试的目标
12.3.2 黑盒测试和白盒测试
12.3.3 逻辑覆盖
12.3.4 关于控制结构测试的一些讨论
12.3.5 基本路径测试
12.3.6 等价类划分
12.3.7 边界值分析
12.3.8 因果图
12.3.9 错误推测法
12.4 测试用例设计
12.5 测试计划
12.6 面向对象软件测试
12.6.1 测试策略
12.6.2 设计测试用例
12.7 小结
参考文献
第1章 软件工程概述
1.1 软件
1.1.1 软件的定义
1.1.2 软件的特性
1.1.3 软件的发展
1.2 软件危机
1.3 软件工程
1.3.1 软件工程的概念
1.3.2 软件工程的三要素
1.3.3 软件质量的特性
1.3.4 软件工程方法
1.4 软件工程知识体系(swebok)
1.4.1 swebok页目介绍
1.4.2 swebok的组成
1.4.3 软件工程与其他相关学科的关系
1.5 软件过程
1.5.1 软件过程的概念
1.5.2 软件过程模型
1.6 软件项目管理基础
.1.7 小结
第2章 软件体系结构
2.1 软件体系结构的产生与发展
2.1.1 软件体系结构的定义
2.1.2 软件体系结构的发展史
2.1.3 软件体系结构的研究现状
2.1.4 软件体系结构的影响
2.1.5 软件体系结构的发展方向
2.2 软件体系结构建模
2.2.1 “4+1”视图模型
2.2.2 软件体系结构的核心模型
2.2.3 软件体系结构的生命周期模型
2.3 基于体系结构的描述
2.3.1 软件体系结构的描述方法
2.3.2 软件体系结构的描述框架标准
2.3.3 软件体系结构的描述语言
2.4 基于体系结构的软件设计
2.4.1 基于体系结构的设计模式
2.4.2 基于体系结构的设计方法
2.4.3 体系结构的设计与演化
2.5 小结
第3章 统一建模语言uml基础
3.1 uml概述
3.1.1 uml的发展历程
3.1.2 uml的内容
3.1.3 uml的特点
3.1.4 uml的应用领域
3.2 通用模型元素
3.2.1 模型元素
3.2.2 约束
3.2.3 依赖关系
3.2.4 细化
3.2.5 注释
3.3 用例模型
3.3.1 用例图
3.3.2 画用例图
3.3.3 用例图的示例
3.4 静态模型
3.4.1 类图
3.4.2 对象图
3.4.3 包图
3.5 动态模型
3.5.1 状态图
3.5.2 活动图
3.5.3 顺序图
3.5.4 协作图
3.6 实现模型
3.6.1 构件图
3.6.2 配置图
3.7 从uml1.x到uml2.0
3.7.1 uml2.0提案需求
3.7.2 被采纳的uml2.0提案
3.7.3 uml2.0概况
3.7.4 进步与不足
3.8 小结
第4章 软件需求工程
4.1 软件需求概述
4.1.1 业务需求
4.1.2 用户需求
4.1.3 功能需求和非功能需求
4.1.4 系统需求
4.2 需求工程过程
4.2.1 需求获取
4.2.2 需求分析
4.2.3 需求规格说明
4.2.4 需求验证
4.2.5 需求管理
4.3 需求获取技术
4.3.1 面谈
4.3.2 需求专题讨论会
4.3.3 观察用户工作流程
4.3.4 原型化方法
4.3.5 基于用例的方法
4.4 可行性研究
4.4.1 意义
4.4.2 可行性研究的内容
4.4.3 可行性研究报告
4.5 需求建模
4.5.1 需求建模方法
4.5.2 实体一关系图
4.5.3 数据流图
4.5.4 状态转换图
4.5.5 数据字典
4.6 小结
第5章 软件设计工程
5.1 软件工程中的设计
5.2 设计过程和设计质量
5.3 设计概念
5.3.1 抽象
5.3.2 体系结构
5.3.3 模式
5.3.4 模块化
5.3.5 信息隐蔽
5.3.6 功能独立
5.3.7 求精
5.3.8 重构
5.3.9 设计类
5.4 设计模型
5.4.1 数据设计元素
5.4.2 体系结构设计元素
5.4.3 接口设计元素
5.4.4.构件级设计元素
5.4.5 部署级设计元素
5.5 基于模式的软件设计
5.5.1 描述设计模式
5.5.2 在设计中使用模式
5.5.3 框架
5.6 小结
第6章 软件总体设计
6.1 软件设计的重要性
6.2 设计过程
6.3 软件总体设计
6.4 设计基本原理
6.4.1 抽象
6.4.2 细化
6.4.3 模块化
6.4.4 软件体系结构
6.4.5 程序结构
6.4.6 数据结构
6.4.7 软件过程
6.5 体系结构设计
6.5.1 软件结构图
6.5.2 模块的大小
6.5.3 扇出和扇入与深度和宽度
6.5.4 模块的耦合
6.5.5 模块的内聚
6.5.6 结构设计的一般准则
6.5.7 模块的作用域与控制域
6.6 结构化设计
6.6.1 数据流的类型
6.6.2 过程步骤
6.6.3 变换分析设计
6.6.4 事务分析设计
6.6.5 混合流设计
6.6.6 结构化设计方法应用示例
6.6.7 设计的后期处理
6.7 软件结构优化
6.7.1 软件结构设计优化准则
6.7.2 软件结构的hipo图
6.8 小结
第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.3.3 常用符号
7.4 结构化定理
7.4.1 程序函数
7.4.2 基本定理
7.4.3 过程设计语言
7.5 面向数据结构的设计
7.5.1 jackson图
7.5.2 纲要逻辑
7.5.3 jackson方法
7.5.4 jsp应用
7.5.5 jsd方法
7.6 小结
第8章 面向对象软件详细设计
8.1 面向对象简介
8.1.1 面向对象的概念
8.1.2 面向对象方法的历史及现状
8.2 面向对象的相关概念
8.2.1 对象
8.2.2 类
8.2.3 对象图
8.2.4 属性
8.2.5 服务(操作或方法)
8.2.6 封装
8.2.7 继承
8.2.8 多重继承
8.2.9 消息
8.2.10 结构与连接
8.2.11 多态性
8.2.12 永久对象
8.2.13 主动对象
8.2.14 对象类的表示方法
8.3 链接与关联
8.3.1 一般概念
8.3.2 重数
8.3.3 关联的重要性
8.3.4 三元关联
8.3.5 关联的候选关键字
8.3.6 异或关联
8.3.7 资格关联
8.3.8 链接属性
8.3.9 将关联模型化为类
8.3.10 角色名
8.3.11 排序
8.3.12 资格符
8.4 聚合
8.4.1 聚合与关联
8.4.2 聚合与概括
8.4.3 递归聚合
8.4.4 操作的传播
8.4.5 物理聚合与分类聚合
8.4.6 物理聚合的语义扩展
8.4.7 分类聚合的语义扩展
8.5 概括
8.5.1 一般概念
8.5.2 重写特征
8.5.3 抽象类和具体类
8.5.4 概括与其他对象建模结构
8.6 构造分组
8.6.1 模块
8.6.2 表
8.7 小结
第9章 面向对象分析
9.1 分析过程
9.1.1 概述
9.1.2 三个子模型与五个层次
9.2 需求陈述
9.2.1 书写要点
9.2.2 例子
9.3 建立对象模型
9.3.1 确定类与对象
9.3.2 确定关联
9.3.3 划分主题
9.3.4 确定属性
9.3.5 识别继承关系
9.3.6 反复修改
9.4 建立动态模型
9.4.1 编写脚本
9.4.2 设想用户界面
9.4.3 画事件跟踪图
9.4.4 画状态图
9.4.5 审查动态模型
9.5 建立功能模型
9.5.1 画出基本系统模型图
9.5.2 画出功能级数据流图
9.5.3 描述处理框功能
9.6 定义服务
9.6.1 常规行为
9.6.2 从事件导出的操作
9.6.3 与数据流图中处理框对应的操作
9.6.4 利用继承减少冗余操作
9.7 面向对象分析实例
9.7.1 需求陈述
9.7.2 建立对象模型
9.7.3 建立动态模型
9.7.4 建立功能模型
9.7.5 进一步完善
9.8 小结
第10章 面向对象设计
10.1 面向对象设计的准则
10.1.1 模块化
10.1.2 抽象
10.1.3 信息隐藏
10.1.4 弱耦合
10.1.5 强内聚
10.1.6 可重用
10.2 启发规则
10.2.1 设计结果应该清晰易懂
10.2.2 一般—特殊结构的深度应适当
10.2.3 设计简单的类
10.2.4 使用简单的协议
10.2.5 使用简单的服务
10.2.6 把设计变动减至最小
10.3 系统分解
10.3.1 子系统之间的两种交互方式
10.3.2 组织系统的两种方案
10.3.3 设计系统的拓扑结构
10.4 设计问题域子系统
10.4.1 调整需求
10.4.2 重用已有的类
10.4.3 把问题域类组合在一起
10.4.4 添一般化类以建立协议
10.4.5 atm系统之例
10.5 设计人机交互子系统
10.5.1 设计人机交互界面的准则
10.5.2 设计人机交互子系统的策略
10.6 设计任务管理子系统
10.6.1 分析并发性
10.6.2 设计任务管理子系统
10.7 设计数据管理子系统
10.7.1 选择数据存储管理模式
10.7.2 设计数据管理子系统
10.7.3 例子
10.8 设计类中的服务
10.8.1 确定类中应有的服务
10.8.2 设计实现服务的方法
10.9 设计关联
10.9.1 关联的遍历
10.9.2 实现单向关联
10.9.3 实现双向关联
10.9.4 关联对象的实现方法
10.10 设计优化
10.10.1确定优先级
10.10.2 提高效率的几项技术
10.10.3调整继承关系
10.11 面向对象分析与设计实例
10.11.1 面向对象分析
10.11.2 面向对象设计
10.12 小结
第11章 编码设计与规范
11.1 程序设计语言
11.1.1 程序设计语言的基本概念
11.1.2 程序设计语言的发展及种类
11.1.3 程序设计语言的基本成分
11.1.4 程序设计语言的要素
11.1.5 编程语言的选择
11.1.6 面向对象语言的优点
11.1.7 面向对象语言的技术特点
11.2 编码规范
11.2.1 源程序文档化
11.2.2 数据说明
11.2.3 语句结构
11.2.4 输入/输出
11.3 编码风格
11.3.1 提高可重用性
11.3.2 提高可扩充性
11.3.3 提高健壮性
11.4 程序效率
11.4.1 程序效率的原则
11.4.2 算法对效率的影响
11.4.3 存储器效率
11.4.4 输入/输出效率
11.5 编程安全
11.5.1 冗余程序设计
11.5.2 防错性程序设计
11.6 小结
第12章 软件测试
12.1 软件测试概述
12.1.1 软件测试的定义
12.1.2 软件测试的摹本策略
12.1.3 软件测试的基本原则
12.1.4 软件测试与软件开发各阶段的关系
12.1.5 测试文档
12.2 软件测试过程
12.2.1 单元测试
12.2.2 集成测试
12.2.3 系统测试
12.2.4 验收测试
12.3 测试技术
12.3.1 软件测试的目标
12.3.2 黑盒测试和白盒测试
12.3.3 逻辑覆盖
12.3.4 关于控制结构测试的一些讨论
12.3.5 基本路径测试
12.3.6 等价类划分
12.3.7 边界值分析
12.3.8 因果图
12.3.9 错误推测法
12.4 测试用例设计
12.5 测试计划
12.6 面向对象软件测试
12.6.1 测试策略
12.6.2 设计测试用例
12.7 小结
参考文献
编著者还有:吕进、杜瑾、谢小军、赵祥模
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×