Phát triển phần mềm là việc chuyển nhu cầu của người dùng hoặc mục tiêu tiếp thị thành một sản phẩm phần mềm. Phát triển phần mềm đôi khi được hiểu là sự bao gồm các quá trình của kỹ nghệ phần mềm cộng với sự nghiên cứu và các mục tiêu tiếp thị phần mềm để phát triển những sản phẩm phần mềm máy tính. Nó tương phản với tiếp thị phần mềm, vì nó có thể có hoặc không liên quan tới phát triển sản phẩm mới.
Thường thì khó để phân định được giữa kỹ thuật và tiếp thị, cái nào đóng vai trò quan trọng hơn trong việc thành bại của một sản phẩm phần mềm bằng cách đánh giá sự thỏa mãn mong đợi của người dùng. Đó là lý do tại sao việc hiểu rằng cả hai quá trình và/hoặc sự hợp tác hiệu quả giữa cả kỹ thuật và tiếp thị trong toàn bộ quá trình phát triển phần mềm, là rất quan trọng. Sự quan tâm về mặt kỹ thuật lẫn tiếp thị thường được xem xét một cách cân bằng bởi giám đốc dự án.
Vấn đề tiếp thị còn được gọi là phân tích yêu cầu phần mềm. Vì phát triển phần mềm có thể bao gồm việc thỏa hiệp hay vượt ra ngoài yêu cầu của người dùng cuối, nên một dự án phát triển phần mềm phải thực hiện những công việc thường không dính dáng đến kỹ thuật như nghiên cứu thị trường, nguồn nhân lực, quản lý rủi ro, sở hữu trí tuệ, ngân quỹ, quản lý khủng hoảng, v.v... Những công việc này sẽ đóng vai trò là sự phát triển kinh doanh đi kèm với phát triển phần mềm.
Trong cuốn sách "Những tranh cãi phần mềm vĩ đại", Alan M. Davis đã nói trong chương "Requirements" (các yêu cầu), phần "The Missing Piece of Software Development" (Những mảnh còn thiếu của Phát triển phần mềm):
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**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
**Nhà phát triển phần mềm** là một cá nhân hay một tổ chức có liên quan đến các vấn đề trong quá trình phát triển phần mềm ở mức cao hơn việc chỉ thiết kế
**Phát triển phần mềm** là việc chuyển nhu cầu của người dùng hoặc mục tiêu tiếp thị thành một sản phẩm phần mềm. Phát triển phần mềm đôi khi được hiểu là sự bao gồm
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
**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.
Trong điện toán, **phát triển phần mềm hướng khía cạnh** (tiếng Anh: _aspect-oriented software development_, viết tắt: AOSD) là một quy trình phát triển phần mềm nhằm tìm kiếm mô đun mới của hệ thố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
**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à
**Phát triển theo hướng thử nghiệm** (tiếng Anh: **Test-driven development**, viết tắt: **TDD**) là một quy trình phát triển phần mềm dựa trên sự lặp lại của một chu kỳ phát triển rất ngắn: thay
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
**Triển khai phần mềm** (tiếng Anh: **Software deployment**) là tât cả các hoạt động khiến một hệ thống phần mềm sẵn sàng cho việc sử dụng. Quá trình triển khai chung bao gồm một số
**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ụ
**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
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,
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
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
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
**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
**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
NetBeans IDE 5.0, một môi trường phát triển hợp nhất nguồn mở. **Môi trường phát triển tích hợp** (tiếng Anh: _integrated development environment_; viết tắt: _IDE_) còn được gọi là "_Môi trường thiết kế hợp
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ô hình của vòng đời phát triển hệ thống, làm nổi bật giai đoạn bảo trì. Trong kỹ thuật hệ thống, hệ thống thông tin và công nghệ phần mềm, **vòng đời phát triển hệ
**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
**Delphi** là sản phẩm phần mềm sử dụng phương ngữ Delphi của ngôn ngữ lập trình Object Pascal và cung cấp môi trường phát triển tích hợp (IDE) để phát triển ứng dụng nhanh chóng
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
**Công nghệ phần mềm** () là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm. Ngành
**Quỹ Phần mềm Tự do** hay **Tổ chức Phần mềm Tự do** (tiếng Anh: _Free Software Foundation_, viết tắt **FSF**) là một tổ chức phi lợi nhuận do Richard Stallman thành lập ngày 4 tháng
**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
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
Đâ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
**Git** (, đọc là "Ghít") là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus Torvalds vào năm 2005, ban đầu dành cho việc phát triển nhân Linux. Hiện nay, Git
**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
**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à
**Bảo trì phần mềm** (tiếng Anh _software maintenance_) bao gồm điều chỉnh các lỗi mà chưa được phát hiện trong các giai đoạn trước của vòng đời của một phần mềm, nâng cấp tính năng
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í
Tiếng Nhật Công Nghệ Thông Tin Trong Ngành Phần Mềm Cuốn sách Tiếng Nhật công nghệ thông tin trong ngành phần mềm là lời giải cho bài toán Học tiếng Nhật thế nào để có
Tiếng Nhật Công Nghệ Thông Tin Trong Ngành Phần Mềm Cuốn sách Tiếng Nhật công nghệ thông tin trong ngành phần mềm là lời giải cho bài toán Học tiếng Nhật thế nào để có
**Thiết kế phần mềm** là một quá trình giải quyết vấn đề và lập kế hoạch cho một giải pháp phần mềm.Sau khi các mục đích và đặc điểm kĩ thuật của phần mềm được
Cuốn sách Tiếng Nhật công nghệ thông tin trong ngành phần mềm là lời giải cho bài toán Học tiếng Nhật thế nào để có thể ứng dụng ngay được vào công việc. Nội dung
**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_.
**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
**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ư
**Phân phối liên tục **(tiếng Anh: Continuous delivery - viết tắt: CD) là một cách tiếp cận của kỹ thuật phần mềm, trong đó các đội sẽ sản xuất phần mềm trong chu kỳ ngắn,
**Phần mềm quảng cáo** hay **nhu liệu quảng cáo** thường đính kèm với những mẩu quảng cáo nhỏ, chúng thường được phân phát dưới hình thức phần mềm miễn phí hay phiên bản dùng thử.
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