我常在許多軟體公司與磚案經(jīng)理們討論軟體人員的職掌時,發(fā)現(xiàn)到,耶? 怎么我所認知的 SA/SD 與他們實際的工作內容大大不同。嗯,所以我想就針對 SA/SD 來給個正名與定位吧。 SA, 系統(tǒng)分析師(System Analyst),是對設計中(Under Design)的系統(tǒng)來作分析,既然是分析,那么,應該是需要 剖開 系統(tǒng)內容,來對其系統(tǒng)內部的結構組成元素,以分析
我常在許多軟體公司與磚案經(jīng)理們討論軟體人員的職掌時,發(fā)現(xiàn)到,耶? 怎么我所認知的 SA/SD 與他們實際的工作內容大大不同。嗯,所以我想就針對 SA/SD 來給個正名與定位吧。
SA, 系統(tǒng)分析師(System Analyst),是對設計中(Under Design)的系統(tǒng)來作分析,既然是分析,那么,應該是需要 “剖開" 系統(tǒng)內容,來對其系統(tǒng)內部的結構組成元素,以分析其脈絡。所以我覺得系統(tǒng)分析師,也可以稱之為 “結構分析師(Structure Analyst)。
系統(tǒng)分析師的工作,是著重在系統(tǒng)的內部,應該是要能找出與描述系統(tǒng)組成結構的靜態(tài)(Static)元素,并利用元素,動態(tài)組合以滿足系統(tǒng)外部的功能需求。也就是說,靜態(tài)面的結構元素,與功能面的行為(Behavior)描述,均是屬于系統(tǒng)分析師的範疇。幾個主要的產(chǎn)出,包括類別(Class)圖、循序(Sequence)圖、資料庫的 E-R(Entity-Relationship)圖,是 SA 所該負責的,而且,上述的產(chǎn)出是偏向于建立領域概念的模型(Domain Conceptual Model),并非為與平臺相依的軟體規(guī)格模型(Softuozhanare Specification Model),與平臺相依的軟體模型,是屬于 SD(System Designer) 的範疇。
而一般軟體公司對 SA 的定位,是在于對
客戶端操作者(Operator)與領域磚家(Domain Expert)的需求訪談。但是,需求面是屬于系統(tǒng)外部的功能面觀點,我一直不認為這是屬于 SA 的工作,正確地來說,這應該是 “需求分析師(RA, Requirement Analyst)" 的範疇。
有趣的是,我發(fā)現(xiàn)到,一般對 SA 的要求,還需要包括對使用者介面(User Interface)的設計,為何會需要 UI 的設計? 我想應該是與 SA 訪談的對象,都比較偏于層級比較低的終端操作者,而這些操作者,會很重視 UI 的操作,卻很少能正確地說明系統(tǒng)真正要的功能,往往都是以局部操作者的角度來看待系統(tǒng)。
我發(fā)現(xiàn)到,一般軟體公司對 SA 的
角色定位太過模糊,以致于 SA 根本就搞不清楚他們要做的是到底是屬于系統(tǒng)外面的工作,還是屬于系統(tǒng)內部的工作。如果能正確地將系統(tǒng)外部的需求分析與系統(tǒng)內部的結構分析作區(qū)分,需求分析由 RA 負責;結構分析由 SA 負責。如此,才能界定與釐清系統(tǒng)內與外的工作。
至于 SD,系統(tǒng)設計師(System Designer),焦點仍就于系統(tǒng)內部的結構,與 SA 所不同的是,SA 所建構的是屬于偏向于領域的概念模型;而 SD 則是根據(jù)領域模型,再配合實體的平臺,如 .NET or J2EE的框架(Framework),考量其效能、穩(wěn)定、分散與
安全性等,所建構而得的軟體規(guī)格模型。SD 的主要產(chǎn)出,仍包括了類別圖、循序圖以及 Database Schema,而這些產(chǎn)出,都會與實體的平臺相依。例如,具化的軟體模型是以 J2EE 來實做,而就永續(xù)層(Persistent Layer)設計考量,SD 是以 Hibernate Framework 來實做,以橋接領域物件與資料庫的永續(xù)儲存。
不過,軟體公司對 SD 的定位,反而僅在于對資料庫 Schema 的設計。其實呢,對于 E-R 與 DB Schema,也并沒有相對切分邏輯(Logical)與實體(Physical)的層次(Layer)。邏輯與實體之分,簡單的說,實體的 DB Schema 會考量到與現(xiàn)實所使用的資料庫系統(tǒng)的特性相關,諸如欄位資料型別的定義、Index and Constraint 的設計等…。
一個基本的結論,系統(tǒng)外部的功能性需求分析,係由 RA 所負責。而系統(tǒng)內部的分析與設計,是交由 SA 與 SD 來負責的,而 SA 與 SD 的界限,可以以是否有與實體的平臺相依來界定。我們也可以以兩句話來說明分析與設計的關係:
“Do the right thing (分析)”and “Do the thing right (設計)”。
轉載自:網(wǎng)頁
相關甘苦談連結:
漫談系統(tǒng)分析師的工作技能2
研發(fā)替代役考古題-網(wǎng)路上評價不一,還應該去
面試嗎?
內湖晨星科技研替面試的內容?經(jīng)驗?感想?
ABC細微的關鍵點