图形用户界面(GUI,或更一般的 UI)重要性的上升不再局限于消费市场。UI 设计正迅速成为整个嵌入式领域产品之间的关键差异化因素。只需要 UI 功能而不是引人注目的应用程序正在发展以适应这一趋势。工业和医疗设备已经将 UI 概念从消费者和移动市场中提取出来,用于下一代设备。
随着重要性的变化,UI 的开发方式也发生了变化。UI 开发不再是一个只由嵌入式工程师控制的过程;它包括许多不熟悉嵌入式生命周期的利益相关者。协作工作现在包括 UI 设计师和用户体验(称为 UX)设计师以及嵌入式工程师。
团队中的新角色
这些利益相关者中的每一个不仅带来了他们自己的专业知识,而且还带来了通常与嵌入式开发世界不一致的非常不同的开发环境和流程。以下是对每个利益相关者的职责和开发环境的快速回顾:
嵌入式工程师:负责从中间件到嵌入式系统硬件的应用逻辑。嵌入式工程师使用 C/C++ 代码进行开发,并使用源代码存储库进行协作和保留项目历史记录。
UX 设计师:负责定义产品屏幕、UI 流程、高级应用程序逻辑和呈现给用户的数据。UX 设计师在 Adobe Flash、HTML、Balsamiq Mockups 和类似应用程序中使用草图、线框、流程图和 UI 原型。
UI 设计师:定义图形内容以及屏幕转换和动画。UI 设计师通常使用 Adobe Photoshop 和 Illustrator 等工具以及其他图像编辑器。
除了商定的流程和任务序列化之外,UI 和 UX 设计师都没有标准的协作方法。UI 和 UX 角色偶尔会结合起来以减少协作挑战,但这并不能解决缺乏工具来管理开发期间生成的设计工件的问题。
凭借所有这些不同的技能组合和工作环境,协作成为一项艰巨的任务和潜在的生产力杀手。当工程师和平面设计师必须一起工作时,关注点和开发风格的差异可能会导致严重的流失。许多公司试图通过使用单一资源(嵌入式工程师)来管理 UI 来避免这种冲突。此解决方案适用于非常简单的情况,但不适用于较大的项目,并且如果未满足时间表,则无法将更多资源应用于 UI 开发。
当一个项目通过单一资源进行序列化时,UI 和 UX 设计师通常在实施阶段被边缘化。设计师为项目贡献初始图形内容、图像和线框,然后在软件开发人员实施他们的设计时被排除在开发过程之外。这通常会导致所需的用户体验与最终产品中交付的内容不匹配。
关注点和工具不同
在 UI 界面的开发和发布过程中,UI/UX 设计人员的关注点可能比嵌入式开发者的关注点更重要,后者往往关注处理器使用、内存占用、代码架构、可维护性和重用性。UI/UX 设计师更关注可用性、界面一致性、图形质量和整体用户体验。这些担忧并不总是完全矛盾的。然而,没有平衡的方法很容易扼杀产品的市场吸引力。
为了平衡这些担忧,重要的是让所有利益相关者参与整个开发过程。这说起来容易做起来难,不仅因为不同的技能和关注点,还因为开发环境提供的交叉很少,没有自然的集成。几个问题很快就会浮出水面:
使用小部件库或 C/C++ 开发 GUI 框架会阻止除有经验的嵌入式工程师之外的任何人进行协作。
UI 和 UX 设计师以及产品营销人员需要嵌入式工程师的帮助才能对 UI 进行哪怕是微不足道的更改。
使用设计人员熟悉的高级工具会阻止与代码存储库的集成,并且无法提供有关详细更改或协作和合并能力的有用信息。
在嵌入式项目中,所有开发协作都是通过设计用于处理文本文件的代码存储库完成的,为二进制和专有格式提供最小的回报。
在文本级别查看比较时,将代码存储库与 C 或 XML 文件一起使用并不能展示对 UI 进行微小更改的上下文和后果。
许多非正式工具,如电子邮件、即时消息和 wiki 都被用来尝试解决这些问题。尽管这些工具提供了某些优势,但最终它们仅有助于共享有关项目的信息,而不是与项目相关的工件和可交付成果。这些工具无法在 UI 设计和开发级别实现共享和协作,不包括屏幕设计、屏幕转换、脚本和代码管理以及测试套件等重要元素。
在规模的另一端,源代码存储库提供了一种正式和结构化的方法来捕获项目所代表的基本代码。虽然源代码存储库对于任何大型项目的成功都是必要的,并且已被证明对于软件工程团队的协作是成功的,但它们不足以使非软件开发团队成员能够进行协作。作为一个明显的例子,图形设计师从源代码存储库中获得的价值很少。
视觉协作表面
UI 开发与标准嵌入式系统开发有很大不同,因为随着时间的推移监控 UI 需要一种可视化方法,而不是源代码差异视图来完全理解上下文的变化。在编辑器中查看的源代码更改或 XML 声明性语言对帮助开发人员完全理解更改的真正后果几乎没有帮助(参见图 1)。当检查差异的资源不是对源代码非常了解的嵌入式工程师时,这个问题就会被放大。此外,许多 UI 工具套件涉及代码生成或关键部分的专有二进制组件,因此极难管理。
图 1:在编辑器中查看源代码更改或 XML 声明性语言时,最终用户几乎无法完全理解更改的真正后果。
为了解决这个问题,理想的方法是使用一个工具或一组工具,它不仅以可视化的方式公开 UI 特定元素的变化,而且还与嵌入式开发生命周期的主要协作中心、源代码存储库(参见图 2)。使用可以以任何利益相关者易于理解的级别公开 UI 的每个更改的工具,使所有利益相关者能够并行工作。允许利益相关者充分协作提供了许多好处,包括及早发现 UI 行为中的问题、缩短产品开发时间以及在最终产品中提供更好的用户体验。
图 2: UI 开发的理想方法是使用一个工具或一组工具,以可视方式公开 UI 特定元素的更改。
Crank Software 的 Storyboard Suite 通过创建一个可供所有利益相关者利用的环境来支持可视化 UI 开发。该工具利用 Eclipse 框架作为 Crank Software 的 Storyboard Designer 的基础,其中嵌入式工程师可以利用 Eclipse C/C++ 插件。Storyboard 还有助于解决在监控产品内 UI 演变方面的上下文困境。UI 的视觉差异比较编辑器和对文本差异的支持(用于脚本和编程语言)允许所有项目参与者在与他们相关的上下文中查看产品的历史。使用这样的工具,UI/UX 开发人员可以通过直接从他们熟悉的工具中导入来快速协作地开发 UI。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !