TẤT TẦN TẬT VỀ PHÁT TRIỂN HỆ THỐNG VÀ PHẦN MỀM – Ngôn từ ma thuật

1. Giới thiệu về điểm giống và khác nhau giữa “Quy trình phát triển hệ thống” và “Quy trình phát triển phần mềm”

Mọi người thường nghe về các “quy trình phát triển hệ thống” và “quy trình phát triển phần mềm”. Nếu là dân mới newbie (mới bước vào ngành IT) thì hẳn sẽ nghĩ 2 cụm từ này có ý nghĩa tương đồng nhau. À thì chắc cũng là quá trình tạo ra một sản phẩm công nghệ thôi chứ gì? Để giải thích về 2 quá trình này, trước hết bạn phải hiểu về định nghĩa của hệ thống và phần mềm.

● Hệ thống là một tập hợp các thành phần tương tác với nhau để đạt được một mục tiêu nhất định. Các thành phần này có thể bao gồm phần cứng, phần mềm, dữ liệu, quy trình và con người.

・Ví dụ: hệ thống thông tin quản lý khách hàng của một công ty, hệ thống bán hàng, hệ thống quản lý phân phối hàng hoá,…

● Phần mềm là một chương trình hoặc một tập hợp các chương trình được thiết kế để đáp ứng một mục tiêu cụ thể. Nó bao gồm các chỉ thị, lệnh và thủ tục được sử dụng để thực hiện một nhiệm vụ hoặc giải quyết một vấn đề.

・Ví dụ về phần mềm bao gồm hệ điều hành, các ứng dụng văn phòng như Microsoft Word hay các trình duyệt web như Google Chrome,…

Vậy bây giờ chúng ta sẽ tìm hiểu về sự giống và khác nhau giữa quy trình phát triển hệ thống và quy trình phát triển phần mềm nhé.

 

✳︎ Điểm tương đồng

Điểm tương đồng
Quy trình phát triển hệ thống + Quy trình phát triển phần mềm

Phải đáp ứng yêu cầu khách hàng
Cả hai đều cần phải đáp ứng yêu cầu của khách hàng hoặc người dùng

Tính khả thi
Cả hai đều cần phải đánh giá tính khả thi của dự án trước khi bắt đầu phát triển

Thiết kế
Cả hai đều cần phải có giai đoạn thiết kế để đảm bảo hệ thống hoặc phần mềm phát triển được theo đúng yêu cầu

Triển khai
Cả hai đều cần phải triển khai hệ thống hoặc phần mềm để đưa vào sử dụng

Bảo trì và nâng cấp
Cả hai đều cần phải được bảo trì và nâng cấp để đảm bảo tính ổn định và tiến độ phát triển

 

✳︎ Điểm khác biệt

Điểm khác biệt
Quy trình phát triển hệ thống
Quy trình phát triển phần mềm

Mục tiêu
Phát triển một hệ thống hoạt động
Phát triển phần mềm

Đối tượng
Hệ thống phần cứng và phần mềm
Phần mềm

Tiến độ
Có thể mất nhiều thời gian
Thường có thời gian ngắn hơn

Công nghệ
Tập trung vào phần cứng
Tập trung vào phần mềm

Độ phức tạp
Thường có độ phức tạp cao hơn
Thường có độ phức tạp thấp hơn

Kiểm thử
Thường thực hiện kiểm thử hệ thống
Thường thực hiện kiểm thử phần mềm

Tính tương tác
Có thể tương tác với nhiều hệ thống khác nhau
Thường chỉ tương tác với một hệ thống duy nhất

Phạm vi
Phạm vi rộng hơn, bao gồm cả phần mềm và phần cứng
Phạm vi hẹp hơn, tập trung chủ yếu vào phần mềm

Tiến trình phát triển
Thường chia làm các giai đoạn, từ thiết kế đến triển khai
Thường sử dụng các phương pháp Agile, đặc biệt là Scrum để phát triển

 

Mục lục bài viết

2.

Các công đoạn chung trong quy trình phát triển hệ thống và phát triển phần mềm:

 

Công đoạn
Phát triển hệ thống
Phát triển phần mềm

Thu thập yêu cầu
Thu thập và phân tích yêu cầu hệ thống từ khách hàng
Thu thập và phân tích yêu cầu phần mềm từ khách hàng

Thiết kế hệ thống
Thiết kế cơ sở hạ tầng, hệ thống và kiến trúc
Thiết kế kiến trúc phần mềm và các module bên trong

Phát triển
Triển khai và lập trình hệ thống, giao diện và ứng dụng
Lập trình các module, phát triển giao diện và các tính năng phần mềm

Kiểm thử
Kiểm tra hệ thống trước khi đưa vào sử dụng
Kiểm thử phần mềm trước khi đưa vào sử dụng

Triển khai
Đưa hệ thống vào hoạt động và hỗ trợ sử dụng
Đưa phần mềm vào hoạt động và hỗ trợ sử dụng

Bảo trì 
Cập nhật và bảo trì hệ thống để đáp ứng nhu cầu của khách hàng
Cập nhật và bảo trì phần mềm để đáp ứng nhu cầu của khách hàng

 

Hình ảnh minh hoạ: 

 

 

3. Các loài tài liệu được sử dụng trong quy trình phát triển hệ thống và phát triển phần mềm:

Các loại tài liệu được sử dụng trong quy trình phát triển hệ thống và phát triển phần mềm có nhiều điểm chung với nhau.

Các loại tài liệu thường được sử dụng trong quy trình phát triển hệ thống và phát triển phần mềm bao gồm:

  1. Tài liệu yêu cầu: tài liệu này đưa ra các yêu cầu chức năng và phi chức năng của hệ thống hoặc phần mềm.

  2. Tài liệu thiết kế: tài liệu này đưa ra các thiết kế chi tiết cho hệ thống hoặc phần mềm, bao gồm cấu trúc, giao diện người dùng, cơ chế hoạt động, v.v.

  3. Tài liệu kiểm thử: tài liệu này đưa ra kế hoạch kiểm thử và các kết quả kiểm thử cho hệ thống hoặc phần mềm.

  4. Tài liệu triển khai: tài liệu này đưa ra hướng dẫn triển khai hệ thống hoặc phần mềm trong môi trường sản xuất.

  5. Tài liệu hướng dẫn sử dụng: tài liệu này đưa ra hướng dẫn sử dụng hệ thống hoặc phần mềm cho người dùng cuối.

Tuy nhiên, có thể có một số loại tài liệu được sử dụng chỉ trong một quy trình nhất định. Ví dụ, tài liệu thiết kế phần cứng có thể chỉ được sử dụng trong quy trình phát triển hệ thống và không áp dụng cho phát triển phần mềm. Tuy nhiên, nhìn chung, các loại tài liệu được sử dụng trong quy trình phát triển hệ thống và phát triển phần mềm có nhiều điểm chung với nhau.

4. Các loại tài liệu được sử dụng trong quy trình phát triển hệ thống

   4.1. Trong giai đoạn 上流工程 (hay còn gọi là giai đoạn thiết kế đầu tiên) khi phát triển phần mềm, các loại tài liệu cần được tạo ra để đảm bảo sự thành công của dự án. Các loại tài liệu này bao gồm:

  1. Business case:

    Tài liệu này sẽ trình bày các lý do và lợi ích kinh tế của dự án, giúp các bên liên quan đánh giá xem dự án có khả thi hay không.

  2. Feasibility study

    : Tài liệu này sẽ trình bày các lựa chọn về công nghệ, cơ sở hạ tầng, kiến trúc và các yếu tố khác liên quan đến dự án. Nó cũng sẽ đánh giá các rủi ro và các giải pháp khả thi để giải quyết các vấn đề đó.

  3. Vision and scope document

    : Tài liệu này sẽ xác định mục tiêu của dự án, phạm vi của sản phẩm, các yêu cầu chức năng và phi chức năng cần thiết. Nó sẽ giúp các bên liên quan hiểu rõ và đồng ý với mục tiêu và phạm vi của dự án.

  4. Requirements document

    : Tài liệu này sẽ mô tả chi tiết các yêu cầu về chức năng và phi chức năng của hệ thống. Các yêu cầu này sẽ được sử dụng để xác định các tính năng và chức năng cần thiết để phát triển phần mềm.

  5. Design document

    : Tài liệu này sẽ mô tả kiến trúc và các phương pháp thiết kế cần thiết để triển khai các yêu cầu đã được xác định trong tài liệu yêu cầu.

  6. Test plan

    : Tài liệu này sẽ mô tả kế hoạch kiểm thử để đảm bảo rằng phần mềm đáp ứng đầy đủ các yêu cầu chức năng và phi chức năng đã được xác định trong tài liệu yêu cầu.

  7. Project plan

    : Tài liệu này sẽ xác định các hoạt động, nguồn lực và thời gian cần thiết để hoàn thành dự án. Nó sẽ giúp các bên liên quan đánh giá và theo dõi tiến độ của dự án.

Các tài liệu này sẽ được tạo ra trong giai đoạn 上流工程 để đảm bảo rằng dự án được thực hiện đúng thời gian, đủ chất lượng và đáp ứng được các yêu cầu của khách hàng.

 

   4.2. Giai đoạn 下流工程 (hay còn gọi là giai đoạn thực hiện) trong quá trình phát triển phần mềm là giai đoạn thực hiện các công đoạn đã được thiết kế và đã được xác định trong giai đoạn 上流工程. Các tài liệu được tạo ra trong giai đoạn này bao gồm:

  1. Source code

    : Đây là mã nguồn của phần mềm, bao gồm các hàm, class, module và các phần mềm liên quan khác. Mã nguồn sẽ được viết bởi các lập trình viên và được lưu trữ trong hệ thống quản lý phiên bản để đảm bảo tính toàn vẹn và dễ quản lý.

  2. Test cases

    : Các trường hợp kiểm thử sẽ được xác định trong giai đoạn 上流工程 và được triển khai trong giai đoạn này. Các kịch bản kiểm thử sẽ giúp đảm bảo rằng phần mềm đáp ứng được các yêu cầu và chức năng đã được xác định trong tài liệu yêu cầu.

  3. User manual

    : Tài liệu hướng dẫn sử dụng được tạo ra để giúp người dùng hiểu và sử dụng phần mềm một cách dễ dàng và hiệu quả. Tài liệu này bao gồm các hướng dẫn về cài đặt, sử dụng và bảo trì phần mềm.

  4. Technical documentation

    : Tài liệu kỹ thuật được tạo ra để giải thích kiến trúc và cách thức hoạt động của phần mềm. Tài liệu này giúp các lập trình viên, nhà thiết kế và các chuyên gia khác hiểu rõ về phần mềm và cách thức hoạt động của nó.

  5. Deployment plan

    : Tài liệu này xác định cách triển khai phần mềm vào môi trường sản xuất. Nó bao gồm các bước cần thiết để triển khai phần mềm, các phần mềm và phần cứng yêu cầu, cấu hình hệ thống và các công cụ cần thiết để theo dõi và quản lý việc triển khai.

  6. Maintenance documentation

    : Tài liệu bảo trì được tạo ra để giúp đảm bảo phần mềm hoạt động ổn định và hiệu quả trong suốt thời gian hoạt động. Tài liệu này bao gồm các hướng dẫn về bảo trì, cập nhật và nâng cấp phần mềm.

Các tài liệu được tạo ra trong giai đoạn 下流工程 rất quan trọng để đảm bảo rằng phần mềm được triển khai và bảo trì một cách hiệu quả và đúng đắn. Nó cũng giúp các bên liên quan hiểu rõ hơn về phần mềm và cách thức triển khai và sử dụng nó.

Ngoài các tài liệu trên, trong giai đoạn này còn có một số tài liệu khác như:

  1. Release notes

    : Tài liệu này cung cấp thông tin về phiên bản phần mềm mới và các tính năng và cải tiến mới được thêm vào. Nó cũng cung cấp các hướng dẫn cho người dùng về cách sử dụng các tính năng mới.

  2. Bug reports

    : Khi các lỗi phát hiện ra trong quá trình kiểm thử hoặc sử dụng phần mềm, các lập trình viên sẽ tạo ra các báo cáo lỗi để giải quyết chúng. Các báo cáo này bao gồm mô tả lỗi, các bước để tái hiện lỗi và các bước để khắc phục lỗi.

  3. Change requests

    : Nếu khách hàng hoặc người dùng yêu cầu thay đổi hoặc thêm tính năng mới vào phần mềm, các yêu cầu thay đổi sẽ được tạo ra để theo dõi và quản lý các yêu cầu này.

  4. Acceptance criteria

    : Tiêu chuẩn chấp nhận là một tài liệu quan trọng trong quá trình triển khai phần mềm. Nó bao gồm các tiêu chí và yêu cầu cần được đáp ứng để đảm bảo rằng phần mềm đáp ứng được các yêu cầu và chức năng đã được xác định trong tài liệu yêu cầu.

Các tài liệu này sẽ giúp đảm bảo rằng phần mềm được triển khai và bảo trì một cách hiệu quả và đúng đắn. Đồng thời, nó cũng giúp cho các bên liên quan có thể theo dõi và kiểm soát tiến độ và chất lượng của phần mềm trong quá trình triển khai và sử dụng.

 

Trong giai đoạn thiết kế hệ thống, các tài liệu quan trọng nhất bao gồm:

  1. Yêu cầu hệ thống (System requirements document)

    : Tài liệu này bao gồm các yêu cầu chức năng và phi chức năng của hệ thống, định nghĩa các yêu cầu cơ bản cho hệ thống, phạm vi dự án và các tiêu chuẩn và quy định phù hợp với hệ thống.

  2. Phân tích hệ thống (System analysis document)

    : Tài liệu này bao gồm mô tả chi tiết về hệ thống, bao gồm các đối tượng, quy trình, dữ liệu và luồng công việc. Tài liệu này cung cấp một cái nhìn tổng quan về cách hệ thống sẽ hoạt động.

  3. Thiết kế kiến trúc hệ thống (System architecture design document)

    : Tài liệu này mô tả kiến trúc của hệ thống bao gồm cấu trúc logic và vật lý của hệ thống. Tài liệu này nêu rõ các phần tử của hệ thống, cách chúng tương tác với nhau và mối quan hệ giữa chúng.

  4. Đặc tả hệ thống (System specification document)

    : Tài liệu này bao gồm các thông tin chi tiết về các yêu cầu của hệ thống, các chức năng và phi chức năng của hệ thống. Tài liệu này được dùng để đảm bảo rằng các chức năng và yêu cầu của hệ thống đáp ứng được các yêu cầu của khách hàng.

  5. Kế hoạch phát triển hệ thống (System development plan document)

    : Tài liệu này bao gồm kế hoạch thực hiện dự án, lịch trình công việc, phân chia trách nhiệm và phân bổ nguồn lực. Tài liệu này giúp đảm bảo rằng dự án được triển khai đúng tiến độ và đảm bảo chất lượng.

5. Tổng kết

Tài liệu thiết kế hệ thống (System design document) thường được tạo ra trước tài liệu trình tự phát triển phần mềm (Software development life cycle document). Điều này đúng với các phương pháp phát triển phần mềm truyền thống, trong đó giai đoạn thiết kế hệ thống được thực hiện trước khi bắt đầu các hoạt động phát triển phần mềm.

Tuy nhiên, trong các phương pháp phát triển phần mềm hiện đại, như Agile hoặc DevOps, thiết kế hệ thống và phát triển phần mềm diễn ra song song và được thực hiện theo các vòng lặp ngắn, để đảm bảo sự linh hoạt và đáp ứng nhanh chóng với yêu cầu của khách hàng. Trong trường hợp này, các tài liệu thiết kế hệ thống và trình tự phát triển phần mềm có thể được tạo ra cùng nhau hoặc lồng vào nhau trong các vòng lặp.

 

Mọi người có thể tìm hiểu thêm về 

🌟CÁC MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM

🌟QUÁ TRÌNH SẢN XUẤT MỘT SẢN PHẨM CÔNG NGHỆ

🌟REQUIREMENT – BASIC DESIGN – DETAIL DESIGN LÀ GÌ?

🌟QUY TRÌNH PHÁT TRIỂN PHẦN MỀM

🌟TRÌNH TỰ THIẾT KẾ HỆ THỐNG