(4)通用工具包(Util Package)
該包主要包括應用程序安全檢查的類,可以為上面三個包提供安全檢查,如客戶端檢查和服務器端業務規則檢查等,同時包括一些系統異常檢查與拋出處理以及系統日志服務等。
3.2.2系統詳細設計
詳細設計主要是描述在系統分析階段產生的類,與分析階段類的區別就是偏重于技術層面和類的細節實現。銷售管理系統提供的各種服務都是建立在分布、開放的信息結構之上,依托高速、可靠的網絡環境來完成的。每項服務都可以看作一個事件流,由若干相關的對象交互合作來完成。對于這種系統內部的協作關系和過程行為,可以通過繪制序列(Sequence)框圖和協作(Collaboration)框圖來幫助觀察和理解。此外,描述工作流和并發行為還可以通過活動框圖,表達從一個活動到另一個活動的控制流。同時,可以在理解這些圖的基礎上,抽象出系統的類圖,為系統編碼階段繼續細化提供基礎。下面以Java Web開發為例,介紹客戶管理子系統的詳細設計
1.客戶管理子系統的基本結構建模:下圖是客戶管理子系統主要類極其關系的詳細設計
圖3 客戶關系子系統類的詳細設計及類之間關系
2.序列圖:序列圖是一種對象交互圖,著重強調了時間序列,而不是靜態對象的關系,通過序列圖可以清楚地看到“誰在什么時間對誰說了寫什么”。
圖4 客戶管理的序列框圖 圖5 銷售人員對客戶管理的順序框圖圖4是一個客戶管理的序列框圖例子。描述了先加載某個客戶;顯示某些狀態;再更改某些屬性值,最后更新數據庫狀態的一次執行過程。此圖可設計Customer類的loadCustomer(int)和updateCustomer()方法實現。
通過序列框圖可以清晰看出系統用戶、客戶管理子系統的用戶接口、數據庫連接模塊之間以時間為順序的消息交換,這對于把握系統的控制流、順序行為和交互行為是非常有益的。建立在分布網絡環境下的銷售管理系統的事件流和控制流是非常復雜的,需要從頂層到底層進行一步步分解,用多幅能反映動態結構的圖來分析與說明。圖5反映了銷售人員對客戶管理的順序框圖。
3.狀態圖適合描述一個對象穿越多個Use Case的行為。類的狀態圖表示類的對象可以呈現的狀態和這個對象從一種狀態到另一種狀態的轉換。
圖6 Customer對象狀態圖圖6描述了Customer對象的生命期中可能的狀態及狀態變化(從創建、更新到消亡的轉變過程),其中insertOrder/deleteOrder不是直接作用于當前customer對象,而是指當前customer對象所涉及的訂單操作。此例說明其他對象的操作可能改變當前對象的狀態。
4.協作圖:協作圖和序列圖相似,兩種圖所表達的是同一種信息,可以將序列圖轉換為協作圖,反之也然。但兩者是有區別的,序列圖強調的是交互的時間序列,協作圖強調的是交互的語境和參與交互的對象的整體組織。下圖描述的是查詢一個客戶信息消息傳遞的過程。
圖7、查詢客戶信息的協作圖
文章來源于領測軟件測試網 http://www.kjueaiud.com/