引言
“我是誰?我從哪里來?要到哪里去?”,被西方人稱為哲學(xué)上的三個終極之問,根據(jù)這個套路,我門來分析下軟件研發(fā)過程中的非功能性需求。
我是誰?
它是軟件質(zhì)量的一個重要衡量指標,用于在度量系統(tǒng)在實現(xiàn)完系統(tǒng)性功能以后,交付及運行過程中的系統(tǒng)技術(shù)面要求的達成度,比如典型的三“高”要求;
它也是項目管理過程中甲方對乙方系統(tǒng)研發(fā)過程中提出的“設(shè)計約束”,諸如:開發(fā)平臺、技術(shù)流派、關(guān)鍵實現(xiàn)等等方面的要求;
目前業(yè)界關(guān)于軟件的非功能需求,一般就包括:質(zhì)量屬性要求和約束性要求;
從哪里來?
非功能性需求作為功能性需求的補充,如其定義的那樣主要保障了系統(tǒng)功能的正常并且穩(wěn)定運行,它具有普適性,來源于傳統(tǒng)行業(yè)的工作模式沉淀和提升。
到哪里去?
非功能性指標去往何方?一般系統(tǒng)架構(gòu)人員需要特別關(guān)注,他將對系統(tǒng)架構(gòu)階段進行分析設(shè)計并落地到具體的方面指標。
一、性能指標
1、響應(yīng)時間:指功能完成的時間,和客觀環(huán)境、數(shù)據(jù)量級、主觀感受等都有關(guān)系,比如包括:平均響應(yīng)時間參考值(秒)、峰值響應(yīng)時間參考值(秒)。
2、吞吐量:給定時間內(nèi)系統(tǒng)可處理的事務(wù)/請求的數(shù)量等,比如QPS、TPS;
3、并發(fā)用戶數(shù):用來衡量系統(tǒng)的同步協(xié)調(diào)能力,我們更關(guān)注多個用戶同時操作同一功能或數(shù)據(jù)時,對系統(tǒng)性能的影響,有以下指標:總用戶數(shù)、峰值在線用戶數(shù)、峰值[并發(fā)用戶數(shù) 、平均在線用戶數(shù)、平均并發(fā)用戶數(shù)。
4、數(shù)據(jù)存儲增量:每年的數(shù)據(jù)存儲容量(G)及未來幾年該數(shù)量的預(yù)期(增長)值。指標包括累計存儲容量(G)、年增長(G)
二、系統(tǒng)可靠性:
1、工作時間
滿足業(yè)務(wù)的工作時間,一周到周五還是7×24小時;
2、災(zāi)備恢復(fù)時間
當(dāng)系統(tǒng)故障,相關(guān)系統(tǒng)基礎(chǔ)設(shè)施(中間件、數(shù)據(jù)存儲、網(wǎng)絡(luò)設(shè)施等)的恢復(fù)時間,核心指標:RTO,RPO;
RTO用于衡量業(yè)務(wù)從停頓到恢復(fù)的所需時間,RPO用于衡量業(yè)務(wù)恢復(fù)所允許丟失的數(shù)據(jù)量。
三、可擴展性
1、彈性
負載均衡支持彈性擴容或縮容機器,業(yè)務(wù)流量切換順滑,無影響;
2、兼容性
對于不同終端類型、版本的系統(tǒng)兼容性;
四、運維面
1、可運維
日志查詢、系統(tǒng)參數(shù)修改、配置文件運行時更新、服務(wù)器監(jiān)控告警、通知發(fā)送、運行時數(shù)據(jù)統(tǒng)計分析等;
2、運維易用性
運維不單提供系統(tǒng)人員,對業(yè)務(wù)人員友好性也需要考慮,包括UI、交互流程等于功能性要求有重合;
五、安全性
1、系統(tǒng)安全規(guī)范
架構(gòu)面引入相關(guān)安全基礎(chǔ)設(shè)施,加密機、CA中心、U盾等;
框架面定義安全技術(shù)規(guī)范、使用的技術(shù)框架,比如加密策略、加密算法,用戶權(quán)限管理框架選型等;
功能設(shè)計面剝離安全性設(shè)計,進行單獨設(shè)計,應(yīng)對后續(xù)的安全漏洞,如AOP或者設(shè)計新的安全組件包等;
2、補丁自動升級
對于獨立的安全設(shè)計,支持運行時的安全策略、算法、開關(guān)的升級,支持降級服務(wù)等;
參考資料
1、百度百科https://baike.baidu.com/item/%E9%9D%9E%E5%8A%9F%E8%83%BD%E6%80%A7%E9%9C%80%E6%B1%82/8403760
2、災(zāi)備系統(tǒng)的衡量指標有哪些?不止RPO、RPO https://www.talkwithtrend.com/Article/247451