• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于敏捷技術(shù)的敏捷開發(fā)辨析與應(yīng)用研究オ

    2015-05-30 10:48:04戴洪蕾王建國(guó)
    中國(guó)市場(chǎng) 2015年21期

    戴洪蕾 王建國(guó)

    [摘要]高效便捷的輕量型軟件開發(fā)模式是管理信息系統(tǒng)開發(fā)的新方法和新思路,作為敏捷開發(fā)模式基石的面向?qū)ο蠹夹g(shù)為這一方法提供了可行性。簡(jiǎn)單三層將系統(tǒng)邏輯分為三層保證了系統(tǒng)的安全性和擴(kuò)展性,配合抽象工廠模式和Net反射機(jī)制,以及時(shí)下新興的Web開發(fā)技術(shù)ASPNet MVC的優(yōu)勢(shì),使得敏捷開發(fā)模式在實(shí)施中變得更加高效。本文以敏捷開發(fā)模式為基礎(chǔ),研究如何將簡(jiǎn)單三層、抽象工廠模式和ASPNet MVC等技術(shù)相結(jié)合,從敏捷技術(shù)角度完善敏捷開發(fā)模式。

    [關(guān)鍵詞]敏捷開發(fā);抽象工廠模式;ASPNet MVC

    [DOI]1013939/jcnkizgsc201521.053

    伴隨著世界經(jīng)濟(jì)和技術(shù)的大力發(fā)展,計(jì)算機(jī)技術(shù)得到了更加廣泛的應(yīng)用,越來越多的工作需要依賴計(jì)算機(jī)的智能和高效。新的軟件的出現(xiàn)都伴隨著新的軟件開發(fā)模式的出現(xiàn),新的軟件開發(fā)模式出現(xiàn)的原因就是解決在固定模式中出現(xiàn)多變的需求。而傳統(tǒng)的開發(fā)模式存在著面對(duì)需求變化困難,維護(hù)和擴(kuò)展性差導(dǎo)致系統(tǒng)的二次開發(fā)成本較高,敏捷開發(fā)模式應(yīng)運(yùn)而生。因?yàn)槿藗兊男枨蟾鞣N各樣,為了使人們的需求得到解決,軟件技術(shù)也在進(jìn)行不斷更新完善,所以敏捷技術(shù)的產(chǎn)生也為敏捷開發(fā)模式的實(shí)施提供了有效的保證和可行性。

    1敏捷開發(fā)

    敏捷開發(fā)是由15個(gè)科學(xué)家共同提出來的,其中包括來自思特沃克公司(Thought Works)著名的軟件大師馬丁·福勒(Martin Fowler)[1]。敏捷開發(fā)即一種全新而快捷的軟件開發(fā)模式,是把人放在第一位,以滿足用戶不同需求為導(dǎo)向的開發(fā)模式[2]。應(yīng)用敏捷開發(fā)的方法,要求團(tuán)隊(duì)成員具有很強(qiáng)的主動(dòng)性,滿足了高內(nèi)聚、松耦合的原則把項(xiàng)目分成了若干個(gè)小組。較少的文檔準(zhǔn)備和分組的新方式縮短了軟件開發(fā)周期,開發(fā)過程中的多次迭代和測(cè)試提高了軟件的質(zhì)量[3]。

    2敏捷技術(shù)的重要性

    從目前敏捷開發(fā)的研究現(xiàn)狀中,我們可以看到在任何一個(gè)軟件的開發(fā)過程中,任何的一種模式都不是能解決所有問題的萬能鑰匙,所以在軟件開發(fā)過程中應(yīng)全面考慮所有的問題,不管是開發(fā)方法、設(shè)計(jì)模式還是設(shè)計(jì)架構(gòu)都是必須考慮的重要因素,而就目前敏捷開發(fā)的應(yīng)用研究來看,敏捷開發(fā)的過程,對(duì)技術(shù)并沒有明確的指導(dǎo)思想,這也正是多數(shù)項(xiàng)目在應(yīng)用敏捷開發(fā)過程中失敗的重要因素。

    從根本來說,敏捷開發(fā)不僅是一個(gè)軟件開發(fā)過程的方法論,準(zhǔn)確地說它更是一種思想,但這種方法是建立在敏捷技術(shù)上的,敏捷技術(shù)為這一方法的實(shí)施提供了可行性,只有敏捷的技術(shù)才能支撐敏捷開發(fā)的實(shí)施[4]。真正的敏捷開發(fā)不只是管理層次的敏捷、項(xiàng)目參與人員的敏捷,架構(gòu)的設(shè)計(jì)也應(yīng)該是敏捷的,編程思想也應(yīng)該是敏捷的,這才是實(shí)至名歸的敏捷開發(fā)。在項(xiàng)目真正進(jìn)行過程中,為了能更好地發(fā)揮敏捷開發(fā)的優(yōu)勢(shì)應(yīng)做到管理與技術(shù)同步規(guī)范。管理與技術(shù)是不可分割的,二者相輔相成,技術(shù)的敏捷使得敏捷開發(fā)方法的實(shí)施具有一定可操作性,是敏捷開發(fā)方法的基石,如果沒有相關(guān)技術(shù)的支持,敏捷開發(fā)是不能完全發(fā)揮效應(yīng)的甚至是不可行的。只有做到管理與技術(shù)同步敏捷,在管理的過程中得到相應(yīng)技術(shù)的支撐,敏捷開發(fā)方法才能發(fā)揮真正的敏捷,才是真正的敏捷思想。

    2.1簡(jiǎn)單三層

    敏捷開發(fā)方法要求在敏捷開發(fā)實(shí)施過程中,如何保證開發(fā)團(tuán)隊(duì)的每個(gè)開發(fā)人員能夠獨(dú)立地進(jìn)行系統(tǒng)模塊開發(fā)是敏捷開發(fā)能否成功的關(guān)鍵因素。而以往的傳統(tǒng)開發(fā)技術(shù),并沒有將系統(tǒng)模塊化,整個(gè)系統(tǒng)的耦合性較高,依賴性較強(qiáng),使用傳統(tǒng)的開發(fā)技術(shù)并不能實(shí)施敏捷開發(fā)方法,使得敏捷開發(fā)提倡的系統(tǒng)各模塊之間并行開發(fā)成為空想。簡(jiǎn)單三層卻為這一要求提供了可行性。

    三層架構(gòu)由底層至上層分為數(shù)據(jù)訪問層(Data Access Layer,DAL),業(yè)務(wù)邏輯層(Business Logic Layer,BLL),用戶界面(User Interface,UI)[5]。簡(jiǎn)單三層將界面的呈現(xiàn)、業(yè)務(wù)邏輯的處理以及訪問數(shù)據(jù)庫很好的分離開來,因此在系統(tǒng)實(shí)現(xiàn)編碼過程中不僅可以實(shí)現(xiàn)系統(tǒng)各模塊的并行開發(fā),而且不要求全能型的開發(fā)人員,只需精通其中一層即可參與到項(xiàng)目當(dāng)中,在保證工作高效且代碼質(zhì)量的同時(shí)節(jié)約了開發(fā)成本[6]。在測(cè)試方面,三層也可同步進(jìn)行,可以解決敏捷開發(fā)在測(cè)試環(huán)節(jié)中給項(xiàng)目帶來的成本偏高問題,在支持敏捷開發(fā)實(shí)施的同時(shí),又保證了整個(gè)系統(tǒng)的安全,降低了系統(tǒng)的復(fù)雜性,無形之中也提高了項(xiàng)目參與人員的積極性,使得敏捷開發(fā)能夠順利進(jìn)行。

    2.2抽象工廠模式

    敏捷開發(fā)提倡的是擁抱變化,要求在開發(fā)過程中進(jìn)行多次的迭代,項(xiàng)目團(tuán)隊(duì)進(jìn)行周期性的交流溝通,隨時(shí)應(yīng)對(duì)客戶的需求變化,勇敢地面對(duì)變化,對(duì)于用戶的反饋,程序員要有勇氣對(duì)已經(jīng)編寫好的代碼進(jìn)行適當(dāng)?shù)男薷腫7]。敏捷開發(fā)里所說的勇于接受變化并不是簡(jiǎn)單的要求項(xiàng)目團(tuán)隊(duì)在客戶提出新的要求時(shí),就將之前的系統(tǒng)全部放棄,從頭再來,這并不是真正意義上的敏捷開發(fā)。但是面對(duì)這樣的需求敏捷開發(fā)只是單純的提出了要求,并沒有對(duì)此有進(jìn)一步的說明和指導(dǎo),而為了滿足更換數(shù)據(jù)庫的需求重新編譯數(shù)據(jù)操作類就相當(dāng)于項(xiàng)目從頭開始,又不是最好的解決辦法。如何在面對(duì)客戶需求的時(shí)候,盡可能地減少代碼的修改量,代碼的復(fù)用性是一個(gè)關(guān)鍵因素。想要提高代碼的復(fù)用性,就想到了設(shè)計(jì)模式,在當(dāng)前的設(shè)計(jì)模式中,抽象工廠模式很好地解決了這一問題。

    作為創(chuàng)建型模式的抽象工廠模式是23種設(shè)計(jì)模式中的一種,所謂創(chuàng)建型模式就是不需要自己實(shí)例化對(duì)象,而是由創(chuàng)建型模式來代替新操作[8]。抽象工廠模式指的是提供一個(gè)創(chuàng)建一系列相關(guān)或者相互依賴對(duì)象的接口,而不需要指定它具體的類[9]。該類設(shè)計(jì)模式是專門針對(duì)需求的變化來達(dá)到提高代碼復(fù)用性目標(biāo)的一種模式,它就相當(dāng)于一個(gè)實(shí)實(shí)在在的工廠,只不過與我們現(xiàn)實(shí)生活中的工廠不同的是現(xiàn)實(shí)生活中的工廠是用來生產(chǎn)產(chǎn)品,但是這里的工廠是用來管理變化的。

    使用抽象工廠模式將可變的進(jìn)行封裝,以接口的形式呈現(xiàn),在三層中應(yīng)用抽象工廠模式,在不需要修改以前代碼的前提下輕松地解決了更換數(shù)據(jù)庫類型這一需求,并且在系統(tǒng)開發(fā)完成之后甚至是使用過程中,都可輕松地更換數(shù)據(jù)庫類型,有效地解決了由于需求變化導(dǎo)致開發(fā)周期延長(zhǎng),并且為系統(tǒng)的后期維護(hù)降低了成本。

    2.3ASPNet MVC

    客戶的需求貫穿于整個(gè)項(xiàng)目中,雖然敏捷開發(fā)中采取先測(cè)試再編碼的方式有效地應(yīng)對(duì)了客戶需求的變化,但是并不排除客戶對(duì)測(cè)試滿意,開發(fā)完成之后又提出了新要求的可能性存在。對(duì)于大多數(shù)客戶來說需求的變化主要體現(xiàn)在系統(tǒng)功能和界面展示方面,針對(duì)這一可能性傳統(tǒng)的敏捷開發(fā)并沒有很好的解決辦法,只能重新編寫,重新測(cè)試,但是這一問題是周而復(fù)始的,這樣的做法治標(biāo)不治本。應(yīng)對(duì)這一狀況就應(yīng)考慮到從技術(shù)方面入手。

    在通常情況下,系統(tǒng)的頁面開發(fā)都是用網(wǎng)頁表格(Web Form)進(jìn)行,雖然網(wǎng)頁表格(Web Form)操作簡(jiǎn)單,可以直接拖控件對(duì)頁面完成布局工作,但是它的頁面展示與后臺(tái)邏輯代碼的耦合度較高,在遇到客戶對(duì)頁面布局要求變更的時(shí)候,不僅要進(jìn)行頁面布局的修改,還要將相應(yīng)的頁面邏輯進(jìn)行修改,這無疑多做了很多沒有必要的工作,這時(shí)ASPNet MVC框架成了解決這一問題的第一選擇。

    ASPNet MVC是微軟在2009年對(duì)外公開發(fā)布的第一個(gè)開源的表示層框架[10]。ASPNet MVC模式是一種表現(xiàn)模式,它可以將表現(xiàn)層分成模型(Model)、控制器(Controller)和視圖(View)三個(gè)組件,有效地分離了頁面展示與用戶界面(UI)邏輯代碼,所以ASPNet MVC是一個(gè)更加傾向于用戶界面層(UI)的表現(xiàn)層框架,是網(wǎng)頁表格(Web Form)的另一種選擇[11]。在面對(duì)客戶對(duì)頁面展示需求變化的時(shí)候,只需更改相應(yīng)頁面的展示效果即可。

    3敏捷技術(shù)應(yīng)用實(shí)例

    3.1項(xiàng)目簡(jiǎn)介

    本校的博士研究生招生工作在2013年之前均是通過工作人員手工的錄入以及核對(duì)完成的,因此,本校博士招生工作存在效率低下,管理無序,數(shù)據(jù)安全性較差等諸多問題,實(shí)施辦公自動(dòng)化對(duì)于我校的博士招生工作具有重大意義。本項(xiàng)目將采用本文所提及的融合敏捷技術(shù)的敏捷開發(fā)方法對(duì)系統(tǒng)進(jìn)行開發(fā)。

    3.2敏捷技術(shù)在開發(fā)中的具體應(yīng)用與實(shí)現(xiàn)

    根據(jù)上述分析,博士研究生招生系統(tǒng)的整體架構(gòu)見下圖。

    系統(tǒng)整體架構(gòu)

    從上圖中我們可以看到,本系統(tǒng)結(jié)合了簡(jiǎn)單三層架構(gòu)、抽象工廠設(shè)計(jì)模式和ASPNet MVC框架三大技術(shù),本系統(tǒng)使用2011年發(fā)布的ASPNet MVC3.0版本[12]。本論文主要從這三個(gè)技術(shù)的應(yīng)用上進(jìn)行詳細(xì)論述,來論證敏捷技術(shù)對(duì)敏捷開發(fā)的重要性。

    3.2.1抽象工廠模式在數(shù)據(jù)訪問層的應(yīng)用

    對(duì)于本系統(tǒng)的開發(fā)主要是針對(duì)學(xué)生各種信息的管理與操作,并且錄取的學(xué)生信息數(shù)據(jù)庫要與我校現(xiàn)有的各種學(xué)生工作系統(tǒng)進(jìn)行銜接,而所用數(shù)據(jù)庫并不相同,對(duì)現(xiàn)在已經(jīng)使用的系統(tǒng)進(jìn)行修改并不是一個(gè)好辦法,只有針對(duì)目前著手開發(fā)的博士研究生招生系統(tǒng)進(jìn)行完善,來迎合不同數(shù)據(jù)庫的需求。解決這一需求的辦法就是抽象工廠模式。本文以考生登錄功能為例進(jìn)行技術(shù)應(yīng)用說明。

    創(chuàng)建抽象工廠類,利用Net的反射機(jī)制獲取數(shù)據(jù)訪問層的程序集和命名空間的名稱,通過數(shù)據(jù)訪問接口層來創(chuàng)建user_infor數(shù)據(jù)表的實(shí)體類,并采用緩存技術(shù)來提高系統(tǒng)性能,設(shè)置當(dāng)前應(yīng)用程序指定CacheKey的Cache值的核心代碼如下:

    SystemWebCachingCache objCache=HttpRuntimeCache;

    由于數(shù)據(jù)訪問層融合了抽象工廠設(shè)計(jì)模式的思想,所以業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)訪問層是通過數(shù)據(jù)訪問接口層創(chuàng)建相對(duì)應(yīng)的數(shù)據(jù)工廠實(shí)例,并沒有指定具體的數(shù)據(jù)操作類,因此,在面對(duì)更改數(shù)據(jù)庫類型時(shí),只需修改配置文件的程序集和命名空間的Value值即可,配置文件代碼如下:

    由此可見,應(yīng)用了抽象工廠模式和反射機(jī)制加上配置文件的使用,在不需要修改系統(tǒng)代碼的前提下輕松實(shí)現(xiàn)了異庫移植操作,并且為本項(xiàng)目實(shí)施敏捷開發(fā)時(shí)適應(yīng)了需求且縮短了開發(fā)周期。

    3.2.2ASPNet MVC框架的應(yīng)用

    在ASPNet MVC中UI邏輯在Controller組件中進(jìn)行編譯,Controller負(fù)責(zé)將數(shù)據(jù)從Model取出傳遞給View[13]。在本系統(tǒng)里,ASPNet MVC代替網(wǎng)頁表格(Web Form)作為三層中的用戶界面層(UI),所以在界面展示編譯中,ASPNet MVC框架中的控制器(Controller)組件則負(fù)責(zé)與業(yè)務(wù)邏輯層進(jìn)行對(duì)話,從業(yè)務(wù)邏輯層調(diào)用校驗(yàn)用戶的方法來獲取數(shù)據(jù)庫中的考生登陸信息。判斷登陸是否成功的部分代碼如下:

    IBLLIuser_inforService user_inforService=new user_inforBLL();

    public ActionResult ProcessLogin()

    {

    string loginid=Request[“LoginCode”];

    string password=Request[“LoginPwd”];

    user_infor model=user_inforService.Getuserinforbyloginid(loginid,password);

    if(model[FY=]null)

    {

    return Content(“用戶名不存在,請(qǐng)確認(rèn)是否注冊(cè)!若沒有注冊(cè)請(qǐng)先進(jìn)行注冊(cè)”);

    }

    if(modelpwd !=CommonHelperGetMd5stringFromString(password))

    {

    return Content(“密碼錯(cuò)誤”);

    }

    Session[“LoginUser”]=model;

    return Content(“ok”);//登陸成功,前臺(tái)調(diào)用Ajax進(jìn)行頁面跳轉(zhuǎn)

    }

    前臺(tái)的頁面布局交由視圖(View)組件負(fù)責(zé),由于它與控制器(Controller)組件的低耦合性,視圖(View)的頁面展示只需單純的Html標(biāo)簽即可實(shí)現(xiàn),并且不需要將標(biāo)簽ID傳到后臺(tái),實(shí)現(xiàn)了UI展示與UI邏輯的徹底分離。登錄頁面的視圖(View)核心代碼如下所示:

    身份證號(hào):

    密碼:

    ?;

    從以上代碼我們可以看出,視圖(View)頁面都是由Html標(biāo)簽實(shí)現(xiàn),所以在更換頁面布局的時(shí)候就不需要考慮前臺(tái)標(biāo)簽與后臺(tái)邏輯的綁定問題,不需要修改用戶界面(UI)邏輯代碼。

    4結(jié)論

    敏捷開發(fā)是一種以需求為導(dǎo)向的驅(qū)動(dòng)開發(fā)方法,需求的變化會(huì)給整個(gè)系統(tǒng)帶來副作用,所以需要自動(dòng)化去支持變化,在應(yīng)對(duì)變化的同時(shí)保證敏捷開發(fā)方法在項(xiàng)目實(shí)施的成功率和系統(tǒng)質(zhì)量,縮短開發(fā)周期,解決敏捷開發(fā)在管理上不能解決的問題。結(jié)合了簡(jiǎn)單三層、抽象工廠模式和ASPNet MVC開源框架的敏捷開發(fā)使得開發(fā)團(tuán)隊(duì)在多變的環(huán)境下按時(shí)按質(zhì)按量地完成了本校博士研究生招生系統(tǒng)的開發(fā)。由此可見,結(jié)合了敏捷技術(shù)的敏捷開發(fā)將敏捷開發(fā)方法發(fā)揮到極致甚至在敏捷開發(fā)方法的基礎(chǔ)上進(jìn)一步縮短項(xiàng)目周期,提高軟件質(zhì)量和軟件的維護(hù)性、擴(kuò)展性。

    參考文獻(xiàn):

    [1]James Shore,Shane WardenThe Art of Agile Development[M].Sebastopol:OReilly Media,2009

    [2]High Smith JAgile Software Development Ecosystems[M].Beijing:China Machine Press,2004.

    [3]王世安基于敏捷開發(fā)的構(gòu)件化軟件可靠性研究[J].微電子學(xué)與計(jì)算機(jī),2011(3):119-122.

    [4]陳楠,陳文培敏捷開發(fā)中相關(guān)技術(shù)的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2011(4):202-204.

    [5]CThilmanyNET Patterns:Architecture,Design,and Process[M].Boston:Addison-Wesley Professional,2003.

    [6]Eric JBraudeNEW Software Design:From Programming to Architecture[M].Beijing:Publishing House of Electronics Industry,2005:23-26

    [7]Alistair CockburnAgile Software Development[M].Boston:Addison Wesley2001:30-45

    [8]Markus Aleksy,Axel KorthausSupplementing the Well-Known Factory Pattern for Distributed Object Oriented Systems[C].Symposium on Distributed Computing and Applications for Business Engineering and Science,2002(12):105-108

    [9]武光明設(shè)計(jì)模式在全球化軟件開發(fā)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2014(1):9-17

    [10]Sanderson SPro ASPNET MVC Framework[M].Berkeley:Apress,2009

    [11]Connery R,Hansel man S,Hack P,et alProfessional ASPNET MVC 1.0[M].Hoboken:Wiley Publishing,2009

    [12]Steven Sanderson,Adam FreemanPro ASPNET MVC 3 Framework[M].Berkeley:Apress,2011.

    [13]周文紅基于ASPNET MVC框架的Web應(yīng)用開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2013(10):197-199

    [作者簡(jiǎn)介]戴洪蕾,碩士研究生,主持內(nèi)蒙古自治區(qū)科研創(chuàng)新項(xiàng)目“基于工廠模式的敏捷開發(fā)的辨析與應(yīng)用研究”(S20141012814);王建國(guó),副教授。研究方向:信息管理與信息系統(tǒng)、項(xiàng)目管理。

    甘南县| 武清区| 阳春市| 扎鲁特旗| 绥化市| 宜良县| 句容市| 金堂县| 宜州市| 岚皋县| 称多县| 合川市| 江口县| 阆中市| 龙山县| 富宁县| 类乌齐县| 甘孜县| 盐城市| 上栗县| 海盐县| 临城县| 蓬溪县| 沂南县| 镇平县| 建始县| 大方县| 连城县| 志丹县| 湘乡市| 昌乐县| 莎车县| 曲阜市| 平潭县| 定日县| 仙游县| 惠州市| 临邑县| 抚宁县| 阳谷县| 永州市|