亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        敏捷開發(fā)在嵌入式編程中的應(yīng)用與實(shí)踐

        2014-04-29 16:26:17呂金華韋卉
        電子世界 2014年13期
        關(guān)鍵詞:迭代重構(gòu)

        呂金華 韋卉

        【摘要】本文介紹了敏捷開發(fā)方法在嵌入式軟件項(xiàng)目中的應(yīng)用與實(shí)踐。敏捷開發(fā)方法是當(dāng)前業(yè)內(nèi)流行的軟件開發(fā)方法,本文主要通過模擬對(duì)講機(jī)項(xiàng)目(嵌入式軟件項(xiàng)目)中的串口調(diào)試信息模塊的實(shí)施來探討敏捷開發(fā)的工程實(shí)踐。

        【關(guān)鍵詞】敏捷開發(fā);測(cè)試驅(qū)動(dòng)開發(fā);重構(gòu);迭代

        1.敏捷開發(fā)簡介

        敏捷開發(fā)是一種以用戶的需求進(jìn)化為核心,迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備集成和可運(yùn)行的特征。敏捷開發(fā)是針對(duì)傳統(tǒng)的瀑布開發(fā)模式的弊端而產(chǎn)生的一種新的開發(fā)模式,目標(biāo)是提高開發(fā)效率和響應(yīng)能力。

        敏捷開發(fā)中常見的思想有:計(jì)劃游戲;結(jié)對(duì)編程;簡單設(shè)計(jì);測(cè)試驅(qū)動(dòng)開發(fā);持續(xù)集成;代碼重構(gòu)等。

        本文將以模擬對(duì)講機(jī)項(xiàng)目(嵌入式軟件項(xiàng)目)中串口調(diào)試信息模塊的實(shí)施作為例子,實(shí)踐敏捷開發(fā)的過程。

        2.敏捷過程實(shí)踐

        2.1 需求

        模擬對(duì)講機(jī)項(xiàng)目中的串口調(diào)試信息模塊,為模擬對(duì)講機(jī)系統(tǒng)提供標(biāo)準(zhǔn)輸出功能,根據(jù)需要輸出系統(tǒng)的運(yùn)行信息,方便開發(fā)、測(cè)試人員對(duì)系統(tǒng)進(jìn)行跟蹤分析。此模塊的實(shí)現(xiàn)對(duì)項(xiàng)目的成功開展較為緊急和重要,且功能相對(duì)獨(dú)立,適用于選用敏捷開發(fā)方法。

        開展敏捷開發(fā)實(shí)踐項(xiàng)目的第一期活動(dòng):搜集用戶素材。邀請(qǐng)部門的相關(guān)領(lǐng)導(dǎo)、測(cè)試人員作為客戶,與開發(fā)人員共同確定用戶素材。

        需求收集過程:與客戶討論,共同確認(rèn)素材;分解已有素材,過大的素材需要進(jìn)行分解,過小的素材需要進(jìn)行合并;以一周為一個(gè)迭代周期,確定四個(gè)迭代周期所執(zhí)行的素材。

        根據(jù)用戶素材,制定任務(wù)與時(shí)間的跟蹤表,跟蹤項(xiàng)目進(jìn)度,如表1所示。

        2.2 實(shí)踐過程

        2.2.1 艱難的第一步——測(cè)試驅(qū)動(dòng)開發(fā)

        在以往的項(xiàng)目開發(fā)中,開發(fā)工程師一般是先寫代碼,然后用測(cè)試用例覆蓋代碼,寫測(cè)試代碼的工程師與開發(fā)代碼的工程師是不同的人員,因此在測(cè)試用例的覆蓋上會(huì)有遺漏的可能。

        敏捷開發(fā)方法中,推薦測(cè)試驅(qū)動(dòng)開發(fā)的開發(fā)方法,在設(shè)計(jì)程序前先設(shè)計(jì)測(cè)試方案,除非缺少某行代碼將導(dǎo)致測(cè)試失敗,否則決不在程序中增加一行代碼。使用測(cè)試驅(qū)動(dòng)開發(fā)方法有幾個(gè)好處:

        (1)程序中每一項(xiàng)功能都有測(cè)試來驗(yàn)證它的操作的正確性;

        (2先編寫測(cè)試用例可以迫使開發(fā)工程師使用不同的觀察點(diǎn);

        (3)迫使開發(fā)工程師把程序設(shè)計(jì)為可測(cè)的,解除軟件中的耦合;

        (4)測(cè)試可以作為一種無價(jià)的文檔形式,這樣的文檔是可編譯和執(zhí)行的,因此它是準(zhǔn)確和可靠的。

        兩位工程師首次一起坐到電腦面前,開始結(jié)對(duì)編程的“旅程”。開始讓工程師們非常迷茫,一般開發(fā)工程師都慣于在了解大概需求后便開始寫代碼,寫代碼的過程再考慮周詳。而敏捷開發(fā)方法卻需要先寫測(cè)試用例。

        在探索下,開發(fā)工程師努力抑制了“先寫代碼實(shí)現(xiàn)試試看”的想法,完成了第一個(gè)接口的測(cè)試用例。開發(fā)工程師發(fā)現(xiàn)編寫測(cè)試用例的時(shí)間遠(yuǎn)比代碼編寫的時(shí)間長。開發(fā)工程師困惑了,要犧牲時(shí)間來換取質(zhì)量是否值得?答案是肯定的。隨著項(xiàng)目的推進(jìn),編寫測(cè)試用例越來越熟練,測(cè)試用例的編寫不再被認(rèn)為浪費(fèi)時(shí)間,相反它一直在提高程序編寫的速度,原因是開發(fā)工程師把每次添加新代碼后的測(cè)試時(shí)間省下來了。由于每個(gè)測(cè)試用例都是可編譯可運(yùn)行的,在每次添加新代碼后,要測(cè)試新代碼是否對(duì)原接口造成沖擊,開發(fā)工程師只需要運(yùn)行測(cè)試用例,就可以查看是否出錯(cuò),加快了調(diào)試的速度,而且代碼越龐大,測(cè)試用例的優(yōu)越性越能體現(xiàn)。

        這第一步走得很艱難,但是也是最有價(jià)值的,這個(gè)步驟讓開發(fā)工程師留下了一份準(zhǔn)確可靠的文檔——測(cè)試用例,測(cè)試用例是一份與代碼保持同步更新的文檔。

        2.2.2 走出“能用”的誤區(qū)——重構(gòu)

        在每天完成代碼后,開發(fā)工程師會(huì)先運(yùn)行測(cè)試用例,測(cè)試通過后,開始進(jìn)入代碼重構(gòu)的環(huán)節(jié)。重構(gòu)過程包括去除重復(fù),簡化復(fù)雜邏輯和澄清模糊的代碼。重構(gòu)時(shí),需要對(duì)代碼進(jìn)行無情的針砭,以改進(jìn)其設(shè)計(jì)。

        這種做法,與以往的做法又造成了一定的對(duì)比和沖擊,以往寫完代碼,只要驗(yàn)證能用,迫于進(jìn)度要求,就交付使用了。后續(xù)添加到代碼越多,修改代碼時(shí)發(fā)現(xiàn)原來的代碼有很多冗余,甚至出現(xiàn)邏輯太復(fù)雜,看不懂的情況。重構(gòu)讓代碼朝健康簡潔的方向發(fā)展,重構(gòu)投入的時(shí)間和一次性修正過于冗余復(fù)雜的代碼需要的時(shí)間相比是非常少的。

        2.2.3 短周期持續(xù)集成——迭代

        迭代是一次又一次循環(huán)逼近的過程。每次迭代結(jié)束時(shí)會(huì)給客戶演示當(dāng)前可以運(yùn)行的程序,要求客戶對(duì)程序的功能和性能進(jìn)行評(píng)價(jià),客戶會(huì)以新的用戶素材的方式進(jìn)行反饋。通過一次次迭代,項(xiàng)目進(jìn)入可以預(yù)測(cè)和舒適的開發(fā)節(jié)奏。開發(fā)人員看到的是可估算和可度量的開發(fā)計(jì)劃。

        本模塊共進(jìn)行四次迭代,成功完成預(yù)計(jì)內(nèi)的功能,目前已成功投入使用。在每次迭代完成時(shí),開發(fā)工程師會(huì)給客戶演示程序,以確定程序是符合客戶預(yù)期的,如與客戶的意圖出現(xiàn)偏差,則可以及時(shí)調(diào)整,確保滿足客戶的需求。

        3.結(jié)語

        在本次實(shí)踐的過程中,工程師犯了不少錯(cuò)誤(涵蓋需求、設(shè)計(jì)、編碼各方面),但重要的是,采用敏捷方法進(jìn)行迭代非常方便地快速識(shí)別并修正了錯(cuò)誤。開發(fā)工程師第一次進(jìn)行結(jié)對(duì)編程,所有代碼都是由結(jié)對(duì)的開發(fā)工程師共同完成的。結(jié)對(duì)編程使編寫程序不再是一項(xiàng)枯燥的個(gè)人奮斗,而是多人協(xié)作共同的成果。在結(jié)對(duì)工作的過程中,各位開發(fā)者從對(duì)方學(xué)到了不少知識(shí),促進(jìn)了團(tuán)隊(duì)知識(shí)的傳播,加強(qiáng)了團(tuán)隊(duì)成員的溝通,提高了團(tuán)隊(duì)工作效率的工作能力,這是一次愉快的實(shí)踐。

        參考文獻(xiàn)

        [1][美]Robert C.Martin.敏捷軟件開發(fā):原則、模式與實(shí)踐[M].鄧輝,譯.北京:清華大學(xué)出版社,2003.

        [2][美]Joshua Kerievsky.重構(gòu)與模式[M].楊光,劉基誠,譯.北京:人民郵電出版社,2006.

        [3][美]Mike Cohn.Scrum敏捷軟件開發(fā)[M].廖靖斌,呂梁岳,陳爭云,陽陸育,譯.北京:清華大學(xué)出版社,2010.

        作者簡介:

        呂金華(1982—),女,廣東江門人,大學(xué)本科,軟件設(shè)計(jì)師,現(xiàn)供職于廣州海格通信集團(tuán)股份有限公司,研究方向:嵌入式軟件設(shè)計(jì)。

        韋卉(1981—),女,廣西梧州人,大學(xué)本科,軟件測(cè)試師,現(xiàn)供職于廣州海格通信集團(tuán)股份有限公司,研究方向:嵌入式軟件測(cè)試。

        猜你喜歡
        迭代重構(gòu)
        視頻壓縮感知采樣率自適應(yīng)的幀間片匹配重構(gòu)
        長城敘事的重構(gòu)
        攝影世界(2022年1期)2022-01-21 10:50:14
        北京的重構(gòu)與再造
        商周刊(2017年6期)2017-08-22 03:42:36
        基于省級(jí)精品教材多元自主學(xué)習(xí)平臺(tái)的螺旋上升學(xué)習(xí)研究
        基于最小二乘的視野區(qū)域運(yùn)動(dòng)方向分析
        JavaScript計(jì)算性能對(duì)比研究
        中間件“迭代”
        DNS解析的探究
        考試周刊(2016年64期)2016-09-22 18:18:03
        論中止行為及其對(duì)中止犯的重構(gòu)
        漲價(jià)與醫(yī)保政策需同步“迭代”
        亚洲国产AⅤ精品一区二区久 | 亚洲一级无码片一区二区三区| 亚洲综合精品在线观看中文字幕| 东京热加勒比久久精品| 免费人成在线观看网站| 无码精品a∨在线观看十八禁| 在线视频中文字幕乱人伦| 麻豆av毛片在线观看| 国产免费牲交视频| 国产在线观看www污污污| 草草影院国产| 国产另类av一区二区三区| 免费无遮挡无码永久在线观看视频| 久热综合在线亚洲精品| 亚洲三级在线播放| h视频在线免费观看视频| 青青草视频视频在线观看| 久久精品夜色噜噜亚洲a∨| 欧美性开放bbw| 香港三级欧美国产精品| 国产尤物自拍视频在线观看| 黄片视频免费在线观看国产| 无码人妻一区二区三区兔费| 少妇被粗大的猛进69视频| 青青国产成人久久91| 天堂麻豆精品在线观看| 亚洲av高清在线观看一区二区| 在线不卡av片免费观看| 国产资源精品一区二区免费| 青青草久久久亚洲一区| 欧洲熟妇色xxxx欧美老妇性| 国产mv在线天堂mv免费观看| 激情文学人妻中文字幕| 国产乱码精品一区二区三区久久| 真人做爰片免费观看播放| 国产91福利在线精品剧情尤物| 一区二区在线观看日本免费| 欲香欲色天天综合和网| 亚洲自偷自偷偷色无码中文| 亚洲中文字幕在线第二页| 国产自拍高清在线观看|