Bài toán thứ hai: Thiết kế hệ thống điều hoà nhiệt độ

Một phần của tài liệu Phân tích, thiết kế và lập trình hướng đối tượng_phụ lục 6 pot (Trang 29 - 31)

Phát biểu bài toán: Một toà nhà có N phòng, mỗi phòng có máy điều hoà, máy cảm nhiệt và máy điều nhiệt. Hãy xây dựng hệ thống phần mềm điều khiển các máy điều hoà nhiệt độ theo yêu cầu người sử dụng.

Theo cách tiếp cận truyền thống thì chúng ta nghĩ ngay đến việc dùng cấu trúc mảng một chiều để lưu trữ nhiệt độ mà người sử dụng yêu cầu, nhiệt độ và trạng thái của máy điều hoà hiện tại trong các phòng. Khi đó hệ thống điều hoà nhiệt độ các phòng sẽ được thiết kế dựa theo thuật toán sau:

1. Lần lượt xem xét các phòng I=1 . . N.

2. Nếu nhiệt độ trong phòng khác với nhiệt độ yêu cầu thì máy điều hoà chuyển sang trạng thái On (đóng) nếu nó đang ở trạng thái Off (tắt).

3. Ngược lại nếu nhiệt độ trong phòng làm việc đã đạt được như nhiệt độ người sử dụng yêu cầu thì máy điều hoà chuyển sang trạng thái Off nếu nó đang ở trạng thái On.

Cách thứ hai chúng ta thực hiện thiết kế theo cách tiếp cận hướng đối tượng. Nhiệm vụ trước tiên của chúng ta là xác định các đối tượng thành phần cơ sở của hệ thống điều hoà nhiệt độ. Phân tích bài toán chúng ta thấy ở đây có hai lớp đối tượng:

1. Đối tượng PHONG 2. Đối tượng DIEU_HOA

Trong mỗi phòng: nhiệt độ hiện thời được xác định bởi máy điều nhiệt. Máy điều hoà có hai trạng thái On (đóng) và Off (tắt). Trạng thái của máy điều hoà sẽ thay đổi tuỳ thuộc vào thông báo của PHONG: nhiệt độ trong phòng có cần phải thay đổi hay không.

Sau khi xác định được các lớp, các thuộc tính mô tả trạng thái của các đối tượng và mối quan hệ giữa hai lớp đối tượng chúng ta cần xác định các hàm thành phần của chúng.

Đối với lớp PHONG chúng ta có:

1. Hàm khởi tạo đối tượng: PHONG() 2. Hàm xoá bỏ đối tượng: ~PHONG()

3. Hàm xác định nhiệt độ qua máy cảm nhiệt: NHIET_KE()

4. Hàm đặt nhiệt độ yêu cầu vào máy điều nhiệt: T_YEU_CAU() Đối với lớp DIEU_HOA:

1. Hàm khởi tạo đối tượng: DIEU_HOA() 2. Hàm xoá bỏ đối tượng: ~DIEU_HOA() 3. Hàm xác định trạng thái On, Off: DONG_MO()

4. Hàm xác định số phòng đặt máy điều hoà: PHONG_MAY()

Hệ điều khiển hệ thống điều hoà nhiệt độ các phòng không nhất thiết phải có sự tương ứng 1-1 giữa số phòng và máy điều hoà như điều kiện ban đầu bài toán đặt ra. Trong trường hợp cần thay đổi, ví dụ như đối với hội trường lớn thì cần phải đặt nhiều máy mới đủ công suất điều hoà nhiệt độ hoặc nhiều phòng dùng chung một máy.

Khi có sự thay đổi như trên thì thiết kế theo cách tiếp cận thứ nhất phải thay đổi ít nhiều, chương trình gần như phải viết lại toàn bộ vì chúng ta đã giả thiết rằng mỗi phòng có một máy điều hoà. Nhưng cách tiếp cận thứ hai (thiết kế hướng đối tượng) thì chỉ cần sửa đổi ở những đối tượng liên quan. Để sửa đổi hệ thống theo yêu cầu thì hàm DONG_MO() của đối tượng DIEU_HOA phải thiết kế lại sao cho nó có thể bật tắt nhiều hơn một máy và

hàm T_YEU_CAU() của các đối tượng PHONG dùng chung một DIEU_HOA cần được thiết kế lại sao cho xác định được nhiệt độ bình quân của các phòng đó, còn cấu trúc hệ thống, mô hình tính toán không có gì thay đổi.

Một phần của tài liệu Phân tích, thiết kế và lập trình hướng đối tượng_phụ lục 6 pot (Trang 29 - 31)