薛静
(西安铁路职业技术学院,电子信息学院,西安 710600)
在现代行业不断发展的过程中,业务复杂程度在不断的提高,导致行业软件的界面逻辑也越来越复杂,所以软件用户界面设计和开发要以一定的原则及思路为基础,从而设计及开发高质量用户界面[1]。但是从目前情况中分析,国内软件界面开发处于起步阶段,缺少可继承性,代码管理较为混乱,无法实现软件开发的持续发展。本文就首先分析计算机软件的用户界面特点,然后提出了以组态软件为基础的软件界面开发方式,此方法要使开发人员能够实现组态技术软件界面分割归类,将其中可复用组件进行抽取,创建可复用的组件库,从而提高软件界面设计过程中的规范性,使软件界面开发效率得到进一步的提高。
能够影响到视觉和知觉的主要因素就是具备较强刺激性的因素,包括颜色搭配中的亮度、饱和度、对比度等。人们对颜色都是通过第一感觉进行判断的,人在看到某种颜色的时候哪个颜色最深,那么其就会具有深刻的印象,颜色能够将物体特性及外观展现出来[2]。颜色能够对人心理造成不同程度的刺激,这是一种生理性的反应,不会影响到人体的生理机能。在生活过程中,红色表示故障、危险等刺激性事物,绿色表示宁静、安逸及舒适等;黄色表示注意、提醒。所以在实现用户界面设计的过程中,要和这些规律相互结合,和人习惯性的观念相互一致。
人在对于某种视觉作用中主要展现了对于事物规律的搜索,简单来说就是人在大多视觉感官刺激中会从其中选择某个特殊刺激,这些寻求特殊目标对象就是目标刺激,还有对人们寻找目标刺激妨碍的为干扰刺激[3]。视觉搜索主要包括串行搜索及并行搜索。串行搜索能够处理所有感知事物,在对大量干扰刺激排除之后,最终寻找目标刺激。干扰刺激指的是在人们搜索过程中会具有一定的阻碍,对时间造成浪费。并行搜索能够在视觉相同时间中处理全部视觉刺激。以此表示,串行搜索刺激主要是在目标及干扰刺激中具有较小的差别,并行搜索在目标和干扰刺激的视觉特点差距较大的时候使用,此种搜索方法能够降低搜索时间[4]。
软件用户界面在设计过程中要全面考虑人知识,此就是低级认知层面,还有高级别就是记忆层面。人们在对计算机操作过程中使用短期记忆,其只能够短时间保存事物,存储量比较小,一般五个模块左右。在实现软件要用户界面设计的过程中,如果界面中的信息比较多,且缺少用户界面的设计,那么界面就会比较的混乱,从而导致搜索困难。人机工程设计要充分使用记忆规律,在系统内容复杂的时候界面要将信息作为按钮,利用页面控件进行控制,从而避免因为盲目搜索浪费时间,还能够避免记忆混乱[5]。
针对目前软件界面设计和开发过程中的问题,以下实现基于组态技术的软件用户界面设计方式,要求所有用户都能够实现统一界面风格的设计,其中内容主要包括固定不变及可变。此方法中的组件属于可复用小界面,此界面开发语言不同。为了能够降低投资的风险,此方法使用逐渐实现方式,基于已有开发模式,对组件可复用性进行逐渐的完善,通过此种方式对组件可复用性进行完善[6]。在组件管理过程中使用组件库方式实现多种功能,以组态技术为基础的软件界面开发结构,如图1所示。
图1 以组态技术为基础的软件界面开发结构
通过图1可以看出来,软件用户界面的开发方式主要包括3个部分。首先,要产生组件,通过项目组前台开发人员一起实现,对具有较高复用性的软件模块进行提炼。在项目组完善核心组件之后,根据相应的特点添加全新的组件。然后将产生的初始组件存储到组件库中,创建组件库管理机制。最后在软件开发过程中,软件界面开发人员要根据组件库出库管理检索组件库,之后提出自身所需要的组件,实现组件复用。以下为软件界面设计部分代码:
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC);
pBitmap->LoadBitmap(IDB_TITLE_LEFT); pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);
pDC->BitBlt(x,y, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY);
pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
ReleaseDC(pDisplayMemDC);
delete pDisplayMemDC;
delete pBitmap;
在界面设计和开发过程中,不管是哪种环境,其开发的系统都要具备一定的重复性。在软件界面设计过程中具有二类复用价值的组件,所以软件界面设计和组件化的开发就是对二类可复用组件的出入库管理。但是要想实现真正复用,就要具备良好的组件库,组件入库属于重点。在软件界面设计及开发过程中,在组件编写人员测试组建成功之后保证组件能够正常运行,以组件具体的功能对组件进行定义,制作可复用组件。在此过程中,组件命名属于关键,要使此命名能够表示组件完整的功能,根据操作系统文件名的长度能够实现文件的自由扩展,从而实现标识。以下为组件标识的部分主要代码设计:
Class IClassFactory : public IUnknown
{
METHOD(CreateInstance)( IUnknown * pUnkOuter,
IID riid, void ** ppvObject) = 0;
METHOD(LockServer)(BOOL bLook) = 0;
};
CoGetClassObject ,CoCreateInstance,CoCreateInstanceEx。
STDAPI CoGetClassObject(
REFCLSID rclsid, //rclsid:class-id
DWORD dwClsContext, //dwClsContext
COSERVERINFO * pServerInfo, //pServerInfo
REFIID riid, //riid
LPVOID * ppv //ppv
);
组件属于软件复用的实现,其质量和复用效果具有密切的联系,良好的出库流程能够使后继开发人员实现软件界面设计。在组建出库的时候,检索属于关键内容。检索的流程就是创建数据库的基础,在此过程中要充分考虑组建功能、接口及使用的范围相应参数。就目前分析,此过程就是手工及自动选择的相互结合。在软件开发过程中,可以使用自动选择,此要求组件编写人员在实现组件生成过程中根据软件检索需求实现组建的生成。比如开发人员要严格遵守编码的规范,使描述组件功能的时候要根据相应的格式实现,从而有效实现组件功能的抽取。以下为组件出库的部分代码:
DataSet clientDs = new DataSet();
string[,] searchFlds = { { "codePy", "助记符" }, { "codeWb", "助记符" } };
try
{
DataTable quickFindTb = clientDs.Tables["staffNav"].Copy();
FrmQuickFind quickFind = new FrmQuickFind(
quickFindTb, "用户", searchFlds, "id", "name",
"出库");//
quickFind.ShowDialog();
if (quickFind.outDr != null)
{
//
}
quickFindTb.Dispose();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
在实现界面设计的过程中,设计人员要确定系统的设计目标,将目标作为基础,实现内部活动的分解,从而使用户功能需求能够更加的具体,提高其操作性。系统目标、用户需求及系统任务创建了人机接口及用户界面设计的基础,系统目标、任务及需求的关系,如图2所示。
图2 系统目标、任务及需求的关系
在进行结构化分析的过程中,数据流分析使用最为广泛,其通过结构化方式自顶往下逐层进行分解。结构化方法都是通过系统中数据的流动及内部活动全面分析系统功能。通过用例驱动分析的方法实现,其是从非数据模型进行,并不是通过创建实体对象联系模型进行,首先对系统的使用方式进行分析,然后通过场景使用对系统使用过程中和其他类型用户交互过程中的情况进行对比[6]。结构化分析方式是一种较为传统的任务分析方法,其具有较强的逻辑性,能够实现用户任务内容的描述,但是此缺点就是在第一次分析的过程中就要对内部的细节进行深入的描述,此种方式对系统功能分析具有一定的影响。通过用例驱动分析方法能够对此不足进行弥补,用例驱动分析能够实现其创新。结构化及用例两种分析方式的结合,如图3所示。
图3 结构化及用例两种分析方式的结合
通过两者相互结合,能够实现用户使用系统任务的全面描述,并且还能够将任务之间的联系及系统内部细节进行全面的分析。
目前,计算机软件的设计和发展备受大多数用户的关注,所以在计算机软件用户界面设计过程中,要对人们认知的规律进行全面的掌握,利用此规律有效统一人类的认知特点及具体的行为,从而提高界面设计的有效性,使其能够有效满足人们生活习惯及需求,之后通过人机工程设计理念,充分使用其中的方法和方式实现设计,从而提高系统界面设计的效果,便于人们的使用及操作。