一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何編寫優(yōu)質(zhì)的需求文檔

  英文原文:How to write good requirements

  編寫需求文檔,在嵌入式開(kāi)發(fā)領(lǐng)域是非常普遍的。需求文檔被用來(lái)定義開(kāi)發(fā)任務(wù),協(xié)調(diào)大規(guī)模的研發(fā)計(jì)劃。對(duì)于最終的產(chǎn)品,需求文檔扮演著開(kāi)發(fā)者行為和消費(fèi)者行為之間溝通紐帶的角色。當(dāng)需求文檔書(shū)寫正確的時(shí)候,便可以發(fā)揮巨大的作用。然而,如果你在嵌入式開(kāi)發(fā)領(lǐng)域工作的時(shí)間足夠長(zhǎng),你就會(huì)很快發(fā)現(xiàn),這個(gè)領(lǐng)域里不合格的需求文檔實(shí)在是太多了。當(dāng)你嘗試對(duì)這些不合格的文檔進(jìn)行修復(fù)時(shí),你又會(huì)很快發(fā)現(xiàn),書(shū)寫正確的需求文檔絕非易事。在這里,我們提出一些建議,希望能將書(shū)寫正確需求文檔這件事情變得清晰一些。

  從較高的層次來(lái)看,書(shū)寫需求文檔的目的就是要提供對(duì)所需行為的有效描述。該所需行為可用一個(gè)黑盒系統(tǒng)描述,并需要注意以下細(xì)節(jié):

  • 工程師可以根據(jù)系統(tǒng)所說(shuō)進(jìn)行實(shí)現(xiàn)
  • 測(cè)試人員,在不與開(kāi)發(fā)人員溝通的前提下,可以利用滿足硬件要求的設(shè)備驗(yàn)證需求。
  • 最終產(chǎn)生的成果滿足終端用戶的要求。
  • 黑盒測(cè)試

  書(shū)寫優(yōu)質(zhì)的需求文檔:

  最基本的原則是:需求文檔應(yīng)當(dāng)盡量簡(jiǎn)潔,用最易懂的描述來(lái)約束系統(tǒng)的預(yù)期行為。如果你遵循這個(gè)原則,剩下的那些重要因素(可測(cè)試性、避免過(guò)度設(shè)計(jì)等等)都將變得順理成章。

  列舉一下更詳細(xì)的規(guī)則,通常會(huì)更有幫助。下面是書(shū)寫優(yōu)質(zhì)需求文檔需要遵循的步驟:

  1. 定義系統(tǒng)的邊界。這也是黑盒系統(tǒng)所必要的。

  2. 定義輸入和輸出。這也應(yīng)當(dāng)是你看待內(nèi)部系統(tǒng)的唯一方式。

  3. 用最易懂的方式描述系統(tǒng)的預(yù)期行為

  4. 除了輸入和輸出之外,你的需求是不是還涉及了系統(tǒng)的其他部分?如果是,那么你的需求就設(shè)計(jì)過(guò)度了。重構(gòu)需求,讓它變得精簡(jiǎn)。

  5. 你的需求是不是過(guò)于模棱兩可?加入更多的限定規(guī)范。注意:有些模棱兩可的描述并不是壞事,假設(shè)描述所包含的所有情況均可被接受,且測(cè)試的時(shí)候不需要附加的信息加以說(shuō)明,那么就沒(méi)關(guān)系。你不需要(也不應(yīng)該)把系統(tǒng)的行為限制得過(guò)頭。

  6. 你的需求是否可測(cè)試?(這里指的是黑盒測(cè)試)如果不是,你最好返回到第 4 步。如果這種返工發(fā)生很多次,那就說(shuō)明你的黑盒無(wú)法正確描述系統(tǒng),或者你的測(cè)試工具不夠優(yōu)秀。無(wú)論是哪種情況,不可測(cè)試的需求文檔幾乎就是一文不值的。

  7. 你的需求文檔通俗易懂么?如果你的需求文檔非常難以讀懂,那就說(shuō)明你寫得不好,只能給那些照著你的需求負(fù)責(zé)實(shí)施的人帶來(lái)無(wú)盡的痛苦。如果是這樣,回到第 3 步。

  8. 你是不是真的做到了第 4 步?你確認(rèn)么?再檢查一下。

  例子:下面的例子,讓我們描述一個(gè)自制的嵌入式設(shè)備的需求,這個(gè)設(shè)備能從彎曲傳感器上讀取彎曲的頻率,并根據(jù)不同的頻率值讓一個(gè) LED 閃爍。

  顯然,我們已經(jīng)完成了步驟 2 和步驟 3 了!

  · 輸入:從彎曲傳感器讀取數(shù)據(jù)。

  · 輸出:LED。

  但是我們跳過(guò)了步驟1:

  · 在這個(gè)例子里,我們將把黑盒畫(huà)到設(shè)備的微處理器上。

  讓我們繼續(xù)往下進(jìn)行,

  第四步:除了輸入和輸出以外,我們是否還涉及了其他的系統(tǒng)邊界?

  · 微處理器并不關(guān)心從彎曲傳感器讀取什么樣的數(shù)據(jù),從處理器的角度來(lái)看,僅需要做的是測(cè)量 ADC 腳的電壓而已。

  · LED 僅由數(shù)字輸出腳控制。

  下面,讓我們來(lái)修正這個(gè)問(wèn)題:

  第 0 版本的需求:

  1. 該設(shè)備應(yīng)當(dāng)根據(jù) ADC 腳的不同頻率的電壓,來(lái)切換數(shù)字輸出端的狀態(tài)。

  第五步: 需求寫模棱兩可么?

  恩,我們的描述太模棱兩可了.輸出端切換的速度要多快? 跟電壓的關(guān)系如何? 輸入電壓的范圍是多少? 讓我們加一些更細(xì)節(jié)的描述吧:

  版本0.1

  1. 輸出端應(yīng)當(dāng)由一個(gè)自由活動(dòng)的定時(shí)器進(jìn)行控制

  2. 自由運(yùn)行定時(shí)器的頻率最高不得高于每秒 10 次,不得低于每秒 1 次.

  3. 自由運(yùn)行定時(shí)器的觸發(fā)頻率應(yīng)當(dāng)在最高和最低值之間呈線性變化,并與 ADC 端的輸入電壓成正比.

  4. ADC 端的輸入電壓應(yīng)當(dāng)每 100 毫秒讀取一次

  5. 當(dāng) ADC 端的輸入電壓端被讀入時(shí),控制自由運(yùn)行定時(shí)器周期時(shí)間的注冊(cè)值也應(yīng)當(dāng)被更新.

  6. ADC 輸入端的電壓有效范圍應(yīng)當(dāng)被控制在 0 到 1 伏之間.

  第六步: 你的需求是可測(cè)試的么?

  · 首先,自由運(yùn)行的定時(shí)器在這里不需要提及. 因?yàn)閷?duì)它基本上無(wú)法進(jìn)行黑盒測(cè)試,它既不是輸入也不是輸出,而且跟這兩者也沒(méi)有什么聯(lián)系。

  讓我們用“數(shù)字輸出端變化的頻率應(yīng)控制在每秒 10 次和每秒 1 次之間”來(lái)代替自由運(yùn)行定時(shí)器的測(cè)試標(biāo)準(zhǔn)。

  · 對(duì)于上述的第四條需求,可能需要一些小修改才能作為測(cè)試標(biāo)準(zhǔn)。讓我們用“ADC 端的輸入電壓應(yīng)當(dāng)保證在每 100 毫秒內(nèi)至少被讀取一次”來(lái)加以描述,這樣的描述能讓我們預(yù)期的測(cè)試行為顯得更加通俗易懂。

  · 需求的第五條也需要一些小修改。我們?nèi)绾尾拍軝z測(cè)電壓的輸出范圍是在 0 到 1 伏之間呢? 總不能給個(gè) 2 伏的電壓,然后看看元器件有沒(méi)有被燒毀吧?

  那么,說(shuō)“檢驗(yàn)系統(tǒng)在 ADC 端輸入電壓為 1 到 2 伏之間的時(shí)候,工作是否正常”,這樣就檢驗(yàn)就容易多了。需求描述應(yīng)當(dāng)是“正面”的,應(yīng)當(dāng)描述設(shè)備“應(yīng)該”的行為,而不是設(shè)備“不應(yīng)該”的行為。否則的話,測(cè)試將會(huì)無(wú)法進(jìn)行。

  版本0.2

  1. 數(shù)字輸出端的切換頻率應(yīng)當(dāng)控制在每秒 10 次到每秒 1 次之間

  2. 數(shù)字輸出端的切換頻率應(yīng)當(dāng)在最大值和最小值之間呈線性變化,并與 ADC 端的輸入電壓成正比

  3. ADC 端的輸入電壓應(yīng)當(dāng)保證在每 100 毫秒內(nèi)至少被讀取一次

  4. 檢驗(yàn)當(dāng) ADC 端的輸入電壓范圍在 0 到 1 伏之間的時(shí)候,系統(tǒng)工作是否正常

  第七步:你的需求是否通俗易懂?

  相比于我們?cè)瓉?lái)的描述:“根據(jù)彎曲傳感器的輸出不同頻率來(lái)控制 LED 閃爍”,我們上面的那些需求描述顯得難以閱讀和理解。

  我發(fā)現(xiàn),讓需求文檔變得通俗易懂,最簡(jiǎn)單辦法莫過(guò)于,把過(guò)于細(xì)節(jié)的東西抽取出來(lái),然后以條目的形式單獨(dú)定義。

  版本1

  1. 彎曲傳感器應(yīng)當(dāng)保證至少在 100 毫秒內(nèi)讀取一次數(shù)據(jù)(放到注釋單獨(dú)列出)

  2. 切換 LED 的狀態(tài),使其與彎曲傳感器的讀數(shù)保持一致

  3. 當(dāng)彎曲傳感器的讀數(shù)為 1 伏特時(shí),LED 狀態(tài)切換的次數(shù)應(yīng)當(dāng)保持在平均一秒十次;當(dāng)傳感器的讀數(shù)為 0 伏特時(shí),LED 的切換次數(shù)應(yīng)保持在一秒 1 次。

  定義:

  · 彎曲傳感器:輸入電壓位于 ADC 的X端。安全電壓范圍為 0 到 1 伏特(放到注釋單獨(dú)列出)

  · LED 狀態(tài):數(shù)字狀態(tài)由Y端輸出

  這樣就好多了(盡管還不完美)。這些需求通俗易懂,不涉及到系統(tǒng)內(nèi)部實(shí)現(xiàn),且易于測(cè)試。對(duì)于系統(tǒng)行為的限定也僅僅限于需要做什么,點(diǎn)到為止。(例如,對(duì)彎曲傳感器的采樣頻率,在實(shí)現(xiàn)上也可以更高,只要不產(chǎn)生非預(yù)期行為,一切都可以)。

  編寫需求就仿佛是在大腦中構(gòu)建軟件的過(guò)程。因此要重于實(shí)作。

  編譯:伯樂(lè)在線 – 黃小非

it知識(shí)庫(kù)如何編寫優(yōu)質(zhì)的需求文檔,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产乱码视频 | 国产高颜值露脸在线观看 | 亚洲三级自拍 | 久久老司机波多野结衣 | 国产综合第一页 | 天天拍夜夜拍高清视频 | 中文字幕日本一本二本三区 | 麻豆精品91 | 国产精品玖玖 | 成年网站在线 | 欧美美女被日 | 一级a性色生活片久久毛片 一级爱爱片一级毛片-一毛 | 无套日出白浆在线播放 | 亚洲人成亚洲精品 | 黄在线看| 福利网在线观看 | 看全色黄大色黄大片女图片 | 99免费精品视频 | 亚洲免费视频网站 | 在线观看亚洲一区二区 | 亚洲午夜在线观看 | 日本高清加勒比 | 婷婷五月在线视频 | 91av福利| 欧美又黄又嫩大片a级 | 91精品国产麻豆福利在线 | 国产xxxxx在线播放 | 15p亚洲 | 日韩三级一区 | 国产成人 免费观看 | 激情五月开心网 | 伊人精品综合 | 国产91 最新 在线 | 欧美色视频在线 | 狠狠久久综合 | 日韩亚洲一区二区三区 | 日日好吊妞 | 日本美女视频韩国视频网站免费 | 色婷婷亚洲精品综合影院 | 91精品观看91久久久久久 | 亚洲欧洲专线一区 |