軟件設計時往往最多考慮的是最基本的實現需求。后來,隨著設計工具和思想的發展,
我們考慮到了可擴展,可伸縮,可維護,可管理,可靠,可使用,安全等等。這些因素
是設計過程中的非功能性的設計,因為每個產品的背景不一樣,所以,我們往往只是借助
于成熟的架構(如mvc),產品提供的性能(容器的事務,安全等能力)等,簡單的實現
了一些解決非功能性需求。從來沒有很仔細的考慮過自己的產品中如何來進行這些需求的
設計。
根據經驗,下面簡單討論一下。
一個軟件產品所運行的環境有二,一是硬件環境,二是軟件環境(操作系統,數據庫系統,中間件)。
那么我們就從這兩個方面入手,進行一下非功能需求設計的討論。
1,硬件產品的資料統計,和運行平臺的界定。對潛在用戶的運行平臺進行大范圍的統計。并
最終確定出共性。
2,從性能角度,考慮硬件的橫向(和軟件的集群有關)和縱向升級。來解決產品的性能(擴展和伸縮)問題。
3,硬件產品的安全來解決部分產品的安全問題
4,操作系統的支持和兼容
5,中間件(消息,安全,事務)的支持和兼容,同時考慮集群問題。
6,數據庫系統的兼容以及利用數據庫的性能解決部分問題
我們考慮到了可擴展,可伸縮,可維護,可管理,可靠,可使用,安全等等。這些因素
是設計過程中的非功能性的設計,因為每個產品的背景不一樣,所以,我們往往只是借助
于成熟的架構(如mvc),產品提供的性能(容器的事務,安全等能力)等,簡單的實現
了一些解決非功能性需求。從來沒有很仔細的考慮過自己的產品中如何來進行這些需求的
設計。
根據經驗,下面簡單討論一下。
一個軟件產品所運行的環境有二,一是硬件環境,二是軟件環境(操作系統,數據庫系統,中間件)。
那么我們就從這兩個方面入手,進行一下非功能需求設計的討論。
1,硬件產品的資料統計,和運行平臺的界定。對潛在用戶的運行平臺進行大范圍的統計。并
最終確定出共性。
2,從性能角度,考慮硬件的橫向(和軟件的集群有關)和縱向升級。來解決產品的性能(擴展和伸縮)問題。
3,硬件產品的安全來解決部分產品的安全問題
4,操作系統的支持和兼容
5,中間件(消息,安全,事務)的支持和兼容,同時考慮集群問題。
6,數據庫系統的兼容以及利用數據庫的性能解決部分問題