王四云,任洪敏
(上海海事大學(xué)信息工程學(xué)院,上海201306)
基于敏捷方法的軟件任務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
王四云,任洪敏
(上海海事大學(xué)信息工程學(xué)院,上海201306)
闡述敏捷軟件開(kāi)發(fā)方法及核心思想,采用迭代開(kāi)發(fā),增量產(chǎn)生成果持續(xù)的交付,保證每次發(fā)布和迭代交付的產(chǎn)品均是可運(yùn)行的代碼。詳細(xì)介紹任務(wù)管理系統(tǒng)的總體設(shè)計(jì)與功能分析,并對(duì)任務(wù)進(jìn)度的時(shí)間管控方式進(jìn)行分析研究。軟件任務(wù)管理系統(tǒng)的實(shí)現(xiàn),對(duì)中小型軟件開(kāi)發(fā)公司產(chǎn)品開(kāi)發(fā)任務(wù)進(jìn)行嚴(yán)格管控,保證項(xiàng)目按時(shí)完成并達(dá)到預(yù)期目標(biāo)。
敏捷方法;迭代開(kāi)發(fā);任務(wù)管理
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展與互聯(lián)網(wǎng)時(shí)代的來(lái)臨,人們已經(jīng)進(jìn)入了信息化的時(shí)代,或者稱為數(shù)字化時(shí)代。信息化的發(fā)展和日趨激烈的商業(yè)競(jìng)爭(zhēng),使軟件開(kāi)發(fā)公司在產(chǎn)品開(kāi)發(fā)過(guò)程中不再滿足于采用傳統(tǒng)的方式進(jìn)行任務(wù)管理,因此,開(kāi)發(fā)一款輕量級(jí)、敏捷、高效的任務(wù)管理系統(tǒng)是必然的。同時(shí)國(guó)內(nèi)很多中小型軟件開(kāi)發(fā)公司在產(chǎn)品開(kāi)發(fā)過(guò)程中面臨開(kāi)發(fā)時(shí)間緊迫、任務(wù)管理混亂、需求不斷變化的困難。在項(xiàng)目開(kāi)發(fā)過(guò)程中通常會(huì)面臨如下問(wèn)題:
(1)用戶即使很明確自己想要的功能,卻不能把項(xiàng)目具體需求明確描述出來(lái),需求在項(xiàng)目研發(fā)過(guò)程中時(shí)常變更。
(2)在項(xiàng)目開(kāi)發(fā)過(guò)程中,如果技術(shù)人員突然離職,新招聘的開(kāi)發(fā)人員不清楚產(chǎn)品的開(kāi)發(fā)進(jìn)度及任務(wù)的需求等,這常常會(huì)影響到項(xiàng)目按時(shí)完工的進(jìn)程。
(3)由于軟件開(kāi)發(fā)是一個(gè)團(tuán)隊(duì)協(xié)作的項(xiàng)目,如果一個(gè)開(kāi)發(fā)團(tuán)隊(duì)不能即時(shí)了解項(xiàng)目的進(jìn)展情況,信息封閉,會(huì)嚴(yán)重影響項(xiàng)目經(jīng)理對(duì)產(chǎn)品任務(wù)的有效管理。
與傳統(tǒng)的軟件開(kāi)發(fā)方法不同,敏捷軟件開(kāi)發(fā)方法強(qiáng)調(diào)在開(kāi)發(fā)過(guò)程中對(duì)未來(lái)可能出現(xiàn)的不確定性作出全面反應(yīng),它也是一種輕量級(jí)的開(kāi)發(fā)方法。傳統(tǒng)的軟件開(kāi)發(fā)方法針對(duì)項(xiàng)目制定長(zhǎng)時(shí)間跨度的詳細(xì)計(jì)劃并嚴(yán)格依照計(jì)劃進(jìn)行工作,而敏捷型軟件開(kāi)發(fā)方法善于迎接需求變更,使軟件項(xiàng)目開(kāi)發(fā)過(guò)程隨需求的變更而改變。敏捷方法的核心價(jià)值概括如下:個(gè)體和交互勝過(guò)過(guò)程和工具;可工作的軟件勝過(guò)面面俱到的文檔;與客戶協(xié)作勝于合作談判;適應(yīng)變化勝于按部就班。敏捷方法(Agile)是一種迭代-增量交付相結(jié)合的項(xiàng)目開(kāi)發(fā)方法,其核心是通過(guò)不斷交付可運(yùn)行的產(chǎn)品來(lái)滿足客戶的需求。
迭代-增量方法將傳統(tǒng)的開(kāi)發(fā)周期分割成若干個(gè)循環(huán)往復(fù)的迭代周期,保證軟件以進(jìn)化的方式逐漸推進(jìn)。迭代開(kāi)發(fā)實(shí)施的是重復(fù)與半并行化的開(kāi)發(fā)活動(dòng),作為一個(gè)經(jīng)驗(yàn)方法來(lái)說(shuō),迭代周期越短越好,迭代開(kāi)發(fā)優(yōu)點(diǎn)如下:在項(xiàng)目研發(fā)初期就可減少或避免高風(fēng)險(xiǎn)的發(fā)生;隨著迭代次數(shù)的增加,對(duì)計(jì)劃與評(píng)估也更加有信心;根據(jù)迭代的結(jié)果可以決定完成日期的趨勢(shì)。采用迭代-增量開(kāi)發(fā),能立即帶來(lái)不可估量的效益,圖1所示是局部迭代敏捷過(guò)程管理框架。
圖1 局部迭代敏捷過(guò)程管理框架
本系統(tǒng)以中小型軟件開(kāi)發(fā)公司針對(duì)軟件開(kāi)發(fā)過(guò)程的任務(wù)管理為研究?jī)?nèi)容,構(gòu)建了在B/S結(jié)構(gòu)下的任務(wù)管理系統(tǒng),系統(tǒng)針對(duì)中小型軟件開(kāi)發(fā)公司的業(yè)務(wù)需求與項(xiàng)目開(kāi)發(fā)過(guò)程中任務(wù)進(jìn)度管理的問(wèn)題進(jìn)行分析設(shè)計(jì),通過(guò)對(duì)任務(wù)時(shí)間進(jìn)行嚴(yán)格的管控,保證項(xiàng)目產(chǎn)品能按照預(yù)期目標(biāo)交付出用戶滿意的產(chǎn)品。系統(tǒng)在開(kāi)發(fā)過(guò)程中,采用敏捷迭代-增量的開(kāi)發(fā)方法,快速地產(chǎn)生成果,持續(xù)地交付,保證項(xiàng)目能夠按照預(yù)定的進(jìn)度、質(zhì)量和成本順利完成。
2.1系統(tǒng)總體的功能設(shè)計(jì)
采用敏捷迭代-增量開(kāi)發(fā)的方法,設(shè)計(jì)一款高效的任務(wù)管理系統(tǒng),該系統(tǒng)主要為任務(wù)管理者和執(zhí)行者提供工作平臺(tái),具有管理權(quán)限的成員通過(guò)任務(wù)管理系統(tǒng)可以及時(shí)準(zhǔn)確地了解項(xiàng)目組成員的分工狀況、項(xiàng)目開(kāi)發(fā)進(jìn)度和項(xiàng)目子任務(wù)的具體執(zhí)行情況等。在軟件開(kāi)發(fā)過(guò)程中,傳統(tǒng)的任務(wù)管理系統(tǒng)主要是管理者對(duì)整個(gè)項(xiàng)目進(jìn)展情況進(jìn)行管理,本系統(tǒng)采用自頂向下與自底向上相結(jié)合的管理方式對(duì)項(xiàng)目開(kāi)發(fā)過(guò)程中的任務(wù)進(jìn)度進(jìn)行嚴(yán)格管控,即具有權(quán)限的組織機(jī)構(gòu)管理者與項(xiàng)目開(kāi)發(fā)人員之間的協(xié)作。
對(duì)中小型軟件公司的組織機(jī)構(gòu)進(jìn)行層級(jí)式管理,按組織機(jī)構(gòu)等級(jí)大小進(jìn)行權(quán)限分配,即具有較高等級(jí)的組織結(jié)構(gòu)可以添加比它等級(jí)低的組織,而低等級(jí)的組織結(jié)構(gòu)下面不能再添加比它等級(jí)高的組織機(jī)構(gòu),例如公司下面可以添加部門,而部門下面就不可以添加公司組織。組織機(jī)構(gòu)的主要需求是添加組織信息、修改組織信息、刪除組織信息及維護(hù)其組織機(jī)構(gòu)的權(quán)限等,不同的組織結(jié)構(gòu)擁有自己獨(dú)特的圖標(biāo)識(shí)。當(dāng)對(duì)某一組織機(jī)構(gòu)設(shè)置管理權(quán)限時(shí),其組織機(jī)構(gòu)權(quán)限升級(jí),從普通的組織結(jié)構(gòu)轉(zhuǎn)換到管理部門,同時(shí)其所在成員權(quán)限也得到提升,對(duì)所在部門的項(xiàng)目任務(wù)進(jìn)行管理。管理者與開(kāi)發(fā)成員的用例圖如圖2所示。
圖2 管理者和開(kāi)發(fā)成員的用例圖
在項(xiàng)目開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員依照需求進(jìn)行任務(wù)計(jì)劃的制定。一個(gè)完整的項(xiàng)目,在開(kāi)發(fā)過(guò)程中會(huì)被創(chuàng)建多條任務(wù),并且主任務(wù)下面可以包含多條子任務(wù)。一個(gè)任務(wù)一般有“未開(kāi)始”、“進(jìn)行中”和“已完成”三種狀態(tài)。一個(gè)新任務(wù)被創(chuàng)建時(shí),該任務(wù)的狀態(tài)默認(rèn)為“未開(kāi)始”;新任務(wù)一旦被執(zhí)行,其狀態(tài)被修改為“進(jìn)行中”;當(dāng)任務(wù)被完成時(shí),具有任務(wù)權(quán)限的執(zhí)行者將其狀態(tài)改為“已完成”。具有管理權(quán)限的項(xiàng)目管理者在創(chuàng)建一條開(kāi)發(fā)任務(wù)后同時(shí)可以為此任務(wù)指派執(zhí)行者。任務(wù)管理系統(tǒng)的總體工作流程圖如圖3所示。
2.2項(xiàng)目開(kāi)發(fā)時(shí)間管控分析
從總體上說(shuō),項(xiàng)目在開(kāi)發(fā)過(guò)程中對(duì)進(jìn)度的管理主要分兩方面,一方面是按組織機(jī)構(gòu)分層級(jí)自頂向下的方式進(jìn)行時(shí)間管控,另一方面是項(xiàng)目開(kāi)發(fā)人員自底向上的進(jìn)度反饋方式。把分層級(jí)具有管理權(quán)限的成員自頂向下的方式與普通開(kāi)發(fā)成員自底向上的方式巧妙結(jié)合起來(lái),從而保證項(xiàng)目組能夠交付出客戶滿意的產(chǎn)品。每一個(gè)軟件產(chǎn)品都有自己的計(jì)劃開(kāi)始時(shí)間、計(jì)劃結(jié)束時(shí)間、實(shí)際開(kāi)始時(shí)間和實(shí)踐結(jié)束時(shí)間,項(xiàng)目的完成進(jìn)度可以通過(guò)進(jìn)度條一目了然。而項(xiàng)目的整體開(kāi)發(fā)進(jìn)度與項(xiàng)目任務(wù)完成比率有重要關(guān)系,計(jì)劃完成進(jìn)度和實(shí)際完成進(jìn)度是項(xiàng)目產(chǎn)品的2個(gè)重要屬性。計(jì)劃完成進(jìn)度依賴于計(jì)劃開(kāi)始時(shí)間、計(jì)劃結(jié)束時(shí)間和當(dāng)前日期。
圖3 任務(wù)管理系統(tǒng)的總體工作流程圖
計(jì)劃完成進(jìn)度=(當(dāng)前日期—計(jì)劃開(kāi)始時(shí)間)/(計(jì)劃結(jié)束時(shí)間—計(jì)劃開(kāi)始時(shí)間)
項(xiàng)目的實(shí)際完成進(jìn)度是項(xiàng)目開(kāi)發(fā)過(guò)程中任務(wù)的完成比率,如果計(jì)劃完成進(jìn)度大于實(shí)際完成進(jìn)度,項(xiàng)目信息欄中的進(jìn)度條顏色為紅色,這種顯示提醒項(xiàng)目開(kāi)發(fā)者項(xiàng)目實(shí)際完成進(jìn)度已落后與計(jì)劃完成進(jìn)度。項(xiàng)目實(shí)際進(jìn)度落后與計(jì)劃完成進(jìn)度的原因有很多種,有些原因不需要調(diào)整,如任務(wù)接受者反饋進(jìn)度過(guò)于保守等;而有些原因是需要調(diào)整的,如某條任務(wù)中途放棄了,項(xiàng)目管理者就要及時(shí)調(diào)整任務(wù)了。需要注意的是在任務(wù)調(diào)整時(shí),一定要在迭代周期確定的完成日期范圍中調(diào)整。
2.3任務(wù)數(shù)據(jù)表的設(shè)計(jì)分析
任務(wù)管理系統(tǒng)采用MySQL數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)信息進(jìn)行存儲(chǔ)。任務(wù)管理系統(tǒng)的數(shù)據(jù)庫(kù)(manager)主要由以下表組成:組織信息表(organ Infor)、員工信息表(userInfor)、產(chǎn)品信息表(productInfor)及任務(wù)信息表(task Infor),表與表之間存在相互依賴的關(guān)系,如圖4所示。組織機(jī)構(gòu)是一個(gè)樹(shù)形結(jié)構(gòu),organID為自動(dòng)增長(zhǎng)型,當(dāng)組織結(jié)構(gòu)為根節(jié)點(diǎn)時(shí),其parentId設(shè)置0。由表的依賴關(guān)系圖可以看出,組織結(jié)構(gòu)信息表中的主鍵是員工信息表及產(chǎn)品信息表的外鍵,產(chǎn)品信息表中的產(chǎn)品名是任務(wù)信息表的外鍵。組織信息表存儲(chǔ)的是組織機(jī)構(gòu)的信息,不同的組織機(jī)構(gòu)都有自己特有的標(biāo)識(shí),在數(shù)據(jù)庫(kù)表中用organType來(lái)標(biāo)識(shí),organAdmin的值用來(lái)判斷組織機(jī)構(gòu)是否具有權(quán)利權(quán)限。
圖4 數(shù)據(jù)庫(kù)中表之間的依賴關(guān)系
本系統(tǒng)采用敏捷迭代開(kāi)發(fā)方法,增量地產(chǎn)生成果、持續(xù)地交付,優(yōu)先完成高優(yōu)先的需求。采用敏捷開(kāi)發(fā)方法可以滿足用戶需求的不斷變更,保證每次迭代交付的產(chǎn)品都是可運(yùn)行的。任務(wù)管理系統(tǒng)是基于Web的實(shí)現(xiàn)方式,在具體的技術(shù)實(shí)現(xiàn)上,考慮到企業(yè)的應(yīng)用場(chǎng)合和將要部署的環(huán)境,系統(tǒng)采用流行的B/S結(jié)構(gòu),如圖5所示。按照應(yīng)用層、業(yè)務(wù)層和數(shù)據(jù)層的標(biāo)準(zhǔn)三層架構(gòu)進(jìn)行分層開(kāi)發(fā),也使系統(tǒng)具有良好的弱耦合性,方便未來(lái)的擴(kuò)展和整合。系統(tǒng)開(kāi)發(fā)過(guò)程中,追求高效、簡(jiǎn)潔和美觀,在程序前端方面使用HTML顯示數(shù)據(jù)信息,使用jQuery、jQuery Easy UI兩個(gè)JavaScript框架來(lái)實(shí)現(xiàn)前端與后臺(tái)的數(shù)據(jù)傳輸及HTML頁(yè)面的布局,使用CSS表現(xiàn)數(shù)據(jù)信息在HTML頁(yè)面的顯示效果。在程序后臺(tái)方面使用Servlet作為后臺(tái)程序的基本框架,使用Java語(yǔ)言對(duì)數(shù)據(jù)信息進(jìn)行處理。在數(shù)據(jù)庫(kù)方面使用MySQL存儲(chǔ)更新數(shù)據(jù)。
圖5 系統(tǒng)體系結(jié)構(gòu)圖
用戶在登錄界面需要對(duì)其用戶名及密碼進(jìn)行身份驗(yàn)證,通過(guò)與后臺(tái)數(shù)據(jù)庫(kù)中的信息進(jìn)行匹配,在通過(guò)身份驗(yàn)證成功后也需要對(duì)其權(quán)限就行驗(yàn)證,判斷其所在組織機(jī)構(gòu)是否具有管理權(quán)限。對(duì)權(quán)限的驗(yàn)證及數(shù)據(jù)庫(kù)訪問(wèn)代碼如下:
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();
在項(xiàng)目中,組織機(jī)構(gòu)是一個(gè)樹(shù)形層次的結(jié)構(gòu),每個(gè)樹(shù)形結(jié)點(diǎn)的id在后臺(tái)是自增生成的,要想在插入新的組織結(jié)構(gòu)立刻獲得在數(shù)據(jù)庫(kù)中生成的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);
}
在項(xiàng)目管理過(guò)程中,如何縮短產(chǎn)品開(kāi)發(fā)周期以及任務(wù)信息的獲取、展現(xiàn)與核實(shí),對(duì)項(xiàng)目按計(jì)劃完成具有非常關(guān)鍵的作用,同時(shí)把握項(xiàng)目進(jìn)度估算也很重要。在敏捷開(kāi)發(fā)任務(wù)管理中,項(xiàng)目組根據(jù)開(kāi)發(fā)團(tuán)隊(duì)自身特點(diǎn)和項(xiàng)目需求進(jìn)行管理,同時(shí)采用管理者分層級(jí)自頂向下與開(kāi)發(fā)成員自底向上相結(jié)合的方法值仍然得繼續(xù)研究下去,充分發(fā)揮項(xiàng)目組軟件開(kāi)發(fā)的潛力,以及對(duì)進(jìn)度進(jìn)行高效管理的策略。
[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]劉華清.敏捷開(kāi)發(fā)中進(jìn)度管理的策略[J].數(shù)字通信,2013,40(4):78~82
[3]張曙晟.基于局部迭代的敏捷過(guò)程管理研究[J].軟件導(dǎo)刊,2011,10(9):20~25
[4]胡喬.基于JSF框架的權(quán)限管理系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(11):22~28
[5]關(guān)忠誠(chéng),程剛.基于敏捷方法的軟件項(xiàng)目管理研究[J].重慶大學(xué)學(xué)報(bào),2005,11(6):86~92
[6]賈郭軍.軟件項(xiàng)目實(shí)施過(guò)程中的進(jìn)度管理研究[J].西安科技學(xué)院學(xué)報(bào),2004,24(2):78~85
[7]張琦,林碧英.淺談軟件開(kāi)發(fā)過(guò)程管理中的進(jìn)度管理[J].管理論叢與教育研究???2008,36(8):90~96
[8]劉華清.敏捷開(kāi)發(fā)中進(jìn)度管理的策略[J].數(shù)字通信,2013,40(4):78~80
[9]曹質(zhì)樸.基于Rally平臺(tái)的敏捷項(xiàng)目進(jìn)度追蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2012
[10]徐建軍.軟件缺陷跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),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-),女,河南開(kāi)封人,碩士研究生,研究方向?yàn)檐浖_(kāi)發(fā)方法與軟件項(xiàng)目管理
任洪敏(1969-),男,上海浦東人,博士,副教授,研究方向?yàn)檐浖w系結(jié)構(gòu)、軟件復(fù)用、軟件項(xiàng)目管理
2015-04-16
2015-05-20