Thành phần Client (Khách hàng)

Một phần của tài liệu Mô hình hóa giao diện của các thành phần trong các hệ thống dựa trên thành phần (Trang 37 - 39)

Theo mô hình thành phần ở trên (Hình 3), chúng ta thấy rằng thành phần Client (khách hàng) là thành phần thụ động, vì vậy có dạng

Client = Ctr , Dep , SDep , Mcode, SInv , cụ thể:

Hợp đồng Ctr= Fd , Md , Rd , Mspec , Init , Inv .

Tập Dep chứa các tên của thành phần, mỗi phần tử trong Dep là tên của thành phần mà Client phụ thuộc vào.

SDep là tập các biến trong Π (biểu thị sự tương tác với lịch trình).

SInv là một vị từ trên các biến vSDep .

Mcode gán cho mỗi phương thức op trong Md một thiết kế xây dựng từ các hoạt động cơ bản và phương thức gọi có mẫu call(Comp,C ,op1), trong đó op1 là một phương thức trong thành phần C nằm trong Dep.

Rd – một khai báo tài nguyên, đó là một tập con của RES

Init là một giá trị khởi tạo, đó là sự kết hợp mỗi biến trong Fd và biến địa phương có giá trị cùng loại, một biến trong Rd với một số nguyên

Mspec là đặc tả của một phương thức được kết hợp giữa phương thức op(in,

out) trong Md với một thiết kế có tính tới yếu tố thời gian α,FP,FR , trong

đó (α\(inout))⊆Fd

Inv là một vị từ về các thuộc tính trong hợp đồng (được gọi là tính bất biến của hợp đồng).

Mô tả chi tiết các thuộc tính của thành phần Client

Tập Dep= {Invoice, Invoice_System} chứa tên 2 thành phần là Invoice

Invoice_System mà Client phụthuộc vào.

Rd - Sửdụng 2 tập

(1) Tập CLIENT là một bộ tập biểu thị tất cả các khách hàng có thể (hiện tại và tương lai).

(2) Tập CATEGORY là viết tắt của các loại khác nhau của khách hàng.

C ATEGORY = {friend, dubious, normal}

Md - Tập hợp các phương thức của thành phần Client

{discount(), create_client(a), read_client(), modify_category(c,k), modify_allowance(c,a)}

Tập Fd chứa các biến của thành phần là

Vị từ Inv về các thuộc tính trong hợp đồng

client ⊆ C LI ENT ∧

category ∈ client → C ATEGORY ∧ allowance ∈ client → NAT

Giá trị khởi tạo Init

client, category, allowance := ∅, ∅, ∅

Tính tỷ lệ giảm giá Discount

Hàm discount là một chức năng liên kết từng loại khách hàng với tỷ lệ giảm giá tương ứng sẽ được áp dụng cho tổng hoá đơn của họ.

c ← discount() =ˆ discount ∈ CATEGORY → (0..100) ∧

discount = {friend → 80, dubious → 100, normal → 100}

Chức năng create_client

Chức năng tạo mới khách hàng create_client() có biết đầu vào a : NAT đại diện cho các mức giảm giá của khách hàng đăng ký mới. Khách mới được gán hạng mặc định là normal.

c ← create_client(a) =ˆ

Với tiền điều kiện

a ∈ NAT ∧ client ≠ CLIENT

Thì

Với ∀cc sao cho cc∈CLIENT−client

Thì ta có

client := client ∪{cc}║category(cc) := normal║ allowance(cc) := a║c := cc

Các chức năng khác

c ← read_client =ˆ

Với tiền điều kiện

client = ∅

Thì

c :∈ client modify_category(c,k) =ˆ

Với tiền điều kiện

c ∈ client ∧

k ∈ CATEGORY

Thì

modify_allowance(c,a) =ˆ …

Một phần của tài liệu Mô hình hóa giao diện của các thành phần trong các hệ thống dựa trên thành phần (Trang 37 - 39)

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

(49 trang)
w