软件架构概述
定义
- 软件架构:
从需求分析到软件设计之间的过渡过程
。只要软件架构设计好,整个软件就不会出现坍塌性的错误 - 软件架构就是需求分配,将满足需求的职责分配到组件上。
- 软件架构为软件设计提供了一个结构、行为、和属性的高级抽象,由描述构件与构件之间的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
- 软件架构不仅
指定系统的组织结构和拓扑结构
,还显示系统需求和构件之间的对应关系
,提供一些设计决策的基本原理
。 - 研究软件架构的目的:
解决软件的复用、质量和维护问题
。 - 架构设计包括:
提出架构模型
、产生架构设计
和进行设计评审
等活动,是一个迭代过程。 - 架构设计主要关注:
软件组织结构、属性、交互作用,并通过多种视图全面描述特定系统的架构
。 - 软件架构能够在设计变的相对容易的阶段考虑系统结构的可选方案,
便于技术人员与非技术人员就软件设计进行交互
,能够展现软件的结构、属性与内部交互关系
。 - 软件架构是
项目干系人员进行交流的手段
,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。 - 软件架构使
推理和控制的更改更加简单
,有助于循序渐进的原型设计,可以作为培训的基础。 - 软件架构是
可传递、可复用的模型,通过研究软件架构可能预测软件的质量
。
生命周期
- 需求分析阶段:需求分析和架构设计面临的是不同的对象,一个是问题空间一个是解空间。从软件需求模型向架构模型的转换主要关注两个问题,如何根据需求模型构建架构模型及如何保证模型转换的可追踪性。
- 设计阶段:是架构设计研究关注的最早和最多的阶段,这一阶段的架构设计主要包括 架构模型描述、架构模型的设计与分析方法、对架构设计经验的总结与复用等。架构描述的研究分为3个层次,架构的基本概念(构件和连接件)、体系结构描述语言ADL、架构模型的多视图表示。
- 实现阶段:研究基于架构的开发过程支持、寻求从架构向实现过渡的途径、研究基于架构的测试技术。
- 构件组装阶段:
在架构设计模型的指导下,将可复用的构件进行组装
,能够提高系统的实现效率。在构件组装过程中,架构设计模型起到了系统蓝图的作用。 - 部署阶段:提供
高层的体系结构视图来描述
部署阶段的软硬件模型,基于软件结构模型分析部署方案的质量属性
,从而选择合理的部署方案。 - 后开发阶段:主要研究
维护、演化、复用
等方面内容,典型的研究方向包括动态软件体系结构
、体系结构恢复与重建
等。
构件
构件是一个可独立交付的功能单元,外界通过接口访问其提供的服务。
构件是由一组通常需要同时部署的原子构件组成。一个原子构件