什么是软件架构中的ASRs(架构需求文档)?
Posted 非妃是公主
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是软件架构中的ASRs(架构需求文档)?相关的知识,希望对你有一定的参考价值。
作者:非妃是公主
专栏:《软件工程》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
专栏地址
专栏系列文章
文章目录
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
以上是关于什么是软件架构中的ASRs(架构需求文档)?的主要内容,如果未能解决你的问题,请参考以下文章