非功能需求

非功能需求喺工程學，係泛指一個系統唔係功能需求嘅其他需求。

例如喺軟件工程上，無論一隻軟件係攞嚟做乜嘅，軟件工程師一般都會希望隻軟件具有以下嘅特性。呢啲响功能以外、但一隻軟件需要有嘅特性就係所謂嘅非功能需求：

軟件內部

可測試度：指一隻軟件要容易做測試－喺整好咗隻軟件嘅原型之後就要做測試搵吓隻軟件有冇錯處；舉個簡單例子，軟件工程師可以要隻軟件記低啲 log，而呢點會幫軟件工程師手搵出錯處喺邊。

可維護度：指嗰個程式有幾易可以俾現時或者將來嘅編程員攞去改良、執錯或者調較。高嘅可維護度對於普通嘅用家嚟講重要性唔係咁明顯，但就對一個程式長遠嘅命運同價值嚟講就好緊要－具有高可維護度嘅程式往往會俾人攞去改完又改，因而有一個更活躍嘅用家群。
可移植度：指嗰個程式嘅源碼可以喺幾廣泛嘅電腦硬件同作業系統上面行，一個完美可移植嘅程式能夠喺任何電腦上面行。可移植度由好多因素話事，例如係有啲程式可能用咗一啲比較專業嘅指令，而呢啲指令專業得滯，未必部部電腦都有安裝呢啲指令－噉就會搞到個程式喺某啲電腦上面行唔到。
可返用度：指隻軟件或者隻軟件啲組成部份可以攞去返用－喺軟件工程師做嘢嗰時，佢哋要設計完一隻軟件跟住去設計下一隻，而事實表明咗，有好多演算法同子程序都係唔同嘅軟件都會用到嘅，所以一位軟件工程師做嘢嗰陣成日都會諗起而家整緊嗰隻軟件可以用返某啲打前整過嘅軟件用過嘅嘢；因為噉，軟件工程師通常都會特登將隻軟件整到裏面啲嘢可以輕易噉攞去返用。例子可以睇吓電子遊戲製作當中嘅遊戲資產。

軟件外部
效率：指個程式用咗幾多資源。呢度嘅「資源」包括咗時間、電腦記憶、同埋係網絡頻寬等等。一個理想嘅程式能夠好好噉管理佢有嘅資源，例如係唔好俾漏記憶嘅情況發生，並且用最少嘅資源做最多嘅嘢。可以運算複雜度方面嘅內容。
可靠度：指個程式有幾常會俾到啱嘅結果，一個完美可靠嘅程式係每次行嗰陣都會成功俾到正確輸出嘅， ；可靠度取決於啲演算法喺概念上嘅正確同寫程式嘅過程當中有冇出錯，唔可靠嘅程式成日會有競爭危害或者緩衝區溢位等嘅問題－即係話如果有呢類問題出現，噉通常表示個程式寫得唔好。
頑健度：指個程式有幾能夠預測同應對一啲佢自身以外嘅差錯，包括輸入嘅資料唔啱款、要用嘅資源唔夠用以及係用家方面嘅出錯呀噉。一個強健嘅程式能夠喺佢自己以外嘅嘢出錯嗰陣有方法應對－簡單講可以想像成「if 有問題，then 用噉噉噉嘅步驟嚟應對」，至少唔會搞到輕機。

易用度：指一個普通嘅用家有幾易可以正確噉運用呢個程式。一個易用嘅程式會寫得好清楚、冇啲唔等使嘅指令、仲會有好多附加嘅內文嚟解釋每段指令係為乜而存在嘅；呢啲因素令到經驗冇咁豐富嘅編程員或者冇份寫嗰個程式嘅編程員能夠一睇就知嗰個程式做緊啲乜嘢，第時有其他人接手隻軟件嗰陣就冇咁撈絞。人機互動呢門專係研究點樣令電子架生更加易用嘅電腦科學領域對易用度有詳細嘅研究。

... 等等。

功能需求

攷

軟件工程
系統工程