©️ OverlookArt

软件架构概述

定义

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

生命周期

  1. 需求分析阶段:需求分析和架构设计面临的是不同的对象,一个是问题空间一个是解空间。从软件需求模型向架构模型的转换主要关注两个问题,如何根据需求模型构建架构模型及如何保证模型转换的可追踪性。
  2. 设计阶段:是架构设计研究关注的最早和最多的阶段,这一阶段的架构设计主要包括 架构模型描述、架构模型的设计与分析方法、对架构设计经验的总结与复用等。架构描述的研究分为3个层次,架构的基本概念(构件和连接件)、体系结构描述语言ADL、架构模型的多视图表示。
  3. 实现阶段:研究基于架构的开发过程支持、寻求从架构向实现过渡的途径、研究基于架构的测试技术。
  4. 构件组装阶段在架构设计模型的指导下,将可复用的构件进行组装,能够提高系统的实现效率。在构件组装过程中,架构设计模型起到了系统蓝图的作用。
  5. 部署阶段:提供高层的体系结构视图来描述部署阶段的软硬件模型,基于软件结构模型分析部署方案的质量属性,从而选择合理的部署方案。
  6. 后开发阶段:主要研究维护、演化、复用等方面内容,典型的研究方向包括动态软件体系结构体系结构恢复与重建等。

构件

构件是一个可独立交付的功能单元,外界通过接口访问其提供的服务。

构件是由一组通常需要同时部署的原子构件组成。一个原子构件