影響軟體資訊系統彈性度的最基本根源在於結構(Structure),而結構的核心又源自於從問題領域(Problem Domain)的專業術語中,擷取其本質(Essential)與彼此之間的關係,所建構的概念模型(Conceptual Model),而後再依此概念模型來制訂更具體規格、與平台相依的軟體模型。
建構問題領域概念模型的參考來源(Source),主要有兩種:
- 需求訪談記錄、使用案例(Use Case)敘述等。
- 從與領域專家(Domain Expert)的溝通中,擷取問題領域的核心(或稱之本質)。
第一種方式,訪談的對象大都以系統的操作者(Operator)為主,敘述的紀錄中,所擷取的術語,幾乎以名詞為主。E-R(Entity-Relationship) Model 的系統分析者,多數會以此種方式來找出 “Entity”,作為建構 E-R 模型的單元,而類別圖(Class Diagram),也可以此手法來塑模(Modeling)。
此種塑模的方法最重要的關鍵在於:如何紀錄並組織明確、有效的需求敘述,依此建構概念模型,來滿足操作者使用系統的期望。
第二種方式,訪談的對象是以領域專家(Domain Expert)為主要對象。從專家的角度,比較能看到高於一般系統操作者的局部觀點,比較能得到整體性的企業流程(Business Process)與企業邏輯、規則等。系統分析師(SA, System Analyst)則是需具備高度的抽象能力,懂得在與領域專家溝通的過程中,擷取該領域最重要的本質,並以此來建構概念模型。
應用一些軟體設計的抽象技巧與樣式(Pattern),例如 “交易樣式(Transaction Pattern)”,SA 很容易擷取出各領域以交易為核心的術語,例如 “採購”、”註冊”、”看診” …等,均為各領域中,最為核心的交易術語,再以此為延伸,關連此交易的 “人”、”地”、”物” …等。
此種塑模的方法最重要的關鍵在於:SA 需要具備軟體設計的抽象思維,包括對封裝、繼承、介面的正知與正覺。同時並懂得如何與各領域專家溝通的柔軟身段與技巧。
以上兩種的塑模方式,是可以相互互補的。與領域專家的溝通,容易擷取出該領域的核心本質;而從需求訪談的紀錄,可以得到操作者需要的細節。
可以以下圖的 “Y 型結構” 來表達出建構領域概念模型的來源,是源自於以上兩種塑模方式的互補。
圖、Y型結構—建構領域概念模型的來源
ˇ延伸閱讀:
「利用 Transaction Pattern 快速捕捉問題領域內的概念物件」。
Hi 路人甲:
好幾年囉,我早忘了從哪裡看到的。 !^^
不過,個人是因為非常認同其論調,也希望能透過此提醒一下,SA 不要只是單從需求訪談紀錄來得到片段性的領域知識,如此比較不容易抓得到軟體的領域物件。
請問大大您所說的『Y型結構理論』是出處於哪裡呢?上網找不到相關資訊~~謝謝!!