咨詢電話: 1317-2164-214
嵌入式軟件開發(fā)流程(個人心得)
發(fā)布于 2025-02-25 08:42:02 作者: 多含蓮
注冊公司是創(chuàng)業(yè)者成為合法企業(yè)的第一步。這個過程可能會有些復(fù)雜,但是只有完成這個過程,你的企業(yè)才能夠合法地運(yùn)營。接下來,主頁帶你了解深圳南山注冊軟件公司步驟,做好相應(yīng)的準(zhǔn)備,嵌入式軟件開發(fā)流程(個人心得)希望可以幫你解決現(xiàn)在所面臨的一些難題。
一 背景
剛從學(xué)校出來實(shí)習(xí)那會兒,在深圳南山某龍電控公司上班,職位是售后維修,用伺服電機(jī)控制繡花機(jī),有個顯示終端應(yīng)該用的是桌面系統(tǒng)。一進(jìn)公司就開始修板子,在經(jīng)過一番培訓(xùn)之后就出去駐場服務(wù),看到軟件開發(fā)工程師來支持我們的工作,他們沒什么頭發(fā),大部分都戴著眼鏡,看上去很厲害的樣子,他們拿著示波器的探頭,拿著萬用表打到二極管檔位,測量線路的通斷,當(dāng)時真的很想成為這樣的人。
二 畢業(yè)后換工作
來到我人生中最重要的一家公司,有個老同事真的很熱心,手把手教我怎么看原理圖,為什么控制這個IO為高電平,三極管就輸出低電平,為什么電磁閥可以動起來,怎么控制繼電器,代碼怎么畫原理圖,怎么畫PCB板,一條龍服務(wù)毫無保留地非常耐心地指導(dǎo)我,部門經(jīng)理在下班后,等我們吃完飯手把手教我們怎么用java與下位機(jī)通信,怎么創(chuàng)建線程,那段時光真的很美好,把我?guī)нM(jìn)了軟件開發(fā)行業(yè)。
三 感謝
非常感謝過去幫助過我的人,這個社會真的需要你們這樣的人,特別是剛畢業(yè)的學(xué)生,進(jìn)到這樣一家公司真的是很不錯的選擇。
四 嵌入式軟件開發(fā)流程
因?yàn)榇蟛糠肿龅氖乔度胧介_發(fā),所以是按照這個話題來開展
4.1 好的軟件深受4個人的喜愛和1個人的無奈
4.1.1 老板
通常老板都喜歡又快又好,交期快,訂單量大。前期應(yīng)該達(dá)不到,但有了良好的框架后理論上是可以達(dá)到這種效果的。
4.1.2 多個用戶
傻瓜式操作、操作一步到位、快速上手、大量通俗易懂的手冊、查閱文檔自助解決問題、視頻教程、技術(shù)支持快速響應(yīng)(客服機(jī)器人)、穩(wěn)定可靠不會崩潰滿足一個用戶是比較簡單的,但是同時滿足不同的用戶就比較困難了,在技術(shù)支持方面我們需要引導(dǎo)用戶自助解決問題、提供通俗易懂的用戶手冊。
4.1.3 同事
代碼風(fēng)格和編程思想良好、命名方式通俗易懂、有注釋、良好的設(shè)計(jì)架構(gòu)、閱讀代碼不會難受、有豐富的通俗易懂的技術(shù)文檔,易于更新維護(hù)、易于跨平臺移植、沒有潛在的BUG。
4.1.4 自己
錢多事少,更新、維護(hù)、擴(kuò)展、移植時只需更改少量代碼、或不用改代碼,軟件測試、領(lǐng)導(dǎo)簽字一次性通過,用戶使用過程中體驗(yàn)良好,沒有收到任何BUG反饋,深受用戶喜愛。
4.1.5 軟件測試
測了半天沒有發(fā)現(xiàn)一個BUG,功能全部正常,一個版本都沒有升,感覺太無聊,沒有一點(diǎn)成就感,完全沒有發(fā)揮他的價值,他會感到很迷茫,甚至開始懷疑人生但是沒辦法,只能委屈一下他了。
五 具體實(shí)施方法
5.1 現(xiàn)場考察
用戶需求在開發(fā)之前,如果有現(xiàn)成的產(chǎn)品,最好去客戶現(xiàn)場了解一下,就像做生意先要踩點(diǎn)記錄一下人流量,人均消費(fèi)水平,房租之類的同樣的道理,我們需要知道:
5.1.1 用戶使用現(xiàn)有產(chǎn)品體驗(yàn)是否良好,操作是否方便,如何改進(jìn)
5.1.2 用戶將來會遇到哪些問題
5.1.3 用戶遇到問題時,如何通過我們提供的資源,他自己獨(dú)立解決問題用戶能夠使用文檔或者現(xiàn)有功能來自己解決問題,可結(jié)合公眾號,服務(wù)器,數(shù)據(jù)庫
5.1.4 總結(jié)哪些尚未被滿足的、而又被廣泛渴望的需求(用戶痛點(diǎn))
5.1.5 將用戶需求轉(zhuǎn)換成規(guī)范的開發(fā)計(jì)劃、開發(fā)文檔(硬件系統(tǒng)框架圖、軟件功能定義等)
5.2 設(shè)計(jì)原則
5.2.1 開閉原則
軟件設(shè)計(jì)應(yīng)該在滿足功能需求的基礎(chǔ)上增加一些東西當(dāng)應(yīng)用的需求改變時,在不修改軟件實(shí)體的源代碼或者二進(jìn)制代碼的前提下,可以擴(kuò)展模塊的功能,使其滿足新的需求視覺反饋、觸感反饋,為什么要有反饋,可能是一個很深奧的話題了,可能跟人體分泌的多巴胺有關(guān)系,我不確定。以不變應(yīng)萬變(無論用戶需求有什么變化,我們都不用改固件),用戶的可變動需求,還可以通過(GPIO)(撥碼開關(guān))或者其他通信接口來配置,把配置權(quán)交給硬件或者通信接口,交給用戶
5.2.2 有軟件框架和設(shè)計(jì)模式
5.2.3 有分層,做框架之前有個前提條件,要拿到功能定義、硬件系統(tǒng)框架圖
分好層之后,分別編譯成庫文件,后續(xù)獨(dú)立維護(hù)相應(yīng)的庫文件即可,便于移植減少維護(hù)時地相互影響,改動時不影響其他功能
5.2.4 穩(wěn)定可靠
不出錯,不崩潰(訪問了空地址、內(nèi)存溢出、內(nèi)存泄露、數(shù)組越界、堆棧溢出等)
5.2.5 參數(shù)檢查
有輸入?yún)?shù)的函數(shù),要有參數(shù)檢查(排除所有可能的非法值)、錯誤處理、返回值用戶輸入是一個非常危險(xiǎn)的事情,需要謹(jǐn)慎處理
5.2.6 自定義malloc
-不使用庫函數(shù)malloc動態(tài)申請或釋放內(nèi)存創(chuàng)建內(nèi)存池(靜態(tài)),自己實(shí)現(xiàn)申請和釋放的函數(shù)
-多任務(wù)時,需要對公共資源進(jìn)行原子性訪問,防止數(shù)據(jù)出錯
5.2.7 重試機(jī)制
為了保證數(shù)據(jù)的有效傳輸,可能需要加入重試機(jī)制
5.2.8 易擴(kuò)展、易維護(hù)更新軟件時,更改代碼量較少或無需更改代碼
5.2.9 抽象變動部分
-改宏定義,或者類、靜態(tài)鏈表、集合、數(shù)組等的定義,不更改過程將未來可能會變的部分抽象出來,定義成數(shù)組、靜態(tài)鏈表、集合等,使用通用的過程來處理可變的部分
-不支持編程語法的將未來可能會變的部分抽象到外部文件(xml,bin),創(chuàng)建動態(tài)鏈表或者動態(tài)數(shù)組等再觸發(fā)遍歷
-支持編程語法的增加腳本解釋器,將未來可能會變的部分抽象到外部腳本文件(asm,lua,js,html,php),創(chuàng)建動態(tài)鏈表或者動態(tài)數(shù)組等再觸發(fā)遍歷
5.2.10 有使用設(shè)計(jì)模式,例如工廠模式、創(chuàng)造者模式等
5.2.11 易維護(hù),能夠快速定位異常(追溯)
5.2.12 JAVA、VB.NET、C#,不確定C 有這種方法增加全局異常捕捉事件,拋出異常時將具體文件名和行號追加寫入日志文件
5.2.13 有調(diào)試打印功能單片機(jī)可通過串口/LCD/并口(電腦主板)/PCI(電腦主板)來打印,串口/LCD/并口(電腦主板)/PCI(電腦主板)的讀寫字節(jié)函數(shù)映射到printf的相關(guān)讀寫字節(jié)函數(shù)上位機(jī)可通過控制臺打印,輸出到文件或者控制臺窗口
5.2.14 軟件層級之間通用的接口函數(shù),便于移植跨平臺
-write2.7.2 read
-control(cmd,data,void*parameter)可以不斷地?cái)U(kuò)展新功能
-接口函數(shù)中void *作為輸入?yún)?shù),可以傳遞任意類型任意長度的參數(shù)
5.2.15 必要的錯誤碼
幫助客戶自主解決問題,依賴于函數(shù)有返回值
5.2.16 有自檢功能
(硬件電路自檢)、上電自檢(通過指示燈來顯示,用于檢查IC,硬件電路等)3.1 當(dāng)出現(xiàn)故障時,可通過系統(tǒng)自檢來鎖定問題,提示用戶排除原因,解決問題能夠便于移植(跨平臺)的原因
5.2.17 分層設(shè)計(jì)
抽象出通用的類,通用的接口函數(shù),除非資源太少,不能支持面向?qū)ο缶幊趟枷?/p>
例如GPIO類有什么屬性,有什么接口函數(shù),要兼容所有的平臺,就要按照擁有最多的屬性來做GPIO類
六 可實(shí)施步驟
嵌入式軟件開發(fā)可以遵循一定的流程來執(zhí)行:
6.1 總結(jié)用戶需求,兼容多個用戶的需求
6.2 了解現(xiàn)有方案,總結(jié)用戶痛點(diǎn)(尚未被滿足的、而又被廣泛渴望的需求)
6.3 總結(jié)用戶可能會遇到的困難
6.4 總結(jié)如何引導(dǎo)用戶解決困難
6.4.1 將總結(jié)轉(zhuǎn)換成規(guī)范的開發(fā)計(jì)劃及技術(shù)文檔
6.5 輸出功能定義及設(shè)計(jì)要點(diǎn)(文檔)
6.6 輸出軟件框架圖(文檔)
6.7 輸出軟件流程圖(文檔)
6.8 確認(rèn)文檔OK,開始寫代碼
6.8.1 確認(rèn)好軟件測試計(jì)劃
6.9 軟件測試(自己)
6.10 軟件測試(正式),輸出測試報(bào)告
6.11 更新改善
6.12 穩(wěn)定性測試、可靠性測試、極端環(huán)境下測試
6.13 客戶驗(yàn)收
6.14 客戶現(xiàn)場跟蹤,總結(jié)已知缺陷
6.15 持續(xù)改善
6.16 項(xiàng)目資料存檔,輸出測試文檔
七 總結(jié)
是我以個人工作經(jīng)驗(yàn)做的總結(jié),不過我們的能力再好也要先提高自己的溝通能力,良好的溝通能力能夠讓我們打開彼此的心扉,讓家庭更加和諧,讓我們與朋友同事相處的更加融洽,讓我們更好地開展工作,最大限度的發(fā)揮我們的工作經(jīng)驗(yàn)和個人能力。
心有多大舞臺就有多大,我現(xiàn)在也成了嵌入式軟件工程師,但我還有更大的夢想,希望大家大膽去想象,大膽去挑戰(zhàn),一起努力去做到心想事成。
通過注冊公司,您可以獲得更多的融資渠道和商業(yè)合作機(jī)會。從上文,大家可以得知關(guān)于深圳南山注冊軟件公司步驟的一些信息,相信看完本文的你,已經(jīng)知道怎么做了,主頁希望這篇文章對大家有幫助。