Thiết kế "mở" là gì?

Đã bao giờ bạn nghe khái niệm thiết kế mở? Có khái niệm phần mềm mở, hệ thống mở... Vậy thiết kế mở thì sẽ như thế nào?

Thiết kế phần mềm là khâu thứ 2 (sau giai đoạn thu thập, làm rõ yêu cầu) nên đóng vai trò quan trọng trong quá trình chuyển từ yêu cầu sang tính năng của phần mềm.

Sau đây TIGOSOFT sẽ trình bày một thí dụ thực tế hết sức đơn giản dễ hiểu, một thí dụ "real-world case study" lấy từ chính dự án mà TIGO team đã triển khai cho một tập đoàn lớn trong nước.


Hình 1: Trang khai báo và đăng tải báo cáo. Bạn có nhận thấy grid động với số hàng được thêm/xóa ngay trên trang? Đó chính là tính năng Bulk Edit rất tiện lợi khi người dùng có thể thao tác cùng lúc trên cùng một trang, với khung nhìn tổng quan hơn là cách thiết kế theo tiến trính (wirzard) nhiều bước.


Hình 2: Hãy tưởng tượng, khi phát triển version 2.0, khách hàng yêu cầu tính năng đính kèm files vào từng dự án đang được liệt kê trong grid ở trên. Vấn đề mới phát sinh? Không có cách nào khác, bạn và các cộng sự phải thiết kế một form riêng để quản lý các thông tin dự án. 

Một rủi ro khác là khi thiết kế tất cả trong một (all-in-one) như trên, toàn bộ data sẽ được lưu bất chấp bạn chỉ update 1 trường thông tin nhỏ. Quá trình kiểm thử (testing) và nghiệm thu thực tế (UAT) sẽ rất vất vả khi không thể "chia nhỏ" để kiểm tra.

Thiết kế mở là gì?

Thiết kế mở là khi thiết kế không thay đổi đáng kể về cấu trúc (thêm form, thêm mẫu...) khi cần mở rộng chúng theo chiều ngang và chiều dọc. Bạn có thể thêm trường, bạn có thể tự định nghĩa trường (custom fields)...

Thí dụ về thiết kế mở:


Hình 3: Bằng cách chia để trị (nhóm các thông tin theo từng cụm liên quan) và trao quyền "tự trị" (save, delete...) cho từng nhóm thông tin, bạn đã có thể tự tạo ra thiết kế mở cho chính mình.

Bài viết tuy ngắn gọn nhưng đã truyền tải được toàn bộ thí dụ thực tế. Nếu còn băn khoăn chưa rõ, hãy liên hệ với tác giả để biết thêm chi tiết. Emnail: phamdinhtruong@gmail.com

Tác giả: Phạm Đình Trường
Nguồn: https://www.tigosolutions.com/articlestory/37