版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-算法模塊

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

簡介

算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個(gè)或多個(gè)操作1。算法模塊簡單來說是指算法設(shè)計(jì)成一個(gè)個(gè)獨(dú)立地軟件模塊。在實(shí)際應(yīng)用中,應(yīng)用程序?qū)λ惴ㄕ{(diào)用,可以看成一次次地模塊調(diào)用。將算法通過編程語言寫成一個(gè)個(gè)算法模塊,使算法具有可復(fù)用性和較好的可移植性,算法模塊還降低了算法的使用難度以及推廣了算法的應(yīng)用領(lǐng)域。算法模塊的接口(API)提供了由該模塊提供的功能和調(diào)用它時(shí)所需的元素。

模塊在系統(tǒng)分析中經(jīng)常使用的一個(gè)概 念,即系統(tǒng)中具有相對獨(dú)立性的、完成某一功 能的一個(gè)部分。

模塊具有以下屬性:

1.凝聚性。它本身的功能或內(nèi)容,具有一 定的內(nèi)在的邏輯聯(lián)系。

2.獨(dú)立性。它與系統(tǒng)其他部分的聯(lián)系(調(diào) 用關(guān)系和參數(shù)調(diào)用關(guān)系)有明確的規(guī)定,并且 限制在一定限度之內(nèi),此外的內(nèi)部處理與其 他部分不發(fā)生相互影響。

3.聯(lián)系的明確性。它在系統(tǒng)中的地位與 作用有明確的、嚴(yán)格的規(guī)定2。

劃分成模塊的系統(tǒng)(稱為模塊化結(jié)構(gòu)系 統(tǒng))具有易分工開發(fā),易管理,易理解,易修改 的特點(diǎn),因此被認(rèn)為是結(jié)構(gòu)良好的系統(tǒng),成為 系統(tǒng)分析與設(shè)計(jì)中所期望的目標(biāo)。相應(yīng)地、合 理地劃分模塊也就成了認(rèn)識、分析、設(shè)計(jì)復(fù)雜 系統(tǒng)中的一項(xiàng)重要的、關(guān)鍵性的任務(wù)。

可移植性和可復(fù)用性可復(fù)用性也可以稱作代碼復(fù)用。就是再利用已有的代碼,或者相關(guān)的知識去編寫新的代碼來構(gòu)造軟件。復(fù)用的形式一般有程序庫、設(shè)計(jì)模式、應(yīng)用框架。算法模塊也有這三種形式,不過主要側(cè)重于程序庫的復(fù)用。

程序庫

編寫程序庫是進(jìn)行代碼復(fù)用最常見的方法。很多共通的操作,比如文件的讀/寫,操作系統(tǒng)信息的獲取的動(dòng)作都會被封裝在程序庫中,然后由軟件開發(fā)人員來調(diào)用。使用程序庫的一大優(yōu)點(diǎn)就是它所提供的操作都是經(jīng)過充分測試的,但是缺點(diǎn)則是無法對程序庫提供的操作的具體實(shí)現(xiàn)進(jìn)行調(diào)整,同時(shí)程序庫也要求軟件開發(fā)人員花大量時(shí)間去學(xué)習(xí)它的用法。

設(shè)計(jì)模式

設(shè)計(jì)模式對于同類的相似問題提供了通用的解決方法。它所提供的是概念上的解決方法,對于具體問題往往還需要具體實(shí)現(xiàn)一份代碼。利用抽象類或接口往往可以在特定的設(shè)計(jì)模式中達(dá)到代碼的復(fù)用。

應(yīng)用框架

軟件開發(fā)人員往往可以通過第三方的應(yīng)用程序或者框架來實(shí)現(xiàn)對一個(gè)程序的大范圍復(fù)用,這可以有效地提高生產(chǎn)效率。但缺點(diǎn)在于第三方的應(yīng)用程序或者框架往往只在某個(gè)特定的應(yīng)用范圍內(nèi)才可以適用。

可移植性可移植性(英語Portability),又稱作移植性、可攜性,是指使用高階語言寫成的軟件,在不同環(huán)境下,是否具備可以被重復(fù)使用的性質(zhì)。一般來說,軟件是否具備可移植性的衡量標(biāo)準(zhǔn),在于進(jìn)行軟件移植時(shí),需要付出多少工時(shí)為代價(jià)。具備高可移植性的軟件,在移植到不同系統(tǒng)平臺時(shí),并不需要做太多事情,因此能夠減少軟件開發(fā)及布署時(shí)的成本。為了使軟件具備高度可移植性,程序員需要使應(yīng)用程序界面抽象化以及模組化。

應(yīng)用程序接口軟件接口。為系統(tǒng)與用戶之間、子系統(tǒng)與子系統(tǒng)之間、兩個(gè)程序塊之間專門設(shè)計(jì)的程序.軟件支援環(huán)境要求軟件接口都具有統(tǒng)一性。例如,為了實(shí)現(xiàn)用戶和各種軟件工具的通信,要求有統(tǒng)一的調(diào)用方式。

應(yīng)用程序接口(Application Programming Interface,API),又稱為應(yīng)用編程接口,就是軟件系統(tǒng)不同組成部分銜接的約定。由于近年來軟件的規(guī)模日益龐大,常常需要把復(fù)雜的系統(tǒng)劃分成小的組成部分,編程接口的設(shè)計(jì)十分重要。程序設(shè)計(jì)的實(shí)踐中,編程接口的設(shè)計(jì)首先要使軟件系統(tǒng)的職責(zé)得到合理劃分。良好的接口設(shè)計(jì)可以降低系統(tǒng)各部分的相互依賴,提高組成單元的內(nèi)聚性,降低組成單元間的耦合程度,從而提高系統(tǒng)的維護(hù)性和擴(kuò)展性。