《系统架构:复杂系统的产品设计与开发》——第3章,第3.5节对复杂系统进行思索

简介:

本节书摘来自华章出版社《系统架构:复杂系统的产品设计与开发》一书中的第3章,第3.5节对复杂系统进行思索,作者[美]布鲁斯·卡梅隆,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.5对复杂系统进行思索
系统思考者在对复杂系统进行分析或综合时,可以使用许多技巧来帮助自己思考。
3.5.1自顶向下及自底向上式的思考
自顶向下(top-down)和自底向上(bottom-up)是思考系统时的两种方向。本书的绝大部分内容都是按照自顶向下的方式来阐述的。我们先从系统的目标开始,然后思考概念及高层架构。在制定架构时,我们会反复地对架构进行细化,并在我们所关注的范围内,把架构中的实体分解到最小。这种方法相当于系统工程V字模型中的左侧部分[2]。
与之相对的思考方式是自底向上。也就是先思考工件、能力或服务等最底层的实体,然后沿着这些实体向上构建,以预测系统的涌现物。除了这两种方式外,还有一种办法是同时从顶部和底部向中间行进,这叫做由外向内(outer-in)的思考方式。
设计Team XT时,我们主要用的是自顶向下的方式,先确定系统及其功能,然后对系统进行分解,并确定其内部的各种过程。Team XT所在公司的CEO当然也可以用自底向上的办法来思考,例如CEO决定把16个最为合适的员工请到某间办公室,叫他们自己去组织一个团队,并研拟一套最有效的设计方案。
真正复杂的系统实际上是没有顶和底的,因此,我们在现实的工作中总是会使用由内向外(middle-out)的办法,也就是在系统层级中选定一个点,然后试着由该点开始,向上或向下探索1~2层。好的架构师应该要能够运用所有这四种方法。

3.5.2交替思考
Zigzagging(交替思考、Z字形思考)是Nam Suh在研究公理化设计(axiomatic design)时提出的一个术语[3]。Suh发现,我们在思考系统时,思维会在形式领域和功能领域之间来回切换,也就是先在其中某个领域尽可能久地进行思考,然后再换到另一个领域。
我们一开始在思考Team XT时,先认清了该团队的功能,那就是“研发设计方案”。然后切换到形式领域,并且确定了小组这一形式概念。把团队分解成小组之后,我们又切换回功能领域,思考每个小组都要完成什么功能,同时也思考“研发设计方案”这一功能应该如何涌现出来。在思考系统的其他层面时,我们依然可以运用这种在形式与功能之间反复跳跃的思维模式。

相关文章
|
2月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
215 3
|
10天前
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
|
9天前
|
网络协议 安全 中间件
系统架构设计师【第2章】: 计算机系统基础知识 (核心总结)
本文全面介绍了计算机系统及其相关技术,涵盖计算机系统概述、硬件、软件等内容。计算机系统由硬件(如处理器、存储器、输入输出设备)和软件(系统软件、应用软件)组成,旨在高效处理和管理数据。硬件核心为处理器,历经从4位到64位的发展,软件则分为系统软件和应用软件,满足不同需求。此外,深入探讨了计算机网络、嵌入式系统、多媒体技术、系统工程及性能评估等多个领域,强调了各组件和技术在现代信息技术中的重要作用与应用。
21 3
|
21天前
|
Cloud Native Devops 持续交付
探索云原生架构:构建高效、灵活和可扩展的系统
本文将深入探讨云原生架构的核心概念、主要技术以及其带来的优势。我们将从云原生的定义开始,了解其设计理念和技术原则;接着分析容器化、微服务等关键技术在云原生中的应用;最后总结云原生架构如何助力企业实现数字化转型,提升业务敏捷性和创新能力。通过这篇文章,读者可以全面了解云原生架构的价值和应用前景。
|
21天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
27 3
|
22天前
|
缓存 运维 NoSQL
二级缓存架构极致提升系统性能
本文详细阐述了如何通过二级缓存架构设计提升高并发下的系统性能。
|
2月前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
41 5
|
2月前
|
存储 API 持续交付
探索微服务架构:构建灵活、可扩展的后端系统
【8月更文挑战第25天】 本文将引导您理解微服务架构的核心概念,探讨其对现代后端系统设计的影响。我们将从基础讲起,逐步深入到微服务的高级应用,旨在启发读者思考如何利用微服务原则优化后端开发实践。
42 4
|
2月前
|
消息中间件 运维 监控
核心系统转型问题之经典单元化架构如何解决
核心系统转型问题之经典单元化架构如何解决
|
2月前
|
运维 Cloud Native 容灾
核心系统转型问题之单元化架构对于自研可控场景该如何支持
核心系统转型问题之单元化架构对于自研可控场景该如何支持
下一篇
无影云桌面