在MMN的宏觀視圖中,包括了三個過程環(huán)節(jié):定義架構(gòu)概圖、架構(gòu)全局分析以及構(gòu)建概念模型。這是一個循序漸進的過程,是系統(tǒng)架構(gòu)整體分析的逐步細化。這個過程的關(guān)鍵是找準(zhǔn)架構(gòu)分析的切入點。這正是定義架構(gòu)概圖所要解決的問題。定義架構(gòu)概圖需要明確架構(gòu)目標(biāo)、調(diào)查架構(gòu)資源和分析用例場景。這三個活動可以是并行的,至少彼此之間是相互影響、相互作用的。
雖然這些活動是并行的,但從一開始明確架構(gòu)目標(biāo)才是佳的選擇,因為架構(gòu)目標(biāo)是整個架構(gòu)過程所要努力達到的方向。不了解架構(gòu)目標(biāo),搭建出來的系統(tǒng)架構(gòu)再好,也可能不符合客戶的需求。架構(gòu)目標(biāo)來源于需求,主要指客戶或其他利益相關(guān)人提出的項目(產(chǎn)品)愿景。愿景表達了客戶的目標(biāo)以及對系統(tǒng)的期望。從愿景中我們可以獲得許多架構(gòu)分析所需要知道的知識,例如明確客戶期望達到的目標(biāo),以此可以確定場景與風(fēng)險的優(yōu)先級;了解客戶的不同目標(biāo),可以由此識別系統(tǒng)客戶的不同角色,明確不同的利益相關(guān)人的態(tài)度。
通過需求的愿景和范圍,就可以確定架構(gòu)的實現(xiàn)目標(biāo)。識別架構(gòu)目標(biāo),就需要了解是誰需要使用架構(gòu),理解架構(gòu)的約束(技術(shù)約束、使用約束和部署約束)。如同架構(gòu)在軟件開發(fā)中起到的作用,架構(gòu)目標(biāo)一方面是業(yè)務(wù)需求和客戶的要求,另一方面也是技術(shù)和應(yīng)用系統(tǒng)的要求。架構(gòu)目標(biāo)是需求分析師、架構(gòu)師和客戶達成的一致共識,而一旦確立了架構(gòu)目標(biāo),該目標(biāo)就會成為團隊的一致共識。
架構(gòu)旨在為業(yè)務(wù)需求和技術(shù)需求之間搭建起相同的橋梁,并找到合適的方式實現(xiàn)這些需求。好的架構(gòu)必須能夠減少與技術(shù)解決方案相關(guān)的業(yè)務(wù)風(fēng)險。它好是靈活的,能夠處理軟硬件以及業(yè)務(wù)需求等的變化,考慮整體影響設(shè)計決策的因素,在質(zhì)量屬性之間權(quán)衡,并努力滿足用戶、系統(tǒng)和業(yè)務(wù)的需求
在了解用戶的目標(biāo)時,首先需要明確用戶的分類,因為不同類別的用戶,他們的關(guān)注點是不相同的。例如投資者或者管理層關(guān)注的目標(biāo),可能更多地是考慮組織因素,例如項目成本,周期與收益。如果是系統(tǒng)的使用者,則主要考慮業(yè)務(wù)因素,關(guān)心的是與自己工作相關(guān)的功能是否滿足需求。如果是系統(tǒng)的運維成員,則主要考慮技術(shù)因素,例如系統(tǒng)的可維護性、健壯性、可擴展性、可伸縮性等質(zhì)量屬性。
在明確架構(gòu)的業(yè)務(wù)目標(biāo)時,我們并不需要了解每個細節(jié)功能的需求,而是關(guān)注業(yè)務(wù)的期望值。了解業(yè)務(wù)目標(biāo),不是要識別業(yè)務(wù)流程、業(yè)務(wù)規(guī)則或者業(yè)務(wù)所要處理的數(shù)據(jù)。例如業(yè)務(wù)目標(biāo)提出了提升工作效率,改善工作質(zhì)量的要求,確定了應(yīng)該由系統(tǒng)自動完成的功能,明確對業(yè)務(wù)需求變化的處理。
系統(tǒng)的目標(biāo)和技術(shù)直接相關(guān),尤其是架構(gòu)的質(zhì)量因素。系統(tǒng)目標(biāo)可能包含對系統(tǒng)規(guī)模、用戶數(shù)、并發(fā)量等的要求。系統(tǒng)目標(biāo)也可能對軟硬件平臺提出了約束性要求。
整體而言,架構(gòu)應(yīng)該:
1)公開系統(tǒng)的結(jié)構(gòu),但隱藏實現(xiàn)細節(jié)。
2)實現(xiàn)所有的用例。
3)試圖滿足不同涉眾的要求。
4)滿足功能需求和質(zhì)量需求。
我曾經(jīng)為一個集團公司開發(fā)類似ERP的系統(tǒng)。這個集團從事軟件外包業(yè)務(wù),它希望能夠搭建一個平臺,實現(xiàn)人力資源、客戶資源與項目資源的整合。系統(tǒng)包括人力資源管理、客戶關(guān)系管理和項目過程管理等主要模塊。系統(tǒng)用戶為集團的所有員工,但角色的不同,決定了他們關(guān)注點之間的區(qū)別。
在提出方案的開始階段,我們注意到管理層用戶對于系統(tǒng)的預(yù)期目標(biāo),那就是避免“信息孤島”,實現(xiàn)資源的可控,以避免資源浪費,或者避免因為資源的缺乏而導(dǎo)致業(yè)務(wù)的流失。例如,客戶方需要集團提供20名各個層次的Java開發(fā)人員,則市場部門在確定是否簽訂該合同之前,就需要通過系統(tǒng)查詢集團的人力資源庫,了解現(xiàn)有的人力資源是否匹配客戶需求。如果匹配,還需要判斷人力成本,以決定合同的標(biāo)的。如果不具備,則需要人力資源啟動招聘流程。管理人員可能還需要了解開發(fā)人員的閑置率,跟蹤項目的進展情況,以及開發(fā)人員在項目中承擔(dān)的職責(zé)和完成質(zhì)量。
在進行需求調(diào)研的過程中,我們又了解到系統(tǒng)終用戶的訴求。例如人力資源部門的普通員工對于系統(tǒng)的要求非常簡單,就是希望系統(tǒng)的操作方便快捷,好能夠提供導(dǎo)入Excel文件的支持。市場部則需要系統(tǒng)提供合同文件的管理功能,包括文件的上傳下載。
通過對用戶、業(yè)務(wù)和系統(tǒng)的需求分析,我們就可以初步確定架構(gòu)目標(biāo)。例如:
1)系統(tǒng)主要分為人力資源管理、客戶關(guān)系管理和項目過程管理模塊;三個模塊共享同一個數(shù)據(jù)庫;為達到重用目的,需要在這三個模塊中抽取出公共模塊,例如員工信息管理;
2)系統(tǒng)應(yīng)達到輔助決策的功能,以滿足管理者對資源的控制、分析、跟蹤與查詢功能;
3)系統(tǒng)具有良好的可用性;提供設(shè)計簡潔的導(dǎo)航功能與菜單;能夠與Office進行集成。系統(tǒng)需快速搭建原型,以更快地了解用戶的反饋;
4)系統(tǒng)應(yīng)基于角色與組織進行權(quán)限控制;
5)為部署的簡單性,系統(tǒng)應(yīng)采用B/S應(yīng)用架構(gòu);
6)系統(tǒng)的業(yè)務(wù)組件應(yīng)該是松散耦合的;
本文由
石家莊做網(wǎng)站 石家莊網(wǎng)絡(luò)公司提供!