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