- Published on
软件架构的概述和构件
- Authors
- Name
- Jason Yang
- @yangjinlong86
软件架构的概述
- 软件架构是从需求分析到软件设计之间的过渡过程。
- 架构设计就是需求分配,将满足需求的职责分配到组件上。
- 软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
- 软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的关系,提供了一些设计决策的基本原理。
- 解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
- 软件架构设计包括提出架构模型,产生架构设计和进行设计评审等活动,是一个迭代的过程。
- 架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定的系统架构。
- 软件架构能够在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性与内部交互关系。
- 软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
- 软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
- 软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。
软件架构4+1视图
“4+1”视图模型从5个不同的视角来描述软件架构,包括逻辑视图、进程视图、物理视图、开发视图和场景视图。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件架构的全部内容。
- 逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。
- 开发视图:也称为模块视图,主要侧重于软件模块的组织和管理。
- 进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。
- 物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装、通信等问题。
- 场景:可以看作是那些重要系统活动的抽象,它使四个视图有机地联系起来,从某种意义上说,场景是最重要的需求抽象。
构件
- 构件由一组通常需要同时部署的原子构件组成。
- 一个原子构件是一个模块和一组资源。
- 构件是一个独立可交付的功能单元,外界通过接口访问其提供的服务。
构件的特性:
- 独立部署单元
- 作为第三方的组装单元
- 没有外部的可见状态
对象的特性:
- 一个实例单元,具有唯一的标志
- 可能具有状态,此状态外部可见
- 封装了自己的状态和行为
一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。