MỞ ĐẦU
I. THIẾT KẾ VÀ CẤU TRÚC DỮ LIỆU
1. Các đóng góp
2. Miền ứng dụng
3. Cấu trúc dữ liệu so với các kĩ thuật luồng dữ liệu
4. Cấu trúc dữ liệu so với thiết kế hướng sự vật
II. XEM XÉT TIẾN TRÌNH THIẾT KẾ
III. PHÁT TRIỂN HỆ THỐNG JACKSON
1. Các bước thiết kế JSD
2. Bước chức năng
3. Bước thời gian hệ thống
4. Bước cài đặt
5. Biểu diễn thủ tục
IV. PHÁT TRIỂN HỆ THỐNG CÓ CẤU TRÚC DỮ LIỆU
1. Cách tiếp cận thiết kế đã đơn giản hoá
2. Suy dẫn về cấu trúc cái ra logic
3. Suy dẫn ra cấu trúc xử lí logic
4. Logic xử lí phức tạp
KẾT LUẬN
37 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1630 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Phương pháp thiết kế hướng dữ liệu trong công nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
độc lập) về thiết kế “tốt”. Cấp bậc dữ liệu (được dùng trong các phương pháp hướng cấu trúc dữ liệu) là tương tự với cấp bậc lớp được dung trong OOD. Cả hai đều áp dụng các trừu tượng dữ liệu và mỗi phương pháp đều coi các thao tác biến đổi dữ liệu là thứ yếu so với chính khoản mục dữ liệu.
Sự khác biệt chủ yếu giữa OOD và phương pháp thiết kế hưóng cấu trúc dữ liệu ở trong định ngiã về sự vật. Trong OOD, một sự vật bao bọc cả dữ liệu và tiến trình. Các phương pháp thiết kế hướng cấu trúc dữ liệu chọn con đường qui ước nhiều hơn - một sự vật (sự vật dữ liệu) chỉ là dữ liệu. Mặc dầu không có biểu diễn trực tiếp cho kế thừa, truyền thông báo, hay bao bọc trong phương pháp thiết kế hướng cấu trúc dữ liệu, các kái niệm này vẫn cứ tự biểu lộ tinh vi trong trực cảm thiết kế được mô tả trong chương trình này.
II. xem xét tiến trình thiết kế
Phân tích yêu cầu phần mềm vẫn còn là nền tảng cho thiết kế hướng cấu truc dữ liệu. Mô tả về miền thông tin (cấu trúc, nội dung và luồng dữ liệu) chứa trong bản Đặc tả yêu cầu phần mềm báo trước về cấu trúc phần mềm cần được phát triển trong khi thiết kế. Mỗi phương pháp thiết kế đều đưa ra một tập các “qui tắc” làm cho người thiết kế biến đổi cấu trúc dữ liệu thành mộ biểu diễn của phần mềm.
Mỗi phương pháp hướng cấu trúc dữ liệu dều có tập qui tắc riêng của nó. Tuy nhiên, các nhiệm vụ thiết kế sau đây bao giờ cũng phải được tiến hành: (1) đánh giá các đặc trưng cấu trúc dữ liệu; (2) biểu diễn dữ liệu dưới dạng sơ cấp như tuần tự, tuyển chọn và lặp; (3) ánh xạ biểu diễn cấu trúc dữ liệu vào cấu trúc điều khiển của phần mềm; (4) làm mịn cấp bậc phần mềm bằng cách dùng các hướng dẫn được xác định như một phần của phương pháp; (5) cuối cùng phát triển một mô tả thủ tục cho phần mềm.
Một phân chia rõ rệt giữa các bước thiết kế cấu trúc và thủ tục (khi chúng đã được mô tả như một phần của tiến trình thiết kế phần mềm) thì không hiển nhiên như trong các phương pháp hướng cấu trúc dữ liệu. Jackson, Warnier và Orr chuyển nhanh chóng sang biểu diễn thủ tục.
III. Phát triển hệ thống Jackson
Giống như phần lớn các phương pháp thiết kế phần mềm, phát triển hệ thống Jackson (JSD) thực tế là một sự liên tục các bước kĩ thuật hỗ trợ cho việc phân tích và thiết kế phần mềm. Để tiến hành JSD, người phân tích và người thiết kế thực hiện các bước sau:
ã Bước hành động thực thể. Dùng cách tiếo cận hoàn toàn tương tự như kí thuật phân tích hướng sự vật, xác định các thực thể (con người, sự vật, tổ chức mà hệ thống cần tạo ra hay sử dụng thông tin) và hành động (các sự kiện xuất hiện trong thế giới thực ảnh hưởng tới thực thể).
ã Bước cấu trúc thực thể. Các hành động ảnh hưởng đến từng thực thể được sắp xếp theo thời gian và được biểu diễn bằng biểu đồ Jackson (kí pháp kiểu cây sẽ được giới thiệu lại trong mục này).
ã Bước mô hình ban đầu. Biểu diễn các thực thể và hành động như một mô hình tiến trình; xác định mối nối giữa mô hình và thế giới thực.
ã Bước chức năng. Xác định các chức năng tương ứng với hành động đã xác định.
ã Bước định thời gian hệ thống. Các đặc trưng lập lịch tiến trình được định giá và xác định.
ã Bước cài đặt. Phần cứng và phần mềm được xác định như một thiết kế.
Bức hành động thực thể bắt đầu với một phát biểu ngắn gọn trong tiếng Anh (hay tiếng Việt) vầ vấn đề mà từ đó các thực thể (danh từ) và hành động (động từ) được chọn ra. Chỉ những thực thể và hành động có mối quan hệ trực tiếp với giải pháp phần mềm mới được chọn ra để đánh giá thêm.
Bước cấu trúc thực thể tạo ra một biểu đồ Jackson mô tả đặc tả theo thời gian của những hành động được thực hiện trên hay bởi một thực thể. Biểu đồ Jackson, được vẽ trong Hình 1 (cho dịc vụ xe con thoi của trường đại học hay ví dụ USS ), được tạo ra cho từng thực thể (thực thể xe và nút trong trường hợp Hình 1) và thường được đi kèm bởi văn bản lời thuật.
Nhấn
Nút
Tới (i)
Đi (i)
Tới
Thân xe
Rời đi (1)
Xe con thoi
Trạm (i)
Hình 1 Biểu đồ cấu trúc Jackson
Hình 1 Biểu đồ cấu trúc Jackson
Bước mô hình ban đầu bắt đầu việc xây dựng đặc tả cho hệ thống như một mô hình của thế giới thực. Đặc tả được tạo ra bằng biểu đồ đặc tả hệ thống (SSD) bằng cách dùng các biểu trưng được minh hoạ trong Hình 2. Kết nối dòng dữ liệu xuất hiện khi một tiến trình truyền một dòng thông tin (như ghi bản ghi) và tiến trình khác thì nhận dòng này (như đọc bản ghi). Đầu mũi tên biểu thị cho hướng của luồng thông tin, trong khi hình tròn biểu thị cho dòng dữ liệu được giả thiết là đặt vào trong bộ đệm FIFO có dung lượng vô hạn. Kết nối véc tơ trạng thái xuất hiện khi một tiến trình tiếp giám định véc tơ trạng thái và hình thoi chi ra véc tơ trạng thái. Kết nối này là chung trong các ứng dụng điều khiển tiến trình trong đó cần phải kiểm tra trạng thái của một số thiết bị cơ điện. Theo qui ước, đuôi 0 biểu thị cho tiến trình thế giới thực còn đuôi 1 biểu diễn cho tiến trình mô hình hệ thống.
* Mối nối dòng dữ liệu
* Trạng thái mối nối véc tơ
SV
D
Tiến trình - 1
Tiến trình - 1
Tiến trình - 0
Tiến trình - 0
Hình 2 Kí pháp SSD
1. Các bước thiết kế JSD
Để thảo luận về các bước thiết kế cho việc phát triển hệ thống Jackson, thí dụ về con thoi của trường đại học phát biểu bài toán:
một đại học lớn trải trên hai khu trường sở cách nhau gần hai ki lô mét. Để giúp cho sinh viên phải đi lại giữa hai khu trường sở này nghe bài giảng đúng giờ, đi học lập kế hoạch thiết lập dịch vụ xe khách tuyến ngắn. Dịch vụ tuyến ngắn chỉ sử dụng một xe con thoi tốc độ cao đi qua các đường giữa các điểm đỗ tại các khu trường sở. Mỗi điểm đỗ đều có một nút gọi mà sinh viên có thể dùng để yêu cầu vận chuyển tới điểm kia. Khi sinh viên tới một điểm đỗ, họ nhấn nút gọi. Nếu xe đã sẵn có đấy thì họ lên xe và đi tới điểm đỗ kia, nhận sinh viên (nếu có) rồi trở lại. Nếu xe đang ở điểm đỗ kia thì nó sẽ rời bến quay lại để đón sinh viên vừa nhấn nút. Xe sẽ đợi tại từng điểm đỗ cho tới khi có yêu cầu dich vụ tiếp (một nút được nhấn) xuất hiện.
Các thực thể được lựa ra bằng cách xem xét tất cả các danh sách từ trong lời mô tả. Sau khi xem xét mô tả trên, các thực thể ứng cử viên sau đây được lựa ra: đại học, khu trường sở, sinh viên, bài giảng, xe, điểm đỗ và nút, chúng ta không quan tâm trực tiếp tới khu trường sở, sinh viên, bài giảng, hay điểm đỗ - tất cả chúng nằm ngoài biên giớ mô hình và đều bị bác bỏ không phảI là các thực thể có thể. Đại học đơn thuần là một tập thể cho cả hai khu trường sở, cho nên chúng ta bác bỏ nó như một thực thể . Chúng ta chọn xe và nút. Dùng cách phân tích tương tự , chúng ta chọn tới, nhấn và rời như những hành động ảnh hưởng tới xe và nút.
Biểu đồ cấu trúc Jackson cho xe và nút được vẽ trong Hình 1. Biểu đồ đặc tả hệ thống cho USS được minh hoạ trong Hình 3. Cuối cùng, bước mô hình ban đầu cho USS được tiến hành như mô tả trong thảo luận sau.
Bất kì khi nào có thể người ta đều ưa thích nối các tiến trình mô hình với thực thể thế giới thực bằng luồng dữ liệu bởi vì sự tương ứng trực tiếp giữa hành vi của mô hình và thế giới thực được đảm bảo. Trong thí dụ của ta, nút gọi phát ra một xung khi được nhấn. Điều này có thể được truyền tới tiến trình nút-1 như một liên hệ luồng dữ liệu. Tuy nhiên, chúng ta sẽ giả sử rằng các cảm biến phát hiện việc tới hay đi của xe không phát ra xung nào, nhưng việc đóng công tắc mạch điện thì mới phát ra xung. Do đó, một nối véc tơ trạng thái cần phải có.
BD
Nút - 1
Nút - 0
SV
Xe - 1
Xe - 0
Hình 3 SSD cho USS
Hành động tuần tự
Hành động tuyển chọn
Hành động lặp
0
*
0
Hình 4 Kí pháp biểu đồ cấu trúc
Các chi tiết bên trong của tiến trình mô hình được xác định bằng cách dùng cái mà Jackson gọi là văn bản cấu trúc. Văn bản cấu trúc biểu thị cho cùng thông tin như biểu đồ cấu trúc (Hình 4)- tuần tự, tuyển chọn, lặp- nhưng thực hiện điều này theo định dạng văn bản. Văn bản cấu trúc cho nút-1 là:
Nút-1
Read BD:
PUSH-BDY itr while BD
PUSH;
Read DB;
PUSH-BDY end
Nút-1 end
Cấu trúc nút-1 tương ứng đồng nhất với cấu trúc của Nút-0, với việc thêm thao tác Read nối thế giới thực với hệ thống.
Như được lưu ý trước đây, tiến trình SHUTTLE-1 không thể được nối với thành phần thế giới thực tương ứng của nó bằng mối nối luồng dữ liệu. Thay vì thế, chúng ta phải hỏi các công tắc xem đang dược bật hay tắt bởi việc tới hay đi của xe. Tiến trình hệ thống phải giám định thực thể thế giưói thực khá thường xuyên để đảm bảo rằng không hành động nào xảy ra mà không bị phát hiện. Điều này được thực hiện bởi thực hiện một thao tác Getsv (lấy véc tơ trạng thái) để thu được từng giá trị của véc tơ trạng thái một số lần trước khi nó bị thay đổi, và tiến trình mô hình có thể được khởi thảo để chỉ ra các giá trị “đang đổi” này của các véc tơ trạng thái. Một mô tả văn bản cấu trúc của SHUTTLE-1 là như sau:
SHUTTLE-1 seq
Getsv SV:
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LEAVE (1);
TRANSIT-DBY1 itr while TRANSIT1
Getsv SV;
TRANSIT-BDY1 end
SHUTTLE-BDY1 itr
STATION seq
ARRIVE (i);
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LEAVE (i)
TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY end
STATION end
SHUTTLE-BDY end
ARRIVE (1);
SHUTTLE-1 end
Các giá trị trạng thái WAIT và TRANSIT biểu thị cho các giá trị thích hợp của công tắc tới và đi. Tiến trình thế giới thực SHUTTLE-0 tạo ra một thay đổi trạng thái trong công tắc, và tiến trình hệ thống SHUTTLE-1 thực hiện thao tác getsv để cảm nhận sự thay đổi này. Hình 5a minh hoạ cho văn bản cấu trúc đối với SHUTTLE-1 như một biểu đồ cấu trúc.
2. Bước chức năng
Mục đích của bước chức năng JSD là để mở rộng biểu đồ đặc tả hệ thống bằng cách nói các tiến trình chức năng mới được định nghĩa với các tiến trình mô hình thông qua dòng dữ liệu hay véc tơ. JSD thừa nhận ba loại chức năng:
Chức năng nhúng. Chức năng này đạt được bằng cách cấp phát (ghi) các thao tác thành văn bản cấu trúc tiến trình mô hình.
Chức năng áp đặt. Chức năng này kiểm tra véc tơ trạng thái của tiến trình mô hình và tạo ra kết quả.
Chức năng tương tác. Chức năng này kiểm tra véc tơ trạng thái của tiến trình mô hình, ghi ra một dòng dữ liệu đẻ ảnh hưởng tới các hành động của tiến trình mô hình và bao gồm các thao tá ghi kết quả.
Cái ra của các tiến trình chức năng chính là cái ra hệ thống và có thể là báo cáo, mệnh lệnh cho các thiết bị phần cứng, hay bất kì thông tin đi ra nào khác.
Để minh hoạ cho bước chức năng, ta xét thí dụ USS và xem xét mô hình của xe con thoi. Trong xe con thoi, có một bảng đèn được dùng để chỉ ra việc tới điểm đỗ với việc chiếu sáng một thông báo. Đèn được tắt bật bởi lệnh LON(i) và LOFF(i). Một chức năng phải được nhúng vào trong mô hình tiến trình xe con thoi để viết ra một lệnh lamp(i) khi xe tới điểm đỗ station(i). Vởy, khi xe con thoi đi lại giữa các điểm đỗ thì nó đưa ra một dòng dữ liệu bao gồm các chỉ lệnh đèn. SSD biểu thị cho tình huống này được vẽ trong Hình 5b.
a)
b)
Xe con thoi
Tới
Xe
Rời đi (1)
Đợi (1)
Chuyển (1)
CMDS
Xe - 1
SV
Nút - 0
Xe - 0
Nút - 1
BD
Đợi (1)
Chuyển (1)
Rời (i)
Chuyển (i)
Đợi (1)
Chuyển (1)
Điểm đỗ (i)
Đợi (i)
Tới (i)
Hình 5 (a) Biểu đồ cấu trúc tương ứng với văn bản có cấu trúc
(b) SSD đã cập nhật.
Để cài đặt chỉ lệnh đèn, văn bản cấu trúc cho SHUTTLE-1 được sửa đổi như sau:
SHUTTLE-1 seq
LON(1);
Getsv SV:
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LOFF(1)
LEAVE (1);
TRANSIT-DBY1 itr while TRANSIT1
Getsv SV;
TRANSIT-BDY1 end
SHUTTLE-BDY1 itr
STATION seq
ARRIVE (i);
LON(i);
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LOFF(i);
LEAVE (i)
TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY end
STATION end
SHUTTLE-BDY end
ARRIVE (1);
SHUTTLE-1 end
Tham khảo tới văn bản cấu trúc trên, một chỉ lệnh được phát ra để bật thông báo về điểm đỗ 1 trên bảng đèn. Điều này xuất hiện lúc bắt đầu cuộc hành trình của xe con thoi, trước khi nó rời khỏi điểm đỗ 1 lần đầu tiên. Mỗi lần cảm biến chỉ ra tới một điểm đỗ thì đèn tương ứng lại được bật sáng và khi xe rời đi thì đèn được tắt.
Chức năng thứ hai là tạo ra chỉ lệnh điều khiển động cơ, START và STOP, sẽ kiểm soát việc di chuyển của xe. Các chỉ lệnh này phải được đưa ra dưới những điều kiện sau:
STOP - khi cảm biến báo việc tới một điểm đỗ
START - khi một nút đựơc nhấn (lần đầu tiên) để yêu cầu xe và xe đang đợi tại một trong các điểm đỗ.
Nhu cầu đưa ra chỉ lệnh STOP chỉ được xác định bởi việc tới điểm đỗ của xe. Tuy nhiên, việc đặt thời gian cho chỉ lệnh START bị ảnh hưởng bởi cả nút lẫn xe. Do đó, chúng tôi đưa vào một tiến trình chức năng gọi là mcontrol hành đọng trên dữ liệu mà nó nhận được từ các tiến trình Shuttle-1 và nút và đưa ra các chỉ lệnh START và STOP.
Mối nối giữa tiến trình SHUTTLE-1 và mcontrol sẽ là dòng dữ liệu S1D. Điều có nghĩa là tiến trình SHUTTLE-1 không thể lỡ việc xe tới như điều đó có thể xuất hiện nếu véc tơ trạng thái đều đặn được xét tới.
Văn bản cấu trúc cho tiến trình SHUTTLE-1 được viết lại một lần nữa, lần này có sửa cho điều khiển đèn và mô tơ:
SHUTTLE-1 seq
LON(1);
Getsv SV:
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LOFF(1)
LEAVE (1);
TRANSIT-DBY1 itr while TRANSIT1
Getsv SV;
TRANSIT-BDY1 end
SHUTTLE-BDY1 itr
STATION seq
ARRIVE (i);
Write arrive to S1D;
LON(i);
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY end
LOFF(i);
LEAVE (i)
TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY end
STATION end
SHUTTLE-BDY end
ARRIVE (1);
Write arrive to S1D
SHUTTLE-1 end
Cần đản bảo rằng tiến trình SHUTTLE-1 thực hiện các thao tác Getsv SV và mcontrol đọc bản ghi tới của nó khá thường xuyên để dừng xe đúng thời gian. Các ràng buộc thời gian lịch biểu , và cài đặt được xem xét trong các bước JSD sau đó.
Để hoàn chỉnh thí dụ USS, chúng ta quay lại với mô hình cho thực thể nút. Mô hình gốc, Nút-1, là một phát triển chính xác về hành động nút, nhưng bây giờ cần phân biệt giữa việc nhấn đầu tiên yêu cầu một hành trình và các lần nhấn tiếp đó trước khi cuộc hành trình thực sự bắt đầu. Một tiến trình mức-2 mới, nút-2, được mô tả để thực hiện các yêu cầu này và được vẽ bằng biểu đồ cấu trúc Jackson trong Hình 6. Một tiến trình chức năng xem xét véc tơ trạng thái của nút-2 để xác định xem liệu có một yêu cầu còn chưa được giải quyết cho hành trình không. Chức năng mcontrol thông báo nút-2 khi một yêu cầu đã được phục vụ xong, thúc là khi xe đã tới điểm đỗ nơi yêu cầu phát ra. Nó thực hiện điều này bằng cách truyền các bản ghi tới mà nó nhận được từ SHUTTLE-1. Do vậy, một chức năng tương tác cho tiến trình nút-2 được xác định.
Nhấn phụ
Tới phụ
Tới
Nhấn yêu cầu phụ
Lần tới phụ
Nhấn yêu cầu
Nhóm nhấn
Nút - 2
Hình 6 Dịch vụ con thoi trong trường – bước chức năng
Văn bản cấu trúc cho tiến trình nút-2 là như sau:
BUTTON-2 seq
Request := no;
Read MBD-BDY itr
PUSH-GROUP seq
EXTRA-AR-BDY itr while (ARRIVAL)
Read MBD and B1D;
EXTTRA-AR-BDY end
RQ-PUSH seq
Resquest := yes;
Read MBD and B1D;
RQ-PUSH end
EXTRA-RQ-PUSH itr while
Read MBD and B1D;
EXTRA-RQ-PUSH end
ARRIVAL end
PUSH-GROUP end
BUTTON-BDY end
BUTTON-2 end
Cái vào cho BUTTON-2 bao gồm hai dòng dữ liệu, được gộp lại theo cách được gọi là gộp thô. Việc gộp thô xuất hiện khi tiến trình đọc đơn thuần chấp nhận bản ghi tiếp xuất hiện trong dòng dữ liệu. Do đó, thứ tự các bản ghi được xử lý phụ thuộc vào hai tiến trình ghi phi đồng bộ tiềm năng. Với thí dụ này, việc gộp thô là đủ. Tuy nhiên, JSD còn đưa ra các kiểu gộp khác nhau với nhiều xác định vào hệ thống.
Hình 7 chỉ ra một biểu đồ đặc tả hệ thống phản ánh tất cả những thay đổi được áp đặt như một phần của bước chức năng. Một chức năng nhúng bên trong SHUTTLE-1 sinh ra chỉ lệnh đèn, còn một tiến trình chức năng mới, mcontrol, thì áp đặt một chức năng tương tác lên BUTTON-2 và tạo ra chỉ lệnh động cơ cho xe. Cấu trúc của tiến trình mcontrol được suy dẫn ra bằng cách xem xét các cấu trúc dữ liệu vào và ra (mục13.3.4 và 13.3.5).
BD1
BD
Nút – 1
Nút - 2
Nút - 0
S1D
Chỉ lệnh động cơ
SV
Xe - 1
Xe - 0
Chỉ lệnh đèn
Mcontrol
B2V
MBD
Hình 7 SSD, được mở rộng cho các chức năng 1 và 2
3. Bước đặt thời gian hệ thống
Trong bước JSD này, người thiết kế xác định các ràng buộc đặt thời gian bị áp đặt lên hệ thống. Các bước thiết kế trước đây tạo ra một hệ thống bao gồm các tiến trình tuần tự trao đổi qua dòng dữ liệu và trực tiếp kiểm tra véc tơ trạng thái. Việc lập lịch tương đối cho xử lí còn chưa được xác định.
Một cơ chế có thể được dùng để đồng bộ các tiến trình là bộ đánh dấu lát thời gian (TGM). TGM là một bản ghi dữ liệu chỉ ra sự xuất hiện của một khoảng thời gian đặc biệt và có thể làm cho việc chuyển thời gian ảnh hưởng tới các hành động của một tiến trình.
Các ràng buộc thời gian cho thí dụ dịch vụ xe con thoi trong trường đại hoc có thể bao gồm:
1. Thời gian trong đó chỉ lệnh STOP phải được đưa ra, dựa trên tốc độ xe con thoi và năng lượng phanh.
2. Thời gian đáp ứng để chuyển tắt/bật đèn báo.
Với thí dụ USS, không cần đưa vào bất kì cơ chế đồng bộ đặc biệt nào. Tới một mức nào đó, việc trao đổi dữ liệu đã áp đặt một số mức độ đồng bộ.
4. Bước đã cài đặt
Bước cài đặt của JSD đã nêu trong công trình ban đầu để suy dẫn ra phần cấu trúc chương trình và dữ liệu còn lại từ cấu trúc dữ liệu vấn đề. Trong mục này và mục sau sẽ trình bày một tổng quan về cách tiếp cận cách thiết kế chương trình Jackson, gọi là lập trình có cấu trúc Jackson (JSP). Các ánh xạ liên kết với cách tiếp cận này có lí do của chúng là phương pháp luận thiết kế nàt đã được phân loại như hướng cấu trúc dữ liệu.
Bản chất của bước cài đặt có thể được phát biểu bằng cách nói theo Jackson: “Vấn đề nên được phân tách thành các cấu trúc có cấp bậc của các bộ phận có thể biểu diễn theo ba dạng cấu trúc.” Các “dạng cấu trúc” mà Jackson ám chỉ là tuần tự, điều kiện và lặp – trong thực tại, các kết cấu thủ tục (theo thuật ngữ của cuốn sách này) là nền tảng của triết lí lập trình có cấu trúc .
Kí pháp cấu trúc dữ liệu là một biến thể của biểu đồ cấu trúc Jackson và được minh hoạ trong Hình 8. Tham khảo vào hình này, một tuyển tập dữ liệu, A, bao gồm nhiều lần xuất hiện (được kí hiệu bởi *) của cấu trúc dữ liệu B. B chứa nhiều lần xuất hiện của C và một cấu trúc con khác, D, có chứa khoản mục dữ liệu E hay F (dữ liệu khác được kí hiệu là 0). Việc biểu diễn theo biểu đồ khối của Jackson cho cấp bậc thông tin có thể được áp dụng cho cái vào, cái ra hay các cấu trúc cơ sở dữ liệu với tiện nghi tương đương.
Xem như một thí dụ cụ thể hơn về kí pháp này, ta xem xét phần mềm được phát triển cho hệ thống kế toán thẻ tín dụng (đã đơn giản hoá phần lớn), được vẽ trong hình 9. Tệp thanh toán, chứa số hiệu khách hàng (CNO), ngày thanh toán (Date) và số lượng đã trả (Amt) được điều hoà với tệp chính khách hàng có chứa CNO và số dư còn lại. Tệp thanh toán được sắp xếp trước theo nhóm số khách hàng (CNO-GROUP) để cho tất cả mọi việc thanh toán theo cá nhân đều được chứa trong một bản ghi riêng lẻ. Cấu trúc dữ liệu cho cả hai tệp này, mô tả theo kí pháp Jack son, được vẽ trong hình.
Một định dạng báo cáo đưa ra cho hệ thống kế toán thẻ tín dụng và biểu đồ cấu trúc dữ liệu kết quả được vẽ trong Hình 10. Báo cáo này có cấp bậc bao gồm dữ liệu khách hàng (CUST_DATA) và tổng số chính. Các cấu trúc con chỉ ra thông tin chứa trong cấp bậc này.
* = Nhiều lần xuất hiện:; 0 = Chọn lựa
F 0
E 0
C *
D
B *
A
Hình 8 Kí pháp cấu trúc dữ liệu
Tệp thanh toán
CNO
GROUP
CNO Tệp chính
Tệp trả tiền
CNO Ngày Số tiền
xxx
xxx
ã
ã
ã
xxx
yyy
yyy
CNO - GROUP
Bản Ghi Trả Tiền
CNO tệp chính
CNO Số dư
XXX
YYY
ã
ã
ã
Bản ghi khách hàng
Số dư
Hình 9 Hệ thống hóa dơn thẻ tín dụng
Báo Cáo Kế Toán
CNO Ngày Pmt Số cũ Số mới
Xxx ------- -----
------- -----
------- -----
------- ----- ------ -------
yyy --------
------- ------
------- ------ ------- ------
Grand tot ------ -------
ACTT
NEW BAL
OLD BAL
CUST TOTAL
PAY REC
CNO
CUTST
DATA
CNO GROUP
BAL DATA
TOTAL PMT
TOTAL BAL
MASTER
TOTAL
Hình 10 cái ra hệ thống
5. Biểu diễn thủ tục
Biểu diễn thủ tục do chương trình hay tiến trình được suy ra trực tiếp từ cách tổ chức của cấu trúc dữ liệu cấp bậc cấu trúc của nó. Cấu trúc dữ liệu được vẽ trong Hình 10 phát sinh trong suy dẫn từ cấu trúc chương trình được vẽ trong Hình 11. dùng cấu trúc chương trình này như hướng dẫn, có thể phát triển văn bản cấu trúc. Để minh hoạ cấu trúc cho nhánh PROCESS-CUST-DATA (xử lí dữ liệu khách hàng) của Hình 11 được nêu dưới đây:
PROCESS-CUST-DATA seq
Open PAY-FILE;
Open C-M-F;
PROCESS CNO-GROUP iter until eof:PAY-FILE;
Read PAY-FILE;
PROCESS-CNO {read C-M-F, finds old balance}
PROCESS-PAY-REC iter until end: CNO-GROUP;
Write report line;
Compute total payments;
Read PAY-FILE;
End PROCESS-PAY-REC
COMPUTE-CUST-TOTAL;
COMPUTE-BALANCE seq
PROCESS-OLD-BAL;
COMPUTE-NEW-BAL;
Write report line;
End COMPUTE-BALANCE
End PROCESS-CNO-GROUP
End PROCESS-CUST-DATA
Phương pháp luận của Jackson hõ trợ cho một số kĩ thuật phụ mở rộng hơn tính áp dụng của nó và làm phong phú cho thiết kế tổng thể. Có thể tìm thấy một thảo luận đầy đủ về từng kĩ thuật này trong sách của Jackson và Cameron.
Xử lí PAY-FILE & CMS để cho báo cáo kế toán
PROCESS MASTER - TOTS
PROCESS CNO
PROCESS CNO - GROUP
COMPUETR FILE-BAL
COMPUTER TOT - PMT
COMPUTER BALANCE
COMPUTER NEW - BAL
COMPUTER OLD - BAL
COMPUTER CUST - TOT
PROCESS PAY - REC
PROCESS CUST - DATA
Hình 11 cấu trúc chương trình kết quả
IV. Phát triển hệ thống có cấu trúc dữ liệu
Phát triển hệ thống có cấu trúc dữ liệu (DSSD) mở rộng khái niệm cơ sở do Warnier phát triển thành một phương pháp luận dễ hiểu choviệc phân tích và thiết kế các hệ thống dựa trên máy tính. Trong Chương 9, chúng ta đã trình bày các bước hướng phân tích của DSSD.
Thủ tục thiết kế DSSD được mô tả dùng kí pháp biểu đồ Warnier trong Hình 12. Cái nào cho thủ tục thiết kế DSSD là thông tin phân tích yêu cầu có chứa hoàn cảnh ứng dụng, mô tả chức năng và kết quả ứng dụng . Các biểu đồ và dữ liệu có chứa trong những biểu dồ này được dùng như nền tảng cho thiết kế logic và vật lí. Thiết kế logic tập trung vào các cái ra, giao diện và thhiết kế thủ tục của phần mềm. Thiết kế vật lí tiến hoá từ thihết kế logic và tập trung vào “đóng gói” phần mềm để đạt tới sự hoàn thiện mong muốn tốt nhất, tính dễ bảo trì và các ràng buộc thiết kế do môi trường hệ thống áp đặt.
Vào
Ra
Thủ tục thiết kế DSSD
Đặc tả yêu cầu
* Hoàn cảnh ứng dụng
* Mô tả chức năng
* Kết quả ứng dụng
Tài liệu thiết kế
* Cấu trúc dữ liệu
* Chi tiết thủ tục
* Ràng buộc
Hình 12 thủ tục thiết kế DSSD
1. Cách tiếp cận thiết kế đã đơn giản hoá
Tiến trình thiết kế logic có thể được chia thành hai hoạt động suy dẫn ra logic của cấu trúc cái ra logic (LOS) và định nghĩa kết quả của cấu trúc xử lí logic (LPS). Cách tiếp cận đơn giản hoá đã được đề nghị cho suy dẫn của LOS. Trong cách tiếp cận này, các khoản mục dữ liệu là một phần của miền thông tin của vấn đề của tổ chức theo cấp bậc rất giống cách mà Jackson tiếp cận đến thiết kế. Một tiến trình bốn bước được áp dụng để suy ra LOS:
1. Đánh giá phát biểu vấn đề hay thông tin về các yêu cầu có liên quan và liệt kê ra mọi khoản mục dữ liệu phân biệt mà không thể phân chia thêm được nữa (còn gọi là các nguyên tử).
2. Xác định tần suất cho từng nguyên tử.
3. Tính toán các khoản mục dữ liệu có thể được phân chia ra thêm (còn gọi nó là toàn thể).
4. Phát triển một biểu diễn văn phạm bbiểu đồ cho LOS
Để minh hoạ cho tiến trình bốn bước được mô tả ở trên, chúng ta giới thiệu một thí dụ ngắn gọn. “Báo cáo việc sử dụng công cụ máy thường ngày” (Hình 13) được sinh ra một phần của hệ thống thông tin chế tạo tự động hoá lớn. Cách tiếp cận thioết kế DSSD đã đơn giản hoá sẽ được sử dụng để suy dẫn ra LOS và LPS.
Báo cáo sử dụng máy hàng ngày
Ngày: DATA
Phần tổng phân loại: cat – tot – parts
Phạm vi công cụ
TOOL - CAT
Tên công cụ
TID
Số bộ phận tạo ra
NO – PARTS
Trạng thái
S
Phần tổng được sản xuất ngày: manuf - total
Phần tổng phân loại:
Hình 13 Bản mẫu báo cáo
2. Suy diễn về cấu trúc cái ra logic
Cấu trúc cái ra logic là một biểu diễn cấp bậc của khoản mục dữ liệu có chứa cái ra từ một hệ thống dựa trên máy tính. Bước đầu tiên trong suy dẫn của LOS là cô lập tất cả các nguyên tử (các khoản mục dữ liệu không thể chia nhỏ thêm được nữa). Điều này có thể được thực hiện bằng cách xem lại phát biểu vấn đề hay, trong trường hợp thí dụ báo cáo về việc dùng công cụ trên, bằng cách xem xét định dạng của bản thân báo cáo bản mẫu (Hình 13). Tiếp đó, cũng nên lưu ý đến tần suất như được vẽ trong Hình 14.
Tần số
1/ Báo cáo
1/ Báo cáo
1/ Báo cáo
1/ Phân loại công cụ
1/ Tên công cụ
1/ Tên công cụ
1/ Tên công cụ
1/ Phân loại công cụ
1/ Phân loại công cụ
1/ Báo cáo
1/ Báo cáo
Phần tử dữ liệu (Nguyên tử)
Heading
Date
Column – head
Tool – cat
Tid
S
No parts
Subtotal – head
Cat – tot – parts
Total – head
Manuf – total
Chi tiết
Báo cáo về sử dụng máy công cụ hàng ngày.
Phân loại công cụ, tên công cụ…
Phân loại toàn bộ bộ phận.
Tổng số bộ phận sản xuất ngày này.
Hình 14 Nguyên tử và tần xuất
Một khi đã xác định được tất cả các nguyên tử và tần suất
Các file đính kèm theo tài liệu này:
- 35678.doc