12.1 软件架构概述

    软件架构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把架构的不同部分组合连接起来。软件架构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。架构问题包括总体组织和全局控制、通信协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件架构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通信、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。
    软件架构包括一个或一组软件构件、软件构件的外部是可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资本措施。具体来说,软件架构具有以下作用:
    (1)软件架构师项目干系人进行交流的手段。架构代表了系统的公共的高层次的抽象。这样,系统的大部分有关人员(即使不是全部)能把它作为建立一个互相理解的基础,形成统一认识,互相交流。
    (2)软件架构是早期涉及决策的体现。架构体现了系统的最早的一组涉及决策,这些早期的约束比起以后的开发、设计、编码或运行服务及维护阶段的工作重要得多,对系统生命周期的影响也大得多。早期决策的正确性最难以保证,而且这些决策也最难以改变,影响范围也最大。软件架构明确了对系统实现的约束条件,决定了开发和维护组织的组织结构;架构制约着系统的质量属性,通过研究软件架构可能预测软件的质量;架构使推理和控制更改更简单,有助于循序渐进的原型设计;架构可以作为培训的基础。
    (3)软件架构是可传递和可重用的模型。架构体现了一个相对来说比较小又可理解的模型。架构级的重用意味着架构的决策能在具有相似需求的多个系统中发生影响,这比代码级的重用要有更大的好处。

猜你喜欢

转载自1971161579.iteye.com/blog/2369837