|
一、選題背景、研究意義及文獻(xiàn)綜述 1、 選題背景 軟件項(xiàng)目開(kāi)發(fā)是一項(xiàng)系統(tǒng)而復(fù)雜的工作,它需要一個(gè)團(tuán)隊(duì)互相配合、分工協(xié)作。軟件項(xiàng)目管理系統(tǒng)可以規(guī)范一個(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)的日常工作,提高工作效率。軟件項(xiàng)目管理是為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,而對(duì)成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等進(jìn)行分析和管理的活動(dòng)。實(shí)際上,軟件項(xiàng)目管理的意義不僅僅如此,進(jìn)行軟件項(xiàng)目管理有利于將開(kāi)發(fā)人員的個(gè)人開(kāi)發(fā)能力轉(zhuǎn)化成企業(yè)的開(kāi)發(fā)能力,企業(yè)的軟件開(kāi)發(fā)能力越高,表明這個(gè)企業(yè)的軟件生產(chǎn)越趨向于成熟,企業(yè)越能夠穩(wěn)定發(fā)展。然而,目前,對(duì)軟件項(xiàng)目的管理主要有手工存取和借助一些軟件Visual Source Safe(簡(jiǎn)稱(chēng)VSS)、subversion(簡(jiǎn)稱(chēng)SVN),也會(huì)有一些工具和理論,比如COCOMO, 甘特圖等對(duì)軟件項(xiàng)目進(jìn)行管理,起不到對(duì)項(xiàng)目進(jìn)度的實(shí)時(shí)跟蹤與管理。為進(jìn)一步完善軟件項(xiàng)目流程及資源的統(tǒng)一管理,更加全面、有效的服務(wù)于軟件開(kāi)發(fā)過(guò)程,更好的方便軟件開(kāi)發(fā)過(guò)程管理。故開(kāi)發(fā)《軟件項(xiàng)目管理系統(tǒng)》。 軟件項(xiàng)目管理是軟件管理過(guò)程中的重要環(huán)節(jié)。軟件項(xiàng)目管理包括: 一、軟件需求管理; 二、軟件開(kāi)發(fā)資源管理(包括人力和時(shí)間管理); 三、軟件項(xiàng)目進(jìn)度可視化跟蹤與管理(開(kāi)發(fā)→測(cè)試→結(jié)束)。 1、研究意義 建立一個(gè)高效的軟件項(xiàng)目管理系統(tǒng),管理人員就可以利用它進(jìn)行輕松管理,清楚的知道資源和時(shí)間的管理和分配。比如說(shuō)多少個(gè)人在做某一個(gè)需求,多少人在測(cè)試某一個(gè)需求的實(shí)現(xiàn),這些需要多長(zhǎng)時(shí)間等。。使開(kāi)發(fā)工程產(chǎn)生的信息一目了然,對(duì)于估算開(kāi)發(fā)項(xiàng)目成本,優(yōu)化開(kāi)發(fā)進(jìn)程、工程項(xiàng)目的質(zhì)量控都具有重要的意義??傊?,通過(guò)軟件項(xiàng)目管理系統(tǒng)的實(shí)施應(yīng)用,能夠使企業(yè)的開(kāi)發(fā)項(xiàng)目更高效、更科學(xué)、更規(guī)范。 2、文獻(xiàn)綜述 (一)、軟件項(xiàng)目管理 項(xiàng)目管理是為了使工作項(xiàng)目能夠按照預(yù)定的需求、成本、進(jìn)度、質(zhì)量順利完成,而 對(duì)人員、產(chǎn)品、過(guò)程、和項(xiàng)目、進(jìn)行分析和管理的活動(dòng)。 目前國(guó)內(nèi)企業(yè)對(duì)項(xiàng)目管理水平和方法越來(lái)越重視,而合適的項(xiàng)目管理軟件在其中起了極其重要的作用!主要有工程項(xiàng)目管理軟件和非工程項(xiàng)目管理軟件2大分類(lèi)。 隨著微型計(jì)算機(jī)的出現(xiàn)和運(yùn)算速度的提高, 20 世紀(jì)80 年代后項(xiàng)目管理技術(shù)也呈現(xiàn)出繁榮發(fā)展的趨勢(shì), 項(xiàng)目管理軟件開(kāi)始出現(xiàn)。對(duì)于大型項(xiàng)目管理,沒(méi)有軟件支撐,手工完成項(xiàng)目任務(wù)制定、跟蹤項(xiàng)目進(jìn)度、資源管理、成本預(yù)算的難度是相當(dāng)大的??梢哉f(shuō)計(jì)算機(jī)技術(shù)的發(fā)展對(duì)項(xiàng)目管理深入應(yīng)用起了舉足輕重的作用。根據(jù)管理對(duì)象的不同, 項(xiàng)目管理軟件可分為: ①進(jìn)度管理; ②合同管理; ③風(fēng)險(xiǎn)管理; ④投資管理等軟件。 根據(jù)提高管理效率、實(shí)現(xiàn)數(shù)據(jù)/信息共享等方面功能的實(shí)現(xiàn)層次不同, 又可分為: ①實(shí)現(xiàn)一個(gè)或多個(gè)的項(xiàng)目管理手段, 如進(jìn)度管理、質(zhì)量管理、合同管理、費(fèi)用管理, 或者它們的組合等; ②具備進(jìn)度管理、費(fèi)用管理、風(fēng)險(xiǎn)管理等方面的分析、預(yù)測(cè)以及預(yù)警功能; ③實(shí)現(xiàn)了項(xiàng)目管理的網(wǎng)絡(luò)化和虛擬化, 實(shí)現(xiàn)基于Web 的項(xiàng)目管理軟件甚至企業(yè)級(jí)項(xiàng)目管理軟件或者信息系統(tǒng), 企業(yè)級(jí)項(xiàng)目管理信息系統(tǒng)便于項(xiàng)目管理的協(xié)同工作, 數(shù)據(jù)/信息的實(shí)時(shí)動(dòng)態(tài)管理, 支持與企業(yè)/項(xiàng)目管理有關(guān)的各類(lèi)信息庫(kù)對(duì)項(xiàng)目管理工作的在線支持。 國(guó)外項(xiàng)目管理軟件有:Oracle 公司的Primavera P6、Artemis 公司Artemis Viewer、NIKU 公司的Open WorkBench、Welcom 公司的OpenPlan等軟件種項(xiàng)目管理軟件價(jià)格的差異也較大, 從幾萬(wàn)元到幾十萬(wàn)元不等。適于中小型項(xiàng)目的軟件價(jià)格一般僅為幾萬(wàn)元, 適于大型復(fù)雜項(xiàng)目的軟件價(jià)格則為十幾萬(wàn)到幾百萬(wàn)元。 (二)、Agile方法 方法即敏捷方法(agile methodologies)(也被稱(chēng)為輕量級(jí)方法,lightweight methodology),它是一組開(kāi)發(fā)方法的統(tǒng)稱(chēng)。 隨著技術(shù)的迅速發(fā)展和經(jīng)濟(jì)的全球化,軟件開(kāi)發(fā)出現(xiàn)了新的特點(diǎn),即在需求和技術(shù)不斷變化的情況下實(shí)現(xiàn)快節(jié)奏的軟件開(kāi)發(fā),這就對(duì)生產(chǎn)率提出了很高的要求。 1、CMM、SPICE目前已被公認(rèn)為軟件質(zhì)量保障方面的事實(shí)標(biāo)準(zhǔn),但由于其強(qiáng)調(diào)管理和控制,追求項(xiàng)目的可預(yù)測(cè)性和過(guò)程狀態(tài)的可視性,在提高生產(chǎn)率方面并未予以足夠的重視,實(shí)施時(shí)一方面需要大量中間制品(過(guò)程文檔)的制作,給開(kāi)發(fā)人員帶來(lái)很大負(fù)擔(dān),另一方面,追求可預(yù)測(cè)性與實(shí)際需求的模糊和快速變化不相協(xié)調(diào)。在此情況下,出現(xiàn)了一些新的開(kāi)發(fā)方法。 新的方法主要有Extreme Programming (簡(jiǎn)稱(chēng)XP)、SCRUM、Crystal 2、Feature Driven Development(簡(jiǎn)稱(chēng)FDD)、Dynamic Systems Development Methodology(簡(jiǎn)稱(chēng)DSDM) 、Adaptive Software Development(簡(jiǎn)稱(chēng)ASD)、Pragmatic Programming等,統(tǒng)稱(chēng)輕載(Lightweight)方法,以區(qū)別于傳統(tǒng)的開(kāi)發(fā)方法(稱(chēng)重載方法,Heavyweight)。2001年2月,新方法的一些創(chuàng)始人在美國(guó)猶他州成立了Agile 聯(lián)盟,將輕載方法正式更名為Agile方法,Agile有輕巧、機(jī)敏、活力的意思。 方法目前還沒(méi)有一個(gè)明確的定義,其特點(diǎn)是對(duì)軟件生產(chǎn)率的高度重視,主要適用于需求模糊或快速變化下的、小型項(xiàng)目組的開(kāi)發(fā)。有人稱(chēng),Agile方法是在保證軟件開(kāi)發(fā)有成功產(chǎn)出的前提下,盡量減少開(kāi)發(fā)過(guò)程中的活動(dòng)和制品的方法,籠統(tǒng)的講就是,"剛剛好"(Just enough),即開(kāi)發(fā)中的活動(dòng)及制品既不要太多也不要太少,在滿足所需的軟件質(zhì)量要求的前提下,力求提高開(kāi)發(fā)效率。 任何軟件開(kāi)發(fā)方法都有一個(gè)相應(yīng)的價(jià)值系統(tǒng)(Value system),方法通過(guò)價(jià)值系統(tǒng)對(duì)過(guò)程加以指導(dǎo),方法只有在其應(yīng)用周境(context)與價(jià)值系統(tǒng)相吻合時(shí)才能發(fā)揮真正效力,價(jià)值系統(tǒng)的基礎(chǔ)是對(duì)世界的信仰和對(duì)軟件開(kāi)發(fā)特點(diǎn)的認(rèn)識(shí),可以說(shuō)是核心理念。 gile方法的代表人之一Martin Fowler提出了Agile方法的核心理念:適應(yīng)和以人為本。 方法中的價(jià)值系統(tǒng)和指導(dǎo)原則 聯(lián)盟提出了"四個(gè)價(jià)值"、"十二個(gè)指導(dǎo)原則"。 方法的四個(gè)價(jià)值: (1) 較之于過(guò)程和工具,更注重人及其相互作用的價(jià)值。 (2) 較之于無(wú)所不及的各類(lèi)文檔,更注重可運(yùn)行的軟件的價(jià)值。 (3) 較之于合同談判,更注重與客戶(hù)合作的價(jià)值。 (4) 較之于按計(jì)劃行事,更注重響應(yīng)需求變化的價(jià)值。 方法的指導(dǎo)原則: (1) 在快速不斷地交付用戶(hù)可運(yùn)行軟件的過(guò)程中,將使用戶(hù)滿意放在第一位。 (2) 以積極的態(tài)度對(duì)待需求的變化(不管該變化出現(xiàn)在開(kāi)發(fā)早期還是后期)。Agile過(guò)程緊密?chē)@變化展開(kāi)并利用變化來(lái)實(shí)現(xiàn)客戶(hù)的競(jìng)爭(zhēng)優(yōu)勢(shì)。 (3) 以幾周到幾個(gè)月為周期,盡快、不斷地交付可運(yùn)行的軟件供用戶(hù)使用。 (4) 在項(xiàng)目過(guò)程中,業(yè)務(wù)人員和開(kāi)發(fā)人員最好能一起工作。 (5) 以積極向上的員工為中心建立項(xiàng)目組,給予他們所需的環(huán)境和支持,對(duì)他們 的工作予以充分的信任。 (6) 在項(xiàng)目組中,最有用、最有效的信息溝通手段是面對(duì)面的交談。 (7) 項(xiàng)目進(jìn)度度量的首要依據(jù)是可運(yùn)行的軟件。 (8) Agile過(guò)程高度重視可持續(xù)開(kāi)發(fā)。項(xiàng)目發(fā)起者、開(kāi)發(fā)者和用戶(hù)應(yīng)能始終保持步調(diào)一致。 (9) 應(yīng)時(shí)刻關(guān)注技術(shù)上的精益求精和設(shè)計(jì)的合理,這樣能提高軟件的快速應(yīng)變力。 (10) 簡(jiǎn)單化(盡可能減少不必要工作的藝術(shù))是基本原則。 (11) 最好的框架結(jié)構(gòu)、需求和設(shè)計(jì)產(chǎn)生于自組織的項(xiàng)目組。 (12) 項(xiàng)目組要定期對(duì)其運(yùn)作方面進(jìn)行反思,提出改進(jìn)意見(jiàn),并相應(yīng)進(jìn)行細(xì)調(diào)。 此外,Agile方法實(shí)施中一般采用面向?qū)ο蠹夹g(shù)(接口定義良好的其它開(kāi)發(fā)技術(shù)也可),另外還強(qiáng)調(diào)在開(kāi)發(fā)中要有足夠的工具(如配置管理工具、建模工具等)支持。r (三)、SCRUM開(kāi)發(fā) 什么是Scrum? Scrum的英文意思是橄欖球運(yùn)動(dòng)的一個(gè)專(zhuān)業(yè)術(shù)語(yǔ),表示“爭(zhēng)球”的動(dòng)作;把一個(gè)開(kāi)發(fā)流程的名字取名為Scrum,我想你一定能想象出你的開(kāi)發(fā)團(tuán)隊(duì)在開(kāi)發(fā)一個(gè)項(xiàng)目時(shí),大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭(zhēng)我搶地完成它,你一定會(huì)感到非常興奮的。 而Scrum就是這樣的一個(gè)開(kāi)發(fā)流程,運(yùn)用該流程,你就能看到你團(tuán)隊(duì)高效的工作。 開(kāi)發(fā)流程中的三大角色: 產(chǎn)品負(fù)責(zé)人(Product Owner) 主要負(fù)責(zé)確定產(chǎn)品的功能和達(dá)到要求的標(biāo)準(zhǔn),指定軟件的發(fā)布日期和交付的內(nèi)容,同時(shí)有權(quán)力接受或拒絕開(kāi)發(fā)團(tuán)隊(duì)的工作成果。 流程管理員(Scrum Master) 主要負(fù)責(zé)整個(gè)Scrum流程在項(xiàng)目中的順利實(shí)施和進(jìn)行,以及清除擋在客戶(hù)和開(kāi)發(fā)工作之間的溝通障礙,使得客戶(hù)可以直接驅(qū)動(dòng)開(kāi)發(fā)。 開(kāi)發(fā)團(tuán)隊(duì)(Scrum Team) 主要負(fù)責(zé)軟件產(chǎn)品在Scrum規(guī)定流程下進(jìn)行開(kāi)發(fā)工作,人數(shù)控制在5~10人左右,每個(gè)成員可能負(fù)責(zé)不同的技術(shù)方面,但要求每成員必須要有很強(qiáng)的自我管理能力,同時(shí)具有一定的表達(dá)能力;成員可以采用任何工作方式,只要能達(dá)到Sprint的目標(biāo)。 如何進(jìn)行Scrum開(kāi)發(fā)? 我們首先需要確定一個(gè)Product Backlog(按優(yōu)先順序排列的一個(gè)產(chǎn)品需求列表),這個(gè)是由Product Owner 負(fù)責(zé)的; 1、Scrum Team根據(jù)Product Backlog列表,做工作量的預(yù)估和安排; 2、有了Product Backlog列表,我們需要通過(guò) Sprint Planning Meeting(Sprint 計(jì)劃會(huì)議) 來(lái)從中挑選出一個(gè)Story作為本次迭代完成的目標(biāo),這個(gè)目標(biāo)的時(shí)間周期是 1~4個(gè)星期,然后把這個(gè)Story進(jìn)行細(xì)化,形成一個(gè)Sprint Backlog; 3、Sprint Backlog是由Scrum Team去完成的,每個(gè)成員根據(jù)Sprint Backlog再細(xì)化成更小的任務(wù)(細(xì)到每個(gè)任務(wù)的工作量在2天內(nèi)能完成); 4、在Scrum Team完成計(jì)劃會(huì)議上選出的Sprint Backlog過(guò)程中,需要進(jìn)行 Daily Scrum Meeting(每日站立會(huì)議),每次會(huì)議控制在15分鐘左右,每個(gè)人都必須發(fā)言,并且要向所有成員當(dāng)面匯報(bào)你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時(shí)遇到不能解決的問(wèn)題也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖); 5、做到每日集成,也就是每天都要有一個(gè)可以成功編譯、并且可以演示的版本;很多人可能還沒(méi)有用過(guò)自動(dòng)化的每日集成,其實(shí)TFS就有這個(gè)功能,它可以支持每次有成員進(jìn)行簽入操作的時(shí)候,在服務(wù)器上自動(dòng)獲取最新版本,然后在服務(wù)器中編譯,如果通過(guò)則馬上再執(zhí)行單元測(cè)試代碼,如果也全部通過(guò),則將該版本發(fā)布,這時(shí)一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會(huì)用郵件通知項(xiàng)目管理人員; 6、當(dāng)一個(gè)Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時(shí),我們要進(jìn)行 Srpint Review Meeting(演示會(huì)議),也稱(chēng)為評(píng)審會(huì)議,產(chǎn)品負(fù)責(zé)人和客戶(hù)都要參加(最好本公司老板也參加),每一個(gè)Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個(gè)會(huì)議非常重要,一定不能取消); 7、最后就是 Sprint Retrospective Meeting(回顧會(huì)議),也稱(chēng)為總結(jié)會(huì)議,以輪流發(fā)言方式進(jìn)行,每個(gè)人都要發(fā)言,總結(jié)并討論改進(jìn)的地方,放入下一輪Sprint的產(chǎn)品需求中。 (四)、Power Designer Designer 是Sybase公司的CASE工具集,使用它可以方便地對(duì)管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì),他幾乎包括了數(shù)據(jù)庫(kù)模型設(shè)計(jì)的全過(guò)程。利用Power Designer可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,還可以為數(shù)據(jù)倉(cāng)庫(kù)制作結(jié)構(gòu)模型,也能對(duì)團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。他可以與許多流行的軟件開(kāi)發(fā)工具,例如PowerBuilder、Delphi、VB等相配合使縮短開(kāi)發(fā)時(shí)間和使系統(tǒng)設(shè)計(jì)更優(yōu)化。 designer是能進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的強(qiáng)大的軟件,是一款開(kāi)發(fā)人員常用的數(shù)據(jù)庫(kù)建模工具。使用它可以分別從概念數(shù)據(jù)模型(Conceptual Data Model)和物理數(shù)據(jù)模型 (Physical Data Model)兩個(gè)層次對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)。在這里,概念數(shù)據(jù)模型描述的是獨(dú)立于數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的實(shí)體定義和實(shí)體關(guān)系定義;物理數(shù)據(jù)模型是在概念數(shù)據(jù)模型的基礎(chǔ)上針對(duì)目標(biāo)數(shù)據(jù)庫(kù)管理系統(tǒng)的具體化。 二、研究的基本內(nèi)容,擬解決的主要問(wèn)題 1、 研究的基本內(nèi)容 (1)、軟件需求管理; (2)、軟件開(kāi)發(fā)資源管理(包括人力和時(shí)間管理); (3)、軟件項(xiàng)目進(jìn)度可視化跟蹤與管理(開(kāi)發(fā)→測(cè)試→結(jié)束)。 2、擬解決的主要問(wèn)題 (1)、完成系統(tǒng)的基本功能,其中包括后臺(tái)與數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn); (2)、完成上述功能并進(jìn)行優(yōu)化。 三、研究步驟、方法 1、研究步驟 (1) 查閱相關(guān)文獻(xiàn)了解此畢設(shè)題目所包含的內(nèi)容及要求; (2) 查閱相關(guān)文獻(xiàn)決定大概的程序構(gòu)架和主要類(lèi)與函數(shù)的使用; (3) 根據(jù)前兩步的研究結(jié)果開(kāi)始具體上機(jī)編程來(lái)實(shí)現(xiàn)畢設(shè)題目,其中包括大量遇到問(wèn)題,解決問(wèn)題的過(guò)程; (4) 對(duì)程序或結(jié)論進(jìn)行調(diào)式和檢查,并確定是否完成了畢設(shè)特定的要求。 2、研究方法 (1) 查閱相關(guān)文獻(xiàn),從中學(xué)習(xí)和獲取完成畢設(shè)所需的知識(shí)和內(nèi)容,從而形成理論概念; (2) 上機(jī)實(shí)際操作,在編程中發(fā)現(xiàn)并解決具體問(wèn)題,從而對(duì)題目及C#以及sql語(yǔ)句有更深入地理解; (3) 每周向老師匯報(bào)畢設(shè)進(jìn)度與成果,同時(shí)積極與老師交流,從而可以得到老師的指導(dǎo)和建議,解決一些特殊的問(wèn)題。 四、研究工作進(jìn)度
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|