為什麼我們能從行話術語中發現領域模型? - mathiasverraes

banq發表於2022-03-02

系統中的資訊是人們之間交流過程的一部分。思想在頭腦中流動;沿途有翻譯,從概念到自然語言到形式語言(機器系統中的構造),然後再返回。
— Bill Kent
從人們交流的語言中發現客觀世界已經是一種預設方法,包括機器學習的NLP或大資料分析都是這種情況,領域建模也是這種情況,複雜性系統中的資訊會透過人們談論它的言語表現出來,這就是無所不在的通用語言UL,也就是行話或專業術語,透過建立術語字典能夠建立一種統一語言UL,這就是從概念到自然語言的表達,進一步嚴謹約束變成形式語言,適合機器系統執行解釋,當然,機器學習還可以自己發現和生成一種形式模型,然後自己執行解釋。
 
術語在整個組織中傳播或淡出。意義轉變。人們將舊術語改編成新的含義,或者術語獲得了多重、模稜兩可的含義。它的存在是因為它有效,至少對於人與人之間的交流來說足夠好。
這種領域語言是在該領域工作的人使用的語言。這是一種自然語言,因此很混亂。它是有機的:概念是出於必要而引入的,沒有經過深思熟慮,沒有達成一致,沒有精確性。
對於我們系統設計師來說,雜亂無章的語言是不夠的。我們需要具有易於理解的概念和明確的上下文的精確語言。
這就是通用語言UL(字典):一種構建的、形式化的語言,得到利益相關者和設計師的認可,以滿足我們設計的需求。
任何通用語言UL的形式和精確程度都取決於其環境上下文(這個環境是有邊界的:有界上下文/界限上下文/限制上下文)
 
既然建模是一種語言遊戲(維特根斯坦認為:世界就是語言遊戲,見:上下文為王),那麼我們可以使用人類語言分析方法(注意,文科中的語文知識)提取模型,隱喻發現是一種有效的方法。(當然,還有其他方式:例如將你的DTO資料物件改變成事件,從事件DTO的流向來分析沿途涉及的術語或上下文,這是事件風暴
 
一個好的模型可以幫助你推理一個系統的行為。一個好的隱喻可以幫助你推理出一個系統的_期望的行為。

相關文章