系统的体系结构描述了其主要组件,它们的关系(结构)以及它们如何相互作用。软件架构和设计包括几个促成因素,例如业务战略、质量属性、人力动态、设计和 IT 环境。
我们可以将软件架构和设计分为两个不同的阶段:软件架构和软件设计。在 体系结构 中,非功能性决策由功能需求进行转换和分离。在设计中,功能要求得到满足。
软件架构
架构是 系统的蓝图 。它提供了一个抽象来管理系统的复杂性,并在组件之间建立通信和协调机制。
此外,它涉及一系列与软件开发相关的组织重大决策,这些决策中的每一个都会对最终产品的质量、可维护性、性能和整体成功产生相当大的影响。这些决定包括——
软件设计
软件设计提供了一个 设计计划 ,描述了系统的元素,它们如何适应,并协同工作以满足系统的要求。制定设计计划的目标如下:
它排在详细设计、编码、集成和测试之前,排在领域分析、需求分析和风险分析之后。
架构的目标
体系结构的主要目标是确定影响应用程序结构的要求。精心布置的体系结构可降低与构建技术解决方案相关的业务风险,并在业务和技术需求之间架起一座桥梁。
其他一些目标如下 -
局限性
软件架构仍然是软件工程中的一门新兴学科。它具有以下限制 -
软件架构师的角色
软件架构师提供技术团队可以为整个应用程序创建和设计的解决方案。软件架构师应具备以下领域的专业知识:
设计专长
领域专业知识
技术专长
方法学专业知识
软件架构师的隐藏角色
架构师的可交付成果
质量属性
质量是衡量卓越或没有缺陷或缺陷的状态的指标。质量属性是独立于系统功能的系统属性。
实现质量属性可以更轻松地区分好系统与坏系统。属性是影响运行时行为、系统设计和用户体验的总体因素。
它们可以分类为 -
静态质量属性
反映与体系结构、设计和源代码直接相关的系统和组织的结构。它们对最终用户是不可见的,但会影响开发和维护成本,例如:模块化、可测试性、可维护性等。
动态质量属性
反映系统在执行过程中的行为。它们与系统的™体系结构、设计、源代码、配置、部署参数、环境和平台直接相关。
它们对最终用户可见,并在运行时存在,例如吞吐量、健壮性、可扩展性等。
质量方案
质量方案指定如何防止故障变成故障。它们可以根据其属性规格分为六个部分 -
常见质量属性
下表列出了软件架构必须具备的常见质量属性 -