软件架构的学习,软件架构的概念,意义,建模以及常见风格

 学习目标

  听<软件架构相关音频>软件开发架构一节 

 

 待解决问题

  构件的概念 ?

  如何表达一个项目的架构,用什么图表?

  架构设计作为一个系统开发的中间产品,交付的是什么内容?

  各种架构风格的适用场景?

 

 学习内容(耗时:40min)

  •  软件架构是什么 

  软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述,构建的相互作用(连接件)、知道构件集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织架构和拓扑结构,并且显示了系统需求和构建还见的对应关系,提供了一些设计决策的基本原理

  • 架构设计的重要性

架构设计好比房子的钢筋水泥,定下了结构,才能撑的起整个系统.尤其是在大型软件开发中 软件架构的重要性越来越大

需求分析  -- 〉 架构设计 --〉 软件分析

软件架构 应该是项目中的一个可交付的中间产品

  

  • 软件架构的意义(9个意义 )

架构是项目干系人进行交流的手段

架构是早期设计决策的体现

架构明确了对系统实现的约束条件

架构决定了开发和维护组织的组织结构

架构制约着系统的质量属性

架构使推理和控制更改更监督

架构有助于循序渐进的原型设计

架构可以作为培训的基础

架构是可传递和可服用的模型 

 

  • 架构的发展阶段(4个阶段)

无架构设计阶段

萌芽阶段

初级阶段

高级阶段 

  • 如何表示软件架构(软件架构建模)     

结构模型(常用)

核心 架构描述语言

  

框架模型

类似 结构模型 注重整体结构 不描述细节 

 

动态模型(常用)

对结构模型以及框架模型的补充,研究系统"大颗粒"的行为性质 

 

过程模型

研究构造系统的步骤和过程

 

功能模型

认为框架有一组功能构件按层次组成,且下层向上层提供服务.

 

4+1视图模型

逻辑视图

 

开发视图

 

进程视图

 

物理视图

 

场景

 

  • 软件架构风格

常用的软件架构风格。

 

数据流风格

  批处理序列  数据流step by step 从头到尾

  管道过滤器风格 每个构件都有一组输入输出,经过内部处理,产生输出数据流

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~未完待续~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

返回、调用风格

独立构建风格

虚拟机风格

仓库风格