2022年2月23日 星期三

前進

某天寒流來襲的加班夜晚,處理到最後一封郵件時,打開附件竟然跳出了上百頁的技術需求,頓時內心感到無比崩潰!雖說內心崩潰,但現實是近幾年車廠軟體需求真是越寫越仔細,功能面的、非功能面的,面面俱到。很顯然車廠的軟體能力不斷提升中。

幾個月前跟某日系車廠進行軟體系統審查,竟意外發現對方軟體素養相當專業,一而再再而三的修改後,我們才做出對方滿意的文件。難得遇到這種專家,因為不僅是知道如何做好軟體,也深諳車用軟體的核心知識。

車廠不斷努力朝向讓車子具備更多的智能化前進,有特斯拉這樣的標竿,自然無可避免地必須從固有的硬體製造去擴充更多的系統整合能力。

攝於BMW博物館

在寫「逆骨—工作在新創公司!」一篇時,就對於車用軟體的未來發展有許多憧憬;從2012到2022,雖然辛苦,但不知不覺也度過了十年。「漁舟唱晚,秋水共長天」一篇則簡扼紀要了這段時間職務上及技能上的增長;時間又過了兩年,果然OT也有能力負責公司部份的品質工作。2022年的差旅,除了一如往常的技術支持及商務拜訪,對於品質問題也略懂一二。而N公司則從2016年OT撰寫「逆骨—工作在新創公司!」時的1.2億台幣來到了現在了3.4億台幣,不僅業務量擴張,營運能力更強,也擁有了自己的工廠。在中美貿易摩擦之前就開始設廠規劃,並且在不增資的情況下完成第一間工廠的建置,這是老闆的膽識。老闆帶領著公司不停戰鬥,能夠衝在前線與這樣的創業者為伍,不僅是近距離的學習,看著自己的成長也覺得挺有成就感。

中國大陸的新能源車市場已經進入了新一輪的戰國時代,偶而到大陸城市中大型的廣場(台灣稱為百貨公司)展間逛逛,許多車廠已是搭載N公司的產品;很替我的同事們感到驕傲,也替客戶們感到驕傲。

攝於廣州小鵬汽車

~金戈鐵馬,氣吞萬里如虎~


OTORI
民國111年2月23日

2022年2月21日 星期一

讀《汽車軟件架構》 (上)

「Automotive Software Architecture」是由瑞典哥德堡大學的Miroslaw Staron撰寫,兩位譯者是王駟通與歐陽紫洲。王駟通畢業於多倫多機械工程學院,現任職於中國大陸某合資汽車零部件供應商;歐陽紫洲畢業於清華大學汽車工程系,現就職於中國大陸某智能聯網汽車研發機構。兩位譯者對於車用電子都有豐富的學經歷背景支撐。雖然本書完成於2017年,但翻譯完成時間是2020年;儘管如此,本書中介紹的汽車軟件架構仍是很完整並且實用。

本圖取自蘇寧易購


OT研究所時攻讀軟體工程,在業界則接受不少車用軟體及車用品質體系的薰陶,書中介紹的知識與OT實作經驗相輔相成;書中許多實作經驗作者會帶到Volvo XC90的開發,因此特別推薦給剛進入此領域的朋友們閱讀。

本書的1.6節及第十章「總結」,快速地帶領讀者介紹每章節的重點。本書OT會分兩篇介紹,本篇先將1.6節及第十章「總結」合併介紹給正在閱讀本篇的朋友們,下一篇則是介紹OT覺得印象深刻的內容。


第1章:軟件架構及其在汽車軟件工業的發展概述

軟件架構是一種軟件的高層設計和結構。它為軟件及組建的詳細設計以及軟件的部屬提供了指導。軟件架構文檔中通常包含一系列的視圖,例如功能視圖、邏輯視圖或部署視圖等。

軟件架構還提供了軟件系統高層建構的原則,因此他也包含不同的架構風格。

本書中匯總了汽車軟件設計中最重要的方法及工具。這些方法不僅侷限在架構層面,也涵蓋了詳細設計的範疇。在第1章中提供了每章的內容提要並總結了架構設計之所以對未來的汽車軟件工程意義非凡的原因。


第2章:軟件架構

本章中介紹了軟件架構的概述,向不熟悉軟件架構學科的讀者回顧軟件架構的基礎知識,在最後描述了汽車軟件架構的特殊性。本章開頭回覆軟件架構的含義,定義汽車軟件設計中使用的視圖類型,並將它們與軟件工程中經典的4+1架構視圖模型進行映射。接著將逐步介紹汽車軟件架構中的重要元素,如ECU、邏輯和物理組件、功能架構,以及整車架構的拓樸結構(物理和邏輯架構)等。在介紹過程中,將與中強調汽車嵌入式軟件系統對安全性和可靠性的高要求。

在汽車軟件系統設計中常用的結構視圖:

  • 功能視圖:描述車輛功能的架構以及他們之間依賴關係。
  • 物理視圖:描述物理節點(ECU)以及節點之間的連接。
  • 邏輯視圖:描述軟件組建和架構。
  • 部署視圖:描述軟件組建在ECU中的部署。
汽車中出現的主要架構風格
  • 分層架構風格。
  • 基於組件的架構風格。
  • 單體架構風格。
  • 微內核架構風格。
  • 管道與過濾器架構風格。
  • 事件驅動架構風格。
  • 中間件架構風格等。


第3章:汽車軟件開發

本章詳細介紹汽車軟件的開流程。首先是整車開發的V模型,並進一步引入現代敏捷軟件開發的方法來描述軟件開發團隊的工作過程。本章也簡要介紹一款用於保持研發數據一致性的工具—由SystemIte開發的SystemWeaver。內容也涉及諸多研發工作及方法,例如變體管理、不同的軟件集成階段、測試策略等。結合實例來審視這些方法並解釋它們是如何被應用的。

汽車軟件工程中的實踐先從需求開始,這部分內容某種程度上是汽車行業獨有的。本章討論了如下的需求模型:

  • 文本需求:以文本和表格形式呈現的規格說明。
  • 用例需求:基於UML用力和相應的序列圖來呈現的規格說明。
  • 基於模型的需求:以模型的形式呈現的規格說明,這些模型後續將由供應商實現。
理解了制定軟件需求的方法,還需要進一步理解軟件驗證和確認的方法。軟件的驗證和確認以測試的形式完成,它們包括:
  • 單元測試:單一軟件模塊的功能驗證。
  • 組件測試:一組軟件模塊(即組件)的驗證。
  • 系統測試:完整系統的驗證(包括開發完成後的完整功能以及開發中的某單一功能)
  • 功能測試:對照規格說明,對終端用戶功能的確認。

介紹了不同的測試方法以及汽車軟件集成的不同階段後,探討了這些元素是如何在「產品數據庫」中儲存。


第4章:AUTOSAR標準

本章中討論了標準化的話題,概述業界在標準化方面所做的努力。特別介紹了AUTOSAR這一目前在歐洲乃至世界範圍內最受關注的汽車軟件標準。AUTOSAR標準中的主要構建塊,例如軟件組件和通信總線等。將AUTOSAR核心思想以及對汽車工業的影響兩個角度來回顧汽車軟件架構標準化的演變歷程。本章最後介紹AUTOSAR標準中提供的參考架構,並討論它的演變方式。

本書認為AUTOSAR標準的引入是當今汽車軟件領域的主要趨勢之一。該標準定義了汽車軟件是如何被建構以及它的組件部分之間是如何交互的。某種意義上,AUTOSAR標準也被視為汽車的「操作系統」。

本章內容由Darko Durisic撰寫,他是AUTOSAR聯盟中瑞典汽車製造商的領軍人物之一,具備豐富的實踐經驗,因此也能從軟件設計者的角度對AUTOSRAR系統進行精彩的介紹。本章內容關注的是AUTOSAR參考架構及其應用。

從AUTOSAR中「概念」的角度探討了AUTOSAR標準的演化,分析了AUTOSAR規範中的哪些內容發生了變化、標準中「概念」的數量是如何演化的,以及這些演化對汽車軟件的設計意味著什麼。最後本書也給出了一些基於AUTOSAR進行汽車軟件組件設計的實例。


第5章:汽車軟件的詳細設計

本章將繼續從技術的角度深入研究汽車軟件架構,我們將描述在特定軟件組件中進行軟件設計的方式。

  • Simulink建模:汽車軟件算法的詳細設計最常用的方法,通常用於動力總成域、主動安全域或底盤域。
  • SysML:一種基於UML語言的方法,關注軟件定義中的編程語言方面的概念。
  • EAST-ADL:另一種基於UML語言的方法,專門用於汽車軟件的設計,將問題領域的概念和編程層面的概念相結合。
  • GENIVI:一種專用於信息娛樂系統的編成標準,目前在市場上正受到愈來越多越好的關注。

知道這些術語和真正理解安全關鍵系統的設計原則是不一樣的。因此本書還介紹了設計安全關鍵系統的原則,這些原則來自對NASA及其空間項目的研究。


第6章:汽車軟件架構的評估

在本章中介紹評估軟件架構質量的方法,並重點討論了軟件行業經典的架構權衡分析方法(Architecure Tradeoff Analaysis Method, ATAM)。討論了汽車軟件的非功能屬性,如可靠性和穩定性等,並進一步回顧了評估這些屬性的方法。在討論過程中本章參考了ISO/ICE 25000系列標準。

本章還提出軟件、硬件集成過程中的挑戰及其影響。討論了汽車軟件和商用計算機應用乳間之間的差異,並給出了具體實例。最後,討論了這些軟件屬性進行量測的必要性。


第7章:軟件設計和架構的度量

本章中介紹一般軟件工程和汽車軟件工程中最常用的度量,例如:總代碼行數、模型大小、複雜性,以及架構穩定性或耦合性等。具體給出了這些度量的解釋—基於這些度量的具體數值大小,應該做什麼,為什麼要這麼做。還討論了基於ISO/IEC 15939的度量標準的使用。

本章為架構工程師提供了一系列的度量組合以及它們的可視化表達。也同樣為汽車軟件的詳細設計提供了一系列的測度。

最後,本章展示了一份關於汽車測量的公開工業數據。在測量結果的基礎上,討論了諸如軟件規格和圈複雜度等軟件屬性,並分析了它們對軟件驗證和車輛安全的影響。

本章內容由作者和來自愛立信公司的Wilhelm Meding合著完成。Wilhelm Meding在軟件測量領域以及深耕十餘年,是資深的研究員。


第8章:汽車軟件功能安全

本章中詳細闡述功能安全這一話題,這是現代汽車軟件中最重要的話題之一。本章介紹國際標準ISO/IEC 26262中與安全相關的概念,並說明如何在軟件研發流程中應用這些標準。國際標準中提到的功能安全驗證和確認技術,並將其與汽車安全完整性等級(Automotive Safety Integration Level, ASIL)關聯,討論其在實踐中的效果。為使讀者清晰理解功能安全這一標準,本章在介紹過程中穿插了一個簡單的功能開發實例—包含了不同ASIL等級的微控制器架構的實例。

本章作者是來自Volvo AB公司的Per Johannessen,他曾成功地在某乘用車製造商建立了該標準,目前正在重型車輛和公交車領域從事相關的工作。


第9章:汽車軟件架構的當前趨勢

在本書的最後介紹汽車軟件開發的當前趨勢。市場上一些新興的、具有顛覆性的技術,這些技術被認為可能讓傳統的汽車工業變得更加以軟件為導向:

  • 自動駕駛:需要以更複雜的軟件和更高層級的連接為支撐。
  • 自修復、自適應、自組織系統:可以讓軟件更可靠、更智能;但在軟件安全性評估上面臨著挑戰。
  • 大數據:基於外部資源的可用信息,讓汽車軟件做出更智能的決策;但與此同時,對軟件系統的處理能力、儲存以及一些其他特性提出了更高的要求。
  • 軟件開發流程的新趨勢:例如軟件持續集成技術,可以讓軟件持續改進,但也對軟件的安全性評估以及快速驗證提出了討戰。



OTORI
民國111年2月21日

2022年2月20日 星期日

有種祝福叫做舊情人的祝福

兩個人分開後的唯一正解,只能是各自都要過得更好。傳說中有種祝福,叫做「舊情人的祝福」。

Garmisch-Partenkirchen

正正巧十年了。當年把心葬在德國南方小鎮,毫無意外地淬鍊成滿血復活... 現在,該妳幸福了!

有段為期不短的時間憑藉著對妳的恨意得以倖存並且堅強;但也唯有思念曾經帶我超越道德藩籬,脫離現實囹圄觸踫到本該在平行時空的妳。謝謝這段姻緣,但願彼此生命都能圓滿。

拜託請用盡洪荒之力閃瞎這些年每位關心妳、耽心妳的人,用力去愛以及享受被愛!我亦會在那個人們稱為「幸福」的彼端為妳點亮微微星光,願真誠與勇敢永遠伴妳隨行。由衷地為妳開心,並且200%的祝福!😘

致Corey,致每對曾經情深緣淺的戀人們。

~但願人長久,千里共嬋娟~

民國111年2月20日



#星空仙子 #阿仙 #妙妙 #喬喬 #corey #sen