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