没有天生的高手,更没有永远的菜鸟求知若饥, 虚心若愚

No.9软件架构设计


软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、知道构件继承的模式以及这些模式的约束组成。

软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。

软件架构风格

软件架构设计的 一个核心问题是能否发到架构级的软件复用,也就是说能否在不同的系统中,使用同一个软件架构。

架构风格反映了领域汇总众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。

软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格:

  • 数据流风格:数据流风格包括批处理序列和管道/过滤器两种风格
  • 调用返回风格:包括主程序/子程序、数据抽象和面向对象,以及层次结构
  • 独立构件风格:独立构件风格包括进程通信和事件驱动的系统。
  • 虚拟机风格:包括解释器和给予规则的系统
  • 仓库风格:包括数据库系统、黑板系统和超文本系统。

软件架构评估

软件架构评估是软件开发过程中关键的一步。软件架构评估可以是只针对一个架构,也可以针对一组架构。在架构评估过程中,评估人员所关注的是系统的质量属性。

在分析具体架构评估方法之前,我们来了解两个概念:敏感点和权衡点:

  • 敏感点是一个或多个构件的特性
  • 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式,分别是基于调查问卷(或检查表)的方式、基于场景的方式和基于度量的方式。这三种评估方式中,基于场景的评估方式最为常用。

基于场景的方式主要包括:架构权衡分析法、软件架构分析法和成本效益分析法。

在架构评估中,一般采用刺激、环境和响应三个方面来对场景进行描述。刺激是场景中解释或描述项目干系人怎样引发与系统的交互部分, 环境描述的是刺激放生时的情况,响应是指系统是如何通过架构对刺激做出反应的。

文章评论已关闭!