数据采集、数据融合、平台能力构建、AI算法支持等方面最新技术实践分享>> 了解详情
写点什么

定义软件架构的 10 个属性

  • 2015-09-05
  • 本文字数:984 字

    阅读完需:约 3 分钟

软件架构是一套流程;一系列将规格和业务目标映射为架构设计和具体产出的策略性设计决策;一套在区分不同利益相关者的过程中产出的视图, Michael Stal 陈述了怎样定义一个软件架构 .

Stal 是一个软件工程系教授,西门子的首席工程师,对他来说,架构的目标是建立实现的支柱。他相信早期提出的定义常常会与专注于组件协作混淆。他觉得应该思考一下属性,所以他添加了 9 个额外的属性到他的列表中。

任何件密集型系都展出一个系架构。Stal 声称系统必然存在一个架构,即使是那些基于临时决策开发的系统。对他来说需要的是一个由明确定义、已确定优先顺序与相关性的需求及风险所驱动的系统化架构设计。

有两架构 **** 品质。外部品质定义了品质属性所需的可视行为,而内部品质定义了被开发者所采纳的如简化和富表现力的属性。

一套一的指和工具必能指架构 **** 设计。对 Stal 来说这是达成高品质必不可少的条件。指导方针能帮助避免架构在各种设计模式和技术中变得臃肿而减低内部品质。

件架构作为具体产出就是设计决策沟通的结 **** 果。所有架构决策必须是明确的且根据不同的利益相关角色责任而描述出来。架构是初始代码框架设计和定义的基础。

件架构必包含问题 **** 域和解决方案域。Stal 注意到这个属性推理出多层设计不是一个架构。他同时注意到要避免庞大的设计,两个领域都应该构建子领域,且软件架构活动行为的组织由这些子领域所驱动,而不是组织本身去驱动,可以参考 Conway’s law

Stal 的最后 4 个属性主要是针对架构设计在整个系统生命周期中如何跨度,架构设计如何遵循测试驱动方法,为此架构必须与其环境保持分离,它在特定领域内定义了由多个系统所组成的系统。

在与 InfoQ 的一次访谈中, Stefan Tilkov 认为 Stal 的文章写得很好但 Tilkov 注意到他可以不将架构视为一套独立于开发的流程,他将架构看作是项目的一个功能和组织的大小。他也提到与将架构看成“系统的描述或系统想要的形式”不同,他觉得架构是“系统所拥有的某种东西”,无论架构是如何被创建的。

查看英文原文 10 Properties Defining Software Architecture


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-05 19:003461

评论

发布
暂无评论
发现更多内容

作业一

dll

知识中台,驱动产业智能化升级

百度开发者中心

知识图谱

CSS 自适应内容宽度的输入框

编程江湖

MySQL分区表简介

soap said

:MySQL 数据库

大数据开发之通过 Spark 来扩展 Presto

@零度

大数据 spark

在线时间加减计算器

入门小站

工具

专访 | 滴滴青桔资深设计师首次揭秘“实时云渲染+云展厅”设计

3DCAT实时渲染

云计算 云渲染 云展厅

流处理组件Flume使用攻略

编程江湖

专注实时云渲染技术,3DCAT赋能行业伙伴云化转型

3DCAT实时渲染

云计算 VR/AR 渲染

前端开发之JQuery的综合应用

@零度

jquery 前端开发

龙蜥社区一周动态 | 1.10-1.14

OpenAnolis小助手

Linux 开源 社群

组件通信、硬件池化,这些创新技术你get了吗?|HDC2021技术分论坛

HarmonyOS开发者社区

HarmonyOS

我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式

华为云开发者联盟

Java 工厂模式 工厂方法模式 简单工厂模式 抽象工厂模式

好用易用的主机监控系统哪里有?主要监控指标包含哪些?

行云管家

运维 IT运维 主机监控 网络监控

中国边缘云基础设施服务市场份额,百度智能云第一

百度开发者中心

边缘计算 边缘云

线上流量对比应用实践

得物技术

架构 数据 流量 实践 流量回放

Hadoop小文件问题产生及解决方案

五分钟学大数据

hadoop 1月月更

Linux之diff命令

入门小站

Linux

Java正则表达式语法大全

编程江湖

作业3

dll

知识库进化论 | 华创资本对话 ONES & 为知笔记创始人

万事ONES

Android技术分享| 自定义View实现使用更方便的SeekBar

anyRTC开发者

android 音视频 移动开发 白板 SeekBar

使用php-amqplib实现RabbitMq

Owen Zhang

php RabbitMQ php-amqplib

2022年企业数字化技术应用10大趋势

易观分析

银行数字化转型 企业数字化 后疫情时代企业应对策略 十四五规划

18 Prometheus之PromQL介绍

穿过生命散发芬芳

Prometheus 1月月更

作业2

dll

定义软件架构的10个属性_架构_Jan Stenberg_InfoQ精选文章