封面
版权信息
前言
第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.3.5 产品设计与工程设计
1.4 复杂度控制的关键之二:关注点分离
- APP免费
1.4.1 分离设计主题
- APP免费
1.4.2 多视点方法
- APP免费
1.5 软件设计的目标与衡量标准
- APP免费
1.5.1 根本标准:功能、质量、审美
- APP免费
1.5.2 设计目标和衡量标准应用示例
- APP免费
1.5.3 功能是设计方案的必备特征
- APP免费
1.5.4 质量是工程设计的重点
- APP免费
1.5.5 审美是超越合格达到优秀的路径
- APP免费
1.5.6 软件设计的结果是一种折中与妥协
- APP免费
1.6 外部表现与内部结构
- APP免费
1.6.1 软件设计的重点是坚固、优雅的内部结构
- APP免费
1.6.2 外部表现和内部结构的区分示例
- APP免费
1.6.3 抽象、分解与层次结构
- APP免费
1.6.4 常见的设计对象及其外部表现和内部结构
- APP免费
1.6.5 设计整个系统时区分外部表现和内部结构
- APP免费
1.6.6 设计模块时区分外部表现和内部结构
- APP免费
1.6.7 设计类时区分外部表现和内部结构
- APP免费
1.6.8 设计数据结构时区分外部表现和内部结构
- APP免费
1.6.9 设计代码时区分外部表现和内部结构
- APP免费
1.7 逻辑设计与物理设计
- APP免费
1.7.1 载体介质及其匹配
- APP免费
1.7.2 区分逻辑设计与物理设计
- APP免费
1.7.3 设计数据类型时逻辑设计与物理设计的失配
- APP免费
1.7.4 设计数据结构时逻辑设计与物理设计的失配
- APP免费
1.7.5 设计面向对象机制时逻辑设计与物理设计的失配
- APP免费
1.7.6 设计模块时逻辑设计与物理设计的失配
- APP免费
1.7.7 设计质量时逻辑设计与物理设计的失配
- APP免费
1.8 软件设计是持续决策的过程
- APP免费
1.8.1 设计结果与设计过程
- APP免费
1.8.2 决策的要素
- APP免费
1.8.3 设计是一个跳跃性过程,验证设计是一个推理过程
- APP免费
1.8.4 选择一个可行答案,没有唯一正确答案
- APP免费
1.8.5 设计决策有顺序影响,而且影响不可逆
- APP免费
1.8.6 设计约束:是友非敌
- APP免费
1.9 工程与艺术
- APP免费
1.9.1 工程设计与艺术设计
- APP免费
1.9.2 理性主义与经验主义
- APP免费
1.9.3 设计兼具科学性与艺术性
- APP免费
1.10 总结
- APP免费
第2章 程序设计
- APP免费
2.1 如何保证程序正确性
- APP免费
2.1.1 像设计硬件一样设计软件吗
- APP免费
2.1.2 测试不能保证正确性
- APP免费
2.1.3 用程序设计方法实现正确性
- APP免费
2.2 结构化编程与功能正确性
- APP免费
2.2.1 使用简单结构——三种控制结构
- APP免费
2.2.2 使用块结构组织复杂代码
- APP免费
2.2.3 兼顾正确性与复杂度控制:函数/方法
- APP免费
2.3 数据抽象、类型与数据操作正确性
- APP免费
2.3.1 类型
- APP免费
2.3.2 结构化类型:强正确性保证
- APP免费
2.3.3 非结构化类型:弱正确性保证
- APP免费
2.3.4 复杂抽象数据类型(数据结构)及其质量
- APP免费
2.4 程序契约与正确性
- APP免费
2.4.1 前置条件与后置条件
- APP免费
2.4.2 不变量
- APP免费
2.4.3 程序契约的局限性
- APP免费
2.5 面向对象编程与可复用性
- APP免费
2.5.1 可复用性需要的出现
- APP免费
2.5.2 面向对象编程与可复用性
- APP免费
2.5.3 类和对象
- APP免费
2.5.4 封装
- APP免费
2.5.5 继承
- APP免费
2.5.6 多态
- APP免费
2.6 软件构造与更多代码质量
- APP免费
2.6.1 什么是软件构造
- APP免费
2.6.2 软件构造技术与代码质量
- APP免费
2.6.3 软件构造技术示例
- APP免费
2.7 总结
- APP免费
第3章 复杂软件设计
- APP免费
3.1 控制更高的复杂度需要模块
- APP免费
3.1.1 模块
- APP免费
3.1.2 模块分解质量与模块化、信息隐藏
- APP免费
3.2 模块化
- APP免费
3.2.1 模块分割的质量考虑
- APP免费
3.2.2 理想中的模块分割——完全独立
- APP免费
3.2.3 现实中的模块分割——低耦合、高内聚
- APP免费
3.2.4 代码组织及联系方式分析
- APP免费
3.3 (结构化)函数/方法之间的耦合
- APP免费
3.3.1 内容耦合
- APP免费
3.3.2 公共耦合
- APP免费
3.3.3 控制耦合
- APP免费
3.3.4 印记耦合
- APP免费
3.3.5 数据耦合
- APP免费
3.3.6 隐式的耦合
- APP免费
3.3.7 函数/方法之间的耦合小结
- APP免费
3.4 (结构化)函数/方法的内聚
- APP免费
3.4.1 偶然内聚
- APP免费
3.4.2 逻辑内聚
- APP免费
3.4.3 时间内聚
- APP免费
3.4.4 过程内聚
- APP免费
3.4.5 通信内聚
- APP免费
3.4.6 顺序内聚
- APP免费
3.4.7 功能内聚
- APP免费
3.4.8 函数/方法的内聚小结
- APP免费
3.5 (面向对象)类/对象之间的耦合
- APP免费
3.5.1 类/对象之间的耦合类型
- APP免费
3.5.2 方法之间的耦合
- APP免费
3.5.3 成员变量产生的耦合
- APP免费
3.5.4 隐藏组件耦合
- APP免费
3.5.5 分散组件耦合
- APP免费
3.5.6 明确组件耦合
- APP免费
3.5.7 修改型继承耦合
- APP免费
3.5.8 改进型继承耦合
- APP免费
3.5.9 扩展型继承耦合
- APP免费
3.5.10 继承的降耦合作用
- APP免费
3.5.11 继承的弱点:灵活性
- APP免费
3.5.12 类/对象之间的耦合小结
- APP免费
3.6 (面向对象)类/对象的内聚
- APP免费
3.7 复杂模块的耦合与内聚
- APP免费
3.7.1 复杂模块之间的耦合
- APP免费
3.7.2 复杂模块的内聚
- APP免费
3.8 按功能设计与按决策设计
- APP免费
3.8.1 KWIC
- APP免费
3.8.2 按功能进行设计
- APP免费
3.8.3 按决策进行设计
- APP免费
3.8.4 方案比较
- APP免费
3.8.5 比较结果分析
- APP免费
3.9 信息隐藏
- APP免费
3.9.1 基本思路
- APP免费
3.9.2 隐藏设计决策
- APP免费
3.9.3 封装变化
- APP免费
3.10 (结构化)函数/方法的信息隐藏分析
- APP免费
3.11 (面向对象)类/对象的信息隐藏分析
- APP免费
3.11.1 耦合、内聚与信息隐藏
- APP免费
3.11.2 单一职责原则
- APP免费
3.11.3 接口分离原则
- APP免费
3.11.4 依赖倒置原则
- APP免费
3.11.5 开闭原则
- APP免费
3.12 复杂模块的信息隐藏分析
- APP免费
3.12.1 重新审视耦合与内聚
- APP免费
3.12.2 决策的层次结构
- APP免费
3.12.3 模块的层次结构
- APP免费
3.12.4 模块说明
- APP免费
3.13 总结
- APP免费
3.13.1 模块化方法总结
- APP免费
3.13.2 信息隐藏方法总结
- APP免费
3.13.3 设计原则
- APP免费
第4章 软件设计方法学
- APP免费
4.1 概述
- APP免费
4.1.1 什么是软件方法学
- APP免费
4.1.2 软件方法学流派
- APP免费
4.1.3 软件设计方法学
- APP免费
4.1.4 使用软件设计方法学的好处
- APP免费
4.2 逐步精化程序设计
- APP免费
4.2.1 基本思想
- APP免费
4.2.2 示例一
- APP免费
4.2.3 示例二
- APP免费
4.2.4 示例三
- APP免费
4.2.5 作用和效果
- APP免费
4.3 结构化软件设计
- APP免费
4.3.1 基本思想
- APP免费
4.3.2 示例一
- APP免费
4.3.3 示例二
- APP免费
4.3.4 作用和效果
- APP免费
4.4 数据为中心的软件设计
- APP免费
4.4.1 基本思想
- APP免费
4.4.2 示例一
- APP免费
4.4.3 示例二
- APP免费
4.4.4 作用和效果
- APP免费
4.5 面向对象软件设计
- APP免费
4.5.1 基本思想
- APP免费
4.5.2 示例一
- APP免费
4.5.3 示例二
- APP免费
4.5.4 作用和效果
- APP免费
4.6 总结
- APP免费
第5章 大规模软件系统设计
- APP免费
5.1 大规模软件系统设计的关注点
- APP免费
5.1.1 质量
- APP免费
5.1.2 项目环境与约束
- APP免费
5.2 高层次软件设计——软件体系结构
- APP免费
5.2.1 详细设计的不足
- APP免费
5.2.2 高层次软件设计的出现
- APP免费
5.2.3 高层设计与中层设计
- APP免费
5.2.4 高层结构的关键:连接件
- APP免费
5.3 软件体系结构设计元素
- APP免费
5.3.1 部件
- APP免费
5.3.2 连接件
- APP免费
5.3.3 配置
- APP免费
5.3.4 高层抽象的作用
- APP免费
5.4 软件体系结构设计的“4+1”视图
- APP免费
5.4.1 “4+1”视图概述
- APP免费
5.4.2 场景视图
- APP免费
5.4.3 逻辑视图
- APP免费
5.4.4 开发视图
- APP免费
5.4.5 进程视图
- APP免费
5.4.6 物理视图
- APP免费
5.5 软件体系结构设计与质量
- APP免费
5.5.1 可靠性与体系结构设计
- APP免费
5.5.2 可用性与体系结构设计
- APP免费
5.5.3 安全性与体系结构设计
- APP免费
5.5.4 性能与体系结构设计
- APP免费
5.5.5 可修改性与体系结构设计
- APP免费
5.5.6 可测试性与体系结构设计
- APP免费
5.6 总结
- APP免费
附录
- APP免费
推荐阅读
- APP免费
内容简介
更新时间:2024-10-29 18:44:02