迭代和增量方法
它是一种迭代和增量方法,由五个主要步骤组成,有助于生成候选解决方案。通过重复这些步骤,可以进一步完善这个候选解决方案,并最终创建最适合我们应用程序的架构设计。在流程结束时,我们可以审查我们的架构并将其传达给所有相关方。
这只是一种可能的方法。还有许多其他更正式的方法来定义、审查和传达您的架构。
确定架构目标
确定构成架构和设计过程的架构目标。完美和明确的目标强调架构,解决设计中的正确问题,并有助于确定当前阶段何时完成,并准备好进入下一阶段。
此步骤包括以下活动:
- 从一开始就确定您的架构目标。
- 确定我们架构的使用者。
- 确定约束条件。
体系结构活动的示例包括生成原型以获取有关 Web 应用程序的订单处理 UI 的反馈、生成客户订单跟踪应用程序以及设计应用程序的身份验证和授权体系结构以执行安全审查。
关键场景
这一步将重点放在最重要的设计上。场景是对用户与系统交互的广泛描述。
关键方案是那些被认为是应用程序成功的最重要方案。它有助于做出有关体系结构的决策。目标是在用户、业务和系统目标之间实现平衡。例如,用户身份验证是一个关键方案,因为它们是质量属性(安全性)与重要功能(用户如何登录系统)的交集。
应用概述
构建应用程序概述,使体系结构更易于触摸,将其与现实世界的约束和决策联系起来。它包括以下活动:
确定应用程序类型
确定应用程序类型,无论是移动应用程序、富客户端、富 Internet 应用程序、服务、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)
此方法表示系统模型的三个视图。功能需求视图(从用户的角度看系统的功能需求,包括用例);静态结构视图(对象、属性、关系和操作,包括类图);以及动态行为视图(对象之间的协作以及对象内部状态的更改,包括序列图、活动图和状态图)。
|