Skip to content

Quy trình phát triển trong dự án OpenCPS

Tạ Tuấn Anh edited this page Mar 15, 2016 · 9 revisions

Dự án OpenCPS được phát triển dựa trên phương pháp Agile. Quá trình thực hiện dự án bao gồm các giai đoạn như sau:

####Giai đoạn khởi động Hình thành ý tưởng, định hướng chiến lược xây dựng hệ thống phần mềm OpenCPS bằng 2 tài liệu

####Giai đoạn phát triển phần mềm Giai đoạn này được phát triển liên tục theo mô hình vòng lặp các bước như sau:

  • Xác định lộ trình và xây dựng kế hoạch cho phiên bản ban hành kế tiếp tại đây
  • Thực hiện Phân tích thiết kế phần mềm OpenCPS, tham khảo các tài liệu trong kho URS; SRSSDD
  • Lập trình, kiểm thử đơn vị phần mềm và cập nhật mã nguồn vào các nhánh (bao gồm nhánh develop và các nhánh chia theo features) theo đúng quy tắc làm việc trên kho mã nguồn Github.
  • Đến ngày release trong một sprint, trưởng nhóm DEV thực hiện merge kết quả từ tất cả các nhánh phát triển vào chung một một bản gọi là alpha. Thực hiện deploy sản phẩm alpha lên server qa.opencps.vn. Chú ý khi deploy nhớ đánh dấu footer trang web phiên bản ngày deploy cuối cùng.
  • Nhóm kiểm thử thực hiện kiểm thử trên server qa.opencps.vn và phản hồi các lỗi tìm được lên hệ thống github.
  • Nhóm phát triển sửa lỗi phần mềm theo các issues và cập nhật lại vào các nhánh phát triển như ở trên
  • Thực hiện các bước trên với một vòng phát triển mới, các bug được phát hiện ở vòng trước sẽ được khắc phục và kiểm thử lại ở lần sau.

Xem thêm mô tả chi tiết về hướng dẫn phát triển phần mềm
Các nhánh phát triển gồm có: develop (nhánh core), datamgt, usermgt, accountmgt, dossiermgt, processmgt
Nhánh alpha dùng để chứa các bản test

####Giai đoạn chuẩn bị release chính thức

  • Trước ngày dự định release chính thức khoảng 2 tuần, trưởng nhóm DEV cần lập một nhánh mới với tên version dự kiến ra mắt.
  • Thực hiện merge tất cả chức năng dự kiến ra mắt vào nhánh RC này.
  • Triển khai lên kết quả lên server beta.opencps.vn. Chú ý footer trang web phải đánh dấu version dự kiến release
  • Nhóm test kiểm tra và đưa issues lên github
  • Nhóm dev sửa lỗi trên nhánh RC cho hết các lỗi phát hiện ra trên beta.opencps.vn
  • Đến ngày release chính thức, trưởng nhóm DEV merge kết quả nhánh RC vào nhánh master và tạo tag sản phẩm
  • Các kết quả của nhánh RC cũng được merge ngược lại vào nhánh develop và sau đó vào các nhánh phát triển khác của dự án

####Giai đoạn triển khai Giai đoạn này liên quan đến triển khai sử dụng phần mềm bao gồm các công việc:

  • Xây dựng các hướng dẫn về chuẩn bị hạ tầng và tạo dựng các kịch bản để tự động hóa quá trình cài đặt OpenCPS kèm theo một số mẫu ứng dụng được dựng sẵn tại kho deploy
  • Triển khai phiên bản mới nhất của sản phẩm đã được ban hành theo lộ trình lên server demo sản phẩm tại địa chỉ opencps.vn
  • Xây dựng các tài liệu hướng dẫn dành cho các đối tượng người sử dụng OpenCPS
  • Thực hiện hotfix phần mềm đối với các phiên bản đã được triển đến tay người dùng (qua trang opencps.vn) trên một nhánh riêng hotfix tại kho github. Sau khi kiểm thử khắc phục hết lỗi hotfix thì thực hiện phát hành phiên bản mới vào nhánh master và đồng thời merge lại các sửa đổi lỗi hotfix vào nhánh develop.

Quy định đánh nhãn version OpenCPS với 3 số a.b.c trong đó:

  • a đánh số dòng sản phẩm của OpenCPS, a chỉ được tăng khi có sự thay đổi lớn về kiến trúc hoặc cải tiến lớn về chức năng sản phẩm
  • b tăng tuần tự theo từng vòng phát triển (sprint) của sản phẩm OpenCPS
  • c được tăng cho mỗi lần phát hành bản hotfix của một bản đã phát hành trong nhánh master

Ví dụ các nhãn 1.0.0, 1.1.0, ... được dùng cho các phiên bản phát hành trong lộ trình, 1.0.1, 1.0.2, 1.1.1,... là nhãn được dùng cho các phiên bản hotfix.

Clone this wiki locally