初學java,遇到jdk,sdk概念:軟件開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平台、操作系統等建立應用軟件時的開發工具的集合。
軟件包:(SoftWare Package)是指具有特定的功能,用來完成特定任務的一個程序或一組程序。
開發工具:包含編輯、編譯、解釋執行(C中是鏈接執行)等功能。
一、軟件框架
軟件框架是面向領域(如ERP、計算領域等)的、可復用的“半成品”軟件,它實現了該領域的共性部分,並提供了一些定義良好的可變點以保證靈活性和可擴展性。也就是說軟件框架是領域分析結果的軟件化,是領域內最終應用的模板。
隨着軟件規模的擴大、應用廣泛和軟件復用技術的發展,以子程序和類為單位的軟件復用出現了很多的不足之處:
(1)子程序的庫越來越龐大以至於其使用人員難以掌握
(2)大多數類的粒度很小,其自身不能完成所有有用的功能
正是因為這些原因,使得人們在復用中將一組類(模塊)作為一個整體來考慮,由此出現了軟件框架。而軟件框架中至少包含以下組成部分:
(1)一系列完成計算的模塊,成為構件
(2)構件之間的關系及交互機制
(3)一系列可變點(熱點、或者稱為調整點)
(4)可變點的行為調整機制
開發人員通過軟件框架行為調整機制,將領域中具體應用中所特有的軟件模塊綁定到該軟件框架的可變點上,從而得到了最終的應用系統,這個過程稱為軟件軟件框架的例化,軟件框架的存在使得開發人員將主要的精力放在系統所特有的模塊的開發上,從而提高軟件的生產率和質量。
軟件框架的行為調整機制是指如何針對具體的應用調整該框架的可變部分、如何在可變點加入特定應用模塊所采用的方法和規則。
二、軟件架構
軟件架構是一個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。
- 軟件架構在定義上分為‘組成派’和‘決策派’兩大陣營,分別描述如下:
- ’組成派‘認為軟件架構是將系統描述成計算組件及組件之間的交互。它有兩個非常明顯的特點:
- 關注架構實踐的客體——軟件,以軟件本身作為描述對象。
- 分析了軟件的組成,說明軟件不是一個‘原子’意義上的整體,而是有不同的部分經過特定的接口進行連接組成的一個整體,這對軟件開發來說很重要。
- ‘決策派’認為軟件架構包含了一系列的決策,主要包括:
- 軟件系統的組織
- 選擇組成系統的結構元素和它們之間的接口,以及當這些元素相互協作時所體現的行為
- 如何組合這些元素,使它們逐漸合成為更大的子系統
- 用於指導這個系統組織的架構風格:這些元素以及它們的接口、協作和組合
軟件架構並不僅僅關注軟件本身的結構和行為,還注重其他特性:使用、功能性、性能、彈性、重用、可理解、經濟以及技術的限制和權衡等。
個人理解:當軟件工程具一定規模時,軟件開發不完全是以數據結構+算法的形式存在,而是基於技術選擇和用戶需求等眾多因素將軟件“分而治之”,架構師的主要任務是將軟件分割成不同的模塊,並定義模塊之間的接口。