999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-04-29 16:26:17呂金華韋卉
電子世界 2014年13期

呂金華 韋卉

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

【關鍵詞】敏捷開發(fā);測試驅(qū)動開發(fā);重構;迭代

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

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

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

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

2.敏捷過程實踐

2.1 需求

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

開展敏捷開發(fā)實踐項目的第一期活動:搜集用戶素材。邀請部門的相關領導、測試人員作為客戶,與開發(fā)人員共同確定用戶素材。

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

根據(jù)用戶素材,制定任務與時間的跟蹤表,跟蹤項目進度,如表1所示。

2.2 實踐過程

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

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

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

(1)程序中每一項功能都有測試來驗證它的操作的正確性;

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

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

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

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

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

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

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

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

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

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

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

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

3.結(jié)語

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

參考文獻

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

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

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

作者簡介:

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

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

主站蜘蛛池模板: 国产成人精品亚洲日本对白优播| 69av免费视频| 成人午夜视频网站| 国产专区综合另类日韩一区| 色哟哟精品无码网站在线播放视频| 一区二区午夜| 一本久道久久综合多人| 扒开粉嫩的小缝隙喷白浆视频| 久久无码高潮喷水| 亚洲码一区二区三区| a级毛片免费播放| 一本大道无码高清| 久久亚洲国产视频| 国内精品自在欧美一区| 69免费在线视频| 国产欧美日本在线观看| 特级做a爰片毛片免费69| 日韩不卡高清视频| 欧美精品1区2区| 国产黄色爱视频| a国产精品| WWW丫丫国产成人精品| 国产丰满大乳无码免费播放| 狠狠ⅴ日韩v欧美v天堂| 亚洲国产日韩在线观看| 精品视频第一页| 中文国产成人久久精品小说| 日韩一区二区在线电影| 久久6免费视频| 国产在线98福利播放视频免费| 国产成人一区二区| 丰满人妻中出白浆| 久久www视频| 成人午夜久久| 国产亚洲欧美日韩在线一区二区三区| 国国产a国产片免费麻豆| 老司机久久99久久精品播放| 无码精品一区二区久久久| 狠狠色成人综合首页| 91国内在线观看| 中文字幕在线不卡视频| 国产最爽的乱婬视频国语对白| 欧美亚洲国产日韩电影在线| 最新亚洲人成无码网站欣赏网 | 久久综合结合久久狠狠狠97色| 亚洲一区二区在线无码| 99在线视频免费| 中文字幕有乳无码| 麻豆国产精品一二三在线观看| 国产福利免费观看| 日韩无码视频网站| 中文字幕首页系列人妻| 一级片免费网站| 亚洲三级电影在线播放| 免费人成视网站在线不卡| 久久99精品国产麻豆宅宅| 日本午夜视频在线观看| 亚洲久悠悠色悠在线播放| 国产黄色视频综合| 亚洲视屏在线观看| 国产成人亚洲日韩欧美电影| jijzzizz老师出水喷水喷出| 中文字幕亚洲电影| 黄色一级视频欧美| 精品一区二区三区自慰喷水| 欧美中文字幕无线码视频| 青青草91视频| 日韩av资源在线| 蜜桃视频一区二区| 91小视频在线观看| 美女国产在线| 在线免费观看AV| a级毛片网| 人妻21p大胆| 国产精品成人免费综合| 亚洲视频二| 亚洲精品自产拍在线观看APP| 无码不卡的中文字幕视频| 国产精品区视频中文字幕| 亚洲天堂.com| 国产手机在线小视频免费观看| 色播五月婷婷|