數據時期配景下:數據是營銷的寶貝
2016-05-13
網站中切勿疏忽題目的幾概略點
2016-05-13
Show all

若何編寫優良的需求文檔

  編寫需求文檔,在嵌入式開辟范疇長短常廣泛的。需求文檔被用來界說開辟義務,調和大范圍的研發籌劃。對付終極的產物,需求文檔飾演著開辟者行動和花費者行動之間相同紐帶的腳色。當需求文檔謄寫準確的時刻,即可以施展偉大的感化。但是,假如你在嵌入式開辟范疇事情的時光充足長,你就會很快發明,這個范疇裡分歧格的需求文檔其實是太多瞭。當你測驗考試對這些分歧格的文檔舉行修復時,你又會很快發明,謄寫準確的需求文檔絕非易事。在這裡,我們提出一些發起,願望能將謄寫準確需求文檔這件工作變得清楚一些。

  從較高的條理來看,謄寫需求文檔的目標就是要供給對所需行動的有用描寫。該所需行動可用一個黑盒體系描寫,並須要留意以下細節:

  • 工程師能夠依據體系所說舉行完成。

  • 測試職員,在沒有與開辟職員相同的條件下,能夠應用知足硬件請求的裝備考證需求。

  • 終極發生的結果知足末端用戶的請求。

  黑盒測試謄寫優良的需求文檔:

  最根本的原則是:需求文檔應該隻管簡練,用最易懂的描寫來束縛體系的預期行動。假如你遵守這個原則,剩下的那些主要身分(可測試性、幸免過分計劃等等)都將變得瓜熟蒂落。

  枚舉一下更具體的規矩,平日會更有贊助。上面是謄寫優良需求文檔須要遵守的步調:

  1. 界說體系的界限。這也是黑盒體系所需要的。

  2. 界說輸入和輸出。這也應該是你對待內部體系的獨一方法。

  3. 用最易懂的方法描寫體系的預期行動。

  4. 除輸入和輸出以外,你的需求是否是還觸及瞭體系的其他部門?假如是,那末你的需求就計劃過分瞭。重構需求,讓它變得精簡。

  5. 你的需求是否是過於含糊其詞?參加更多的限制范例。留意:有些含糊其詞的描寫其實不是好事,假定描寫所包括的全部情形都可被接收,且測試的時刻沒有須要附加的信息加以解釋,那末就沒緊要。你沒有須要(也不該該)把體系的行動限定得過火。

  6. 你的需求是不是可測試?(這裡指的是黑盒測試)假如沒有是,你最好返回到第4步。假如這類返工產生許多次,那就解釋你的黑盒沒法準確描寫體系,大概你的測試對象不敷優良。不管是哪一種情形,弗成測試的需求文檔險些就是一文沒有值的。

  7. 你的需求文檔普通易懂麼?假如你的需求文檔異常難以讀懂,那就解釋你寫得欠好,隻能給那些照著你的需求賣力實行的人帶來無盡的苦楚。假如是如許,回到第3步。

  8. 你是否是真的做到瞭第4步?你確認麼?再檢討一下。

  例子:上面的例子,讓我們描寫一個克己的嵌入式裝備的需求,這個裝備能從曲折傳感器上讀取曲折的頻次,並依據分歧的頻次值讓一個LED閃耀。

  明顯,我們已完成瞭步調2和步調3瞭!

  • 輸入:從曲折傳感器讀取數據。

  • 輸出:LED。

  然則我們跳過瞭步調1:

  • 在這個例子裡,我們將把黑盒畫到裝備的微處置器上。

  讓我們持續往下舉行,

  第四步:除輸入和輸出之外,我們是不是還觸及瞭其他的體系界限?

  • 微處置器其實不關懷從曲折傳感器讀取甚麼樣的數據,從處置器的角度來看,僅須要做的是丈量ADC腳的電壓罷瞭。

  • LED僅由數字輸出腳掌握。

  上面,讓我們來修改這個題目:

  第0版本的需求:

  1. 該裝備應該依據ADC腳的分歧頻次的電壓,來切換數字輸出真個狀況。

  第五步:需求寫含糊其詞麼?

  恩,我們的描寫太含糊其詞瞭。輸出端切換的速率要多快? 跟電壓的幹系若何? 輸入電壓的規模是若幹? 讓我們加一些更細節的描寫吧:

  版本0.1

  1. 輸出端應該由一個自在運動的準時器舉行掌握

  2. 自在運轉準時器的頻次最高沒有得高於每秒10次,沒有得低於每秒1次。

  3. 自在運轉準時器的觸發頻次應該在最高和最低值之間呈線性變更,並與ADC真個輸入電壓成反比。

  4. ADC真個輸入電壓應該每100毫秒讀取一次

  5. 當ADC真個輸入電壓端被讀入時,掌握自在運轉準時器周期時光的註冊值也應該被更新。

  6. ADC輸入真個電壓有用規模應該被掌握在0到1伏之間。

  第六步:你的需求是可測試的麼?

  • 起首,自在運轉的準時器在這裡沒有須要說起。 由於對它根本上沒法舉行黑盒測試,它既沒有是輸入也沒有是輸出,並且跟這二者也沒有甚麼接洽。

  讓我們用數字輸出端變更的頻次應掌握在每秒10次和每秒1次之間來取代自在運 行準時器的測試尺度。

  • 對付上述的第四條需求,大概須要一些小修正能力作為測試尺度。讓我們用ADC真個輸入電壓應該包管在每100毫秒內最少被讀取一次來加以描寫,如許的描寫能讓我們預期的測試行動顯得加倍普通易懂。

  • 需求的第五條也須要一些小修正。我們若何能力檢測電壓的輸出規模是在0到1伏之間呢? 總不克不及給個2伏的電壓,然後看看元器件有無被銷毀吧?

  那末,說磨練體系在ADC端輸入電壓為1到2伏之間的時刻,事情是不是一般,如許就磨練就輕易多瞭。需求描寫應該是正面的,應該描寫裝備應當的行動,而沒有是裝備不該該的行動。不然的話,測試將會沒法舉行。

  版本0.2

  1. 數字輸出真個切換頻次應該掌握在每秒10次到每秒1次之間

  2. 數字輸出真個切換頻次應該在最大值和最小值之間呈線性變更,並與ADC真個輸入電壓成反比

  3. ADC真個輸入電壓應該包管在每100毫秒內最少被讀取一次

  4. 磨練當ADC真個輸入電壓規模在0到1伏之間的時刻,體系事情是不是一般

  第七步:你的需求是不是普通易懂?

  比擬於我們本來的描寫:依據曲折傳感器的輸出分歧頻次來掌握LED閃耀,我們上面的那些需求描寫顯得難以瀏覽和懂得。

  我發明,讓需求文檔變得普通易懂,最簡略方法莫過於,把過於細節的器械抽掏出來,然後以條目標情勢零丁界說。

  版本1

  1. 曲折傳感器應該包管最少在100毫秒內讀取一次數據(放到解釋零丁列出)

  2. 切換LED的狀況,使其與曲折傳感器的讀數堅持同等

  3. 當曲折傳感器的讀數為1伏特時,LED狀況切換的次數應該堅持在均勻一秒十次;當傳感器的讀數為0伏特時,LED的切換次數應堅持在一秒1次。

  界說:

  • 曲折傳感器:輸入電壓位於ADC的X端。平安電壓規模為0到1伏特(放到解釋零丁列出)

  • LED狀況:數字狀況由Y端輸出

  如許就很多多少瞭(隻管還沒有完善)。這些需求普通易懂,沒有觸及到體系內部完成,且易於測試。對付體系行動的限制也僅僅限於須要做甚麼,點到為止。(比方,對曲折傳感器的采樣頻次,在完成上也能夠更高,隻要沒有發生非預期行動,統統都能夠)。

  編寫需求就好像是在大腦中構建軟件的進程。是以要重於履行操縱。

  英文原文:Job Vranish 編譯:伯樂在線 – 黃小非

Comments are closed.