王四云,任洪敏
(上海海事大學信息工程學院,上海201306)
基于敏捷方法的軟件任務管理系統(tǒng)設計與實現(xiàn)
王四云,任洪敏
(上海海事大學信息工程學院,上海201306)
闡述敏捷軟件開發(fā)方法及核心思想,采用迭代開發(fā),增量產(chǎn)生成果持續(xù)的交付,保證每次發(fā)布和迭代交付的產(chǎn)品均是可運行的代碼。詳細介紹任務管理系統(tǒng)的總體設計與功能分析,并對任務進度的時間管控方式進行分析研究。軟件任務管理系統(tǒng)的實現(xiàn),對中小型軟件開發(fā)公司產(chǎn)品開發(fā)任務進行嚴格管控,保證項目按時完成并達到預期目標。
敏捷方法;迭代開發(fā);任務管理
隨著計算機技術(shù)的快速發(fā)展與互聯(lián)網(wǎng)時代的來臨,人們已經(jīng)進入了信息化的時代,或者稱為數(shù)字化時代。信息化的發(fā)展和日趨激烈的商業(yè)競爭,使軟件開發(fā)公司在產(chǎn)品開發(fā)過程中不再滿足于采用傳統(tǒng)的方式進行任務管理,因此,開發(fā)一款輕量級、敏捷、高效的任務管理系統(tǒng)是必然的。同時國內(nèi)很多中小型軟件開發(fā)公司在產(chǎn)品開發(fā)過程中面臨開發(fā)時間緊迫、任務管理混亂、需求不斷變化的困難。在項目開發(fā)過程中通常會面臨如下問題:
(1)用戶即使很明確自己想要的功能,卻不能把項目具體需求明確描述出來,需求在項目研發(fā)過程中時常變更。
(2)在項目開發(fā)過程中,如果技術(shù)人員突然離職,新招聘的開發(fā)人員不清楚產(chǎn)品的開發(fā)進度及任務的需求等,這常常會影響到項目按時完工的進程。
(3)由于軟件開發(fā)是一個團隊協(xié)作的項目,如果一個開發(fā)團隊不能即時了解項目的進展情況,信息封閉,會嚴重影響項目經(jīng)理對產(chǎn)品任務的有效管理。
與傳統(tǒng)的軟件開發(fā)方法不同,敏捷軟件開發(fā)方法強調(diào)在開發(fā)過程中對未來可能出現(xiàn)的不確定性作出全面反應,它也是一種輕量級的開發(fā)方法。傳統(tǒng)的軟件開發(fā)方法針對項目制定長時間跨度的詳細計劃并嚴格依照計劃進行工作,而敏捷型軟件開發(fā)方法善于迎接需求變更,使軟件項目開發(fā)過程隨需求的變更而改變。敏捷方法的核心價值概括如下:個體和交互勝過過程和工具;可工作的軟件勝過面面俱到的文檔;與客戶協(xié)作勝于合作談判;適應變化勝于按部就班。敏捷方法(Agile)是一種迭代-增量交付相結(jié)合的項目開發(fā)方法,其核心是通過不斷交付可運行的產(chǎn)品來滿足客戶的需求。
迭代-增量方法將傳統(tǒng)的開發(fā)周期分割成若干個循環(huán)往復的迭代周期,保證軟件以進化的方式逐漸推進。迭代開發(fā)實施的是重復與半并行化的開發(fā)活動,作為一個經(jīng)驗方法來說,迭代周期越短越好,迭代開發(fā)優(yōu)點如下:在項目研發(fā)初期就可減少或避免高風險的發(fā)生;隨著迭代次數(shù)的增加,對計劃與評估也更加有信心;根據(jù)迭代的結(jié)果可以決定完成日期的趨勢。采用迭代-增量開發(fā),能立即帶來不可估量的效益,圖1所示是局部迭代敏捷過程管理框架。
圖1 局部迭代敏捷過程管理框架
本系統(tǒng)以中小型軟件開發(fā)公司針對軟件開發(fā)過程的任務管理為研究內(nèi)容,構(gòu)建了在B/S結(jié)構(gòu)下的任務管理系統(tǒng),系統(tǒng)針對中小型軟件開發(fā)公司的業(yè)務需求與項目開發(fā)過程中任務進度管理的問題進行分析設計,通過對任務時間進行嚴格的管控,保證項目產(chǎn)品能按照預期目標交付出用戶滿意的產(chǎn)品。系統(tǒng)在開發(fā)過程中,采用敏捷迭代-增量的開發(fā)方法,快速地產(chǎn)生成果,持續(xù)地交付,保證項目能夠按照預定的進度、質(zhì)量和成本順利完成。
2.1系統(tǒng)總體的功能設計
采用敏捷迭代-增量開發(fā)的方法,設計一款高效的任務管理系統(tǒng),該系統(tǒng)主要為任務管理者和執(zhí)行者提供工作平臺,具有管理權(quán)限的成員通過任務管理系統(tǒng)可以及時準確地了解項目組成員的分工狀況、項目開發(fā)進度和項目子任務的具體執(zhí)行情況等。在軟件開發(fā)過程中,傳統(tǒng)的任務管理系統(tǒng)主要是管理者對整個項目進展情況進行管理,本系統(tǒng)采用自頂向下與自底向上相結(jié)合的管理方式對項目開發(fā)過程中的任務進度進行嚴格管控,即具有權(quán)限的組織機構(gòu)管理者與項目開發(fā)人員之間的協(xié)作。
對中小型軟件公司的組織機構(gòu)進行層級式管理,按組織機構(gòu)等級大小進行權(quán)限分配,即具有較高等級的組織結(jié)構(gòu)可以添加比它等級低的組織,而低等級的組織結(jié)構(gòu)下面不能再添加比它等級高的組織機構(gòu),例如公司下面可以添加部門,而部門下面就不可以添加公司組織。組織機構(gòu)的主要需求是添加組織信息、修改組織信息、刪除組織信息及維護其組織機構(gòu)的權(quán)限等,不同的組織結(jié)構(gòu)擁有自己獨特的圖標識。當對某一組織機構(gòu)設置管理權(quán)限時,其組織機構(gòu)權(quán)限升級,從普通的組織結(jié)構(gòu)轉(zhuǎn)換到管理部門,同時其所在成員權(quán)限也得到提升,對所在部門的項目任務進行管理。管理者與開發(fā)成員的用例圖如圖2所示。
圖2 管理者和開發(fā)成員的用例圖
在項目開發(fā)過程中,開發(fā)人員依照需求進行任務計劃的制定。一個完整的項目,在開發(fā)過程中會被創(chuàng)建多條任務,并且主任務下面可以包含多條子任務。一個任務一般有“未開始”、“進行中”和“已完成”三種狀態(tài)。一個新任務被創(chuàng)建時,該任務的狀態(tài)默認為“未開始”;新任務一旦被執(zhí)行,其狀態(tài)被修改為“進行中”;當任務被完成時,具有任務權(quán)限的執(zhí)行者將其狀態(tài)改為“已完成”。具有管理權(quán)限的項目管理者在創(chuàng)建一條開發(fā)任務后同時可以為此任務指派執(zhí)行者。任務管理系統(tǒng)的總體工作流程圖如圖3所示。
2.2項目開發(fā)時間管控分析
從總體上說,項目在開發(fā)過程中對進度的管理主要分兩方面,一方面是按組織機構(gòu)分層級自頂向下的方式進行時間管控,另一方面是項目開發(fā)人員自底向上的進度反饋方式。把分層級具有管理權(quán)限的成員自頂向下的方式與普通開發(fā)成員自底向上的方式巧妙結(jié)合起來,從而保證項目組能夠交付出客戶滿意的產(chǎn)品。每一個軟件產(chǎn)品都有自己的計劃開始時間、計劃結(jié)束時間、實際開始時間和實踐結(jié)束時間,項目的完成進度可以通過進度條一目了然。而項目的整體開發(fā)進度與項目任務完成比率有重要關(guān)系,計劃完成進度和實際完成進度是項目產(chǎn)品的2個重要屬性。計劃完成進度依賴于計劃開始時間、計劃結(jié)束時間和當前日期。
圖3 任務管理系統(tǒng)的總體工作流程圖
計劃完成進度=(當前日期—計劃開始時間)/(計劃結(jié)束時間—計劃開始時間)
項目的實際完成進度是項目開發(fā)過程中任務的完成比率,如果計劃完成進度大于實際完成進度,項目信息欄中的進度條顏色為紅色,這種顯示提醒項目開發(fā)者項目實際完成進度已落后與計劃完成進度。項目實際進度落后與計劃完成進度的原因有很多種,有些原因不需要調(diào)整,如任務接受者反饋進度過于保守等;而有些原因是需要調(diào)整的,如某條任務中途放棄了,項目管理者就要及時調(diào)整任務了。需要注意的是在任務調(diào)整時,一定要在迭代周期確定的完成日期范圍中調(diào)整。
2.3任務數(shù)據(jù)表的設計分析
任務管理系統(tǒng)采用MySQL數(shù)據(jù)庫對數(shù)據(jù)信息進行存儲。任務管理系統(tǒng)的數(shù)據(jù)庫(manager)主要由以下表組成:組織信息表(organ Infor)、員工信息表(userInfor)、產(chǎn)品信息表(productInfor)及任務信息表(task Infor),表與表之間存在相互依賴的關(guān)系,如圖4所示。組織機構(gòu)是一個樹形結(jié)構(gòu),organID為自動增長型,當組織結(jié)構(gòu)為根節(jié)點時,其parentId設置0。由表的依賴關(guān)系圖可以看出,組織結(jié)構(gòu)信息表中的主鍵是員工信息表及產(chǎn)品信息表的外鍵,產(chǎn)品信息表中的產(chǎn)品名是任務信息表的外鍵。組織信息表存儲的是組織機構(gòu)的信息,不同的組織機構(gòu)都有自己特有的標識,在數(shù)據(jù)庫表中用organType來標識,organAdmin的值用來判斷組織機構(gòu)是否具有權(quán)利權(quán)限。
圖4 數(shù)據(jù)庫中表之間的依賴關(guān)系
本系統(tǒng)采用敏捷迭代開發(fā)方法,增量地產(chǎn)生成果、持續(xù)地交付,優(yōu)先完成高優(yōu)先的需求。采用敏捷開發(fā)方法可以滿足用戶需求的不斷變更,保證每次迭代交付的產(chǎn)品都是可運行的。任務管理系統(tǒng)是基于Web的實現(xiàn)方式,在具體的技術(shù)實現(xiàn)上,考慮到企業(yè)的應用場合和將要部署的環(huán)境,系統(tǒng)采用流行的B/S結(jié)構(gòu),如圖5所示。按照應用層、業(yè)務層和數(shù)據(jù)層的標準三層架構(gòu)進行分層開發(fā),也使系統(tǒng)具有良好的弱耦合性,方便未來的擴展和整合。系統(tǒng)開發(fā)過程中,追求高效、簡潔和美觀,在程序前端方面使用HTML顯示數(shù)據(jù)信息,使用jQuery、jQuery Easy UI兩個JavaScript框架來實現(xiàn)前端與后臺的數(shù)據(jù)傳輸及HTML頁面的布局,使用CSS表現(xiàn)數(shù)據(jù)信息在HTML頁面的顯示效果。在程序后臺方面使用Servlet作為后臺程序的基本框架,使用Java語言對數(shù)據(jù)信息進行處理。在數(shù)據(jù)庫方面使用MySQL存儲更新數(shù)據(jù)。
圖5 系統(tǒng)體系結(jié)構(gòu)圖
用戶在登錄界面需要對其用戶名及密碼進行身份驗證,通過與后臺數(shù)據(jù)庫中的信息進行匹配,在通過身份驗證成功后也需要對其權(quán)限就行驗證,判斷其所在組織機構(gòu)是否具有管理權(quán)限。對權(quán)限的驗證及數(shù)據(jù)庫訪問代碼如下:
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(url," root","123456");
String sql="select*from userinforwhere userName=?and password=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1,userName);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
在項目中,組織機構(gòu)是一個樹形層次的結(jié)構(gòu),每個樹形結(jié)點的id在后臺是自增生成的,要想在插入新的組織結(jié)構(gòu)立刻獲得在數(shù)據(jù)庫中生成的id用到JDBC的一種技術(shù),具體核心代碼如下:
Statement st=conn.createStatement();
String sql="insert intomanager.organinfor(text,type,admin,parentId)
value('"+getText()+"','"+getType()+"','"+getAdmin()+" ','"+getParentId()+"');";
st.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);
ResultSet rs=st.getGeneratedKeys(); !if(rs.next()){
int selectId=rs.getInt(1);
String sid=String.valueOf(selectId);
}
在項目管理過程中,如何縮短產(chǎn)品開發(fā)周期以及任務信息的獲取、展現(xiàn)與核實,對項目按計劃完成具有非常關(guān)鍵的作用,同時把握項目進度估算也很重要。在敏捷開發(fā)任務管理中,項目組根據(jù)開發(fā)團隊自身特點和項目需求進行管理,同時采用管理者分層級自頂向下與開發(fā)成員自底向上相結(jié)合的方法值仍然得繼續(xù)研究下去,充分發(fā)揮項目組軟件開發(fā)的潛力,以及對進度進行高效管理的策略。
[1]K.Conboy.Agility from First Principles:Reconstructing the Conceptof Agility in Information Systems Development[J].Inform.Syst.Res, 2009,20(2):329~336
[2]劉華清.敏捷開發(fā)中進度管理的策略[J].數(shù)字通信,2013,40(4):78~82
[3]張曙晟.基于局部迭代的敏捷過程管理研究[J].軟件導刊,2011,10(9):20~25
[4]胡喬.基于JSF框架的權(quán)限管理系統(tǒng)的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2010,20(11):22~28
[5]關(guān)忠誠,程剛.基于敏捷方法的軟件項目管理研究[J].重慶大學學報,2005,11(6):86~92
[6]賈郭軍.軟件項目實施過程中的進度管理研究[J].西安科技學院學報,2004,24(2):78~85
[7]張琦,林碧英.淺談軟件開發(fā)過程管理中的進度管理[J].管理論叢與教育研究???2008,36(8):90~96
[8]劉華清.敏捷開發(fā)中進度管理的策略[J].數(shù)字通信,2013,40(4):78~80
[9]曹質(zhì)樸.基于Rally平臺的敏捷項目進度追蹤系統(tǒng)的設計與實現(xiàn)[D].北京:北京交通大學,2012
[10]徐建軍.軟件缺陷跟蹤系統(tǒng)的設計與實現(xiàn)[D].大連:大連理工大學,2005
Agile Methods;Iterative Development;Task Management
Design and Im p lem entation of Task Management System Based on Agile Method
WANG Si-yun,REN Hong-min
(College of Information Engineering,ShanghaiMaritime University,Shanghai201306)
Expounds the agile software developmentmethods and core idea,the method of iterative development,generating incremental delivery lasting results,to ensure the delivery of each release and iterative product all is to run the code.Introduces the overall design and function analysis of the taskmanagement system in details,analyzes and researches on the progress of the task time controlmanner.The realization of the software task management system,strict control of small and medium sized software development company product development task,to ensure the project completed on time and to reach the expected goal.
1007-1423(2015)16-0069-05
10.3969/j.issn.1007-1423.2015.16.016
王四云(1989-),女,河南開封人,碩士研究生,研究方向為軟件開發(fā)方法與軟件項目管理
任洪敏(1969-),男,上海浦東人,博士,副教授,研究方向為軟件體系結(jié)構(gòu)、軟件復用、軟件項目管理
2015-04-16
2015-05-20