專刊內文

當前位置:首頁>專刊分享>內文

瀏覽次數 : 9607



未命名 1

軟體的再次革命--機器人寫程式

 

訊光科技/Andy Kao

前言

隨著人工智慧高度發展,這兩年正熱的自駕車科技風潮盛行,即使GoogleWaymo自駕系統與UberSelf-driving頻頻發生意外,但想必大家都知道"自動駕車"是遲早的事,離實現上路不遠了;如果車子可以自動駕駛,那程式開發是否也可以自動產生呢? 當然是可以的,只是能夠滿足多少使用者的需求而已,就好像是自動駕駛一定是先從園區或人車少的區域先開始試辦,最後才會推到人車多的大都市與特殊地形區域等。

 

訊光科技從事自動編寫程式至今已經快30年,30年來經過十幾代產品演進,無論如何做,總是無法100%滿足不同客戶需求;每次到了產品成熟期(90%滿足度),時代就變了,平台技術也跟著改變(:DOS/Windows/Web/App),一切都得重來。我們面臨的客戶都是專業開發者,開發者對於這種"自動編寫程式""元件化"工具又特別挑剔與排斥,效果相當有限。

 

企業客製化資訊系統最難的就是了解使用者需求,如何把使用者需求了解透徹與良好溝通,就成了成敗重要關鍵。隨著雲端開發平台與人工智能技術逐漸成熟,如何讓一般的使用者(沒有程式開發背景)透過簡單的設定就可以自動編寫程式,看來已經是可行而且是必然的方案。我們常常發現User們會使用Word來製作管理表格,用Excel來製作報表,這些都是他們熟習也是必要的技能;所以我們就利用User所製作的Word表格與Excel報表來做為了解使用者需求的根本,經過數百個表格模擬實驗,發現有70%以上的表格都可以被"自動"編寫成程式碼來執行,這對於User來說可是一大革命性突破。

 

關於AI

AI領域非常廣泛,基本上圍繞在仿真的能力上,希望透過計算機可以模擬人類,包括人類的思考、表情、語言、感官、動作、行為等。自從 AlphaGo 戰勝了世界棋王之後,整個人工智能技術就有著極大的突破,仿真機器人也越來越接近人類,各種不同的AI應用紛紛出爐,也令人眼花撩亂。

 

其實,機器人寫程式,說穿了也就是30年前程式產生器的延伸而已,但30年來科技進步很大,系統環境日益複雜,使用介面更是多樣,程式產生器通常很難達到程式開發人員的要求。這10年來我們在WebApp上的元件與應用漸漸成熟,透過元件設定多數需求已經可以被滿足,所以,就針對Word/Excel寫了一個具有高度智能的讀取引擎,來了解用戶可能的需求,雖然沒用到思考推理或是學習引擎(這些都是大學問),但也是一大進展。尤其是我們將使用對象從程式開發者改變為一般使用者(End-User),雖然底層技術都一樣,但使用對象如果沒有IT背景,如何讓他把想要的系統給做出來,難度是非常高的。

 

WordExcel來作為工具的規格並非市場創舉,還是有人嘗試過,主要差異是我們累積了30年開發平台經驗,軟體規格元件化與標準化已經非常成熟且經過市場考驗過,透過這些元件很容易就可以讓UserWordExcel表格產生良好的對應關係,並以User的思維為出發點,讓User在沒改變習慣情況下就可以完成他所要的結果,這需要使用智能分析程式與複雜邏輯推理才能讓User滿意的

 

何謂iCoder智能編程雲

如下的示意圖,將企業現成的Word表格,上傳到智能編程雲,只需10秒鐘,你的表單程式就立即完成,並可以在電腦、平板、手機上皆可執行;輸入表單資料後,也可以把資料套印到原來的Word表格上。 如果你需要查詢或統計報表,只要再上傳現成的Excel表單,10秒鐘同樣可以完成資料查詢與統計報表。

image01

 

iCoder智能編程雲是EEPCloud為底層所研發,EEPCloud為一個以Node.JS為核心的雲端開發平台,供程式師或分析師開發企業的應用系統所使用;iCoder則是以人工智能的方式,讀取WordExcel範本作為需求,自動產生對應的資料庫與資料表、自動編寫表單與報表程式,讓你在完全沒有程式設計的基礎上完成任務。如果有特殊功能無法滿足需求時,亦可透過EEPCloud的專業開發者來進行二次開發服務。

 

iCoder智能編程雲架構

智能編程雲包括了幾個重要核心模組,如圖並分別說明如下:

image02

u  智能表單: 透過Word格式自動產生資料庫與RWD表單(響應式表單)

u  智能報表: 透過Excel格式自動產生查詢表單與Excel報表

u  智能App: 透過App安裝到你的iOSAndroid手機上,讓你透過手機也可以執行你所設計的Word表單與Execl報表。

u  智能工作流: iCoder雲上面以拖拉方式設計表單的流程與簽核,可透過電腦或手機進行線上簽核。

u  智能商業邏輯: 用來定義資料存取或交易的處理原則,串聯不同Word表單的資料關聯與交易處理。

u  EEPCloud雲開發平台: 如果iCoder無法滿足使用者需求,可以配合EEPCloud給熟習IT的開發者進行二次開發。

u  轉出EEP.Net: iCoder所自動產生的RWD表單與後端服務,可轉出到EEP.Net平台給Visual Studio編譯,進行三次開發,讓你的需求100%實現。

 

iCoder智能編程解決了甚麼

與其說iCoder帶來甚麼革命,還不如說能解決甚麼問題,簡單如下:

1.解決溝通問題: 企業應用系統的開發,都是由使用單位提出需求,再由IT部門進行了解,如果這個工作是外包,還要交給系統分析師進行溝通與確認,最後再交給程式開發人員,這些溝通不管是透過文件還是語言,都避免不了溝通不良的問題,導致系統開發出來並不是需求單位所要的,如此,往返重複來回多次,除了毫無效率可言,還造成成本浪費,最後多數不是彼此妥協驗收就是失敗收場。iCoder如果由使用單位的需求者自行以WordExcel來定義規格,70%的功能都會以智能編程來自動完成,剩下不能滿足的再交給專業開發者或IT部門來進行補足,這樣通常會帶來時效與成本的倍數降低,大幅提升企業資訊化的效率。

2.解決開發生產力問題: 對於專業的IT部門或應用軟體從業者而言,項目經理或系統分析師就可以透過iCoder將系統快速完成,無論是雛形開發還是實際系統的開發進度都會快了數倍,待規格確認後,再讓程式師以二次開發(使用EEPCloud),或三次開發(使用EEP.NET+Visual Studio),把最後結果給完善並交給用戶使用,除了大幅縮短開發時程,開發人力也至少可縮減30%以上,開發成本的節省更是非常可觀。

3. 解決品質問題: 因為所有的過程都沒有經過程式師的人工開發,所以並不存在品質的問題,通常經過簡單測試即可上線。如果真有品質問題,那就應該統一提升EEPCloud元件品質,經過大量的用戶使用加上持續不斷改善,可以將品質提升到最佳的水準。

4.功能性的解決方案: iCoder不是只有表單與報表的解決方案,還提供App與工作流程(電子簽核)的解決方案,App與工作流程都是內建的,是設計給管理者或使用者所使用,無須回到專業的開發團隊或IT部門來服務與處理(當然需要有制度協調與管理部門的管控動作)

 

使用對象

iCoder的使用對象可以為一般管理者或End-User,只要基本的WordExcel使用概念即可上手,當然對資料庫有概念者將會更得心應手。

1.一般企業的管理者,以現成的企業Word表單與Excel報表格式,即可讓iCoder自動編寫程式,完成多數的工作。

2.系統分析師與顧問師,以Word/Excel作為系統分析的工具,讓iCoder自動編程,完成客戶的需求。

3.開發者,一般為系統分析師或程式設計師,透過EEPCloud以二次開發方式,來維護或增強iCoder所自動編程的系統,100%來滿足用戶的需求。

4.現有EEP的客群,原來EEP的客戶可以使用 iCoder來快速自動編程雛形系統,再將此雛形系統輸出成EEP.NET 可以編譯的RWD表單與Server端服務。

 

iCoderEEP.NETWizard聰明10

熟習EEP開發平台的開發者,都知道EEPWizard已經算是聰明且能快速地完成你要的應用系統了。但如果拿來跟iCoder相比,你會發現差距很大,或許說聰明10倍有點誇張,但為了讓沒有IT背景的User可以完全不寫程式的情況下就能做出應用系統,就不得不加入很多推理與智能的機制來讓User與系統溝通良好,及預先幫User推理他想要的結果,這個智能還可以不斷的成長與學習,來幫助User在不使用程式的情況下增加完成率。

 

現說明iCoderWizard的差異:

1.新版的資料字典: Wizard一樣都是靠EEP資料字典來運作,iCoder則完全100%依賴這個資料字典來自動編程,所以資料字典增加了很多設定。

2.智能讀取欄名: WordExcel表格中讀取欄位名稱,是件很複雜的事,我們已經過了100多張的各式表單的讀取經驗,得到了很多寶貴知識,智能、合理、有效就是讀取的原則。

3.自動建立資料表結構: 之前Wizard必須先建立Table Schema,但iCoder可以不必,隨著Word表格讀入自動建立表結構,當然也允許資料表已經存在的設計方式。更困難的是維護工作,iCoder允許在Word中維護並改變規格後再二次讀入,系統會自動更改結構與重新產生程式碼,達到維護目的。

4.不依賴欄位名稱: 就是iCoder大都採用標題作為欄位名稱(虛擬化),實體欄位名稱大都是自動命名,沒有甚麼意義,有意義大都是User所理解的欄位標題為主。虛擬化的好處就是更改欄名時不會掉資料(因為實體並沒有更改),表單間關聯時,容易透過欄位標題來作為彼此的關聯關係。

5.更多的編輯元件: Wizard只有支援6種資料編輯元件,但iCoder的資料編輯元件卻高達近20種。

6.自動辦別必填欄位: iCoder可以透過Word的欄位標題第一個字元是否為'*'來自動識別該欄位是否必填

7.智能關連選單: Wizard的關聯選單通常每次都要選擇,iCoder卻可以透過欄位標題自動分析判斷得知對應哪關聯資料表。

8.智能欄位對應: iCoder產生的Refval關聯選單中,還會自動分析主表欄位與關聯表欄位是否有一樣(以標題名稱來比對),標題名稱一樣的欄位通通會被放入ColumnMatch中,就是將相同的關聯欄位內容值自動帶入。

9.多欄多列: iCoder提供了兩個元件,一個是一個欄位內有多個標題與多個欄位,透過#E可將一個欄位拆成多欄來讓USER輸入;另一個為多列的表格,透過#J可以將一個欄位拆成多列與多行來讓User輸入,並存在到一個欄位中(JSON格式儲存),多列的目的是可以取代固定筆數的Detail明細表。

10.RWD欄位排版: iCoder可針對不同的尺寸螢幕來定義要顯示那些欄位(針對手機/平板/桌面等)

11.欄位關係公式定義: iCoder為了讓企業User可以自訂欄位公式,提供了簡易的計算式來定義欄位彼此的關係(包括明細表加總到主表欄位),讓一般的常用表格計算功能可以免去編寫程式。

12.自動編號定義: iCoder可以直接在主表與明細表定義各種不同的自動編號功能,可以是最簡單的自增值,或以年//日為流水號的自動編號功能等。

13.使用提示PlaceHolder: 可以將Word表格中用來提醒填表者的提示訊息自動讀入到各欄位的PlaceHoder(輸入的提醒說明)中。

 

結語

其實,iCoder智能編程是個無心插柳的一個意外構想,但卻給一般用戶與高階開發者(熟習開發技術的IT從業者)帶來一片新契機,這幾年來由於軟體技術的變遷與進步,複雜且高門檻的開發技術,讓跟不上科技的IT從業者卻步,更別說是一般的使用者。

智能編程,對我們來說只是個開始,或許能做的只能是使用者需求的60%70%而已,但因為想像空間很大,也很挑戰,我們會持續往這個方向努力,直到90%的開發需求都可以被無程式化(一行程式都不必寫),而且直接由需求端的用戶就可以完成,這樣,不久的未來,也許多數的程序開發者都要去學習第二專長來增加自我的競爭力了。