什么是软件架构?构架明确了对系统实现的约束条件,如果系统实现遵循构架设计中所作出的关于系统结构的决策,则系统实现将能够体现出结构的特色。架构决定了开发组织的组织结构,构架不仅规定了所开发的软件系统的组织,而且也影响这项目开发组的结构,因为系统的构架中包含了对系统的最高层次的分解。
构架阻止或支持系统的质量属性的实现。系统能否具有所期望的质量属性,主要是有其架构决定的。通过研究构架来预测系统质量,能否在系统开发和部署前就知道做出了适当的构架决策,一些构架评估技巧可使我们自上而下的对按某软件构架开发出来的软件产品的质量属性做出比较准确的预测。
构架使推理判断和控制更改更简单点。一般来说,软件系统的成本大部分花费在初次部署之后,即维护阶段,这一事实正日益引起软件开发团队的重视。构架有助于循序渐进的原型设计,一旦确定了构架们就可以对其进行分析,并将其原型构造成为一个骨架系统。可以通过构架进行更准确的成本和进度估计,成本和进度估计是一个重要的管理工具,它能够使管理人员获得必要的资源并了解项目开发中是否遇到了困难。
在书中的A-7E航空电子系统的构架例子中,分解模块包括硬件隐藏模块、行为隐藏模块、软件决策模块。软件决策模块又包括应用数据类型模块、数据银行家模块、过滤器行为模块、物理模型模块、软件实用程序模块、系统生成模块。使用结构首先是在实现后提取的,一个进程就是若干编程步骤的集合,每当有触发事件或达到事件限制就要重复执行这些编程步骤。一个进程有自己的控制线程。一个进程可以因等待某个事件的发生而将自己挂起。
模块分解描述了各组件之间的设计时关系,他们是可以分配给各开发小组的实现单元,使用结构描述了各组件之间的运行时使用关系,它们是模块中的过程。