软件架构的魅力4–读书笔记

构建一个系统架构,最终极的目标就是要让它完美无瑕。美是一种和谐,体系中的每一部分都是有机的组合,增一分则长,减一分则短,可是要做到这一点,绝不是一件容易的事情。

如何保证和提高软件系统的质量,首先要解决的问题是定义和度量问题:
1 软件系统的质量包括哪些方面?
2 如何将质量的各个特性转换为可度量的要求?

1 质量考虑哪些方面:
首先参考文献和通用定义,SEI将一个系统的质量分为Level 0和Level 1两级层级,Level 0分为5大类:Need Satisfaction Measures, Performance Measures, Maintenance Measures, Adaptive Measures, Organizational Measures。
而在实际工作中,可以将质量聚焦在两个大的方面:
A 系统运维质量:当系统运行时的质量要求。包括Functionality, Concurrency, Performance, Security, Availability, Fault Tolerance, Usability, Interoperability, Resource Management等。
B 系统演化质量:系统发展演化所要求的质量。包括Modifiability, Portability, Reusability, Configuration等。

将质量进行分类后,可以将各种分类的处理机制进行归纳总结,形成特定的指导准则,作为”点”上的质量战术,比如Architecture Principle,Design Principle等,以Concurrency为例,指导规则就有以下几个要求:
a Client/Server之间的关系:长链接 or 短链接
b 服务请求的处理:同步 or 异步
c 服务请求的顺序:优先级处理
d 服务种类:服务间依赖性
e 服务时限:无要求 or 有要求
f 服务与资源

解决一系列质量方面的要求时,并非一蹴而就,通常要从”面”上的核心功能与”点”上的质量战术设计上,进行相互结合印证,才能得到一个高质量的架构。

核心功能由于和系统建设要求密切相关,给出一个通用的质量保证流程:
a 清晰界定系统的核心功能
b 界定实现核心功能而必须提供的系统级基础框架
c 清晰构建核心功能之间以及核心功能与基础框架之间的协作与交互
d 综合考虑系统质量的要求,从而使系统核心功能的分布、系统基础框架的分布以及核心功能的协作与交换能够满足系统质量方面的要求

2 衡量系统架构的质量:
衡量质量方面,虽然有DESSA五维模型做参考,但基本上靠系统工程师的个人经验做保证。
A 架构和设计模式的密度(Density)
设计模式的密集度,而且是用得恰到好处。

B 架构的匀称性(Symmetry)
代码的味道

C 架构的简洁性(Simplicity)
KISS, Keep It Stupid Simple.

D 架构的表述能力(Expressiveness)

F 自适应能力(Adaption)

つつぐ

Advertisements
This entry was posted in 读书笔记, 技术思考. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s