架構師要了解那些??

 

一. 架構師?

1.1 架構設計涉及範圍圖

    如圖所示架構設計說涉及到的範圍,首先是對架構支撐的底層平臺選擇,目前業界流行和通用的就是.Net平臺和Java平臺(J2EE);然後在平臺支持之上做技術相關架構設計(主要會採用面向對象OO,面向方面編程AOP以及面向服務架構設計SOA等思想),在SOA推廣上IBM和SUN兩家公司尤爲突出;在業務不斷的變化中、架構的更新中,找到變化中不變的東西,並針對服務、架構制定一系列規範對架構進行有效的管理和成爲架構設計的原則;當然,最上層就是善變的業務架構層。

1.2 一個優秀的架構師需要了解的知識

  1. 操作系統OS:能對操作系統內核有很好的瞭解和認識,從中吸取設計理念;推薦可以找一個小的linux版本代碼閱讀內核的實現,去理解“簡單”的代碼怎樣去完成不簡單的事情
  2. 虛擬機技術:去了解虛擬機的實行原理和它所做的工作,如Java的JVM、和.Net的CLR, CLR提交到歐洲標誌組織可以閱讀文檔ECMA-335-CLI
  3. 計算機語言:一個好的架構師對計算機語言應該有深刻的認識,建議熟悉過程路徑:C -> C++ -> C# ,Java
  4. 開源資源:當然多研究開源架構是提高的必要途徑,理解開源架構中設計的思想以什麼樣的設計思想爲出發點,比較它們每個版本升級中的設計變化;資源:JBoss、Spring等Java開源框架,.net方面有5大實用案例架構、以及ASP.NET Starter Kit等,和MS:Enterprise library;

        JBOSS 4.0:包括web服務器(servlet/JSP容器,HTML服務器)、EJB2.0容器。完整的純Java的數據庫引擎,(Java消息服務)JMS,JavaMail,和Java事務處理API/Java事務處理服務(JTA/JTS)支持,但是他的面向方面設計(AOP)是它真正突出的部分。JBOSS的AOP架構負責處理AOP,使用了一組命名概念,比如"interceptor," "pointcut," 和“introduction”。一個interceptors編碼“攔截器”(intercepts),它把一個對象放到一個被攔截的類中等。

        Spring是一個輕量級容器,非侵入式,ioc容器,它所帶的包裝器使許多不同的服務和框架更易於使用。輕量級容器接受任何JavaBean,而不是隻接受特定類型的組件。要了解Spring同時就應該瞭解Eclipse、Struts、Hibernate之間的銜接應用 Spring: A Developer's Notebook

        ASP.NET Starter Kit: ASP.NET官方網站推出的一整套ASP.NET解決方案的Demo;是提供給ASP.NET初學入門者的教材!包括了門戶、商業站點、社區站點、報表、時間跟蹤排程、問題跟蹤這6套系統。 在這裏,隨便也提一下WSS/SPS,具有微軟官方支持,是成熟的產品,是通過Web Part擴展的,Web Part將會是ASP.NET發展的一個領域,使用Web Part進行頁面的定製是更加人性化的,拖拉的所見即所得效果是Portal Start Kit無法達到了。WSS/SPS是擴展性非常好的系統平臺,WSS/SPS的工作區可以無限向下添加,集成Office 2003、Exchange、Biztalk、Content Manager Server......而Portal Starter Kit僅僅是一個單純的網站演示,雖然也能夠佈局定製,但僅此而已。

二. 還是需求

    萬水千山始於腳下,需求始終是一切的第一步!

    從兩種軟件類型入手分別談一談,其中採集需求的方法和注意點

2.1 企業信息化軟件

    企業信息化軟件,及軟件的最終用戶是一個企業,企業希望通過軟件項目的採購來達到企業內部管理等流程的信息化;採集這類需求通常有兩種情況,其一:

2.1.1 甲方驅動

    如ERP,甲方非常瞭解要他們需要一個什麼樣的軟件,或者通過軟件來達到一個什麼樣的效果。其中從甲方採集需求的採集點注意一下不能遺漏:

  • 中層領導:--> 從他們這採集業務的流程,因爲他們是對甲方公司業務流程最熟練的
  • 現場人員:--> 從他們這採集業務規則
  • 高層領導:--> 這個很重要,從他們這採取決策規則,及可以讓軟件實現知識發現,即以後可成爲軟件的一個亮點即對公司決策的支持
  • 信息人員:--> 操作規範,可以提供易用性

    乙方需要參加的人員:

        架構師(實力所服,讓對方放心),需求分析師,開放人員(實現需求的原型化),

            UI原型需求化:有三個好處, 需求固化、設計規則明確、開放複用

2.1.2 乙方強勢論

    由於甲方需求不明確,而乙方在此行業中資歷深厚,瞭解行業標準,這種非常好做事就不多說了。

2.2 需要採集中注意項

1.需求採集的起點:

  • 找到所有執行者
  • 找到組織機構
  • 業務流程

2.需求管理, 這個是必不可少的;

    需求穩定化,乙方提供需求詳細規格說明書

    同時,制定詞彙表,如圖

3.掌握中間語言,及快速得了解行業規範

2.3 商業化軟件

    需求採集爲行業商用軟件,要做到:

收集行業中所有企業得需求

行業規範,最好就是成爲行業的領頭人成爲標準的制定者--> 業務原型

同時要考慮到市場因素,以及競爭對手、市場亮點(有必要時可能採用保存亮點的方式)

也要考慮環境因素,硬件、社會等

三. 領域分析

    通過領域分析,獲得領域模型;這節內容涉及到UML建模、建模流程、用例切片歸包、DSL規範定義領域語言等等一些比較暈的內容!!

領域模型: 切詞(名詞實體)

           實體關係 -->類圖 、E-R

           實體約束規則(要求精確度)

其中涉及到工作流分析, 以及工作流所涉及到的技術,建議研究工作流: 其一,Vista平臺的WWF,其二,開源框架OsWorkflow; 其下圖有利於我們理解工作流設計:visual studio 2005中插件DSL支持

3.1 最小建模技術

    對於大多數問題而言,只需要20%的UML就可以完成80%的建模工作,所以只需要以下建模中的關鍵三個元素:

四. 少不了的設計模式

    具體的這個就不多說了,應該是不是的對設計模式進行溫習、多閱讀一些設計模式論文及應用場景實踐。使用時注意考慮以下重要幾點:

4.1 設計模式應用場景

    既是處理變化 --> 原構件基礎上增加變化

                --> 替代構件

4.2 設計模式的弱點

    增加複雜度、 性能有損耗、 模式有可能選擇不當、 裝配不當、 增加測試難度

4.3 面向對象開放技術今天的核心基礎

核心基礎: 組件技術、 UML建模技術

組件技術: 大型項目和系統的必經之路

-》需要支持多平臺:SOA、 ESB-連接組件

-》擁有大量組件:重用、MDA(模型驅動開發)-快速、廉價組件

-》響應日益複雜的業務操作

-》框架: .net, Java

五. AOP面向方面編程

    在架構設計中也要引用AOP設計思想,在整個架構設計過程中橫切關注點來達到面向方面編程,現實框架某些功能的統一處理,減少重複。AOP強調通過面向方面的思維方式來進行有效的架構設計,所以AOP設計 ≠ AOP技術, AOP技術是面向方面設計AOP的最佳實現。開源AOP架構研究推薦: JBoss4.0

 架構師進行架構設計,要心中有此軸向圖從而做到不同緯度對架構進行充分的設計考慮。

六. 架構設計

6.1 主要架構模式

 流程處理模式: 以算法和數據結構爲中心,由一系列處理步驟、相鄰步驟用數據流管道連接。主要用於批處理系統軟件

、C/S模式、MVC模式、分層模式

七. SOA

   SOA(Service Oriented Architecture 服務導向架構),是一種應用程式架構的概念,將應用程式及資源以重複使用的服務方式呈現,使用標準化的借變相互溝通,藉此提供更高彈性、更高效率、及資訊整合的IT環境。SOA是一種用於建構分散式系統的方法,它可以將應用程序以服務的方式提供給終端使用者,也能建構成其他的服務。透過SOA,我們可以將單一的軟件開發成爲可提供其他應用系統使用的基本元件。

    要理解SOA,更重要的得研究ESB(Enterprise Service Bus)企業服務總線,請看另一篇文檔的詳細介:SOA-ESB企業服務總線概念; 這裏就不熬述了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章