PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله زبان مدل سازی یکنواخت (uml)



engeneer_19
14th April 2010, 11:04 PM
زبان مدل سازی یکنواخت (UML)

خلاصه
UML شامل تعدادی عنصر گرافیكی است كه از تركیب آنها نمودارهای UML شكل می گیرند . هدف استفاده از نمودارهای مختلف در UML ، ارائه دیدگاه های گوناگون از سیستم است. همانطور كه مهندسین عمران جهت ساختن یك ساختمان پلانهای مختلفی از ساختمان تهیه می كنند ، ما با استفاده از نمودارهای UML نماهای مختلفی از نرم افزار مورد نظر را تهیه می كنیم.
نكته ای كه باید حتما به آن توجه كنید این است كه : مدل UML آنچه كه یك سیستم باید انجام دهد را توضیح می دهد، ولی چیزی درباره نحوه پیاده سازی سیستم نمی گوید.
با توجه به رشد نرم افزارهای پشتیبانی كننده UML امروزه با استفاده از نرم افزارهایی مانند Visio ، Enterprise Architecture و rational rose شما می توانید بعد از كشیدن نمودارهای UML مستقیما نمودارهای خود را به بانك اطلاعاتی و كد تبدیل كنید (البته این نرم افزارها ساختار كد شما را برایتان تولید می كنند!) این نرم افزارها همچنین كد برنامه شما را گرفته و نمودارهای UML برنامه را تولید می كنند. پس از آشنایی با مفاهیم شیء گرایی، (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه) در اینجا زبان مدلسازی UML را معرفی کرده و خواهیم دید چگونه این زبان مفاهیم شیء گرایی را پشتیبانی می كند.

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

تاریخچه UML :
دیدگاه شی گرایی (Object Oriented) از اواسط دهه 1970 تا اواخر دهه 1980 در حال مطرح شدن بود. در این دوران تلاش های زیادی برای ایجاد روش های تحلیل و طراحی شی گرا صورت پذیرفت. در نتیجه این تلاش ها بود كه در طول 5 سال یعنی 1989 تا 1994، تعداد متدولوژی های شی گرا از كمتر از 10 متدولوژی به بیش از 50 متدولوژی رسید. تكثر متدولوژی ها و زبانهای شی گرایی و رقابت بین اینها به حدی بود كه این دوران به عنوان دوران جنگ متدولوژیها لقب گرفت.
از جمله متدولوژی های پركاربرد آن زمان می توان ازBooch، OOSE، 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 و ++C وجود دارد كه به این عمل مهندسی رو به جلو می گویند.
عكس این عمل نیز ممكن است؛ یعنی این امكان وجود دارد كه شما بتوانید از كد یك برنامه زبانی شی گرا، مدلهای UML معادل آن را به دست آورید. به این عمل مهندسی معكوس می گویند. مهندسی رو به جلو و معكوس از مهمترین قابلیت های UML به شمار می روند، البته نیاز به ابزار Case مناسبی دارید كه از این مفاهیم پشتیبانی كنند.
اگر با زبانهای مدلسازی دیگر كار كرده باشید، برای كار با UML مشكل چندانی نخواهید داشت. اما برای شروع كار با UML به عنوان اولین زبان مدلسازی، بهتر است فقط با نمودارهای خاصی كار كنید. برای این كار بهتر است ابتدا با نمودارهای مورد كاربرد و تعامل كار كنید و پس از مدتی كار و آشنا شدن با ویژگیهای اولیه آن، به یادگیری و استفاده از نمودارها و اجزای دیگر بپردازید. در مقایسه با زبانهای مدلسازی دیگر مثل ER و زبان فلوچارتی DR، زبان UML نمودارهای قوی تر و قابل فهم تری را ارائه می دهد كه شامل تمامی مراحل چرخه حیات تولید نرم افزار (تحلیل، طراحی، پیاده سازی و تست) می‌شود.
یكی دیگر از ویژگی های مهم UML این است كه مستقل از متدولوژی یا فرایند تولید نرم افزار می باشد و این بدان معنی است كه شما برای استفاده از UML، نیاز به استفاده از یك متدولوژی خاص ندارید و می توانید طبق متدولوژی های قبلی خود عمل كنید با این تفاوت كه مدلهایتان را با UML نمایش می دهید. البته مستقل بودن از متدولوژی و فرایند تولید، یك مزیت برای UML می‌باشد؛ زیرا بسیاری از انواع پروژه ها و سیستمها نیاز به متدولوژی خاص خود دارند. اگر UML در پی پیاده كردن همه اینها بر می آمد، یا بسیار پیچیده می شد و یا استفاده خود را محدود می كرد. البته متدولوژیهایی براساس UML در حال شكل گیری می باشند.
از دیگر ویژگیهای UML می توان به پشتیبانی از مفاهیم سطح بالای شی گرایی مثل Collaboration، Framework، Pattern و Component اشاره كرد. همچنین UML با استفاده از یك سری مكانیزم های گسترش پذیر امكان می دهد كه بتوان زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایه ای موجود) ایجاد كرد.
نمودارهای UML :
در این بخش به معرفی نمودارهای UML می پردازیم:
نمودار كلاس (Class Diagram): این نمودار، كلاس ها، واسط ها و همكاری و روابط بین آنها را نمایش می دهد. و نمودار اصلی و مركزی UML می‌باشد. كه بیان كننده ساختار ایستای سیستم نرم افزاری می باشد.
نموداراشیاء (Object Diagram):
این نمودار، اشیاء سیستم و روابط بین آنها را نمایش می دهد. در واقع یك تصویر لحظه‌ای از نمودار كلاس می باشد.
نمودار موردكاربرد (Usercase Diagram):
این نمودار، تعامل كاربران خارجی و سیستم را مدل می كند و از جهاتی شبیه نمودار سطح صفر DFD می باشد كه جنبه های رفتاری سیستم را نمایش می دهد. این نمودار نقطه‌ ورودی برای تمامی نمودارهای دیگری است كه به تشریح نیازمندیها و معماری و پیاده سازی سیستم می پردازند.
نمودارهای تعامل (Interaction Diagram):
این نمودارها، بیان كننده تعامل هستند كه شامل اشیاء مختلف است و نیز روابط بین آنها و همچنین پیغام هایی كه بین آنها رد و بدل می شود.
این نمودارها جنبه های پویای یك سیستم را مدل می كنند و خود بر دو نوعند: نمودار توالی (Sequence Diagram) كه ترتیب زمانی تعامل ها را نشان می دهد و نمودار همكاری (Collaboration Diagram) كه تاكید بر نمایش ساختاری تعامل ها دارد.
نمودارحالت (Statechart Diagram): این نمودار، بیان كننده جنبه های رفتاری سیستم می باشد و در واقع توصیف رسمی یك كلاس بوده كه شامل حالات، انتقال بین حالات، رخدادها و فعالیت ها می‌باشد. از این نمودارها برای نمایش دادن چرخه حیات اشیاء یك كلاس خاص نیز می توان استفاده كرد.
نمودار فعالیت (Activity Diagram):
این نمودار، نوع خاصی است از نمودار حالت، كه انتقال جریان از یك فعالیت به فعالیت دیگر را نمایش می دهد. این نمودار جنبه های پویای یك سیستم را نمایش می دهد. در واقع حالات این نمودار، گام های ترتیبی انجام یك عمل را نمایش می دهند.
نمودار اجزاء(Component Diagram):
از جمله نمودارهای پیاده سازی می‌باشد و سازمان دهی و روابط بین مجموعه‌ای از اجزاء را نمایش می دهد. این نمودار، جنبه های ایستای پیاده سازی یك سیستم را مدل می كند.
نمودار به كارگماری(Deployment Diagram):
پیكربندی گره های پردازشی زمان اجرا را نمایش می دهد. كه برای مدل كردن جنبه های ایستای به كار‌گماری یك معماری بكار می رود. همچنین نمایش دهنده اجزای استفاده شده زمان اجرا مثل كتابخانه های DLL، فایل‌های اجرایی، كدهای مبدا و روابط بین آنها می باشد.
البته این نمودارها تمام نمودارهای UML نیستند بلكه بسته به نیاز و با كمك ابزارهای Case می توان نمودارهای دیگری نیز تعریف و استفاده كرد.
روند حركت به سمت UML در جهان:
قبل از ارائه UML، زبان مدلسازی استانداردی وجود نداشت و استفاده كنندگان مجبور بودند از میان زبانهای مختلف موجود ‌كه تقریباً هیچ کدام كامل نبودند و تفاوتهایی با هم داشتند، یكی را انتخاب كنند. تفاوتهای زبانهای مدلسازی، چندان قدرت مدلسازی را افزایش نداده بود، اما در عوض باعث افول صنعت شی گرایی و سردرگمی كاربران شده بود. در چنین شرایطی طبیعی بود كه استقبال زیادی از چنین زبان مدلسازی استانداردی بشود كه ویژگیهای بارز زیادی داشت. بسیاری از شركتها در همان اوایل كار به UML روی آوردند و تعداد دیگری نیز پس از تثبیت UML، آن را به عنوان استراتژی تولید و مستندسازی خود پذیرفتند.
OMG كه كنسرسیومی است متشكل از 700 شركت معتبر آمریكا، از UML حمایت كرد و آن را به عنوان زبان مدلسازی استاندارد خود اعلام كرد. البته علاوه بر استاندارد شدن، حمایت جداگانه شركت های بزرگ دنیا مثل Hewlett-Packard، I-Logix، Microsoft، IBM، Oracle و بسیاری دیگر، خود سبب افزایش كاربرد آن در محافل صنعتی و نرم افزاری دنیا گردید.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد