999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于敏捷技術的敏捷開發辨析與應用研究オ

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

戴洪蕾 王建國

[摘要]高效便捷的輕量型軟件開發模式是管理信息系統開發的新方法和新思路,作為敏捷開發模式基石的面向對象技術為這一方法提供了可行性。簡單三層將系統邏輯分為三層保證了系統的安全性和擴展性,配合抽象工廠模式和Net反射機制,以及時下新興的Web開發技術ASPNet MVC的優勢,使得敏捷開發模式在實施中變得更加高效。本文以敏捷開發模式為基礎,研究如何將簡單三層、抽象工廠模式和ASPNet MVC等技術相結合,從敏捷技術角度完善敏捷開發模式。

[關鍵詞]敏捷開發;抽象工廠模式;ASPNet MVC

[DOI]1013939/jcnkizgsc201521.053

伴隨著世界經濟和技術的大力發展,計算機技術得到了更加廣泛的應用,越來越多的工作需要依賴計算機的智能和高效。新的軟件的出現都伴隨著新的軟件開發模式的出現,新的軟件開發模式出現的原因就是解決在固定模式中出現多變的需求。而傳統的開發模式存在著面對需求變化困難,維護和擴展性差導致系統的二次開發成本較高,敏捷開發模式應運而生。因為人們的需求各種各樣,為了使人們的需求得到解決,軟件技術也在進行不斷更新完善,所以敏捷技術的產生也為敏捷開發模式的實施提供了有效的保證和可行性。

1敏捷開發

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

2敏捷技術的重要性

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

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

2.1簡單三層

敏捷開發方法要求在敏捷開發實施過程中,如何保證開發團隊的每個開發人員能夠獨立地進行系統模塊開發是敏捷開發能否成功的關鍵因素。而以往的傳統開發技術,并沒有將系統模塊化,整個系統的耦合性較高,依賴性較強,使用傳統的開發技術并不能實施敏捷開發方法,使得敏捷開發提倡的系統各模塊之間并行開發成為空想。簡單三層卻為這一要求提供了可行性。

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

2.2抽象工廠模式

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

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

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

2.3ASPNet MVC

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

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

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

3敏捷技術應用實例

3.1項目簡介

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

3.2敏捷技術在開發中的具體應用與實現

根據上述分析,博士研究生招生系統的整體架構見下圖。

系統整體架構

從上圖中我們可以看到,本系統結合了簡單三層架構、抽象工廠設計模式和ASPNet MVC框架三大技術,本系統使用2011年發布的ASPNet MVC3.0版本[12]。本論文主要從這三個技術的應用上進行詳細論述,來論證敏捷技術對敏捷開發的重要性。

3.2.1抽象工廠模式在數據訪問層的應用

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

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

SystemWebCachingCache objCache=HttpRuntimeCache;

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

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

3.2.2ASPNet MVC框架的應用

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

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(“用戶名不存在,請確認是否注冊!若沒有注冊請先進行注冊”);

}

if(modelpwd !=CommonHelperGetMd5stringFromString(password))

{

return Content(“密碼錯誤”);

}

Session[“LoginUser”]=model;

return Content(“ok”);//登陸成功,前臺調用Ajax進行頁面跳轉

}

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

身份證號:

密碼:

?;

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

4結論

敏捷開發是一種以需求為導向的驅動開發方法,需求的變化會給整個系統帶來副作用,所以需要自動化去支持變化,在應對變化的同時保證敏捷開發方法在項目實施的成功率和系統質量,縮短開發周期,解決敏捷開發在管理上不能解決的問題。結合了簡單三層、抽象工廠模式和ASPNet MVC開源框架的敏捷開發使得開發團隊在多變的環境下按時按質按量地完成了本校博士研究生招生系統的開發。由此可見,結合了敏捷技術的敏捷開發將敏捷開發方法發揮到極致甚至在敏捷開發方法的基礎上進一步縮短項目周期,提高軟件質量和軟件的維護性、擴展性。

參考文獻:

[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]王世安基于敏捷開發的構件化軟件可靠性研究[J].微電子學與計算機,2011(3):119-122.

[4]陳楠,陳文培敏捷開發中相關技術的應用[J].計算機應用與軟件,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]武光明設計模式在全球化軟件開發中的應用[J].計算機應用與軟件,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應用開發[J].計算機與現代化,2013(10):197-199

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

主站蜘蛛池模板: 72种姿势欧美久久久大黄蕉| 亚洲人视频在线观看| 国产一区二区三区日韩精品 | 亚洲天堂色色人体| 中文字幕 91| 亚洲精品波多野结衣| 18禁高潮出水呻吟娇喘蜜芽| 小13箩利洗澡无码视频免费网站| 日韩无码黄色网站| 国产一级视频久久| 欧美日本激情| 午夜精品福利影院| 免费观看成人久久网免费观看| 乱系列中文字幕在线视频| 国内精品视频区在线2021| 精品国产一二三区| 五月婷婷综合色| 免费一级大毛片a一观看不卡| 四虎国产成人免费观看| 五月天在线网站| 成人午夜免费观看| 久久鸭综合久久国产| 免费一级无码在线网站 | 一本视频精品中文字幕| 精品午夜国产福利观看| 国产成a人片在线播放| 激情综合婷婷丁香五月尤物| 国产午夜不卡| 国产乱子伦精品视频| 亚洲欧美日韩另类在线一| 精品无码一区二区三区电影| 亚洲国产清纯| 国产成人8x视频一区二区| 国产无遮挡猛进猛出免费软件| 午夜啪啪福利| 亚洲日韩欧美在线观看| 久久婷婷五月综合色一区二区| 国产女人爽到高潮的免费视频 | 国产高清又黄又嫩的免费视频网站| 国产农村1级毛片| 成人亚洲国产| 久久夜色撩人精品国产| 国产微拍精品| 亚洲天堂色色人体| 国产毛片片精品天天看视频| 内射人妻无码色AV天堂| 114级毛片免费观看| 精品国产毛片| 在线免费亚洲无码视频| 99人体免费视频| 污视频日本| 激情五月婷婷综合网| 亚瑟天堂久久一区二区影院| 欧美激情,国产精品| 57pao国产成视频免费播放| 天天摸夜夜操| 免费aa毛片| 无码人妻热线精品视频| 精品国产免费观看一区| 99精品伊人久久久大香线蕉| 一级毛片在线播放免费| 欧美日本在线观看| 亚洲制服丝袜第一页| 亚洲成人网在线播放| 在线不卡免费视频| 国产成人AV男人的天堂| 国产区福利小视频在线观看尤物| 欧美高清国产| 99re在线视频观看| 欧美国产菊爆免费观看| 亚洲精品国产成人7777| 欧美一区二区福利视频| 狠狠综合久久久久综| 色噜噜狠狠狠综合曰曰曰| 成年人午夜免费视频| 国产日韩欧美黄色片免费观看| 亚洲中字无码AV电影在线观看| 国产精品jizz在线观看软件| 亚洲日韩精品伊甸| 国产精品一区在线麻豆| 在线观看av永久| 欧美激情网址|