薛靜
(西安鐵路職業(yè)技術(shù)學(xué)院,電子信息學(xué)院,西安 710600)
在現(xiàn)代行業(yè)不斷發(fā)展的過程中,業(yè)務(wù)復(fù)雜程度在不斷的提高,導(dǎo)致行業(yè)軟件的界面邏輯也越來越復(fù)雜,所以軟件用戶界面設(shè)計(jì)和開發(fā)要以一定的原則及思路為基礎(chǔ),從而設(shè)計(jì)及開發(fā)高質(zhì)量用戶界面[1]。但是從目前情況中分析,國內(nèi)軟件界面開發(fā)處于起步階段,缺少可繼承性,代碼管理較為混亂,無法實(shí)現(xiàn)軟件開發(fā)的持續(xù)發(fā)展。本文就首先分析計(jì)算機(jī)軟件的用戶界面特點(diǎn),然后提出了以組態(tài)軟件為基礎(chǔ)的軟件界面開發(fā)方式,此方法要使開發(fā)人員能夠?qū)崿F(xiàn)組態(tài)技術(shù)軟件界面分割歸類,將其中可復(fù)用組件進(jìn)行抽取,創(chuàng)建可復(fù)用的組件庫,從而提高軟件界面設(shè)計(jì)過程中的規(guī)范性,使軟件界面開發(fā)效率得到進(jìn)一步的提高。
能夠影響到視覺和知覺的主要因素就是具備較強(qiáng)刺激性的因素,包括顏色搭配中的亮度、飽和度、對(duì)比度等。人們對(duì)顏色都是通過第一感覺進(jìn)行判斷的,人在看到某種顏色的時(shí)候哪個(gè)顏色最深,那么其就會(huì)具有深刻的印象,顏色能夠?qū)⑽矬w特性及外觀展現(xiàn)出來[2]。顏色能夠?qū)θ诵睦碓斐刹煌潭鹊拇碳?,這是一種生理性的反應(yīng),不會(huì)影響到人體的生理機(jī)能。在生活過程中,紅色表示故障、危險(xiǎn)等刺激性事物,綠色表示寧靜、安逸及舒適等;黃色表示注意、提醒。所以在實(shí)現(xiàn)用戶界面設(shè)計(jì)的過程中,要和這些規(guī)律相互結(jié)合,和人習(xí)慣性的觀念相互一致。
人在對(duì)于某種視覺作用中主要展現(xiàn)了對(duì)于事物規(guī)律的搜索,簡單來說就是人在大多視覺感官刺激中會(huì)從其中選擇某個(gè)特殊刺激,這些尋求特殊目標(biāo)對(duì)象就是目標(biāo)刺激,還有對(duì)人們尋找目標(biāo)刺激妨礙的為干擾刺激[3]。視覺搜索主要包括串行搜索及并行搜索。串行搜索能夠處理所有感知事物,在對(duì)大量干擾刺激排除之后,最終尋找目標(biāo)刺激。干擾刺激指的是在人們搜索過程中會(huì)具有一定的阻礙,對(duì)時(shí)間造成浪費(fèi)。并行搜索能夠在視覺相同時(shí)間中處理全部視覺刺激。以此表示,串行搜索刺激主要是在目標(biāo)及干擾刺激中具有較小的差別,并行搜索在目標(biāo)和干擾刺激的視覺特點(diǎn)差距較大的時(shí)候使用,此種搜索方法能夠降低搜索時(shí)間[4]。
軟件用戶界面在設(shè)計(jì)過程中要全面考慮人知識(shí),此就是低級(jí)認(rèn)知層面,還有高級(jí)別就是記憶層面。人們?cè)趯?duì)計(jì)算機(jī)操作過程中使用短期記憶,其只能夠短時(shí)間保存事物,存儲(chǔ)量比較小,一般五個(gè)模塊左右。在實(shí)現(xiàn)軟件要用戶界面設(shè)計(jì)的過程中,如果界面中的信息比較多,且缺少用戶界面的設(shè)計(jì),那么界面就會(huì)比較的混亂,從而導(dǎo)致搜索困難。人機(jī)工程設(shè)計(jì)要充分使用記憶規(guī)律,在系統(tǒng)內(nèi)容復(fù)雜的時(shí)候界面要將信息作為按鈕,利用頁面控件進(jìn)行控制,從而避免因?yàn)槊つ克阉骼速M(fèi)時(shí)間,還能夠避免記憶混亂[5]。
針對(duì)目前軟件界面設(shè)計(jì)和開發(fā)過程中的問題,以下實(shí)現(xiàn)基于組態(tài)技術(shù)的軟件用戶界面設(shè)計(jì)方式,要求所有用戶都能夠?qū)崿F(xiàn)統(tǒng)一界面風(fēng)格的設(shè)計(jì),其中內(nèi)容主要包括固定不變及可變。此方法中的組件屬于可復(fù)用小界面,此界面開發(fā)語言不同。為了能夠降低投資的風(fēng)險(xiǎn),此方法使用逐漸實(shí)現(xiàn)方式,基于已有開發(fā)模式,對(duì)組件可復(fù)用性進(jìn)行逐漸的完善,通過此種方式對(duì)組件可復(fù)用性進(jìn)行完善[6]。在組件管理過程中使用組件庫方式實(shí)現(xiàn)多種功能,以組態(tài)技術(shù)為基礎(chǔ)的軟件界面開發(fā)結(jié)構(gòu),如圖1所示。
圖1 以組態(tài)技術(shù)為基礎(chǔ)的軟件界面開發(fā)結(jié)構(gòu)
通過圖1可以看出來,軟件用戶界面的開發(fā)方式主要包括3個(gè)部分。首先,要產(chǎn)生組件,通過項(xiàng)目組前臺(tái)開發(fā)人員一起實(shí)現(xiàn),對(duì)具有較高復(fù)用性的軟件模塊進(jìn)行提煉。在項(xiàng)目組完善核心組件之后,根據(jù)相應(yīng)的特點(diǎn)添加全新的組件。然后將產(chǎn)生的初始組件存儲(chǔ)到組件庫中,創(chuàng)建組件庫管理機(jī)制。最后在軟件開發(fā)過程中,軟件界面開發(fā)人員要根據(jù)組件庫出庫管理檢索組件庫,之后提出自身所需要的組件,實(shí)現(xiàn)組件復(fù)用。以下為軟件界面設(shè)計(jì)部分代碼:
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;
在界面設(shè)計(jì)和開發(fā)過程中,不管是哪種環(huán)境,其開發(fā)的系統(tǒng)都要具備一定的重復(fù)性。在軟件界面設(shè)計(jì)過程中具有二類復(fù)用價(jià)值的組件,所以軟件界面設(shè)計(jì)和組件化的開發(fā)就是對(duì)二類可復(fù)用組件的出入庫管理。但是要想實(shí)現(xiàn)真正復(fù)用,就要具備良好的組件庫,組件入庫屬于重點(diǎn)。在軟件界面設(shè)計(jì)及開發(fā)過程中,在組件編寫人員測(cè)試組建成功之后保證組件能夠正常運(yùn)行,以組件具體的功能對(duì)組件進(jìn)行定義,制作可復(fù)用組件。在此過程中,組件命名屬于關(guān)鍵,要使此命名能夠表示組件完整的功能,根據(jù)操作系統(tǒng)文件名的長度能夠?qū)崿F(xiàn)文件的自由擴(kuò)展,從而實(shí)現(xiàn)標(biāo)識(shí)。以下為組件標(biāo)識(shí)的部分主要代碼設(shè)計(jì):
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
);
組件屬于軟件復(fù)用的實(shí)現(xiàn),其質(zhì)量和復(fù)用效果具有密切的聯(lián)系,良好的出庫流程能夠使后繼開發(fā)人員實(shí)現(xiàn)軟件界面設(shè)計(jì)。在組建出庫的時(shí)候,檢索屬于關(guān)鍵內(nèi)容。檢索的流程就是創(chuàng)建數(shù)據(jù)庫的基礎(chǔ),在此過程中要充分考慮組建功能、接口及使用的范圍相應(yīng)參數(shù)。就目前分析,此過程就是手工及自動(dòng)選擇的相互結(jié)合。在軟件開發(fā)過程中,可以使用自動(dòng)選擇,此要求組件編寫人員在實(shí)現(xiàn)組件生成過程中根據(jù)軟件檢索需求實(shí)現(xiàn)組建的生成。比如開發(fā)人員要嚴(yán)格遵守編碼的規(guī)范,使描述組件功能的時(shí)候要根據(jù)相應(yīng)的格式實(shí)現(xiàn),從而有效實(shí)現(xiàn)組件功能的抽取。以下為組件出庫的部分代碼:
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);
}
在實(shí)現(xiàn)界面設(shè)計(jì)的過程中,設(shè)計(jì)人員要確定系統(tǒng)的設(shè)計(jì)目標(biāo),將目標(biāo)作為基礎(chǔ),實(shí)現(xiàn)內(nèi)部活動(dòng)的分解,從而使用戶功能需求能夠更加的具體,提高其操作性。系統(tǒng)目標(biāo)、用戶需求及系統(tǒng)任務(wù)創(chuàng)建了人機(jī)接口及用戶界面設(shè)計(jì)的基礎(chǔ),系統(tǒng)目標(biāo)、任務(wù)及需求的關(guān)系,如圖2所示。
圖2 系統(tǒng)目標(biāo)、任務(wù)及需求的關(guān)系
在進(jìn)行結(jié)構(gòu)化分析的過程中,數(shù)據(jù)流分析使用最為廣泛,其通過結(jié)構(gòu)化方式自頂往下逐層進(jìn)行分解。結(jié)構(gòu)化方法都是通過系統(tǒng)中數(shù)據(jù)的流動(dòng)及內(nèi)部活動(dòng)全面分析系統(tǒng)功能。通過用例驅(qū)動(dòng)分析的方法實(shí)現(xiàn),其是從非數(shù)據(jù)模型進(jìn)行,并不是通過創(chuàng)建實(shí)體對(duì)象聯(lián)系模型進(jìn)行,首先對(duì)系統(tǒng)的使用方式進(jìn)行分析,然后通過場(chǎng)景使用對(duì)系統(tǒng)使用過程中和其他類型用戶交互過程中的情況進(jìn)行對(duì)比[6]。結(jié)構(gòu)化分析方式是一種較為傳統(tǒng)的任務(wù)分析方法,其具有較強(qiáng)的邏輯性,能夠?qū)崿F(xiàn)用戶任務(wù)內(nèi)容的描述,但是此缺點(diǎn)就是在第一次分析的過程中就要對(duì)內(nèi)部的細(xì)節(jié)進(jìn)行深入的描述,此種方式對(duì)系統(tǒng)功能分析具有一定的影響。通過用例驅(qū)動(dòng)分析方法能夠?qū)Υ瞬蛔氵M(jìn)行彌補(bǔ),用例驅(qū)動(dòng)分析能夠?qū)崿F(xiàn)其創(chuàng)新。結(jié)構(gòu)化及用例兩種分析方式的結(jié)合,如圖3所示。
圖3 結(jié)構(gòu)化及用例兩種分析方式的結(jié)合
通過兩者相互結(jié)合,能夠?qū)崿F(xiàn)用戶使用系統(tǒng)任務(wù)的全面描述,并且還能夠?qū)⑷蝿?wù)之間的聯(lián)系及系統(tǒng)內(nèi)部細(xì)節(jié)進(jìn)行全面的分析。
目前,計(jì)算機(jī)軟件的設(shè)計(jì)和發(fā)展備受大多數(shù)用戶的關(guān)注,所以在計(jì)算機(jī)軟件用戶界面設(shè)計(jì)過程中,要對(duì)人們認(rèn)知的規(guī)律進(jìn)行全面的掌握,利用此規(guī)律有效統(tǒng)一人類的認(rèn)知特點(diǎn)及具體的行為,從而提高界面設(shè)計(jì)的有效性,使其能夠有效滿足人們生活習(xí)慣及需求,之后通過人機(jī)工程設(shè)計(jì)理念,充分使用其中的方法和方式實(shí)現(xiàn)設(shè)計(jì),從而提高系統(tǒng)界面設(shè)計(jì)的效果,便于人們的使用及操作。