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 hoàn chỉnh, và cuối cùng là công bố phần mềm đó hoặc phiên bản nâng cấp mới. Việc chia thành nhiều giai đoạn như vậy giúp cho việc quản lý, sửa lỗi và bảo trì phần mềm dễ dàng hơn.

Người dùng máy tính rất có thể đã quen với giai đoạn beta, vì các sản phẩm phần mềm đôi khi được quảng cáo công khai là đang ở dạng beta để giảm kỳ vọng của người dùng về độ tin cậy của chúng.

Các giai đoạn trong phát triển
------------------------------

### Tiền alpha

Đây là giai đoạn sơ khai nhất, bao gồm những hoạt động được thực hiện trước khi vào giai đoạn kiểm thử phần mềm. Những hoạt động trong giai đoạn này gồm có phân tích yêu cầu, thiết kế phần mềm, phát triển phần mềm, kiểm thử đơn vị (*unit testing*).

### Alpha

Giai đoạn này là pha đầu tiên bắt đầu kiểm thử phần mềm trong vòng đời phát hành (*alpha* là ký tự đầu tiên trong bảng chữ cái Hy Lạp, được sử dụng như số 1). Các kĩ thuật kiểm thử chủ yếu là hộp trắng (*white box testing*). Việc phê duyệt (*validation*) (nếu có) bằng các kĩ thuật hộp đen hoặc hộp xám sẽ được tiến hành bởi những đội ngũ kiểm thử khác.

Các phần mềm trong giai đoạn này đều chưa hoàn chỉnh và có thể gây ra mất dữ liệu hoặc crash, nên những phiên bản phần mềm như vậy thường không được công bố rộng rãi mà chỉ khuyến khích bộ phận kiểm thử hay những người tình nguyện kiểm thử sử dụng nhằm tìm kiếm lỗi. Tuy nhiên, đối với những phần mềm mã nguồn mở thì có thể có một chút khác biệt. Những phiên bản alpha của chúng thường được phân phối công khai và thường kèm theo mã nguồn của phần mềm đó.

Giai đoạn alpha luôn luôn được kết thúc bằng việc không bổ sung thêm chức năng nào nữa (*feature freeze*), như vậy có thể nói phần mềm sau giai đoạn này là "đã hoàn chỉnh về chức năng" (*feature complete*).

### Beta

Trong hệ thống bảng chữ cái Hy Lạp thì *Beta* đứng liền sau *Alpha* nên được xem là pha tiếp theo sau giai đoạn hoàn chỉnh các chức năng. Từ giai đoạn này trờ đi, các chức năng sẽ không được thêm mới vào nữa, và những chức năng mới được đề xuất bổ sung sẽ được đưa vào vòng đời mới sau khi kết thúc vòng đời hiện tại. Phần mềm trong pha này vẫn còn nhiều lỗi (*bugs*), cũng như các vấn đề về hiệu năng.

Khác với giai đoạn alpha, phần mềm ở pha này được xem là đủ ổn định (tuy vẫn chưa thể ổn định để sử dụng hằng ngày hoặc trong môi trường công việc) để công bố rộng rãi, người dùng có thể truy cập công khai và sử dụng nếu muốn. Những người sử dụng phần mềm beta với mục đích kiểm tra phát hiện lỗi và báo cáo lỗi cho nhà phát triển được gọi là *beta testers*.

Một số thuật ngữ khác thường được dùng để chỉ giai đoạn beta như **preview**, **prototype**, **techical preview (TP)**, hoặc **early access**.

#### Open và closed beta

Các nhà phát triển có thể phát hành *'*'bản beta đóng'' (*closed beta)*, còn được gọi là ''bản beta riêng tư'' (*private beta)* hoặc ''bản beta mở'' (*open beta)*, còn được gọi là ''bản beta công khai'' (*public beta)*; phiên bản beta kín được phát hành cho một nhóm cá nhân bị hạn chế để người dùng thử nghiệm theo lời mời, trong khi những người thử nghiệm beta mở thuộc một nhóm lớn hơn hoặc bất kỳ ai quan tâm. Bản beta riêng tư có thể phù hợp với phần mềm có khả năng mang lại giá trị, nhưng chưa sẵn sàng để mọi người sử dụng do các vấn đề về quy mô, thiếu tài liệu hoặc vẫn còn thiếu các tính năng quan trọng. Người kiểm tra báo cáo bất kỳ lỗi nào mà họ tìm thấy và đôi khi đề xuất các tính năng bổ sung mà họ cho rằng nên có trong phiên bản cuối cùng.

Các bản beta mở phục vụ với mục đích kép là giới thiệu sản phẩm cho người dùng tiềm năng và thử nghiệm giữa một lượng lớn người dùng có khả năng dẫn đến các lỗi nhẹ mà nhóm thử nghiệm nhỏ hơn nhiều có thể không tìm thấy

### Release Candidate

*Release Candidate* hay thường được viết tắt là **RC** là giai đoạn hậu beta, trong đó phần mềm sau khi trải qua các hoạt động phát hiện lỗi và sửa lỗi ở beta đã trở nên ổn định hơn, và có thể chuyển sang giai đoạn phát hành (*release/final*) nếu không phát hiện thêm lỗi nghiêm trọng nào nữa. Về mặt kĩ thuật, phần mềm RC được xem như đã có những thiết kế đầy đủ về các tính năng, đã hoàn thành việc viết mã và đã được áp dụng các kĩ thuật kiểm thử khác nhau, nên sẽ không có sự thay đổi nào về mã nguồn, tài liệu hay dữ liệu trừ việc sửa lỗi.

Nhiều phần mềm có thể được dự đoán trước phiên bản cuối cùng của phần mềm khi phát hành nhờ vào sự chuyển tiếp từ RC sang *Final* (từ phiên bản phần mềm hiện tại của RC nếu không có sự thay đổi về mã nguồn nào thì đó cũng chính là phiên bản được phát hành vào thời điểm được định trong kế hoạch).

### Bản phát hành ổn định

Còn được gọi là *bản phát hành sản xuất*, *bản phát hành ổn định* là *Release Candidate* cuối cùng (*RC*) sau khi đã vượt qua tất cả các xác minh/thử nghiệm. Các lỗi còn lại được coi là có thể chấp nhận. Bản phát hành này sẽ được đưa vào sản xuất. Một số miền (ví dụ: Bản phân phối Linux), có hai loại bản phát hành ổn định: bản phát hành bình thường hoặc ổn định và bản phát hành hỗ trợ dài hạn (LTS) được duy trì trong một khoảng thời gian dài hơn.

Phát hành
---------

Sau khi phát hành, phần mềm thường được gọi là "bản phát hành ổn định". Thuật ngữ chính thức thường phụ thuộc vào phương thức phát hành: phương tiện vật lý, phát hành trực tuyến hoặc ứng dụng web.

### Release to manufacturing (RTM)

Thuật ngữ phát hành để sản xuất (*release to manufacturing*-viết tắt là **RTM**), còn được gọi là "going gold", là một thuật ngữ được sử dụng khi một sản phẩm phần mềm đã sẵn sàng để giao. Bản dựng này có thể được ký điện tử, cho phép người dùng cuối xác minh tính toàn vẹn và tính xác thực của giao dịch mua phần mềm. Một bản sao của bản dựng RTM gọi là "gold master" hoặc GM được gửi đi để sao chép hàng loạt hoặc sao ra băng đĩa nếu có. Thuật ngữ này được lấy từ ngành công nghiệp ghi âm, cụ thể là quá trình làm chủ. RTM đi trước tính khả dụng chung (GA) khi sản phẩm phát hành ra công chúng. Bản dựng tổng thể vàng (GM) thường là bản dựng cuối cùng của một phần mềm trong giai đoạn beta dành cho các nhà phát triển. Thông thường, đối với iOS, đây là bản dựng cuối cùng trước khi phát hành chính, tuy nhiên, vẫn có một vài ngoại lệ.

Nó thường sử dụng trong một số bối cảnh phần mềm sản xuất hàng loạt bán lẻ—trái ngược với sản xuất hoặc dự án phần mềm chuyên dụng trong sản xuất và phân phối thương mại hoặc chính phủ—nơi phần mềm được bán như một phần của gói trong một đợt bán phần cứng máy tính có liên quan, và thường là ở nơi phần mềm và phần cứng có liên quan cuối cùng phải được cung cấp và bán đại trà/công khai tại các cửa hàng bán lẻ để chỉ ra rằng phần mềm đã đáp ứng một mức chất lượng xác định và sẵn sàng để phân phối bán lẻ hàng loạt. RTM cũng có thể có nghĩa là trong các ngữ cảnh khác rằng phần mềm đã được phân phối hoặc phát hành cho khách hàng hoặc người dùng để cài đặt hoặc phân phối tới các máy tính hoặc máy người dùng cuối phần cứng có liên quan. Thuật ngữ này *không* xác định cơ chế hoặc khối lượng giao hàng; nó chỉ nói lên chất lượng đủ để phân phối đại trà. Có thể phân phối từ tổ chức kỹ thuật thường ở dạng phương tiện chủ vàng được sử dụng để nhân bản hoặc tạo hình ảnh cho web.

### General availability (GA)

Các mốc quan trọng trong vòng đời của sản phẩm: tính khả dụng chung (*general availability*-GA), thông báo về thời điểm kết thúc vòng đời (*end of life announcement*-EOLA), ngày đặt hàng cuối cùng (*last order date*-LOD) và cuối vòng đời (*end-of-life*-EOL)
Có hiệu lực chung (*General availability*-viết tắt là **GA**) là giai đoạn tiếp thị mà tại đó tất cả các hoạt động thương mại hóa cần thiết đã hoàn thành và sản phẩm phần mềm đã có sẵn để có thể mua, tuy nhiên vẫn phải tùy thuộc vào ngôn ngữ, khu vực, tính khả dụng của phương tiện điện tử và phương tiện truyền thông. Các hoạt động thương mại hóa có thể bao gồm kiểm tra tính tuân thủ và bảo mật, cũng như nội địa hóa và tính khả dụng trên toàn thế giới. Thời gian giữa RTM và GA có thể từ một tuần đến vài tháng trong một số trường hợp trước khi có thể công bố một bản phát hành chung có sẵn do cần có thời gian để hoàn thành tất cả các hoạt động thương mại hóa theo yêu cầu của GA. Ở giai đoạn này, phần mềm đã "hoạt động".

### Release to the Web (RTW)

Phát hành lên web (*Release to the We*b**-**viết tắt là **RTW**) hoặc **Web release** là một phương tiện phân phối phần mềm sử dụng Internet để phân phối. Nhà sản xuất không sản xuất phương tiện vật lý nào trong loại cơ chế phát hành này. Các bản phát hành web đang trở nên phổ biến hơn khi việc sử dụng Internet ngày càng tăng.

Xem thêm
--------

* Quy trình phát triển phần mềm
* Tự động hóa phát hành ứng dụng
* Triển khai phần mềm

Tham khảo
---------

1. ↑  Lapidos, Juliet (7 tháng 7 năm 2009). "Why Google kept Gmail in "beta" for so many years". *Slate Magazine* (bằng tiếng Anh). Truy cập ngày 21 tháng 3 năm 2022.
2. ↑  "Encyclopedia definition of alpha version". PC Magazine. Archived from the original on 2011-04-27. Truy cập 2011-01-12.
3. ↑  "What is Golden Master (GM)? - Definition from Techopedia". *Techopedia.com* (bằng tiếng Anh).
4. ↑  "Mac OS X "Gold Master" Released To Manufacturing". *Apple Newsroom*.
5. ↑  Luxembourg, Yvan Philippe (20 tháng 5 năm 2013). "Top 200 SAM Terms – A Glossary Of Software Asset Management Terms". OMTCO. Lưu trữ bản gốc ngày 10 tháng 8 năm 2013. Truy cập ngày 21 tháng 5 năm 2013. Chú thích journal cần `|journal=` (trợ giúp)

Liên kết ngoài
--------------

* Free Software Project Management HOWTO
* Software Release Decisions Lưu trữ 2011-04-30 tại Wayback Machine
* A Methodology to Support Software Release Decisions
* Software Testing Life Cycle
* Semantic versioning

Tham khảo thư loại
------------------

* *Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation* by Jez Humble, David Farley; ISBN 0-321-60191-2

| * x
* t
* s
Chuyên ngành chính của Tin học |
| --- |
| Phần cứng •  Phần mềm |
| Công nghệ thông tin | 
* Cuộc sống nhân tạo
* Đa xử lý
* Điện toán lưới
* Đồ họa máy tính
* Hệ chuyên gia
* Hệ thống thông tin quản lý
* Hoạt họa máy tính
* Khoa học nhận thức
* Khoa học tính toán
* Khoa học thần kinh tính toán
* Khoa học thông tin
* Kiểm soát song hành
* Kiến trúc hệ thống
* Lập luận tự động
* Ngôn ngữ hình thức
* Ngôn ngữ học tính toán
* Người máy
* Robot học
* Thực tế ảo
* Tính toán song song
* Tối ưu hóa trình biên dịch
* Tổ chức máy tính
* Trí tuệ nhân tạo
* Từ điển học
* Tương tranh
* Vật lý học tính toán

 |
| Hệ thống thông tin | 
* An toàn thông tin
* Cơ sở dữ liệu đa phương tiện
* Cơ sở dữ liệu thông minh
* Dữ liệu lớn
* Hệ cơ sở tri thức
* Hệ dựa trên logic
* Hệ gợi ý
* Hệ thích nghi dựa trên ngữ cảnh
* Hệ thống hướng tác tử
* Hệ thống thông minh
* Hệ thống thông tin địa lý
* Hệ trợ giúp quyết định
* Kỹ nghệ dữ liệu
* Kỹ nghệ tri thức
* Logic mờ
* Phân tích dữ liệu
* Phân tích và thiết kế hệ thống
* Quản trị dự án
* Quản trị tri thức
* Thiết kế và quản trị dữ liệu
* Tích hợp dữ liệu
* Tính toán hiệu năng cao
* Web ngữ nghĩa
* Xử lý thông tin mờ

 |
| Khoa học máy tính | 
* Cơ sở dữ liệu phân tán
* Hệ quản trị cơ sở dữ liệu
* Hệ thống đa lõi
* Hệ thống truyền thông
* Hình học tính toán
* Hóa học tính toán
* Học máy
* Khai phá dữ liệu
* Lập trình song song
* Lý thuyết mã hóa
* Lý thuyết tính toán
* Ngôn ngữ và phương pháp dịch
* Nguyên lý ngôn ngữ lập trình
* Quy hoạch ràng buộc
* Sinh học tính toán (Tin sinh học)
* Thiết kế và phân tích thuật toán
* Tìm kiếm thông tin
* Tính toán khoa học
* Tính toán kí hiệu
* Tính toán phân tán
* Tính toán tiến hóa
* Tính toán tự nhiên
* Tối ưu hoá tổ hợp
* Xử lý song song

 |
| Kỹ thuật máy tính | 
* Đa phương tiện
* Định vị vệ tinh (GNSS)
* Giao diện người dùng
* Ghép nối máy tính
* Hệ nhúng
* Hệ thống thời gian thực
* Hiệu năng hệ thống
* Kiến trúc máy tính
* Lập trình đôi
* Lập trình đồ họa
* Lập trình hệ thống
* Lý thuyết nhận dạng
* Mạng nơ-ron
* Nhận dạng tiếng nói
* Phân tích tín hiệu
* Thị giác máy tính
* Thiết kế IC
* Thoại IP
* Tổng hợp giọng nói
* Tương tác người–máy tính
* Vi xử lý
* Xử lý ảnh
* Xử lý dữ liệu đa phương tiện
* Xử lý ngôn ngữ tự nhiên
* Xử lý tiếng nói
* Xử lý tín hiệu số

 |
| Kỹ nghệ phần mềm | 
* Bảo trì phần mềm
* Các phương pháp hình thức
* Chất lượng phần mềm
* Đảm bảo chất lượng phần mềm
* Đánh giá phần mềm
* Đo lường và quản trị phần mềm
* Độ tin cậy và chịu lỗi phần mềm
* Kiểm thử phần mềm
* Kiến trúc doanh nghiệp
* Kiến trúc phần mềm
* Kinh tế công nghệ phần mềm
* Kỹ nghệ hướng dịch vụ
* Lập trình linh hoạt
* Mẫu thiết kế
* Mô hình hóa phần mềm
* Phân tích hệ thống
* Phân tích thiết kế hướng đối tượng (UML)
* Phân tích yêu cầu phần mềm
* Phát triển phần mềm
* Quản lý cấu hình phần mềm
* Quản lý dự án phần mềm
* Quản lý kỹ thuật phần mềm
* Quy trình phát triển phần mềm (Vòng đời phát hành phần mềm)
* Thiết kế phần mềm
* Triển khai phần mềm
* Tối ưu hóa phần mềm

 |
| Mạng máy tính | 
* An ninh mạng
* An ninh trong giao dịch điện tử
* Đánh giá hiệu năng mạng (QoS)
* Điện toán đám mây
* Định tuyến
* Hệ phân tán
* Kỹ thuật truyền thông
* Lý thuyết thông tin
* Mạng không dây
* Mạng thế hệ mới
* Mạng thiết bị di động
* Mạng thông tin quang
* Mật mã học
* Mô phỏng mạng
* Nhận dạng
* Quản trị mạng
* Thiết bị truyền thông và mạng
* Thiết kế mạng
* Tính toán khắp nơi và di động
* Trung tâm dữ liệu
* Truyền thông di động
* Truyền thông đa phương tiện
* Truyền thông số
* Vệ tinh thông tin
* Viễn thông (Mạng viễn thông)
* Ước lượng tín hiệu và hệ thống
* Web thế hệ mới

 |
| Tin học kinh tế | 

| * x
* t
* s
Giám đốc công nghệ thông tin · Tin học kinh tế · Quản lý công nghệ thông tin |
| --- |
| Quản lý | 
* ITIL & ITSM
* Định hướng phát triển
* Phát triển nhân lực
* Quản lý bảo mật
* Quản lý chất lượng
* Quản lý công nghệ
* Quản lý dự án
* Quản lý mua sắm
* Quản lý ngân sách
* Quản lý nguồn lực
* Quản lý phát hành
* Quản lý rủi ro
* Quản lý tài sản
* Quản lý thay đổi
* Quản lý tích hợp
* Quản lý tổ chức
* Quản lý truyền thông
* Quản lý tuân thủ
* Quản lý vấn đề
* Thiết kế giải pháp
* Xây dựng chiến lược
* Xây dựng chính sách

 |
| Quản lý mạng | 
* Ảo hóa
* Mạng campus
* Mạng diện rộng
* Mạng nội bộ
* Mạng riêng ảo
* STP
* VLAN
* IVR
* VTP

 |
| Quản trị hệ thống | 

|  |  |
| --- | --- |
| Hoạt động vận hành | 
* Bảo trì thiết bị
* Bảo vệ hệ thống
* Đối phó sự cố
* Kế hoạch dự phòng

 |
| Hoạt động kỹ thuật | 
* Hỗ trợ kỹ thuật
* Kiểm soát truy cập
* Kiểm tra hệ thống
* Xác thực người dùng

 |
| Hoạt động an toàn | 
* An ninh nhân sự
* An ninh hệ thống
* Nhận thức an toàn
* Rủi ro hệ thống

 |

 |
| Quản lý hệ thống | 
* Bàn dịch vụ
* Quản lý cấu hình
* Quản lý công suất
* Quản lý dịch vụ
* Quản lý hạ tầng
* Quản lý khôi phục
* Quản lý người dùng
* Quản lý sự cố
* Quản lý tính liên tục
* Quản lý tính sẵn sàng
* Tổ chức công việc
* Tổ chức hỗ trợ

 |
| Kỹ năng lãnh đạo | 
* Kỹ năng cộng tác nhóm
* Kỹ năng đàm phán
* Kỹ năng giải quyết vấn đề
* Kỹ năng giao tiếp
* Kỹ năng gọi thoại
* Kỹ năng huấn luyện
* Kỹ năng lắng nghe
* Kỹ năng phân công ủy thác
* Kỹ năng phỏng vấn tuyển dụng
* Kỹ năng quản lý thời gian
* Kỹ năng tạo động lực
* Kỹ năng tư duy
* Kỹ năng thiết kế quy trình
* Kỹ năng thuyết trình
* Kỹ năng viết tài liệu kỹ thuật

 |
| Ứng dụng | 
* Chính phủ điện tử
* Giáo dục trực tuyến
* Hoạch định tài nguyên doanh nghiệp
* Kinh doanh điện tử (Mua sắm trực tuyến  **·**  Thương mại điện tử  **·**  Tiếp thị trực tuyến)
* Kinh doanh thông minh
* Quản lý quan hệ khách hàng
* Quản lý tri thức

 |
| Các lĩnh vực liên quan | 
* Kinh tế
* Luật pháp
* Tài chính
* Kế toán
* Kinh doanh
* Tổ chức
* Xã hội
* Quản lý

 |
| Quản trị kinh doanh |

 |

|  |  |
| --- | --- |
| Tiêu đề chuẩn Sửa dữ liệu tại Wikidata | 
* NKC: ph127838

 |