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

        ?

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

        2015-05-30 10:48:04戴洪蕾王建國
        中國市場 2015年21期

        戴洪蕾 王建國

        [摘要]高效便捷的輕量型軟件開發(fā)模式是管理信息系統(tǒng)開發(fā)的新方法和新思路,作為敏捷開發(fā)模式基石的面向?qū)ο蠹夹g(shù)為這一方法提供了可行性。簡單三層將系統(tǒng)邏輯分為三層保證了系統(tǒng)的安全性和擴(kuò)展性,配合抽象工廠模式和Net反射機(jī)制,以及時(shí)下新興的Web開發(fā)技術(shù)ASPNet MVC的優(yōu)勢,使得敏捷開發(fā)模式在實(shí)施中變得更加高效。本文以敏捷開發(fā)模式為基礎(chǔ),研究如何將簡單三層、抽象工廠模式和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ā)模式存在著面對需求變化困難,維護(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)的主動性,滿足了高內(nèi)聚、松耦合的原則把項(xiàng)目分成了若干個(gè)小組。較少的文檔準(zhǔn)備和分組的新方式縮短了軟件開發(fā)周期,開發(fā)過程中的多次迭代和測試提高了軟件的質(zhì)量[3]。

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

        從目前敏捷開發(fā)的研究現(xiàn)狀中,我們可以看到在任何一個(gè)軟件的開發(fā)過程中,任何的一種模式都不是能解決所有問題的萬能鑰匙,所以在軟件開發(fā)過程中應(yīng)全面考慮所有的問題,不管是開發(fā)方法、設(shè)計(jì)模式還是設(shè)計(jì)架構(gòu)都是必須考慮的重要因素,而就目前敏捷開發(fā)的應(yīng)用研究來看,敏捷開發(fā)的過程,對技術(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)勢應(yīng)做到管理與技術(shù)同步規(guī)范。管理與技術(shù)是不可分割的,二者相輔相成,技術(shù)的敏捷使得敏捷開發(fā)方法的實(shí)施具有一定可操作性,是敏捷開發(fā)方法的基石,如果沒有相關(guān)技術(shù)的支持,敏捷開發(fā)是不能完全發(fā)揮效應(yīng)的甚至是不可行的。只有做到管理與技術(shù)同步敏捷,在管理的過程中得到相應(yīng)技術(shù)的支撐,敏捷開發(fā)方法才能發(fā)揮真正的敏捷,才是真正的敏捷思想。

        2.1簡單三層

        敏捷開發(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ā)成為空想。簡單三層卻為這一要求提供了可行性。

        三層架構(gòu)由底層至上層分為數(shù)據(jù)訪問層(Data Access Layer,DAL),業(yè)務(wù)邏輯層(Business Logic Layer,BLL),用戶界面(User Interface,UI)[5]。簡單三層將界面的呈現(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]。在測試方面,三層也可同步進(jìn)行,可以解決敏捷開發(fā)在測試環(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)對客戶的需求變化,勇敢地面對變化,對于用戶的反饋,程序員要有勇氣對已經(jīng)編寫好的代碼進(jìn)行適當(dāng)?shù)男薷腫7]。敏捷開發(fā)里所說的勇于接受變化并不是簡單的要求項(xiàng)目團(tuán)隊(duì)在客戶提出新的要求時(shí),就將之前的系統(tǒng)全部放棄,從頭再來,這并不是真正意義上的敏捷開發(fā)。但是面對這樣的需求敏捷開發(fā)只是單純的提出了要求,并沒有對此有進(jìn)一步的說明和指導(dǎo),而為了滿足更換數(shù)據(jù)庫的需求重新編譯數(shù)據(jù)操作類就相當(dāng)于項(xiàng)目從頭開始,又不是最好的解決辦法。如何在面對客戶需求的時(shí)候,盡可能地減少代碼的修改量,代碼的復(fù)用性是一個(gè)關(guān)鍵因素。想要提高代碼的復(fù)用性,就想到了設(shè)計(jì)模式,在當(dāng)前的設(shè)計(jì)模式中,抽象工廠模式很好地解決了這一問題。

        作為創(chuàng)建型模式的抽象工廠模式是23種設(shè)計(jì)模式中的一種,所謂創(chuàng)建型模式就是不需要自己實(shí)例化對象,而是由創(chuàng)建型模式來代替新操作[8]。抽象工廠模式指的是提供一個(gè)創(chuàng)建一系列相關(guān)或者相互依賴對象的接口,而不需要指定它具體的類[9]。該類設(shè)計(jì)模式是專門針對需求的變化來達(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ā)周期延長,并且為系統(tǒng)的后期維護(hù)降低了成本。

        2.3ASPNet MVC

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

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

        ASPNet MVC是微軟在2009年對外公開發(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]。在面對客戶對頁面展示需求變化的時(shí)候,只需更改相應(yīng)頁面的展示效果即可。

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

        3.1項(xiàng)目簡介

        本校的博士研究生招生工作在2013年之前均是通過工作人員手工的錄入以及核對完成的,因此,本校博士招生工作存在效率低下,管理無序,數(shù)據(jù)安全性較差等諸多問題,實(shí)施辦公自動化對于我校的博士招生工作具有重大意義。本項(xiàng)目將采用本文所提及的融合敏捷技術(shù)的敏捷開發(fā)方法對系統(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é)合了簡單三層架構(gòu)、抽象工廠設(shè)計(jì)模式和ASPNet MVC框架三大技術(shù),本系統(tǒng)使用2011年發(fā)布的ASPNet MVC3.0版本[12]。本論文主要從這三個(gè)技術(shù)的應(yīng)用上進(jìn)行詳細(xì)論述,來論證敏捷技術(shù)對敏捷開發(fā)的重要性。

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

        對于本系統(tǒng)的開發(fā)主要是針對學(xué)生各種信息的管理與操作,并且錄取的學(xué)生信息數(shù)據(jù)庫要與我?,F(xiàn)有的各種學(xué)生工作系統(tǒng)進(jìn)行銜接,而所用數(shù)據(jù)庫并不相同,對現(xiàn)在已經(jīng)使用的系統(tǒng)進(jìn)行修改并不是一個(gè)好辦法,只有針對目前著手開發(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)建相對應(yīng)的數(shù)據(jù)工廠實(shí)例,并沒有指定具體的數(shù)據(jù)操作類,因此,在面對更改數(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)行對話,從業(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(“用戶名不存在,請確認(rèn)是否注冊!若沒有注冊請先進(jìn)行注冊”);

        }

        if(modelpwd !=CommonHelperGetMd5stringFromString(password))

        {

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

        }

        Session[“LoginUser”]=model;

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

        }

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

        身份證號:

        密碼:

        ?;

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

        4結(jié)論

        敏捷開發(fā)是一種以需求為導(dǎo)向的驅(qū)動開發(fā)方法,需求的變化會給整個(gè)系統(tǒng)帶來副作用,所以需要自動化去支持變化,在應(yīng)對變化的同時(shí)保證敏捷開發(fā)方法在項(xiàng)目實(shí)施的成功率和系統(tǒng)質(zhì)量,縮短開發(fā)周期,解決敏捷開發(fā)在管理上不能解決的問題。結(jié)合了簡單三層、抽象工廠模式和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

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

        久久成人精品国产免费网站| 污污污污污污污网站污| 中文字幕巨乱亚洲| 日本一区二区高清视频| 精品一区三区视频在线观看| 国产午夜鲁丝片av无码| 亚洲色图视频在线| 国产精品农村妇女一区二区三区| 最新国产不卡在线视频| 成人网站免费看黄a站视频| 91老司机精品视频| av男人操美女一区二区三区| 伊人久久精品亚洲午夜| 2020年国产精品| 国产麻豆一精品一AV一免费软件 | 国产精品国产三级农村妇女| 久久久久亚洲精品男人的天堂| 激情综合色五月丁香六月亚洲| 中文字幕久久久久久久系列| 国产大屁股白浆一区二区三区| 无码日韩精品一区二区免费暖暖 | 国产亚洲一区二区在线观看| 亚洲精品一区二区| 无码一区二区三区在线在看| 街拍丝袜美腿美女一区| 亚洲人成精品久久久久| 老太脱裤让老头玩ⅹxxxx| 精品理论一区二区三区| 久久精品亚州中文字幕| 免费人成再在线观看视频| 久久国产品野战| 一区二区三区在线观看视频精品| 日韩人妻ol丝袜av一二区| yeyecao亚洲性夜夜综合久久| 日本一区二区高清视频在线播放| 日韩精品熟妇一区二区三区| 97se亚洲精品一区| 日本高清在线播放一区二区三区| 青青草手机免费播放视频| 亚洲热妇无码av在线播放 | 日本国产在线一区二区|