Tôi phải ghi lại chương trình của mình cho một dự án trường học và chúng tôi có phần gọi là "miền vấn đề" nhưng tôi không biết phải thảo luận điều gì trong phần này.
Vì vậy, câu hỏi là: Điều gì nên được thảo luận trong lĩnh vực vấn đề?
Tôi phải ghi lại chương trình của mình cho một dự án trường học và chúng tôi có phần gọi là "miền vấn đề" nhưng tôi không biết phải thảo luận điều gì trong phần này.
Vì vậy, câu hỏi là: Điều gì nên được thảo luận trong lĩnh vực vấn đề?
Câu trả lời:
Tôi viết phần mềm nhúng cho thiết bị viễn thông. Miền vấn đề của tôi là ethernet, thoại và giao thức video. Nói cách khác, tất cả những thứ không liên quan đến ngôn ngữ tôi đang lập trình, nhưng tôi vẫn phải hiểu để viết phần mềm. Nếu bạn đang tạo một trang web để bán dịch vụ chụp ảnh, miền vấn đề là nhiếp ảnh và thương mại điện tử. Nếu bạn viết phần sụn cho máy bay quân sự, miền vấn đề là vũ khí, cảm biến và hệ thống điều khiển. Lấy tấm hình?
Từ bài viết Wikipedia về miền vấn đề :
Một miền vấn đề là lĩnh vực chuyên môn hoặc ứng dụng cần được kiểm tra để giải quyết vấn đề. Một miền vấn đề chỉ đơn giản là chỉ nhìn vào các chủ đề bạn quan tâm và loại trừ mọi thứ khác.
Đây là lĩnh vực mà các vấn đề mà ứng dụng của bạn dự định giải quyết, thuộc về.
Không phải ai cũng viết trình biên dịch, trình theo dõi lỗi, khung hoặc các gói phần mềm tính toán thẳng khác.
Một số người viết phần mềm cho ngành công nghiệp cát và sỏi. Một số người viết phần mềm để theo dõi các tháp khúc xạ nhà máy lọc dầu. Một số người viết phần mềm để kiểm soát việc sản xuất túi nhựa. Một số người viết phần mềm để điền vào gói ketchup.
Đó là tất cả các miền có vấn đề, trong đó để viết phần mềm tốt, bạn cần biết một chút về tên miền, ví dụ: bê tông trộn sẵn.
Ian K. Bray trong cuốn sách Giới thiệu về Kỹ thuật yêu cầu (p9) định nghĩa miền vấn đề như sau:
Đó là một phần của vũ trụ trong đó vấn đề tồn tại .
Ví dụ, trong trường hợp hệ thống điều khiển thang máy, nó sẽ bao gồm mọi phần cứng hiện có (thang máy, động cơ, nút, chỉ báo, cảm biến, v.v.), đặc điểm của tòa nhà (số tầng và trục thang máy), mô hình dự đoán của cách sử dụng, đặc điểm của người dùng, chính sách sử dụng thang máy của khách hàng (ví dụ: người dùng có nên nản lòng khi sử dụng thang máy cho những hành trình ngắn không?), v.v.
Trong miền vấn đề kiểm soát thang máy, vấn đề, như đã nêu ở trên, là 'cần có một hệ thống điều khiển để sử dụng hiệu quả hơn thang máy trong tòa nhà này'. Trong thực tế, chúng ta thường tinh chỉnh vấn đề thành một tập hợp các vấn đề phụ, nhưng bây giờ, chỉ cần lưu ý rằng để giải quyết vấn đề, rõ ràng hệ thống giải pháp cần tạo ra một số hiệu ứng trong miền vấn đề . Đó là những hiệu ứng mong muốn tạo thành các yêu cầu.
Vì vậy, miền vấn đề cũng có thể được coi là một phần của thế giới trong đó hệ thống giải pháp mới (đôi khi được rút ngắn thành SS) sẽ hoạt động và sẽ tạo ra các hiệu ứng cần thiết. Vì các hệ thống giải pháp dựa trên phần mềm thường được gọi là ứng dụng, miền vấn đề có thể được gọi là miền ứng dụng.