زبان مدلسازی یکنواخت (1)


زبان مدلسازی یکنواخت یا Unified Modeling Language ( UML )  ، یک زبان مدلسازی است که برای تحلیل و طراحی سیستمهای شیء گرا بکار می رود .  UML اولین بار توسط شرکت  Rational ارائه شد و پس از آن از طرف بسیاری از     شرکت های کامپیوتری و مجامع صنعتی و نرم افزارهای دنیا مورد حمایت قرار گرفت ، بطوریکه تنها پس از یک سال ، توسط گروه Object Manahement Group ، به عنوان زبان مدلسازی استاندارد پذیرفته شد . UML تواناییها و خصوصیات بارز فراوانی دارد که می تواند به طور گسترده ای در تولید نرم افزار استفاده گردد . در ادامه ی این مقاله ابتدا به تاریخچه UML و در ادامه به معرفی ، ویژگیها و نمودارهای آن پرداخته می شود و در پایان ، روند حرکت به سمت UML و اهمیت آن ، بررسی خواهد شد .

تاریخچه ی UML :

دیدگاه شیء گرایی ( Object Oriented ) ، از اواسط دهه 1970 تا اواخر دهه 1980 در حال مطرح شدن بود . در این دوران تلاشهای زیادی برای ایجاد روشهای تحلیل و طراحی شیء گرا صورت پذیرفت . در نتیجه ی این تلاشها بود که در طول 5 سال یعنی 1989 تا 1994 ، تعداد متدولوژیهای شیء گرا از کمتر از 10 متدولوژی به بیش از 50 متدولوژی رسید . تکثر متدولوژیها و زبانهای شیء گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان » جنگ متدولوژیها » لقب گرفت . از جمله متدولوژیهای پرکاربردآن زمان می توان ازBooch ، OOSH ، OMT ، Fusion ، Coad-Yourdan  ،  Shlayer-Mellor  و غیره نام برد . فراوانی و اشباع متدولوژیها و روشهای شیء گرایی و نیز نبودن یک زبان مدلسازی استاندارد ، باعث مشکلات فراوانی شده بود . از یک طرف کاربران از متدولوژیهای موجود خسته شده بودند ، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند . بسیاری از روشها ، مفاهیم مشترک شیء گرایی را در قالبهای مختلف بیان       می کردند که این واگرایی و نبودن توافق میان این زبانها ، کاربران تازه کار را از دنیای شیء گرایی زده می کرد و آنها را از این حیطه دور می ساخت . عدم وجود یک زبان استاندارد ، برای فروشندگان محصولات نرم افزاری نیز مشکلات زیادی ایجاد کرده بود .

اولین تلاشهای استاندارد سازی از اکتبر 1994 آغاز شد ، زمانی که آقای Rumbaurgh  صاحب متدولوژی OMT به آقای  Booch  در شرکت  Rational پیوست و این دو با ترکیب متدولوژیهای خود ، اولین محصول ترکیبی خود به نام » روش یکنواخت » را ارائه دادند . در سال 1995 بود که با اضافه شدن آقای Jacobson به این دو ، روش یکنواخت ارائه شده با روش OOSE نیز ترکیب شد و این خود سبب ارائه ی UML نسخه ی 0/9 در سال 1996 گردید . سپس این محصول به شرکتهای مختلفی در سراسر جهان به صورت رایگان ارائه شد و استقبال شدید شرکتها از این محصول و تبلیغات گسترده شرکت Rational ، سبب آن شد که گروه OMG ، نسخه ی 1/0 UML را به عنوان زبان مدلسازی استاندارد خود بپذیرند . تلاشهای تکمیلی UML استاندارد ادامه پیدا کرد و نسخه ی 1/1 آن در سال 1997 و نسخه ی 1/3  آن در سال 1999 ارائه گردید .

UML چیست ؟

UML  یا زبان مدلسازی یکنواخت ، زبانی است برای مشخص کردن ( Specify ) ، مصورسازی ( Visualize )  ،  ساخت ( Construction )  و مستندسازی                      ( Documenting ) سیستمهای نرم افزاری و غیر نرم افزاری و نیز برای مدلسازی سیستم های تجاری . اما چرا مدل و مدلسازی ؟ ایجاد یک مدل برای سیستمهای نرم افزاری قبل از ساخت یا باز ساخت آن ، به اندازه داشتن نقشه برای ساختن یک ساختمان ضروری و حیاتی است . بسیاری از شاخه های مهندسی ، توصیف چگونگی محصولاتی که باید ساخته شوند را ترسیم می کنند و همچنین دقت زیادی می کنند که محصولاتشان طبق این مدلها و توصیفها ساخته شوند . مدلهای خوب و دقیق در برقراری یک ارتباط کامل بین افراد پروژه ، نقش زیادی می توانند داشته باشند . شاید علت مدل کردن سیستم های پیچیده این باشد که تمامی آن را نمی توان یکباره مجسم کرد ، بنابراین برای فهم کامل سیستم و یافتن و نمایش ارتباط بین قسمتهای مختلف ، آن را به مدلسازی می پردازیم .

UML زبانی است برای مدلسازی یا ایجاد نقشه تولید نرم افزار .

به عبارت دیگر ، یک زبان ، با ارائه یک فرهنگ لغات و یک مجموعه قواعد ، امکان می دهد که با ترکیب کلمات این فرهنگ لغات و ساختن جملات ، با یکدیگر ارتباط برقرار کنیم . یک زبان مدلسازی ، زبانی است که فرهنگ لغات و قواعد آن بر نمایش فیزیکی و مفهومی آن سیستم متمرکزند . برای سیستمهای نرم افزاری نیاز به یک زبان مدلسازی داریم که بتواند دیدهای مختلف معماری سیستم را در طول چرخه ی تولید آن ، مدل کند .

فرهنگ واژگان و قواعد زبانی مثل UML به شما می گویند که چگونه یک مدل را بسازید و یا چگونه یک مدل را بخوانید . اما به شما نمی گویند که در چه زمانی ، چه مدلی را ایجاد کنید . یعنی UML فقط یک زبان نمادگذاری ( Notation ) است نه یک متدولوژی . یک زبان نمادگذاری شامل نحوه ی ایجاد و نحوه ی خواندن یک مدل    می باشد ، اما یک متدولوژی بیان می کند که چه محصولاتی باید در چه زمانی تولید شوند و چه کارهایی با چه ترتیبی توسط چه کسانی ، با چه هزینه ای ، در چه مدتی و با چه ریسکی انجام شوند .

ویژگی های UML :

UML دارای ویژگی های بارز فراوانی است که در این قسمت به آنها می پردازیم . UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است . بطوریکه در ورای این نمادها ، یک سمانتیک ( معناشناسی ) قوی وجود دارد ، بطوریکه یک تولیدکننده می تواند مدلهایی تولید کند که تولیدکننده های دیگر و یا حتی یک ماشین آن را بخواند و بفهمد . بنابراین یکی دیگر از نقش های مهم UML  “ تسهیل ارتباط ” بین اعضای پروژه و یا بین تولیدکنندگان مختلف می باشد . این ارتباط بسیار مهم است . شاید دلیل اصلی اینکه تولید نرم افزار به صورت فریبنده ای دشوار است ، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرم افزار ، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد ، بسیاری از این دشواریها برطرف خواهد شد .

البته این را هم باید در نظر گرفت که UML کمی پیچیده است و این به خاطر آن است که سعی شده است نمودارهایی فراهم شود که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند . دلیل دیگر پیچیدگی از آنجا ناشی می شود که UML ترکیبی از زبانهای مختلف ، که برای حفظ سازگاری و جمع کردن خصوصیات مثبت آنها ناگزیر از پذیرش این پیچیدگی می باشد . UML موفقیت طرح را تضمین نمی کند ، اما در عین حال خیلی چیزها را بهبود می بخشد . به عنوان مثال استفاده از UML ، تاحد زیادی ، هزینه های ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش می دهد .

مسأله دیگر اینکه ، UML یک زبان برنامه نویسی بصری ( visual ) نیست ، اما مدلهای آن را می توان مستقیماً به انواع زبانهای مختلف ارتباط داد . یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامه نویسی مثل Java و VC++ وجود دارد که به این عمل “ مهندسی رو به جلو ” می گویند . عکس این عمل نیز ممکن است ؛ یعنی این امکان وجود دارد که شما بتوانید از کُد برنامه زبانی شیء گرا ، مدلهای UML معادل آن را بدست آورید . به این عمل“ مهندسی معکوس ” می گویند . مهندسی رو به جلو و مهندسی معکوس از مهمترین قابلیتهای UML به شمار می روند ، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانی کنند .

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

در مقایسه با زبانهای دیگر مثل ER و زبان فلوچارتی DR ، زبان UML نمودارهای قویتر و قابل فهمتری را ارائه می دهد که شامل تمامی مراحل چرخه ی حیات تولید نرم افزار ( تحلیل ، طراحی ، پیاده سازی و تست ) می شود .

یکی دیگر از ویژگیهای مهم UML این است که مستقل از متدولوژی یا فرآیند تولید نرم افزار می باشد و این بدان معنی است که شما برای استفاده از UML ، نیاز به استفاده از یک متدولوژی خاص ندارید و می توانید طبق متدولوژی قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش می دهید .

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

از دیگر ویژگیهای UML می توان به پشتیبانی از مفاهیم سطح بالای شیء گرا یی مثل Collaboration  ،  Framework  ،  Pattern  و Component اشاره کرد . همچنین UML با استفاده از یک سری مکانیزمهای گسترش پذیر امکان می دهد که بتوان زبانهای مدلسازی جدیدتری ( با گسترش مفاهیم پایه ای موجود ) ایجاد کرد .

روند حرکت به سمت UML در جهان :

قبل از ارائه UML ، زبان مدلسازی استانداردی وجود نداشت و استفاده کنندگان مجبور بودند از میان زبانهای مختلف موجود که هیچ یک تقریباً کامل نبودند و تفاوتهایی با هم داشتند ، یکی را انتخاب کنند . تفاوتهای زبان مدلسازی ، چندان قدرت مدلسازی را افزایش نداده بود ، اما در عوض باعث افول ضعف شیء گرایی و سردرگمی کاربران شده بود .

در چنین شرایطی طبیعی بود که استقبال زیادی از یک زبان مدلسازی استاندارد که ویژگیهای بارز زیادی داشت ، بشود . بسیاری از شرکتها در همان اوایل کار به UML روی آوردند و تعداد دیگری نیز پس از تثبیت UML ، آن را به عنوان استراتژی تولید و مستندسازی خود پذیرفتند .

OMG که کنسرسیومی است متشکل از 700 شرکت معتبر آمریکا ، از UML حمایت کرد و آن را به عنوان زبان مدلسازی استاندارد خود اعلام کرد .

البته علاوه بر استاندارد شدن ، حمایت جداگانه شرکت های بزرگ دنیا مثل   Hewlett-Packard ، I-Logix ، Microsoft ، IBM ، Oracle و بسیاری دیگر ، خود سبب افزایش کاربرد آن در محافل صنعتی و نرم افزاری دنیا گردید . امروزه نیز با ارائه نسخه 3/1 و رفع مشکلات گذشته ، روز به روز بر کاربران آن افزوده می شود .

هرچند UML یک استاندارد برای تشخیص کیفیت نرم افزار نیست ولی استانداردی برای مدلسازی نرم افزار است و لذا مراحل مختلف تعریف ، طراحی و حتی تست     نرم افزار را تسهیل نموده و کار تیمی و ارزیابی ناظران خارجی را آسان و ممکن       می نماید . اگر استفاده از UML در تولید نرم افزار به یک فرهنگ تبدیل گردد ، گام بزرگی به سوی دقت ، کیفیت ، مستندسازی و رعایت اصول مهندسی نرم افزار برداشته شده است .

 

 

  1. هنوز دیدگاهی داده نشده است.
  1. No trackbacks yet.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: