体系结构之设计基础

1.设计的审美标准有哪些

1) 简洁性:

模块化、易读易理解。

2) 结构一致性(概念完整性):

体系结构的风格,模块化。

3) 坚固性(高质量):

易开发、易修改、易复用、易调试、易维护。

 

2.已知的软件设计方法与技术(至少5),以及它们促进了哪些审美标准的达成

1) 模块化:

进行模块划分,隐藏一些程序片段(数据结构和算法)的实现细节,暴露接口与外界;且保证模块内部的内聚度较高,模块与外界的耦合较低。模块隐藏实现细节,通过接口访问模块,因此促进了简洁性;且因为功能内聚,对外提供统一的外部接口,因此促进了结构一致性

2) 信息隐藏:

将系统分成模块,每个模块封装一个重要决策,且只有该模块知道实现细节。决策类型可以是需求、变更,不同的决策之间相互独立。信息隐藏和模块化都在一定程度上促进了简洁性,但是只是体现在外部接口部分。信息隐藏为了处理一些不需要对外表现的决策(内部实现的可修改性)而进行了片段分割,这又在一定程度上牺牲了简洁性而达到了坚固性

3) 运行时注册:

针对系统变化,将可能变化的部分与其他部分解耦,不直接发生程序调用,而是在运行时注册。因为这个技术针对可能的变更而使用,本来可以用一个部件处理的事情,被分解为多个部分,而且这些不同部分之间还有着复杂的交互规则,所以牺牲了简洁性,以提高坚固性(灵活性)

4) 配置式编程:

针对系统变化,主要解决共性与差异性问题。将可能变化的部分写在一个配置文件中,当要发生变化时,直接修改配置文件。因为需要充分考虑可能的变更来组织配置文件,并且需要在系统启动时对配置文件进行解析,所以牺牲了简洁性,以提高坚固性(灵活性)

5) 设计模式:

设计模式牺牲简洁性达到坚固性,保证程序的可维护性和可扩展性。同时,在设计模式中是用同样的方法做同样的事情,因此促进了程序的结构一致性的达成

 

3.设计的层次性

 高层设计、中层设计和低层设计各自的出发点、主要关注因素(即哪些审美要素)、主要方法与技术和最终制品

3.1高层设计

1) 出发点:

弥补详细设计机制的不足,将一组模块组合起来形成整个系统,进行整体结构设计,同时关注系统的质量属性。隐藏详细设计中的导入导出关系和单词匹配,设计带有质量属性的部件component,以及部件之间的关系连接件connector。同时,体系结构也是一系列对系统设计所做的设计决策

2) 主要关注因素:

质量属性,比如可用性、可修改性、效率、安全性、可测试性;

项目环境,包括开发环境、业务环境、技术环境;业务目标。

为了达成以上目标,要求体系结构满足简洁性、一致性、坚固性。

3) 主要方法与技术:

1. 方法:4+1 view、场景驱动、体系结构风格

2. 技术:模块的表示方法可以是box-line、formal language(ADL,架构描述 语言) UML(4+1 view模式使用UML技术实现) 

4) 最终制品:

体系结构设计


3.2中层设计

1) 出发点:

进行模块划分,隐藏一些程序片段(数据结构和算法)的实现细节,暴露接口与外界。可以被反复使用。模块化要做到尽可能独立,模块内部的内聚度高,而模块与外界的耦度低

2) 主要关注因素:

简洁性(易开发、易修改、易复用),可观察性(看上去“显然是正确的”,易开发、易调试、易维护)。目标——完全独立——理解 使用与复用 开发 修改 

3) 主要方法与技术:

1. 低耦合(将模块之间的关系最小化),高内聚(模块内部元素之间的联系最大化)

2. 信息隐藏,一个模块只封装一个secret(主要秘密是需求决策,次要秘密是修改决策),给出要修改部分的接口,隐藏待修改部分的实现细节

3. 结合模块化和信息隐藏的方式,再加上封装、继承、多态等技术,进行面向对象的设计

4) 最终制品:

模块与类结构


3.3低层设计

1) 出发点:

将基本的语言单位(类型与语句)组织起来,建立高质量的数据结构和算法(数据结构合理易用,算法可靠、高效、易读)。屏蔽程序中复杂的数据结构与算法的实现细节

2) 主要关注因素:

数据结构与算法的简洁性(易读)、坚固性(可靠,易维护)。

3) 主要方法与技术:

防御式编程,断言式编程,测试驱动开发,异常处理,配置式编程,表驱动编程,基于状态机编程。前面四个是关于可靠性的,后面三个是关于数据结构带来易读性。

4) 最终制品:

算法与数据结构,单个的函数。源程序,中层,底层共享了详细设计文档




 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章