亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一個(gè)面向院校信息領(lǐng)域的最終用戶(hù)編程語(yǔ)言

        2014-10-21 20:04:55汪玨龔建偉柏鵬賈穎
        電子世界 2014年6期

        汪玨 龔建偉 柏鵬 賈穎

        【摘要】隨著IT應(yīng)用的推廣和Web 2.0的興起,用戶(hù)的個(gè)性化應(yīng)用需求越來(lái)越多,如何迅速地滿(mǎn)足用戶(hù)大量的開(kāi)發(fā)和維護(hù)需求成為軟件開(kāi)發(fā)面臨的一個(gè)重要問(wèn)題。能否讓最終用戶(hù)也能開(kāi)發(fā)軟件?選擇中職院校Web信息系統(tǒng)為研究領(lǐng)域,研究最終用戶(hù)編程技術(shù),設(shè)計(jì)了一個(gè)面向最終用戶(hù)的Web信息領(lǐng)域特定語(yǔ)言VUDSL,并開(kāi)發(fā)了相應(yīng)的編程工具,讓不具有軟件工程知識(shí)的最終用戶(hù)能使用可視化編程的方式開(kāi)發(fā)出信息系統(tǒng)。VUDSL目前已在實(shí)際中成功試用。

        【關(guān)鍵詞】最終用戶(hù)編程;可視化編程;領(lǐng)域特定語(yǔ)言

        An end-user programming language for college information domain

        Wang Jue1 ?Gong JianWei1 ?Bai Peng1 ?Jia Ying2

        (1.Zhejiang Traffic Technician College,Zhejiang 321015;2.School of Software,Shanghai Jiao Tong University,Shanghai 200240)

        Abstract:With the promotion of IT applications and the rise of Web 2.0,mass users'individual requirements continue to emerge.How to quickly meet usersdevelopment and maintenance requirements has been a critical problem of software development.Is it possible for end-users to develop software?This paper chooses college Web information systems as the research field,studies the end-user programming technology,designs an end-user oriented domain-specific language for college Web information system-VUDSL,and develops appropriate programming tools.The tools support end-users without the knowledge of software engineering to develop target information systems by visual programming.VUDSL has been successfully tested in practice.

        Key word:End-user programming;Visual Programming;DSL

        1.引言

        軟件技術(shù)發(fā)展至今,軟件供不應(yīng)求的現(xiàn)象依舊很?chē)?yán)重,如何緩解這一矛盾一直是軟件工程領(lǐng)域面臨的一個(gè)重要問(wèn)題。除了模型驅(qū)動(dòng)開(kāi)發(fā)、代碼自動(dòng)生成、敏捷開(kāi)發(fā)過(guò)程等,最終用戶(hù)編程(End-user Programming)可能將是有效解決上述問(wèn)題的方法之一。最終用戶(hù)編程不僅可以利用數(shù)量巨大的最終用戶(hù)資源,而且可以解決傳統(tǒng)的應(yīng)用開(kāi)發(fā)方法中IT人員對(duì)業(yè)務(wù)需求理解不足的問(wèn)題,從而能更加快速高效地開(kāi)發(fā)出滿(mǎn)足實(shí)際需要的軟件產(chǎn)品。至今,最終用戶(hù)編程在一些商業(yè)軟件的應(yīng)用中得到了普及,比如在文字處理器中錄制宏,電子表格計(jì)算和定義電子郵件過(guò)濾器等[1]。另外MIT多媒體實(shí)驗(yàn)室和谷歌等也在最終用戶(hù)編程領(lǐng)域做了大量研究工作,并取得了一定的研究成果。

        Ko、Myers和Aung等人描述了最終用戶(hù)在試圖學(xué)習(xí)和使用編程語(yǔ)言的過(guò)程中可能存在六個(gè)障礙:設(shè)計(jì)障礙、選擇障礙、協(xié)調(diào)障礙、使用障礙、理解障礙和信息障礙[2],最終用戶(hù)直接編程是很困難的。因此,在面向最終用戶(hù)的編程中,提供可視化的圖形化編程方式將減少用戶(hù)編程的障礙,大大提高用戶(hù)的編程效率。

        本文以中職院校Web信息系統(tǒng)領(lǐng)域?yàn)檠芯康膶?duì)象,研究設(shè)計(jì)了面向最終用戶(hù)的可視化的Web信息領(lǐng)域特定語(yǔ)言VUDSL,并開(kāi)發(fā)了VUDSL的可視化編程工具,用戶(hù)只需通過(guò)拖拉可視化的圖形塊的“搭積木”方式即可完成編程的工作。

        2.院校信息領(lǐng)域特定語(yǔ)言VUDSL的研究

        2.1 VUDSL的設(shè)計(jì)目標(biāo)

        中職院校Web信息系統(tǒng)領(lǐng)域特定語(yǔ)言VUDSL的設(shè)計(jì)目標(biāo)如下:

        (1)面向最終用戶(hù):VUDSL的主要設(shè)計(jì)目標(biāo)是解決文獻(xiàn)[2]中提到的六個(gè)障礙,將IT領(lǐng)域與中職院校業(yè)務(wù)領(lǐng)域融合起來(lái),解決中職院校Web信息系統(tǒng)領(lǐng)域業(yè)務(wù)需求復(fù)雜多變、軟件產(chǎn)品供不應(yīng)求的問(wèn)題。

        (2)覆蓋中職院校Web信息系統(tǒng)領(lǐng)域的應(yīng)用功能:應(yīng)用功能主要包括教務(wù)管理、學(xué)生管理、教學(xué)管理等,為了覆蓋這些功能VUDSL應(yīng)該有足夠的表達(dá)能力,能夠完成這些應(yīng)用的定義。

        (3)目標(biāo)語(yǔ)言無(wú)關(guān)性:VUDSL能夠轉(zhuǎn)化成多平臺(tái)、多解決方案的目標(biāo)代碼,比如J2EE、ASP和PHP等。

        2.2 VUDSL的總體設(shè)計(jì)

        中職院校Web信息系統(tǒng)是一個(gè)典型的信息系統(tǒng),適合采用MVC的架構(gòu),結(jié)合目前Web領(lǐng)域一些比較流行的MVC框架(如SSH)和中職院校Web信息系統(tǒng)的領(lǐng)域特性,本文將VUDSL設(shè)計(jì)為四個(gè)部分:模型(Model)、邏輯(Logic)、頁(yè)面(View)、頁(yè)面動(dòng)作流(Page Action Flow,簡(jiǎn)稱(chēng)PAF)。VUDSL的元模型如圖1所示。

        圖1 VUDSL元模型

        (1)模型用于定義應(yīng)用的持久化數(shù)據(jù),它有若干實(shí)體類(lèi)(entity)組成,每一個(gè)實(shí)體類(lèi)擁有多個(gè)屬性以及多個(gè)方法,每個(gè)實(shí)體類(lèi)在數(shù)據(jù)庫(kù)中有一個(gè)對(duì)應(yīng)的表,用于長(zhǎng)久存放數(shù)據(jù),表格的字段和實(shí)體類(lèi)的屬性是一一對(duì)應(yīng)的。

        (2)邏輯用于定義應(yīng)用的處理邏輯,它由若干邏輯動(dòng)作組成,邏輯動(dòng)作能夠?qū)?shù)據(jù)實(shí)體進(jìn)行操作,邏輯動(dòng)作和數(shù)據(jù)實(shí)體一起可以表示出復(fù)雜的處理邏輯,邏輯動(dòng)作可以通過(guò)跳轉(zhuǎn)到一個(gè)邏輯動(dòng)作或者頁(yè)面而和其他邏輯動(dòng)作或頁(yè)面關(guān)聯(lián)起來(lái)。

        (3)頁(yè)面用于定義應(yīng)用的展現(xiàn)方式,它由多個(gè)頁(yè)面節(jié)點(diǎn)組成,一個(gè)頁(yè)面節(jié)點(diǎn)由多個(gè)頁(yè)面元素組成。頁(yè)面與邏輯動(dòng)作之間的參數(shù)傳遞通過(guò)Web應(yīng)用中的session實(shí)現(xiàn),即頁(yè)面或者邏輯動(dòng)作需要傳遞參數(shù)時(shí),它將參數(shù)保存于session當(dāng)中,在傳遞的目標(biāo)頁(yè)面或者邏輯動(dòng)作中,該參數(shù)將被讀取到。

        (4)頁(yè)面動(dòng)作流用于定義目標(biāo)信息系統(tǒng)的業(yè)務(wù)處理邏輯的流程,業(yè)務(wù)邏輯的流程主要通過(guò)頁(yè)面和邏輯動(dòng)作之間的跳轉(zhuǎn)關(guān)系的定義來(lái)體現(xiàn)。

        以下各節(jié)將分別對(duì)VUDSL的四個(gè)組成部分進(jìn)行詳細(xì)描述。

        2.3 頁(yè)面動(dòng)作流

        中職院校Web信息系統(tǒng)領(lǐng)域包括的主要應(yīng)用有學(xué)生管理、教學(xué)管理、考試管理、成績(jī)管理等,分析該領(lǐng)域的特點(diǎn)發(fā)現(xiàn)該領(lǐng)域中的應(yīng)用有很強(qiáng)的流程化特性,因此在VUDSL的設(shè)計(jì)中定義了PAF來(lái)表示該領(lǐng)域的流程。

        最終用戶(hù)在編程時(shí),可能存在程序設(shè)計(jì)障礙和協(xié)調(diào)障礙(即不知道組件間如何協(xié)調(diào)工作),本文在VUDSL中設(shè)計(jì)PAF能解決最終用戶(hù)編程時(shí)的設(shè)計(jì)障礙問(wèn)題,最終用戶(hù)只需要定義好業(yè)務(wù)流程,圍繞這個(gè)業(yè)務(wù)流程定義就能很輕松地搭建目標(biāo)信息系統(tǒng)。

        中職院校Web信息系統(tǒng)是由一系列的并列的業(yè)務(wù)流程Bi(i=1,2,3,...,n)組成,一個(gè)業(yè)務(wù)流程Bi可以用一系列有組織的業(yè)務(wù)節(jié)點(diǎn)來(lái)表示Bi=,其中,Bs是一個(gè)業(yè)務(wù)流程的開(kāi)始節(jié)點(diǎn),一個(gè)業(yè)務(wù)流程有且僅有一個(gè)開(kāi)始節(jié)點(diǎn),標(biāo)識(shí)該業(yè)務(wù)流程的入口;Bp=表示業(yè)務(wù)流程中的所有頁(yè)面的節(jié)點(diǎn)集合,每個(gè)頁(yè)面節(jié)點(diǎn)Bpi可以用于數(shù)據(jù)的顯示和錄入,頁(yè)面節(jié)點(diǎn)的詳細(xì)定義由VUDSL的頁(yè)面完成;Ba=是業(yè)務(wù)流程中所有邏輯動(dòng)作的節(jié)點(diǎn)集合,邏輯動(dòng)作的定義由VUDSL的邏輯完成,其功能主要是對(duì)數(shù)據(jù)實(shí)體進(jìn)行操作以及定義各種操作的組織結(jié)構(gòu);L=

      1. 是業(yè)務(wù)流程中節(jié)點(diǎn)間的有向連接關(guān)系的集合,它可以用于連接Bs、Bpi、Bai中任意兩個(gè)或者兩個(gè)Bpi節(jié)點(diǎn)、兩個(gè)Bai節(jié)點(diǎn)。在VUDSL中,所有的跳轉(zhuǎn)關(guān)系都被可視化為節(jié)點(diǎn)間的連接關(guān)系,這樣在頁(yè)面動(dòng)作流圖中能夠直觀地顯示或定義業(yè)務(wù)流程的先后依賴(lài)關(guān)系。頁(yè)面動(dòng)作流的可視化圖符如表1所示。

        表1 頁(yè)面動(dòng)作流圖符

        名稱(chēng) 圖符

        開(kāi)始節(jié)點(diǎn)

        頁(yè)面節(jié)點(diǎn)

        動(dòng)作節(jié)點(diǎn)

        有向連線(xiàn)

        2.4 模型

        最終用戶(hù)在編程時(shí),可能存在理解障礙和使用障礙,因此在VUDSL設(shè)計(jì)了模型,通過(guò)對(duì)模型中數(shù)據(jù)實(shí)體的定義,來(lái)引導(dǎo)最終用戶(hù)完成概念模型到數(shù)據(jù)模型的轉(zhuǎn)換。

        VUDSL模型的每個(gè)屬性擁有一種數(shù)值類(lèi)型,每個(gè)實(shí)體由多個(gè)屬性構(gòu)成。數(shù)據(jù)實(shí)體本身也是一種屬性類(lèi)型,這樣數(shù)據(jù)實(shí)體間就存在了關(guān)聯(lián)關(guān)系。模型的可視化圖符如表2所示:

        表2 模型圖符

        名稱(chēng) 圖符

        實(shí)體名稱(chēng)

        屬性

        2.5 邏輯

        VUDSL的邏輯動(dòng)作節(jié)點(diǎn)Bai由多個(gè)有組織的程序語(yǔ)句塊組成,這些語(yǔ)句塊可以是順序拼接也可以是內(nèi)部嵌入。用戶(hù)將相應(yīng)的語(yǔ)句塊拖拽拼接起來(lái)即可完成業(yè)務(wù)邏輯的定義。VUDSL的語(yǔ)句塊可以分為三類(lèi):值語(yǔ)句塊(ValueBlock)、可嵌套語(yǔ)句塊(NestableBlock)和可測(cè)試語(yǔ)句塊(TestableBlock)。

        值語(yǔ)句塊用于定義變量或獲取變量,代表了一個(gè)有值返回的一個(gè)操作。VUDSL中定義的值語(yǔ)句塊有獲取全局變量語(yǔ)句塊(GetBlobal-Block)、字符串語(yǔ)句塊(StringBlock),如圖2所示,其中varName為變量名稱(chēng),類(lèi)型為字符串,語(yǔ)句塊返回的是該全局變量的值。字符串語(yǔ)句塊中value為字符串語(yǔ)句塊的值,類(lèi)型為字符串。

        圖2 值語(yǔ)句塊的成員

        圖3 可嵌套語(yǔ)句塊的成員

        可嵌套語(yǔ)句塊用于表示業(yè)務(wù)邏輯的程序結(jié)構(gòu),包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等。一個(gè)邏輯動(dòng)作節(jié)點(diǎn)有一個(gè)作為入口的根語(yǔ)句塊,該語(yǔ)句塊即為一個(gè)可嵌套語(yǔ)句塊,表示業(yè)務(wù)邏輯從這個(gè)語(yǔ)句塊開(kāi)始。VUDSL中定義的可嵌套語(yǔ)句塊有:條件語(yǔ)句塊(IfBlock)、循環(huán)語(yǔ)句塊(WhileBlock)、跳轉(zhuǎn)語(yǔ)句塊(OutputBlock)、設(shè)置全局變量語(yǔ)句塊(SetGlobalBlock)、更新變量語(yǔ)句塊(UpdateBlock)等,如圖3所示。

        其中條件語(yǔ)句塊由三個(gè)嵌套進(jìn)去的語(yǔ)句塊組成,condition為一個(gè)可測(cè)試語(yǔ)句塊,如果該語(yǔ)句塊的測(cè)試條件成立則邏輯進(jìn)入有一些順序組成的可嵌套邏輯塊集合content集合中??汕短渍Z(yǔ)句塊的順序組合的集合也是一個(gè)可嵌套語(yǔ)句塊。循環(huán)語(yǔ)句塊中condition為可測(cè)試語(yǔ)句塊,如果測(cè)試條件成立則循環(huán)執(zhí)行content集合中的可嵌套語(yǔ)句塊。跳轉(zhuǎn)語(yǔ)句塊中的name表示一個(gè)跳轉(zhuǎn)名稱(chēng)。設(shè)置全局變量語(yǔ)句塊設(shè)置變量名為varName的全局變量,變量的值為value值語(yǔ)句塊的返回值。更新變量語(yǔ)句塊更新變量名為varName的值為value值語(yǔ)句塊的返回值。

        可測(cè)試語(yǔ)句塊表示條件分支和循環(huán)分支的測(cè)試條件,典型的可測(cè)試語(yǔ)句塊包括相等語(yǔ)句塊(EqualsBlock)、大于(GreaterThanBlock)、小于(LessThanBlock)、并且(AndBlock)和或者(OrBlock)等語(yǔ)句塊,其定義都是一個(gè)二元的可測(cè)試語(yǔ)句塊:相等語(yǔ)句塊中,當(dāng)左右值相等時(shí)語(yǔ)句塊返回真,大于、小于與此類(lèi)似。并且語(yǔ)句塊中當(dāng)左右可測(cè)試語(yǔ)句塊的返回都為真的時(shí)候返回真,否則返回假,或者語(yǔ)句塊與此類(lèi)似。如圖4所示。

        圖4 可測(cè)試語(yǔ)句塊的成員

        邏輯部分的可視化圖符,如表3所示。

        表3 邏輯圖符

        名稱(chēng) 圖符

        如果—?jiǎng)t

        循環(huán)

        等于

        大于

        小于

        或者

        并且

        保存

        變量

        查找

        跳轉(zhuǎn)

        2.6 頁(yè)面

        VUDSL的頁(yè)面節(jié)點(diǎn)Bpi有三類(lèi)元素組成:控件、頁(yè)面綁定的實(shí)體、綁定關(guān)系,可以表示為Bpi=,其中,Pc為頁(yè)面控件的集合,一個(gè)頁(yè)面的內(nèi)容主要通過(guò)頁(yè)面控件來(lái)定義;Pe是和一個(gè)頁(yè)面節(jié)點(diǎn)綁定的數(shù)據(jù)實(shí)體集合,表明該頁(yè)面節(jié)點(diǎn)要輸入或輸出的數(shù)據(jù)。綁定關(guān)系集合Pb中每個(gè)綁定Pbi指明哪個(gè)實(shí)體和哪個(gè)頁(yè)面控件綁定,比如一個(gè)簡(jiǎn)單的登錄界面包含登錄表單控件、數(shù)據(jù)實(shí)體用戶(hù)和二者間的綁定。

        頁(yè)面節(jié)點(diǎn)和邏輯動(dòng)作節(jié)點(diǎn)一般(除了只用于顯示的頁(yè)面和只更新數(shù)據(jù)的動(dòng)作)都有數(shù)據(jù)實(shí)體輸出。頁(yè)面節(jié)點(diǎn)的輸出由頁(yè)面中的按鈕元素和鏈接元素定義,這二者都會(huì)定義一個(gè)輸出的標(biāo)志字符串;在邏輯動(dòng)作節(jié)點(diǎn)中,這樣的標(biāo)志字符串有跳轉(zhuǎn)語(yǔ)句塊定義。頁(yè)面節(jié)點(diǎn)和邏輯動(dòng)作節(jié)點(diǎn)的輸出實(shí)體都為該節(jié)點(diǎn)使用或定義的數(shù)據(jù)實(shí)體。在VUDSL中,參數(shù)傳遞通過(guò)Web應(yīng)用的session來(lái)實(shí)現(xiàn),每個(gè)節(jié)點(diǎn)的數(shù)據(jù)實(shí)體都會(huì)被存入session中。

        頁(yè)面的可視化圖符如表4所示。

        表4頁(yè)面圖符

        名稱(chēng) 圖符

        表單

        數(shù)據(jù)表

        3.VUDSL編程工具的實(shí)現(xiàn)

        在采用2個(gè)中職院校Web信息系統(tǒng)(選課系統(tǒng)和導(dǎo)師申請(qǐng)招生系統(tǒng))對(duì)VUDSL語(yǔ)言進(jìn)行案例手工驗(yàn)證后,我們?cè)O(shè)計(jì)和實(shí)現(xiàn)了VUDSL編程工具,以更好地支持VUDSL編程,生成可執(zhí)行的代碼。

        3.1 總體架構(gòu)

        VUDSL編程工具的架構(gòu)如圖5所示,它由VUDSL可視化編輯器和UDSL到J2EE的代碼轉(zhuǎn)換器組成。最終用戶(hù)使用VUDSL可視化編輯器進(jìn)行應(yīng)用的定義,編輯器可以將信息系統(tǒng)的VUDSL代碼表示序列化為一種中間DSL代碼——UDSL。UDSL代碼作為UDSL到J2EE代碼轉(zhuǎn)換器的輸入,最終被轉(zhuǎn)換成可編譯部署的J2EE代碼。UDSL代碼刪除了VUDSL代碼的可視化特性,使得目標(biāo)代碼的轉(zhuǎn)換更直接和方便。雖然,工具目前僅實(shí)現(xiàn)了Java代碼的生成,但VUDSL本身和目標(biāo)代碼是無(wú)關(guān)的,完全可以生成其他語(yǔ)言的代碼。

        圖5 VUDSL編程工具的架構(gòu)

        3.2 VUDSL編程工具的設(shè)計(jì)與實(shí)現(xiàn)

        VUDSL可視化編程器分為三個(gè)模塊:定義模塊、錯(cuò)誤檢測(cè)模塊和UDSL轉(zhuǎn)換器模塊,如圖6所示。定義模塊主要用于定義頁(yè)面動(dòng)作流、頁(yè)面、模型和邏輯,錯(cuò)誤檢測(cè)模塊主要是對(duì)最終用戶(hù)在定義模塊中定義的內(nèi)容進(jìn)行實(shí)時(shí)檢測(cè),如果存在錯(cuò)誤會(huì)及時(shí)提醒用戶(hù)。用戶(hù)完成VUDSL模型的定義后,UDSL轉(zhuǎn)換器會(huì)根據(jù)用戶(hù)的操作及時(shí)地生成相應(yīng)的UDSL,用戶(hù)可以導(dǎo)出生成的UDSL。

        VUDSL可視化編輯器采用Java來(lái)實(shí)現(xiàn),其中VUDSL的可視化通過(guò)使用Swing工具包實(shí)現(xiàn)。VUDSL每個(gè)部分在定義器中都有對(duì)應(yīng)的表示,錯(cuò)誤檢測(cè)模塊通過(guò)監(jiān)測(cè)用戶(hù)的輸入,對(duì)用戶(hù)定義的內(nèi)容進(jìn)行檢測(cè),UDSL轉(zhuǎn)換器根據(jù)UDSL的語(yǔ)法以及該語(yǔ)法和VDUSL的對(duì)應(yīng)關(guān)系,將信息系統(tǒng)的VUDSL表示轉(zhuǎn)化為UDSL代碼。

        圖6 VUDSL可視化編輯器的結(jié)構(gòu)

        3.3 UDSL到Java的代碼轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn)

        程序轉(zhuǎn)換技術(shù)目前比較成熟的有基于轉(zhuǎn)換器的代碼生成、模板化生成器和基于重寫(xiě)規(guī)則的程序轉(zhuǎn)換。經(jīng)過(guò)分析UDSL語(yǔ)言的特點(diǎn),本文選取了基于重寫(xiě)規(guī)則的轉(zhuǎn)換技術(shù),研究和開(kāi)發(fā)從UDSL代碼到J2EE代碼的轉(zhuǎn)換工具。本文采用了基于Eclipse插件的體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)該轉(zhuǎn)換工具,選取Stratego/XT框架作為程序轉(zhuǎn)換的核心框架,并選擇了開(kāi)源項(xiàng)目Spoofax作為平臺(tái)。

        基于重寫(xiě)規(guī)則的程序轉(zhuǎn)換流程如圖7所示,第一步,在管道的源端,讀入輸入的程序文本,并將其轉(zhuǎn)換為解析樹(shù)或抽象語(yǔ)法樹(shù);第二步,將語(yǔ)法樹(shù)作修改變換,達(dá)到目標(biāo)語(yǔ)言的抽象語(yǔ)法樹(shù);最后,將輸出樹(shù)再轉(zhuǎn)換為程序文本。

        圖7 程序轉(zhuǎn)換的流程

        4.應(yīng)用實(shí)踐

        本文所設(shè)計(jì)的VUDSL語(yǔ)言及工具在浙江交通技師學(xué)院進(jìn)行了試用。為了驗(yàn)證語(yǔ)言及工具的有效性,本文采用了A組和B組對(duì)比實(shí)驗(yàn)的方法,兩組分別獨(dú)立開(kāi)發(fā)招生系統(tǒng)。A組由浙江交通技師學(xué)院的3個(gè)老師來(lái)開(kāi)發(fā),經(jīng)過(guò)一個(gè)星期的培訓(xùn)學(xué)習(xí),他們使用了4天時(shí)間開(kāi)發(fā)了系統(tǒng)。圖8和圖9分別是由A組使用VUSDL定義的導(dǎo)師申請(qǐng)招生的頁(yè)面動(dòng)作流和申請(qǐng)招生邏輯。B組由一年J2EE開(kāi)發(fā)經(jīng)驗(yàn)的大二的學(xué)生來(lái)進(jìn)行開(kāi)發(fā)。

        圖8 導(dǎo)師申請(qǐng)招生頁(yè)面動(dòng)作流

        圖9 導(dǎo)師申請(qǐng)招生邏輯

        由于使用了最終用戶(hù)編程的思想,開(kāi)發(fā)工作量有了明顯的變化,A組和B組的開(kāi)發(fā)情況對(duì)比如表5所示。

        表5 開(kāi)發(fā)情況對(duì)比

        A組最終用戶(hù)開(kāi)發(fā)(VUDSL) B組程序員開(kāi)發(fā)(J2EE)

        培訓(xùn)時(shí)間 7天 0天

        開(kāi)發(fā)時(shí)間 4天 10天

        開(kāi)發(fā)工作量 8人天 28人天

        上述應(yīng)用實(shí)踐表明:

        (1)VUDSL能支持最終用戶(hù)的應(yīng)用開(kāi)發(fā),開(kāi)發(fā)更簡(jiǎn)單。VUDSL針對(duì)特定領(lǐng)域,領(lǐng)域的共性部分語(yǔ)言有預(yù)定義的模型、頁(yè)面、邏輯,最終用戶(hù)在開(kāi)發(fā)時(shí)只需對(duì)目標(biāo)信息系統(tǒng)的個(gè)性業(yè)務(wù)流程的部分進(jìn)行定制。

        (2)VUDSL開(kāi)發(fā)更快,最終用戶(hù)直接編程的總工作量和程序員開(kāi)發(fā)相比,工作量大大降低。主要表現(xiàn)在:由于程序員和最終用戶(hù)間可能存在對(duì)業(yè)務(wù)需求理解不一致的問(wèn)題,最終用戶(hù)對(duì)需求的理解更準(zhǔn)確到位;兩組使用的編程語(yǔ)言的不同,A組使用的VUDSL特定領(lǐng)域相關(guān)語(yǔ)言比B組使用的通用編程語(yǔ)言有更高的抽象層次。

        (3)VUDSL的表達(dá)能力較強(qiáng),能支持中職院校Web信息系統(tǒng)的常規(guī)功能的開(kāi)發(fā)。本文實(shí)驗(yàn)時(shí)選取的應(yīng)用案例有一定的代表性,覆蓋了中職院校Web信息系統(tǒng)中常用的功能,包含很多較為復(fù)雜的業(yè)務(wù)流程。

        5.相關(guān)工作

        最終用戶(hù)編程已經(jīng)存在很多具有代表性的DSL語(yǔ)言及相應(yīng)的開(kāi)發(fā)環(huán)境。文獻(xiàn)[3]綜述了最終用戶(hù)編程的不同的方法,包括演示編程、腳本編程、電子表格編程、及時(shí)編程等。文獻(xiàn)[4]綜述了最終用戶(hù)編程時(shí)面臨的挑戰(zhàn)以及設(shè)計(jì)一個(gè)最終用戶(hù)編程工具時(shí)需要注意的一些關(guān)鍵問(wèn)題。目前最終用戶(hù)編程主要是針對(duì)兒童游戲、手機(jī)、電子表格等領(lǐng)域。在兒童編程領(lǐng)域,MIT多媒體實(shí)驗(yàn)室做了大量的研究工作。Logo是Papert和他的同事提出的一種面向兒童的圖形化的編程語(yǔ)言[5]。LogoBlocks是對(duì)Logo語(yǔ)言的一種擴(kuò)展,兒童可以通過(guò)操作不同大小和形狀的彩色編程塊來(lái)編程[6]。和Logo語(yǔ)言相比,該語(yǔ)言使得編程對(duì)于兒童來(lái)說(shuō)更為簡(jiǎn)單和有趣。Scratch是一個(gè)優(yōu)秀的兒童編程語(yǔ)言,它是由MIT多媒體實(shí)驗(yàn)室的研究組成員共同開(kāi)發(fā)完成的一套新的程序語(yǔ)言,Scratch語(yǔ)言是專(zhuān)門(mén)為八歲以上兒童設(shè)計(jì),通過(guò)Scratch語(yǔ)言?xún)和梢酝ㄟ^(guò)可視化的方式創(chuàng)造性地設(shè)計(jì)出屬于自己的程序[7]。為了滿(mǎn)足兒童的編程需要,文獻(xiàn)[8]為兒童設(shè)計(jì)一款圖形化的編程工具,設(shè)計(jì)了事件、動(dòng)作、狀態(tài)等不同的編程塊。文獻(xiàn)[9]結(jié)合兒童用戶(hù)的使用體驗(yàn)及文獻(xiàn)[8]的編程塊的思想,為兒童設(shè)計(jì)了一款筆交互方式編程的工具。

        以上的研究主要是針對(duì)兒童領(lǐng)域的,在電子表格領(lǐng)域,為了滿(mǎn)足最終用戶(hù)進(jìn)行復(fù)雜電子表格設(shè)計(jì)的需要,文獻(xiàn)[10]設(shè)計(jì)了一款面向終端用戶(hù)的筆式表單應(yīng)用開(kāi)發(fā)工具,該工具提供了統(tǒng)一的筆式表單界面和典型應(yīng)用開(kāi)發(fā)模板,可以幫助用戶(hù)快速開(kāi)發(fā)滿(mǎn)足需求的表單應(yīng)用。

        在手機(jī)領(lǐng)域,谷歌的Google有一款支持最終用戶(hù)定制手機(jī)應(yīng)用的工具軟件App Inventor。App inventor是一個(gè)可視化的“編程塊”語(yǔ)言,支持最終用戶(hù)通過(guò)拼接模板的方式來(lái)創(chuàng)建手機(jī)應(yīng)用[11]。

        目前,針對(duì)中職院校Web信息系統(tǒng)領(lǐng)域的DSL的研究不是很多,已經(jīng)比較成熟的研究比如WebDSL,WebDSL定義了豐富的數(shù)據(jù)模型,它是一個(gè)用來(lái)構(gòu)建Web應(yīng)用的DSL語(yǔ)言[12]。該語(yǔ)言不是面向最終用戶(hù)的,它不支持可視化,語(yǔ)言本身的語(yǔ)法復(fù)雜。相對(duì)于通用編程語(yǔ)言而比,該語(yǔ)言的抽象層次也不高,另外由于該語(yǔ)言的領(lǐng)域特性不夠,不能很好地滿(mǎn)足最終用戶(hù)編程的需求。本文的主要貢獻(xiàn)是針對(duì)最終用戶(hù)領(lǐng)域,提出了一種可視化的編程方案,允許最終用戶(hù)通過(guò)拖拉“積木”的可視化的方式,快速地搭建出滿(mǎn)足實(shí)際應(yīng)用需求的Web信息系統(tǒng)。

        6.總結(jié)和展望

        本文以中職院校Web信息系統(tǒng)為研究領(lǐng)域,研究最終用戶(hù)編程技術(shù),設(shè)計(jì)了一個(gè)面向最終用戶(hù)的可視化的中職院校Web信息領(lǐng)域特定語(yǔ)言VUDSL,并開(kāi)發(fā)了相應(yīng)的編程工具。文中詳細(xì)描述了VUDSL語(yǔ)言的設(shè)計(jì)及其可視化編程工具的開(kāi)發(fā)。最后通過(guò)對(duì)浙江交通技師學(xué)院的老師進(jìn)行培訓(xùn),選取了典型的應(yīng)用實(shí)例,并通過(guò)A組和B組對(duì)比實(shí)驗(yàn),對(duì)本文的可視化最終用戶(hù)編程方案進(jìn)行檢驗(yàn)。通過(guò)實(shí)驗(yàn)論證了該可視化編程語(yǔ)言有足夠的表達(dá)力,使用本文的可視化編輯工具可以幫助最終用戶(hù)高效的開(kāi)發(fā)Web應(yīng)用。今后還將對(duì)該工具的易用性、穩(wěn)定性、完整性等方面進(jìn)行進(jìn)一步的完善和改進(jìn)。

        參考文獻(xiàn)

        [1]H.Lieberman,F(xiàn).Paternó,M.Klann,V.Wulf.End-User Development:an Emerging Paradigm[M].End User Development,Springer,2006.

        [2]Ko A J,Myers B A,Aung H H.Six Learning Barriers in End-

        User Programming Systems[C].2004 IEEE Symposium on Visual Languages and Human Centric Computing,2004:199-206.

        [3]Dao A T N,B?g P H.End-user Programming[D].Aalborg University,2010.

        [4]Andrew J.Ko,Robin Abraham,et al.The state of the art in end-user software engineering[J].ACM Computing Surveys.2011,43 (3):Article No.21.

        [5]Kelleher C,Pausch R.Lowering the barriers to programming:a taxonomy of programming environments and languages for novice programmers[J].ACM Computer Survey,2005,37(2):83-137.

        [6]Ramos,J.J.G.;Silva,F(xiàn).A.;V.Oliveira;Alves,L.T.;DAbreu,J.V.V.Development of open hardware and software components for low cost pedagogical robotics programs.In:Anais do IX Simpósio Brasileiro de Automa??o Inteligente(SBAI 2009),Brasília,DF.In Portuguese.

        [7]Maloney J,Resnick M,Rusk N,et al.The scratch programming language and environment[J].ACM Transactions on Computing Education(TOCE),2010,10(4):16.

        [8]Xiajian C,Danli W,Hongan W.Design and implementation of a graphical programming tool for children[C].2011 IEEE International Conference on Computer Science and Automation Engineering(CSAE).IEEE,2011,4:572-576.

        [9]王婷婷,王丹力,路璐,等.面向兒童的圖形化編程語(yǔ)言和工具[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2013,25(4):584-591.

        [10]樊銀亭,滕東興,馬翠霞,等.EUDTPFA:一個(gè)面向終端用戶(hù)的筆式表單應(yīng)用開(kāi)發(fā)工具[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011,23(10):1629-1640.

        [11]Wolber D.App inventor and real-world motivation[C].Proceedings of the 42nd ACM technical symposium on Computer science education.ACM,2011:601-606.

        [12]Hemel Z,Groenewegen D M,Kats L C L,et al.Static consistency checking of web applications with WebDSL[J].Journal of Symbolic Computation,2011,46(2):150-182.

        項(xiàng)目名稱(chēng):交通中職院校數(shù)字校園建設(shè)研究與實(shí)踐(計(jì)劃編號(hào):2013T08)。

        作者簡(jiǎn)介:

        汪玨,碩士,浙江交通技師學(xué)院講師,主要研究方向:軟件工程。

        龔建偉,浙江交通技師學(xué)院高級(jí)講師。

        柏鵬,浙江交通技師學(xué)院講師。

        賈穎,上海交通大學(xué)軟件學(xué)院在讀研究生。

      2. 大地资源中文第3页| 国产特级毛片aaaaaa高清| 国产精品久久久久久久久KTV| 亚洲最大中文字幕无码网站| 欧美激情二区| 97人妻无码免费专区| av手机天堂在线观看| 一区二区三区日韩蜜桃| 2018天天躁夜夜躁狠狠躁| 欧美国产一区二区三区激情无套| jlzzjlzz全部女高潮| 粉嫩国产白浆在线播放| av在线入口一区二区| 日本一区二区在线播放| 亚洲色大成网站www永久一区| 亚洲七七久久综合桃花| 欧美亚洲尤物久久综合精品| 日本女同性恋一区二区三区网站| 久久精品国产亚洲av果冻传媒| 国产人妻丰满熟妇嗷嗷叫| 一本久久a久久精品亚洲| 四虎在线播放免费永久视频| 日本中出熟女一区二区| 国产在线视频91九色| 中文字幕人妻伦伦| 国产综合无码一区二区色蜜蜜| 久久婷婷综合色丁香五月| 无码av专区丝袜专区| 久草视频这里只有精品| 亚洲熟妇无码一区二区三区导航 | 亚洲av无码乱码国产麻豆| 真人无码作爱免费视频禁hnn| 中文字幕永久免费观看| 国产av麻豆精品第一页| 国产一区二区三区四色av| 国产成人无码一区二区在线播放| 亚洲欧洲日产国产AV无码| 久久精品女人天堂av麻| 人人妻人人做人人爽| 亚洲综合无码一区二区| 日本女同伦理片在线观看|