Ruby on rails

Các giai đoạn phát triển một phần mềm (phần 1)

Giới thiệu vấn đề

Quá trình phát triển một phần mềm từ giai đoạn hình thành ý tưởng đến khi phần mềm được triển khai đến người sử dụng cần trải qua rất nhiều hoạt động phức tạp.

Bài viết này, mình xin chia sẻ với các bạn sinh viên Công nghệ phần mềm một cách sơ lược về qui trình phát triển một phần mềm. Quá trình phát triển một phần mềm bao gồm các giai đoạn sau:

1. Thu thập và phân tích yêu cầu
Đây là giai đoạn tìm kiếm và xác định bài toán cần phát triển, sau đó đặc tả các yêu cầu của dự án về nhiều vấn đề: chức năng, phi chức năng, chi phí dự án,...
2. Phân tích, thiết kế hệ thống
Phân tích hệ thống cần xây dựng, xác định các lớp tham gia, thiết kế hệ thống về kiến trúc, chức năng, cơ sở dữ liệu, mô hình triển khai hệ thống, ...
3. Phát triển hệ thống
Đây là giai đoạn lập trình viên viết mã nguồn để tạo ra phần mềm bằng các công cụ và ngôn ngữ lập trình. Bao gồm phát triển giao diện, phần backend, cách lưu trữ tài nguyên, triển khai sản phẩm trên product
4. Kiểm thử hệ thống
Việc kiểm thử hệ thống được bắt đầu ngay trong quá trình phân tích yêu cầu, người kiểm thử đã phải nghiên cứu và viết các ca kiểm thử.
Song song với quá trình phát triển của người lập trình, người kiểm thử luôn thực hiện việc test các chức năng của chương trình để tìm ra các lỗi về chức năng, giao diện,..
5. Bảo trì và cải tiến phần mềm
Đây là giai đoạn sau khi đã hoàn thành việc phát triển và triển khai hệ thống giao cho khách hàng, hệ thống cần được bảo trì để xử lý các lỗi phát sinh cũng như là yêu cầu mới từ khách hàng.
Đây là giai đoạn tốn nhiều chi phí nhất trong quá trình phát triển phần mềm.

Thu thập và phân tích yêu cầu

1. Tìm kiếm ý tưởng

Khám phá, tìm hiểu về hệ thống đã có
Phân tích, đánh giá hệ thống đã có, tìm cơ hội xuất hiện hệ thống mới.
Phân tích các bên liên quan với hệ thống và mục tiêu của mỗi bên.
Hệ thống cần có chức năng gì để đảm bảo mục tiêu mỗi bên
Đưa ra các xung đột và rủi ro của hệ thống
Đánh giá các lựa chọn

2. Đặc tả yêu cầu phần mềm

Xác định các tác nhân hệ thống
Ở bước này, bạn cần xác định các tác nhân tham gia thao tác với hệ thống

Vẽ các biểu đồ use-case
Sau khi xác định các tác nhân tham gia vào hệ thống, với mỗi tác nhân bạn vẽ các biểu đồ ca sử dụng.
Viết đặc tả cho các Use Case
Chúng ta có thể viết đặc tả Use Case theo mẫu sau

  • Tên Use Case
  • Mã số Use Case
  • Mô tả tóm tắt
  • Các bước thực hiện
  • Yêu cầu đặc biệt
  • Yêu cầu trước khi thực hiện
  • Điều kiện sau khi thực hiện

Làm tài liệu yêu cầu
Làm tài liệu theo chuẩn IEEE Std-830, bao gồm các nội dung chính sau:

  • Giới thiệu sản phẩm
  • Chức năng sản phẩm
  • Đặc điểm của người dùng
  • Các ràng buộc chung
  • Phân chia yêu cầu
  • Đặc tả yêu cầu
  • Đặc tả chức năng
  • Yêu cầu giao diện
  • Yêu cầu hiệu suất
  • Các ràng buộc thiết kế
  • Các thuộc tính chất lượng phần mềm

Phân tích, thiết kế hệ thống

Phân tích theo phương pháp hướng đối tượng sử dụng ngôn ngữ mô hình hóa thống nhất (UML) Về UML cũng như cách vẽ một số loại biểu đồ quan trọng và thường dùng, bạn có thể tham khảo 2 bài viết sau:
Phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML phần 1
Phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML phần 2

Phân tích kiến trúc

Xác định các khóa trừu tượng
Các khóa trừu tượng là các đối tượng chính có trong hệ thống. Ví dụ như website bán hàng thì các khóa trừu tượng chính là: Khách hàng, Mặt hàng, ...

Biểu đồ các thành phần cấp cao và sự phụ thuộc giữa chúng
Các thành phần cấp cao là các thành phần trong một mô hình kiến trúc nào đó. Ví dụ như mô hình MVC, Client-Server,...

Phân tích ca sử dụng

Đầu tiên, chúng ta cần xác định các lớp biên, lớp điều khiển và lớp thực thể từ đặc tả yêu cầu tương ứng với các ca sử dụng.
Vẽ các biểu đồ tuần tự ứng với từng ca sử dụng

Vẽ biểu đồ lớp phân tích với từng lớp đã xác định

Xác định các cơ chế phân tích mỗi lớp
Các cơ chế phân tích được sử dụng trong quá trình phân tích để giảm độ phức tạp của phân tích và cải thiện tính nhất quán của nó bằng cách cung cấp cho các nhà thiết kế một biểu diễn ngắn gọn cho các hành vi phức tạp.
Một số cơ chế phân tích phổ biến như:
Bền vững Persistence dùng cho các lớp cần lưu trữ lâu dài như: Hóa đơn,...
Bảo mật Security dùng cho các lớp cần bảo mật như: Người dùng,
Phân phối Distribution
Giao diện Legacy Legacy Interface

Thiết kế hệ thống

Xác định các yếu tố thiết kế
Xác định các yếu tố thiết kế là các lớp tham gia vào hệ thống và các hệ thống con.
Phân chia các lớp có cùng thể loại vào các gói package
Biểu đồ thành phần kiến trúc và phụ thuộc

Vẽ các biểu đồ tuần tự pha thiết kế tương ứng với từng ca sử dụng
Làm mịn biểu đồ tuần tự pha phân tích để tạo ra biểu đồ tuần tự thiết kế

Thiết kế các hệ thống con
Với các hệ thống phức tạp, ta cần chia thành nhiều hệ thống con để dễ dàng quản lý và cài đặt.
Hệ thống con là tập hợp các lớp mà thao tác trên một đối tượng không có liên kết nhiều đến các lớp khác. Hệ thống con cung cấp Interface để các thành phần khác có thể sử dụng.
Ví dụ như hệ thống thanh toán trong các website thương mại điện tử.
Vẽ biểu đồ lớp thiết kế chi tiết
Làm chi tiết hóa các lớp tham gia vào ca sử dụng để vẽ biểu đồ lớp pha thiết kế

Với mỗi lớp, mô tả cụ thể từng lớp với thuộc tính và phương thức mà nó thực hiện

Mô tả cơ sở dữ liệu
Thiết kế cơ sở dữ liệu cho hệ thống gồm các bảng và liên kết giữa chúng, vẽ biểu đồ cơ sở dữ liệu quan hệ
Mô tả kiến trúc thực thi

Mô tả phân phối

Kết luận

Trên đây, mình đã nói về hai phần đầu tiên trong qui trình phát triển phần mềm đó là Thu thập và phân tích yêu cầu, Phân tích thiết kế hệ thống theo hướng đối tượng. Đây là hai phần quan trọng trong các hoạt động để tạo ra một phần mềm.
Nếu yêu cầu của hệ thống được mô tả càng chi tiết và chính xác sẽ tạp ra một bản thiết kế tốt, từ đó người lập trình viên có thể dễ dàng cài đặt chương trình.
Phần sau mình sẽ giới thiệu với các bạn các hoạt động còn lại trong quá trình tạo ra một phần mềm
Cảm ơn các bạn đã đọc bài viết

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration