【软件体系结构】软件体系结构概述

软件体系结构概述

文章目录

  • 软件体系结构概述
    • 1.软件体系结构的意义
    • 2.软件体系结构的定义
    • 3.软件体系结构的发展
    • 4.软件体系结构的优势
    • 5.总结

  软件体系结构学习第一篇,软件体系结构概述。


1.软件体系结构的意义

【软件体系结构】软件体系结构概述_第1张图片

  架构的意义在于充当需求和实现之间的桥梁。更准确来说,整个架构设计在软件生命周期的体现在于概要设计和部分详细设计,上承需求分析,下接代码实现。所以一个软件架构师不仅需要懂得需求分析,而且还需要有经年累积的开发经验。



2.软件体系结构的定义

  软件体系结构没有一个公认的定义,简单来说,**软件体系结构就是充当需求(Requirements)和实现(Implements)之间的桥梁。**正如David Garlan & Dewane Perry 提出的

… bridging the gap between requirements and implementations…


  除此外,还需要掌握的是软件体系结构概念的提出者Mary ShawDavid Garlan所阐述的定义:软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。


  总的来说,综合其他的定义,可以得出如下公式,软件体系结构 = 构件(Component)+连接件(Connector)+约束(Constraint).


  1. 构件

    构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元.它可大可小,即可小到一个函数,又可大到一个子系统。构件应当满足SRP原则,即单一职责原则。


  1. 连接件

    构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元.它可大可小,比如共享变量的访问中共享变量就是一个连接件。而在现实世界的网络中,通信协议就充当了连接件。


  1. 约束

    约束阐明了构件和连接件之间的关系。


举例说明:

e.g1

【软件体系结构】软件体系结构概述_第2张图片


e.g2

数据库表可当做是构件,表的外键可当做是表与表之间的连接件,而表的约束条件就充当约束。



3.软件体系结构的发展

  太早以前的略过,本节了解即可。2000年至今的新架构风格:C/S架构,B/S架构,基于代理的架构,SOA(面向服务的架构)。

  开发架构的很重要的两个点是可维护性和可复用性,很多面向对象设计原则都是为了这两个点服务。



4.软件体系结构的优势

  软件体系结构的优势如下:

  1. 容易理解

    高层抽象,屏蔽细节,以图展示,直观易懂。


  1. 重用

    比如构件的重用,避免重复造轮子。


  1. 控制成本

    根据功能点,或是功能难度(比如登录注册和数据挖掘的区别)来预估成本。


  1. 可分析性

    从不同角度去看待系统,比如银行系统更注重安全性,社交软件更注重及时性等等。



5.总结

  这篇其实主要记住如下几点:

  1. 软件体系结构是需求与实现的桥梁,主要由3C构成(Component,Connector,Constraint),并用两个案例Java单继承,数据库表的约束来辅助理解和记忆。
  2. 软件体系架构现在的New Wave是 C/S,B/S,基于代理的架构,SOA。不管怎么发展,软件架构都会注意两个点,可复用性和可维护性。
  3. 软件架构的优势说白了就是好理解,好赚钱。好理解就是使得系统更容易理解,更容易从不同角度去分析。好赚钱就是重用和控制成本,重用可以缩短开发时间,控制成本可以节省开支预算。

你可能感兴趣的:(软件体系结构,软件体系结构)