什么是软件架构

本文探讨了「软件架构」的定义,指出它既是决策过程也是结构结果,受到特定约束的影响。架构是在约束条件下做出的决策,包括技术选择、结构设计等,是一个循环递进的过程。文章通过造房子的例子说明了如何在约束下进行决策,最终形成架构。同时,文章提到了架构与设计的关系,强调了架构在系统整体层面的重要性。

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

决策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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值