衆所周知,隨着互聯網和信息技術的發展,軟件、應用或APP已經進入了爆發式增加的階段。對於他們而言,功能性和非功能性是體現核心競爭力的兩個方面,功能性比較容易理解,而非功能性主要指速度、是否高可用、設計是否人性化……今天就結合DevOps來談一談對應用非功能性需求的一些認識。瀏覽器
關於非功能需求都包括哪些「軟」指標,能夠經過ISO/IEC 25010 軟件質量管理模型瞭解一下。從圖中咱們能夠看到,除了功能性外,影響軟件產品質量的關鍵因素還包括效率、兼容性、易用性、安全性、可靠性、可維護性和可移植性7個維度,每一個維度又包括了許多方面,涉及到架構、內容、交互、運營、安全等,這些都屬於非功能需求的範疇。在get了這些需求後,如何去實現他們,又是一個比較頭疼的問題了。
安全
ISO/IEC 25010 軟件質量管理模型服務器
要想實現應用的非功能性需求,就要打穿部門之間的壁壘,讓不一樣的部門同時參與,互相協做。由於這些需求放在哪裏、哪一個部門、哪一個階段貌似都不能一勞永逸,高枕無憂,由於有的需求須要的是服務器資源,如「支持動態用戶1500以上」,有些需求須要的是開發過程解決,好比「系統支持多種瀏覽器」,還有的需求是須要應用發佈以後,運維團隊來實現,好比「普通修改一天內完成」,再有甚者,須要多種資源,多個團培配合着來,好比「應用熱點/流量熱點分析」等。
架構
多部門協做以實現應用的非功能性需求運維
當多個部門共同參與開發應用的非應用型需求,這種文化氛圍與DevOps異曲同工。在DevOps的文化裏,不牢牢的打通了運維與開發的屏障,更是將各個階段造成了一個生生不息的循環,造成一個持續集成、持續交付的生態,若是說DevOps是一種文化,一種氛圍,追求高品質的App是目的,那麼,努力發展非功能需求的實現及優化則是一種行之有效的手段。
因爲實現了非功能需求的服務化,在一個良好的DevOps的氛圍裏,咱們甚至能夠利用這些服務來作在線BI甚至精準營銷,由運營側提出需求,指定基於App的用戶行爲分析圖,而後分析收集的數據,反向推進優化非功能需求的實現甚至是主線功能需求的優化,從而達到提高客戶滿意度,提高市場佔有率的目的。因爲咱們已經打通了應用交付服務的關節,因此這些數據和分析與每一個部門各自爲戰比起來,要精準、快速、高效的多。
優化
DevOps提高應用品質設計
以上就是我結合DevOps文化對應用非功能性需求的實現的一些想法,在應用同質化加重的狀況下,非功能性需求這個「軟服務」會給用戶提供更好的應用體驗。blog