- 名词解释
- 软件设计
- 软件设计的核⼼思想是什么?
- 软件⼯程设计有哪三个层次?各层的主要思想是什么?
软件设计的概念

软件设计是指一份包含软件设计描述和软件原型的设计规格说明, 以及产生这个规格说明的过程.
设计(名词): 一个对象的规格说明. 它由人创造, 有明确的目标, 适用于特殊的环境, 由一些基础类型构件组成, 满足一个需求集合, 受一定的限制条件约束.
设计(动词): 在一个环境中创建对象的规格说明.
软件设计的核心思想
需求分配
质量
核心问题: 控制系统复杂度.
分而治之是软件设计解决复杂度难题的主要思路, 抽象和分解是软件设计的核心思想.
- 分解: 横向上将系统分割为几个相对简单的子系统以及各子系统之间的关系, 分解之后只需关注经过抽象的相对简单的子系统及其关系, 降低了复杂度
- 抽象: 纵向上聚焦各子系统的接口(和实现相对, 是子系统之间交流的契约), 可以分离接口与实现, 更好地关注系统本质, 降低复杂度.
软件设计的三个层次, 各层的主要思想

- 高层设计: 基于反映软件高层抽象的构件层次, 描述系统的高层结构, 关注点和设计决策;
- 中层设计: 更关注组成构件的模块的划分, 导入导出, 过程之间调用关系和类之间的协作;
- 低层设计: 深入模块和类的内部, 关注具体数据结构, 算法, 类型, 语句和控制结构等.
体系结构设计阶段完成高层设计和部分中层设计, 详细设计阶段完成中层设计和部分低层设计, 剩下的部分低层设计在构造阶段完成.