28、软件质量属性偏好量化与交互式虚拟环境的模型化设计

软件质量属性偏好量化与交互式虚拟环境的模型化设计

软件质量属性偏好量化分析

在软件开发中,了解不同客户对软件质量属性的偏好至关重要。对于不同客户,通过聚类算法对相似受访者的联合全轮廓响应进行数据合并,能够提高估计的准确性并避免偏差。如果软件工程师旨在开发面向多个客户的高质量软件产品,就需要在正式框架中处理客户的影响以及与开发者的交互。不过,本次研究因只有一个利益相关者,暂不考虑贝叶斯方法。

响应分析

响应分析是整个流程的最后一步。在早期的联合分析中,响应分析方法通常是固定的。常见的分析方法有以下三种:
- 基于回归的方法
- 随机效用模型
- 分层贝叶斯估计

由于偏好判断是近似区间尺度,且部分价值用虚拟变量表示,所以本次采用了普通最小二乘(OLS)回归。同时,统计模型需要通过保留样本和残差分析进行验证。在设计阶段,样本会被分为建模样本和验证样本。残差分析包含了重要且被遗漏的信息,为改进模型提供了线索。

案例研究

以一个行业软件开发项目为例,客户希望开发一个名为 PMCenter 的软件项目管理系统,该系统支持全面的管理活动,包括项目规划、监控、控制和测量分析。

联合分析擅长揭示客户对质量属性的偏好。在审查 ATAM 质量属性并与客户沟通后,选定了五个质量属性:性能、可用性、可修改性、安全性和易用性。具体的属性和级别如下表所示:
| 属性 | 级别 |
| — | — |
| 性能 | 能力、并发性、处理时间 |
| 易用性 | 高效使用、熟练度/测试 |
| 可用性 | 容错性、高可用性 |
| 可修改性 | 变更成本、防止连锁反应 |
| 安全性 | 机密性、完整性 |

由于全轮廓分析利用所有质量属性,让受访者在所有刺激的背景下整体评估每个轮廓,因此选择了全轮廓方法。根据所选属性和级别,可能的场景有 48 种(3×2×2×2×2 = 48)。但评估 48 个场景对客户来说耗时过长,所以采用了实验设计方法。为确保不存在多重共线性,通过 SPSS ORTHOPLAN 采用了正交主效应设计,生成了 8 个场景。每个场景都由客户进行评估和排序,然后基于定义的设计和客户响应,拟合普通最小二乘(OLS)回归模型来估计质量属性的重要性。

联合分析结果表明,客户特别关注易用性和可修改性这两个质量属性,而可用性和安全性对客户来说相对不那么重要。除了质量属性的效用外,按级别划分的质量属性重要性提供了对质量属性的深入研究。这些发现建议软件架构师将这两个质量属性(易用性和可修改性)作为关键质量属性,以使 PMCenter 架构与客户需求最佳匹配。

基于此,PMCenter 项目团队设计了架构,以最大化这两个质量属性,并在架构风格和设计模式的选择上,相对较少地考虑安全性和可用性。与其他架构风格或设计模式相比,分层架构与模型 - 视图 - 控制器(MVC)模式的结合更支持易用性和可修改性。其架构决策的组件和连接器视图展示了分层架构与 MVC 模式如何支持易用性和可修改性。中间层位于客户端和数据服务器之间,通过从客户端获取请求并与数据服务器协作执行适当操作来提供服务。客户端请求的处理在控制器和视图组件之间进行划分。视图组件是 JSP 页面,创建 HTML 响应页面,在浏览器中渲染时确定用户界面。控制器组件不处理任何呈现问题,而是处理来自客户端的所有 HTTP 请求,负责生成视图组件使用的任何 EJB 逻辑 bean 或对象,并根据用户的操作决定将请求转发到哪个视图组件。控制器组件以 Servlet 形式实现,模型组件表示企业数据以及管理对该数据的访问和更新的业务规则。此外,联合分析的定量结果促进了对客户具有高实用性的架构设计,并在做出重要设计决策时促进了团队成员之间的沟通。

总结

联合分析可用于揭示客户在质量属性方面的偏好,从而选择合适的架构风格或设计模式,并构建基于 Web 的项目管理系统的软件架构。在进行 ATAM 过程后,与包括客户在内的利益相关者构建了效用树,其中重要的质量属性与联合分析的结果一致,即易用性和可修改性。此外,联合分析还发现了一些有趣的点,从客户的角度来看,软件架构师应特别注意防止连锁反应,因为客户更看重稳健的软件架构,而不是对返工的担忧。在基于商用现货(COTS)的软件系统开发中采用联合分析更有可能取得成功。传统的访谈方法可能因选择不适当的样本和有限的沟通渠道而导致有偏差的调查结果,而联合分析的变体可以克服这些弱点,促进 COTS 产品的成功开发。由于联合分析在人机交互(HCI)和软件工程中相对较新,该方法已应用于定制软件系统,结果显示其对质量属性偏好测量有积极影响。联合分析可以成为一种方法,通过测量客户偏好、促进平稳过渡和开发高实用性产品,使我们能够开发更具竞争力的软件产品。

交互式虚拟环境的模型化设计

引言

如今,交互式系统不再局限于桌面,一方面它们被部署到手持和嵌入式设备上,另一方面它们演变成了由直接操作交互技术控制的交互式虚拟环境。然而,这些虚拟环境用户界面的开发并非易事,对于非程序员来说尤其如此。为了缩小应用程序设计师和程序员之间的差距,我们提出了一种基于模型的方法来开发交互式虚拟环境(IVEs)。

基于模型的 IVE 开发需求

在指定基于模型的设计过程并开发代码生成工具之前,确定该过程和支持工具所需的要求至关重要。我们尝试结合基于模型的用户界面开发(MBUID)和基于工具包的 IVE 开发这两种不同的开发方法,因此需要对 MBUID 过程和工具以及虚拟环境开发工具和工具包进行研究。

MBUID 设计过程和工具

虽然存在多个 MBUID 环境,但大多数工具关注不同的主题并使用不同的设计过程:
- Cameleon 参考框架 :定义了多上下文交互式应用程序的 UI 开发步骤,包括从任务和概念开始,通过抽象和具体 UI 逐步演变为最终用户界面。每个步骤后用户都可以操作生成的工件。
- TERESA 工具 :基于 Cameleon 框架,专注于多设备用户界面的开发。设计过程从交互式系统要支持的任务的抽象描述开始,通过一系列转换为不同设备生成特定的界面。
- DynaMo - AID :旨在开发上下文敏感的多设备用户界面,使用基于 Dygimes 框架的过程。从表示不同使用上下文任务的任务模型开始,先提取不同的任务集并从中导出对话模型,然后生成抽象 UI,在界面部署到目标设备时将其转换为具体 UI。
- Mobi - D :是一个高度交互式的开发环境,从用户任务引出阶段开始,为生成的用户界面提供测试可能性。用户任务引出从非正式任务描述开始,在设计师的帮助下演变为正式任务大纲,然后开发者创建用户任务和领域模型,接着定义表示和对话模型,最后创建 UI 原型并进行评估。

这些模型 - 基于设计过程在对话或基于 Web 的界面中已证明其价值,但似乎都不能直接用于设计 VE 内的交互。不过,它们展示了一些共同属性,在我们自己的设计过程中会予以考虑:
- 每个过程都从与任务相关的模型开始,采用增量方法逐步发展到最终用户界面。
- 在设计过程的每个步骤之后,设计师都可以手动修改生成的工件。
- 过程应该是迭代的,以便轻松更改、重新生成和评估原型 UI。
- 设计师的手动更改在用户界面重新生成时应得到保留。

VE 开发工具和工具包

虽然有一些工具和工具包可用于促进 IVE 设计过程,但专门为整个 IVE 开发概念化的过程相对较少。这可能是由于 VE 交互的复杂性、输入和输出技术的多样性以及缺乏合适的标准符号等原因。

以下是一些现有的工具和工具包:
- Marigold 工具集 :侧重于通过广泛的可视化工具支持系统地设计、评估和改进交互技术。它由混合规范构建器和原型构建器两个工具组成。但使用 Flownets 符号描述交互并非易事,且原型构建器对非程序员的可用性存在问题,因为它需要代码编辑并使用输入和输出变量等概念。
- CaveLib :是一个用于基于投影设置创建 VR 应用程序的低级 API,特别针对多显示和网络应用程序,不直接支持任何特定的场景图技术。
- VRJuggler :是一个更高级的开发和运行 VR 应用程序的开源平台,在应用程序和设备接口之间引入软件层,提供硬件无关的编程 API。设计师可以通过图形用户界面组合代码块来使用输入和输出设备,但应用程序仍需手动编码。
- OpenManip 框架 :提供对直接对象操作技术的支持,如场景对象的选择和操作,独立于底层场景图技术。
- Alice :是一个图形化编程环境,专门用于创建 IVE 模拟器。即使没有编程经验的环境设计师也可以使用它创建包含基本动画的虚拟场景,更复杂的行为可以通过 Python 脚本实现。

总结

通过对现有 MBUID 过程和工具以及虚拟环境开发工具和工具包的研究,我们确定了设计过程和开发工具所需的要求。在此基础上,我们指定了一个基于模型的设计过程,并开发了名为 CoGenIVE 的工具来支持该过程。通过一个虚拟商店的案例研究对该工具进行了评估,结果表明基于模型的方法在交互式虚拟环境开发中具有一定的优势,能够缩小设计师和程序员之间的差距,促进 IVE 的开发。未来,我们将继续改进该方法和工具,以更好地满足不同用户的需求。

基于模型的设计过程

基于上述对 MBUID 过程和工具以及虚拟环境开发工具和工具包的分析,我们确定了设计过程和开发工具的要求,进而指定了一个基于模型的设计过程。这个过程结合了两种开发方法的优点,旨在为 IVE 的开发提供一个有效的解决方案。

过程概述

整个设计过程可以用以下 mermaid 流程图表示:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(确定任务模型):::process
    B --> C(提取任务集):::process
    C --> D(推导对话模型):::process
    D --> E(生成抽象 UI):::process
    E --> F(转换为具体 UI):::process
    F --> G(评估和修改):::process
    G --> H{是否满足需求?}:::decision
    H -->|是| I([结束]):::startend
    H -->|否| B

从流程图可以看出,该过程从确定任务模型开始,逐步经过提取任务集、推导对话模型、生成抽象 UI、转换为具体 UI 等步骤,最后进行评估和修改。如果不满足需求,则回到确定任务模型步骤进行迭代。

具体步骤
  1. 确定任务模型
    • 收集用户在 IVE 中的各种任务,例如在虚拟商店中,任务可能包括浏览商品、添加到购物车、结算等。
    • 使用合适的符号或工具对任务进行描述,如 ConcurTaskTree 符号。
  2. 提取任务集
    • 从任务模型中分离出不同的任务集合,例如根据不同的用户角色或使用场景。
    • 对每个任务集进行整理和分类。
  3. 推导对话模型
    • 根据任务集,分析任务之间的交互关系和顺序。
    • 确定用户与系统之间的对话流程和规则。
  4. 生成抽象 UI
    • 基于任务集和对话模型,设计抽象的用户界面结构。
    • 不考虑具体的设备和技术细节,只关注界面的功能和布局。
  5. 转换为具体 UI
    • 根据目标设备的特性和要求,将抽象 UI 转换为具体的用户界面。
    • 选择合适的技术和工具进行实现,如 HTML、CSS、JavaScript 等。
  6. 评估和修改
    • 对生成的具体 UI 进行评估,收集用户反馈。
    • 根据反馈对 UI 进行修改和优化,直到满足用户需求。

CoGenIVE 工具

为了支持上述基于模型的设计过程,我们开发了名为 CoGenIVE(Code Generation for Interactive Virtual Environments)的工具。该工具集成了从任务模型到代码生成的整个流程,帮助设计师和程序员更高效地开发 IVE。

工具功能
  • 任务模型定义 :提供直观的界面让设计师定义任务模型,支持多种任务描述符号。
  • 自动转换 :根据定义的任务模型,自动完成任务集提取、对话模型推导、抽象 UI 生成和具体 UI 转换等步骤。
  • 代码生成 :生成可运行的代码,支持多种编程语言和框架。
  • 可视化编辑 :允许设计师对生成的 UI 进行可视化编辑和调整。
  • 评估和反馈 :提供评估工具,收集用户反馈,并根据反馈进行修改。
工具使用步骤
  1. 启动 CoGenIVE :打开工具界面。
  2. 定义任务模型 :在工具中输入任务信息,使用合适的符号进行描述。
  3. 运行转换流程 :点击相应的按钮,让工具自动完成从任务模型到具体 UI 的转换。
  4. 可视化编辑 :在可视化界面中对生成的 UI 进行调整和优化。
  5. 代码生成 :生成最终的代码,并将其部署到目标环境中。
  6. 评估和修改 :使用工具提供的评估功能,收集用户反馈,根据反馈对代码和 UI 进行修改。

案例研究:虚拟商店设计

为了评估 CoGenIVE 工具和基于模型的设计过程,我们进行了一个虚拟商店的案例研究。

设计过程
  1. 确定任务模型 :明确用户在虚拟商店中的主要任务,如浏览商品、查看商品详情、添加到购物车、结算等。
  2. 提取任务集 :根据不同的用户操作,将任务分为浏览任务集、购物任务集等。
  3. 推导对话模型 :分析任务之间的交互关系,确定用户与系统之间的对话流程。
  4. 生成抽象 UI :设计抽象的界面结构,包括商品列表、购物车、结算页面等。
  5. 转换为具体 UI :根据目标设备(如 Web 浏览器)的特性,将抽象 UI 转换为具体的 HTML、CSS 和 JavaScript 代码。
  6. 评估和修改 :邀请用户对虚拟商店进行测试,收集反馈并进行修改。
结果分析

通过案例研究,我们发现基于模型的设计过程和 CoGenIVE 工具具有以下优点:
- 提高开发效率 :自动化的转换流程减少了手动编码的工作量,加快了开发速度。
- 增强设计一致性 :从任务模型到 UI 的统一转换确保了设计的一致性和连贯性。
- 促进团队协作 :设计师和程序员可以在同一个工具中进行协作,减少沟通成本。
- 满足用户需求 :通过评估和修改过程,能够更好地满足用户的需求和期望。

总结与展望

联合分析在软件质量属性偏好量化方面具有重要作用,能够帮助软件架构师根据客户需求设计出更符合实际的软件架构。而基于模型的设计方法在交互式虚拟环境开发中也展现出了显著的优势,通过 CoGenIVE 工具和案例研究,我们验证了该方法能够缩小设计师和程序员之间的差距,提高开发效率和质量。

未来,我们将继续改进联合分析方法和基于模型的设计过程,进一步拓展其应用范围。在软件质量属性偏好量化方面,探索更多的分析方法和技术,以更准确地捕捉客户需求。在交互式虚拟环境开发中,不断完善 CoGenIVE 工具,增加更多的功能和支持,如对更多设备和技术的兼容性,以及更强大的评估和优化功能。同时,我们还将开展更多的案例研究,验证和推广这些方法和工具,为软件开发领域提供更有效的解决方案。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值