您的位置:軟件測試 > 軟件項(xiàng)目管理 > 開發(fā)管理 >
軟件開發(fā)項(xiàng)目的佳實(shí)踐
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/5/20 15:43:53 ] 推薦標(biāo)簽:

引言

大多數(shù)軟件項(xiàng)目都是失敗的。事實(shí)上,Standish group 的報(bào)告顯示 80% 多的項(xiàng)目是不成功的,原因是超出了預(yù)算、未能按時(shí)完成、遺漏功能或者因?yàn)橐粋(gè)項(xiàng)目中同時(shí)出現(xiàn)了這些問題中的其中幾個(gè)。此外,30% 的軟件項(xiàng)目執(zhí)行得很糟糕以至于半途而廢。根據(jù)我們的經(jīng)驗(yàn),使用現(xiàn)代技術(shù)(例如 Java、J2EE、XML 以及 Web 服務(wù))的軟件項(xiàng)目都逃不出這個(gè)規(guī)則。

本文概述了軟件開發(fā)項(xiàng)目的佳實(shí)踐。一些業(yè)界泰斗,如 Scott Ambler、Martin Fowler、Steve McConnell 和 Karl Wiegers,已經(jīng)在因特網(wǎng)上寫了許多這樣的佳實(shí)踐,本文也引用了這些佳實(shí)踐。另請參閱本文末尾的相關(guān)信息部分。附帶的文章軟件開發(fā)項(xiàng)目實(shí)施指南描述了有助于提高項(xiàng)目成功率的十條重要的因素。

佳實(shí)踐項(xiàng)目

1. 開發(fā)流程(Development process)-為手頭的項(xiàng)目選擇適當(dāng)?shù)拈_發(fā)生命周期流程很重要(CMMI三級自定義過程大的一個(gè)裁剪項(xiàng)),因?yàn)槠渌乃谢顒?dòng)都是從這個(gè)流程派生出來的,F(xiàn)代的軟件開發(fā)項(xiàng)目多數(shù)都是在瀑布式流程的基礎(chǔ)上采用某種螺旋式方法。有幾種方法可供選擇,包括 Rational 統(tǒng)程(Rational Unified Process,RUP)、IBM® Global Services 方法(IBM® Global Services Method)以及極端編程(eXtreme Programming,XP)。(還要改進(jìn)型的瀑布模型,增量等相關(guān)模型可以供選擇)流程當(dāng)然比根本沒有要好,但在多數(shù)情況下流程的執(zhí)行情況要比使用的是什么流程更重要。以上列舉的常用方法都包含關(guān)于如何執(zhí)行流程的指南和構(gòu)件模板。此外,RUP 還有一系列描述使用 RUP 的佳實(shí)踐的書  [1][2][3][4],即便不選用 RUP,這些書也是獲得佳實(shí)踐的極好來源。給 RUP 加插件也是可以的。請為基于 WebSphere® J2EE 的項(xiàng)目下載  WebSphere 插件。(RUP是很好的一套增量迭代的開發(fā)方法,RUP方法論可以更好的應(yīng)當(dāng)變化和體現(xiàn)架構(gòu)設(shè)計(jì)在開發(fā)過程中的主導(dǎo)作用,但真正用好并不容易)

2.需求-收集需求需求達(dá)成一致是項(xiàng)目成功的基礎(chǔ)。這并不一定意味著需要在建立好體系結(jié)構(gòu)、完成設(shè)計(jì)和編碼工作之前確定所有的需求,但對于開發(fā)小組來說明白需要構(gòu)建什么是很重要的。質(zhì)量需求分兩種:功能性的和非功能性的。一種記錄功能性需求的好方法是使用用例(Use Case)。注意:用例被用于非面向?qū)ο蟮捻?xiàng)目。Armour 和 Miller 著有一本關(guān)于用例主題的權(quán)威著作 [5]。非功能性需求描述應(yīng)用程序的性能和系統(tǒng)特性。收集非功能性需求很重要,因?yàn)樗麄儗?yīng)用程序體系結(jié)構(gòu)、設(shè)計(jì)以及性能都會(huì)產(chǎn)生重要影響。請參閱 ConstruxWeb 站點(diǎn)上的 非功能性需求清單。(非功能性需求和功能性需求一樣重要,對于新產(chǎn)品的非功能性需求的前期收集是具有難度的,更多要借鑒其它產(chǎn)品相關(guān)經(jīng)驗(yàn)。需求開發(fā)可以采用結(jié)構(gòu)化分析方法,也可以采用用例分析方法。架構(gòu)設(shè)計(jì)也應(yīng)該針對系統(tǒng)的功能性需求和非功能性需求分別進(jìn)行設(shè)計(jì))

3.體系結(jié)構(gòu) - 為您的應(yīng)用程序選擇合適的體系結(jié)構(gòu)是關(guān)鍵。有好幾次 IBM 被要求復(fù)查出問題的項(xiàng)目,結(jié)果發(fā)現(xiàn)開發(fā)小組沒有應(yīng)用知名的業(yè)界體系結(jié)構(gòu)佳實(shí)踐。與 IBM 聯(lián)系是避免這類問題的好方法。我們的顧問可以與您的開發(fā)小組并肩工作以確保項(xiàng)目沿正確的軌道開始。經(jīng)過實(shí)驗(yàn)證明可靠的實(shí)踐稱為模式,有經(jīng)典的 Gang of Four [6] 模式、Java 模式 [7],也有 EJB 設(shè)計(jì)模式 [8]。Sun 公司與此相應(yīng)的是核心 J2EE 模式(Core J2EE Pattern)目錄 [9]。IBM 也發(fā)布過一些佳實(shí)踐和參考應(yīng)用程序體系結(jié)構(gòu) [10]。引言中說過許多項(xiàng)目都是失敗的。通過對這些失敗的項(xiàng)目的研究提出了反模式這個(gè)概念。這些反模式是很有價(jià)值的,因?yàn)樗鼈冡槍δ睦锍隽藛栴}以及為什么會(huì)出問題提供了有用的信息。

4. 設(shè)計(jì)-即使有了好的體系結(jié)構(gòu),也可能設(shè)計(jì)不好。許多應(yīng)用程序不是設(shè)計(jì)得過于復(fù)雜是設(shè)計(jì)得過于簡單。這有兩個(gè)基本原則 “盡量簡單”和 信息隱藏。對于許多項(xiàng)目來說,使用 UML 進(jìn)行面向?qū)ο蟮姆治雠c設(shè)計(jì)(Object-Oriented Analysis and Design)很重要。有關(guān) UML 的書有很多,但我們推薦 UML User Guide [11]和 Applying UML and Patterns [12]。重用是面向?qū)ο蟮暮苡星巴镜囊粋(gè)方面,重用經(jīng)常會(huì)因?yàn)樾枰~外的工作來創(chuàng)建可重用資產(chǎn)而變得無法實(shí)現(xiàn)。代碼重用是重用的一種形式,當(dāng)然也有其他一些能夠提高效率的重用種類。(Applying UML and Patterns 這本書結(jié)合了模式,RUP很多佳實(shí)踐和例子在里面,確實(shí)值得推薦)

5. WebSphere 應(yīng)用程序設(shè)計(jì) - IBM 擁有關(guān)于 WebSphere 系列產(chǎn)品的佳實(shí)踐和設(shè)計(jì)模式的廣泛知識(shí)。每個(gè)項(xiàng)目都是不同的,我們的顧問有豐富的經(jīng)驗(yàn)來幫助您。即使您只聘請我們的顧問很短一段時(shí)間,這種投資回報(bào)(ROI)也是很大的,因?yàn)槟梢栽谝院蟮捻?xiàng)目中節(jié)省開銷。我們的專家也發(fā)表過大量有關(guān)這類知識(shí)的文章,包括高性能 Web 站點(diǎn)注意事項(xiàng)和自主計(jì)算指南。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd