# Native Code > برنامه نویسی در Delphi > مقالات مرتبط با Delphi/Win32 >  UML و دلفی - معرفی  Model Maker - قسمت اول

## Inprise

امروزه استفاده از  UML به عنوان ابزاری پیشرو برای بهینه سازی فرآیند تولید نرم افزار گسترش زیادی یافته است و بورلند با درک صحیح نیازهای خاص منظور برنامه نویسان محیط دلفی برای استفاده از UML اینک نرم افزار قدرتمند  Model Maker را همراه نسخه سازمانی دلفی و  Bold را همراه نسخه  Architect دلفی برای حصول این مقصود توزیع کرده است . در این نوشتار به معرفی مقدمات  Model Maker خواهیم پرداخت و نوشتهء بعدی روش کار و نحوه استفاده از آن در تولید محصولات نرم افزاری را توضیح خواهد داد که امید است مورد استفاده قرار گیرد .

UML - دیاگرامها

هرچند اغلب  CASE Tool ها طراحی و مدیریت دیاگرامهای غیر  UML یا اصطلاحا"  non-UML را مورد حمایت قرار میدهند و  Model Maker نیز از این قاعده مستثنی نیست اما فعلا فقط به دیاگرام های استاندارد  UML و خدمات ارائه شده توسط  Model Maker اشاره میشود .

الف) Class Diagramآنچه عموما به طراحی شی گرای یک سیستم نرم افزاری اطلاق میگردد در کلاس دیاگرام محقق میشود . نحوه تولید کلاسها و رابطه بین کلاسها ، ارث بری و تجرید و قواعد مربوط به ساخت نمونه هائی از این کلاسها همگی در کلاس دیاگرام پیاده سازی میشود .
Model Maker ( که از این به بعد به اختصار  MM میگوئیم ) با ارائه یک محیط ویژوال و قابل درک آسان به شما کمک میکند کلاس دیاگرامها را با کمترین تلاش ممکن تولید و ذخیره یا استفاده کنید . نکته مهم اینجاست که MM همزمان با شروع طراحی مدل توسط شما یک ساختار متناسب ولی مبتنی بر کد ( نه مدل ) برای پروژه شما در نظر میگیرد و همزمان با اعمال تغییرات ، تولید کلاس ، تولید رابط (  Interface ) و روابط بین آنها ، جزئیات مذکور توسط  MM در ساختار مذکور اعمال میگردد . نتیجتا" شما همزمان با طراحی مدل میتوانید کد معادل آن را نیز مشاهده یا استفاده نمائید . به عقیدهء شخصی من ( با تجربهء کار با رشنال رز و  together ) فعلا"  MM بهترین ابزار تولید کلاس دیاگرام است . هر چند اختصاصی بودن برای دلفی ، آن را مانند رز همگانی نمیکند اما برنامه نویسان دلفی ( که اگر عده آنها از برنامه نویسان سی بیشتر نباشد از برنامه نویسان جاوا حتما بیشتر است ) از داشتن چنین ابزار قدرتمندی خوشحال هستند .

ب) Sequense Diagramدیاگرامهای روند (  Sequense ) که شامل جزئیات نحوه عملکرد اشیاء سیستم در ارتباط با یکدیگر است نیز بخوبی حمایت میشود . روند اجرای نرم افزار شما توسط دیاگرامهای روند مدل سازی میشود تا هم درک آن برای دیگرانی که عضو تیم طراحی نرم افزار نبودند آسان شود هم مرحلهء بهینه سازی ارتباط بین اجزا نرم افزار سریعتر انجام شود . " کاربر فرم اول را باز میکند . کلید الف را میفشارد . فرم دوم باز میشود . نام کاربری و اسم رمز او دریافت میشود . داده ها به مرکز تصویق هویت شبکه فرستاده میشود . کاربرد تائید میشود . فرم سوم که مخصوص ویرایش داده های بانک اطلاعاتی است نمایش داده میشود . کاربر تغییراتی را اعمال میکند . تغییرات را ذخیره میکند . فرم سوم را میبندد . برنامه پایان می یابد " آنچه خواندید شرح فارسی یک نمودار روند ساده برای یک برنامه کاربردی کنترلگر بانک اطلاعاتی بود . 

ج)Collaboration Diagramاین دیاگرام مانند دیاگرام روند ، نحوه اجرای نرم افزار و روابط بین اجزاء سازنده نرم افزار را نمایش میدهد با این تفاوت که مانند دیاگرام روند " مبتنی بر زمان" نیست  به این مفهوم که رابطه بین اشیاء تشکیل دهندهء نرم افزار همانگونه که هست نشان داده میشود نه آنطور که برای اجرای صحیح نرم افزار مورد انتظار ماست . برای اصلاح روند برنامه دیاگرام روند و برای اصلاح ساختار شیء گرای برنامه از دیاگرامهای  Collaboration استفاده میشود .

د) State Diagramدیاگرام حالت ، موقعیاها و حالات مختلفی که اشیاء یک سیستم نرم افزاری به ازای دریافت ورودی های مختلف میتوانند داشته باشند را پوشش میدهد . یک شی ساخته شده برای حمایت از رنگ پس زمینه فرم اصلی برنامه میتواند مقدار دهی شده باشد . میتواند مقدار دهی اولیه شده باشد . میتواند مقدار دهی نشده باشد . میتواند مقداری غیر صحیح و نا معتبر دریافت نماید و ... همگی نمونه هائی از "حالت" هائیست که یک شی میتواند داشته باشد ( با توجه به برخوردهائی که با آن میشود ) . بهترین کاربرد این دیاگرام در  error-handling و  input valiadation است .  MM از تولدید اینچنین نمودارهائی برای برنامه های دلفی بخوبی حمایت میکند .

ه)  Activity Diagramنمودار نحوه عملکرد اجزاء مختلف سیستم از شروع تا خاتمه نرم افزار است . بهترین ابزار برای مدل سازی فرآیندهای موازی در حال انجام در یک نرم افزار این دیاگرام است  که مهمترین کاربرد آن  Thread Syncronization است .

دیاگرامهائی چون Mind-Map Diagram ، Unit Dependency   و  Robustness Diagram  که جزء استاندارد  UML نیستند نیز بخوبی توسط  MM حمایت میشوند . 

-------

مطلب بعدی به معرفی محیط داخلی  MM و کارکردهای اجزاء اصلی آن میپردازد و نوشتهء آخر نحوه تولید محصول نرم افزاری با استفاده از  UML در محیط دلفی را توضیح میدهد .

تا آماده شدن بقیه اش ( آماده شدن بقیه اش : وجود حس و حال و کاهش کالیبر جهت تایپ !  :twisted: ) میتونید در مورد مقدمات  UML سوال بپرسید و هر کسی بلد بود جواب خواهد داد .  :roll:  


موفق باشید
اینپرایز سابق  :twisted:

----------


## Mohammad_Mnt

اینپرایز جان ، من شنیدم که UML فقط به درد پروژه های خیلی بزرگ می خوره و توی ایران کاربرد چندانی نداره . چند بار هم می خواستم برم یاد بگیرم ، ولی از طرف دوستان منصرف شدم . نظر شما چیه ؟

----------


## Inprise

> شنیدم که UML فقط به درد پروژه های خیلی بزرگ می خوره و توی ایران کاربرد چندانی نداره


الف ) یک سری به مرکز معرفی پروژه های تکفا بزن و ببین در حال حاضر چند پروژه فوق العاده بزرگ در ایران در حال اجراست . فقط پروژه  CRM شرکت نفت ( که این حقیر معمار فاز شبکش هستم ) کمی کمتر از 200 برنامه نویس داره !! برو تا آخرش ...




> چند بار هم می خواستم برم یاد بگیرم ، ولی از طرف دوستان منصرف شدم


ب) یادمه تو یکی از کتابهای فارسی دوران ابتدائی بود یحتمل .... " دانسته بمیرم بهتر است یا نا دانسته ؟"   :!:  اگر برات هزینه اقتصادی زیادی نداره حتما یاد بگیر .

موفق باشی

----------


## Inprise

ضمنا یه نگاهی هم به www.mporesearch.com بنداز .   8)

----------


## JavanSoft

اینپرایز جان CPMیا CRM?

----------


## Inprise

CRM = Customer Relationship Manager  

مطلب دوم احتمالا امروز عصر

----------


## Mohammad_Mnt

چرا من هر کاری می کنم این صفحه Save نمی شه  :cry: کسی می تونه این کار رو بکنه ؟

----------


## JavanSoft

آقای اینپرایز 
مقاله خوبی رو شروع کردید .. منتظر ادامه اش هستیم 
محمد جان
پرینتش کن :!:

----------


## JavanSoft

ادامه این بحث رو کسی نمی دونه کجاست؟

----------


## khafanovich

با عرض سلام و خسته نباشید.
در مورد مطالب مرتبط با UML من یک کتاب دانلود کردم که خیلی جالبه.
Mastering UML with rational rose 2002 (25 MB)
من واقعا خواندن این کتاب رو به دوستان پیشنهاد میکنم.

----------


## JavanSoft

ممنون از لطف شما ولی من درمورد ModalMakerمی خواهم

----------


## nima_north

من میخواهم پروژههای خودم رو با تجزیه و تحلیل و پیاده سازی با UML اغاز کنم لطفا مرا راهنمایی کنید
 :roll:  :roll:  :roll:  :roll:

----------


## موسوی

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

----------


## Developer Programmer

> من هم نمیتونم صفحات رو ذخیره کنم


file type رو web archive-single file انتخاب کنید

----------

