軟件領(lǐng)域也有類似的總結(jié),其中阿奇舒勒的弟子們開發(fā)的軟件矛盾矩陣應(yīng)用廣泛,整理出來的24 工程參數(shù)矛盾矩陣都有一定的應(yīng)用范圍。但說到產(chǎn)品,人們更喜歡39個工程參數(shù)。
因為39個工程參數(shù)一開始并不是專門針對硬件來組織的,他們實際上是從產(chǎn)品本身的工程維度來思考的。而且基于設(shè)備硬件的總結(jié)涵蓋了上千個專利案例,是TRIZ當(dāng)初的思維提煉,具有一定的權(quán)威性。
其實,無論是硬件還是軟件,都可以看作是一種設(shè)計技術(shù)。通過抽象工程參數(shù),甚至硬件領(lǐng)域所謂的39*39,很多都可以應(yīng)用到軟件領(lǐng)域。
本文著眼于39個工程參數(shù)(所謂硬件領(lǐng)域),思考軟件領(lǐng)域的應(yīng)用。
讓我們從39*39 工程參數(shù)的親緣關(guān)系分類開始,如下表所示:
39個工程參數(shù)從七個方面進(jìn)行分類:幾何、物理、系統(tǒng)、功率、技術(shù)、測量和損耗??梢园l(fā)現(xiàn),系統(tǒng)、技術(shù)、計量、損耗四大類并沒有區(qū)分軟件和硬件的屬性。幾何、物理和電力具有很強(qiáng)的硬件屬性。
首先,我們分析了從不逐一區(qū)分硬件和軟件的四類屬性:
系統(tǒng)類別
作用于物體的有害因素和物體產(chǎn)生的有害因素。軟件對有害因素也有同樣的影響。
30.受物體影響的有害因素
軟件會影響哪些有害因素?包括適應(yīng)性、控制復(fù)雜性、系統(tǒng)復(fù)雜性、硬件成本、易用性、靈活性、時間損失、可維護(hù)性、內(nèi)存使用、效率、服務(wù)質(zhì)量、可靠性、安全性、吞吐量、用戶容量等。例如,在軟件運(yùn)行期間可能會產(chǎn)生內(nèi)存碎片。它可以通過優(yōu)化影響系統(tǒng)的內(nèi)存碎片(有害因素)。軟件優(yōu)化可以徹底減少系統(tǒng)的這種有害因素。
31.物體產(chǎn)生的有害因素
當(dāng)然,如果使用不當(dāng),也可能使指標(biāo)惡化,增加對對象的有害因素。例如,性能的過度優(yōu)化可能會導(dǎo)致系統(tǒng)復(fù)雜性增加和可維護(hù)性降低。過度優(yōu)化內(nèi)存和減少使用可能會導(dǎo)致吞吐量和用戶容量下降。過度的靈活性可能會導(dǎo)致內(nèi)存使用的增加。
讓我們看看其他事情,比如:
技術(shù)類
操作、可靠性、強(qiáng)度、適用性和通用性、可制造性/可操作性/可維護(hù)性、制造精度、復(fù)雜性、自動化、生產(chǎn)率和穩(wěn)定性(對象)。
基本上,它是軟件的屬性設(shè)計(DFx)中應(yīng)該考慮的一個類別,比如可維護(hù)性。這里我們可以舉幾個例子。操作時間,這個參數(shù)也可以理解為軟件系統(tǒng)中業(yè)務(wù)處理的時間效率。
例如:業(yè)務(wù)轉(zhuǎn)發(fā)效率、通信協(xié)議消息的傳輸效率等。軟件優(yōu)化對轉(zhuǎn)發(fā)效率(吞吐量、傳輸時間)和傳輸可靠性起著重要作用。
系統(tǒng)的強(qiáng)度?可以理解為處理高峰業(yè)務(wù)的靈活能力和受到攻擊時的應(yīng)變能力,使系統(tǒng)仍能持續(xù)工作。
測量等級
測量的必要性和準(zhǔn)確性。軟件監(jiān)控系統(tǒng)和系統(tǒng)運(yùn)行效率檢測系統(tǒng)就是這樣,包括TCP診斷工具snoop等。軟件優(yōu)化可以增強(qiáng)或削弱測量的必要性和準(zhǔn)確性。
損失等級
能量損失、物質(zhì)損失、信息損失和時間損失。乍一看,能源和物質(zhì)損失似乎與軟件無關(guān)。
其實從軟件目標(biāo)和業(yè)務(wù)量來看,軟件優(yōu)化可以增加單位業(yè)務(wù)的計算量,這也減少了能量損耗(CPU利用率提高,消耗的能量自然減少)。
材料損耗類別看起來也像硬件,但從軟件使能的角度來看,可以看出軟件優(yōu)化占用內(nèi)存,硬盤減少,反過來,思考現(xiàn)實實際上減少了存儲資源的損耗。
信息可以類比為:消息傳輸,帶寬容量。時間可以比作處理效率、頻率等。
剛才描述了可能與四類軟件相關(guān)的參數(shù)。即使物理參數(shù)和這個相似,乍一看也很明顯。
事實上,硬件域的參數(shù)很可能與軟件有關(guān)。讓我們看看:
物理參數(shù):重量、速度、力、壓力/壓力、溫度、光照。速度這個參數(shù)可以理解為軟件處理速度和作業(yè)處理效率。
其他參數(shù)不一一分析。簡而言之,抽象到一定程度就可以和軟件有所關(guān)聯(lián),而不是之前那種好像和軟件無關(guān)的感覺。
讓我們一起來看看40個發(fā)明原理:
很多都是先和物理有關(guān),比如:14球化。機(jī)械相關(guān)28-機(jī)械系統(tǒng)的更換與軟件相差甚遠(yuǎn)。但很多只是反映邏輯,比如:1分區(qū)、23反饋、24中介、26復(fù)制,都與軟件的深度應(yīng)用有關(guān)。
例如,1分區(qū):一個程序,它虛擬地或?qū)嶋H地將一個系統(tǒng)分成幾個部分,以隔離或集成一些有害或有用的系統(tǒng)屬性。
這就是TRIZ的定義,其中軟件的故障隔離設(shè)計和軟件架構(gòu)的微服務(wù)都屬于分區(qū)隔離的思想。
當(dāng)然,微服務(wù)“細(xì)分”指的是基于組件架構(gòu)的拆分,這只是體現(xiàn)了他的實現(xiàn)思路,更多的細(xì)節(jié)需要軟件專家考慮。
比如微服務(wù)是否需要解耦,關(guān)鍵考慮的是:是否需要獨(dú)立開發(fā)和驗證;與其他服務(wù)靈活組合和安排的要求;運(yùn)行期間的有效隔離要求;業(yè)務(wù)的峰谷明顯,需要彈性擴(kuò)張、自主進(jìn)化升級、灰度分布要求等。
當(dāng)然,抽象的發(fā)明原理并不區(qū)分軟件和硬件,很容易理解。其實軟件有很多種,需要考慮的不僅僅是軟件,還有軟硬結(jié)合的系統(tǒng)思維。因此,即使硬件、物理和化學(xué)的發(fā)明原理,也可以試著從軟件的角度去思考,它是否可以應(yīng)用。舉個例子吧。
例如12等勢:在系統(tǒng)內(nèi)建立關(guān)聯(lián),使系統(tǒng)能夠支持等勢狀態(tài)。乍一看,似乎屬于物理定位的方法。但仔細(xì)想一想,其實可以抽象成能量最少的原則,集中在同一個區(qū)域,一次性處理事情——同等位置——不變位置,自己動手。本地更新也有這個意思。
例如,磁盤刪除,如果您立即刪除文件,然后回收磁盤空間。很多操作系統(tǒng)一開始都是實現(xiàn)只刪除文件頭中的幾個字節(jié)的信息,這在邏輯上意味著文件已經(jīng)被刪除了,但是介質(zhì)上的文件內(nèi)容還在。當(dāng)新文件被寫入時,內(nèi)容可以直接覆蓋在這個區(qū)域。
如果舊文件(刪除文件的標(biāo)題字節(jié))在一段時間內(nèi)沒有被覆蓋,則刪除的文件仍然可以恢復(fù)。相對性的抽象是指我(刪除時)不移動位置(不刪除遠(yuǎn)處的內(nèi)容),讓系統(tǒng)自動行動。思想借用了這個發(fā)明原理。
比如:28替換機(jī)械系統(tǒng),用物理場替換機(jī)械交互。這一原理實際上與改變或取代工作原理有關(guān)。軟件的思路是:變硬為軟,用軟件代替專有硬件。比如用軟解壓代替硬件解壓卡。機(jī)械系統(tǒng)被電磁能所取代。
嗯,總的來說,TRIZ在硬件設(shè)計領(lǐng)域被廣泛應(yīng)用,雖然它來自于對設(shè)備創(chuàng)新的抽象總結(jié)。實際上,經(jīng)過仔細(xì)考慮,在軟件設(shè)計領(lǐng)域有很多應(yīng)用,尤其是邏輯參數(shù)和發(fā)明原理可以直接使用。
即使是物理和化學(xué)領(lǐng)域看似“純硬件”的參數(shù)和發(fā)明原理,有時也可以抽象地應(yīng)用于軟件領(lǐng)域。多思考,多實踐,學(xué)好,才能學(xué)到實質(zhì),發(fā)揚(yáng)方法論。