Bass、Clements和Kazman对于这个难懂的概念给出了如下的定义:一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。
体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够:
(1)分析设计在满足所规定的需求方面的有效性;
(2)在设计变更相对容易的阶段,考虑体系结构可能的选择方案;
(3)降低与软件构造相关联的风险。
上面的定义强调在任意体系结构的表述中“软件构件”的角色。在体系结构设计的环境中,软件构件简单到可以是程序模块或者面向对象的类,也可以扩充到包含数据库和能够完成客户与服务器网络配置的“中间件”(也可以是作为包含数据库和能够完成客户与服务器网络配置的
“中间件”的扩充)。
软件体系结构的设计通常考虑到设计金字塔中的两个层次一一数据设计和体系结构设计。数据设计体现传统系统中体系结构的数据构件和面向对象系统中类的定义(封装了属性和操作),体系结构设计则主要关注软件构件的结构、属性和交五作用。建立体系结构层“内聚的、良好设计的表示”所需的方法,其日标是提供一种导出体系结构设计的系统化方法,而体系结构设计是构建软件的初始蓝图。
领取专属 10元无门槛券
私享最新 技术干货