2013-02-10 38 views
5

Như tôi đọc các khái niệm sau đây thông qua đặc tả UML thúc đẩy bởi OMG 2.5 (Beta) như:trong, ngoài, inout, trở về hướng tham số trong UML

trong: Chỉ ra rằng giá trị thông số được truyền bằng các người gọi.

inout: Cho biết giá trị tham số được người gọi chuyển vào và sau đó quay lại người gọi.

ra: Cho biết các giá trị tham số được chuyển cho người gọi.

return: Cho biết giá trị tham số được chuyển dưới dạng giá trị trả lại cho người gọi.

Điều này có nghĩa là "trong" được gọi theo giá trị và "inout" làm cuộc gọi bằng cách tham chiếu?

bạn có thể làm rõ từng khái niệm một chút không?

Trả lời

2

• in - Tham số đầu vào (không thể sửa đổi).

• ra - Tham số đầu ra (có thể được sửa đổi để truyền đạt thông tin cho người gọi).

• inout - Tham số đầu vào có thể được sửa đổi.

• trả về -Giá trị trả lại của cuộc gọi.

1

Gọi bằng cách tham chiếu là một triển khai có thể có của inoutout, có.

Hãy nhớ rằng UML mô tả hành vi theo cách trung lập với ngôn ngữ. Việc thực hiện một giao diện cụ thể bằng ngôn ngữ thực tế là tùy thuộc vào việc thực hiện điều này có nghĩa là gì. Trong một ngôn ngữ như Ada, với các tham số in, outin out ngôn ngữ cấp, điều này có thể được thể hiện trực tiếp bằng ngôn ngữ và trình biên dịch có thể quyết định nơi tham chiếu hoặc sao chép là triển khai tốt hơn. Trong một ngôn ngữ như Python, nơi tất cả các thông số được chuyển theo tham chiếu (sắp xếp), ký hiệu này của mục đích ở cấp UML không dẫn đến bất kỳ sự phân biệt nào ở cấp độ triển khai. Và trong một ngôn ngữ như C, với các kiểu con trỏ rõ ràng và tất cả các tham số được truyền theo giá trị, những ý định này được thể hiện trong UML biến thành các tham chiếu địa chỉ rõ ràng và các tham chiếu con trỏ.

Nói cách khác, câu trả lời ngắn gọn là "có, đó là khoảng những gì nó có nghĩa là, nhưng nó có thể không phải là những gì nó không".

+0

cảm ơn bạn @jimwise để làm rõ. Tôi muốn biết khi mô hình hóa trong UML, nếu tôi đặt "trong" hướng cho một tham số? Điều này có ý nghĩa gì (ngữ nghĩa)? trong trường hợp "thoát" nghĩa là gì? và cũng "inout" và "return" điều này có nghĩa là gì? – Andrew

0

Điều quan trọng cần nhớ về UML là được thiết kế là phổ quát, nó được dự định độc lập với nền tảng triển khai. Cụ thể, nó là một mô hình PIM, một nền tảng độc lập. Vì vậy, nó là một sai lầm để sử dụng ngữ nghĩa thực hiện cụ thể nền tảng như 'theo giá trị' và 'bằng cách tham khảo'.

Bây giờ trong thực tế xác định ngữ nghĩa cụ thể của miền là một công việc của Kiến trúc sư dự án và trong nhiều trường hợp ngữ nghĩa bạn đề cập là hợp lệ, nhưng đó không phải lúc nào cũng như vậy.

Model Driven Architecture (MDA) cộng Platform Profile = Platform Specific Design.

+0

cảm ơn bạn @Martin Spamer. nếu những kẻ đó là miền cụ thể tại sao được viết thông qua đặc tả UML? tôi thích hiểu ngữ nghĩa của mỗi người trong số họ và cũng có thể nếu chúng ta bỏ qua những chi tiết triển khai đó, làm thế nào để có thể tạo mã từ mô hình này? – Andrew

+0

Tốt lý tưởng là Mô hình của bạn nên duy trì phổ cập và Kiến trúc sư của bạn nên xác định hồ sơ nền tảng. Điều này định nghĩa cho thấy ngữ nghĩa phổ quát được chuyển thành ngữ nghĩa cụ thể nền tảng trong quá trình tạo mã hoặc kỹ thuật khứ hồi. Tôi đã thêm một số liên kết ở trên để trợ giúp. –

Các vấn đề liên quan