SDK

SDK

建立應用軟件的開發工具的集合
軟件開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平台、操作系統等建立應用軟件時的開發工具的集合。[1]軟件開發工具包廣義上指輔助開發某一類軟件的相關文檔、範例和工具的集合。軟件開發工具包是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平台、操作系統等創建應用軟件的開發工具的集合,一般而言SDK即開發Windows平台下的應用程序所使用的SDK。它可以簡單的為某個程序設計語言提供應用程序接口API的一些文件,但也可能包括能與某種嵌入式系統通訊的複雜的硬件。一般的工具包括用于調試和其他用途的實用工具。SDK還經常包括示例代碼、支持性的技術注解或者其他的為基本參考資料澄清疑點的支持文檔。
    中文名:軟件開發工具包 外文名: 适用領域: 所屬學科: 英文名:Software Development Kit 簡寫:sdk 用途:軟件開發 應用平台:windows

基本概念

SDK,Software Development Kit 的縮寫,中文即“軟件開發工具包”。廣義上指輔助開發某一類軟件的相關文檔、範例和工具的集合。為了鼓勵開發者使用其系統或者語言,許多 SDK 是免費提供的。軟件工程師通常從目标系統開發者那裡獲得軟件開發包,也可以直接從互聯網下載,有時也被作為營銷手段。例如,營銷公司會免費提供構件SDK 以鼓勵人們使用它,從而會吸引更多人由于能免費為其編程而購買其構件。SDK 可能附帶了使其不能在不兼容的許可證下開發軟件的許可證。例如産品供應商提供一個專有的SDK可能與自由軟件開發抵觸。GPL能使SDK與專有軟件開發近乎不兼容。LGPL下的SDK則沒有這個問題。

相關背景

API

API(Application Programming Interface,應用編程接口)其實就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令(動作)。其實早在DOS時代就有 API 的概念,隻不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如将 AH 置為 30h後調用INT 21h就可以得到DOS 操作系統的版本号。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得操作系統的版本号,在 Windows 中你所要做的就是調用 GetVersionEx() 函數。

可以這麼說,DOSAPI 是“Thinking in彙編語言”的,而 Windows API 則是“Thinking in 高級語言”的。

DOSAPI是系統程序的一部分,他們與系統一同被載入内存并且可以通過中斷矢量表找到他們的入口,那麼 Windows API 呢?要說明白這個問題就不得不引入我們下面要介紹得這個概念——DLL。

DLL

DLL,即 Dynamic Link Library(動态鍊接庫)。在windows環境下含有大量 .dll格式的文件,這些文件就是動态鍊接庫文件,其實也是一種可執行文件格式。跟 .exe 文件不同的是,.dll文件不能直接執行,他們通常由 .exe 在執行時裝入,内含有一些資源以及可執行代碼等。其實 Windows 的三大模塊就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裡面就含有了 API函數的執行代碼。為了使用 DLL 中的 API 函數, 必須要有 API 函數的聲明(.H)和其導入庫(.LIB),導入庫可以先這樣理解:導入庫是為了在 DLL 中找到 API 的入口點而使用的。

為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、範例和工具的“工具包”。

SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做“SDK編程”。而API和 SDK 是開發Windows應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如VCL 和MFC,雖然他們比起“SDK 編程”來有着更高的抽象度,但這絲毫不妨礙它們在需要的時候随時直接調用 API 函數 。

相對關系

sdk與mod的關系

遊戲中就有很多sdk工具包,可以開發mod和資料片。

産品脈絡

從國内代表性的軟件開發平台中,我們可以看出這一類産品的大緻脈絡:

1、用友的UAP平台:1997年開始研發,是我國第一個基于B/S、SOA架構的管理軟件平台,在J2EE、.NET平台最早實現,号稱擁有最多客戶裝機基礎,擁有最多夥伴支持、擁有最多成功應用案例。作為交付和部署工具,UAP可以提高應用軟件的可定制性和可集成性,在幫助用友ERP普及應用的過程中發揮了巨大作用。UAP也是做得越來越龐大和複雜。

2、金蝶的BOS平台:BOS平台最大的競争優勢在于,它不僅以金蝶APUSIC這一國内唯一的系統級中間件J2EE應用服務器為核心,還包括基于APUSIC之上的一整套模型化業務組件,号稱是中國首創、世界一流的互聯網基礎件平台。BOS平台同樣支持J2EE與.net兩大技術平台,基于Internet開放技術标準而建立。

3、亞思捷的TNT平台:TNT平台的核心優勢在于低成本的個性化,他可以同時向客戶提供T——業務系統模闆,即OA、CRM、文檔管理、信息門戶、在線考試等标準化的應用系統;N——開源組件包,即上述應用系統的源代碼;T——開發工具,即基于微軟Jupiter平台的快速開發工具,開發者可以通過界面屬性設定的方法來完成對業務系統的快速開發,自動化生成C#和JAVA的二種語言的系統。顯然,TNT中的兩個“T”是業務的重點,而殺手锏則是低價。

其他廠家的軟件開發平台與上述三種均大同小異,都是提供“标準化+行業化+個性化”的應用模式。

從中我們看出,這些軟件開發平台确實都非常具有我們在上文中提到的技術共性,另外我們還都具有一個共同點,那就是他們既提供軟件開發平台,又提供基于該平台生成的各種應用系統,兩種産品相輔相成。這種模式也是軟件開發平台銷售的主流模式。

工具定義

軟件開發工具指的是很方便地把一種編程語言代碼化并編譯執行的工具。其中主要的語言開發工具有幾大類:java開發工具、net開發工具、delphi開發工具等。

開發工具

1.軟件需求工具,包括需求建模工具和需求追蹤工具。

2.軟件設計工具,用于創建和檢查軟件設計,因為軟件設計方法的多樣性,這類工具的種類很多。

3.軟件構造工具,包括程序編輯器、編譯器和代碼生成器、解釋器和調試器等。

4.軟件測試工具,包括測試生成器、測試執行框架、測試評價工具、測試管理工具和性能分析工具。

5.軟件維護工具,包括理解工具(如可視化工具)和再造工具(如重構工具)。

6.軟件配置管理工具,包括追蹤工具、版本管理工具和發布工具。

7.軟件工程管理工具,包括項目計劃與追蹤工具、風險管理工具和度量工具。

8.軟件工程過程工具,包括建模工具、管理工具和軟件開發環境。

9.軟件質量工具,包括檢查工具和分析工具。

工具分類

(1)基于工作階段的工具

基于各個階段對信息的需求不同,軟件開發工具可分為三類:設計工具、分析工具、計劃工具。

①設計工具是最具體的,它是指在實現階段對人們提供幫助的工具。例如各種代碼生成器、一般所說的第四代語言和幫助人們進行測試的工具(包括提供測試環境或測試數據)等,都屬于設計工具之列。它是最直接的幫助人們編寫與調試軟件的工具。

②分析工具主要是指用于支持需求分析的工具,例如,幫助人們編寫數據字典的、專用的數據字典管理系統幫助人們繪制數據流程圖的專用工具,幫助人們畫系統結構圖或ER圖的工具等。他們不是直接幫助開發人員編寫程序,而是幫助人們認識與表述信息需求與信息流程,從邏輯上明确軟件的功能與要求。

③計劃工具則是從更宏觀的角度去看待軟件開發。它不僅從項目管理的角度幫助人們組織與實施項目,把有關進度、資源、質量、驗收情況等信息有條不紊地管理起來,而且考慮到了項目的反複循環、版本更新、實現了跨生命周期的信息管理與共享,為信息以及軟件的複用創造了條件。

(2)基于集成程度劃分的工具

集成化程度是用戶接口一緻性和信息共享的程度,是一個新的發展階段。集成化的軟件開發工具要求人們對于軟件開發過程有更深入的認識和了解。開發與應用集成化的軟件開發工具是應當努力研究與探索的課題,集成化的軟件開發工具也常稱為軟件工作環境。

(3)基于硬件、軟件的關系劃分的工具

按與硬件和軟件的關系,軟件開發工具可以分為兩類:依賴于特定計算機或特定軟件(如某種數據庫管理系統)和獨立于硬件與其它軟件的軟件開發工具。一般來說,設計工具多是依賴于特定軟件的,因為它生成的代碼或測試數據不是抽象的,而是具體的某一種語言的代碼或該語言所要求的格式的數據。而分析工具與計劃工具則往往是獨立于機器與軟件的,集成化的軟件開發工具常常是依賴于機器與軟件的。

(4)基于應用領域劃分的工具

照應用領域的不同,應用軟件可以分為事務處理、實時應用、嵌入式應用等。随着個人計算機與人工智能的發展,與這兩個方面相聯系的應用軟件,也取得較大的進展。嵌入式研發中心是國内最早進入嵌入式技術研發和應用推廣的技術型企業之一,成立以來在專注于嵌入式底層應用技術的研究和開發的同時為廣大客戶提供嵌入式系統開發技術、嵌入式解決方案和嵌入式産品(嵌入式開發闆、ARM開發闆、ARM9開發闆、ARM開發工具、ARM仿真器和ARM工控闆、arm實驗儀等)。

上一篇:摩擦起電

下一篇:相位噪聲

相關詞條

相關搜索

其它詞條