2.1.4.1. Đặc tả chức năng
- Một điểm chung trong việc sử dụng BFD và DFD là để diễn tả một chức năng phức tạp, sử dụng phương pháp tiếp cận từ trên xuống. Tiến hành phân rã các chức năng phức tạp thành các chức năng con ở phía dưới. Các chức năng con thu được là đơn giản hơn trước. Và tất nhiên việc phân rã đến lúc nào đó phải dừng lại vì:
+ Các chức năng thu được đã quá đơn giản. + Chúng ta chỉ cần biết hệ thống đang làm gì.
- Các chức năng thu được ở mức cuối cùng đã rất đơn giản, nhưng vẫn cần được giải thích thêm. Sự giải thích chức năng phải được thực hiện bởi những phương tiện diễn tả trực tiếp (Khác với BFD và DFD). Và ta gọi đó là sự đặc tả chức năng, thường viết tắt là P-Spec (Process Specification).
Một đặc tả chức năng thường được trình một cách ngắn gọn, không vượt quá một trang A4, và gồm hai phần:
- Phần tiêu đề gồm: + Tên chức năng. + Dữ liệu vào. + Dữ liệu ra.
(Đặc trưng ngoài của chức năng): Là các đặc trưng mà người sử dụng quan tâm đến.
- Phần thân mô tả nội dung xử lý, ở đó thường sử dụng các phương tiện mô tả sau đây (liệt kê theo trật tự ưu tiên giảm dần):
+ Các phương trình toán học.
+ Các bảng quyết định hay cây quyết định. + Các sơ đồ khối.
+ Các ngôn ngữ tự nhiên cấu trúc hoá. (Không nên sử dụng ngôn ngữ tự do).
< Tên tác nhân ngoài>
2.1.4.2. Các bảng quyết định và cây quyết định
- Bảng quyết định và cây quyết định được sử dụng khi chức năng được đặc tả thực chất là một sự phân chia các trường hợp tuỳ vào một số điều kiện vào. Ứng với mỗi trường hợp thì có một sự chọn lựa khác biệt một số hành động (hay giá trị) ra nào đó.
- Bảng quyết định: Là một bảng hai chiều, trong đó một chiều (có thể là chiều ngang hay chiều dọc) được tách làm hai phần: một phần cho các điều kiện vào và phần kia cho các hành động hay các biến ra. Chiều thứ hai là các trường hợp cụ thể xảy ra tuỳ thuộc giá trị của các điều kiện. Ứng với mỗi trường hợp (là cột hay dòng), thì các hành động chọn lựa sẽ được đánh dấu x, hoặc nếu cái ra là các biến, thì cho giá trị tương ứng của biến đó.
Các trường hợp Điều kiện X Đ Đ S S Điều kiện Y Đ S Đ S Hành động 1 x x Hành động 2 x Hành động 3 x
Ví dụ: Khi xét điểm để phân ngành học cho sinh viên thì: + Lớp trưởng được cộng: 0.2
+ Bí thư được cộng: 0.1
Vừa làm lớp trưởng và bí thư thì được hưởng mức cao nhất.
Vậy để tính điểm ưu tiên cho sinh viên thì ta có bảng quyết định như sau:
Lớp trưởng Đ Đ S S
Bí thư Đ S Đ S
Cộng 0.2 x x
Cộng 0.1 x
Không cộng x
- Cây quyết định: Chỉ là một biến tướng của bảng quyết định. Nó phân chia các trường hợp nhờ cấu trúc cây, thay vì cấu trúc bảng.
2.1.4.3. Các sơ đồ khối
Sơ đồ khối là loại biểu đồ diễn tả giải thuật quen thuộc và ưa dùng với những người mới học lập trình, vì nó đơn giản, dễ hiểu. Với lập trình nâng cao, thì nó bộc lộ nhiều nhược điểm, cho nên nó lại ít được ưa dùng: Vì nó khuyến khích việc sử dụng tràn lan GOTO, nó không thể hiện rõ ba cấu trúc điều khiển cơ bản (tuần tự, lựa chọn, lặp), nó hỗ trợ kém cho lập trình trên xuống và càng tỏ ra gượng ép với lập trình đệ quy,...Tuy nhiên với nhiệm vụ đặc tả các chức năng đơn giản mà ta cần ở đây, thì nó đáp ứng được yêu cầu.
Nếu BFD chỉ có một loại nút là chức năng (tức là các hành động phải làm) thì sơ đồ khối lại có hai loại nút:
- Nút hành động xử lý (hình chữ nhật). - Nút kiểm tra điều kiện (hình thoi).
Các điều kiện Các hành động
Nếu trong BFD một cung là một tuyến chuyển giao dữ liệu, thì trong sơ đồ khối một cung là một tuyến chuyển giao điều khiển (nghĩa là chuyển giao quyền thực hiện).
2.1.4.4. Các ngôn ngữ có cấu trúc
Ngôn ngữ có cấu trúc là một ngôn ngữ tự nhiên nhưng bị hạn chế:
+ Chỉ được phép dùng các câu đơn sai khiến hay khẳng định (thể hiện các lệnh hay các điều kiện).
+ Các câu đơn này được ghép nối nhờ một số từ khoá thể hiện các cấu trúc điều khiển chọn và lặp.