它或許只是簡單的為某個程序設(shè)計語言提供應(yīng)用程序接口的一些文件,但也可能包括能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。一般的工具包括用于調(diào)試和其他用途的實用工具。SDK 還經(jīng)常包括示例代碼、支持性的技術(shù)注解或者其他的為基本參考資料澄清疑點的支持文檔。
軟件工程師通常從目標(biāo)系統(tǒng)開發(fā)者那里獲得軟件開發(fā)包。為了鼓勵開發(fā)者使用其系統(tǒng)或者語言,許多 SDK 是免費提供的。SDK 經(jīng)常可以直接從互聯(lián)網(wǎng)下載。有時也被作為營銷手段。例如,甲產(chǎn)品或許會免費提供構(gòu)件SDK 以鼓勵人們使用它,從而會吸引更多人由于能免費為其編程而購買其構(gòu)件。
SDK 可能附帶了使其不能在不兼容的許可證下開發(fā)軟件的許可證。例如一個專有的 SDK 可能與自由軟件開發(fā)抵觸。而GPL能使 SDK 與專有軟件開發(fā)近乎不兼容。LGPL下的SDK則沒有這個問題。
軟件開發(fā)工具
指的是很方便地把一種編程語言代碼化并編譯執(zhí)行的工具。其中主要的語言開發(fā)工具有幾大類:java開發(fā)工具、net開發(fā)工具、delphi開發(fā)工具等。
java開發(fā)工具
1、MyEclipse(MyEclipse Enterprise Workbench)
MyEclipse應(yīng)用開發(fā)平臺是J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持JAVA,HTML, Struts,Spring, JSP, CSS, Javascript, SQL, Hibernate。MyEclipse應(yīng)用開發(fā)平臺結(jié)構(gòu)上實現(xiàn)Eclipse單個功能部件的模塊化,并可以有選擇性的對單獨的模塊進行擴展和升級。
2、Eclipse
Eclipse 是目前功能比較強大的JAVA IDE(JAVA編程軟件) ,是一個集成工具的開放平臺,而這些工具主要是一些開源工具軟件。在一個開源模式下運作,并遵照共同的公共條款,Eclipse 平臺為工具軟件開發(fā)者提供工具開發(fā)的靈活性和控制自己軟件的技術(shù)。
3、NetBeans
NetBeans是開放源碼的Java集成開發(fā)環(huán)境(IDE),適用于各種客戶機和Web應(yīng)用。Sun Java Studio是Sun公司最新發(fā)布的商用全功能Java IDE,支持Solaris、Linux和Windows平臺,適于創(chuàng)建和部署2層Java Web應(yīng)用和n層J2EE應(yīng)用的企業(yè)開發(fā)人員使用。
.Net軟件開發(fā)工具
1、Microsoft Visual Studio
Visual Studio 是一套完整的開發(fā)工具,用于生成 ASP NET Web 應(yīng)用程序、XML Web services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C# 和 Visual C++ 都使用相同的集成開發(fā)環(huán)境 (IDE),這樣就能夠進行工具共享,并能夠輕松地創(chuàng)建混合語言解決方案。關(guān)于常用的軟件開發(fā)工具[4] 使用詳細,可以參考引用文章。
開發(fā)工具分類
(1)基于工作階段的工具
基于各個階段對信息的需求不同,軟件開發(fā)工具可分為三類:設(shè)計工具、分析工具、計劃工具。
①設(shè)計工具是最具體的,它是指在實現(xiàn)階段對人們提供幫助的工具。例如各種代碼生成器、一般所說的第四代語言和幫助人們進行測試的工具(包括提供測試環(huán)境或測試數(shù)據(jù))等,都屬于設(shè)計工具之列。它是最直接的幫助人們編寫與調(diào)試軟件的工具。
②分析工具主要是指用于支持需求分析的工具,例如,幫助人們編寫數(shù)據(jù)字典的、專用的數(shù)據(jù)字典管理系統(tǒng)幫助人們繪制數(shù)據(jù)流程圖的專用工具,幫助人們畫系統(tǒng)結(jié)構(gòu)圖或ER圖的工具等。他們不是直接幫助開發(fā)人員編寫程序,而是幫助人們認識與表述信息需求與信息流程,從邏輯上明確軟件的功能與要求。
③計劃工具則是從更宏觀的角度去看待軟件開發(fā)。它不僅從項目管理的角度幫助人們組織與實施項目,把有關(guān)進度、資源、質(zhì)量、驗收情況等信息有條不紊地管理起來,而且考慮到了項目的反復(fù)循環(huán)、版本更新、實現(xiàn)了跨生命周期的信息管理與共享,為信息以及軟件的復(fù)用創(chuàng)造了條件。
(2)基于集成程度劃分的工具
集成化程度是用戶接口一致性和信息共享的程度,是一個新的發(fā)展階段。集成化的軟件開發(fā)工具要求人們對于軟件開發(fā)過程有更深入的認識和了解。開發(fā)與應(yīng)用集成化的軟件開發(fā)工具是應(yīng)當(dāng)努力研究與探索的課題,集成化的軟件開發(fā)工具也常稱為軟件工作環(huán)境。
(3)基于硬件、軟件的關(guān)系劃分的工具
基于與硬件和軟件的關(guān)系,軟件開發(fā)工具可以分為兩類:依賴于特定計算機或特定軟件(如某種數(shù)據(jù)庫管理系統(tǒng))和獨立于硬件與其它軟件的軟件開發(fā)工具。一般來說,設(shè)計工具多是依賴于特定軟件的,因為它生成的代碼或測試數(shù)據(jù)不是抽象的,而是具體的某一種語言的代碼或該語言所要求的格式的數(shù)據(jù)。而分析工具與計劃工具則往往是獨立于機器與軟件的,集成化的軟件開發(fā)工具常常是依賴于機器與軟件的。
(4)基于應(yīng)用領(lǐng)域劃分的工具
根據(jù)應(yīng)用領(lǐng)域的不同,應(yīng)用軟件可以分為事務(wù)處理、實時應(yīng)用、嵌入式應(yīng)用等。隨著個人計算機與人工智能的發(fā)展,與這兩個方面相聯(lián)系的應(yīng)用軟件,也取得較大的進展。