国产精品久久777777网站,男生天堂精品2020在线,国产精品久久久久一级毛片,体育老师在单杠C了我一节课视频

濟(jì)南軟件開(kāi)發(fā)—模型驅(qū)動(dòng)軟件開(kāi)發(fā)

2015-09-29 10:44:15
作為面向?qū)ο蟮某绦騿T、習(xí)慣于構(gòu)件開(kāi)發(fā)的程序員,對(duì)于模型驅(qū)動(dòng)軟件開(kāi)發(fā)的認(rèn)識(shí)經(jīng)歷了幾個(gè)步驟。
    首先,為了適應(yīng)用戶(hù)不同的業(yè)務(wù)組合,很多軟件中都有的運(yùn)行選項(xiàng)。當(dāng)我們依據(jù)自己的需要對(duì)選項(xiàng)進(jìn)行組合后,將得到不同的界面和業(yè)務(wù)規(guī)則。比較常見(jiàn)的有:報(bào)表、對(duì)于數(shù)據(jù)的校驗(yàn)、流程等。
    接著WEB頁(yè)面進(jìn)入了我的視野。利用諸如:JSP、PHP、ASP甚至CGI等技術(shù)來(lái)生成活動(dòng)的界面。而太多的這些Pages都是用腳本生成的。當(dāng)我們改變腳本的時(shí)候,在瀏覽器端的畫(huà)面也隨之改變。
    XML是一個(gè)更加接近于這種思想的東西。簡(jiǎn)單的說(shuō)格式化的數(shù)據(jù)+如何顯示,構(gòu)成了XML。而XML本身只是數(shù)據(jù)而已,它并不是一個(gè)軟件。但你利用它中間的定義就應(yīng)該得到同樣的顯示。這不能不說(shuō)是標(biāo)準(zhǔn)的威力。同時(shí)我也看到,同樣的數(shù)據(jù)改變其中的XSL、DTD等,我們看到將是數(shù)據(jù)的另一種表達(dá)形式。作為數(shù)據(jù)的XSL、DTD等的改變引起了顯示內(nèi)容和形式的改變。
    每種腳本都有自己的解釋程序。把他們當(dāng)作驅(qū)動(dòng)引擎,腳本當(dāng)做自定義的模型。當(dāng)腳本變化的時(shí)候,程序的運(yùn)行也將隨之改變。
    其實(shí)我們現(xiàn)在所進(jìn)行的軟件開(kāi)發(fā)都可以看做是一種模型。軟件開(kāi)發(fā)經(jīng)歷了靜態(tài)庫(kù)à動(dòng)態(tài)庫(kù)à構(gòu)件技術(shù)。從其中可以看到的是,軟件的發(fā)展是在不斷地提升靈活性和提升系統(tǒng)的可伸縮性。在靜態(tài)庫(kù)的時(shí)代,代碼是在編譯時(shí)被裝載的,動(dòng)態(tài)庫(kù)是程序在開(kāi)始運(yùn)行時(shí)被裝載的。而構(gòu)件卻是在需要時(shí)被加載的,這種加載不一定是由你的程序代碼來(lái)實(shí)現(xiàn)的。
    中間語(yǔ)言成了一種趨勢(shì), Java是先驅(qū)者。先將原代碼編譯成中間語(yǔ)言,然后用解釋引擎去解釋。中間語(yǔ)言就是一種動(dòng)態(tài)的模型,它在運(yùn)行期間被解釋引擎解釋。MS.Net步其后塵。所有的.Net語(yǔ)言都被先編譯成一種公共的中間語(yǔ)言。然后在系統(tǒng)運(yùn)行期間來(lái)解釋中間語(yǔ)言代碼。這樣做壞處是顯然的:運(yùn)行速度降低了。這樣的做法又有什么好處呢?首先想到的應(yīng)該是平臺(tái)的跨越。Java就是一個(gè)例證。同時(shí)讓程序員擺脫了具體平臺(tái)的束縛,專(zhuān)心于業(yè)務(wù)的實(shí)現(xiàn)。
這只是對(duì)于開(kāi)發(fā)人員的好處。但我們可以看到,模型的不斷提升,其結(jié)果是讓開(kāi)發(fā)人員更加接近于想要表達(dá)的業(yè)務(wù)邏輯。而運(yùn)行期間的動(dòng)態(tài)模型更是增加了其中的靈活性,更少的代碼改變換來(lái)更多的對(duì)業(yè)務(wù)的專(zhuān)注。
軟件開(kāi)發(fā)中的原型法和逐步逼近真實(shí)的思路是非常有用的。系統(tǒng)分析人員為了得到用戶(hù)的真實(shí)想法,更符合實(shí)際業(yè)務(wù)的邏輯,首先做出一個(gè)原型出來(lái),通過(guò)改進(jìn)這個(gè)原型最終達(dá)到滿(mǎn)足用戶(hù)需要的系統(tǒng)。
    雖然面向?qū)ο蟮脑O(shè)計(jì)從一開(kāi)始以對(duì)象的方式來(lái)思考,但用戶(hù)的業(yè)務(wù)流程卻是需要經(jīng)過(guò)多輪的磨合才能真正去理解的。
    如果一開(kāi)始我們就提供給用戶(hù)一個(gè)模型定義工具,讓用戶(hù)自己去定義自己的業(yè)務(wù)。這樣,當(dāng)用戶(hù)可以修改這個(gè)模型的時(shí)候也就是業(yè)務(wù)人員真正參與軟件開(kāi)發(fā)時(shí)代的到來(lái)。那么建模工具就要符合用戶(hù)的思維習(xí)慣,用現(xiàn)實(shí)世界中的概念去建立軟件。
    面向?qū)ο蟆ML建模等能幫助我們?nèi)ダ斫饽P万?qū)動(dòng)軟件的開(kāi)發(fā)。但模型驅(qū)動(dòng)的軟件開(kāi)發(fā)并不是OOD、OOA。在這個(gè)世界里,我們看到的是實(shí)體。實(shí)體和對(duì)象并不一樣。實(shí)體可以是一個(gè)對(duì)象、一個(gè)構(gòu)件、一個(gè)系統(tǒng)。而實(shí)體在更多的時(shí)候被理解為諸如:報(bào)表、物料單、生產(chǎn)計(jì)劃、客戶(hù)、銷(xiāo)售情況等。
    UML是幫助我們的系統(tǒng)分析人員進(jìn)行軟件開(kāi)發(fā)設(shè)計(jì)的,它更多的是在貼近代碼這個(gè)層面。但是復(fù)雜的圖形與文字說(shuō)明并沒(méi)有減少用戶(hù)對(duì)軟件的神秘和抵觸心理。暫且不說(shuō)用戶(hù)需要去學(xué)習(xí)UML,至少在中國(guó)能看懂UML圖的系統(tǒng)分析員就不多。以一個(gè)軟件專(zhuān)業(yè)人士的眼光去理解用戶(hù)的業(yè)務(wù)需求,這本身是有問(wèn)題的。而你與用戶(hù)去談物料單該如何處理的時(shí)候,他會(huì)顯示出非常高的積極性。因?yàn)樵谒磥?lái),他的工作就是處理物料單,處理報(bào)表等。
    模型就是要幫助用戶(hù)去設(shè)計(jì)自己的系統(tǒng)。它是軟件中的虛擬業(yè)務(wù)與現(xiàn)實(shí)業(yè)務(wù)之間的映射器。模型中通過(guò)對(duì)實(shí)體、規(guī)則、業(yè)務(wù)等的表達(dá)實(shí)現(xiàn)了以用戶(hù)的思維方式去理解軟件中的業(yè)務(wù)操作。