• Bước 1: xem lại mô hình hệ thống cơ bản và thông tin hỗ trợ. Cần xem lại SRS và đặc tả hệ thống (system specification), cả hai mô tả DFD mức 0 và 1.
• Bước 2: xem và tinh chỉnh lại DFD ở các mức 2 và 3. Ví dụ khảo sát DFD mức 2 dành cho việc giám sát các cảm biến
(sensor) và DFD mức 3 được suy dẫn từ mức 2. Ở mức 3, mỗi process tương ứng với 1 phép transform đều thực hiện 1 chức năng riêng biệt nào đó mà có thể triển khai như một module trong phần mềm. Vì vậy, DFD mức 3 này chứa chi tiết vừa đủ cho thiết kế kiến trúc của hệ thống con (cảm biến) và không cần tinh chỉnh thêm nữa.
85
86
Level 2 DFD that refines the monitor sensors process
87
88
Ví dụ: 7 bước thiết kế
• Bước 3: xác định xem DFD có đặc tính transform flow hay transaction flow không?
• Nói chung thì dòng thông tin trong 1 hệ thống thường đều có thể biểu diễn như dạng transfom. Nhưng nếu DFD có đặc tính transaction rõ ràng thì nên theo cách ánh xạ của transaction flow. Các miền cục bộ (local region) của transform flow hay transaction flow đều bị cách ly nhau. Các dòng con này có thể được dùng để tinh chỉnh kiến trúc chương trình đã được suy dẫn từ đặc tính tổng thể chung trước đó.
• Ở DFD mức 3, dữ liệu đưa vào phần mềm dọc theo 1 incoming path và đi ra dọc theo 3 outgoing path và không có transaction center rõ ràng. Vì vậy dòng thông tin của lược đồ này là
89
Ví dụ: 7 bước thiết kế
• Bước 4: cô lập transform center bằng cách xác định đường biên (boundary) của các dòng vào và ra. Đường biên của dòng vào và ra không cần phải quá khắt khe và tùy theo nhà thiết kế, có thể vị trí của biên là những điểm khác nhau trên các dòng.
• Có thể có nhiều kết quả thiết kế khác nhau bằng cách thay đổi vị trí của các đường biên dòng. Việc thay đổi vị trí biên này nói chung không ảnh hưởng nhiều tới cấu trúc cuối cùng của
chương trình.
• Các transform tạo nên transform center sẽ nằm bên trong hai đường biên.
90
DFD mức 3 với các Đường biên dòng (flow boundary)
91
Ví dụ: 7 bước thiết kế
Bước 5: thực hiện "first-level factoring” (phân chia mức đầu tiên) • Cấu trúc chương trình biểu diễn sự phân phối các control từ trên
xuống dưới.
• Việc phân chia (factoring) sẽ tạo ra trong cấu trúc chương trình
module mức cao thực thi việc ra quyết định, và các module mức thấp thực thi hầu hết các ngõ vào, biến đổi và ngõ ra. Các
module mức giữa thực thi 1 số control và làm một số công việc mức trung bình.
• Khi phép biến đổi (transform) được đưa vào, DFD được ánh xạ thành 1 cấu trúc xác định nào đó (vd: call and return
architecture) chứa control dành cho việc xử lý ngõ vào, biến đổi và xử lý thông tin ngõ ra.
92
Ví dụ: 7 bước thiết kế
Bước 5 (tt):
• Controller chính (monitor sensors executive) nằm ở đỉnh của cấu trúc chương trình và phối hợp với các control phía dưới
– Sensor input controller: nhận tất cả dữ liệu ngõ vào
– Alarm conditions controller: giám sát tất cả các thao tác liên quan đến dữ liệu
– Alarm output controller: phối hợp để tạo ra thông tin ngõ ra. • Những hệ thống lớn thì có thể có nhiều hơn 2 control module
cho mỗi chức năng điều khiển.
• Số module ở phân chia mức đầu tiên này nên hạn chế it nhất sao cho vẫn hoàn thành đuợc chức năng điều khiển và vẫn giữ được đặc tính coupling và cohesion
93