软件架构师的主要职责是什么?是抉择、是权衡。把软件称为艺术一点都没有夸张,可以说软件是科学、工程、与艺术的结合体。软件的艺术体现在权衡上。在这一期的《程序员》杂志上看到了一篇“鱼与熊掌--完美主义架构师的梦魇”,其中关于权衡要素的论述正切合我之所想,现将主要部分转摘如下,如果想了解更详细内容,请在本期程序员阅读全文。
(1)Time or Space 时间 vs. 空间
牺牲内存换取时间或牺牲时间以节省内存是我们常用的伎俩。
(2)Elegancy or Efficiency 优雅 vs. 效率
比如,多态很优雅,却是以效率为代价,而丑陋的函数指针却正好相反。
(3)Fashion or Familiarity 不熟悉的新技术 vs. 熟练的旧技术
是采用最新、能提高开发效率却我们不熟悉的新技术,还是继续使用我们很熟练的但是开发效率低下的陈旧技术了?
(4)Revolution or Evolution 革命 vs. 继承
对于遗留系统,我们是推翻重来,还是在其基础上进行改良重构并增强了?
(5)Under-Design or Over-Design 轻度设计 vs. 过度设计
设计,需要细化到何种程度、需要多长时间?
架构设计的限制始终围绕了软件质量的11要素:正确性、可靠性、有效性、完整性、可用性、可维护性、灵活性、可测试性、可移植性、可重用性、可互操作性。
分享到:
相关推荐
ZigBee协议的性能评估与延迟功耗权衡分析 In this paper, we analyze the superframe structure of the Medium Access Control (MAC) sublayer of IEEE 802.15.4 protocol (ZigBee), designed for Low-Rate ...
这篇文章的标题是《Making a Faster Cryptanalytic Time-Memory Trade-Off》,从这个标题我们可以知道,文章讨论的是一种加密分析中的时间-存储权衡技术,目的是为了提高破解的效率,减少所需的时间,同时减少计算...
### 架构权衡分析方法 (ATAM):软件系统质量属性的核心考量 #### 概述 《架构权衡分析方法》(Architecture Tradeoff Analysis Method, ATAM)是一篇聚焦于软件密集型系统架构设计与分析的重要论文。该论文提出了...
在设计过程中,电路设计师常常面临各种权衡(Trade-offs),这要求他们根据特定的应用需求和设计目标,选择合适的设计方法、技术架构和工艺技术。《模拟电路设计中的权衡》这本书为电路设计师提供了一个全面的参考...
在研究最小均方误差估计(Minimum Mean Square Error Estimation, MMSE)中,维度降低(Dimensionality Reduction)和量化(Quantization)之间的权衡是一个关键问题。在给定的通信带宽下,比特分配问题被表述为一个...
另一方面,安全团队也必须考虑到兼容性和性能的权衡,尤其是在部署代理或者恶意软件防护工具时。 最后,文档中列举了各种加密算法和技术,例如des_cbc_md5、rc4_hmac_nt、aes128_hmac、aes256_hmac等,这些都是用来...
### 实际延时电路在FPGA上的应用:速度与查找表的权衡 #### 引言 在现代集成电路设计中,现场可编程门阵列(FPGA)因其灵活性和高性能而受到广泛青睐。然而,FPGA器件的制造变异性成为了一个不可忽视的问题,这种...
内容简介:软件架构设计是现代软件开发的核心,它不仅是一门技术,更是一门艺术。然而,长期以来,一直没有一本讲述.net架构设计的书。. 本书填补了这一缺憾。两位作者人选可谓众望所归,他们将gof设计模式、...
### FPGA硬件加速器:设计方法学与权衡案例研究 #### 概述 现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)作为一种高度灵活且高效的硬件平台,在众多领域得到了广泛的应用,尤其是在高性能计算、...
#### 三、权衡(Trade-off) 1. **权衡的意义**: 在做出决策时,需在不同方面之间进行平衡。 2. **典型权衡**: - 成本与服务之间的权衡。 - 库存价值与交货速度之间的权衡。 - 仓储成本与交货可靠性之间的权衡。...
### 认知无线电中的频谱感知:要求、挑战与设计权衡 随着无线服务需求的不断增长以及新兴无线设备和应用的涌现,对无线电频谱的需求显著增加。然而,传统频谱管理方法非常僵化,每个运营商仅被授予在特定频率范围内...
Bias-Variance Trade-off是指在模型中权衡bias和variance的关系,以取得最佳的结果。 Model Ensembling 决策树模型可以通过ensemble的方式组合成更强大的模型,即ensemble learning。这种方法可以将多个模型组合...
这部分内容可能包括如何进行架构分析,识别关键的非功能需求,以及如何使用不同的评估技术(如 trade-off analysis 和风险分析)来权衡各种设计决策。 在《软件构架_4.pdf》中,林·巴斯可能会介绍软件演化和演进的...
《健壮的动态混合哈希连接(扩展版)的设计权衡》这篇论文深入探讨了数据库管理系统(DBMS)中至关重要的Join操作,特别是混合哈希连接(Hybrid Hash Join, HHJ)算法的设计与优化。HHJ作为一种高效且广泛应用的连接...
《软件测试艺术》一书由Glenford J. Myers等人撰写,是一本深入探讨软件测试领域的经典著作。这本书从独特的视角——心理学和经济学——出发,为读者揭示了软件测试的本质和重要性。作为一本专为软件测试从业人员...
- 在软件测试过程中,经常需要权衡时间、成本和质量之间的关系。 - 如何在有限的资源下达到最佳的测试效果是一门艺术。 5. **平衡之美**: - 软件测试需要在多个维度之间找到平衡点,如功能完整性和性能优化之间...
《软件体系结构软件架构讲义》是中国系统分析员首席顾问精心编撰的一份详尽教程,共计347页,涵盖了软件架构领域的核心概念、原则、模式和实践。这份讲义旨在帮助读者深入理解软件架构的本质,提升在系统分析与设计...
那其实就是一门权衡的艺术~并且我觉得产品经理和架构师的处境类似~产品经理需要和架构师多沟通才行~(当然这么说的话就针对比较“大”的产品了~对,本文不针对“小”产品)产品经理如何把产品做成功呢?这个是大多数...