بخشی از مقاله
چكيده:
در مدلسازي شيئگراي نرم افزار با استفاده ازUML چهرههايي مختلف يك سيستم با استفاده از دياگرامهاي مختلف نمايش داده ميشوند. ساختار پايدار سيستم از طريق دياگرامهاي كلاس واكنش بين قطعات مختلف مدل از طريق دياگرامهاي كنش مثل دياگرامهاي توالي و دياگرانمهاي همكاري نمايش داده ميشود. بنابراين يك مدل كامل شامل چندين دياگرام از انواع مختلف ميباشد. بنابراين سازگاري بين دياگرامهاي مختلف از اهميت بسياري برخوردار است.
در اين مقاله آناليز سازگاري بين دياگرامهاي گلاس و توالي با استفاده از گرافهاي نوع ويژگي و تبديلات آنها شرح داده شده است. اگر بخواهيم به طور صريح بگوييم دياگرامهاي كلاس به گرافهاي نوع ويژگي كه به آنها گرافهاي كلاس ميگوييم تبديل ميگردند.همچنين چندتاييها به قيودي تبديل ميگردند كه به آنها قيود چندتايي ميگوييم. دياگرامهاي توالي توسط يك گرامر گرافگونه نمايش داده ميشوند كه به آنها گرامرهاي گرافگونه كنش ميگويم.
آناليز سازگاري شامل موارد “ وجودي” ، “ آشكاري” و “ چند تايي” ميگردد براي آناليز سازگاري از تكنيكهاي جبري موجود، براي گرامرهاي گرافگونه استفاده شده است.
1¬ـ ممقدمه
براي ايجاد يك سيستم جديد واعمال تغييرات در يك سيستم موجود در ابتدا بايد كاركرد آن سيستم تعيين گردد. درحقيقت ساختار ايستا و پوياي سيستم بايد كاملاً مشخص و مدلسازي گردد. بنابراين واجب است، عناصري براي نمايش ساختار داخلي، رفتار سيستم و كنش بين قطعات مختلف آن در نظر گرفته شوند. در صورتي كه از يك متد شيئگرا استفاده كنيم، در آنصورت UML براي نمايش و مدلسازي سيستم و قطعات آن انتخاب مناسبي است. UML چند نوع مختلف دياگرام را كه هر كدام سيستم را از زاويهاي خاص نمايش ميدهند،. تعريف ميكند. هر دياگرام يا ساختار ايستاي سيستم، يا رفتار داخلي آن و يا كنش بين قطعات مختلف را نمايش ميدهد.
بنابراين مدل كامل سيستم شامل چندين دياگرام از انواع مختلف ميباشد. علاوه براينكه دياگرامها از نظر املايي بايد درست باشد و همچنين هر يك به تنهاي سازگار باشند، دياگرامهايي كه از يك نوع نيستند، نيز بايد با هم سازگار باشند. براي آناليز سازگاري دياگرامهاي كلاس و توالي از گرافهاي نوع ويژگي و تبديلات آنها استفاده شده است.
براي درك بهتر راه حل ارائه شده در بخش بعد، ابتدا دياگرامهاي كلاس و توالي و ويژگيهايي كه بايد بررسي گردند، مورد مطالعه قرار مي گيرند.
دياگرامهاي UML
UML يك زبان مدلسازي يكپارچه مي باشد ،كه براي مدلسازي انواع سيستم هاي نرم افزاري مبتني بر متدولوژي شيئي گرا در نظر گرفته شده است . اين زبان براي تشريح ، نمايش ،ساخت و X مستند سازي سيستم هاي نرم افزاري مورد استفاده قرار مي گيرد. نسخه1-1 UML در نوامبر 1997 توسطOMG مورد قبول واقع شده است و نسخه 3-1 آن از مارس 1999در دسترس ميباشد. به خاطر استفاده فراوان اين زبان در صنعت و تحقيقات اين زبان بصورت استاندارد در آمده است.
1-2- دياگرامهاي كلاس
1-1-2- تعريف
دياگرامهاي كلاس ساختار ايستاي سيستم را نمايش ميدهند، يعني عناصر موجود در سيستم، ساختار داخلي آنها و ارتباط آنها با ساير عناصر سيستم را مشخص مي كنند. عناصر سيستم بصورت كلاس در دياگرام كلاس نمايش داده ميشوند.
چند نوع مارتباط ايستا بين كلاسها وجود دارد يعني تناظر، مجتمع، تركيب، وابستگي و تعميم .
مفهوم بستهها در UML يك مكانيزم درختي براي گروهبندي كلاسها، به دست ميدهد. ساختار داخلي كلاسها با ليستهايي از متدها و ويژگيها نمايش داده ميشود. جزئيات بيشتر عناصر مدل در بخش بعد تشريح شده اند. وابسته به سطح مجرد سازي و پيچيدگي سيستم ، عناصر كمتر و يا بيشتري مورد بررسي قرار مي گيرند.
2-1-2 عناصر دياگرامهاي كلاس
يك كلاس يك شرح براي مجموعة اشيائي است ،كه داراي يك ساختار ، رفتار ، ارتباطها و معني مي باشند. هر كلاس داراي يك نام مي باشد و مي تواند متعلق به يك بسته باشد.
اشيائي كه از يك كلاس هستند داراي يك ليست ويژگيها و يك ليست متدهاي يكسان ميباشند،اماL1 مقادير ويژگيها ممكن است متفاوت باشند. يك دياگرام كلاس ميتواند داراي اشيايي باشد، كه نمونههايي از كلاسها ميباشند. شكل معمول تعريف يك ويژگي بصورت زير ميباشد.
Visibility name : type ?? expression
نوع ويژگي (type- expression) توسط UML تعريف نميشود و اين مقدار وابسته به زبان ميباشد در حقيقت نوع متغير، براي زباني است، كه در نهايت كلاس مورد نظر در آن ايجاد و پيادهسازي خواهد شد. ممكن است كلاسهاي موجود در دياگرام كلاس به عنوان نوع متغير براي ويژگيها مورد استفاده قرار گيرند. اين زماني است كه يك ويژگي يك مرجع براي يك شيء از آن كلاس نگهداري ميكند. آشكاري ويژگيها شامل يكي از موارد protecded(#) , public(+) و prirate(-) ميباشد.
ويژگيهاي عموني (public) براي ساير كلاسها قابل دسترس هستند،ويژگيهاي محافظت شده تنها براي اشياء همان كلاس و يا زيركلاسهاي آن قابل دسترس ميباشند و ويژگيهاي خصوصي(( prirate تنها براي خود شيء قابل دسترس ميباشند. ساير جزئيات مثل مقادير اوليه، چند تايي و رشتههاي مربوط به ويژگي ها ، همگي اختياري هستند.
يك متد در UMLتوسط يك رشته كه به شكل زير ميباشد تعريف ميگردد.
Visitility name (parameter
Visibility name (parameter – list): return-type-expression
ليست پارامترهاي هر متد شامل يكسري پارامتر ميباشد كه همگي داراي فرمتي به شكل زير هستند.
Name: type-expression
آشكاري متدها همانند ويژگيها مورد بررسي قرار ميگيرد. متدي كه يك عمليات را محقق ميسازد داراي همان خصوصيات عمليات ميباشد و البته داراي يك بدنه پيادهسازي ميباشد كه عمليات را پيادهسازي ميكند.
كلاسها بصورت درختي توسط بستهها ؟؟سازماندهي ميگردند.
هر كلاس حداكثر به يك بسته تعلق دارد و بسته به نوع آشكاري آن قابل دستيابي از طرف ساير بستهها ميباشد.
رابطه ساختاري بين كلاسها از طريق روابط تناظر و تعميم نشان داده ميشود. يك كمان بيانگر ارتباط ساختاري يك شيء از كلاس مبدأ با يك شيء از كلاس مقصد ميباشد. يك رابطه تناظر دو طرفه كه بصورت يك خط نشان ميدهد. اين ارتباط ساختاري به ايت معني است كه شيء مبدأ به راحتي به شيء مقصد دسترسي پيدا ميكند دليل اين امر آن است كه شيء مبدأ يك مرجع به شيء مقصد را در خود نگهداري ميكند. رابط تناظر معمولاً بايزي ميباشند اما ميتوان روابط تناظر چندگانه را نيز داست. روابط چندگانه در اين مقاله بررسي نميگردند.
از طرفي بصورت تئوري امكان وجود چند رابطه تناظر بين دو كلاس وجود دارد. اما در برخي موارد اين مسأله تمكن است نيك دياگرام ناسازگار ختم گردد.
روابط تجمع و تركيت انواع خاصي از ناظر هستند كه رابطه "بخشي از" را نمايش ميدهند. باري نمايش اين روابط انتقال خط واصل بين د ركلاس يك لوزي قرار داده نميشود كه در رابطه تركيب اين لوزي توپر و در رابطه تجمع اين لوزي تو خالي ميباشد. رابطه تجمع به طور كلي رابطه كل و جزء را نمايش ميدهد.
يك رابطه تركيب يك رابطه قويتر نسبت به تجمع ميباشد و به اين معني است، كه جزء در نظر گرفته براي تركيب تنها براي تركيب ميباشد و نميتواند جزء شيء ديگري باشد. اين بدان معني است، كه تمام اجزاي يك تركيب هنگام از بين رفتن تركيب از بين ميروند.
يك رابطه تعميم بين دوكلاس براي نمايش ارث بري كلاس فرزند از كلاس پدر ميباشد. تمام ويژگيها و عمليات كلاس پدر به كلاس فرزند به ارث ميرسد. از طرفي كلاس فرزند ، خود مي تواند عمليات و ويژگيهاي خود را داشته باشد. رابطه تعميم امكان جايگزيني را محقق ميسازد. يعني در جايي كه يك نمونه از كلاس پدر مورد نياز است، ميتواند يك نمونه از كلاس فرزند مورد استفاده قرار بگيرد. اما عكس اين عمل ممكن نيست، يعني يك نمونه از كلاس پدر نميتواند جايگزين يك نمونه از كلاس فرزند گردد. در روابط تعميم حلقه ممكن نيست اين در حالي است، كه حلقه براي روابط تناظر مجاز ميباشد.
uml امكان ارثبري يگانه و چند گانه را ممكن ساخته است. در طول اين مقاله تنها ارثبري يگانه مورد بررسي قرار ميگيرد، اما ارثبري چندگانه مشكلي براي چك سازگاري نيست.
uml رابطه تناظر را همراه با دو انتهاي آن در نظر ميگيرد. بنابراين امكان اضافه كردن ويژگيهاي مربوط به دو انتهاي يك رابطه تناظر در نظر گرفته شده است.
با افزودن يك Rolename به يك سمت رابطه، اشياء كلاس آن سمت يك نام بدست ميآورند، كه توسط اشياء كلاس سمت ديگر مورد استفاده قرار ميگيرد.
چندتايي درنظر گرفته شده براي هر ارتباط تعداد اشيائي را كه توسط آن رابطه با شيء مورد نظر در ارتباط هستند، تعيين ميكند.
چندتايي يك بازه از اعداد غير منفي است كه بصورت (حد بالا…حد پايين) ميباشد. حد پايين صفر به اين معني است كه شيء نيازي به يك مرجع ندارد. از طرف ديگر حد پايين 1 وجود شيء متناظر را قطعي ميكند، يعني حداقل يك مرجع براي شيء متناظر بايد وجود داشته باشد. جدول(x) مقادير ممكن باري بازة چندتايي را نمايش ميدهد.
ممكن است دياگرام كلاس با توجه به چند تايي ها منجر به يك دياگرام شيء تهي گردد و يا ناسازگاري بوجود آيد. آشكاري يك رابطه تناظر ميتواند محدود گردد. اين كار با استفاده از كلمات كليدي protected (#) , Public (+) و يا private (-) صورت ميگيرد. اين كلمات كليدي دسترسي و استفاده از rolename ها را محدود ميسازند. مفهوم اين كلمات كليدي همانند آن چيزي است، كه براي ويژگيها گفته شده است . شكل(X) يك دياگرام كلاس همراه با رابطههاي تناظر يكطرفته و دو طرفه، تجمع و تعميم ميباشد.
2-2 دياگرامهاي توالي
براي نمايش تعامل بين چندين شيء، دو نوع دياگرام توسط uml ارائه شده است دياگرام توالي و دياگرام همكاري. دياگرام توالي برروي زمانبندي و توالي انجام فعاليتها تأكيد دارد. اين دياگرام تناظر بين اشيائي را نشان نميدهد. بنابراين ارتباط بين فرستنده و گيرندة پيام به طور صريح بيان نميگردد. يك نمودار توالي داراي دو بعد ميباشد: بعد عمودي، زمان را نشان ميدهد و بعدر افقي اشياء مختلف را نشان ميدهد. به طور نرمال زمان به سمت پايين افزايش مييابد.
تعامل بين اشياء از طريق فرستنده وگيرندة يك پيام، مشخص ميگردد. پيامهايي كه اشياء را ايجاد ميكنند و يا از بين ميبرند، نقش مهمي در چك سازگاري مدلها دارند. از آنجايي كه دياگرامهاي همكاري بدون از دست دادن اطلاعات قابل تبديل به دياگرامهاي توالي هستند، بنابراين بررسي سازگاري بر روي دياگرامهاي توالي صورت ميگيرد.
2-2-2 عناصر دياگرام توالي
اشيائي كه در دياگرام توالي شركت ميكنند، شبيه كلاسهاي دياگرام كلاس نمايش داده ميشوند، زيرا آنها نمونه هايي از كلاسها ميباشند. بصورت معمول، هر شيء در دياگرام توالي به فرمتobjoutname/rolename : classname نمايش داده ميشود. اگر تنها يك role براي اشياء يك كلاس متصور باشد در آنصورت rolename ميتواند حذف گردد. اما نام نقش به كار رفته بايد با نقش به كار رفته براي اين تعامل هماهنگي داشته باشد. در اسناد UML آورده شده است كه نام شيء ، نام نقش و نام كلاس قابل حذف شدن ميباشند، اما براي بررسي سازگاري دياگرامها نياز است كه حداقل نام كلاس در دياگرام توالي وجود داشته باشد. خط زندگي وجود يك شيء را نمايش ميدهد. اگر يك شيء را طول زمان در دياگرام توالي ايجاد گردد خط زندگي آن شيء از آن نقطه زماني شروع مي شود و در صورتي كه يك شيء از بين برود خط زندگي آن شيء پايان يافته و علامت(x) در انتهاي آن قرار ميگيرد.
تعامل بين اشياء از طريق پيامها محقق ميگردد. يك پيام داراي يك فرستنده و يك گيرنده ميباشد و داراي يك برچسب ميباشد، كه عملياتي را كه بايد انجام شود، مشخص ميكند. عمليات درخواست شده توسط يك پيام، بايد درگيرنده موجود باشد، يعني در ليست عمليات كلاس گيرنده باشد و يا به ارث رسيده باشد، از طرفي براي فرستنده پيام آشكار باشد. همچنين يك رابطه بين فرستنده و گيرنده بايد وجود داشته باشد. جهت اين رابط بايد از فرستنده به گيرنده باشد. يك پيام بصورت يك كمان كه از خط زندگي فرستنده شروع ميشود و به خط زندگي گيرنده ختم ميگردد، نمايش داده ميشود. بر چسب پيام معمولاً بصورت زير ميباشد.
Return-value:=message-name(argument-list)
براي مقادير بازگشتي ميتوان از متغيرها استفاده كرد.
سه نوع مختلف از پيام وجود دارد:
1- پيامهاي بين دو شيء موجود: كه با كماني از خط زندگي شيء فرستنده به خط زندگي شيء گيرنده نشان داده ميشوند.
2- پيام ايجاد يك شيء: اين پيامها به صورت يك كمان از خط زندگي فرستنده به ابتداي خط زندگي شييء كه ايجاد ميگردد نشان داده ميشوند.
3- پيامهايي كه يك شيء را از بين ميبرند: اين پيامها به صورت يك كمان از فرستنده به انتهاي خط زندگي گيرنده كه با علامت(x) مشخص شده است، نمايش داده ميشوند.
شكل (2-2) دياگرام توالي كلاس مربوط به دياگرام كلاس شكل (1-2) را نشان ميدهد. هر سه نوع پيام در اين شكل نمايش داده شدهاند.
4ـ نمايش دياگرامهاي كلاس و توالي با استفاده از گرافهاي نوع ويژگي و گرامرهاي گراف گونه
براي بررسي سازگاري دياگرامهاي كلاس و توالي درUML، در ابتدا اين دياگرامها به به گرافهاي نوع ويژگي و گرامرهاي گراف گونه تبديل ميگردند. براي تبديل دياگرامها تنها دياگرامهايي كه از نظر املايي درست هسنتد، در نظر گرفته شدهاند.
1ـ4 نمايش دياگرام كلاس به شكل گراف كلاس و قيود چندتايي
اجزاء يك دياگرام كلاس مثل ويژگيهاي كلاس و عمليات آن بصورت يك گراف كلاس نمايش داده ميشوند. چندتايي در روابط تناظر بصورت قيود چندتايي نمايش داده ميشود.
اين قيود يا بصورت قيود منفي هستند و يا بصورت قيود عمومي ، كه بعداً شرح داده خواهند شد.
1-1-4 گراف كلاس
يك گراف كلاس ،بسته ها ، كلاسها و روابط بين آنها را نمايش مي دهد. هر كلاس به يك نُد از نوع كلاس تبديل مي گردد.
نام كلاس در ويژگي name ذخيره مي گردد. نام بسته ها همراه با نام كلاسها به كار مي روند شكل نمايش نام كلاسها به همراه نام بستهها معمولاً بصورت زير ميباشد.
Packaye:: subpackage::class name
ويژگيها و عمليات كلاسها بصورت دو مجموعه از چندتاييهاي مرتب نمايش داده ميشوند. اين مجموعهها جزء ويژگيهاي يك ند به حساب ميآيند و با نامهاي operations , attribntes شناخته ميشوند. ليست پارامترهاي يك عمليات خود بصورت يك چندتايي نمايش داده ميشود كه شامل نام پارامتر و نوع آن ميباشد.
شكل (1-4) يك كلاس در UML و متناظر آن بصورت گراف را نمايش ميدهد.
شكل 1-4
همانطور كه در شكل ديده ميشود ليست ويژگيها شامل سه تايي هاي مرتب ميباشد كه خود شامل آشكاري، نام و نوع ويژگيهاي كلاس ميباشند.
روابط تناظر، تجمع و تركيب كه جهت دار ميباشند، بصورت يك كمان از ند كلاس مبدأ به ند كلاس مقصد نشان داده ميشوند. ساير ويژگيهاي يك رابطه: مثل نام رولهاي مبدأ و مقصد و آشكاري آنها مي توانند بصورت ويژگيهايي براي يك يال گراف كلاس تعريف شوند.
همچنين نوع رابطه (تناظر، تجمع و تركيب) نيز ميتواند بصورت يك ويژگي براي يك يال در نظر گرفته شود، ولي اين ويژگي براي بررسي سازگاري دياگرامها به كار نميآيد. روابط دو طرفه در دياگرام كلاس تبديل به دو يال يا جهتهاي مختلف ميشوند، كه در گراف كلاس ظاهر ميگردند. همانطوركه قبلاً گفته شد، تنها روابط دودويي در اين مقاله مورد بررسي قرار ميگيرند . شكل (2-4) يك مثال از تبديل دياگرام كلاس به گراف كلاس را نمايش ميدهد. در اين شكل يك رابطة يك طرفه و يك رابطة دو طرفه، همراه با ويژگيهاي روابط نشان داده شده است.
رابطه تعميم توسط يك نوع ديگري از يال نمايش داده ميشود. تفاوت بين يالها درگراف كلاس از طريق ويژگي آنها مشخص ميگردد. به عنوان مثال، نوع يال براي روابط تناظر، تجمع و تركيب برابرassociation type و باري رابطه تعمين برابر generalization type ميباشد. يال مورد نظر براي رابطه تعميم بصورت يك كمان از ند مربوط به كلاس فرزند به ند مربوط به كلاس مقصد نشان داده ميشود. خاصيت جايگزيني براي رابطه تعميم وجود دارد، يعني در جايي كه نياز به كلاس پدر وجود داشته باشد ميتوان از كلاس فرزند استفاده كرد.
بنابراين تمام روابط تناظر موجود براي پدر به فرزند به ارث ميرسد. از طرفي تمام ويژگيها و عمليات كلاس پدر به كلاس فرزند به ارث ميرسد. بنابراين مقادير موجود در ويژگيهاي operations , attribates از ند مربوط به كلاس پدربه مقادير موجود در اين ويژگيها در ند مربوط به كلاس فرزند افزوده ميگردد. در صورتي كه تشابه اسمي وجود داشته باشد ويژگيها و عملياتي كه تشابه اسمي دارند افزوده نميگردند.
4-1-2 قيود چندتايي
چندتايي هاي مربوط به روابط تناظر تبديل به قيود چندتايي ميگردند. براي اين منظور از قيود گرافيكي وقيود كاربردي استفاده ميگردد. همانطور كه از بخشهاي قبل ميدانيم، يك چندتايي به شكل n…m ( ) اين معني است كه تعداد مراجع حداقل به تعداد n ميباشند و حداكثر برابرm ميباشند.
در اين قسمت چندتايي n...m را بصورت دو قانون مجزا نمايش ميدهيم .
قيد كلي
حد پايين n بصورت يك قيد كلي بيان ميگردد، يعني اين قانون حالتي را كه هميشه وجود دارد را نشان ميدهد. اين شامل دوگراف به نامهاي p و c ميگردد.
گراف p شامل ند مربوط به كلاس مبدأ ميگردد. گراف c شامل همان ند به همراه ندهايي از كلاس مقصد ميگردد، كه تعداد آنها برابر n ميباشد. در گراف c از ند مبدأ به هر يك از ندهاي مربوط به ند مقصد يك يال درنظر گرفته ميشود، كه منتاظر با رابطه مورد نظر در دياگرام كلاس ميباشد. تمام ويژگيهاي مربوط به اين رابطه، بصورت ويژگيهاي اين يال در نظر گرفته مي شوند. ويژگيهاي operations , attributes بصورت كامل براي ندهاي مقصد در نظر گرفته ميشوند. به اين ترتيب قيد كلي براي يك چندتايي حاصل ميگردد. براي حد پايين صفر چنين قيدي ايجاد نميگردد. زيرا بي معني ميباشد.
قيد عدم وجود
حد بالاي يك چندتايي از طريق يك قيد منفي، يعني حالتي كه نبايد رخ دهد كنترل ميگردد. اين ساختار يك مرجع بيشتر از حد بالاي ؟؟ در برميگيرد.
اين قيد توسط يك گراف به نام N نمايش داده ميشود. اين گراف شامل يك ند به ازاي مبدأ رابطه و m+1 ند به ازاي شيء مقصد ميباشد.
به هر شيء مقصد، يك يال از شيء مبدأ متصل مي شود كه ميتواند تمام ويژگيهاي مربوط به يك رابطه تناظر ار داشته باشد. حد بالاي (*) به صورت يك قيد عدم وجود نمايش داده نمي شود. شكل (6-4) يك نمونه از رابطه تناظر و قيد عدم وجود براي حد بالاي آنرا نمايش ميدهد.
2-4 نمايش دياگرامهاي توالي توسط گرامرهاي گرافگونه
يك دياگرام توالي توسط يك گرامر گرافگونه نمايش داده ميشود. يك گرامر گرافگونه شامل يك گراف شروع، يك مجموعة محدود از قوانين و يك شرط كنترل ميباشد، كه توالي كاربرد قوانين را نشان ميدهد. گراف شروع شامل تمامي اشيائي ميگردد، كه قبل از ارسال اولين پيام در دياگرام توالي وجود دارند.
ويژگيهاي operations , attributes براي هر ند شامل تمام ويژگيها و عمليات يك كلاس ميباشند. هر قانون در گرامر گراف گونه مختص يك پيام در دياگرام توالي ميباشد. در بخش 2ـ2ـ2 ديديدم كه سه نوع مختلف از پيام وجود دارد. قوانين گرامري مربوط به اين سه نوع پيام دراين بخش توضيح داده شدهاند.
قوانين مطرح شده دراين بخش بصوت ميباشند كه G 1 و G2 هر دو گراف ميباشند.
1- پيامهاي بين دو شيء موجود:
قسمت سمت چپ اين قانون شامل يك ند به ازاي هر شيء مي باشد. يك كمان از فرستنده به گيرندة پيام نيز وجود دارد. قسمت سمت راست شامل همان ندها و كمان ميگردد، با اين تفاوت كه ويژگي operations در ند گيرنده شامل تمام عمليات قبلي بعلاوه چند تايي مربوط به عمليات فراخواني شده توسط پيام ميباشد. همچنين ويژگي attributes در فرستندة پيام شامل مقادير قبلي بعلاوه چند تايي مربوط به مقدار برگشتي و پارامترهاي عمليات فراخواني شده ميباتشد. شكل 7-4 يك نمونه پيام ارسال شده بين دو شيء موجود و قانون گرامري مربوط به آن را نمايش مي دهد.
2- پيامهايي كه يك شيء جديد را ايجاد ميكنند:
قسمت سمت چپ اين قانون تنها شامل يك ند براي فرستندة پيام ميگردد. قسمت سمت راست شامل ند فرستنده و ند گيرندة پيام ميباشد. پيام ارسال شده بصورت يك كمان از فرستنده به گيرنده نمايش داده ميشود. ويژگي operations براي شيء گيرنده ( كه جديداً ايجاد تشده است ) شامل تمام عمليات آن شيء به همراه يك چند تايي براي سازندة (Constructor) شيء ميباشد. همچنين ويژگي attributes در فرستنده شامل مقادير قبلي به همراه يك چندتايي براي مقدار بازگشتي و پارامترها ميباشد.