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 sử dụng và an toàn vận hành của phần mềm. Bảo trì phần mềm có thể chiếm đến 65%-75% công sức trong vòng đời của một phần mềm.
Quá trình phát triển phần mềm bao gồm rất nhiều giai đoạn: thu thập yêu cầu, phân tích, thiết kế, xây dựng, kiểm tra, triển khai và bảo trì phần mềm. Nhiệm vụ của giai đoạn bảo trì phần mềm là giữ cho phần mềm được cập nhật khi môi trường thay đổi và yêu cầu người sử dụng thay đổi.
Theo IEEE (1993), thì bảo trì phần mềm được định nghĩa là việc sửa đổi một phần mềm sau khi đã bàn giao để chỉnh lại các lỗi phát sinh, cải thiện hiệu năng của phần mềm hoặc các thuộc tính khác, hoặc làm cho phần mềm thích ứng trong một môi trường đã bị thay đổi. Bảo trì phần mềm được chia thành bốn loại:
- Sửa lại cho đúng (corrective): là việc sửa các lỗi hoặc hỏng hóc phát sinh. Các lỗi này có thể do lỗi thiết kế, lỗi logic hoặc lỗi coding sản phẩm. Ngoài ra, các lỗi cũng có thể do quá trình xử lý dữ liệu, hoặc hoạt động của hệ thống.
- Thích ứng (adaptative): là việc chỉnh sửa phần mềm cho phù hợp với môi trường đã thay đổi của sản phẩm. Môi trường ở đây có nghĩa là tất các yếu tố bên ngoài sản phẩm như quy tắc kinh doanh, luật pháp, phương thức làm việc,...
- Hoàn thiện: chỉnh sửa để đáp ứng các yêu cầu mới hoặc thay đổi của người sử dụng. Loại này tập trung vào nâng cao chức năng của hệ thống, hoặc các hoạt động tăng cường hiệu năng của hệ thống, hoặc đơn giản là cải thiện giao diện. Nguyên nhân là với một phần mềm thành công, người sử dụng sẽ bắt đầu khám phá những yêu cầu mới, ngoài yêu cầu mà họ đã đề ra ban đầu, do đó, cần cải tiến các chức năng.
- Bảo vệ (preventive): mục đích là làm hệ thống dễ dàng bảo trì hơn trong những lần tiếp theo.
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**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
**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
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
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 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
**Hỗ trợ dài hạn** (, viết tắt: LTS) là chính sách quản lý vòng đời sản phẩm phần mềm, trong đó bản phát hành ổn định của phần mềm máy tính được duy trì trong
**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 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 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ỏ|Ả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
**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
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 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
nhỏ|400x400px|Giấy phép phần mềm trong bối cảnh bản quyền theo Mark Webbink. Từ trái sang phải ít quyền cho người được cấp phép/user của một phần mềm và nhiều hơn nữa quyền giữ lại bở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
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ó
**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ư
**RPM Package Manager** (**RPM**) (ban đầu là **Red Hat Package Manager**; bây giờ là một từ viết tắt đệ quy) là một trình quản lý gói. Tên gọi RPM đề cập đến: định dạng file.rpm,
**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ự
**Phần mềm ác ý**, còn gọi là **phần mềm ác tính**, **phần mềm độc hại**, **phần mềm gây hại** hay **mã độc** (tiếng Anh: **malware** là sự ghép của hai chữ _malicious_ và _software_) là
**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ần mềm giỏ hàng** (Tiếng Anh: _Shopping cart software_) là một phần mềm thương mại điện tử (e-commerce software) cho phép khách hàng truy cập vào một trang web, chọn lựa và mua sắm các
**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
**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
**Công** **nghiệp phần mềm** bao gồm các doanh nghiệp phát triển, bảo trì và xuất bản phần mềm đang sử dụng các mô hình kinh doanh khác nhau, chủ yếu là "dựa trên giấy phép
Đâ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ỏ|phải|Một ổ USB Flash Driver đặt bên cạnh một thước milimet **Portable application**, còn gọi là **portable software**, tạm dịch là **phần mềm xách tay**, là phần mềm không cần phải cài đặt vào máy
**Deep Freeze**, sản xuất bởi Faronics, là một ứng dụng dành cho các hệ điều hành Microsoft Windows, Mac OS X, và SUSE Linux cho phép quản trị viên hệ thống bảo vệ phần cốt
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** ()
**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ố
**Pegasus** là một phần mềm gián điệp của tập đoàn Israel NSO Group dùng để theo dõi các thiết bị iOS và Android. Phần mềm có thể lén lút truy cập tất cả các dữ
**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
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
**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
**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
nhỏ|Một trang trong nhật ký của máy tính cơ điện Harvard Mark II, có hình một con bướm đêm đã chết đã được lấy ra khỏi thiết bị **Lỗi phần mềm** là một lỗi hay
**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
**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
**Phần mềm thời gian thực** (_real-time software_) là các chương trình giám sát/phân tích/điều khiển các sự kiện trong thế giới thực ngay khi nó xảy ra. Các phần tử của phần mềm thời gian
**Hệ thống phần mềm** (tiếng Anh: **software system**) là một hệ thống các thành phần liên lạc nội bộ dựa trên phần mềm để tạo nên một phần của hệ thống máy tính (một sự
**Terraform** là một công cụ cơ sở hạ tầng dưới dạng mã mã nguồn mở do HashiCorp phát triển. Người dùng khai báo và cung cấp cơ sở hạ tầng trung tâm dữ liệu bằng
**Phần mềm quản lý doanh nghiệp** bao gồm tất cả các phần mềm thuộc về quản trị kinh doanh mà một doanh nghiệp sử dụng để hoàn tất việc kinh doanh của họ, giúp họ
**BiP** là một phần mềm nhắn tin tức thời miễn phí được phát triển bởi Lifecell Ventures Cooperatief U.A., một công ty con của Turkcell tại Hà Lan. Phần mềm cho phép người dùng gửi
**Mastodon** là một dịch vụ mạng xã hội tự do nguồn mở hoạt động với hình thức tự lưu trữ (self-hosting). Nó cho phép bất cứ ai cũng có thể xây dựng một hệ thống
**Telegram Messenger** là một dịch vụ nhắn tin tức thời miễn phí, đa nền tảng, mã hóa. Ứng dụng này cũng cung cấp các cuộc trò chuyện được mã hóa đầu cuối, thường được gọi
**Line** (cách điệu: **LINE**) là một ứng dụng và dịch vụ miễn phí của Nhật Bản dành cho nhắn tin tức thời và mạng xã hội, được điều hành bởi công ty Nhật Bản LY
**Havok** là một bộ ứng dụng tích hợp middleware được phát triển bởi công ty Ireland Havok. Havok cung cấp engine vật lý và các tính năng khác cho các trò chơi điện tử. Tháng
**Amino** là một ứng dụng truyền thông xã hội ban đầu được phát triển bởi Narvii, Inc. Nó ban đầu được tạo ra bởi Yin Wang và Ben Anderson vào năm 2014. Amino được MediaLab
**Paranoid Android** là một hệ điều hành mã nguồn mở cho điện thoại thông minh và máy tính bảng, dựa trên nền tảng di động Android. ## Lịch sử Paranoid Android được thành lập bởi