高質量軟件的第一要素
到目前為止,我們做了很多工作,,但是我一直在強調這些都還不是需求分析,。在很多人心目中,軟件開發(fā)的第一件事就是先做需求分析,。那么我們?yōu)槭裁床贿@樣做呢,?這牽扯到一個關鍵的問題:我們都希望開發(fā)高質量的軟件,而本系列文章的重點也是如何通過OO實踐開發(fā)高質量軟件,,那么什么是高質量軟件,?
對于這個問題,也許很多人會說,,是靈活的,、是易于修改和擴展的、是可維護性高的,、是用戶體驗好的,、是文檔完整的、是代碼規(guī)范的,、是性能處理優(yōu)秀的……好吧,,我承認,這些都是高質量軟件必不可少的元素,,但是,,還有一個更重要的要素,就是:軟件必須做客戶希望它做的事,。你的軟件再靈活,、編碼再規(guī)范,客戶不關心,,客戶最關心的是軟件是不是完成了他期待的功能,,可以做他希望軟件做的事。所以,,高質量軟件的第一要素就是:讓軟件做客戶希望它做的事,。
知道了這點,就知道為什么第一步不是做需求分析了,,因為需求分析的重點不是“讓軟件做客戶希望它做的事”,,而是“將需求分解歸納成開發(fā)人員容易進行領域分析和設計的信息片段”。所以,,需求分析是開發(fā)人員面的東西,,而不是客戶面的東西,。作為開發(fā)人員,我們要首先站在客戶的角度看問題,,而不能總是站在開發(fā)人員角度,,和客戶隔著一條河對話。我們要走過去,,去河的另一岸,。
回顧我們的工作
現(xiàn)在來總結一下我們目前所做的工作,你會發(fā)現(xiàn),,我們所做的全部工作,,其目的就是讓軟件做客戶希望它做的事。
我們首先總結出特性列表,,然后通過分析和詢問降低了風險,,同時修改了特性列表,最后從做出一張用例圖,,使得從全局角度對系統(tǒng)進行一個概覽,。所有這一切,其實都是開發(fā)人員在“努力變成客戶”,,或說努力讓自己站在客戶的角度看系統(tǒng),,真正了解客戶想讓希望做什么。因為,,最好的理解需求的方式就是理解客戶想讓系統(tǒng)做什么,。
我們在哪里?看看地圖吧
做了這么多工作,,是不是有點迷失方向的感覺,?似乎我們已經(jīng)迷失在OO從林中,不知現(xiàn)在身在何處,。好的,那我們看看“OO地圖”吧,,一方面搞清楚我們在什么地方,,另一方面看看我們后續(xù)有哪些路要走。
以上就是實踐中的大致開發(fā)流程,。一般來說,,開發(fā)大致分為兩個階段:前一階段我們要站在用戶角度,搞清用戶想要系統(tǒng)做什么,;后一階段要回到開發(fā)人員角度,,進行分析、設計,、編碼,、測試等一系列操作,。而我們現(xiàn)在正處在兩個階段的交界處。
一般在迭代階段提倡使用迭代與增量的方式進行開發(fā),。至于這樣有什么好處,,以及OO如何于迭代增量方式結合這些問題,我們將在下一篇文章中結合我們的案例詳細討論,。
重點總結
1.高質量軟件的第一要素是:軟件做客戶希望它做的事,。
2.在開發(fā)初期,我們要盡量站在客戶角度,。
3.理解需求的最好方法是明白客戶希望軟件做什么,。
4.開發(fā)流程大約分為兩個階段:搞清用戶想要系統(tǒng)做什么和迭代開發(fā)。