天天看點

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

本文為PMCAFF專欄作者産品經理朱學敏出品

UML(UnifiedModeling Language,統一模組化語言) 是一種在軟體設計時提供給分析師、設計師和工程師之間的通用語言。UML在軟體需求分析及整個産品生命周期中起着重要作用:一是有助于捕獲系統結構或行為;二是有助于定義軟體構架,保持設計和實作的一緻性;三是有助于管理複業務,友善團隊溝通。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

UML不僅支援面向對象的分析與設計,還支援産品從0到1的全過程。比如借助UML來與使用者進行需求溝通,或指導程式員進行軟體開發。UML被應用到面向對象的問題解決上,但面向對象最關鍵的是模組化問題,模組化可以把許多複雜業務的重要細節給抽象出。

UML分為結構圖和行為圖。結構是靜态的,它描繪結構元素構成的系統或函數,顯示結構或運作時體系結構的靜态關系。比如類圖、對象圖、構件圖、部署圖。行為是動态的,它描繪一個系統或業務過程的行為特征,顯示動态模型的視圖。比如活動圖、狀态圖、序列圖、用例圖。每種圖形都是從需求或設計的不同層面來描述模型,通過模型描述系統的類、對象、關聯、職責、行為、接口、用例、包、順序、協作及狀态。産品經理可以通過圖形化的方式,從各個角度了解産品,以便更好的表達思想與交流問題。

UML模組化常用的工具有:ProcessOn、EnterpriseArchitect 、Visio、StarUML、OmniGraffle、ArgoUML。UML模組化常見的模型有:業務模型、需求模型、設計模型、實作模型、資料庫模型。UML模組化的重點不在于如何畫UML,而是如何運用UML去管理好一個産品。UML模組化适用于不同的場景設計,可從不同角度诠釋産品。因側重從産品經理的角度談UML模組化,是以隻介紹用例圖、狀态圖、活動圖、時序圖與類圖。

用例圖(UseCase Diagram)

用例圖從外部觀察者的角度描述系統的作用。用例圖描述了系統的功能要求,強調從使用者自身角度,分析其功能範圍,但不關心具體實作。

1.參與者就是與應用程式或系統進行互動的使用者或系統;

2.用例就是外部可見的系統功能,對系統提供的服務進行描述;

3.子系統用來展示系統的一部分功能,這部分功能聯系緊密。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

以某共享出行系統的乘客為例,在設計用例的時候,一般是按使用者角度從Uc級描述統功能,并指向各功能的操作者。比如乘客主要負責的功能有登入平台、微信授權、掃碼裝置、選擇套餐、支付訂單與檢視訂單等。我們可以用一種可視化的方式,來設計系統的功能需求,本質還是擴充功能的增删改查。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

狀态圖(State Diagram)

狀态圖由狀态、轉換、事件和活動組成,描述對象所有可能的狀态以及事件發生轉移的條件。狀态圖一般為那些有多個狀态的、行為随外界環境而改變的類畫狀态圖。根本就是闡明其在生命周期的時間和狀态圖是用于此目的的一個對象,将滿足某些條件、執行某些活動、等待某些事件。

1.研究類、角色、子系統、或元件的複雜行為;

2.在進入和退出狀态時所執行的操作;

3.在不使狀态發生變更的情況下進行的轉移。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

以某共享出行出行系統為例,客戶完成掃碼按摩的訂單對象的生存期間的狀态序列,引起轉移的事件,以及因狀态轉移而伴随的動作。從掃碼充電訂單狀态從待支付,已完成、已退款到交易關閉都是一個完整的業務閉環。實際應用中并不是所有的類都需要畫狀态圖,有三個及以上狀态,且在不同狀态下行為有所不同的類才需要畫狀态圖。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

活動圖(Activity Diagram)

活動圖是一種表述業務過程以及工作流的流程圖,直白點就是使工作流和業務過程可視化的圖。它描述活動的順序,展現從一個活動到另一個活動的控制流,有利于識别并行活動,能夠快速分析業務流程、了解系統功能、挖掘潛在的業務需求。

1.動作狀态就是指不可中斷的動作,并在此動作完成後,通過完成轉換轉向另一個狀态;

2.動作流就是動作之間的轉換過程;

3.節點主要有開始節點、終止節點、分支節點與合并節點,本質都是對流程的限制。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

以某跨境電商平台為例,客戶完成商品結算的這一活動過程中,分别是檢視商品、購買商品、商品結算這三方面完成流程的轉換。其實就是從行為動作描述具體業務與工作流程,以及各項業務之間的限制關系。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

時序圖(Sequence Diagram)

時序圖是一種強調時間順序的互動圖,它通過描述對象之間請求和響應消息的時間順序,來顯示多個對象之間的動态協作。時序圖具備了時間順序的概念,提供了控制流随着時間推移的可視化軌迹,進而可以清晰地表示出對象在某一個時刻的動态行為。

1.生命線是一條垂直的虛線,從對象底部延伸出來的,表示對象存在的時間;

2.控制焦點是時序圖中表示時間段的符号,在這個時間段内,對象可執行相應的操作;

3.消息顯示為箭頭,消息可以完成傳輸,可是同步的,也可是異步的,即可以是請求,也可以是響應。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

以某車生活平台為例,車主通過服務劵可以進行線上車服務相關的預約,門店确認預約訂單後,車主可以憑劵碼到門店進行服務的流程。車主預約中參與互動的所有對象之間消息傳遞的時間順序,可以清晰的梳理業務流程及對象關系,保證産品需求的準确性、可實作性。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

類圖(ClassDiagram)

類圖是一種靜态模型,通過顯示系統的類,以及類之間的關系來表示系統。類圖是靜态的,可以展現軟體系統中的類、接口以及它們之間的架構。類之間關系主要有泛化,實作,關聯,聚合,組合與依賴。

1.類是對象類型的表現形式,反映出這類對象在系統内的的結構和行為;

2.接口是實施者需要滿足的行為規範;

3.包是一個命名空間,也是一個元素。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

以某共享出行系統為例,我們可以直覺的看出公司、司機、車輛、裝置、業務員之間的對應關系。比如一個公司對應多個車輛,一個車輛又對應多個按摩裝置,理清他們之前的結構關系,就可以快速了解業務邏輯和完成表結構設計。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯

UML在整個軟體開發過程中,解決了“一盤散沙”的問題,在國内不少地方獲得了應用。作為産品經理,學習UML必須從模型的建造開始,一個蘿蔔一個坑的去将UML模組化實踐到産品中,不斷曆練自己,才能學有所成。當我們對UML模組化的各圖形都有所了解後,就可以全面的、深入的從各個角度表達産品,讓表達變得更豐富、更形象。

對于産品經理而言,掌握UML有助于梳理業務流程和傳達産品需求。我們不僅要深挖前端業務流程,還要了解看不見的後端實作邏輯。很多産品在版本疊代階段,産品經理很容易忽視産品的隐性特性,對産品的核心功能無法深挖或了解,導緻實施中還在讨論需求或需求變更,或上線後功能不符合需求,主要原因是缺少對後端整體功能的統籌與把控。而UML的出現,讓産品經理擁有一套與技術人員溝通的共同語言,在工作中需求對稱會變得更順暢。

uml中的“+”、“-”和“#”的是_UML模組化更好地表達産品邏輯