+ Nếu có cách trao đổi chuẩn (chẳng hạn chuyển giao tham số) thì nên dùng nó;
+ Nên chuyển dữ liệu thật, hơn là chuyển con trỏ đến dữ liệu. 4.2. Sự cố kết
Sự cố kết nói lên sự gắn bó giữa các phần bên trong một môđun. Về phương diện này, thì một môđun nên thực hiện một chức năng lôgíc duy nhất hơn là nhiều chức năng khác nhau. Môđun càng cố kết, thì chức năng của nó càng dễ thấy, lôgíc của nó rành mạch, do đó đễ phát hiện lỗi, đễ bảo trì. 4.3. Hình thái
Hình thái của lược đồ cũng là một biểu hiện của chất lượng. Khi đi từ một
mức trên xuống mức đưới, thì các nhánh của LCT có thể xoè ra (rẽ thành nhiều
nhánh) hay chụm vào (chập vào cùng một môđun). Nhìn một cách toàn thể thì LCT nên xoè ở trên và chụm lại ở dưới. Thông thường thì trong một LCT, các môÔđun càng ở phía trên thì các chức năng của chúng càng nặng về điều khiển và càng nhẹ về xử lý. Trái lại các môđun càng ở thấp phía dưới thì càng ít tính chất điều khiển và càng nặng về xử lý hay dịch vụ. Bởi vậy càng xuất hiện nhiều các điểm chụm ở phía dưới, có nghĩa là có nhiều dịch vụ được sử dụng đi sử dụng lại nhiều lần, ở nhiều chỗ. Sử dụng lại là một trong những mục tiêu của
thiết kế môđun, thể biện trong LCT ở sự chụm lại đó,
Tà gọi phạm vi điều khiển của một môđun là phân LCT bao gồm môđun đó và những môđun phụ thuộc (được gọi) trực tiếp hay gián tiếp từ nó. Ta gọi phạm vi ảnh hưởng của một quyết định là phần LCT bao gồm mọi môđun chịu ảnh hưởng của quyết định đó. Chẳng hạn trong LCT cho trong hình dưới thì: ~ Phạm vi điều khiển của A là A,B,C;
- Chẳng hạn trong B có một quyết định q1 và kết quả của quyết định này được đùng trong A, E, E, thì phạm vi ảnh hưởng của gI lA,E,E.
Một thiết kế tốt phải tạo ra LCT; trong đó:
* Các quyết định phải có miền ảnh hưởng càng hẹp càng tốt;
* Mỗi phạm vi ảnh hưởng phải nằm trong phạm vi điều khiển tương ứng. Š. Đặc tả các môđun
Sau khi lập được LCT (cho mỗi hệ thống con), thì ta còn phải đặc tả mỗi môđun trong đó, tức là miêu tả rõ nội dung của môđun.
Công việc này cũng giống như trước đây, khi ta cần phải đặc tả tiến trình khi đã thành lập DFD. Các phương tiện biểu điễn đùng cho đặc tả môđun vận là các phương tiện dùng cho đặc tả chức năng (đặc biệt là các sơ đồ khối hay các ngôn ngữ tựa NNLT), Tuy nhiên điểm khác biệt cơ bản là ở mức độ của Sự miêu tả. Đặc tả chức năng của DFD chỉ đừng lại ở mức độ miêu tả lôgíc của xử lý, bỏ qua mọi điều kiện cài đặt cụ thể. Còn đặc tả môđun chương trình thì phải cụ thể hơn, bao gồm cả các chỉ tiết như là: các tham số chuyển giao, các đối thoại với người dùng, các xử lý lỗi, thực hiện vào/ra, tra cứu cơ sở đữ liệu. Vậy ở đây ta phải vận dụng các kết quả thiết kế trước đó, như là thiết kế các thủ tục thủ công, các giao diện, các tệp hay CSDL.
6. Đóng gói thành môđun tải
Một môđun chương trình muốn thực hiện được phải đưa vào bộ nhớ trong (gọi là được nạp, hay được tải). Mỗi lần tải phải tốn một phần thời gian của hệ thống.
Người ta gọi môdun tải (load modul) là một nhóm môđun chương trình được tải vào bộ nhớ trong đồng thời. Lý tưởng nhất là tất cả các môđun trong một LCT hợp thành một môđun tải. Như thế thì thời gian tiêu tốn cho việc tải chương trình là ít nhất, và chương trình chạy một cách thuận lợi, vì gọi môđun nào là môđun đó đã sắn sàng, Tuy nhiên như vậy đòi hỏi bộ nhớ lớn, nhiều khi không đáp ứng nổi. Ngược lại, nếu mỗi môđun chương trình là một môđun tải, thì tiết kiệm được chỗ nhớ, nhưng lại tốn nhiều thời gian. Vì vậy cần tìm giải pháp trung gian cho môđun tải. Bởi vậy nhiệm vụ cuối cùng trong thiết kế chương trình là cắt LCT thành các môđun tải.
Nói chung thì việc thiết kế môđun tải phải căn cứ trên các yếu tố như là kích cỡ bộ nhớ, kích cỡ các môđun, tần suất các Cuộc gọi môđun và một môdun tải phải bao gồm các môđun gắn kết với nhau nhiều nhất.
Tuy nhiên không có một phương pháp rõ rệt cho việc việc thiết kế môđun tải. Các hình (a), (b), (c) dưới đây cho một số cách làm, cũng chỉ mang tính gợi ý.
Hình (a) gom các môđun theo phạm vi điều khiển (tức là theo đồng các lời Bọi). Hình (b) lại gom mọi môđun ở mức thấp nhất vào một môđun tải. Đương nhiên cách làm này chỉ có ích khi các môđun ở mức thấp này là những môđun dùng chung và đùng luôn cho các môđun ở những mức trên, chúng cần phải thường trực ở bộ nhớ trong. Hình (c) lại đi sân hơn vào các cấu trúc chọn hay lặp. Ở đây A thường xuyên chọn B và thỉnh thoảng mới chọn D, mà B lại gọi lập C nhiều lần. Vậy gom A, B, C vào một môđun tải (nếu bộ nhớ là eo hẹp).
(b) Gom modun tải theo mức thấp nhất
(€) Gom môđụn tải theo tân SỐ gọi