`
elicer
  • 浏览: 133373 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

架构分解原则

 
阅读更多
Reference Url:http://www.ibm.com/developerworks/cn/rational/1312_wanggb_arch/index.html

软件架构分解

对复杂的大规模软件系统,软件架构分解是架构设计中必不可少的关键步骤。通过分解识别架构元素,同时也是解决非功能需求的重要手段之一。好易科技CTO王国波在“软件架构分解”一文中从架构的定义出发,对架构形而上的本质给出了自己独特的理解。在架构设计上提出了架构分解过程模型和多维度多层次分解模型。他总结的架构分解原则包括:

    低耦合、高内聚:莱布尼兹指出:“分解的主要难点在于怎么分。分解策略之一是按容易求解的方式来分,之二是在弱耦合处下手,切断联系”。在弱耦合处下手,切断联系。太精辟了!高内聚、低耦合也是软件设计的基本原则,软件设计中的很多设计原则其实都可以认为它的派生或具体化,如单一职责原则、依赖倒置原则、模块化封装原则,这些原则在架构分解中也是适用的。
    层次性:分解通常是先业务后技术,循序渐进,先逻辑后物理,从上到下逐级进行分解展开:系统->子系统->模块->组件->类。
    正交原则:和物理学中的正交分解类似,架构分解出的架构元素应是相互独立的,在职责上没有重叠。
    抽象原则:架构元素识别,在较大程度上是架构师抽象思维的结果,架构师应该具备在抽象概念层面进行架构构思和架构分解的能力。
    稳定性原则:将稳定部分和易变部分分解为不同的架构元素,稳定部分不应依赖易变部分。根据稳定性原则,将通用部分和专用部分分解为不同的元素;将动态部分和静态部分分解为不同的元素;将机制和策略分离为不同的元素;将应用和服务分离。
    复用性原则:就是对知识的重用.重用类似系统已有的架构设计、设计经验、成熟的架构模式或参考模型、设计模式、领域模型、架构思想等,因为它们已经在不同的层次上分解识别出了许多架构元素,或者指出了一些分解方向,对我们的架构分解具有借鉴和指导作用。例如 IBM SOA 解决方案参考模型对 SOA 服务化具有重要的指导意义,我们可以参照它对系统进行初步的架构分解。
分享到:
评论

相关推荐

    互联网并发应用架构设计(某东商城架构)

    京东商城架构设计中包含了多种架构分解原则,如水平扩展、垂直拆分、业务分片和水平拆分等,以提高系统的并发能力和处理效率。例如,读写分离、多机房部署、数据库分库分表和功能非功能的分离都是为了提升系统性能和...

    京东应用架构设计---免费

    架构分解原则涵盖了水平扩展、垂直拆分、业务分片和水平拆分等策略。水平扩展(复制)和读写分离是提升数据库并发处理能力的有效方法。垂直拆分则是将不同的业务系统分开,实现应用解耦。业务分片是指将业务根据功能...

    JAVA架构设计原则与J2EE必读书目推荐

    2. **模块化原则**:模块化是指将软件分解成一系列独立的模块,每个模块负责一个具体的任务。这种设计方式可以提高系统的灵活性和可维护性,同时也便于进行团队协作。 3. **接口实现分离原则**:这一原则提倡通过...

    软件架构之组织原则与模式.rar

    1. **模块化**:模块化是软件架构的基础,通过将系统分解为独立的模块,可以提高代码的可读性和可维护性。每个模块负责特定的功能,模块之间通过明确的接口进行通信。 2. **单一职责原则**:每个模块或类应有且只有...

    CTO如何在职场混的七中武器

    3. **架构分解原则**: - 水平扩展:通过实现应用系统的集群部署和数据库的读写分离来提升系统的并发处理能力。 - 垂直拆分:根据不同的业务领域对应用系统进行划分,同时对数据库进行按业务领域的分割。 综上所...

    软考系统架构设计师-论云原生架构及其应用范文

    云原生架构可以将应用分解为多个服务,每个服务可以选择不同的技术,单个服务模块很容易开发、理解和维护,无需协调其他服务对本服务的影响。 在云原生架构中,强韧性的设计原则可以使微服务分布式云化部署,负载...

    .NET应用程序架构设计 原则 模式与实践pdf高清影印版,请安心下载

    5. **接口隔离原则(ISP)**:客户端不应该被迫依赖它不需要的接口,接口应该被分解为更小、更具体的接口。 接下来,书中会介绍多种设计模式,这些模式是解决常见问题的最佳实践。例如: 1. **工厂模式**:提供一...

    《架构的基本原则》PPT课件.ppt

    此外,良好的架构还需要考虑集成性、概念完整性、可完成性、可移植性、可重用性、可修改性和可分解性,以支持系统的长期演进和维护。 总的来说,《架构的基本原则》课件提供了指导软件架构设计的理论基础,帮助从业...

    .NET应用程序架构设计 原则 模式与实践

    5. **微服务架构**:将大型应用程序分解为一组小型、独立的服务,每个服务都围绕特定业务能力构建。 6. **领域驱动设计(DDD)**:以业务领域为中心进行软件设计,强调模型的业务逻辑和语言一致性。 7. **事件驱动...

    软件架构:组织原则与模式

    《软件架构:组织原则与模式》是一本深入探讨软件设计核心概念的重要著作,它旨在帮助开发者和架构师更好地理解和实践软件构建过程中的关键原则和模式。本书内容丰富,涵盖了软件架构设计的多个方面,旨在提升软件...

    eBay架构设计原则、策略、模式

    eBay的架构设计原则、策略和模式为其他类似规模的平台提供了宝贵的指导。 首先,我们要关注的核心是**可扩展性(Scalability)**。这意味着系统的设计应该能够随着负载的增加而线性地或更高效地利用资源。为了应对...

    NET应用架构设原则、模式与实践.pdf

    4. 依赖倒置原则:在.NET架构设计中,高层模块不应依赖于低层模块,两者都应该依赖于抽象。此外,抽象不应依赖于细节,细节应依赖于抽象。通过接口或抽象类来定义依赖关系,可以降低模块间的耦合度。 5. 工厂模式:...

    华为企业架构之业务架构设计方法.pptx

    业务架构设计的目的在于确保企业所有人员对业务有一个共同理解,将宏观的企业战略进行分解,从战略范畴落实到战术范畴,通过运营支撑业务目标达成。 业务架构设计的原则包括: 1. 战略驱动:业务架构要符合XXX电网...

    2021年下半年系统架构设计师下午真题及答案解析

    在本资源中,我们还将探讨系统架构设计师考试中的其他重要知识点,包括架构设计模式、架构设计原则、系统架构设计师的角色和责任等。 本资源是系统架构设计师考试的重要参考资料,涵盖了系统架构设计师考试中的重要...

    软件架构--软件架构讲义

    5. **模式与原则**:用于解决常见问题的标准解决方案,如微服务架构、事件驱动架构等。 在实际工作中,软件架构设计遵循一些基本原则: 1. **分层原则**:将系统分解为多个层次,每个层次负责特定任务,降低复杂性...

Global site tag (gtag.js) - Google Analytics