培養Android軟件人才:從落實(shí)軟件工程教育開(kāi)始
「開(kāi)發(fā) Android」是臺灣科技業(yè)的全民運動(dòng)了。未來(lái)幾年,如果要尋求更大的突破,并提升整體軟件開(kāi)發(fā)能力,根本的做法與策略為何?個(gè)人看法是「落實(shí)軟件工程的基本教育」。
本文引用地址:http://dyxdggzs.com/article/184494.htm
提升 Android 軟件能量,當務(wù)之急是培養一批「架構分析」的工程師。架構分析需要考慮的層面較廣,包括技術(shù)面與產(chǎn)品面。軟硬整合的工作,幾年前訴求的是硬件驅動(dòng)程序與系統軟件,主要工作是效能的提升與優(yōu)化,這是從硬件層面思考的軟硬整合。從產(chǎn)品層面重新思考軟硬整合,涉及的層面會(huì )放大至中間軟件(Middleware、Application Framework)、應用程序(Application)以及網(wǎng)絡(luò )服務(wù)等。
架構分析的重點(diǎn)工作之一,在于了解 Application Framework 與驅動(dòng)程序(硬件)間的關(guān)系,使用各種現有的技術(shù)來(lái)整合系統,并提出更好的架構設計方案。架構分析的技術(shù)屬于「軟件工程」領(lǐng)域,而不是硬件或系統程序領(lǐng)域。但具備驅動(dòng)程序與硬件經(jīng)驗,可以幫助工程師找出更好的架構設計方法。
Android 是軟件框架的技術(shù)。臺灣廠(chǎng)商得天獨厚的優(yōu)勢在于,過(guò)去積累大量的IC設計、硬件主板、驅動(dòng)程序與系統軟件經(jīng)驗,若能補足軟件框架的分析與設計能力,未來(lái)競爭力將有很大的想象空間。因此,導入架構分析技術(shù),培養架構分析工程師,理論上能發(fā)揮這項得天獨厚的能力,建立獨特的競爭力。這也是三星(Samsung)正在積極進(jìn)行的工作。
落實(shí)軟件工程教育是根本,必須從教育做起。軟件工程所討論的「軟件框架」就像信息科學(xué)的「位運算」一樣,屬于通識學(xué)科。軟件框架技術(shù),重度依賴(lài)這些基礎學(xué)科:面向對象(OO)、面向對象語(yǔ)言(OOP)、面向對象分析與設計(OOAD)、分層架構設計、設計模式(Design Patterns)等,這些知識缺一不可。
軟件框架具備四項特性。第一、控制點(diǎn)反轉(Inverse of control),整體來(lái)看,控制應用程序執行流程的人,是軟件框架,而不是應用程序本身的函數呼叫關(guān)系。這與一般循序式的結構化語(yǔ)言(如:C語(yǔ)言)很不同。
第二、默認行為(default behavior),軟件框架本身都有預先設定好的行為。這些行為通常都是預先定義好后,才釋出軟件框架。所謂的「行為」范圍廣大,例如同步呼叫、異步呼叫、阻塞式I/O等。
第三、不可修改性,這是軟件框架相當重要的觀(guān)念。以 Android 為例,其 Application Framework 的程序代碼「不能」修改,開(kāi)發(fā)者「不能直接改 Code」。意思是下載 AOSP(Android Open Source Project)程序代碼后,不能直接修改框架層的程序代碼。若直接修改 Android 應用框架程序代碼,在編譯時(shí)期便會(huì )出現警告訊息。直接修改 Android 應用框架程序代碼也會(huì )造成 API 兼容性的問(wèn)題,可能無(wú)法通過(guò) CTS,導致產(chǎn)品無(wú)法上市,不可不重視。
最后是擴充性,在不能直接修改軟件框架的前提下,如何「加入自已的功能」至 Android 框架呢?正確的方法是以覆載(override)方式進(jìn)行擴充(extend)。覆載是面向對象領(lǐng)域的基本知識,也是開(kāi)發(fā) Android 應用框架的重要技術(shù)。撰寫(xiě)「應用程序」補上軟件框架所沒(méi)有的功能,也是「擴充性」的另外一個(gè)做法。從以上的介紹便能發(fā)現,未來(lái)如果要在 Android 應用框架開(kāi)發(fā)上有所突破,軟件工程教育就必須要落實(shí),畢竟這是軟件開(kāi)發(fā)的基本學(xué)科。
本文由 CTIMES 同意轉載,原文鏈接: http://www.ctimes.com.tw/DispCols/cn/Android/1106071506S1.shtml
評論