zoukankan      html  css  js  c++  java
  • 基于框架的应用系统开发的质量属性

         架构设计则为满足架构需求的质量属性寻找适当的战术。对如何实现特定的质量属性感兴趣。质量需求指定了软件的响应,以实现业务目标。我们感兴趣的是设计使用设计模式、架构模式或架构策略创建设计的“战术”。     

    系统设计是由决策集合组成。对设计师来说,每个战术都是一个设计选择。例如,其中一个战术引入了冗余,以提高系统的可用性。这是提高可用性的一个选择但是不是唯一选择。

    我们将每个系统质量属性的战术组织为层次形式,但是每个层次只是为了说明一些战术,而且任何战术列表都肯定是不完成的。

    1. 可用性战术

    恢复和修复是可用性的重要方面,为了阻止错误发展成故障,至少能够把错误限制在一定的范围内,从而使修复成为可能。维持可用性的所有方法包括某种类型的冗余,用来检测故障的某种类型的健康监视,以及当检测到故障时某种类型的恢复。有些情况下,监视或恢复是自动进行的,有时需要手动。我们事项考虑错误检测,然后分析错误恢复,最后讨论错误预防。

    2. 可修改性战术

    可修改战术的目标是控制实现、测试和部署变更的时间和成本。把可修改性战术根据其目标进行分组。一组可修改性战术目标是减少由某个变更直接影响的数量。这组称为“局部化修改”。另一组可修改战术的目标是限制对局部化的模块的修改。这组称为“防止连锁反应”。两组之间的差别是有直接受变更影响的模块(那些调整其责任来完成变更的模块)间接受变更影响的模块(那些责任保持不变,但必须改变其实现来适应直接受影响的模块)。第三组战术的目标是控制部署时间和成本。我们把这组战术叫做“延迟绑定时间”。

    实现该战术的模式包括:

    1.添加接口。大多数编程语言允许多个接口。可以通过新接口提供最新的可见的服务或者数据,从而使得现有的接口保持不变并提供相同的签名。

    2.添加适配器。给A添加一个适配器,该适配器把A包装起来,并提供原始A的签名。

    3.提供一个占位程序A。如果修改要求删除A,且B仅依赖于A的签名,那么为A提供一个占位程序能够使B保持不变。

    3. 性能战术

    性能战术的目标就是对在一定的时间限制内到达系统的事件生成一个响应。事件到达后系统或者对该事件进行处理,或者由于某些原因处理被阻塞。下面是产生响应时间的两个基本因素:资源消耗和闭锁时间

    资源消耗:包括CPU、数据存储、网络通信带宽和内存,但它也可以包括由设计中的特定系统所定义的实体。例如必须对缓冲器进行管理,并且对关键部分的访问必须是按顺序进行的。事件可以是各种类型的,每种类型的事件都经过了一个处理序列。

    4. 安全性战术

    安全性战术分为:与抵抗攻击有关的战术、与检测攻击有关的战术以及从攻击中恢复有关的战术。给门装锁就是在抵抗攻击,在房子中放一个运动传感器就是在检测攻击,给房子上保险就是从攻击总恢复。

    1> 抵抗攻击。

    我们把认可、机密性、完整性和保证确定为目标。可以组合使用下面的战术来实现这些目标。

    1.对用户身份验证。身份验证能够保证进行访问的用户或远程计算机确实是它所声称的用户或计算机。密码、一次性密码、数字证书以及生物识别均提供身份验证。

    2.对用户进行授权。授权能够保证经过了身份验证的用户有权访问和修改数据或服务。这通常通过在系统中提供一些访问控制模式进行管理。可以对单个用户进行访问控制,也可以对某一类用户进行访问控制。也可以根据用户分组、用户角色或个人列表定义用户类。

    3.维护数据的机密性。应该对数据进行保护,以防止未经授权的访问。一般通过对数据和通讯链路进行某种形式的加密来实现机密性。另一方面,通信链路一般不具有授权控制,对于通过公共可访问的通信链路传数据来说,加密是唯一的保护措施。对基于web的链路,可以通过VPN或者SSL来实现该链路。

    4.维护完整性。应该如期提供数据,数据中可能有冗余信息、如校验或哈希值,他们可以与原始数据一起进行加密,也可以单独加密。

    5.限制暴露的信息。攻击者通常会利用暴露的某个弱点来攻击主机上的所有数据和服务。设计师可以设计服务在主机上的分配,以使只能在每个主机上获得有限的服务。

    6.限制访问。防火墙根据消息源或目的地端口来限制访问。来自未知源的消息可能是某种形式的攻击。限制对已知源的访问并不总是可行的,例如,一个公共网站上可能会有来自未知源的请求。这种情况中使用一个配置就是所谓的解除管制区。

    5. 可测试性战术

    可测试性战术目标是允许在完成一个软件开发的增量后,轻松地对软件进行测试。我们对两类用于测试的战术进行讨论:提供输入并捕获输出;内部监视。

    6. 易用性战术

    易用性与用户完成期望任务的难易程度以及系统为用户提供的支持种类有关。有两种类型的战术支持易用性,每种战术所针对的是两种类别的“用户”。第一类是运行时,包括那些在系统运行期间支持用户的战术。第二类基于用户接口设计的迭代特性,它在设计时支持接口开发人员。

    7. 战术与架构模式的关系

    Active Objcet设计模式将方法执行从方法调用中分离出来,以增强并发,并简化对驻留在其自身控制线程中的对象的同步访问。

    该模式由6个元素组成:代理,它提供了允许客户对主动对象调用公共访问方法的接口;方法请求,它定义了用于执行主动对象的方法的一个接口;激活接口,它维持了挂起方法请求的一个缓冲器;调度程序,它决定接下来执行什么方法请求;附属,他定义可建模为主动对象的行为和状态;将来,它允许客户获得方法调用的结果。

    8. 架构模式和样式

    软件中架构模式与建筑物中的架构样式类似,它由几个将他们组合起来以维持架构完整性的关键特性和规则组成。架构模式由以下几个因素确定:

    一组元素类型(如数据存储库或计算数学函数的组件)

     

  • 相关阅读:
    [开源项目]蓝点无限TWR算法-多基站多标签固件
    [开源项目] 蓝点无限 UWB Python版本上位机
    记一次RabbitMQ的脑裂(网络分区)问题
    使用Docker持久化部署SQL Server
    .NET---Exceptionless 轻量级的分布式日志管理平台
    python性能测试工具locust
    Javascript —— 线转树 or 树转线
    记录一个生僻知识点 —— JS字符模板替换
    车证识别工具|行驶证识别工具|行驶证识别OCR工具免费版V3.0.0.0
    C# CAD 凹凸点识别最大轮廓
  • 原文地址:https://www.cnblogs.com/twentytwo/p/5504305.html
Copyright © 2011-2022 走看看