软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构建集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织机构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。
- 软件架构风格
软件架构设计的一个核心问题是能否达到架构级的软件复用,能否在不同的系统中,使用同一个软件架构。
软件架构风格是描述某一特定应用领用中系统组织方式的惯用模式(idiomatic paradigm)。架构风格定义了一个系统“家族”,即一个架构定义、一个词汇表和一组约束。
- 数据流风格:数据流风格包括批处理序列和管道/过滤器两种风格。
- 调用/返回风格:调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构。
- 独立构件风格:包括进程通信和事件驱动的系统。
- 虚拟机风格:包括解释器和基于规则的系统。
- 仓库风格:包括数据库系统、黑板系统和超文本系统。
2.软件架构评估
了解两个软件架构评估概念,敏感点(sensitivity point)、权衡点(tradeoff point)。
三类主要的评估方式,分别是基于调查问卷(或检查表)的方式、基于场景的方式和基于度量的方式。
基于场景的方式主要包括:架构权衡分析法、软件架构分析法、成本效益分析法。