Các hợp đồng về hoạt động của hệ thống

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 109 - 113)

- 17

5.2.5 Các hợp đồng về hoạt động của hệ thống

Nhưđãthấyởtrên,biểuđồtrìnhtựmớichỉchochúngtabiếttêncủanhữngnhiệmvụ màmỗiđốitượngcầnphảithựchiệnkhinhậnđượcmộtthôngđiệp,nhưngchưamôtảcách thựchiệnnhữngcôngviệcđónhưthếnào.Đểhiểurõ hơn vềnhữnghànhvicủacácđối tượng vàđểhỗtrợchothiếtkếvàcàiđặtcáclớp saunày,chúngtacần xâydựngcác hợp

đồng (Contract)hay các đặc tảchonhữnghoạtđộng(thaotác,hàm)đãxácđịnhđược. Hợp

đồng cho các hoạt động của hệ thống mô tả về sự thay đổi trạng thái mà khi bắt đầu thì

- 93 -

thoả tiền điều kiện (pre-conditions) và sau đó, khi kết thúc sẽ thoả mãn hậu điều kiện (post- conditions).

Pre-conditions: lànhữngđiềukiện màtrạngtháicủahệ thốngđược giảthiết

làthoảmãntrướckhithựchiệnmộtthaotác,mộthàm.

Post-conditions:lànhữngđiềukiệnmàtrạngtháicủahệthốngphảithoảmãn

saukhithựchiệnxongmộtthaotác,mộthàm.

Mộtcáchhìnhthức,hợpđồngchohoạtđộng Op()cóthểviếttheobộbacủa Hoare:

{Pre-conditions} Op() {Post-conditions}

Thểhiệnrằng:Nếuhoạtđộng Op()bắtđầutừtrạngtháithoảmãn Pre-conditions thìsaukhikếtthúcthựchiệnhệthốngsẽởtrạngtháithoảmãn Post-conditions.

Pre-condition và Post-conditionlànhữngmệnhđề boolean (mệnh đề điều kiện logic).

Ví dụ:hãyxétthaotác enterItems()(upc: UPC, soHang: Int)củalớpHBH.

Pre-conditions:HệmãchuẩncácsảnphẩmtoàncầuUPCđượcbiếttrướcđốivớihệ

thống.

Post-conditions:baogồmnhữngđiềukiệnsau:

+Nếumặthàngnhậpvàolàđầutiênthìphảitạoramộtđốitượngmớilà

phienBanHangcủalớpPhienBanHang vàkếthợpnóvàohệthốngHBH,

+Tạoramộtđốitượng dongBanHangcủalớpDongBanHangchomặthàng vừanhậpvàovàgán dongBanHang.soLuong = soHang (đốisốcủahàm),

+ dongBanHangđượcliênkếtvới MoTaMatHangdựavàomã upc.

Ngoài Pre-conditionsvà Post-coditions,chúngcóthểbổsung thêm mô tả tóm tắt

về trách nhiệm, kiểu, lớp nào, tham chiếu tới những chức năng nào, chú thích, những

ngoại lệ và kết quả, v.v.

Chúng tacóthểxâydựngcáchợpđồng nhưsau:

1. Từ các biểu đồ trình tự, xác định các thao tác, hàm, hoạt động của các lớp tronghệthống,

2. Vớimỗithaotáctrênhãyxâydựngmộthợpđồng,

3. Mô tả tóm tắt những trách nhiệm chính mà hệ thống phải thựchiện khi thực thithaotácnày.

kếtthúcthaotác.

5. Đểmôtả Post-conditions,hãycăncứvào: +Việctạolập,huỷbỏcácđốitượng

+Nhữngthayđổicủacácthuộctính +Thiếtlậphayhuỷbỏcácmốiliênkết.

Đặctảcácthaotác(hàmthành phần)củalớpHBH

1. Hợp đồng để nhập các thông tin về các mặt hàng

-94-

Têngọi: enterItems()(upc:UPC, soLuong:Int)

Tráchnhiệm: Nhậplần lượtcácthông tin về nhữngmặt hàngmàkháchđã

chọn mua và đưa chúng vào phiên bán hàng. Hiển thị các thôngtinmôtảvàgiábáncủatừngmặthàng.

Kiểu/Lớp: System(Hệthống)

Thamchiếutới: R1.1,R1.3,R1.9 vàcasửdụngBánhàng

Chúý: SửdụngphươngpháptruynhậpnhanhvàoCSDL

Ngoạilệ: Nếuupckhônghợplệthìcólỗi

Kếtquả(Output):

Pre-conditions: UPCđượcbiếttrước

Post-conditions: + Nếumặt hàngnhập vào làđầu tiên thìphảitạo ramột

đốitượng phienBanHangcủa lớpPhienBanHang vàkết hợpnóvàohệthốngHBH,

+ Tạo ra một đối tượng dongBanHang của lớp

DongBanHang cho mặt hàng vừa nhập vào và gán

dongBanHang.soLuong = soHang (đốisốcủahàm),

+ dongBanHang được liên kết với MoTaMatHang dựa vàomã upc.

Têngọi: endSale()()

Tráchnhiệm: Ghinhậnnhữngmặthàngđã

bánhàng.

Kiểu/Lớp: System(Hệthống)

Thamchiếutới: R1.2,vàcasửdụngBánhàng

Chúý:

Ngoạilệ: Nếuphiênbánhàng khôngthực

Kếtquả(Output):

Pre-conditions: UPCđượcbiếttrước

-95-

Têngọi: makePayment(soTien: DVT), trong đó DVT là lớp các l oại

Tráchnhiệm: Ghinhậncácthôngtinliênquanđếnviệc thanhtoán,tính

số

Hợp đồng 2. Hợp đồng về việc kết thúc nhập hàngHợp đồng

Kiểu/Lớp: System(Hệthống)

Thamchiếutới: R2.1,vàcasửdụngBánhàng

Chúý:

Ngoạilệ: Nếuphiênbánhàngkhôngkếtthúcthìcólỗi

NếusoTiennhỏhơntongSoTien thìcũngcólỗi

Kếtquả(Output):

Pre-conditions:

Post-conditions: +Mộtđốitượng thanhToanđượctạolập,

+sốtiềndưlà soTien - ThanhToan.tongSoTien

+ thanhToan được liên kết với phienBanHang đã được tạo lập ởhợp đồng 1.để thực hiện việc cập nhật những mặthàngđãbán,tổngsốtiền,v.v.

Lưu ý: Lớp PhienBanHang từ hình 4-14 sẽ được bổ sung thêm thuộc tính

ketThuc khiphân tíchca sửdụng“Thu tiền”.Thuộc tínhnàycókiểu logicvàsẽnhận

giátrị truekhikếtthúcviệcnhậpdữliệuvàbắtđầuthựchiệnthu tiềncủakháchhàng. 3. Hợp đồng thực hiện thu tiền mặt

Lưu ý:Đốivớinhữngca sửdụngcó nhiềuđốitượngtham giathìbiểuđồ trìnhtự

làkháphứctạp,dovậynó khôngthíchhợp.Muốnhiểurõhoạtđộngcủacácđốitượng thì tốt nhất lànên phân táchnhững ca sửdụng phứchợp thành cácca sử dụngtương đốiđơngiản,dễhiểuvàmôtảđượcbằngbiểuđồtrìnhtựmộtcáchđơngiản.

Hợp đồng

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 109 - 113)

Tải bản đầy đủ (DOCX)

(195 trang)
w