دپارتمان آموزش مجازی شرکت جهت علاقه مندان به این دوره ی آموزشی توضیحاتی در این رابطه ارائه داده است. جهت ثبت نام در این دوره کوتاه مدت آموزشی و دریافت گواهینامه آموزشی معتبر در این زمینه به قسمت ( ثبت نام دوره ) مراجعه فرمائید. ( در نظر داشته باشید احتمال دارد بر طبق نظر استاد مربوطه سرفصل ها و یا محتوای دوره ها با آنچه در این صفحه به صورت کلی شرح داده شده است متفاوت باشد.)
نگاه كلي به زبان مدل سازي يكنواخت یا 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 يا زبان مدلسازي يكنواخت، زباني است براي مشخص كردن (Specify)، مصورسازي (Visualize)، ساخت (Construction) و مستندسازي (Documenting) سيستمهاي نرم افزاري و غير نرم افزاري و نيز براي مدلسازي سيستمهاي تجاري.
اما چرا مدل و مدلسازي ؟
ايجاد يك مدل براي سيستمهاي نرم افزاري قبل از ساخت يا بازساخت آن، به اندازه داشتن نقشه براي ساختن يك ساختمان ضروري و حياتي است. بسياري از شاخه هاي مهندسي، توصيف چگونگي محصولاتي كه بايد ساخته شوند را ترسيم مي كنند و همچنين دقت زيادي مي كنند كه محصولاتشان طبق اين مدلها و توصيفها ساخته شوند. مدلهاي خوب و دقيق در برقراري يك ارتباط كامل بين افراد پروژه، نقش زيادي مي توانند داشته باشند. شايد علت مدل كردن سيستمهاي پيچيده اين باشد كه تمامي آن را نمي توان يك باره مجسم كرد، بنابراين براي فهم كامل سيستم و يافتن و نمايش ارتباط بين قسمتهاي مختلف آن، به مدلسازي ميپردازيم. UML زباني است براي مدلسازي يا ايجاد نقشه توليد نرم افزار.
به عبارت ديگر، يك زبان، با ارائه يك فرهنگ لغات و يك مجموعه قواعد، امكان مي دهد كه با تركيب كلمات اين فرهنگ لغات و ساختن جملات، با يكديگر ارتباط برقرار كنيم. يك زبان مدلسازي، زباني است كه فرهنگ لغات و قواعد آن بر نمايش فيزيكي و مفهومي آن سيستم متمركزند. براي سيستمهاي نرم افزاري نياز به يك زبان مدلسازي داريم كه بتواند ديدهاي مختلف معماري سيستم را در طول چرخه توليد آن، مدل كند.
فرهنگ واژگان و قواعد زباني مثل UML به شما مي گويند كه چگونه يك مدل را بسازيد و يا چگونه يك مدل را بخوانيد. اما به شما نمي گويند كه در چه زماني، چه مدلي را ايجاد كنيد. يعني UML فقط يك زبان نمادگذاري (Notation) است نه يك متدولوژي. (توضیحات بیشتر در سایر مقالات سایت میکرو رایانه) يك زبان نمادگذاري شامل نحوه ايجاد و نحوه خواندن يك مدل مي باشد، اما يك متدولوژي بيان مي كند كه چه محصولاتي بايد در چه زماني توليد شوند و چه كارهايي با چه ترتيبي توسط چه كساني، با چه هزينهاي، در چه مدتي و با چه ريسكي انجام شوند.
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، آن را به عنوان استراتژي توليد و مستندسازي خود پذيرفتند.
OMG كه كنسرسيومي است متشكل از 700 شركت معتبر آمريكا، از UML حمايت كرد و آن را به عنوان زبان مدلسازي استاندارد خود اعلام كرد. البته علاوه بر استاندارد شدن، حمايت جداگانه شركت هاي بزرگ دنيا مثل Hewlett-Packard، I-Logix، Microsoft، IBM، Oracle و بسياري ديگر، خود سبب افزايش كاربرد آن در محافل صنعتي و نرم افزاري دنيا گرديد.