非功能性要求
非功能需求(NFR)定義系統(tǒng)屬性岗憋,例如安全性肃晚,可靠性,性能仔戈,可維護(hù)性关串,可伸縮性和可用性。它們作為跨越不同待辦列表的系統(tǒng)設(shè)計(jì)的約束或限制监徘。
非功能性需求也稱為系統(tǒng)質(zhì)量晋修,它與功能性Epics,Capabilities凰盔,F(xiàn)eatures和Stories一樣重要墓卦。它們確保整個(gè)系統(tǒng)的可用性和有效性。未能滿足非功能性需求中的任何一個(gè)都可能導(dǎo)致系統(tǒng)無法滿足內(nèi)部業(yè)務(wù)廊蜒,用戶或市場(chǎng)需求趴拧,或者不符合監(jiān)管機(jī)構(gòu)或標(biāo)準(zhǔn)機(jī)構(gòu)強(qiáng)制要求的系統(tǒng)溅漾。
NFR是持久性質(zhì)量和約束山叮,與功能要求不同,它們通常作為每個(gè)迭代添履,項(xiàng)目群增量(PI)或發(fā)布的完成定義(DoD)的一部分重新回顧屁倔。NFR存在于所有待辦列表中:團(tuán)隊(duì),計(jì)劃暮胧,解決方案和投資組合锐借。
NFR的正確定義和實(shí)施至關(guān)重要问麸。過度指定它們,解決方案可能成本太高而無法生存; 指定不足或低于它們钞翔,系統(tǒng)將不適合其預(yù)期用途严卖。探索,定義和實(shí)施NFR的自適應(yīng)和增量方法是敏捷團(tuán)隊(duì)的一項(xiàng)重要技能布轿。
細(xì)節(jié)
考慮影響解決方案整體適應(yīng)性的所有類型需求的一種方法是*管理要求 * [5]中描述的“FURPS”分類:功能哮笆,可用性,可靠性汰扭,性能和可支持性
功能需求主要表現(xiàn)在用戶故事以及功能和功能中稠肘。這是大多數(shù)工作發(fā)生的地方。團(tuán)隊(duì)構(gòu)建了為用戶提供價(jià)值的系統(tǒng)萝毛,解決方案開發(fā)的大部分時(shí)間和精力都致力于此项阴。
FURPS是非功能需求的占位符。雖然它們可能有點(diǎn)微妙笆包,但NFR對(duì)系統(tǒng)成功同樣重要环揽。NFR可以被認(rèn)為是對(duì)新開發(fā)的限制,因?yàn)槊總€(gè)NFR都為構(gòu)建系統(tǒng)的人消除了一定程度的設(shè)計(jì)自由度庵佣。例如薯演,基于SAML的單點(diǎn)登錄(SSO)是套件中所有產(chǎn)品的要求。(SSO是功能要求秧了,而SAML是約束跨扮。)
NFR可以涵蓋廣泛的業(yè)務(wù)關(guān)鍵問題,這些問題通常很難通過功能要求來解決验毡。作為對(duì)系統(tǒng)設(shè)計(jì)人員的提醒衡创,[1]中描述了這種潛在NFR的綜合列表。
NFR發(fā)生在所有級(jí)別
NFR與SAFe各級(jí)的待辦列表相關(guān)晶通,如圖1所示璃氢。
<figcaption class="wp-caption-text">圖1. NFR發(fā)生在所有級(jí)別</figcaption>
由于NFR是敏捷發(fā)布系列(ART)和價(jià)值流創(chuàng)建的解決方案的重要屬性,因此它們最明顯的表現(xiàn)形式是程序和大型解決方案級(jí)別狮辽。系統(tǒng)和解決方案架構(gòu)師和工程師通常負(fù)責(zé)定義和完善這些NFR一也。
所有團(tuán)隊(duì)都必須了解他們?yōu)橄到y(tǒng)創(chuàng)建的特殊屬性。加速NFR測(cè)試喉脖,而不是推遲測(cè)試椰苟,有助于培養(yǎng)內(nèi)置質(zhì)量實(shí)踐。團(tuán)隊(duì)將相關(guān)的NFR納入其國防部树叽,將其用作本地設(shè)計(jì)和實(shí)施決策的約束舆蝴,并自行負(fù)責(zé)某些級(jí)別的NFR測(cè)試。否則,該解決方案可能不滿足關(guān)鍵NFR洁仗,并且在該過程的后期發(fā)生的校正成本可能非常高层皱。
此外,團(tuán)隊(duì)待辦列表NFR也很重要赠潦,因?yàn)樗鼈儠?huì)對(duì)出現(xiàn)的功能和子系統(tǒng)產(chǎn)生約束和性能要求叫胖。
投資組合待辦列表可能也需要NFR。這通常是跨系統(tǒng)質(zhì)量的情況她奥,例如單點(diǎn)登錄情況臭家。其他示例包括對(duì)開源使用,安全要求和監(jiān)管標(biāo)準(zhǔn)的限制方淤。如果尚未實(shí)現(xiàn)特定的投資組合級(jí)別NFR钉赁,則可能需要 啟動(dòng) 器實(shí)施它。NFR在“史詩假設(shè)陳述”中定義携茂,用于描述商業(yè)和推動(dòng)者史詩你踩。
NFR作為待辦列表的約束
NFR在框架中被建模為待辦列表約束,如圖2所示讳苦。
此外带膜,SAFe需求模型 指定NFR可以約束零,一些或許多待辦列表項(xiàng)目鸳谜。此外膝藕,為了知道系統(tǒng)符合約束,大多數(shù)NFR需要一個(gè)或多個(gè)系統(tǒng)質(zhì)量測(cè)試咐扭,如圖3所示芭挽。
許多NFR都是需要解決的推動(dòng)因素蝗肪。之后袜爪,他們會(huì)限制系統(tǒng)和所有新的待辦列表項(xiàng)目。
NFRs對(duì)解決方案開發(fā)的影響
非功能性需求可能對(duì)解決方案開發(fā)和測(cè)試產(chǎn)生重大影響薛闪。NFR很難指定; 太容易過火了辛馆。例如,像“99.999%可用性”這樣的聲明可能會(huì)比“99.98%的可用性”指數(shù)級(jí)地增加開發(fā)工作量豁延。有時(shí)這是必要的昙篙,有時(shí)則不是。但是那些定義要求的人必須很好地理解NFR的影響诱咏。類似地苔可,如果沒有給予足夠的考慮,諸如重量胰苏,體積或電壓的物理約束可能導(dǎo)致解決方案過于復(fù)雜和昂貴硕蛹。
解決方案的經(jīng)濟(jì)框架應(yīng)包含評(píng)估NFR的標(biāo)準(zhǔn)。應(yīng)在與成本和其他考慮因素進(jìn)行權(quán)衡的背景下看待NFR硕并。NFR也影響供應(yīng)商法焰,因?yàn)樗鼈儾徽_地宣布它們,或者沒有經(jīng)濟(jì)框架的完全權(quán)衡后果倔毙,可能導(dǎo)致不必要的復(fù)雜和昂貴的系統(tǒng)和組件埃仪。
定期重新評(píng)估NFR也很重要。與其他要求不同陕赃,NFR是待辦列表的持久約束卵蛉,而不是待辦列表項(xiàng)本身。因此么库,在PI Planning期間傻丝,它們可能并不總是出現(xiàn)。但NFR在開發(fā)過程中確實(shí)會(huì)發(fā)生變化诉儒,因此確保它們得到解決非常重要葡缰。
NFR和解決方案意圖
解決方案Intent是解決方案的唯一真實(shí)來源。因此忱反,它包括NFR以及功能要求泛释。它還包括NFR之間的鏈接,它們影響的要求以及用于驗(yàn)證它們的測(cè)試温算。NFR在理解固定與可變解決方案意圖的經(jīng)濟(jì)學(xué)方面發(fā)揮著關(guān)鍵作用怜校。
在早期,一些功能尚不清楚注竿,需要在開發(fā)期間與客戶進(jìn)行測(cè)試和協(xié)商茄茁。NFR也是如此。有些是固定的巩割,事先眾所周知; 其他人將隨著解決方案而發(fā)展胰丁。
通過施加約束,NFR可能影響廣泛的系統(tǒng)功能喂分。因此锦庸,在以下情況下,它們是需要考慮的重要因素:
- 分析業(yè)務(wù)史詩蒲祈,功能和功能
- 規(guī)劃和建造 建筑跑道
- 重構(gòu)以更好地反映不斷增加的解決方案領(lǐng)域知識(shí)
- 對(duì)制造甘萧,部署,支持梆掸,安裝扬卷,可維護(hù)性等施加DevOps限制
用于幫助開發(fā)解決方案意圖的工具提供了一些機(jī)制來建立定義和實(shí)施NFR的經(jīng)濟(jì)方法:
- 合規(guī)性 - 這證明系統(tǒng)或解決方案符合法規(guī),行業(yè)和其他相關(guān)標(biāo)準(zhǔn)和準(zhǔn)則
- 基于模型的系統(tǒng)工程(MBSE) - MBSE可用于模擬NFR的影響酸钦,并可鏈接到驗(yàn)證它們的測(cè)試
- 基于集合的設(shè)計(jì)(SBD) - SBD為實(shí)現(xiàn)NFR提供了不同的選項(xiàng)怪得,可以指導(dǎo)一系列邊緣案例測(cè)試以支持設(shè)計(jì)決策
指定NFR
與所有其他要求一樣,必須對(duì)NFR進(jìn)行量化,以確保每個(gè)人都能清楚地理解利益相關(guān)者的愿望徒恋。[3]中的圖5量化了NFR要求蚕断。第1步定義NFR的質(zhì)量,包括其名稱入挣,規(guī)模和測(cè)量方法亿乳。第2步量化NFR的可測(cè)量值,包括當(dāng)前測(cè)量值(基線)径筏,要達(dá)到的值(目標(biāo))葛假,變得不可接受的值(約束)。圖5中的示例顯示了自動(dòng)駕駛車輛速度限制檢測(cè)的可測(cè)量效率滋恬。平均而言聊训,用戶當(dāng)前手動(dòng)設(shè)置每英里的速度.1時(shí)間,從而覆蓋自動(dòng)化解決方案恢氯。新系統(tǒng)功能將提高到每英里0.01倍魔眨,但在實(shí)施過程中不應(yīng)低于每英里.15次。
考慮以下標(biāo)準(zhǔn)有助于定義NFR:
- 有界 - 當(dāng)他們?nèi)狈τ邢薜谋尘皶r(shí)酿雪,一些NFR是無關(guān)緊要的(甚至是有害的)遏暴。例如,性能考慮因素對(duì)于主應(yīng)用程序而言可能是至關(guān)重要的指黎,但對(duì)于管理和支持應(yīng)用程
- 獨(dú)立 - NFR應(yīng)相互獨(dú)立朋凉,以便在不考慮或影響其他系統(tǒng)質(zhì)量的情況下對(duì)其進(jìn)行評(píng)估和測(cè)試。
- 可協(xié)商 - 了解NFR業(yè)務(wù)驅(qū)動(dòng)因素和有限的上下文要求可轉(zhuǎn)讓性醋安。
- 可測(cè)試 - NFR必須以客觀杂彭,可測(cè)量和可測(cè)試的標(biāo)準(zhǔn)陳述,因?yàn)槿绻鸁o法測(cè)試吓揪,則無法發(fā)貨亲怠。
實(shí)施方法
許多NFR規(guī)定必須進(jìn)行一些額外的工作 - 無論是現(xiàn)在還是將來 - 以滿足它們。有時(shí)NFR必須一次全部實(shí)施; 其他時(shí)候柠辞,團(tuán)隊(duì)可以采取更多的增量方法团秽。經(jīng)濟(jì)框架中描述的權(quán)衡取決于實(shí)施方法。實(shí)施應(yīng)該以允許幾個(gè)學(xué)習(xí)周期來確定NFR的正確水平的方式進(jìn)行叭首。
- 一下子 - 一些NFR似乎是新的問題习勤,需要立即實(shí)施。例如焙格,衍生品交易的新監(jiān)管規(guī)則图毕,如果不立即適應(yīng),可能會(huì)使公司完全退出市場(chǎng)或?qū)е卤O(jiān)管違規(guī)眷唉。
- 逐步增加的故事路徑 - 在其他時(shí)候予颤,團(tuán)隊(duì)可以選擇囤官。例如,如圖6所示蛤虐,可以隨著時(shí)間的推移處理對(duì)顯著改善的性能的需求党饮,一次一個(gè)故事。
NFR的實(shí)施也受到ART組織方式的影響笆焰。圍繞建筑層構(gòu)建的ART將發(fā)現(xiàn)完整地實(shí)施和測(cè)試NFR具有挑戰(zhàn)性劫谅。然而见坑,圍繞能力組織的火車將更容易實(shí)施嚷掠,測(cè)試和維護(hù)系統(tǒng)性NFR。
使用Agile Architecture支持NFR的開發(fā)荞驴,并在需求發(fā)展時(shí)幫助保持靈活性不皆。
測(cè)試非功能需求
當(dāng)然,要知道系統(tǒng)符合NFR熊楼,必須對(duì)其進(jìn)行測(cè)試霹娄。敏捷測(cè)試象限的象限4 ,'系統(tǒng)質(zhì)量測(cè)試'是大多數(shù)NFR測(cè)試的基礎(chǔ)鲫骗。由于其范圍和重要性犬耻,NFR測(cè)試通常需要系統(tǒng)團(tuán)隊(duì)和敏捷團(tuán)隊(duì)之間的協(xié)作。為了防止技術(shù)債務(wù)执泰,團(tuán)隊(duì)?wèi)?yīng)盡可能自動(dòng)化枕磁,以便這些測(cè)試可以連續(xù)運(yùn)行,或至少按需運(yùn)行术吝。
然而计济,隨著時(shí)間的推移,即使在自動(dòng)化的情況下排苍,越來越多的回歸測(cè)試可能會(huì)消耗太多的處理時(shí)間和太多的資源沦寂。更糟糕的是,它可能意味著NFR測(cè)試可能僅在某些情況下或僅與專業(yè)資源或人員一起實(shí)用淘衙。為了確保實(shí)用性和持續(xù)使用传藏,團(tuán)隊(duì)通常需要?jiǎng)?chuàng)建簡化的測(cè)試套件和測(cè)試數(shù)據(jù),如圖7所示彤守。
雖然部分測(cè)試聽起來不太理想,但它有助于提高系統(tǒng)質(zhì)量:
- 當(dāng)團(tuán)隊(duì)可以在本地應(yīng)用簡化的測(cè)試套件時(shí)遗增,他們可能會(huì)發(fā)現(xiàn)測(cè)試數(shù)據(jù)或測(cè)試方法的不一致
- 團(tuán)隊(duì)可以創(chuàng)建新的和獨(dú)特的測(cè)試叫惊,其中一些可以被系統(tǒng)團(tuán)隊(duì)采用以幫助構(gòu)建更大的集合
- 測(cè)試基礎(chǔ)架構(gòu)和配置可能會(huì)持續(xù)改進(jìn)
- 團(tuán)隊(duì)對(duì)NFR的影響有了實(shí)際的了解,這有助于改進(jìn)業(yè)務(wù)和啟動(dòng)器功能的估算
即使如此做修,在某些情況下霍狰,可能無法每天提供可以測(cè)試NFR的環(huán)境(例如抡草,車輛引導(dǎo)軟件的現(xiàn)場(chǎng)測(cè)試)。在這些情況下蔗坯,可以使用以下方法[4]:
- 使用虛擬化硬件
- 創(chuàng)建模擬器
- 創(chuàng)建類似的環(huán)境
在所有情況下康震,有效地測(cè)試NFR需要一些思考和創(chuàng)造力。另一方面宾濒,缺乏NFR測(cè)試可能會(huì)增加大量技術(shù)債務(wù)或更糟糕的系統(tǒng)故障的風(fēng)險(xiǎn)腿短。