UP還是敏捷方法?

2021-04-13 09:57:07 字數 2397 閱讀 6835

目前up或rup軟體開發過程已經被很多企業所採用,敏捷方法也逐漸被很多公司使用,究竟是採用up(rup)還是敏捷方法呢?哪個更有效呢?

最有效的方法其實是根據企業自身的實際情況,來綜合採用這兩種方法,選擇最適合你的最佳實踐。

所謂最佳實踐,是指人們在多年的實踐過程中總結出來的最佳的開發軟體的一些方法。

rup中的最佳實踐有:迭代式的開發、管理需求、使用構件架構、視覺化建模、檢驗質量、控制變更,和使用rational工具等。

敏捷方法以xp為例:

四大價值有:溝通(communication)、簡單(simplicity)、反饋(feedback)、勇氣(courage)。

五個原則:提供快速反饋、簡單假設、製造增量式的變化、包容變化、質保工作。

十二個實踐原則:計畫的制定、小版本、簡單設計、測試、持續整合、重構、配對程式設計、**共享、每週只工作40小時、現場客戶、隱喻、編碼標準。

從文字上看兩種方法中一致的有:迭代式開發、質量保證工作(檢驗質量,質保工作)。

下面就來分析一下這些最佳實踐。

1.視覺化建模

xp雖然沒有明確指出,需要進行視覺化建模,但在實施過程中,編碼之前,一般會在紙上劃出要實現部分的草圖,而且也使用uml,儘管是簡單設計,但無論簡單設計與否,這實際上就是在進行視覺化建模。所以,在這點上與rup是一致的。

2.使用構件架構

rup提倡利用構件提高可重用性。

xp提倡重構、配對程式設計,這實際上是利用這些手段來提高**的質量,而提高可重用性,進行可重用的構件的設計,實際上是最主要的工作,包括設計模式的使用等等。

所以,在這一點上,兩種方法的觀點是一致的。

3.控制變更

變更控制工具在軟體開發企業中已經廣泛使用,這一點不存在爭議。儘管xp沒有把它明確提出來。

4.管理需求

xp沒有管理需求的說法,但事實上對於關乎軟體專案的全域性的重要的功能需求,和非功能需求,是一定需要控制的,否則,如果專案進行到一半,然後推倒重來,即便是神仙恐怕也沒辦法讓專案成功;至於對全域性影響不大的變化,自然可以靈活處理,擁抱也好,放到下乙個版本發布都是可行的。

所以,在這一點上兩種方法也並不矛盾。

5.case工具的使用

rup當然想讓你是用他們rational的工具了。

xp擁護者中有人認為用紙和筆是最好的方法,但是如果用case工具可以提高效率的話,為什麼要拒絕使用呢?

建議根據企業中員工都習慣的方式來決定是否使用,以及使用什麼工具。

6.簡單設計

這恐怕是爭議較多的一點,rup提倡先進行系統分析,設計,然後再進行編碼;xp則覺得只要畫張草圖,就可以編碼了,之後就重構,擁抱變化吧。

其實我們要根據專案的複雜情況來決定設計工作要進行的程度。如果專案很複雜,一張草圖恐怕真的沒有辦法闡述清楚,也沒有辦法成為涉眾之間進行交流的工作產品。這樣就必須對這個複雜的問題進行抽象,提取,簡化複雜程度,直到簡化到可以被人們容易理解,這個過程就是系統分析設計。

對於簡單問題自然不需要進行詳細的分析設計。

7.重構

重構是提高**質量的有效手段,因為迫於進度壓力等原因,通常一次就寫出優秀的**確實不太可能,因此,重構可以發揮很好的促進作用。

rup中的**審查,走查等手段從檢驗的角度來進行**質量保證,當然這都是事後的手段,如果**質量不合格,自然需要修改,這可以算作一種促進重構的推動力。

8.配對程式設計

兩個人的智慧型勝一人,在這一條上得到了充分的體現,但對人員素質要求還是較高的,如果人員素質參差不齊,可能就變成乙個人指導另乙個人,或者兩個人沒辦法達成一致意見。

所以,通過**審查,走查等手段同樣可以起到對**質量進行監督,檢驗的目的。

9.測試

xp中提倡的測試先行,的確可以在沒有良好的設計模型的情況下,起到乙個明確思路的作用。但如果有設計模型,在功能和介面都已經明確設計好了的情況下,測試先行或後行區別可能並不大,但一定要有測試程式,這有利於進行回歸測試。

10.持續整合

持續整合是檢驗工作成果的有效手段,在不影響正常工作進度的情況下,整合工作做得越早越好,這樣可以及時發現整合過程中的問題。

11.小版本發布

rup也提倡每個迭代週期發布乙個可以執行的版本,當然這個迭代週期是多長時間,可以根據專案的具體情況來決定。

總之,要靈活使用這些最佳實踐,任何方法都不是簡單的教條,一定要具體問題具體分析,這樣才能保證軟體專案的成功。

迭代,敏捷開發和UP

什麼是軟體開發中的迭代開發?就是開發被組織成一系列固定的短期小專案,稱為迭代,每次迭代都產生,經過測試 整合並可執行的區域性系統。系統在迭代中持續擴充套件和精化,並以迴圈反饋和調整為核心驅動力,最終成為乙個程式設計系統產品。迭代開發,又被稱為增量式開發,進化式開發,或者iid iterative a...

mybatis判斷用insert還是update

下邊看一下mybatis的對映檔案。select count from teacher where teacher id 0 update event teacher name teacher id insert into teacher teacher id,teacher name values...

為什麼還是不敏捷

敏捷現在的確很火,特別是隨著網際網路應用開發的火熱,敏捷更是各個公司都在推崇的開發方法,什麼敏捷管理,敏捷開發,敏捷文化,方方面面都跟敏捷掛鉤,各個專案都在使用 站式晨會 迭代增量 結對程式設計 等敏捷實踐,但是我們大多數的團隊為什麼還是沒有真正的實現敏捷了,主要原因如下 一 捨本逐末,光顧著敏捷了...