TRIZ在軟體設計中的思考
TRIZ是在創新領域應用非常廣泛的方法,特別是硬體設計領域的創新發揮很大作用。其中:基於39個工程引數的39*39矛盾矩陣,是專門針對硬體領域的總結。透過查表可以查到對應的40個發明原則。
在軟體領域也有類似的總結,其中阿奇舒勒的弟子們研究出來的軟體矛盾矩陣運用比較廣泛,梳理出的24個工程引數矛盾矩陣有一定的應用範圍。但面對產品,大家更多的是喜歡39個工程引數。
因為39個工程引數首先不是專門針對硬體來組織的,其實是從產品本身的工程維度的思考。而且基於裝置硬體的總結覆蓋了成千上萬的專利案例,是期初TRIZ的思考提煉,具有一定的權威性。
其實,硬體、軟體我們都可以將其看成一種設計技術,透過抽象的工程引數,即使是所謂硬體領域的39*39,也有很多可以應用到軟體領域。
本文就針對39個工程引數(所謂硬體領域),思考軟體領域的應用。
我們先從39*39工程引數的親和分類來入手,詳見下表:
39個工程引數進行分類,從幾何、物理、系統、功率、技術、測量、損失七個方面歸類,可以發現,系統、技術、測量、損失這四類是不太區分軟硬體屬性的。而幾何、物理、功率三個類別是有比較強的硬體屬性。
我們先從不區分軟硬體的四類屬性逐一分析:
系統類
作用於物體的有害因素、物體產生的有害因素。軟體對有害因素也存在同樣的作用。
30、物體影響有害因素
軟體類可以影響的有害因素是什麼呢?包括,適應性、控制的複雜性、系統複雜性、硬體成本、容易使用、彈性、時間損失、可維護性、記憶體使用量、效能、服務品質、可靠性、安全性、吞吐量、使用者容量等24類,舉個例子:軟體執行期間可能產生記憶體碎片。可以透過最佳化對系統的記憶體碎片(有害因素)產生影響。透過軟體最佳化完全可以使得系統這個有害因素減少。
31、物體產生的有害因素
當然,如果用的不好也可能惡化該指標,這就對物體產生有害因素的增加。例如:過分最佳化效能可能導致系統複雜性提升、可維護性降低。過分最佳化記憶體減少使用,可能導致吞吐量、使用者容量下降。過分彈性提升,可能導致記憶體使用量的上升。
我們再看一下其他的如:
技術類
操作時間、可靠性、強度、適用性和通用性、可製造性/可操作性/可維護性、製造精度、複雜性、自動化、生產率、穩定性(物件)。
基本上都是軟體的可服務等屬性設計(DFx)需要考慮的範疇。這裡我們可舉幾個例子。操作時間,這個引數在軟體系統上也可理解為處理業務的時間效率。
比如:業務轉發效率,通訊協議報文的傳輸效率等。軟體最佳化在轉發效率(吞吐量、傳輸時間)、傳輸可靠性等方面發揮巨大作用。
系統的強度?可以理解為處理高峰業務的彈效能力,以及受到攻擊時的韌性,使得系統仍然能持續工作。
測量類
測量必要性、測量精度。軟體的監控系統、系統執行效率的檢測系統就是這類,還包括TCP的診斷工具snoop等。軟體最佳化可以增強或減弱測量必要、測量精度。
損失類
能量損失、物質損失、資訊損失、時間損失。能量、物質損失初一看似乎與軟體沒什麼關係。
其實從軟體作用物件與業務量看,軟體最佳化可以提升單位業務的計算量也就降低了能量損耗(使得CPU利用率提升,耗用的能量自然減少)。
物質損失類也一樣看上去像硬體的,但從軟體使能角度可以看成軟體最佳化佔用記憶體、硬碟減少,反過來思考實際就是減少了儲存資源的損失。
資訊可以類比成:報文傳輸、頻寬容量。時間可以類比為處理效率、頻率等。
剛才從四類軟體很可能相關的引數進行了闡述。即使是物理引數類似這種一看就是
硬體領域的引數,實際上也很可能與軟體有一定的相關性。我們來看看:
物理引數:重量、速度、力、應力/壓強、溫度、光照度。速度這個引數,我們可以理解為軟體處理速度,作業處理效率。
其他引數不逐一分析,總之抽象到一定程度多少能與軟體有點相關性,並不是之前的似乎與軟體沒什麼關係的感覺。
下面我們一起再看看40個發明原則:
其中很多有與物理先關的,如:14球面化。與機械相關的28更換機械系統等於軟體相差甚遠。但也有不少僅反映邏輯方面的,如:1分割、23回饋、24中介物、26複製這些都與軟體深度應用。
例如1分割:虛擬或實際地將系統分割成幾個部分的程式,以隔離或整合某種有害或有用的系統性質。
這是TRIZ的定義,其中,軟體的故障隔離設計,軟體架構的微服務,都屬於分割隔離的思想。
當然,微服務“分割”指的是元件化架構的拆分,僅體現出他的實現思想,其中還要更多的細節需要軟體專家去思考。
如:微服務是否需拆分解耦,重點考慮:是否需要獨立開發、驗證的要求;與其他服務靈活組合編排的要求;執行時期有效隔離要求;業務波峰波谷明顯,需要彈性伸縮、獨立演進升級、灰度分佈要求等。
邏輯抽象的發明原則當然沒有區分軟體硬體,這個好理解。其實軟體類有不少不僅需考慮軟體,很多是軟硬結合的系統思維。所以即使硬體類的發明原則,物理、化學類的,也可以嘗試從軟體的角度思考,是否可以應用。我們舉個例子。
例如12等位性:在系統內部建立相關性,使系統可以支援等位能狀態。初看似乎屬於存在物理位置的方法。但細想其實我們可以抽象成:最少能量原則,集中同一區域一次把事情處理好---等位-位置不變,自己搞定。本地更新也有這個意思。
例如:磁碟刪除,如果馬上刪除檔案,然後回收磁碟空間。不少作業系統實現成首先僅刪除檔案頭的幾個位元組資訊,邏輯上表示檔案被刪除了,但介質上檔案內容還在。新檔案寫的時候就可以直接在這個區域覆蓋內容。
如果一段時間舊檔案(被刪除檔案頭位元組的)沒有被覆蓋,刪除的檔案還是可以恢復回來的。相對等位性的抽象,就是我(刪除的時候)不動位置(不刪除遠處位置的內容),讓系統自動行動。思想上借鑑了這個發明原則。
還例如:28.更換機械系統,以物理場取代機械式的互動作用,此原理實際與改變或取代操作原理有關。軟體思考為:把硬的變軟,用軟體方式替代掉專有硬體。例如:軟解壓取代硬體解壓卡。透過電磁能源取代了機械系統。
好了,總體上感覺TRIZ雖然來自裝置的創新抽象總結,在硬體設計領域應用廣泛。實際上仔細思考,軟體設計領域也有很多可以應用,特別是邏輯層面的引數和發明原則可以直接使用。
即使物理、化學領域的看上去“純硬體”的引數與發明原則,在抽象層面也有時候可以在軟體領域得到應用。多思考、多實踐,學問要融會貫通,就能學習到實質的東西,才能將方法論發揚光大。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995298/viewspace-2771802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TRIZ理論在洗碗機設計中應用探討
- 人工智慧在現代軟體架構設計中的作用人工智慧架構
- 阿里玄難:面向不確定性的軟體設計幾點思考阿里
- TRIZ理論在數字化轉型中的應用體現
- 基於TRIZ理論設計新型立體車庫
- 軟體測試過程中的痛點思考
- TRIZ在專利佈局中的應用
- 設計思維思考——遊戲中的幸福感設計遊戲
- 軟體研發之道——有關軟體的思考
- 內容型遊戲的體驗設計思考遊戲
- 關於中介軟體的思考
- 在複雜領域中設計軟體:領域驅動設計 - levelup
- 【架構設計】你真的理解軟體設計中的SOLID原則嗎?架構Solid
- 軟體設計模式設計模式
- TRIZ矛盾矩陣在專利分析中的應用矩陣
- 深度剖析:6 款辦公軟體在設計團隊協作中的核心價值
- 哪種人是軟體設計中的稀缺型人才?
- 在Linux中,開源軟體和自由軟體的區別?Linux
- 軟體架構, 軟體框架,設計模式的區別架構框架設計模式
- 秒殺系統設計中的業務性思考
- 遊戲思考:什麼是好的掩體設計(cover)遊戲
- 基於TRIZ理論的筷子儲存盒設計
- 中國的頂級軟體程式設計工程師和歐美的頂級軟體程式設計工程師差距有多大?程式設計工程師
- 設計模式——代理模式的思考設計模式
- 淺談軟體開發中的防禦式程式設計程式設計
- 六西格瑪設計在軟體研發領域的應用
- 軟體設計原則
- 軟體設計師:UML
- 電路設計軟體
- 軟體測試設計
- Principle:專為Mac設計的UI原型設計軟體MacUI原型
- 在Linux中安裝軟體Linux
- 總體設計(軟體專案)
- 《Clash Heroes》目標體驗思考及設計反思
- 論軟體的可靠性設計
- 讀軟體設計的要素01概念
- 設計團隊管理用的軟體
- 個人成長中,關於規劃設計的思考