Bộ công cụ phát triển phần mềm (tiếng Anh: software development kit, viết tắt là SDK) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt. Chúng có thể dễ dàng tạo ra các ứng dụng nhờ có các trình biên dịch, trình gỡ lỗi và có thể bao gồm một software framework. Chúng thường dành riêng cho một nền tảng phần cứng và kết hợp hệ điều hành. Để tạo một ứng dụng với các tính năng nâng cao như quảng cáo, thông báo đẩy, v.v; hầu hết các nhà phát triển phần mềm ứng dụng sử dụng SDK cụ thể.
Một vài SDK được yêu cầu để phát triển ứng dụng dành riêng cho nền tảng. Ví dụ, để phát triển một app Android trên nền tảng Java yêu cầu một Java Development Kit. Cho ứng dụng iOS iOS SDK được yêu cầu. Cho Universal Windows Platform, .NET Framework SDK có thể được sử dụng. Ngoài ra còn có SDK thêm các tính năng bổ sung và có thể được cài đặt trong các ứng dụng để cung cấp các phân tích dữ liệu về hoạt động của ứng dụng và các tùy chọn kiếm tiền. Một số người tạo nổi bật của các loại SDK này bao gồm Google, Smaato, InMobi, và Facebook.
Chi tiết
Một SDK có thể ở dạng một giao diện lập trình ứng dụng (API) Các công cụ phổ biến bao gồm các tiện ích gỡ lỗi và các tiện ích khác, thường được trình bày trong môi trường phát triển tích hợp (IDE). SDK có thể bao gồm phần mềm mẫu và/hoặc ghi chú kỹ thuật cùng với tài liệu và hướng dẫn để giúp làm rõ các điểm được tạo bởi tài liệu tham khảo chính.
SDK thường bao gồm các giấy phép khiến chúng không phù hợp để xây dựng phần mềm được dự định phát triển theo giấy phép không tương thích. Ví dụ, một SDK độc quyền không tương thích với phát triển phần mềm tự do, trong khi SDK được cấp phép GPL có thể không tương thích với phát triển phần mềm độc quyền, vì lý do pháp lý. Tuy nhiên, SDK được xây dựng theo GNU Lesser General Public License (LGPL) thường có thể sử dụng để phát triển độc quyền.
Ứng dụng di động Android trung bình triển khai 15.6 riêng biệt, với các ứng dụng chơi trò chơi thực hiện trên trung bình 17,5 SDK khác nhau. Các danh mục SDK phổ biến nhất cho ứng dụng di động Android là phân tích và quảng cáo.
SDK có thể không an toàn (bởi vì chúng được triển khai bên trong ứng dụng, nhưng vẫn chạy mã riêng). SDK độc hại (có ý định trung thực hay không) có thể vi phạm quyền riêng tư dữ liệu của người dùng, làm hỏng hiệu suất ứng dụng hoặc thậm chí khiến các ứng dụng bị cấm khỏi Google Play hoặc App Store. Các công nghệ mới cho phép các nhà phát triển ứng dụng kiểm soát và giám sát SDK khách trong thời gian thực.
Các nhà cung cấp SDK cho các hệ thống hoặc hệ thống con cụ thể đôi khi thay thế một thuật ngữ cụ thể hơn thay vì phần mềm. Chẳng hạn, cả Microsoft và Citrix cung cấp một driver development kit (DDK) cho phát triển các trình điều khiển thiết bị
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Bộ công cụ phát triển phần mềm** (tiếng Anh: **software development kit**, viết tắt là **SDK**) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt.
**Quy trình phát triển phần mềm** _(software development methodology)_ là một cấu trúc bao gồm tập hợp các thao tác và các kết quả tương quan sử dụng trong việc phát triển để sản xuất
**Phát triển phần mềm linh hoạt** hoặc **lập trình linh hoạt** (tiếng Anh: **_Agile software development_** hay **_Agile programming_**) là một phương thức thực hiện các dự án công nghệ phần mềm, phương thức này
thumb|upright|Biểu đồ dòng thời gian cho thấy sự phát triển của các [[bản phân phối Linux, với mỗi nhánh rẽ trong sơ đồ được gọi là "một fork".]] Trong phát triển phần mềm, **fork** ()
[[Tập tin:Nexus 4.png|thumb| Nexus 4 là một trong những thiết bị "thân thiện với lập trình viên" thuộc dòng sản phẩm Google Nexus]] **Phát triển phần mềm Android** là quy trình tạo ra các ứng
thumb|Mô hình vòng đời phát hành phần mềm Một **vòng đời phát hành phần mềm** là một sự tổng hợp các pha phát triển phần mềm từ giai đoạn sơ khai cho đến giai đoạn
**Unity** là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được công
**Công ty phần mềm** là một công ty có các sản phẩm chính là các phần mềm, công nghệ phần mềm, phân phối và phát triển sản phẩm phần mềm. Công ty phần mềm là
Môi trường phát triển tích hợp Eclipse phiên bản 3.1.2 trên nền Windows XP. **Eclipse** là một môi trường phát triển tích hợp dùng cho lập trình máy tính., Nó chứa một không gian làm
Trong công nghệ phần mềm, một **mẫu thiết kế** (tiếng Anh: design pattern) là một giải pháp tổng thể cho các vấn đề chung trong thiết kế phần mềm. Một mẫu thiết kế không phải
**Phần mềm hệ thống** là phần mềm máy tính thiết kế cho việc vận hành và điều khiển phần cứng máy tính và cung cấp một kiến trúc cho việc chạy _phần mềm ứng dụng_.
thumb|alt=Màn hình máy tính của hệ điều hành, màn hình hiển thị các ứng dụng phần mềm tự do khác nhau.|Ví dụ về một hệ điều hành phần mềm tự do hiện đại chạy một
**Atlassian Corporation Plc** () là một công ty phần mềm có trụ sở tại Vương quốc Anh, nhưng có nguồn gốc từ Úc và Hoa Kỳ. Nó chuyên phát triển sản phẩm cho các lập
**Hãng phát triển trò chơi điện tử** là hãng chuyên phát triển phần mềm về trò chơi điện tử, cũng như quy trình và các nguyên tắc liên quan để tạo ra các trò chơi
**Kiểm thử phần mềm** (tiếng Anh: **Software testing**) là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ
nhỏ| Một sơ đồ cho thấy cách người dùng tương tác với [[phần mềm ứng dụng trên một máy tính để bàn thông thường. Lớp phần mềm ứng dụng giao tiếp với hệ điều hành,
liên_kết=https://en.wikipedia.org/wiki/File:ClamTk_5.27.png|nhỏ|300x300px|[[ClamTk, một phần mềm diệt vi-rút mã nguồn mở dựa trên công cụ diệt virus ClamAV, ban đầu được Tomasz Kojm phát triển vào năm 2001.]] nhỏ|255x255px|Ảnh chụp giao diện phần mềm diệt virus có
**Phần mềm dạng dịch vụ** (**SaaS** ) là mô hình cấp phép và phân phối phần mềm trong đó phần mềm được cấp phép trên cơ sở đăng ký và được lưu trữ tập trung.
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
Phần mềm là các lệnh được lập trình mà được lưu trữ trong bộ nhớ được lưu trữ của các máy tính kỹ thuật số để bộ xử lý thực hiện. Phần mềm là một
**Phần mềm tự do nguồn mở** (Tiếng Anh: _Free and open-source software_ (Viết tắt là F/OSS, FOSS) hoặc _Free/Libre/open-source software_ (Viết tắt là FLOSS)) là loại phần mềm được bao gồm Phần mềm tự do
**Quản lý dự án phần mềm** việc lên kế hoạch có tính khoa học và nghệ thuật trong quá trình quản lý các dự án phần mềm. Nó chính là quy trình quản lý dự
**Kiến trúc phần mềm** của một chương trình máy tính hay một hệ thống tính toán là cấu trúc của các thành phần trong hệ thống đó. _Kiến trúc phần mềm_ bao gồm các phần
nhỏ|Ảnh chụp màn hình trò chơi giáo dục Chinese Tap trên Android để dạy học tiếng Trung. **Phần mềm giáo dục** là phần mềm máy tính có nhiệm vụ chính là hỗ trợ dạy học
thumb|Một kỹ sư phần mềm đang viết mã Java **Kỹ sư phần mềm** (tiếng Anh: **software engineer**) là người áp dụng các nguyên tắc/nguyên lý của công nghệ phần mềm vào việc thiết kế, phát
Trong lập trình máy tính, đặc biệt là khi sử dụng mô phạm lập trình mệnh lệnh, **assertion** (có thể dịch là **xác quyết**) là một vị ngữ (tức hàm có giá trị Boolean lên
**Mono** là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C# và Common
**Phần mềm gián điệp**, còn được dùng nguyên dạng Anh ngữ là **spyware**, là loại phần mềm chuyên thu thập các thông tin từ các máy chủ (thông thường vì mục đích thương mại) qua
Đây là danh sách **Phần mềm mã nguồn mở**: là phần mềm máy tính được cấp phép giấy phép mã nguồn mở. Bài viết này không có tham vọng liệt kê tất cả những phần
nhỏ|KYLIX3 IDE JP **Kylix** là một công cụ phần mềm cho phép phát triển các chương trình tương tự như Delphi, nhưng trên nền Linux. ## Lịch sử Kylix được công ty phần mềm Borland
**Nessus** là một công cụ quét lỗ hổng bảo mật độc quyền được phát triển bởi Công ty An ninh mạng Tenable, được phát hành miễn phí cho việc sử dụng phi thương mại. Theo
**Jenkins** là một phần mềm tự động hóa, mã nguồn mở và viết bằng Java. Dự án được tách ra từ dự án ban đầu là Hudson, sau khi xảy ra sự tranh chấp với
**Marmalade SDK** là bộ phát triển phần mềm đa nền tảng và công cụ trò chơi của Marmalade Technologies Limited (trước đây gọi là Ideaworks3D Limited) chứa tập tin thư viện, mẫu, tài liệu và
Dưới đây là danh sách các môi trường phát triển tích hợp ## Các môi trường phát triển tích hợp nguồn mở/miễn phí ### Các môi trường phát triển tích hợp đa nền miễn phí
**Hóa đơn nguyên vật liệu phần mềm** (BOM phần mềm) là danh sách các thành phần trong một phần mềm. Các nhà cung cấp phần mềm thường tạo ra các sản phẩm bằng cách lắp
**1C Company** (, ) là nhà phát triển, phân phối và xuất bản phần mềm có trụ sở chính tại Moscow, Nga. Công ty phát triển, sản xuất, cấp phép, hỗ trợ và bán phần
**Wine** là một lớp tương thích tự do nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành tương tự Unix (Linux, FreeBSD,...). Wine cũng cung cấp một thư
**Hội nghị các nhà phát triển toàn cầu WWDC** (**Apple Worldwide Developers Conference)** là một hội nghị được tổ chức hàng năm của Apple Inc. tại San Jose, California. Đây là một sự kiện để
**Mir** là một máy chủ hiển thị máy tính và gần đây, bộ tổng hợp Wayland cho hệ điều hành Linux, được phát triển bởi Canonical Ltd. Nó đã được lên kế hoạch thay thế
**_Command & Conquer: Renegade_** là game bắn súng góc nhìn người thứ nhất và thứ ba được phát triển bởi Westwood Studios và là một phần của _dòng game Command & Conquer_. Đây là trò
**Foxit Software, Inc.** là một hãng phát triển các phần mềm và công cụ để tạo, chỉnh sửa, đóng dấu và bảo mật file PDF và các tài liệu điện tử. Nó là một tập
Lịch sử phiên bản của hệ điều hành di động Android bắt đầu với việc phát hành công khai phiên bản beta đầu tiên vào ngày 5 tháng 11 năm 2007. Phiên bản thương mại
**iPhone OS 1** là bản phát hành chính đầu tiên của iOS, hệ điều hành di động của Apple. Phiên bản này ra mắt vào ngày 29 tháng 6 năm 2007. Không có tên chính
**Junos OS** (còn gọi là **Hệ điều hành Mạng Juniper**) là hệ điều hành dựa trên FreeBSD được sử dụng trong các bộ định tuyến phần cứng của hãng Juniper Networks. Đây là một
**Cura** là một ứng dụng cắt lớp cho máy in 3D mã nguồn mở. Nó được tạo ra bởi David Braam, người sau đó gia nhập Ultimaker, một công ty sản xuất máy in 3D
**Google Play Games** (còn có tên tiếng Việt là **Google Play Trò chơi**) là một dịch vụ trò chơi trực tuyến và bộ công cụ phát triển phần mềm được điều hành bởi Google, một
**iPhone OS 2** là phiên bản lớn thứ hai của iOS, hệ điều hành trên điện thoại di động của công ty Apple Inc.. iPhone OS 2 ra mắt ngày 11 tháng 7 năm 2008,
**_Smallest Federated Wiki_** là một nền tảng phần mềm do Ward Cunningham phát triển nhằm bổ sung thêm các tính năng phân nhánh được tìm thấy trong các hệ thống kiểm soát mã nguồn và
thumb|Các vòng lặp lên kế hoạch và phản hồi trong lập trình cực hạn **Lập trình cực hạn** (tiếng Anh: **Extreme programming**, viết tắt là **XP**) là một quy trình phát triển phần mềm nhằm
nhỏ|ReactOS 0.4.7 Desktop **ReactOS** là một hệ điều hành mã nguồn mở cho các máy tính cá nhân x86/x64 với mục đích tương thích nhị phân với các chương trình máy tính và driver được