热门问题
时间线
聊天
视角
架构重要需求
来自维基百科,自由的百科全书
Remove ads
架构重要需求(Architecturally significant requirements)是对软体架构有重大影响的需求[1]。需求可能是软体需求,也可能是硬体需求。
和非功能需求和品质属性的关系
人们大约在2016年才认知到“架构重要需求”概念的重要性。在探讨架构时,常会提到非功能需求或是品质属性[2],不过近期的实证研究发现,对于软体系统来说,不是每一个非功能需求都会影响其软体架构,而且,相反的,有些功能性的软体需求也会影响架构[1][3]。此研究建议,在讨论软体架构时,除了识别需求是功能需求还是非功能需求之外,也要识别哪些需求是架构重要需求[3]。
特征
架构重要需求可以由以下几个层面来挑选[1]。
架构重要需求多半不容易定义,也不容易表达清楚,一般会用含糊的方式描述,一开始很容易被省略,常会藏在其他的需求中,而且是主观、易变、和情境有关的。其他的需求也常常会有这些叙述式特征,不过因为架构重要需求的重要性,让这些更加特殊且具挑战性。
若有一个需求的影响广泛、会影响权衡取舍、有严格限制(有限制,无法妥协)、需要打破假设、或是很难达成,很有可能就是架构重要需求。
文献中有提到以下架构重要需求的指标:
- 需求伴随著高商业价值,或是高技术风险。
- 此需求受到特定利害关系人的关注。
- 此需求是头一次实施,目前使用的架构中的组件都没有负责此一需求。
- 此需求的服务品质(QoS)或服务级别协议(SLA)特性和此架构可以满足的特质都不同。
- 在之前专案中,曾有类似内容的需求出现预算趣超支或是客户不满意的情形。
OpenUP[4]和Peter Eeles[5]都讨论过其他判断架构重要需求的准则。在2020年软体架构欧洲研讨会中也讨谕过一些:商业价值或风险、利害关系人的关注、品质水准、外部相依关系、交叉领域、第一次实施、其他专案的问题来源等"Architectural Significance Test". [2023-01-09]. (原始内容存档于2023-03-19).。
Remove ads
提取
就像所有的非功能需求以及品质属性一样[6],架构重要需求也需要符合SMART原则。品质属性场景(Quality attribute scenarios)[2] 是一种达到SMART原则中S(特定)和M(可衡量)的方式。软体工程学院则建议使用Quality Attribute Workshops[7]。也曾有人建议要维持架构分析以及设计的轻量化,易于修改,特定应用分类以及技术领域的品质属性树(quality attribute trees)可以支持这种作法[8]。
很重要的向其他人说明所提取的架构重要需求及其他架构产出物,利用对目标受众(尤甚是商业利害关系人)容易理解的表达方式及语言来说明[9]。
影响
在软体设计中会考虑架构重要需求,而且会影响架构决策,也可以用来证明架构决策的合理性。若没有满足架构重要需求,可能会累积技术债务。例如,没有符合安全或是法规的需求,会让系统以及流程保证稽核变的复杂,也会增加稽核时发现漏失的可能性[10]。有些文献有提到如何处理系统品质属性(以及架构重要需求)[11][12]。
参考资料
相关条目
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads