架构技术
迭代和增量方法
这是一种迭代和增量方法,由五个主要步骤组成,有助于生成候选解决方案。可以通过重复这些步骤进一步完善此候选解决方案,最终创建最适合我们应用程序的架构设计。在流程结束时,我们可以审查并将我们的架构传达给所有相关方。
这只是一种可能的方法。还有许多其他更正式的方法可以定义、审查和传达您的架构。
确定架构目标
确定构成架构和设计流程的架构目标。完美而明确的目标强调架构,解决设计中的正确问题,并有助于确定当前阶段何时完成,并准备进入下一阶段。
此步骤包括以下活动 −
- 在开始时确定您的架构目标。
- 确定我们架构的消费者。
- 确定约束。
架构活动的示例包括构建原型以获取有关 Web 应用程序的订单处理 UI 的反馈、构建客户订单跟踪应用程序以及设计应用程序的身份验证和授权架构以执行安全审查。
关键场景
此步骤强调最重要的设计。场景是对用户与系统交互的广泛而全面的描述。
关键场景是那些被认为是应用程序成功最重要的场景。它有助于做出有关架构的决策。目标是在用户、业务和系统目标之间实现平衡。例如,用户身份验证是一个关键场景,因为它们是质量属性(安全性)与重要功能(用户如何登录系统)的交集。
应用程序概述
构建应用程序概述,使架构更易于触及,并将其与现实世界的约束和决策联系起来。它由以下活动组成 −
识别应用程序类型
识别应用程序类型,无论是移动应用程序、富客户端、富互联网应用程序、服务、Web 应用程序还是这些类型的某种组合。
确定部署约束
选择合适的部署拓扑并解决应用程序与目标基础架构之间的冲突。
确定重要的架构设计风格
确定重要的架构设计风格,如客户端/服务器、分层、消息总线、领域驱动设计等,以改进分区并通过提供经常重复出现的问题的解决方案来促进设计重用。应用程序通常会使用多种风格组合。
确定相关技术
通过考虑我们正在开发的应用程序类型、我们首选的应用程序部署拓扑和架构风格选项来确定相关技术。技术的选择还将受到组织政策、基础架构限制、资源技能等因素的影响。
关键问题或关键热点
在设计应用程序时,热点是最常出错的区域。根据质量属性和横切关注点确定关键问题。潜在问题包括新技术的出现和关键业务需求。
质量属性是架构的整体特性,会影响运行时行为、系统设计和用户体验。横切关注点是我们设计的特性,可能适用于所有层、组件和层。
这些也是最常犯高影响设计错误的领域。横切关注点的示例包括身份验证和授权、通信、配置管理、异常管理和验证等。
候选解决方案
定义关键热点后,构建初始基线架构或第一个高级设计,然后开始填写详细信息以生成候选架构。
候选架构包括应用程序类型、部署架构、架构风格、技术选择、质量属性和横切关注点。如果候选架构有所改进,它可以成为创建和测试新候选架构的基线。
在迭代过程中,根据已定义的关键场景和需求验证候选解决方案设计,然后迭代并改进设计。
我们可以使用架构尖峰来发现设计的特定领域或验证新概念。架构尖峰是一种设计原型,可确定特定设计路径的可行性,降低风险并快速确定不同方法的可行性。根据关键场景和热点测试架构尖峰。
架构审查
为了减少错误成本并尽早发现和修复架构问题,架构审查是最重要的任务。这是一种行之有效、经济有效的降低项目成本和项目失败几率的方法。
在重大项目里程碑时以及响应其他重大架构变更时频繁审查架构。
架构审查的主要目标是确定基线和候选架构的可行性,从而正确验证架构。
将功能需求和质量属性与提议的技术解决方案联系起来。它还有助于识别问题并确定需要改进的领域
基于场景的评估是审查架构设计的主要方法,该方法侧重于从业务角度来看最重要的场景,以及对架构影响最大的场景。以下是常见的审查方法 −
软件架构分析方法 (SAAM)
它最初是为评估可修改性而设计的,但后来被扩展为审查架构的质量属性。
架构权衡分析方法 (ATAM)
它是 SAAM 的完善和改进版本,它根据质量属性要求审查架构决策,以及它们如何满足特定的质量目标。
主动设计审查 (ADR)
它最适合不完整或正在进行的架构,这些架构更侧重于一次关注一组问题或架构的各个部分,而不是执行一般性审查审查。
中间设计主动审查 (ARID)
它结合了审查正在进行的架构的 ADR 方面,重点关注一组问题,以及基于场景的审查的 ATAM 和 SAAM 方法,重点关注质量属性。
成本效益分析方法 (CBAM)
它专注于分析架构决策的成本、收益和进度影响。
架构级可修改性分析 (ALMA)
它评估业务信息系统 (BIS) 架构的可修改性。
系列架构评估方法 (FAAM)
它评估信息系统系列架构的互操作性和可扩展性。
传达架构设计
完成架构设计后,我们必须将设计传达给其他利益相关者,包括开发团队、系统管理员、运营商、企业主和其他相关方。
有以下几种众所周知的向他人描述架构的方法:−
4 + 1 模型
此方法使用完整架构的五个视图。其中,四个视图(逻辑视图、过程视图、物理视图和开发视图)从不同角度描述了架构。第五个视图显示了软件的场景和用例。它允许利益相关者查看他们特别感兴趣的架构功能。
架构描述语言 (ADL)
此方法用于在系统实现之前描述软件架构。它解决了以下问题:行为、协议和连接器。
ADL 的主要优点是,我们可以在正式开始使用设计之前分析架构的完整性、一致性、模糊性和性能。
敏捷建模
此方法遵循"内容比表示更重要"的概念。它确保创建的模型简单易懂、足够准确、详细且一致。
敏捷模型文档针对特定客户并完成该客户的工作。文档的简单性确保利益相关者积极参与工件的建模。
IEEE 1471
IEEE 1471 是正式称为 ANSI/IEEE 1471-2000 的标准的简称,"软件密集型系统架构描述的推荐实践"。IEEE 1471 增强了架构描述的内容,特别是赋予上下文、视图和观点特定的含义。
统一建模语言 (UML)
此方法表示系统模型的三个视图。 功能需求视图(从用户角度出发的系统功能需求,包括用例);静态结构视图(对象、属性、关系和操作,包括类图);以及动态行为视图(对象之间的协作以及对象内部状态的变化,包括序列、活动和状态图)。