• 质量属性分析


    忽视质量属性需求在内的非功能性需求是很致命的。

     

    关于质量属性,以下几方面的认识是很重要的

    1. 软件质量属性可以划分为运行期质量属性和开发期质量属性两种。为了满足性能、持续可用性登运行期质量方面的需求,架构师必须深入研究软件系统运行期间的情况,合理划分系统不同部分的职责,权衡轻重缓急,并指定相应的并行、分时、排队、缓存、批处理等设计决策;而要满足可扩展性、可重用性等开发期间质量需求,则要求架构师深入研究软件系统开发期间的职责划分、变化隔离、框架使用、代码组织等情况,制定相应的设计决策。
    2. 各类需求对架构设计的影响不同,不同质量属性对架构的要求也不同,例如,为了获得高可移植性,架构设计中必须考虑对硬件和平台相关特性进行封装和隔离。
    3. 众多属性需求之间往往有冲突,我们必须权衡。

     

    质量属性分析是概念性架构设计的重要步骤,概念性架构包括一些高层次的设计选择,对未来软件系统的质量和功能都起着关键作用。设计概念性架构的第一步是分析关键用例的用例规约,运用鲁棒图构造系统理想化的职责模型。接下来,明确架构模式,确定交互机制,形成初步的概念性架构。最后,还要通过质量属性分析,制定出满足非功能性需求的高层设计决策,并根据这些设计决策对此前的工作成果进行增强、调整,以保证概念性架构体现这些设计决策。

     

    所谓质量属性分析,就是软件架构师对软件系统要达到的质量属性需求进行分析、制定相应的软件架构设计决策的过程。

     

    我们可以使用‘属性—场景—决策’的方法来进行质量属性分析,它提倡通过一组具体场景将要达到的质量属性需求目标细化,再根据这些实实在在的场景制定架构决策。在使用过程中,它可操作性强、符合人们思维的规律,同时还为评估软件架构设计质量提供了‘可评测’的标准。

     

    ‘属性—场景—决策’的好处:

    1. 可操作性强
    2. 避免过度设计,通过权衡场景发生的概率和遗漏它的代价,可以决定是否应该满足该场景的要求。
    3. 便于系统升级时参考,在进行架构重构时,可以很快得到旧有架构在质量属性方面的决策考虑。

    参考文献:

    《软件架构设计》   温昱

  • 相关阅读:
    GC垃圾回收算法
    Docker+nginx部署Springboot+vue前后端分离项目
    报错 ImportError: cannot import name 'AsyncContextManager'
    Python+Selenium定位不到元素(报错:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element)
    淘宝网的发展史及其优缺点
    Python旅途——函数(1)
    正则表达式 -允许输入数字和小数点后两位
    表单的resetFileds函数重置为初始值而非清空数据
    做一个全局登录弹窗,任何地方访问
    浏览器到服务器的跨域问题
  • 原文地址:https://www.cnblogs.com/wing011203/p/1266172.html
Copyright © 2020-2023  润新知