UML یک زبان مدلسازی همه منظوره استاندارد و از زیرمجموعه های مبحث مهندسی نرمافزار است که توسط Object management group ایجاد شده است.
در زیر توضیحاتی را درباره ی این زبان مشاهده می کنید:
- UML سرواژه ی Unified Modeling Language می باشد.
- UML از دیگر زبان های رایج برنامه نویسی مانند C++، Java و COBOL متفاوت است.
- UML یک زبان تصویری، نمایشی است که از آن جهت مدل سازی و ساخت برنامه ی کار نرم افزار استفاده می شود.
بنابر توضیحات بالا UML را می توان به عنوان یک زبان دیداری مدل سازی همه منظور تلقی کرد که توسط آن سیستم نرم افزاری نمایش، تعریف، ساخته و مستندسازی می شود. اگرچه UML بیشتر جهت مدل سازی سیستم ها نرم افزاری به کار می رود، اما می توان از آن در زمینه های دیگر مانند مدل سازی جریان پردازش در یک واحد تولید بهره گرفت.
UML به خودی خود یک زبان برنامه نویسی نیست اما ابزاری است که با استفاده از نمودارهای آن می توان به زبان های مختلف کد نوشت. UML یک رابطه ی مستقیم با تجزیه و تحلیل، طراحی شی گرا دارد. پس از کمی متعارف سازی، UMLبه ی استاندارد OMGتبدیل شده است.
با استفاده از UML میتوان تقریبا هر گونه برنامه کاربردی که ممکن است بر روی هر ترکیبی از سختافزار، سیستم عامل، زبان برنامه نویسی و شبکه اجرا شود را الگوسازی نمود. طراحی بر پایه مفاهیم شی گرای باعث میشود که به طور پیش فرض با محیطها و زبانهای برنامه نویسی شی گرا سازگاری و همخوانی کامل داشته باشد، با این حال میتوان از آن به منظور مدلسازی برنامههای غیر شی گرا مانند برنامههایی که با زبانهای بیسیک، کوبول نوشته میشوند نیز استفاده کرد.
ویژگیهای UML
UML دارای ویژگیهای بارز فراوانی است که در این قسمت به آنها می پردازیم. UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است. به طوریکه در ورای این نمادها، یک سمانتیک (معناشناسی) قوی وجود دارد، به طوریکه یک تولیدکننده میتواند مدلهایی تولید کند که تولیدکننده های دیگر و یا حتی یک ماشین آن را بخواند و بفهمد. بنابراین یکی دیگر از نقش های مهم UML "تسهیل ارتباط" بین اعضای پروژه و یا بین تولیدکنندگان مختلف می باشد. این ارتباط بسیار مهم است. شاید دلیل اصلی اینکه تولید نرم افزار به صورت فریبنده ای دشوار است، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرم افزار، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد، بسیاری از این دشواریها برطرف خواهد شد.
البته این را هم باید در نظر گرفت که UML کمی پیچیده است و این به خاطر آن است که سعی شده است نمودارهایی فراهم شود که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند. دلیل دیگر پیچیدگی از آنجا ناشی می شود که UML ترکیبی است از زبانهای مختلف، که برای حفظ سازگاری و جمع کردن خصوصیات مثبت آنها، ناگزیر از پذیرش این پیچیدگی می باشد.
UML موفقیت طرح را تضمین نمی کند، اما در عین حال خیلی چیزها را بهبود میبخشد. به عنوان مثال استفاده از UML، تا حد زیادی، هزینه های ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش می دهد.
مساله دیگر اینکه، UML یک زبان برنامه نویسی بصری (visual) نیست، اما مدلهای آن را میتوان مستقیماً به انواع زبانهای مختلف ارتباط داد. یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامه نویسی مثل Java و ++C وجود دارد که به این عمل "مهندسی رو به جلو" می گویند.
عکس این عمل نیز ممکن است؛ یعنی این امکان وجود دارد که شما بتوانید از کد یک برنامه زبانی شی گرا، مدلهای UML معادل آن را به دست آورید. به این عمل "مهندسی معکوس" می گویند. مهندسی رو به جلو و معکوس از مهمترین قابلیت های UML به شمار می روند، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانی کنند.
اگر با زبانهای مدلسازی دیگر کار کرده باشید، برای کار با UML مشکل چندانی نخواهید داشت. اما برای شروع کار با UML به عنوان اولین زبان مدلسازی، بهتر است فقط با نمودارهای خاصی کار کنید. برای این کار بهتر است ابتدا با نمودارهای مورد کاربرد و تعامل کار کنید و پس از مدتی کار و آشنا شدن با ویژگیهای اولیه آن، به یادگیری و استفاده از نمودارها و اجزای دیگر بپردازید. در مقایسه با زبانهای مدلسازی دیگر مثل ER و زبان فلوچارتی DR، زبان UML نمودارهای قوی تر و قابل فهم تری را ارائه می دهد که شامل تمامی مراحل چرخه حیات تولید نرم افزار (تحلیل، طراحی، پیاده سازی و تست) میشود.
یکی دیگر از ویژگی های مهم UML این است که مستقل از متدولوژی یا فرایند تولید نرم افزار می باشد و این بدان معنی است که شما برای استفاده از UML، نیاز به استفاده از یک متدولوژی خاص ندارید و می توانید طبق متدولوژی های قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش می دهید. البته مستقل بودن از متدولوژی و فرایند تولید، یک مزیت برای UML میباشد؛ زیرا بسیاری از انواع پروژه ها و سیستمها نیاز به متدولوژی خاص خود دارند. اگر UML در پی پیاده کردن همه اینها بر می آمد، یا بسیار پیچیده می شد و یا استفاده خود را محدود می کرد. البته متدولوژیهایی براساس UML در حال شکل گیری می باشند.
از دیگر ویژگیهای UML می توان به پشتیبانی از مفاهیم سطح بالای شی گرایی مثل Collaboration، Framework، Pattern و Component اشاره کرد. همچنین UML با استفاده از یک سری مکانیزم های گسترش پذیر امکان می دهد که بتوان زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایه ای موجود) ایجاد کرد.
UML شامل تعدادی عنصر گرافیکی است که از ترکیب آنها نمودارهای UML شکل می گیرند . هدف استفاده از نمودارهای مختلف در UML ، ارائه دیدگاه های گوناگون از سیستم است. همانطور که مهندسین عمران جهت ساختن یک ساختمان پلانهای مختلفی از ساختمان تهیه می کنند ، ما با استفاده از نمودارهای UML نماهای مختلفی از نرم افزار مورد نظر را تهیه می کنیم.
نکته ای که باید حتما به آن توجه کنید این است که : مدل UML آنچه که یک سیستم باید انجام دهد را توضیح می دهد، ولی چیزی درباره نحوه پیاده سازی سیستم نمی گوید.
با توجه به رشد نرم افزارهای پشتیبانی کننده UML امروزه با استفاده از نرم افزارهایی مانند Visio ، Enterprise Architecture و rational rose شما می توانید بعد از کشیدن نمودارهای UML مستقیما نمودارهای خود را به بانک اطلاعاتی و کد تبدیل کنید (البته این نرم افزارها ساختار کد شما را برایتان تولید می کنند!) این نرم افزارها همچنین کد برنامه شما را گرفته و نمودارهای UML برنامه را تولید می کنند. پس از آشنایی با مفاهیم شیء گرایی، (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه) در اینجا زبان مدلسازی UML را معرفی کرده و خواهیم دید چگونه این زبان مفاهیم شیء گرایی را پشتیبانی می کند
نمودارهای UML
- نمودار کلاس (Class Diagram)
این نمودار، کلاس ها، واسط ها و همکاری و روابط بین آنها را نمایش می دهد. و نمودار اصلی و مرکزی UML میباشد. که بیان کننده ساختار ایستای سیستم نرم افزاری می باشد.
- نمودار اشیاء (Object Diagram)
این نمودار، اشیاء سیستم و روابط بین آنها را نمایش می دهد. در واقع یک تصویر لحظهای از نمودار کلاس می باشد.
- نمودار مورد کاربرد (Use case Diagram)
این نمودار، تعامل کاربران خارجی با سیستم را مدل کرده و از جهاتی مشابه نمودار سطح صفر DFD می باشد که جنبه های رفتاری سیستم را نشان می دهد. این نمودار نقطه ورودی برای تمامی نمودارهای دیگری است که به تشریح نیازمندیها و معماری و پیاده سازی سیستم می پردازند.
- نمودارهای تعامل (Interaction Diagram)
این نمودارها، بیان کننده تعامل هستند که شامل اشیاء مختلف است و نیز روابط بین آنها و همچنین پیغام هایی که بین آنها رد و بدل می شود. این نمودارها جنبه های پویای یک سیستم را مدل می کنند و خود بر دو نوع هستند: نمودار توالی (Sequence Diagram) که ترتیب زمانی تعامل ها را نشان می دهد و نمودار همکاری (Collaboration Diagram) که تاکید بر نمایش ساختاری تعامل ها دارد.
- نمودارحالت (State chart Diagram)
این نمودار، بیان کننده جنبه های رفتاری سیستم می باشد و در واقع توصیف رسمی یک کلاس بوده که شامل حالات، انتقال بین حالات، رخدادها و فعالیت ها میباشد. از این نمودارها برای نمایش دادن چرخه حیات اشیاء یک کلاس خاص نیز می توان استفاده کرد.
- نمودار فعالیت (Activity Diagram)
این نمودار، نوع خاصی است از نمودار حالت، که انتقال جریان از یک فعالیت به فعالیت دیگر را نمایش می دهد. این نمودار جنبه های پویای یک سیستم را نمایش می دهد. در واقع حالات این نمودار، گام های ترتیبی انجام یک عمل را نمایش می دهند.
- نمودار اجزاء(Component Diagram)
از جمله نمودارهای پیاده سازی میباشد و سازمان دهی و روابط بین مجموعهای از اجزاء را نمایش می دهد. این نمودار، جنبه های ایستای پیاده سازی یک سیستم را مدل می کند.
- نمودار به کارگیری(Deployment Diagram)
پیکربندی گره های پردازشی زمان اجرا را نمایش می دهد. که برای مدل کردن جنبه های ایستای به کارگیری یک معماری برای یک سیستم بکار می رود. همچنین نمایش دهنده اجزای استفاده شده زمان اجرا مثل کتابخانه های DLL، فایلهای اجرایی، کدهای مبدا و روابط بین آنها می باشد.
البته این نمودارها تمام نمودارهای UML نیستند بلکه با توجه به نیاز و با کمک ابزارهای Case می توان نمودارهای دیگری نیز تعریف و استفاده کرد.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید