這是我參與 8 月更文挑戰的第 5 天,活動詳情查看: 8月更文挑戰web
爲了便於和客戶、策劃溝通,經過文檔的形式來展現本身對客戶需求的理解程度,省得作偏了,作出來的不是客戶或策劃須要的。 開發成本上,優先級等方面考慮 弄清楚用戶要解決什麼問題,從用戶提供的,用戶未提供但潛在存在的等方面全面地理解、挖掘、分析出用戶真實、準確的需求markdown
從客戶的角度來描述系統功能,在需求分析文檔裏使用併發
參與者:使用該系統的人或事物,以人形圖標表示app
用例:表明系統某項完整的功能,用橢圓表示oop
關係:定義用例之間的關係,有泛化關係,擴展關係,包含關係post
表示同一業務目的(父用例)的不一樣技術實現(各個子用例),用三角箭頭從子用例指向父用例 好比支付包含了分期支付,支付寶支付,貸款支持等,但同時也能夠用來表示基於某個參與者有更多的用例。spa
包含:一個用例能夠包含其餘用例具備的行爲,並把它包含的用例行爲做爲自身行爲的一部分,採用虛線箭頭加 include 指向被包含的用例 擴展:在完成某個功能的時候偶爾會執行另一個功能,用虛擬箭頭加 extend 指向被包含的用例。線程
類、接口、關係code
類名、屬性和方法orm
公共類型用 + 表示,私有用 - 表示,保護用 # 表示
對應 TypeScript 裏的 public private protected
泛化關係:類與類,接口與接口之間的繼承關係,好比圓形繼承於形狀類,用實線空心箭頭指向父類
實現關係:類與接口之間的實現關係,用虛線空心箭頭指向父類
依賴關係:一個系統依賴另外一個系統的服務,好比自行車經過打氣筒類來充氣,用虛線箭頭指向被依賴的類,不會爲某輛自行車專門配個打氣筒
關聯關係:存在固定的對應關係,好比主人和自行車,公司與員工等,用實線箭頭指向被關聯的類。
聚合關係:總體和部分的關係,兩個類處於不一樣的層次上,一個表明總體,一個表明部分,好比汽車由輪胎以及其它零件組成,用空心菱形箭頭表示,其中菱形指向總體,箭頭指向部分
首先組合、聚合是關聯關係的一種,關聯的兩個類是屬於同一層級,而聚合、組合是不一樣層級,是總體與部分的關係,另外組合關係裏的部分的生命週期依賴於總體。 表示方式也不一樣,關聯是用實線箭頭指向被關聯類,聚合是用空心菱形箭頭,空心菱形指向總體,箭頭指向部分,而組合則是用實心菱形箭頭表示,實心菱形指向總體,箭頭指向部分。
描述對象之間傳遞消息的時間順序,即用例中的行爲順序。其中縱軸是時間軸,橫軸是表明在協做中各個獨立的對象
選項表示可能會發生,也可能不會發生,通常用於只有一個 if 的場景 抉擇則用在多個 if 或者有 else 的場景
描述系統的活動,斷定點和分支