Published on

软件架构的概述和构件

Authors

软件架构的概述

  1. 软件架构是从需求分析软件设计之间的过渡过程
  2. 架构设计就是需求分配,将满足需求的职责分配到组件上。
  3. 软件架构为软件系统提供了一个结构行为属性的高级抽象,由构件的描述构件的相互作用(连接件)指导构件集成的模式以及这些模式的约束组成。
  4. 软件架构不仅指定了系统的组织结构拓扑结构,并且显示了系统需求构件之间的关系,提供了一些设计决策的基本原理。
  5. 解决好软件的复用质量维护问题,是研究软件架构的根本目的
  6. 软件架构设计包括提出架构模型,产生架构设计和进行设计评审等活动,是一个迭代的过程。
  7. 架构设计主要关注软件组件的结构属性交互作用,并通过多种视图全面描述特定的系统架构。
  8. 软件架构能够在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构属性内部交互关系
  9. 软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性
  10. 软件架构使推理控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
  11. 软件架构是可传递可复用的模型,通过研究软件架构可能预测软件的质量

软件架构4+1视图

“4+1”视图模型从5个不同的视角来描述软件架构,包括逻辑视图、进程视图、物理视图、开发视图和场景视图。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件架构的全部内容。

  1. 逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。
  2. 开发视图:也称为模块视图,主要侧重于软件模块的组织和管理。
  3. 进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。
  4. 物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装、通信等问题。
  5. 场景:可以看作是那些重要系统活动的抽象,它使四个视图有机地联系起来,从某种意义上说,场景是最重要的需求抽象。

构件

  • 构件由一组通常需要同时部署原子构件组成。
  • 一个原子构件是一个模块和一组资源。
  • 构件是一个独立可交付的功能单元,外界通过接口访问其提供的服务。

构件的特性:

  1. 独立部署单元
  2. 作为第三方的组装单元
  3. 没有外部的可见状态

对象的特性:

  1. 一个实例单元,具有唯一的标志
  2. 可能具有状态,此状态外部可见
  3. 封装了自己的状态和行为

一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。