zoukankan      html  css  js  c++  java
  • 软件架构中质量特性

           thCAFDYPN7
         
          每一种架构模式都有它的优缺点以及潜在风险,选择正确模式来满足需求功能和质量特性是非常重要的.质量特性在需求分析过程中已经定义了, 质量特性可分为三种类型:

    1. 实现特性.

      * 协作性.在内部组件与外界通用访问与交换数据. 协作性需要松散依赖的基础架构.

      * 可维护性与扩展性. 修改系统与方便地扩展的能力.

      * 可测试性. 帮助系统创建测试用例. 可测试性通常需要完整的系统设计与实现文档.

      * 轻便性. 系统级的独立于软件与硬件平台. 系统开发用高级编程语言通常具有这个特性. 一个典例的例子就是JAVA, 大多数JAVA程序编译一次可以在任何地方运行.

      * 伸缩性. 适用增加用户请求量的能力. 系统设计中伸缩性是比较讨厌的瓶颈.

      * 灵活性. 系统易于修改适应于非原始设计的系统不同环境或问题, 系统开发使用面向组件或面向服务的架构通常处理这个特性.

    2. 运行时特性.

       * 可用性. 一个系统应该具有24/7的能力. 可用性通过复制与谨慎设计可应付硬件, 软件, 网络故障来实现.

       * 安全性. 一个系统应对内外界各种类型的攻击. 安全性能通过安装防火墙, 创建认证与授权过程与使用加密.

       * 性能. 增加一个系统效率系统到响应时间, 吞吐量, 资源利用, 通常与其它几个特性呈对立系统.

       * 易用性. 用户使用系统时感到满意. 易用性包含完整性, 正确性, 兼容性几个因素, 也包括友好的用户界面, 完整文档与技术支持.

       * 可靠性. 准确的输出结果. MTTF(平均失效前时间), 从故障中恢复, 故障预测.

       * 可维护性(扩展性, 适用性,可服务性, 测试性, 兼容性, 可配制性, 软件系统易于修改.


    3. 业务特性.

       * 市场时效性. 从需求分析到产品发布之日所需时间.

       * 成本.  构建到运维系统的消耗.

       * 生命周期. 一个产品”存活”到”退休”期间时间

        在大多数情况下,没有一个单一架构模式能同时满足所有质量特性. 软件架构师通常需要在很多特性之间做出权衡. 典型成对应系统质量特生有这些:

    *  空间与时间的取舍.  空间换时间, 或是时间换空间.

    *  可靠性与性能的取舍.  例如, 像CSharp这样的语言实现防止内存溢出可能, 但纯C语言使用指针可以性能高但可靠性低.

    *  可伸缩性与性能的取舍.  例如, 一个典型的方法来提高服务的可伸缩性运用复制服务器。 为了确保所有服务器的一致性,以确保每个服务器都有相同的一致性的数据,整个服务的性能就会受到影响。


       在选择架构模式时,不能满足所有的质量特性,系统分析师或软件架构师需要与客户一起来确定质量特性的优先级。通过枚举备选体系结构设计和计算加权来评价质量属性, 以便软件架构师可以优化设计与选择最合适的方案。


    作者:Petter Liu
    出处:http://www.cnblogs.com/wintersun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    该文章也同时发布在我的独立博客中-Petter Liu Blog

  • 相关阅读:
    利用别名切换索引流程Elasticsearch 7.7
    关于误删除elasticSearch 索引,怎么能快速找回?
    总结traefik 在k8s 环境中的配置文件
    ES ElasticSearch 7.x 下动态扩大索引的shard数量
    Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布
    谈一下Docker与Kubernetes集群的日志和日志管理-转载
    Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践
    Nginx错误日志(error_log)配置及信息详解
    赵总的运维体系专栏学习的总结
    APP或者前端通过识别用户代理详细信息和浏览器数据进行安全防御
  • 原文地址:https://www.cnblogs.com/wintersun/p/3039877.html
Copyright © 2011-2022 走看看