欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3939|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

電子產(chǎn)品程序設(shè)計(jì)漫談

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:128229 發(fā)表于 2016-6-29 23:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
                         電子產(chǎn)品軟件設(shè)計(jì)漫談
技術(shù)源于積累,成功源于執(zhí)著。
                                 ——沈輝文







一、方案的制定階段
    1. 一個(gè)項(xiàng)目的成敗往往不是在最后一天體現(xiàn),而是在第一天就被注定了(三軍未動(dòng),糧草先行)。也就是說(shuō),方案的制定階段直接關(guān)系到項(xiàng)目的成敗。因此在這個(gè)階段要細(xì)致的做好準(zhǔn)備工作,這些工作主要包括以下內(nèi)容:
    2. 制定技術(shù)開發(fā)要求,首先要搞明白我們到底想做什么?最害怕的就是那種沒(méi)有要求的設(shè)計(jì)項(xiàng)目。因?yàn)橛袝r(shí),沒(méi)有要求就意味著客戶隨時(shí)會(huì)提出新要求。這往往會(huì)陷開發(fā)者以兩難的境地。
    3. 制定實(shí)現(xiàn)方案,進(jìn)行技術(shù)準(zhǔn)備。了解技術(shù)瓶頸和難點(diǎn)在哪。評(píng)估這些技術(shù)難點(diǎn)的風(fēng)險(xiǎn)。能否解決?如何解決?對(duì)于有經(jīng)驗(yàn)的工程師來(lái)說(shuō),技術(shù)方案的定制與論證幾乎憑直覺(jué)就能完成。而對(duì)于新手來(lái)說(shuō),這些工作切往往很難獨(dú)立完成,需要前輩給予指導(dǎo)或協(xié)助。
    4.評(píng)估整個(gè)項(xiàng)目開發(fā)需要的各方面的資源,包括:人力、工具、材料、場(chǎng)地、經(jīng)費(fèi)等。并由此核算與評(píng)估項(xiàng)目的成本(包括研發(fā)成本和生產(chǎn)成本)。
    5.評(píng)估確定開發(fā)周期。開發(fā)周期有兩個(gè)概念,一個(gè)是指工程師評(píng)估出來(lái)的開發(fā)周期。一個(gè)是指市場(chǎng)方面希望的完工時(shí)間期限。當(dāng)二者發(fā)生矛盾時(shí),就必須進(jìn)行協(xié)調(diào)。要么市場(chǎng)方面放寬期限,要么增派人手或安排加班。
    在整個(gè)立項(xiàng)過(guò)程中,工程師往往只把關(guān)注的目光片面地投向技術(shù)方案本身,而忽略了市場(chǎng)前景預(yù)估,成本核算、工具和材料的準(zhǔn)備以及人力資源的調(diào)度等等。其實(shí)這些因素同樣關(guān)系著產(chǎn)品的成敗,需要給予足夠的重視。必要時(shí),應(yīng)該請(qǐng)相關(guān)人員共同參與,進(jìn)行評(píng)估和協(xié)助。
二、產(chǎn)品設(shè)計(jì)階段
    在經(jīng)過(guò)多方面的綜合評(píng)估,確認(rèn)方案可行,即可立項(xiàng),進(jìn)入具體的設(shè)計(jì)階段了。其實(shí)這個(gè)設(shè)計(jì)階段中包含了系統(tǒng)、程序、電路、機(jī)械結(jié)構(gòu)等多方面的內(nèi)容。由于本手記主要講電子程序設(shè)計(jì)。因此就撇開其他,只講程序。在這個(gè)階段工程師的主要任務(wù)是:
    1.程序框架的規(guī)劃。
    2.各個(gè)模塊功能的細(xì)分。
    3.系統(tǒng)資源的分配。
    4.算法的設(shè)計(jì)。
    5.程序流程圖的繪制。
    新手們常常喜歡跳過(guò)這個(gè)階段,蠢蠢欲動(dòng)地直接上機(jī)去寫程序,邊寫邊調(diào)。滿以為這樣可以加快進(jìn)度,結(jié)果往往事倍功半,反而耽誤了時(shí)間。
    其實(shí),磨刀不誤砍柴工。這個(gè)階段付出的辛苦,將在后面幾個(gè)階段獲得N倍的報(bào)答。反之,這個(gè)階段的任何一點(diǎn)懈怠,都有可能為以后的工作埋下禍根。
三、代碼編寫階段
    這個(gè)階段就是我們平時(shí)所謂的寫程序了,其實(shí)是最沒(méi)技術(shù)含量的活,誰(shuí)都能干。這個(gè)階段最基本的要求就是盡量減少筆誤現(xiàn)象,并且嚴(yán)格遵守編程規(guī)范。
    根據(jù)經(jīng)驗(yàn),筆誤現(xiàn)象是無(wú)法完全杜絕的。筆誤屬于低級(jí)錯(cuò)誤,其實(shí)并不可怕。即使存在一些筆誤,也可在下一步調(diào)試階段糾正。事實(shí)上,現(xiàn)在許多編譯器已經(jīng)可以為我們發(fā)現(xiàn)許多筆誤現(xiàn)象。
    真正需要注意的是遵守編程規(guī)范。一個(gè)規(guī)范的程序文本,不但是審美的要求,而且更是后續(xù)調(diào)試和修改工作得以勝利進(jìn)行的保證。 關(guān)于編程規(guī)范,如果展開來(lái)講的話,完全可以寫一本書。
    1.向前兼容原則
    對(duì)于單個(gè)程序員來(lái)說(shuō),效率來(lái)自于不斷積累。這時(shí)要奉行的最高原則就是向前兼容。
    我們知道,許多有經(jīng)驗(yàn)的編程老手,都擁有自己的程序模塊庫(kù)。當(dāng)他們需要設(shè)計(jì)一個(gè)新的程序時(shí),只要直接從舊的項(xiàng)目中抽取出成熟模塊,移植到新的項(xiàng)目中。七拼八湊,就完成了新程序的設(shè)計(jì)。這極大提高了開發(fā)速度。
    為了讓這些模塊,能夠在不同時(shí)期的不同項(xiàng)目中,保持較好的兼容性,必須讓它們遵守相同的規(guī)范。
    因此,要盡快形成個(gè)人成熟、完善的程序風(fēng)格。
    2.相互兼容原則
    對(duì)于一個(gè)開發(fā)團(tuán)隊(duì)來(lái)說(shuō),效率來(lái)自于分工協(xié)作。這時(shí)要奉行的最高原則就是相互兼容。
    在團(tuán)隊(duì)中,編程者個(gè)人技巧的重要性被降低。甚至這些不和規(guī)范的技巧,會(huì)成為合作者之間溝通的障礙。
    團(tuán)隊(duì)中的個(gè)人英雄主義是失敗的先兆。而團(tuán)隊(duì)默契配合,才是成功的關(guān)鍵因素。
    因此,有必要制定統(tǒng)一的編程規(guī)范,讓團(tuán)隊(duì)中的伙伴一起遵守,避免各自為政、一盤散沙。
四、產(chǎn)品調(diào)試階段
    這個(gè)階段就是要驗(yàn)證前面的工作,把程序調(diào)通。
    在這里,調(diào)通的概念并不是說(shuō),程序在正常狀態(tài)下,偶然正確運(yùn)行那么一回就算萬(wàn)事大吉。我們要保證,程序在各種可能的狀態(tài)(包括異常狀態(tài))下都能按預(yù)期的要求工作。
    曾經(jīng)聽說(shuō),某某高手一口氣寫了N多K的程序,沒(méi)有經(jīng)過(guò)調(diào)試,一次燒片就成功了。我覺(jué)得這簡(jiǎn)直就是神話一般不可思議。我堅(jiān)信一點(diǎn),就是沒(méi)有BUG的程序是不存在的。這年頭,就連Windows XP都渾身是補(bǔ)丁,誰(shuí)又能宣稱自己比比爾蓋茨還牛呢?
    調(diào)試階段要做的兩件重要事情:一是測(cè)試,就是要進(jìn)可能多地找出程序中的BUG;二是DEBUG,就是要解決這些BUG。
    找不出BUG,或解決不了BUG,都是失敗。
    程序員往往更善于解決BUG,卻不善于發(fā)現(xiàn)BUG。這是由于程序員面對(duì)自己的程序,往往會(huì)存在視覺(jué)盲點(diǎn)。這就像禿子看不到自己的光頭一樣。另一方面,程序員即使發(fā)現(xiàn)BUG,但由于程序是自己寫的,往往不能正視之。這是一種思維障礙,就像我們常常不愿承認(rèn)自己的缺點(diǎn)一樣。因此,最好的解決辦法,是在程序(產(chǎn)品樣品)交付客戶之前,請(qǐng)其他人員進(jìn)行測(cè)試檢驗(yàn)。
    在找到BUG后,需要程序員去分析問(wèn)題并解決問(wèn)題了。這才體現(xiàn)個(gè)人功力,拉開差距的時(shí)候呢。高手和低手的差別就在這時(shí)顯現(xiàn)出來(lái)。
五、產(chǎn)品維護(hù)階段
    這個(gè)階段是指產(chǎn)品在推向市場(chǎng)或交付客戶后,根據(jù)市場(chǎng)或客戶需求,進(jìn)行升級(jí)維護(hù),當(dāng)然也包括進(jìn)一步對(duì)隱形BUG的消除。
    一個(gè)得不到維護(hù)的產(chǎn)品,是沒(méi)有生命力的。就像一顆已經(jīng)死亡的樹,雖然表面上看來(lái)還枝繁葉茂,但實(shí)際上它已經(jīng)停止生長(zhǎng),遲早要腐化掉。
    同樣道理,一款常年不更新?lián)Q代的電子產(chǎn)品,會(huì)像過(guò)去的明星漸漸被人遺忘一樣,逐漸丟失市場(chǎng)份額,而產(chǎn)品維護(hù),是延長(zhǎng)產(chǎn)品生命周期的不二法門。
    產(chǎn)品如何才能經(jīng)歷歲月的考驗(yàn),千錘百改,依然生機(jī)勃勃?
    1.養(yǎng)成良好的編程習(xí)慣
    程序應(yīng)該模塊化,就像積木一樣,便于拆卸或增加。
    對(duì)于MCU的一些資源,如RAM寄存器或I/O口,甚至包括一些常數(shù),必須先定義在使用,避免直接使用。將來(lái)需要調(diào)整時(shí),只要修改定義部分就好了。
    對(duì)于相同或類似的程序段,應(yīng)該用子程序來(lái)實(shí)現(xiàn)。如果受堆棧等資源限制,不能使用子程序,則應(yīng)該用宏來(lái)實(shí)現(xiàn)。只要以后需要修改時(shí),只需要改一點(diǎn),無(wú)需改一片。
    2.自覺(jué)加強(qiáng)版本管理
    詳細(xì)記錄每個(gè)程序版本的修改細(xì)節(jié),形成一份歷史記錄。并且,每次改動(dòng)后的版本都應(yīng)該保留,新版本不要覆蓋老版本的文件。一個(gè)基本原則是,凡是要燒片測(cè)試或送樣的程序版本,如需要再做修改,必須升級(jí)版本號(hào)。
    并且,每次修改程序時(shí),相關(guān)的注釋及輔助說(shuō)明文檔也應(yīng)該同步更新。免得下次再改時(shí),發(fā)現(xiàn)對(duì)不上號(hào)。
    所有程序版本應(yīng)該妥善歸類、存檔備份。有條件最好刻成光盤,避免日久年長(zhǎng)因病毒或硬盤損壞而丟失。








分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表