بخشی از پاورپوینت

اسلاید 1 :

موضوع ارائه:
تبدیل نمودار Uml به کد و برعکس

اسلاید 2 :

فهرست

مقدمه ای بر تولید کد
چه چیزی تولید می شود؟
نحوه تولید کد در C++
تولید کد به صورت Visual C++
خصوصیات تولید کد در C++
مهندسی معکوس(Reverse Engineering)
برخی پیکر بندی ها
چگونگی توليد کد دلفی از مدل و يا عکس عمل فوق
نحوه ی توليد پايگاه داده ی مربوط به پروژه
نحوه ی گزارش گرفتن از پروژه
نحوه ي انتشار پروژه

اسلاید 3 :

مقدمه ای بر تولید کد
نرم افزار رشنال رز یک نرم افزار تخصصی است که با استفاده از مهندسی نرم افزار
برای طراحی مدل های کد و تولید کد های پیش تولید برای هدایت بیشتر پروژه های بسیار بزرگ بکار می رود.

6 مرحله برای تولید کد وجود دارد.تمام این مراحل در هر زبانی ضروری نیست اگرچه
که بهتر است تمامی انها در تمام زبانها اجرا شوند.
از سایت زیر هم می تونید کمک بگیرید:
http://docwiki.embarcadero.com/RADStudio/XE3/en/Importing_a_Project_in_IBM_Rational_Rose_(MDL)_Format

اسلاید 4 :

1- چک كردن مدل

این مرحله ما را در پيدا كردن ناسازگاريها ومشكلات موجود در مدل كه ممكن است تاثیرمنفي بر كد بگذارد ، ياری مي كند.
برای چک کردن مدل کافی است گزینه ی chek model را از منوی Tools انتخاب کنیم،هر خطایی که پیدا شود در پنجره Log ظاهر میشود.

خطاهایی که رخ می دهند عبارتند از:
پیغام های موجود در نمودار های تعامل که به یک عملیات نگاشت نشده اند.
آبجکت های موجود در نمودار های تعامل که به یک کلاس نگاشت نشده اند.

با استفاده از گزینه Show Access Violation در منوی Report می توان مواردی که یک رابطه بین دو کلاس از بسته های مختلف وجود دارد اما بین خود بسته ها وجود ندارد و خطاهایی که اتفاق می افتد را پیدا کرد.

برای بعضی از زبان ها برنامه نویسی می توان گزینه چک مخصوص آن زبان را انتخاب کرد. مثل زبان جاوا که با گزینه syntax check می توان این کار را انجام داد.

اسلاید 5 :

2-ایجاد كامپوننتها

در اين مرحله بايد كامپوننت جهت نگهداری كلاسها ايجاد شوند .( يا از قبل در نمودار كامپوننت ایجاد شده باشد.) کامپوننتها اغلب شامل تعداد زیادی کلاس هستند که عموما لزومی ندارد کاربر با جزئیات آنها درگیر یا حتی آشنا باشد و با هدفی خاص کنار هم جمع شده اند.

درC++ می توان بدون این مرحله هم کار را پیش برد ولی Rational Roseکامپوننت ها را ایجاد نخواهد کرد.

اسلاید 6 :

3-نگاشت کلاسها به کامپوننت ها

در این قسمت هر کلاس باید به کامپوننت مربوط به خودش نگاشت شود.

این مرحله در C++ الزامی نیست ولی بهتر است انجام شود.

اسلاید 7 :

4-تعیین خصوصیات تولید کد

تعدادی انتخاب در تولید کد وجود دارد که می توان آنها را برای کلاسها، صفات کامپوننت ها و سایر عناصر مدل تنظیم کرد.

این خصوصیات چگونگی تولید شدن کد را کنترل می کند.تنظیمات پیش فرض معمول در Rose تعبیه شده است ولی می توان آنها را تغییر داد.) مثال: کنترل تابع Getدر C++ )

در کادر Type می توان لیست کشویی را باز کرده وAttribute , Class, Operation و سایر عناصر مدل را انتخاب کرد.

هر تغییری که انجام شود بر روی تمام عناصر مدل در هنگام تولید کد تاثیر می گذارد.

می توان فقط پنجره مشخصات یک کلاس یا کامپوننت خاص را باز کرد و محدوده تغییرات را کم کرد.

اسلاید 8 :

نسخه برداری از خصوصیات تولید کد

به جای انجام تغییرات به طور مستقیم بر روی مجموعه های پیش فرض خصوصیات می توان از آنها نسخه برداری کرد و سپس تغییرات را برروی کپی انجام داد.

برای نسخه برداری کافی است از دکمه Clone را در پایین کادر کشویی استفاده کرد.سپس در پنجره نام مجموعه را می پرسد که بعد از وارد کردن نام می توان مجموعه را ایجاد کرد.

برای حذف نسخه ها ایجاد شده از خصوصیات تولید کد کافی است مجموعه مورد نظر را از کادر کشویی Set انتخاب کرده و کلید Remove را فشار دهیم.

نکته قابل توجه این است که مجموعه پیش فرض را نمی توان حذف کرد.

اسلاید 9 :

5-انتخاب کلاس،کامپوننت یا بسته جهت تولید کد

به هنگام تولید کد می توان یک کلاس،کامپوننت یا بسته خاصی را از پنجره مرورگر یا از طریق نمودار انتخاب کرد تا تولید کد برای آن صورت گیرد.

همچنین با استفاده از کلید Ctrl می توان همزمان به انتخاب چند کلاس،کامپوننت یا بسته جهت تولید کد پرداخت.

اسلاید 10 :

6- تولید کد

در این مرحله برای هر زبان باید منوی مناسب را از منوی Toolsانتخاب کرد.مثلا برای زبان C++ گزینه Code Generation را انتخاب کرد یا برای ساخت Projct درVisual C++ به همراه کد تولید شده برای کلاسها کافی است از منوی Visual C++ گزینه Update Code را انتخاب کنیم.

برای نشان دادن یا مخفی کردن گزینه مربوط به زبانها در منوی Tools می توان آنها را در پنجره Add-In Manager از منوی Add-in تنظیم کرد.

اسلاید 11 :

چه چیزی تولید می شود؟
وقتی فرمان تولید کد صادر می شود Rose با استفاده از نمای منطقی و کامپوننت,اطلاعات لازمه را جمع اوری می کند.
آنچه که تولید می شود عبارت است از:
کلاسها:تمامی کلاسها ی موجود در مدل کد.

صفات:شامل صفتهای هر یک از کلاسها می باشد به اضافه Type , visibility و مقدار پیش فرض آنها.

Operation Signatures: عملیات ها به همراه تمامی پارامترها،نوع داده ای پارامتر و نوع بازگشتی عملیات.

Relationships: بعضی رابطه ها باعث ایجاد صفاتی در برخی کلاسها می شوند.
کامپوننت ها:منجر به ایجاد فایل کد منبع می شود.

بعد از تولید کد دو مرحله باقی می ماند اول تکمیل کد توسط برنامه نویسان و دوم طراحی واسط گرافیکی.

اسلاید 12 :

نحوه تولید کد در C++

تولید کد به صورت C++ استاندارد
اگر بخواهیم تولید کد را به صورتC++ استاندارد داشته باشیم با ید از قبل زبان برنامه نویسی کامپوننت های مورد نظر را به C++ تغییر داده باشیم.
بعد از تعیین C++ به عنوان زبان پیش فرض کامپوننت کافی است روی کلاس یا کامپوننت مورد نظر میانبر را باز کرده و گزینهGenerate Code را از گزینه C++ انتخاب کنیم.
برای دیدن فایل تولید شده میتوان از منوی میانبر،گزینه C++، گزینه های Browse Header یا Browse Body فایل های تولید شده .CPP و .H را مشاهده کرد.

اسلاید 13 :

تولید کد به صورت Visual C++

اگر بخواهیم تولید کد را در Visual C++ داشته باشیم می بایست ابتدا زبان پیش فرض تمامی کامپوننت ها ی مدل را به VC++ تغییر دهیم.
در مرحله بعد از منوی Tools، منویVisual C++ ، گزینه Update Code را انتخاب می کنیم.این انتخاب منجر به شروع یک Wizard می شود.

بعد از گذر کردن از صفحه اولیه خوشامد گویی لیست کامپوننت هایی که دارای زبانVC++ باشند ظاهر می شوند.هر یک از آنهایی را که بخواهیم در پروژه نهایی تولید شده دارای کدی باشد چک مارک می زنیم.
در صورتیکه پروژه ای معرفی نشده باشد پنجره ای ظاهر شود که از ما در خواست تعیین پروژه را می کند که می توان یکی از پرژه های از قبل ایجاد شده را انتخاب کرد یا همان جا یک پروژه جدید را در محیط نرم افزار Visual Studio ایجاد کرد و آن را به پروسه تولید کد معرفی کرد.

اسلاید 14 :

خصوصیات( (Properties تولید کد در C++

تولید کد C++ با استفاده از Rose بسیار انعطاف پذیر است و بر چیزهایی که تولید می شوند وجزییات کد تولید شده کنترل کامل داریم.تمام اینها از طریق خصوصیات تولید کد کنترل می شوند و ما می توانیم به دلخواه آنها را تغییر دهیم.

برای تغییر خصوصیات تولید کد باید در پنجره امکانات به برگهC++ مراجعه کنیم.هر عضو از لیست کشویی کادر Type مبین دسته ای از خصوصیات کد است که آنها را معرفی میکنیم.

اسلاید 15 :

خصوصیات Module Body: خصوصیاتی است که به فایل های .CPP تولید شده وابسته هستند.مثلا اینکه فایل.cpp تولید شود یا خیر و آیا اخطار Copyright در فایل .CPP درج شود یا خیر را شامل می شود.

خصوصیاتModule Specification: خصوصیاتی هستند مروط به اینکه فایل های .H تولید شود یا خیر و اینکه آیا اخطار Copyright در فایل .H درج شود یا خیر و.. می شود.

خصوصیات : Associationخصوصیاتی از تولید کد است که با رابطه ها Association سرو کار دارد.در c++ فقط یک خصوصیت برای Association وجود دارد.

خصوصیات Role: خصوصیاتی است که بر روی کد تولید شده ناشی از رابطه ها تاثیر می گذارد.نام صفتی که می خواهد ایجاد شود و کلاس Container مثالهایی از این دسته هستند.

اسلاید 16 :

خصوصیات Project: به کل پروژه اشاره می کند و شامل چیزهایی از قبیل دایرکتوری پیش فرض که به هنگام تولید استفاده می شود .

خصوصیات Class: خصوصیاتی هستند که بر کلاسها اعمال می شوند.به طور مثال به ما این امکان را می دهد نام کلاسها را عوض کنیم،معین کنیم که آیا توابع سازنده و مخرب ایجاد شوند و یا خیر.

خصوصیاتAttribute: خصوصیاتی هتند که به صفتها در هنگام تولید کد اشاره می کنند و شامل مسایلی از قبیل اینکه آیا تابع Get و Set داشته باشند یا خیرو. می باشد.

خصوصیات Operation: خصوصیات تولید کد مخصوص عملیات بوده و مسایلی از قبیل نام عملیات،مجازی بودن و. را پوشش می دهد.

اسلاید 17 :

خصوصیاتAggregation: این خصوصیت با نامHas در لیست کشویی وجود دارد و خصوصیاتی است که با رابطه های Aggregation در تولید کد نهایی مرتبط است.

خصوصیاتDependency: کنترل می کند که چگونه رابطه های Dependency در C++ به کار گرفته شود.

خصوصیات Subsystem: آن دسته از خصوصیات است که بر بسته های نمای کامپوننت موجود در مدل اعمال می شود.

خصوصیاتClass Category: آن دسته از خصوصیات است که بر بسته های نمای منطقی موجود در مدل اعمال می شود.

خصوصیاتGneralization: اشاره به خصوصیت تولید شده ناشی از رابطه وراثت است و فقط یک عدد می باشد.

اسلاید 18 :

مهندسی معکوس(Reverse Engineering)

در مهندسی معکوس تغییرات صورت گرفته در کد به مدل برگردانده می شود و باعث می شود مدل با کد به هنگام شود.

اعمال مهندسی معکوس در Visual C++، گزینه Update Model From Code… برای کل پروژه یا استفاده از منوی میانبر، گزینه Update Model برای یک کلاس خاص انجام می شود.

در صورتیکه کلاسها یا صفات یا عملیات جدیدی در پروژه تعریف شده باشند که قبلا در مدل وجود نداشته اند یا برعکس کلاسها، صفات و عملیاتی که قبلا در مدل وجود داشته اند و از پروژه حذف شده اند،پیغامهایی ظاهر می شود و در این موارد از کاربر سوال می کند.

اسلاید 19 :

برخی پیکر بندی ها

می توان تا حدود زیادی در روال تولید کد و مهندسی معکوس اعمال را مدیریت کرد و پیکر بندی آن را به نحو مطلوب تغییر داد.

اگر از منوی Tools، منوی Visual C++، گزینه Property را انتخاب کنیم پنجره ای ظاهر می شود که دارای 5 برگه اصلی است:

اسلاید 20 :

برگه اول با نام Code Update پیکر بندی گزینه ای مربوط به تولید کد را بعهده دارد.

برگه دوم با نام Model Update پیکر بندی گزینه های مربوط به مهندسی معکوس را به عهده دارد.

برگه سوم با نام Containers است که در این برگه می توان کلاسها با ظرفیت جدید را معرفی کرد.

برگه چهارم با نام Class Operations که با استفاده از آن می توان توابع اپراتوری استاندارد را تعریف کرد.

این توابع از این به بعد قابل انتخاب به عنوان اپراتورهای کلاس می باشند.

برگه پنجم با نام Accessors که نحوه عملکرد توابع Get و Set صفات کلاسها را برای ما قابل برنامه ریزی می کنند.

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید