وبگاه شخصی مهندس مهدی محمدی

فردا دیر است امروز باید...

به نام بهترین سرآغاز

زبان مدل‌ سازی یکپارچه (Unified Modeling Language) یا به اختصار UML ، یک زبان مدلسازی همه منظوره استاندارد در زمینه مهندسی نرم افزار است.

این زبان توسط (OMG)Object Management Group ایجاد شد. در سال ۲۰۱۰ میلادی نسخه ۲٫۲ UML ظاهر شد که در سال ۲۰۰۷ میلادی مشخصات آن منتشر شده بود. با استفاده از UML می توان تقریبا هر گونه برنامه کاربردی که ممکن است بر روی هر ترکیبی از سخت افزار، سیستم عامل، زبان برنامه نویسی و شبکه اجرا شود را مدلسازی نمود.

طراحی بر پایه مفاهیم شی گرایی UML سبب می‌شود که ذاتا با محیط‌ها و زبانهای برنامه نویسی شی گرا (مانند ++C ، جاوا و #C) سازگاری کامل داشته باشد، اگرچه می توان از آن برای مدلسازی برنامه‌های غیر شی گرا مانند ویژوال بیسیک، کوبول و فرترن نیز استفاده کرد.

نگاه کلی

UML یک زبانمدلسازی نسل سوم است و روشی باز برای توصیف ویژگی ها، نمایش گرافیکی، ساختن ومستند سازی اجزای یک سیستم نرم افزاری در حال توسعه می باشد. از UML برایفهمیدن، طراحی، مرور، پیکربندی، نگهداری و کنترل اطلاعات سیستم‌های نرم افزاریاستفاده می شود. UML برای همه روشهای توسعه نرم افزار، همه مراحل چرخه عمر نرم افزار،همه حوزه‌های برنامه‌های کاربردی و هر رسانه ای قابل استفاده است. این زبانمدلسازی برای یکپارچه سازی تجربیات گذشته در مورد تکنیک‌های مدلسازی و گنجاندنتجربیات موفق در یک دیدگاه استاندارد بوجود آمده است. UML شاملمفاهیم معنایی (Semantic)، نمادگذاری و راهنمایی برای طراحی می باشد. UML را نمیتوان به عنوان یک روش تولید نرم افزار کامل دانست. این زبان شامل فرآیند مرحله بهمرحله تولید نرم افزار نیست، بلکه UML زبانی است که تقریبا تمام شیوه‌های تولیدنرم افزار از آن استفاده می کنند. UML تکنیکهای مدلسازی داده (نمودار رابطهموجودیت)، مدلسازی تجاری، مدلسازی شیء و مدلسازی مولفه‌ها را با هم ترکیب مینماید. UML را می تواندر تمامی پروسه‌ها در سراسر روند توسعه نرم افزار به کار بست. پیش از پیدایش UML در اواسطدهه ۱۹۹۰، مدلسازی نرم افزار از مشکل ناسازگاری نماد گذاریهای مختلفی که توسطمتخصصین مدلسازی مختلف بوجود می آمد رنج می برد و استاندارد فراگیری در این زمینهوجود نداشت. UML از تلفیق روش بوچ (Booch Method)، تکنیک مدل‌سازی شیء (OMT) و مهندسینرم افزار شیء گرا (OOSE) با یکدیگر در راستای جریانات یکپارچه سازی بوجود آمد. پیدایش UML همه چیز راتغییر داد و باعث رشد چشمگیر مدلسازی تصویری و استفاده گسترده از این زبان شد. UML امروزه نقشیک زبان بین المللی را در زمینه تولید نرم افزار بر عهده دارد. موسسه آماری گارتنر(Gartner) در سال۲۰۰۶ تعداد متخصصان فناوری اطلاعات که از UML استفاده می کردند را ۱۰ میلیون نفر برآوردنمود و همچنین تخمین زده است که در سال ۲۰۰۸ در 70 درصد شرکتهای تولید نرم افزاردر سراسر دنیا از UML استفاده شده است.

تاریخچه

روشهایتولید نرم افزار برای زبانهای برنامه نویسی سنتی در دهه 1970 ظهور کرد و در دهه1980 همه گیر شد. مهمترین این شیوه‌ها متدولوژی طراحی و تحلیل ساختار یافته سیستم(SSADM) بود. اینروشها در ابتدا توسط افرادی چون کنستانتین (Constantine)، دی مارکو(DeMarco)، ملور (Mellor)، وارد (Ward)، یوردون (Yourdon) و سایرینپدید آمدند و در حیطه سیستم‌های بزرگ به ویژه سیستم‌های طرف قرارداد با دولت درحوزه هوافضا و دفاع نظامی نیز نفوذ کردند. اگرچه نتایج آنها همواره رضایت بخش نبوداما این روشها دارای ایده‌های خوبی بودند که به ندرت استفاده موثری از آنها می شد.شرکتهای تجاری راغب به به کارگیری روشهای تولید نرم افزار و سیستم‌های رایانه ایمهندسی نرم افزار نبودند. بیشتر آنها نرم افزارها را برای استفاده داخلی و رفعنیازهای خود تولید می کردند و نیازی به بررسی این نرم افزارها توسط سازمانهایخارجی نبود.

اولینزبان برنامه نویسی شیء گرا Simula-67 بود که توسط اوله ژوهان داهل (Ole-JohanDahl) و کریستن نایگارد (Kristen Nygaard) در سال 1967 در نروژ طراحی شد. این زباناگرچه خود پیروان چندانی به دست نیاورد اما تاثیر زیادی بر روی بسیاری از زبانهایشیء گرای بعدی داشت. کارهای داهل (Dahl) و نایگارد (Nygaard) تاثیرژرفی بر گسترش شیء گرایی داشت. جریان شی گرایی با دستیابی عمومی به زبان اسمالتاک(Smalltalk) در اوایلدهه 1980 فعال شد و با پیدایش زبانهای شی گرای دیگری مانند Objective C، C++، ایفل وکلوس (CLOS) ادامهیافت. پنج سال پس از اینکه "اسمالتاک" در سراسر دنیا شناخته شد، اولینمتدهای شی گرای تولید نرم افزار توسط "شلایر" و "ملور" و کودو "یوردون" بوجود آمد و به فاصله کوتاهی توسط سایرین همچون بوچ (Booch) و رمباف (Rambaugh) پیگیری شد.این کتابها به مجموعه کتب قبلی در مورد طراحی زبانهای برنامه نویسی اضافه شد ومبحث متدولوژی شی گرا آغاز شد. فاز اول آن در پایان سال 1990 کامل شد. کتاب"یاکوبسون" در مورد شیء گرایی، اندکی بعد بر اساس مقالات و کارهای پیشینمنتشر شد که با تمرکز بر روی مورد کاربرد دیدگاه متفاوتی را ارائه کرد. در طی پنجسال بعدی کتابهای متعددی در این زمینه تالیف شد که هریک تعاریف، مفاهیم ونمادگذاریهای خاص خود را داشتند، اما در مجموع شباهت زیادی بین مفاهیم ارائه شدهتوسط نویسندگان مختلف وجود داشت.

برخیتلاشهای اولیه در جهت یکپارچه سازی مفاهیم روشهای مختلف به انجام رسید که نمونهقابل ملاحظه آن کار کلمن (Coleman) و همکارانش به نام "فیوژن" (Fusion) بود کهشامل مفاهیمی از تکنیک مدل‌سازی شیء ، بوج و CRC بود. اولینتلاش موفقیت آمیز برای ترکیب و جایگزینی روشهای موجود در سال 1994 زمانی به وجودآمد که "رمباف" به شرکت Rational Software رفت و به "بوچ" پیوست. این دومفاهیم تکنیک مدل سازی شیء و روش "بوچ" را ترکیب کردند و اولین طرح خودرا در سال 1995 ارائه دادند. در این زمان "یاکوبسون" هم به این دو پیوستو کار مشترک خود را با آنها آغاز کرد. کار مشترک آنها زبان مدل سازی یکپارچه نامگرفت. در سال 1996 گروه OMG پیشنهاداتی برای استاندارد مدل سازی شیء گرا را مطرح نمود.نویسندگان UML (یاکوبسون، بوچ و رمباف) با همکاری گروهی از برنامه نویسان ومتدولوژیست ‌های دیگر طرح پیشنهادی خود را به OMG ارائهکردند. طرح های دیگری هم به OMG ارائه شد که در نهایت همه پیشنهادات در طرحنهایی UML که در سال1997 به OMG تحویل دادهشد، ادغام شدند.

پس ازچندین سال تجربه استفاده از UML در صدد برآمدند تا UML را ارتقادهند تا مشکلاتی که در تجربیات کاری پدیدار شده بود را بر طرف کنند و قابلیت‌هایآن را گسترش دهند. طرحهای پیشنهادی ارائه شدند و مشخصات UML 2 در سال2003 توسط OMG پذیرفته شد و پس از اصلاحات نهایی در اواخر سال 2004 در دسترسعموم قرار گرفت.

 منبع:پرنیان وب