抽象工具排解系統(tǒng)設(shè)計(jì)復(fù)雜性嵌入式開(kāi)發(fā)工具不斷包含更高層次的抽象來(lái)平衡設(shè)計(jì)復(fù)雜性的增長(zhǎng)要點(diǎn)●抽象通過(guò)隱藏細(xì)節(jié)來(lái)降低復(fù)雜性�!癯橄蟛粫�(huì)減少某項(xiàng)設(shè)計(jì)的細(xì)節(jié)數(shù)量�!褡詣�(dòng)化開(kāi)發(fā)工具可簡(jiǎn)化以前的創(chuàng)新設(shè)計(jì)思路和實(shí)現(xiàn)方法,并使之商品化。●抽象隱藏細(xì)節(jié),但不應(yīng)該妨礙您檢查細(xì)節(jié)。復(fù)雜性是相對(duì)的。如果您無(wú)法在特定環(huán)境內(nèi)描繪問(wèn)題的特性并了解問(wèn)題,那么復(fù)雜性就會(huì)使您無(wú)法解決問(wèn)題。同時(shí),復(fù)雜性為你提供制造出與眾不同產(chǎn)品的機(jī)會(huì)。再
抽象工具排解系統(tǒng)設(shè)計(jì)復(fù)雜性
嵌入式開(kāi)發(fā)工具不斷包含更高層次的抽象來(lái)平衡設(shè)計(jì)復(fù)雜性的增長(zhǎng)
要點(diǎn)
● 抽象通過(guò)隱藏細(xì)節(jié)來(lái)降低復(fù)雜性。
● 抽象不會(huì)減少某項(xiàng)設(shè)計(jì)的細(xì)節(jié)數(shù)量。
● 自動(dòng)化開(kāi)發(fā)工具可簡(jiǎn)化以前的創(chuàng)新設(shè)計(jì)思路和實(shí)現(xiàn)方法,并使之商品化。
● 抽象隱藏細(xì)節(jié),但不應(yīng)該妨礙您檢查細(xì)節(jié)。
復(fù)雜性是相對(duì)的。如果您無(wú)法在特定環(huán)境內(nèi)描繪問(wèn)題的特性并了解問(wèn)題,那么復(fù)雜性就會(huì)使您無(wú)法解決問(wèn)題。同時(shí),復(fù)雜性為你提供制造出與眾不同產(chǎn)品的機(jī)會(huì)。再則,復(fù)雜性如果被你攻克,就會(huì)成為您搞出與眾不同設(shè)計(jì)的基礎(chǔ),并成為競(jìng)爭(zhēng)對(duì)手的障礙,盡管是臨時(shí)障礙。如果沒(méi)有足夠的復(fù)雜性,就很難提供獨(dú)特的增值功能, 這是因?yàn)楦?jìng)爭(zhēng)對(duì)手可以很容易地仿制您的開(kāi)發(fā)成果,并在他們的產(chǎn)品中增加這些功能。
一條工程經(jīng)驗(yàn)法則是:設(shè)計(jì)小組能夠以最低成本,在最短的開(kāi)發(fā)時(shí)間內(nèi)交付組合有最佳功能的產(chǎn)品,條件是他們只關(guān)注其中的兩個(gè)要素,犧牲第三個(gè)要素。在一個(gè)競(jìng)爭(zhēng)的領(lǐng)域內(nèi),至關(guān)重要的是要實(shí)現(xiàn)所有這三個(gè)要素,這又會(huì)提高設(shè)計(jì)成果的總復(fù)雜性(附文《無(wú)法滿足的胃口》)。幸好,您不必徹底了解產(chǎn)品的每一個(gè)細(xì)節(jié)就能使用它。使用能支持特定領(lǐng)域的抽象工具或能為自己正在研制的系統(tǒng)創(chuàng)建特定抽象的工具,就是一種降低設(shè)計(jì)復(fù)雜性、提高開(kāi)發(fā)效率的技術(shù)。
抽象是對(duì)某系統(tǒng)的細(xì)節(jié)進(jìn)行組織的過(guò)程,這樣您就可以專注于總體情況的關(guān)鍵要素。抽象并不會(huì)減少——甚至還可能增加——您必須為某項(xiàng)設(shè)計(jì)而要處理的細(xì)節(jié)數(shù)量。然而,抽象能夠組織這些細(xì)節(jié),以便您能減少你為設(shè)計(jì)中任何一部分必須考慮的細(xì)節(jié)數(shù)量。建立有用抽象的挑戰(zhàn)性在于根據(jù)環(huán)境和誰(shuí)將使用這些抽象,確定哪些性能是必不可少的,哪些性能是可以忽略的。抽象是智能框架,從多個(gè)方面對(duì)某個(gè)系統(tǒng)進(jìn)行抽象也許是很有用的。設(shè)計(jì)師和用戶也許需要使用同一系統(tǒng)的不同抽象。對(duì)于分層抽象來(lái)說(shuō),工作在每個(gè)抽象層次的設(shè)計(jì)師也許需要與一組不同的細(xì)節(jié)打交道。
對(duì)某個(gè)系統(tǒng)適當(dāng)?shù)剡M(jìn)行抽象,可以為設(shè)計(jì)小組的每名成員降低系統(tǒng)復(fù)雜性,這是因?yàn)槟梢员苊饷课辉O(shè)計(jì)師去考慮不相關(guān)的細(xì)節(jié)。實(shí)際上,您是在簡(jiǎn)化和限定每一位設(shè)計(jì)師必須面對(duì)的條件范圍。抽象某個(gè)系統(tǒng),可能有利于匯總系統(tǒng)微觀行為,以便能在宏觀層次揭示微觀行為,使之概念化,再進(jìn)行處置。有時(shí),不必了解各事件的具體順序就可以從存儲(chǔ)器中提取數(shù)據(jù),或?qū)@些數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。然而有些時(shí)候,例如,當(dāng)您的系統(tǒng)對(duì)連續(xù)數(shù)據(jù)流進(jìn)行實(shí)時(shí)的計(jì)算密集型操作時(shí),了解并控制這兩種機(jī)制的細(xì)節(jié)對(duì)于項(xiàng)目的成功是至關(guān)重要的。
抽象某個(gè)系統(tǒng)可以幫助您鑒別、隔離并管理一個(gè)系統(tǒng)的邏輯部件之間在計(jì)算和接口兩個(gè)方面的相關(guān)性,這樣您就能在各部分中解決大問(wèn)題。如果您缺乏恰當(dāng)?shù)脑~匯和
其它符號(hào)工具來(lái)表述某個(gè)問(wèn)題,您就會(huì)在解決該問(wèn)題時(shí)面臨嚴(yán)重的障礙。恰當(dāng)?shù)爻橄竽硞(gè)系統(tǒng),可以為您提供詞匯和符號(hào)集,從而在設(shè)計(jì)小組成員之間就各個(gè)部分及其相互關(guān)系進(jìn)行有意義的溝通。恰當(dāng)?shù)脑~匯和符號(hào)集是適用于特定應(yīng)用和特定領(lǐng)域的。一個(gè)標(biāo)準(zhǔn)的或通用的符號(hào)集可能無(wú)法使您充分表述您正在努力解決的系統(tǒng)和問(wèn)題,它可能會(huì)使您偏向采用一種次優(yōu)方法。
工具、工具、工具
產(chǎn)品設(shè)計(jì)正在一代一代地增加占用更多處理能力的復(fù)雜功能,而產(chǎn)品設(shè)計(jì)周期比以往任何時(shí)候都短。為了跟上這些設(shè)計(jì)日益提高的復(fù)雜性,開(kāi)發(fā)小組可以依靠以下手段:重復(fù)使用既有設(shè)計(jì);獲得第三方知識(shí)產(chǎn)權(quán) (
IP) 的許可證;使用各種抽象或隱藏目標(biāo)平臺(tái)實(shí)現(xiàn)細(xì)節(jié)的工具。匯編器、編譯器、建模工具、代碼發(fā)生器、操作系統(tǒng)和外設(shè)驅(qū)動(dòng)程序都能隱藏目標(biāo)處理平臺(tái)的細(xì)節(jié),而且一般都能提高設(shè)計(jì)師的工作效率。這幾類工具通常不提供應(yīng)用級(jí)抽象;它們按分層方式工作,從而抽象目標(biāo)實(shí)現(xiàn)細(xì)節(jié)并使之自動(dòng)化,而無(wú)需了解系統(tǒng)的行為。