什么是软件架构中的ASRs(架构需求文档)?

作者:非妃是公主
专栏:《软件工程》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
什么是软件架构中的ASRs(架构需求文档)?_第1张图片

专栏地址

软件工程专栏地址

专栏系列文章

软件工程复习01:软件工程概述

软件工程复习02:个人技术

软件工程复习03:个人软件流程

软件工程复习04:两人合作

软件工程复习05:团体软件流程

软件工程复习06:敏捷流程

软件工程复习07:软件需求

软件工程复习08:典型用户和场景

软件工程复习09:项目管理

软件工程复习10:软件设计与实现

软件工程复习11:软件测试

软件工程复习12:软件质量

软件工程复习13:软件发布

文章目录

    • 专栏地址
    • 专栏系列文章

Architecturally significant requirements(ASRs) are those requirements that play an important role in determining the architecture of the system. Such requirements require special attention. Not all requirements have equal significance with regards to the architecture.
架构上的重要需求(ASRs)是那些在决定系统架构上起重要作用的需求。这些需求需要特别注意。并非所有的需求在架构方面都有同等的重要性。

Architecturally significant requirements are a subset of the requirements that need to be satisfied before the architecture can be considered “stable”. Typically, these are requirements that are technically challenging, technically constraining, or central to the system’s purpose. Furthermore, the system will generally be more sensitive to changes against architecturally significant requirements, so identifying and communicating this subset will help others understand the potential implications of change.
架构上的重要需求是需求的一个子集,在架构被认为是 "稳定的 "之前,需要得到满足。通常,这些需求在技术上具有挑战性,在技术上具有约束性,或者对系统的目的具有核心意义。此外,系统通常会对针对架构上的重要需求的变化更加敏感,所以识别和交流这个子集将帮助其他人理解变化的潜在影响。

Requirements can be explicitly or implicitly architecturally significant. Explicitly significant requirements are often overtly technical in nature, such as performance targets; the need to interface to other systems; the number of users that must be supported; or security requirements. Implicitly significant requirements may define the essence of the functional behaviour of the system (for example, making a purchase from an on-line store).
需求可以是明确的,也可以是隐含的,具有建筑学意义的。明显重要的需求通常是公开的技术性的,如性能目标;与其他系统的接口需求;必须支持的用户数量;或安全要求。隐含的重要需求可能定义了系统功能行为的本质(例如,从一个在线商店购买)。

Deciding whether a specific requirement is architecturally significant is often a matter of judgment. The selection of requirements that are considered “architecturally significant” is driven by several key driving factors:
决定一个具体的需求是否具有架构上的意义往往是一个判断的问题。选择被认为是 "有架构意义 "的需求是由几个关键的驱动因素驱动的:

The benefit of the requirement to stakeholders: critical, important, or useful.
需求对利益相关者的好处:关键、重要或有用。

The architectural impact of the requirement: none, extends, or modifies. There may be critical requirements that have little or no impact on the architecture and low-benefit requirements that have a big impact. Low-benefit requirements with big architectural impacts should be reviewed by the project manager for possible removal from the scope of the project.
需求的架构影响:无,扩展,或修改。可能会有对架构影响很小或没有影响的关键需求,以及有很大影响的低效益需求。对架构影响大的低效益需求应该由项目经理审查,以便可能从项目范围中删除。

The risks to be mitigated: performance, availability of a product, and suitability of a component.
需要缓解的风险:性能、产品的可用性和组件的适用性。

The completion of the coverage of the architecture.
完成架构的覆盖。

Other tactical objectives or constraints, such as demonstration to the user, and so on.
其他战术目标或限制,如向用户展示等。

There may be two requirements that hit the same components and address similar risks. If you implement A first, then B is not architecturally significant. If you implement B first, then A is not architecturally significant. Thus these attributes can depend on the order the requirements are realized, and should be re-evaluated when the order changes, as well as when the requirements themselves change.
可能有两个需求击中了相同的组件并解决了类似的风险。如果你先实现A,那么B就没有架构上的意义。如果你先实现B,那么A就没有架构上的意义。因此,这些属性可能取决于需求实现的顺序,当顺序改变时,以及需求本身改变时,应该重新评估。

The following are good examples of Architecturally Significant Requirements:
The system must record every modification to customer records for audit purposes.
The system must respond within 5 seconds.
The system must deploy on Microsoft Windows XP and Linux.
The system must encrypt all network traffic.
The ATM system must dispense cash on demand to validated account holders with sufficient cleared funds.
以下是架构上的重要要求的好例子。
系统必须记录对客户记录的每一次修改,以便审计。
系统必须在5秒内做出反应。
系统必须部署在Microsoft Windows XP和Linux上。
系统必须对所有的网络流量进行加密。
自动取款机系统必须按要求向有足够清算资金的有效账户持有人发放现金。

Architecturally significant requirements also describe key behaviors that the system needs to perform. Such scenarios represent the important interactions between key abstractions.and should be identified as architecturally significant requirements. For example, for an on-line book store describing the way the software handles the scenarios for ordering a book and checking out the shopping cart are often enough to communicate the essence of the architecture.
架构上的重要需求也描述了系统需要执行的关键行为。这些场景代表了关键抽象概念之间的重要互动,应该被确定为架构上的重要需求。例如,对于一个在线书店来说,描述软件处理订书和检查购物车的场景的方式通常足以传达架构的本质。

引用:Architecturally significant requirements

你可能感兴趣的:(软件工程,架构,软件工程)