Đặc tả CCM bằng ngôn ngữ IDL

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU THIẾT KẾ THEO HỢP ĐỒNG VÀ XÂY DỰNG CÔNG CỤ HỖ TRỢ ppt (Trang 38 - 41)

3.3.2.1. Thành phần

Thành phần được dùng với từ khóa component.

Giao diện tương đương được hỗ trợ bởi các thành phần có thể kế thừa từ một số giao diện người dùng tự định nghĩa. Mối quan hệ này được thể hiện bằng cách sử dụng từ khóa supports.

Ví dụ:

interface Clock {

Time getTime ();

void ResetTime (in Time t); };

component Car supports Clock {};

3.3.2.2. Facets

Facets tương ứng với giao diện được cung cấp bởi một thành phần. Facets được dùng với từ khóa provides.

component XXX {

provides <interface_type> <facet_name>; };

Ví dụ:

module motors {

interface Engine{};

interface Panel {};

component Car supports Clock{

provides Engine _engine;

provides Panel_panel; };

3.3.2.3. Receptacles

Tương ứng với giao diện được yêu cầu bởi thành phần chức năng trong một môi trường nhất định.

Receptacle được dùng với từ khóa uses

Receptacle đơn

Có thể kết nối đến một đối tượng,

component XXX {

uses <interface_type> <receptacle_name>; };

Ví dụ:

interface Customer {};

component Account {

uses Customer owner; };

Nhiều receptacle (adsbygoogle = window.adsbygoogle || []).push({});

Có thể kết nối với nhiều đối tượng.

component XXX {

usesmultiple <interface_type> <receptacle_name>; };

Ví dụ:

component Account {

usesmultiple Customer owner; };

3.3.2.4. Event Sources

Từ khóa publishes được sử dụng để định nghĩa event sources. Từ khóa này chấp nhận kết nối 1 – n

component XXX {

publishes <event_type> <source_name>; };

Ví dụ:

module stockbroker {

eventtype AlertSignal{

public string reason; };

component Broker {

publishes AlertSignal alert_source; };

};

Từ khóa emits chấp nhận kết nối 1- 1

component XXX {

emits <event_type> <source_name>; };

Ví dụ:

module stockbrocker {

eventtype StockLimit {

public long stock_value; };

component Broker {

emits StockLimit limitAlert; };

3.3.2.5. Event Sinks

Event sink được dùng với từ khóa consumes.

component XXX {

consumes <event_type> <sink_name>; }; (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ:

module stockbrocker {

eventtype AlertSignal {

public string reason; };

component Trader {

consumes AlertSignal alert_sink; };

};

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU THIẾT KẾ THEO HỢP ĐỒNG VÀ XÂY DỰNG CÔNG CỤ HỖ TRỢ ppt (Trang 38 - 41)