27、界面模式自动评估与软件架构质量属性偏好量化测量

界面模式自动评估与软件架构质量属性偏好量化测量

1. 界面模式自动评估

在界面设计中,模式混乱是一个常见且影响用户体验的问题。为了解决这个问题,我们可以采用一系列的算法和方法来自动评估界面模式。

1.1 核心算法
  • 冗余判断函数 redundant :该函数用于判断一个术语是否冗余。以下是其代码实现:
def redundant(term t):
    red = false
    for (c in EQC):
        for (q in c):
            if (not(q == rep(c)) and t == pq):
                red = true
    return red
  • 新术语生成函数 newTerms :此函数用于生成新的术语。代码如下:
def newTerms(int n):
    Seeds = Novel
    Novel = {}
    for (t in Seeds):
        for (e in Unique):
            if (not(redundant(t.e))):
                classify(t.e)
  • 等价类计算主算法 computeEquivClasses :该算法是计算等价类的核心,代码如下:
def computeEquivClasses(int n):
    C = {Id}
    r(C) = Id
    EQC = {C}
    Novel = {}
    for (e in E):
        classify(e)
    Unique = Novel
    if (n > 1):
        i = 1
        do:
            newTerms(i)
            i++
        until:
            (i > n) or Novel = {}

这个算法会对连续的 n 值进行计算,直到达到边界或者该循环不再引入新的术语。当不再引入新术语时,我们称等价类达到饱和状态,此时任何更大术语的分类都可以从现有分类中代数计算得出,进一步的分类就没有意义了。

1.2 模式识别

在计算出术语集的等价类后,我们可以生成定义动作模式的代数属性。具体来说,通过比较等价类对 C1 C2 ,看是否存在一组状态 m ,使得 go(m).φ(C1) ≡ go(m).φ(C2) ,即 C1 C2 的矩阵在对应 m 状态的行上是等价的。如果满足这个条件,那么 m 就是由属性 φ(C1) ≡ φ(C2) 定义的动作模式。

然而,这个过程可能会为非平凡界面返回过多的模式,因此需要对潜在模式进行修剪。可以采取以下几种方法:
- 强制设置 m 的最小模式大小。
- 对属性大小设置边界(将相同事件的重复视为单个事件)。
- 将一组相似的模式泛化为单个模式。
- 设计师可以审查和过滤生成的模式,选择他们认为对进一步分析有用的模式。

2. 软件架构质量属性偏好的量化测量

软件架构在软件开发中变得越来越重要,它决定了早期的设计决策,对后续开发有重大影响。而质量属性在评估软件架构中起着关键作用,通过结合联合分析,我们可以更有效地分析软件架构中质量属性之间的权衡。

2.1 软件架构与 ATAM 方法

用户在软件开发中通常更关注功能需求,但软件质量属性(非功能需求)同样重要。软件架构是系统组件的组织方式,它给软件工程师带来了设计问题。

架构权衡分析方法(ATAM)由软件工程研究所开发,用于评估架构级设计,考虑多个质量属性,如可修改性、性能、可靠性和安全性,以确定架构是否能满足要求。然而,ATAM 缺乏对客户效用的定量测量。

2.2 联合分析

联合分析是一种通过产品和服务的效用权衡来测量客户偏好的技术。它可以将产品的效用表示为其属性效用的总和,公式如下:
[U = u_1(QA_1) + u_2(QA_2) + \cdots = \sum_{i\in attributes} u_i(QA_i)]

联合分析的优势在于它基于明确的数据收集过程,通过让客户对设计集进行排序或比较,揭示隐藏的客户偏好。其过程可以用以下 mermaid 流程图表示:

graph LR
    A[质量属性选择] --> B[质量属性水平确定]
    B --> C[质量属性组合确定]
    C --> D[获取客户判断的方法确定]
    D --> E[判断聚合方式确定]
    E --> F[结果分析]

具体步骤如下:
1. 质量属性选择 :根据目标系统和目标确定合适的质量属性。例如,不同类型的系统(如基于 web 的系统或实时系统)可能需要不同的质量属性集。
2. 质量属性水平确定 :质量属性水平应相互排斥且全面,以充分代表质量属性。同时,要确保向客户呈现的场景具有现实性。
3. 质量属性组合确定 :为避免客户评估过多相似的架构配置文件而疲劳,通常使用分数阶乘设计和正交计划来确定质量属性组合。但正交性假设有时不现实,因此可能需要其他设计方案来检测属性之间的相关性。
4. 获取客户判断的方法确定 :可以通过评级、排序等方式获取客户的判断。常见的呈现方法包括向客户展示配置文件卡片、段落描述、图片材料或实际原型。
5. 判断聚合方式确定 :如果有多个受访者,需要确定如何收集和表示他们的判断。

通过联合分析,软件工程师可以识别和关注有用的质量属性,提高交付令客户满意的软件产品的机会。同时,它为选择架构风格和设计模式提供了新的框架。

界面模式自动评估与软件架构质量属性偏好量化测量

3. 联合分析在 ATAM 中的应用

联合分析在 ATAM 中起到了桥梁的作用,能够帮助架构师挖掘客户对架构的偏好。在 ATAM 中运用联合分析,需要以下四个关键组件:
|组件|描述|
|----|----|
|质量属性|是进行分析的基础,不同的目标系统和目标会影响质量属性的选择。|
|实验设计|基于质量属性制定合适的设计计划,以引出客户的架构偏好。|
|场景生成|将设计计划进行定制和细化,使其符合客户的口味。|
|分析|对客户的评估结果进行统计数据分析,揭示客户的架构偏好。|

3.1 联合分析的具体流程

联合分析的流程包含六个步骤,具体如下:
1. 质量属性选择 :这是联合分析的第一步,要定义质量属性。软件工程研究所对质量属性进行了研究,这些质量属性可作为联合分析的候选属性。目标系统的类型(如基于 web 的系统或实时系统)和目标会影响质量属性的选择。例如,实时 Java 为了提高性能去除了很多功能,这就导致性能和可维护性、可配置性等方面存在冲突。利用先验信息可以进行有效且高效的研究设计,减少后续的冗余任务。
2. 质量属性水平确定 :这一步要确定质量属性的水平。质量属性由质量属性水平组成,这些水平应相互排斥且全面,这样才能充分代表质量属性。以性能这个质量属性为例,它可以由能力、并发性和处理时间等水平构成。为了让客户准确识别偏好,质量属性水平可以有不同的定义方式。同时,向客户呈现的场景要具有现实性,相比基于原型的呈现方式,基于场景的呈现方式有一定的局限性,因此可以利用视觉图像、音视频媒体结合文本信息来克服这些局限,为客户提供更真实、详细的场景,帮助他们准确、轻松地揭示偏好。

graph LR
    A[质量属性选择] --> B[质量属性水平确定]
    B --> C[确定质量属性水平的具体方式]
    C --> D[保证场景现实性]
    D --> E[克服场景呈现局限性]
  1. 质量属性组合确定 :此步骤是确定质量属性的组合。如果让客户对过多的架构配置文件进行排序,他们会因为评估大量相似的配置文件而感到疲惫。为了避免这种情况,减少需要评估的场景数量,通常会使用分数阶乘设计和正交计划。根据帕累托层次排序原则,重要因素的数量较少,低阶因素比高阶因素更可能重要。所以,这种方法比较实用且相对简单。然而,正交性假设有时不现实,因为两个或三个质量属性可能存在相关性,对软件质量至关重要。因此,需要其他设计方案来检测这些模式。如果没有先验信息,可以先使用设计方案找出重要因素,再使用分数阶乘设计来研究质量属性之间的交互模式。这种两阶段设计策略有助于放宽正交假设,识别交互作用。
  2. 获取客户判断的方法确定 :有多种方法可以获取客户的判断,如评级、排序等。常见的呈现方法是向客户展示配置文件卡片或段落描述,也会经常使用图片材料或实际原型来增强产品特征呈现的现实性。配置文件通常不会包含所有属性,因此会使用分数阶乘设计,将属性进行仔细划分,使每个配置文件包含部分不同的属性。在计算机辅助的情况下,配对比较很常见,客户会被要求从两个候选对象中选择一个来揭示偏好,并重复这个过程。
  3. 判断聚合方式确定 :当有多个受访者时,需要确定如何收集和表示他们的判断。可以采用多种方式进行聚合,如加权平均、中位数等,具体的聚合方式要根据实际情况选择。
  4. 结果分析 :对客户的判断进行聚合后,要进行结果分析。通过统计分析等方法,可以得到每个质量属性的效用值,从而了解客户对不同质量属性的偏好程度。根据这些结果,软件工程师可以对软件架构进行优化,提高软件的质量和客户满意度。
4. 总结与展望

界面模式自动评估和软件架构质量属性偏好的量化测量为界面设计和软件开发提供了重要的方法和工具。界面模式自动评估的相关算法可以帮助设计师发现和解决模式混乱问题,提高界面的可用性。而软件架构质量属性偏好的量化测量通过联合分析,能够深入了解客户对质量属性的偏好,为软件架构的设计和选择提供科学依据。

在未来的研究和实践中,还可以从以下几个方面进行改进和拓展:
- 算法优化 :对于界面模式自动评估的算法,可以探索更高效的实现方式,以应对大规模系统的分析需求。例如,采用动态规划等方法来提高算法的效率,减少计算时间和资源消耗。
- 联合分析的深化 :进一步完善联合分析的过程,考虑更多的因素和场景,提高测量结果的准确性和可靠性。例如,研究如何更好地处理质量属性之间的交互作用,以及如何在不同的文化和用户群体中应用联合分析。
- 工具开发 :开发更实用的工具,将这些方法集成到软件设计和开发的流程中,为设计师和工程师提供更便捷的操作。例如,开发可视化工具,让设计师可以直观地看到不同质量属性的组合和效果,以及界面模式的评估结果。
- 用户体验研究 :结合用户体验研究,深入了解用户在实际使用中的需求和反馈,不断优化界面设计和软件架构。可以通过用户测试、问卷调查等方式收集用户的意见,将这些意见反馈到设计和开发过程中。

通过不断地研究和实践,这些方法和工具将能够更好地服务于界面设计和软件开发,提高软件的质量和用户满意度。

带开环升压转换器和逆变器的太阳能光伏系统 太阳能光伏系统驱动开环升压转换器和SPWM逆变器提供波形稳定、设计简单的交流电的模型 Simulink模型展示了一个完整的基于太阳能光伏的直流到交流电力转换系统,该系统由简单、透明、易于理解的模块构建而成。该系统从配置为提供真实直流输出电压的光伏阵列开始,然后由开环DC-DC升压转换器进行处理。升压转换器将光伏电压提高到适合为单相全桥逆变器供电的稳定直流链路电平。 逆变器使用正弦PWM(SPWM)开关来产生干净的交流输出波形,使该模型成为研究直流-交流转换基本操作的理想选择。该设计避免了闭环和MPPT的复杂性,使用户能够专注于光伏接口、升压转换和逆变器开关的核心概念。 此模型包含的主要功能: •太阳能光伏阵列在标准条件下产生~200V电压 •具有固定占空比操作的开环升压转换器 •直流链路电容器,用于平滑和稳定转换器输出 •单相全桥SPWM逆变器 •交流负载,用于观察实际输出行为 •显示光伏电压、升压输出、直流链路电压、逆变器交流波形和负载电流的组织良好的范围 •完全可编辑的结构,适合分析、实验和扩展 该模型旨在为太阳能直流-交流转换提供一个干净高效的仿真框架。布局简单明了,允许用户快速了解信号流,检查各个阶段,并根据需要修改参数。 系统架构有意保持模块化,因此可以轻松扩展,例如通过添加MPPT、动态负载行为、闭环升压控制或并网逆变器概念。该模型为进一步开发或整合到更大的可再生能源模拟中奠定了坚实的基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值