TDD開發的全過程之分析建模

2021-08-29 08:29:11 字數 2496 閱讀 9586

一、起因

公司交給我乙個任務,為測試員寫乙個手機模擬介面,以方便她們的手機簡訊測試。過去她們都是用mc4j直接呼叫公司伺服器的mbean服務來模擬進行測試,以驗證我們整個系統平台。這種測試主要是檢查收發簡訊是否正常,而我的要做的工作就是,讓她們在測試的時候更方便更直觀。

二、需求

我和測試員陳mm(也就是軟體的使用者)約定了乙個時間,大家一起來討論這個軟體的需求。

1、首先,我大概了解了一下她們的測試工作,知道我要做個什麼東東。

2、然後我回去思考了一下,再次找她詳細了解其測試的具體步驟,並在一張白紙上以uml用例圖的方式,記錄下需求的功能。用例是什麼?用例就是需求,就是你的軟體應該具有的功能,當然用例圖只是概括性的對功能進行了描述。

3、最後,我坐在我的電腦前開始用magicdraw uml來畫用例圖(我不喜歡用rose,那玩意太笨重了,介面友好性也不好)。在畫用例圖的時候,我發現了一些隱含的功能,這些是陳mm在和我做需求時沒有考慮到的(注:開發者應該為使用者挖掘隱含需求)。我和陳mm一一確定了這些我新發現的需求,最後得到如下的用例圖。

(1)手機前台測試操作的用例圖(說明:include是指某用例包含(include)子用例)

(2)後台管理

三、介面設計

接下來是介面設計。既然是手機模擬,我很自然就拿我的motorola手機的操作介面來做參考。不過這裡應該注意到,手機操作環境和電腦操作環境不盡相同(比如說電腦有滑鼠,還有鍵盤可以輸入文字),所以沒有必要唯妙唯肖的完全模枋,還是以使用者操作方便為主。

介面設計是很重要的一步,不要一上來就寫程式,一定要先做到心中有個大概,否則返工的可能性就很大。而且,把介面拿出來給客戶看,客戶也就能做到心中有數,還能盡早提出一些新需求和意見來。千萬不要等到軟體做完了再拿給客戶看,到時客戶看了如果要修改,那就做太多白費工了。

由於軟體介面相對簡單,陳mm基本沒有提修改意見,但這不是個好兆頭。不過極限程式設計就是要擁抱變化不是^_^。咱不怕她改,只要大致的介面她能定下來就行了。

介面我喜歡用visio來畫,當然也聽說有人喜歡用vb來快速構建介面原型的,看個人喜好了。整個介面如下:

這個是後台管理介面

四、類圖

類圖反映了軟體的資料模型。在設計資料模型,我參考了介面設計圖和用例圖,找出乙個個的類。然後參照用例圖的乙個個功能,設計出了各類的屬性和方法。設計初始的類圖當然不可能很詳細,但至少應該看到個大概。有錯誤不要緊,後期可以慢慢修正,但大體關係就算定下來了。

neil(公司cto,乙個40歲左右的真正的資深程式設計師)說:看乙個軟體的設計主要看兩個類:類圖和時序圖。類圖確定了軟體資料模型的靜態關型,時序圖則是資料模型的動態關係。

類圖如下,看英文大致可以知道類/屬性/方法的含義和作用了,就不一一介紹了。

五、時序圖

時序圖是本文最後乙個圖,時序圖表明了用例圖中各功能的實現方案,同時也反應了類圖中各類的互動關係。以後程式的邏輯和時序圖基本一致。不過,有些人會去畫得很詳細的時序圖,詳細到都快趕上偽**級別了,我覺得這沒必要。我把時序圖看做反映自己思路的大概過程,所以也就畫個大概。

我認為時序圖要簡潔易懂,這樣以後你的後繼維護者,拿到這個軟體的時序圖(當然也包括用例圖、類圖),就能明白你的大概設計思路。另外,畫時序圖也能整理自己的思路,同時還可以對類圖的設計進行驗證。在畫這個時序圖的過程中,我就糾正了在類圖中的幾處考慮不周的地方。

這裡僅給出其中幾個時序圖(實際上我也沒有把用例都畫完,有些類似的簡單的,就忽略了。

(1)新增乙個手機號碼

(2)關機

(3)開機

(4)傳送簡訊

到這裡設計階段就完成了,用時一天。下一步是編碼,將應用tdd先寫測試**的方式來寫**。

TDD開發的全過程之分析建模

一 起因 公司交給我乙個任務,為測試員寫乙個手機模擬介面,以方便她們的手機簡訊測試。過去她們都是用mc4j直接呼叫公司伺服器的mbean服務來模擬進行測試,以驗證我們整個系統平台。這種測試主要是檢查收發簡訊是否正常,而我的要做的工作就是,讓她們在測試的時候更方便更直觀。二 需求 我和測試員陳mm 也...

一次資料分析的全過程

源資料就是個日誌文字資訊 2008 1 11 02 14 33 181 181 00001c68 seqid 418370 toback true len 154 msgid x00000202 2008 1 11 02 14 33 181 181 00001c68 seqid 418370 tof...

電子商務開發全過程 之二 電子商務技術目標

建立大型的電子商務 不可或缺需要有很多功能和用到很多技術。在此我將介紹一下我所了解的可能需要實現的功能和用到的技術。頁面靜態化有以下幾個優點 頁面靜態化分為偽靜態和真靜態。我們將要做的系統將使用偽靜態。具體原因我們將在今後的系列文章中介紹 在電子商務 中,是展示產品的重要途徑,也是電子商務 不可缺少...