
架構設計到底在做什么?這個好像不應該成為問題,因為每個人都會回答:架構設計就是設計架構唄。然而,設計架構又是設計什么東西呢?讓我們先回顧一下以前聊過的一個話題:什么是電子電氣架構。在以前的一篇文章《談談EEA——電子電氣架構》中,我們討論過架構的概念:架構是基于復雜系統的一個概念,體現的是系統之內的元素的基本結構和關系,是一種系統設計和演進的原則。對于汽車的EEA(Electronic Electrical Architecture)來說,定義的就是汽車上電子部件之間的相互關系,及所有的電子部件(包含硬件實體及其中的軟件)所共同承載的邏輯功能之間的關系,以及為了設計和維護這些電子部件所規定的各種原則。從上面這個定義中可以看出,架構并不是一個具象化的實體,而是一個抽象的東西,任何一種具象化的東西都沒有辦法完整的表示出什么是架構。而且,架構一定是依賴于系統而存在的。汽車的電子電氣架構EEA依賴的就是汽車上的電子電氣E/E系統。談到EEA,一定離不開這個E/E系統。架構是系統的架構。網絡拓撲是架構的一部分,電氣拓撲也是架構的一部分,但是它們都沒有辦法來代表完整的架構。它們所表示的僅僅是EEA的一部分特性或者屬性。

接下來,讓我們從城市的設計建造過程來理解E/E系統的開發工作以及EEA設計的工作。雖然我以前曾經以一個大樓的設計、建造過程來解釋過EEA設計的工作,可是從事EEA的工作越久,就越覺得汽車上EEA設計的復雜。由于現代車輛本身的高度復雜性,整車電子EEA設計更像城市規劃。假如我們從零開始規劃一個城市,城市規劃師首先要做的工作是確認需求:這個城市將來要住多少人、這些人以什么產業做為主要的生活來源,以及城市周邊有多少可用的自然資源和與其他周邊地區的關系等等,并且要搞清楚最重要的一個事情:有多少預算。這個過程就像我們的EEA架構師要首先搞清楚老板想要造一個什么樣的車、要賣給誰一樣。搞清楚需求之后,就是要規劃每個街區的功能與規模,并確定街區之間的連接關系。比如,火車站在哪個位置,能夠容納多少的旅客與貨運吞吐量容量,居民區、商業區、工業區與休閑區在哪個位置,能夠容納多少人等等。除了這些位置、功能與規模的設計之外,架構師還要詳細的設計整個城市的內部有多少條公路、多少條地鐵、每個地鐵有多少個站點,并估算城市的電力、水等消耗情況,從而對供電和供水等基礎設施進行規劃。而且還要考慮城市與與外界的連接,包括鐵路、公路、水運以及航空等。
01
架構設計=城市規劃
對于城市規劃師來說,他們的設計對象并不是某一個街區或某個建筑,而是整個城市,他們要對整個城市的設計質量負責。如果我們如果把汽車上每個控制器甚至電子部件都想象成城市中的一個特定功能區域,那么電子電氣系統的架構師做的就是規劃整個的E/E系統,并對E/E系統的設計質量負責。
架構師首先要確定E/E系統(整個城市)的主要功能和性能,然后根據確定的功能與性能的目標來規劃整車的拓撲(城市的街區):確定有多少個主要的控制器、每個控制器的基本功能和相互的連接方式、車輛的主要通信網絡的形式(CAN或者以太網或其它)等,并要設計整車的電源方案等。
因為E/E系統在車上并不是一個孤立的系統,它要與車輛本身的物理架構充分的融合,并與車輛的外部世界也有著密切的聯系,所以,在進行E/E系統的規劃時,他們還要考慮車輛本體的很多具體限制與能力,就如同城市規劃師需要考慮城市的地形、氣候以及與其它城市之間的關聯性一樣。每個控制器在車上的大致布置位置、質量要求、性能要求等也是需要在架構設計階段需要考慮并確定的。
上述的各種架構設計階段所確定的各種詳細信息最終會以各種原則、規范、標準或者需求等形式輸出給相關方,他們會根據得到的需求來進行詳細的設計,然后再交給最終承具體實現任務的各個供應商進行部件的開發。
02
系統開發=街區設計
對于一個城市來說,每個街區的功能都是不同的,比如說可以分為商業區、居住區、工業區等等。因為每個街區的功能不同,所以它們的設計要求也不同。例如:居住區要能夠容納100萬人,并有各種便利的生活設施,而工業區要能夠支持多個大型的工業項目的生產、物流等要求。當某一個街區的設計要求由城市規劃師確定之后,一般會有專門的人員進行詳細的設計。例如:負責居住區的設計師把城市規劃師的要求可以細化為:1000棟高20層的樓、有3所小學、兩座醫院等等,并詳細的在圖紙上列出它們的位置和邊界,并對區內的交通網絡、通信、電力網絡等進行詳細的設計,并給出具體的要求。這個過程可以類比為E/E系統中的系統設計。

車上的E/E系統也會被分為多個域或者子系統,每個域或者子系統的功能與技術要求都是不同的,比如:底盤控制、儀表顯示、電池管理等。所以一般都會由來自專業領域的系統工程師來負責進行詳細的設計。他們會像街區的設計師一樣,根據架構設計的要求對自己所負責的領域進行詳細的設計。燈光控制的系統工程師會根據車輛的配置和功能需求來設計燈光系統的詳細邏輯以及具體的信號交互、硬件驅動的參數要求,并且給出對每個相關部件的詳細要求,從而讓各個部件的工程師能夠完成對部件的詳細設計。
03
零部件設計=建筑設計
當街區的設計完成之后,接下來要做的就是每棟建筑的詳細設計,建筑的設計者發布的圖紙中規定了房屋的主要結構、所在位置與周邊環境的相互關系,以及屋中各種組件的位置與相互之間結合的關系,比如磚混結構、房屋的具體位置和朝向、臥室與客廳的相對位置與尺寸、馬桶在衛生間中的位置等,還會對各種建筑材料的選取原則給出具體的標準,比如水泥的標號,鋼筋的型號,各種電線的等級要求等等。

零部件工程師完成的也是類似的工作,他們會和供應商進行深入合作,在滿足系統工程師給出的具體要求的前提下,進一步詳細的設計每一個具體的零部件,完成諸如硬件、軟件邏輯的詳細設計、整個零部件的外觀尺寸、可靠性和EMC標準等,并要確保供應商的產線能夠保質保量的穩定生產,隨時解答供應商的各種問題,并將其中的部分問題反饋給系統工程師乃至架構師,讓他們決定是否要更改原來的設計。
04
供應商開發=施工實現
在各種設計需求最終到達供應商的時候,供應商就要開始具體的實施工作了。在建筑行業,施工單位拿到具體的圖紙之后,將組織施工隊伍進行具體的建造工作,并最終在驗收完成后結束一切具體的工作。而汽車行業的供應商則有所不同,他們將在設計驗收之后開始大規模的量產活動(SOP,Start Of Production),并且一直持續到產品退市(EOP,End of Production)。而且,對于很多復雜的產品,整車廠與零部件供應商的設計職責之間的界限并沒有那么清晰,很多時候,整車廠只要給出概要性的設計,所有的詳細設計工作都由供應商來完成。

從整個E/E系統的開發實現過程中可以看出:無論是架構設計、系統設計還是零部件的設計,其實都是設計的過程,而設計本身是一種不斷產生需求、傳遞需求的活動,上下游之間的信息傳遞過程是以需求作為載體的,設計過程產生的各種規范、原則、標準等本質是一種需求——一種需要下游來遵守或滿足的需求。需求的傳遞并非完全是瀑布式的單向傳遞,而是雙向的,只有被下游接受了的需求才是有效的需求,而且,下游是可以反向對上游提出需求的。具體需求的最終實現則是通過供應商的開發、驗證和生產活動完成的。一個主機廠的Knowhow究竟有多少,就看他們給出的規范有多少就足夠了。
05
架構設計的重要性
無論施工隊的技術多么高超,可是一個城市最終的質量一定與規劃師的設計質量息息相關。誰都無法否認一個好的設計對最終交付物的重要性。雖然規劃師不需要參與到最終的施工過程中,但是一個不懂施工的規劃師是很難做出好的設計。規劃師在進行架構設計的時候不可避免的也要了解很多具體的待實現組件的細節,比如:當地的地形地面、氣候、風土人情、產業結構等等。對細節的關注是規劃師必須具備的能力也是必須的工作。對于E/E架構的設計也存在著同樣的要求,一個架構師如果不知道具體的零部件的復雜性與實現的細節,是沒有辦法設計出真正可用性高的架構的。從這個角度來講,架構設計的工作既是頂層設計,但又不僅限于頂層設計。就像城市的功能要不斷的升級一樣,E/E系統架構也要不斷的更新以滿足各種新的需求。E/E系統在產生后就像一個生命體一樣,它自身的迭代成長是一個不會停止的過程。即使一個架構被歷史淘汰了,但是它的一些基因(邏輯設計)還是會被繼承到新的架構上,繼續的存活下去。一個好的架構設計可以保證成本、性能、功能等的平衡,并能讓系統可以有良好的演進性。這個工作的重要性就跟城市規劃的重要性一樣:好的城市規劃可以讓城市以較低的成本就更適宜居住,并能在城市的規模擴大的時候不至于大幅度的進行改造才能滿足日益增長的各種需求。然而,所有的規劃都是有局限性的,沒人可以預測50年或一百年以后的情景,就如同二百年前的城市規劃師不會預測到有地鐵出現一樣,E/E架構與城市的設計同樣需要不斷的進行革新和演進。為了能夠讓E/E系統可以順利開發出來,尤其是對于全新的EEA,新的開發流程、組織架構的匹配是整個主機廠必須要進行匹配的配套設施。
沒有好的流程和組織進行匹配,新的EEA發揮的作用是有限的。想讓一個EEA成為可以成長的、迭代的EEA,流程與組織的成長和迭代是前提。而如何來設計這些新的開發流程,EEA的架構師往往是當仁不讓的主力,他們應該最清楚什么樣的流程才能適配新的架構。從這一點來說,EEA架構師絕對不應該只是EEA的架構師,他們還應該承擔起企業架構師的部分職責。這還因為EEA承載著企業未來希望,更是一個動輒投入要幾個億甚至幾十億的宏大工程。另附——優秀架構師應具備的8項能力:
1. 對行業趨勢、公司戰略和目標的深刻理解
2. 健全的獨立思考能力,敏銳的價值判定能力3. 很強的語言表達能力(注意不是口才):能跟老板講明白技術,能把公司理念翻譯成工程師們可以理解的語言。
4. 有一定的影響力和業務領域內的權威性。
5. 能根據公司戰略制定技術方面的戰略,并將其分解為指導思想和原則,并堅定的在工作中落實。
6. 具有高度的抽象和概括能力,能夠迅速的找到復雜事物的本質,并可以給出解決復雜問題的辦法。
7. 為開發團隊、以及相關產品團隊設計流程和標準。
8. 根據實際操作情況,對以上內容不斷優化和調整。
轉載汽車電子相關文章
轉自汽車電子與軟件