- 低层设计:代码设计;中层设计:模块与类结构的设计;高层设计:体系结构的设计
- 模块划分隐藏一些程序片段(数据结构与算法)的细节,暴露接口于外界。
- 模块划分的目标是完全独立性,这样有助于理解、复用、开发、修改。
- 程序片段之间并不可能做到完全独立。模块划分只能实现尽可能的独立(高内聚 cohesion,低耦合 coupling)。
- 模块划分方法:信息隐藏,每个模块有一个或者多个“秘密”。
- 每个模块实现了一个重要决策,而且只有自己知道细节。决策类型一:需求,每个模块对外提供一种功能,将其提取成为接口,与内部实现相分离。决策类型二:变化,即将要发生变化的程序部分需要进行一个决策
- 4+1 View:逻辑视图:关注系统的逻辑结构和重要的设计机制,描述系统提供的功能和服务。 开发视图:关注系统的实现结构,描述系统开发的组织。进程视图:关注系统的运行时表现,描述系统的并行进程组织。物理视图:关注系统的基础设施,描述系统的部署与分布。场景视图:关注系统最为重要的需求,描述系统应该实现的的场景与用例。
- GRASP是General Responsibility Assignment Software Patterns(通用职责分配软件模式)的简称,它的核心思想“职责分配”即Responsibility Assignment。GRASP提出了几个基本原则,用来解决面向对象设计的一些问题。GRASP用职责设计对象:"Designing Objects with Responsibilities".它包含了9个基本模式: 1.信息专家(Information expert) 2.创建者(Creator) 3.高内聚(High Cohesion) 4.低耦合(Low Coupling) 5.控制器(Controller) 6.多态性(Polymorphism) 7.纯虚构(Pure Fabrication) 8.间接性(Indirection) 9.变化预防(Protected Variations)
软件工程体系结构重点
最新推荐文章于 2023-12-17 20:53:46 发布