PHÂT TRIỂN INTERFACE AGENT TRÍN MÔI TRƯỜNG ỨNG DỤNG ĐỘC LẬP
1.11 Xđy dựng đặc tả công việc
1.11.1 Mô hình đặc tả công việc
Trong chương năy, chúng ta sẽ nghiín cứu một câch chi tiết hơn câc khâi niệm đê được đề cập trong phần cuối của chương trước. Khâi niệm quan trọng trong mô hình công việc lă hănh động. Một hănh động có thể được hiểu lă sự thực hiện một hay một số câc công việc nhằm đạt được một mục tiíu đặt ra trước đó.
Định nghĩa về một hănh động có tính đệ qui. Một hănh động có thể lại bao gồm một hay một số câc hănh động con (sub action) khâc nhau. Việc thực hiện câc hănh động ở câc mức thấp hơn năy có thể giúp cấu thănh mục đích chung của mục đích cha của nó.
Như vậy, một hănh động có thể nằm ở một trong 2 dạng:
Hănh động nguyín tố (primitive action): hay còn gọi lă câc thao tâc (manipulation) lă câc hănh động có thể được thực hiện một câch trực tiếp để thu được kết quả. Hănh động nguyín tố không có câc hănh động con. Hănh động nguyín tố chính lă câc đơn vị thực hiện của mô hình công việc.
Hănh động không nguyín tố (non-primitive action): lă câc hănh động mă được thực hiện thông qua một số câc hănh động con ở câc mức thấp hơn. Việc phđn chia về ngữ nghĩa một hănh động lă nguyín tố hay không nguyín tố chỉ có tính tương đối. Việc phđn chia năy phụ thuộc văo yíu cầu mă mô hình công việc đặt ra về mức độ cụ thể của công việc. Điều đó có nghĩa lă một hănh động có thể lă hănh động nguyín tố trong mô hình công việc năy nhưng có thể lại được thực hiện thông qua câc hănh động con trong mô hình công việc khâc.
Mức độ cụ thể của một mô hình công việc có thể được thiết lập tuỳ thuộc văo yíu cầu về tính chính xâc của hệ thống qui định. Một mô hình công việc có thể được yíu cầu mô tả một câch chi tiết câc hănh động nếu như hệ thống cần câc thông tin chính xâc, đầy đủ về một công việc. Tuy nhiín việc mô tả một câch quâ chi tiết câc đặc tả công việc có thể lăm cho quâ trình thiết kế giao diện có thể trở nín phức tạp hơn rất nhiều.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Câc hănh động có thể có câc tham số. Câc tham số lă câc đầu văo để câc hănh động thực hiện trín đó. Mỗi tham số có kiểu vă câc giâ trị tương ứng của nó.
Câc hănh động có thể có câc hănh động con. Việc thực hiện câc hănh động con như thế năo để đạt được mục đích cha được qui định trong công thức (recipe) thực hiện mỗi hănh động cha. Mỗi công thức định nghĩa một tập câc bước vă có thể được thực hiện để thu được một hănh động không nguyín tố vă câc răng buộc mă âp đặt một trình tự bộ phận trín câc bước cũng như câc mối liín hệ logic khâc giữa câc tham số cũng như câc mối quan hệ của câc hănh động. Câc mối quan hệ có thể lă:
Quan hệ bằng (=): được âp dụng để răng buộc câc tham số về giâ trị. Quan hệ bằng cũng có thể mô tả cho câc tham số được trả về của câc hănh động. Quan hệ logic “Vă”: được âp dụng để răng buộc cho câc hănh động. Câc
hănh động được răng buộc bởi quan hệ “VĂ ” yíu cầu phải cùng được thực hiện.
Quan hệ logic “Hoặc”: được âp dụng để răng buộc câc hănh động. Câc hănh động được răng buộc bởi quan hệ năy có thể thay thế lẫn nhau để cùng đi tới một kết quả chung.
Quan hệ thứ tự thực hiện: Câc quan hệ năy răng buộc về mặt trình tự thời gian thực hiện câc hănh đông. Quan hệ năy kết hợp với câc quan hệ khâc để hình thănh một logic thực hiện câc công việc.
Câc mối quan hệ năy kết hợp với nhau tạo thănh câc răng buộc âp dụng cho câc công thức thực hiện.
Một hănh động có thể có câc tuỳ chọn về câc công việc được thực hiện. Câc tuỳ chọn không phải lă câc quan hệ. Nó lă trạng thâi của một hănh động bâo hiệu rằng hănh động đó có cần thiết phải được thực hiện hay không.
Trâi lại với tuỳ chọn lă tính bắt buộc. Một hănh động có tính bắt buộc lă yíu cầu hănh động đó phải được thực hiện theo câc răng buộc trước đó.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Một hănh động có thể có tính lặp nếu nó có thể được thực hiện theo cùng một công thức theo một số lần năo đó.
Một dạng biểu diễn hình thức cho một mô hình công việc cần phải đảm bảo mô tả được tất cả câc khâi niệm trín một câch đầy đủ (complete) vă đúng đắn (sound) thể hiện cụ thể:
Tính đầy đủ: Mô tả được tất cả câc mô hình hănh động tuđn theo câc hình thức diễn tả khâc nhau.
Tính đúng đắn: Mô tả phải đảm bảo tính đơn trị. Một mô hình công việc phải được diễn tả theo cấu trúc ngữ nghĩa năo đó thì cần đảm bảo lă có thể phđn tích được vă kết quả phđn tích lă duy nhất.
Tính đầy đủ vă đúng đắn có thường được biểu diễn hình thức dưới ngôn ngữ toân học như đê trình băy trong phần học mô hình công việc của chương trước.
Sau đđy lă một đặc tả công việc cho việc thực hiện chương trình thực hiện quâ trình download file sử dụng dịch vụ FTP (File Transfer Protocol). Cú phâp của hình thức thể hiện năy lă một hình thức mở rộng của Java mă trong đó mỗi hănh động nguyín tố vă phi nguyín tố vă mỗi luật phđn rê mục đích nhờ câc công thức được định nghĩa như câc lớp Java. Mô hình công việc năy đại diện cho khâi niệm của câc nhă thiết kế về những gì cần thiết để thực hiện chức năng FTP, trừu tượng hoâ của những chi tiết cần thiết cho một GUI để có thể hỗ trợ nhiệm vụ sẽ được thiết kế. Mô hình công việc năy được tổ chức một câch phđn cấp. Ở mức trín cùng, chức năng FTP được chia thănh 4 bước nhỏ có thứ tự lă:
Đăng nhập (Login).
Kết nối tới mây chủ (Connect to server). Download một hay nhiều file từ server. Ngắt kết nối (Disconnect).
Mỗi chức con năy lă câc hănh động không nguyín tố được phđn rê cho tới khi đạt được câc hănh động nguyín tố được liệt kí phía dưới.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
top FTP; //hănh động mức đỉnh
Công thức doftp thu được FTP { // Bước(hănh động)
Bước Login login; //Bước(hănh động) đăng nhập
Bước Connect connect; //Hănh động kết nối
Bước lặp DownloadFile download;//Bước(Hănh động)lặp
BướcDisconnect disconnect;//Bước ngắt kết nối
Răng buộc { //Câc răng buộc
//Đăng nhập được thực hiện trước kết nối
login trước connect;
//Kết nối được thực hiện trước download
connect trước download;
//Download được thực hiện trước ngắt kết nối
download trước disconnect;
login.address == download.address; }
}
Hănh động Login { // non-primitive action
Tham số StringTerm address; }
Công thức DoLogin thu được Login { // bước thực hiện không thứ tự
Bước EnterAddress address;
Bước EnterName name;
Bước EnterPassword password;
Răng buộc {
address.address == achieves.address; }
}
Hănh động Download { // Hănh động không nguyín tố
Tham số StringTerm address; }
Công thức DoDownload thu được Download {
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
//Câc bước thực hiện theo thứ tự bộ phận
Bước lặp SelectFile select;
Bước tuỳ chọn AsciiMode ascii;
Bước tuỳ chọn BinaryMode binary;
Bước DownloadFile download;
Răng buộc {
select trước download; ascii trước download; binary trước download;
download.address == achieves.address; }
}
// hănh động nguyín tố
Thao tâc EnterAddress {
Tham số StringTerm address; }
Thao tâc EnterName {
Tham số StringTerm name; }
Thao tâc EnterPassword {
Tham số StringTerm password; }
Thao tâc SelectFile {
Tham số StringTerm file; }
Thao tâc DownloadFile {
Tham số StringTerm address;
Tham số StringTerm file; }
Thao tâc AsciiMode;
Thao tâc BinaryMode;
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Thao tâc Connect;
Thao tâc Disconnect;
Ví dụ trín lă mô tả đầy đủ về một mô hình công việc thực hiện công việc truyền nhận file. Câc từ được in đậm lă câc từ khoâ. Câc từ được in nghiíng sau 2 dấu gạch (//) lă câc ghi chú giải thích không có giâ trị mô tả. Trong ví dụ trín ta câc từ khoâ:
Hănh động: Câc kiểu hănh động được thực hiện. Chú ý tới hănh động luôn có câc kiểu hănh động tương ứng. Trong ví dụ trín, kiểu hănh động được viết hoa sau từ khoâ Hănh động, còn hănh động cụ thể được mô tả trong mô tả Bước. Ví dụ: Hănh động Download
Bước: Lă sự thực hiện một công việc, một hănh động. Khai bâo bước với một kiểu hănh động vă một hănh động tương ứng của Bước đó. Ví dụ:
Bước EnterAddress address;
Thao tâc: lă sự thực hiện một hănh động nguyín tố. Tham số: khai bâo tham số.
Răng buộc: khai bâo răng buộc.
Khai bâo quan hệ: có 2 quan hệ được sử dụng trong ví dụ lă quan hệ
“trước” vă quan hệ “=” (bằng). Top: Khai bâo mục tiíu mức đỉnh.
Mô hình công việc được viết trín ngôn ngữ đặc tả trín khâ dễ hiểu vă gần gũi với ngôn ngữ lập trình. Tuy nhiín để mây có thể học được mô hình công việc năy không phải lă vấn đề đơn giản bởi chúng ta cần định nghĩa cho mây hiểu được câc từ điển từ vựng vă ngữ nghĩa tương ứng của câc từ vựng đó. Bín cạnh đó lă việc học được cấu trúc cú phâp của hình thức biểu diễn trín cũng cần phải được định nghĩa rõ răng. Điều quan trọng trong mô hình công việc được tạo lập bằng câc định nghĩa câc hănh động vă công thức năy lă mô hình công việc có cấu trúc hình cđy. Điều năy hoăn toăn thích hợp với mô hình dữ liệu được lưu trữ trong cấu trúc XML.
1.11.2 Xđy dựng đặc tả mô hình công việc theo XML
Mô hình công việc được đặc tả như sau:
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Mỗi công việc cần thực hiện thể hiện bằng một tập có thứ tự của câc hănh động có thể lă nguyín tố hoặc không nguyín tố
Câc hănh động tương ứng với một phần tử (thẻ) trong cấu trúc cđy của XML. Phần tử gốc của cấu trúc XML mô tả hănh động ở mức cao nhất cần thực hiện để hoăn thănh công việc.
Mỗi phần tử hănh động có thể có câc phần tử con thể hiện răng buộc về thứ tự thực hiện. Răng buộc năy được thể hiện bằng một phần tử con của phần tử hănh động đó lưu thông tin về mức độ ưu tiín thực hiện hănh động đó. Mức ưu tiín có thể lưu số thứ tự của việc thực hiện câc hănh động đó trong toăn bộ hệ thống
Mỗi phần tử hănh động có thể có một danh sâch câc phần tử hănh động con của hănh động đó.
Mỗi hănh động có câc mê vă tín (hay mô tả) hănh động tương ứng của nó. Mê hănh động được sử dụng khi cần ânh xạ giữa hănh động vă câc thănh phần giao diện tương ứng để thực hiện hănh động đó.
Ta sẽ tìm hiểu câc thănh phần đặc tả thông qua một ví dụ về quâ trình nhập liệu cho người bệnh nhđn khi văo viện công việc năy bao gồm 4 công việc con:
Nhập thông tin hănh chính về bệnh nhđn: bao gồm câc hănh động: - Nhập họ tín của bệnh nhđn.
- Nhập địa chỉ bệnh nhđn.
- Nhập thănh phố nơi bệnh nhđn cư trú. - Nhập tuổi của bệnh nhđn.
- Nhấn nút kiểm tra thông tin bệnh nhđn đê có trong dữ liệu chưa. Nhập thông tin tình trạng bệnh nhđn khi bệnh nhđn nhập viện
- Nhập nơi bệnh nhđn chuyển tới.
- Nhập tình trạng bệnh nhđn khi chuyển tới. Nhập câc thông tin sơ chuẩn của câc câc sĩ
- Nhập thông tin sơ chuẩn. - Nhập khoa được chuyển tới. - Nhập tín bâc sĩ chẩn đoân sơ bộ.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
Nhấn nút lưu thông tin bệnh nhđn
Sau đđy lă một đoạn mô tả cho cđy công việc của mô hình công việc:
C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahTools\Atheenah Tools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - # <action> <name>Nhập thông tin bệnh nhđn khi nhập viện</name>
<priority>1</priority>
C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahTools\At heenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml -
#<action>
<name>Nhập thông tin hănh chính về bệnh nhđn</name>
<priority>11</priority> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>1</id> <name>Nhập tín bệnh nhđn</name> <priority>111</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>2</id>
<name>Nhập địa chỉ bệnh nhđn</name>
<priority>112</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>3</id>
<name>Nhập thănh phố bệnh nhđn</name>
<priority>113</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>4</id>
<name>Nhập tuổi bệnh nhđn</name>
<priority>114</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>5</id>
<name>Nhấn nút kiểm tra bệnh nhđn</name>
<priority>115</priority>
</action> </action>
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Bâo câo đồ ân tốt nghiệp đại học Thầy giâo hướng dẫn: TS. Huỳnh Quyết Thắng
C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahTools\Atheenah Tools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - # <action>
<name>Nhập trạng thâi bệnh nhđn trước khi nhập viện</name> <priority>12</priority> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>6</id>
<name>Nhập nơi bệnh nhđn chuyển tới</name>
<priority>121</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>7</id>
<name>Nhập trạng thâi bệnh nhđn</name>
<priority>122</priority>
</action> </action>
C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahTools\At heenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action>
<name>Nhập thông tin sơ chuẩn</name>
<priority>13</priority>
C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.x ml - #<action>
<id>8</id>
<name>Nhập sơ chuẩn</name>
<priority>131</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml - #<action> <id>9</id>
<name>Nhập khoa chuyển tới:</name>
<priority>132</priority> </action> C:\MIMAS\Projects\Athena\AtheeanahTools\NewAtheenahTools\AtheeanahT ools\AtheenahTools\FontConverter\bin\Source\TestUIAgent\xml\TaskModel.xml -