軟體架構、架構、模式、模組、組件、外掛程式概念匯總

來源:互聯網
上載者:User

標籤:abstract   class   軟體   產生   skeleton   tab   串連   而且   programs   

術語 英文解釋
中文解釋
架構 architecture:
  • Architecture is the art of planning, designing, and constructing buildings. 
  • 架構名詞起源於建築,沒有明確標準的定義描述,不同人基於經驗對它理解也多少會有差異。實際上架構就是指人們根據自己對世界的認識,為解決某個問題,主動地、有目的地去識別問題,並進行分解、合并,解決這個問題的實踐活動。架構的產出物,自然就是對問題的分析,以及問題的解決方案:包括拆分的原則以及理由,溝通合并的原則以及理由,以及拆分,拆分出來的各個部分和合并所對應的角色和所需要的核心能力等。架構的一般步驟:
    1. 確定問題範圍: 根據要解決的問題,對目標系統的邊界進行界定。
    2. 分解問題:對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色對切分出來的部分,並行或串列開展工作,一般並行才能減少時間。
    3. 確定協作方式:並對這些切分出來的部分,設立溝通機制。
    4. 協作解決問題:根據3,使得這些部分之間能夠進行有機的聯絡,合并組裝成為一個整體,完成目標系統的所有工作。
  • 軟體架構,也稱為軟體體繫結構。簡單地說,軟體架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象組件,並且能夠描述這些抽象組件之間的通訊和調用。它是對軟體系統的系統組織,是對構成系統的構件的介面,行為模式,協作關係等體系問題的決策總和。它不僅涉及到結構與行為,而且還涉及到系統的使用,功能,效能,適應性,重用性,可理解性,經濟性和技術約束的權衡和美學考慮。
  • 使用方法:軟體架構會分析工程中的問題,針對問題設計解決方案,針對解決方案分析應具有的功能,針對功能設計軟體系統的層次和模組及層次模組之間的邏輯互動關係,確定各個功能如何由這些邏輯實現。工程開發人員,可以根據軟體架構中分析出來的層次和模組進行軟體的編寫。如B/S架構,網路架構,企業架構、國家架構。
架構 Framework :
  • A framework is a structure that forms a support or frame for something.  A structure is something that consists of parts connected together in an ordered way. 
  •  A framework is a set of classes that embodies an abstract design for solutions to a family of related problems, and supports reuses at a larger granularity than classes.
  • A software framework provides the skeleton of an application that can be customized by an application developer. 
  • 架構串連而成的結構,在軟體工程中的概念是指是整個或部分系統的可重用設計,表現為一組抽象構件及構件執行個體間互動的方法;另一種定義認為,架構是可被應用開發人員定製的應用骨架。前者是從應用方面而後者是從目的方面給出的定義。
  • 軟體架構是項目軟體開發過程中提取特定領域軟體的共性部分形成的體繫結構,不同領域的軟體項目有著不同的架構類型。架構不是現成可用的應用系統,而是一個半成品,是一個提供了諸多服務,供開發人員進行二次開發,實現具體功能的應用系統。特彆強調,架構是一個可供二次開發的程式實體。
  • 架構與架構關係 :首先說架構不是架構,架構比架構更具體,更偏重於技術,而架構偏重於設計。還有一個關係就是架構可以通過多種架構來實現。
  • 使用方法:特定領域軟體有一些共性部分形成的軟體架構,將這個共性的軟體架構開發出來,形成一個可供二次開發的程式實體,這個程式實體就是軟體架構。 可供二次開發。如Spring架構,Felix架構等。
模式 Pattern:
  • A pattern is the repeated or regular way in which something happens or is done. If you refer to a way of doing something, you are referring to how you can do it, for example, the action you can take or the method you can use to achieve it.
  • 模式是指從生產經驗和生活經驗中經過抽象和升華提煉出來的核心知識體系。模式(Pattern)其實就是解決某一類問題的方法論。把解決某類問題的方法總結歸納到理論高度,那就是模式。模式是一種指導,在一個良好的指導下,有助於你完成任務,有助於你作出一個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。
  • 軟體設計模式強調的是一個設計問題的解決方案,是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。
  • 軟體架構與設計模式關係 :設計模式研究的是針對單一問題的設計思路和解決方案,目的是設計重用,一個模式可應用於不同的架構和被不同的程式語言所實現;而架構則是一個應用的體繫結構,是一種或多種設計模式和代碼的混合體,可實現代碼重用。雖然它們有所不同,但卻共同致力於使人們的設計可以被重用,在思想上存在著統一性的特點,因而設計模式的思想可以在架構設計中進行應用。
  • 軟體架構與設計模式關係 :兩者的關係也是很好區分的,設計模式主要是針對單一問題的解決方案,範疇比較小,而架構是高層次的針對體繫結構的一種設計思路,範疇比較大。可以這麼說,一個架構中可能會出現多個設計模式來解決多個架構中的問題。
  • 使用方法:針對特定問題提供解決方案,以供問題解決者參考。如觀察者模式,適配器模式,代理模式。
模組 Module:
  • In software, a module is a part of a program. Programs are composed of one or more independently developed modules that are not combined until the program is linked. A single module can contain one or several routines.
  • A software module encapsulates related functions in a program together.
  • one of a set of parts that can be connected or combined to build or complete something.
  • 模組,module,模組是一個通用概念,可能從功能或其他目的來區分。模組可以是子系統子領域,主要取決於上下文環境的用法。通常我們會說程式模組,功能模組,這實際上是在按照不同的標準對模組的內容和範圍的不同定義。
  • 通常我們說的程式模組,是指的一段能夠實現某個有價值目標的的成員程式碼片段,這樣的東西,我們還有另一個稱呼:常式,而常式有兩種,即函數和過程,它們都能實現一個有價值的目標供其它的模組使用。
  • 而功能模組的說法一般在分析和設計階段出現得比較頻繁,通常我們用一個功能模組來說明一個功能所包含的系統行為,當我們覺得分析的顆粒度可能更大一些的時候我們可以用一個功能模組來表示一組功能的集合,這似乎讓我們覺得,模組這個詞的概念和“子系統”這個詞的概念有些模糊,是的,事實上,有些大的模組會慢慢的讓我們覺得稱呼他們子系統更合適,或者一個子系統,我們會慢慢發現你還包含著一些模組。
  • 但是無論怎樣,定義模組的原則應該是:高內聚和低耦合。
  • 使用方法:就是一個描述全域中問題的概念,至於全域是什麼,這個隨便,比如一個人,可以看成各種功能系統,那麼模組就是各種呼吸系統、消化系統等;可以看成社會關係,模組就有勞動能力、生產關係等,全在於怎麼看了。
組件 Component:
  • The components of something are the parts that it is made of. 
  • 組件,Component,首先說,組件已經不是一個抽線的概念了,是封裝了一個或多個實體程式模組的實體。
  • 組件這個詞通常是現在描述產品的時候出現,一個大的產品會有很多小的部分組成,而小的部分除了是一個大的組件的部分以外,自己可能還包含更小的組件,所以組件是遞迴的,那麼組件到底是什麼呢?最常見的組件就是我們已經寫好的程式碼,任何一小段代碼都可以是一個組件,它可以和其它程式碼片段串連起來組成更大的一段程式碼,一個更大的組件,然後可能是一個函數,或者一個類程式單元,或者數個類單元檔案的整合,當不同的組件的組裝形成更大的組件時候,我們實際就是在做我們通常提到的一件事情:整合,軟體中有很多整合工作要做,每日整合,重要版本整合等等,整合是什麼呢?軟體中,就是鏈編調試。這樣一來,我們知道整合是需要對被整合的組件有規模要求的,換句話說,至少是一個單元檔案,所以通常說到的組件就可以直觀的理解為單元檔案,或者可以組成軟體的其他檔案,以及編譯後的檔案。
  • 組件是物件導向裡面的一個重[chóng]用的概念,也稱為構件,組件非常類似機械中構件概念,現在機械都是走向構件產生,通過不同構件組裝成一個機械成品,軟體目前也是這樣的一個產生方式。
  • 維基百科上說,組件之間通過介面進行互動,這個挺起來有些象外掛程式,現實中也是這樣,比如一個dll檔案,可以說是外掛程式,也可以說是組件。外掛程式是是組件的一個子類,就是將組件中具有某些特點的組件歸為外掛程式,這些特點是:益於與系統分離,介面明晰,可以替換的程式模組。
  • 組件強調的是封裝,利用介面進行互動。因為封裝有不同層次的封裝,對應不同層次的介面,(比如將一個人封裝成一個組件,比如國家主席,多個人封裝成一個組合,比如中央的常委們),所以組件所表述的範圍和層次也是多種多樣的,在談論組件的時候一定要分辨清楚談論的層次和範圍。層次是相對的。你說地球是整個世界,但是將地球放到銀河系中,地球就顯得渺小了;你說物質世界是整個世界,但是人類的精神世界也是無比的浩瀚;你說物質世界和精神世界合起來是整個世界,但是曆史又是那麼的神秘和真實;你說物質世界、精神世界、曆史時空是整個世界,但是科學家又說人類可以探察的宇宙物質僅佔全部宇宙的百分之四。
  • 使用方法:就是一個描述系統中實體單元的概念。
外掛程式 Plug-in:(addin,add-in,add-on,addon,app)
  • A plug-in is something such as a piece of software that can be added to a computer system to give extra features or functions.
  • 根據對組件和模組的分析,外掛程式屬於組件,而且還是一個程式模組,也是一個功能模組。外掛程式是一種電腦程式,通過和應用程式的互動,來替應用程式增加一些特定的功能。 外掛程式必須依賴於應用程式才能發揮自身功能,僅靠外掛程式是無法正常啟動並執行。
  • 使用方法:滿足一定介面規範的具有一定功能的程式模組。開發人員可以在自己軟體系統中設計相應的介面以匹配某個外掛程式,也可以設計一定的介面規範,來讓別人開發外掛程式。外掛程式和程式之間通過介面進行互動。
控制項 Control:
  • A control is a device such as a switch or lever which you use in order to operate a machine or other piece of equipment.
  • 可視化的組件。
中介軟體 Middleware:
  • computer software that has an intermediary function between the various applications of a computer and its operating system.
  • Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".[1] Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application.
  • 中介軟體是提供系統軟體和應用軟體之間串連的軟體,以便於軟體各組件之間的溝通。





來自為知筆記(Wiz)

軟體架構、架構、模式、模組、組件、外掛程式概念匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.