深度探讨 什么是软件架构?

本文探讨什么是「软件架构」,并对其下个定义!

决策or组成?

如果你去google一下「什么是软件架构」,你会看到各种各样的定义!不过大致可分为「决策」论和「组成」论!

其中一个比较著名的「决策」论的定义是Booch,Rumbaugh和Jacobson于1999年提出的:

架构就是一系列重要的决策,这些决策涉及软件系统的组织、组成系统的结构化元素及其接口的选择、元素之间协作时特定的行为、结构化元素和行为元素形成更大子系统的组合方式以及引导这一组织(也就是这些元素及其接口)、他们之间的协作以及组合(架构风格)。

而「组成」论中最受推崇的是SEI(Software Engineering Institute)的Len Bass等人提出的定义:

The software architecture of a program or computing system is the structure or structures of the system,which comprise software elements,the externally visible properties of those elements,and the relationships among them.

Fielding博士在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中对软件架构的定义是这样的:

A software architecture is an abstraction of the run-time elements of a software system during some phase of its operation. A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture.
软件架构是软件系统在其操作的某个阶段的运行时的元素的抽象。一个系统可能由很多层抽象和很多个操作阶段组成,每个抽象和操作阶段都有自己的软件架构。

这其实也是「组成论」!不过这里说的是系统运行时的快照

为什么会出现这样的分歧呢?我觉得主要问题在每个人对「架构」这个词的理解!

我先来问你一个问题,你觉得「架构」这个词是名词还是动词?或者说「架构」是一个过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值