3.5软件架构
3.5.1软件架构定义
在软件工程发展的初期,人们把软件设计的重点放在数据结构和算法的选择上。随
着软件系统规模越来越大、越来越复杂,整个系统的结构设计和规范说明显得越来越重
要,人们逐步认识到了软件架构的重要性。
软件总是有架构的,不存在没有架构的软件。将软件系统划分成多个模块,明确各
模块之间的相互作用,组合起来实现系统的全部特性,就是系统的架构。通常将一些经
过实践证明的、可重复使用的软件架构设计策略总结成架构模式,以便与他人交流、供
他人学习。软件架构借鉴了计算机架构和网络架构的许多思想和方法,近年来得到了极
大的发展。
对于软件架构这一概念,迄今为止还没有一个公认的定义,可将其简单理解为:软
件架构为软件系统提供了一个结构、行为和属性的高级抽象,并由构成系统的元素的描
述及元素的相互作用、元素集成的模式以及这些模式的约束组成。软件架构不仅确定了
系统的组织结构和拓扑结构,还显示了系统需求和构成系统的各元素之间的对应美系,
提供了一些设计决策的基本原则。需要注意如下几点。
(1)软件架构是一个程序或系统的构件的结构、构件间的关系以及控制构件设计演
化的原则和方针。
(2)一个系统的软件架构由一组构件、构件间的连接件、构件和连接件的配置以及
如何结合在一起的约束限制的描述组成。
(3)在计算的算法和数据结构之外,设计并确定系统整体结构成了新的问题。结构
问题包括总体组织结构和全局控制结构、通信、同步和数据访问的协议、设计元素的功
能分配、物理分布、设计元素的组成、可扩展性与性能、备选设计的选择等。
(4)软件架构所关心的是软件构件及软件构件间的组织结构、约束和关系,是对系
统的组成、系统结构及系统如何工作的较为宏观的描述。
各省软考办 | ||||||||||