Mối quan hệ mật thiết giữa chương trình và dữ liệu có thể được dõi về nguồn gốc của tin học. Khái niệm nguyên thuỷ đằng sau máy tính lưu trữ chương trình là ở chỗ chương trình được coi như dữ liệu và dữ liệu được hiểu như chương trình. Cấu trúc thông tin, được gọi là cấu trúc dữ liệu, đã chứng tỏ có tác động quan trọng tới độ phức tạp và tính hiệu quả của thuật toán được thiếi kế để xử lý thông tin. Khi thiết kế phần mềm tiến hoá, một trường phái tư tưởngcho rằng: Việc xác định cấu trúc dữ liệu cố hữu (đối với hệ thống dựa trên máy tính) là điều sống còn, còn cấu trúc của dữ liệu (cái vào và cái ra) có thể được dùng để đưa ra cấu trúc (và một số chi tiết) về chương trình. Trong lĩnh vực ứng dụng một cấu trúc thông tin có cấp bậc, phân biệt là tồn tại. Dữ liệu vào, thông tin ghi nhớ bên trong (như cơ sở dữ liệu) và dữ liệu ra có thể có một cấu trúc duy nhất. Thiết kế hướng cấu trúc dữ liệu dùng những cấu trúc này làm nền tảng cho việc phát triển phần mềm.
Trang 1đề cơng chi tiết
Đề tài: Phơng pháp thiết kế hớng dữ liệu trong công nghệ phần mềm.
Giáo viên hớng dẫn: pgs.ts Hàn Viết Thuận
Sinh viên : Phạm Thế Tân
Lớp : Tin Học 43C
Khoa: TinHọc Kinh Tế
Trờng Đại Học Kinh Tế Quốc Dân
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
Trang 2ơng trình là ở chỗ chơng trình đợc coi nh dữ liệu và dữ liệu đợc hiểu nh
ch-ơng trình Cấu trúc thông tin, đợc gọi là cấu trúc dữ liệu, đã chứng tỏ có tác
động quan trọng tới độ phức tạp và tính hiệu quả của thuật toán đợc thiếi kế
để xử lý thông tin
Khi thiết kế phần mềm tiến hoá, một trờng phái t tởngcho rằng:
Việc xác định cấu trúc dữ liệu cố hữu (đối với hệ thống dựa trên máy tính) là điều sống còn, còn cấu trúc của dữ liệu (cái vào và cái ra) có thể đợc dùng để đa ra cấu trúc (và một số chi tiết) về chơng trình
Trong lĩnh vực ứng dụng một cấu trúc thông tin có cấp bậc, phân biệt
là tồn tại Dữ liệu vào, thông tin ghi nhớ bên trong (nh cơ sở dữ liệu) và dữ liệu ra có thể có một cấu trúc duy nhất Thiết kế hớng cấu trúc dữ liệu dùng những cấu trúc này làm nền tảng cho việc phát triển phần mềm
Trang 3I Thiết kế và cấu trúc dữ liệu
Cấu trúc dữ liệu phản ánh thiết kế của các khía cạnh cấu trúc và thủ tục của phần mềm Dữ liệu lặp lại bao giờ cũng đợc xử lý bằng phần mềm có tiện nghi điều khiển cho việc lặp lại; dữ liệu khác (nh thông tin có thể có hay không) ngng đọng lại thành phần mềm với các phần tử xử lý có điều kiện; một tổ chức dữ liệu phân cấp thờng có những điểm tơng đồng đáng để ý với cấu trúc chơng trình của phần mềm có dùng dữ liệu đó Trong thực tế, cấu trúc thông tin là điều báo trớc cho cấu trúc chơng trình
Thiết kế hớng cấu trúc dữ liệu biến đổi một biểu diễn của cấu trúc dữ liệu thành biểu diễn của phần mềm Giống nh các kĩ thuật luồng dữ liệu, ngời phát triển thiết kế hớng cấu trúc dữ liệu xác định ra một tập các thủ tục “ánh xạ” có dùng cấu trúc (dữ liệu) thông tin nh hớng dẫn
1 Các đóng góp
Nguồn gốc của thiết kế hớng cấu trúc dữ liệu có thể tìm thấy trong những thảo luận về “nền tảng của cấu trúc dữ liệu”, thuật toán máy tính, cấu trúc điều khiển và dữ liệu, và khái niệm về trừu tợng dữ liệu Những xử lí thực chứng hơn về thiết kế phần mềm và mối quan hệ của nó với cấu trúc dữ liệu đã dợc Jackson, Warnier và Orr đề nghị
Lập trình có cấu trúc Jackson (JSP), một phơng pháp thiết kế phần
mềm đợc sử dụng rộng rãi, lấy quan điểm là “sự song song giữa cấu trúc của
dự liệu vào và dữ liệu ra (báo cáo) sẽ đảm bảo chất lợng thiết kế” Những mở rộng gần đây hơn thành phơng pháp luận, gọi là phát triển hệ thống Jackson,
tập trung vào việc xác định các thực thể thông tin và những hành động đợc áp dụng lên chúng và hoàn toàn tơng tự trong một số khía cạnh của cách tiếp cận thiết kế hớng sự vật đã đợc mô tả Jackson nhấn mạnh về mặt thực hành, phát triển thực chứng để biến đổi dữ liệu thành cấu trúc chơng trình
Xây dựng logic chơng trình (LPC), dợc J.D.Warnier phát triển, đa ra
một phơng pháp chặt chẽ cho thiết kế phần mềm Rút ra từ mối quan hệ giữa cấu trúc dữ liệu và cấu trúc thủ tục, Warnier đã phát triển một tập các kĩ thuật
Trang 4thực hiện ánh xạ tù cấu trúc dữ liệu vào/ra sang biểu diễn thủ tục chi tiết cho phần mềm.
Phát triển hệ thống có cấu trúc dữ liệu (DSSD), cũng còn đợc gọi là
phơng pháp luận Warnier- Orr, là một mở rộng của LCP và bổ sung thêm các khả năng phân tích cũng nh thiết kế mạnh Cách tiếp cận DSSD đa ra một kí pháp và nhiều thủ tục để suy ra cấu trúc dữ liệu, cấu trúc chơng trình, và thiết
kế thủ tục chi tiết cho các thành phần chơng trình (mô đun) Bên cạnh đó, DSSD cung cấp một kí pháp làm cho ngời thiết kế có khả năng xem xét luồng dữ liệu giữa nơi phát và nơi nhận thông tin và đi qua các tiến trình biến đổi thông tin
Một kĩ thuật gọi là xây dựng logic phần mềm là đại biểu cho việc tổng
hợp của các cách tiếp cận thiết kế hớng luồng dữ liệu và cấu trúc dữ liệu Những ngời phát triển phong pháp này cho rằng “thiết kế logic có thể đợc mô tả tờng minh nếu phần mềm đợc xét nh một hệ thống các tập dữ liệu và các phếp biến đổi dữ liệu.”
2 Miền ứng dụng
Thiết kế hớng cấu trúc dữ liệu có thể đợc áp dụng thành công trong các ứng dụng có cấu trúc thông tin cấp bậc, đợc xác định rõ Các thí dụ điển hình bao gồm:
•ứng dụng hệ thống thông tin kinh doanh.cái vào và cái ra có cấu trúc
phân biệt (nh tệp vào, báo cáo ra); việc dung cơ sở dữ liệu cấp bậc là thông dụng
• các ứng dụng hệ thống Cấu truc dữ liệu cho hệ điều hành có chứa nhiều bảng, tệp và danh sách có cấu trúc xác định rõ
• các ứng dụng CAD/CAE/CIM Các hệ thống thiết kế, kĩ nghệ và chế tạo có máy tính trợ giúp đòi hỏi các cấu trúc dữ liệu phức tạp để ghi nhớ, chuyển dịch và xử lí thông tin
Trang 5Bên cạnh đó, các ứng dụng trong lĩnh vực kĩ nghệ khoa học có máy tính trợ giúp, giải bài toán tổ hợp và nhiều lĩnh vực khác có thể tuân theo thiết kế hớng cấu trúc dữ liệu.
3 Cấu trúc dữ liệu so với các kỹ thuật luồng dữ liệu
Trớc khi xem xét những khác biệt giữa thiết kế hớng cấu trúc dữ liệu
và luồng dữ liệu, điều quan trọng cần ku ý là cả hai cách thiết kế này đều bắt
đầu từ cách phân tích để đặt nền tảng cho các bớc thiết kế tiếp; cả hai đều ớng theo thông tin; cả hai đều định biến đổi thông tin thành biểu diễn phần mềm; cả hai đều dựa trên các khái niệm suy diễn tách biệt về thiết kế “tốt”
h-Thiết kế hớng cấu trúc dữ liệu không dùng biểu đồ luồng dữ liệu một cách tờng minh Do đó, các phân loại phép biến đổi và luồng giao tác ít có liên can tới phơng pháp thiết kế hớng cấu trúc dữ liệu Điều quan trọng hơn mục tiêu cuối cùng của phơng pháp hớng cấu trúc dữ liệu là tạo ra một mô tả thủ tục cho phần mềm Khái niệm về cấu trúc mô đun chơng trình không đợc xem xét một cách tờng minh Các mô đun đợc coi nh các thứ phẩm của thủ tục và triết lí về sự độc lập của mô đun cũng ít đợc nhấn mạnh tới
Thiết kế hớng cấu trúc dữ liệu dùng biểu đồ phân cấp để biểu diễn cấu trúc thông tin Do đó, việc nhấn mạnh trong phân tích các yêu cầu phần mềm phải đợc đặt vào các mô hình biểu diễn này
4 Cấu trúc dữ liệu so với thiết kế hớng sự vật
Vì thiết kế hớng cấu trúc dữ liệu và thiết kế hớng sự vật tập trung vào các sự vật thế giới thực và biểu diễn của chúng trong hệ thống dựa trên phần mềm nên có những điểm tơng đồng quan trọng giữa hai phơng pháp thiết kế Giống nh việc so sánh giữa các phơng pháp hớng cấu trúc dữ liệu và hớng luồng dữ liệu, thiết kế hớng cấu trúc dữ liệu và OOD cả hai đều hớng thông tin; cả hai đều dùng một biểu diễn dữ liệu làm cơ sở cho việc phát triển mộ biểu diễn chơng trình; cả hai có khái niệm riêng của chúng (đợc suy diễ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
Trang 6á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 trng 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
Trang 7III 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
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
Phơng pháp thiết kế hớng dữ liệu trong
Trang 8
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 trng đợ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
Trạm (i)
* Mối nối dòng dữ liệu
Trang 9Hì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
Trang 10Bấ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, nhng 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ó
Hình 3 SSD cho USS
Nút - 0
Xe - 0
B D
Nút - 1
Xe - 1
S V
Trang 11Cấ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 lu ý 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á ờng xuyên để đảm bảo rằng không hành động nào xảy ra mà không bị phát
* 0 0
Trang 12hiệ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:
WAIT-BDY itr while TRANSIT1
Getsv SV;
WAIT-BDY endLEAVE (i)TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY endSTATION end
SHUTTLE-BDY end
ARRIVE (1);
SHUTTLE-1 end
Trang 13Cá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
Trang 14Hình 5 (a) Biểu đồ cấu trúc tơng ứng với văn bản có cấu trúc
Đợi (i)Tới (i)
B D
C M DS S
V
Trang 15Để cài đặt chỉ lệnh đèn, văn bản cấu trúc cho SHUTTLE-1 đợc sửa đổi
LEAVE (i)TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY endSTATION end
SHUTTLE-BDY end
ARRIVE (1);
SHUTTLE-1 end
Trang 16Tham 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 rđ-a 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ơ:
Trang 17LEAVE (i)TRANSIT-BDY itr while TRANSITi
Getsv SV;
TRANSIT-BDY endSTATION 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
Trang 18mứ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 cha đợ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
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:
phụ Nhấn yêu cầu Nhấn yêu cầu phụ Tới
Trang 19Read MBD and B1D;
EXTTRA-AR-BDY endRQ-PUSH seq
Resquest := yes;
Read MBD and B1D;
RQ-PUSH endEXTRA-RQ-PUSH itr while
Read MBD and B1D;
EXTRA-RQ-PUSH endARRIVAL end
PUSH-GROUP endBUTTON-BDY end
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)