PDA

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



آبجی
18th October 2009, 10:51 AM
UML شامل تعدادي عنصر گرافيكي است كه از تركيب آنها نمودارهاي UML شكل مي گيرند . هدف استفاده از نمودارهاي مختلف در UML ، ارائه ديدگاه هاي گوناگون از سيستم است. همانطور كه مهندسين عمران جهت ساختن يك ساختمان پلانهاي مختلفي از ساختمان تهيه مي كنند ، ما با استفاده از نمودارهاي UML نماهاي مختلفي از نرم افزار مورد نظر را تهيه مي كنيم.

نكته اي كه بايد حتما به آن توجه كنيد اين است كه : مدل UML آنچه كه يك سيستم بايد انجام دهد را توضيح مي دهد، ولي چيزي درباره نحوه پياده سازي سيستم نمي گويد.

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

آبجی
18th October 2009, 10:51 AM
مقدمه

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

آبجی
18th October 2009, 10:52 AM
تاريخچة 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 ارائه گرديد.

آبجی
18th October 2009, 10:53 AM
UML چيست ؟
UML يا زبان مدلسازي يكنواخت، زباني است براي مشخص كردن (Specify)، مصورسازي (Visualize)، ساخت (Construction) و مستندسازي (Documenting) سيستمهاي نرم افزاري و غير نرم افزاري و نيز براي مدلسازي سيستمهاي تجاري.

اما چرا مدل و مدلسازي ؟

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

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

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

آبجی
18th October 2009, 10:54 AM
ويژگيهاي 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 با استفاده از يك سري مكانيزم هاي گسترش پذير امكان مي دهد كه بتوان زبانهاي مدلسازي جديدتري (با گسترش مفاهيم پايه اي موجود) ايجاد كرد.

آبجی
18th October 2009, 10:56 AM
نمودارهاي 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 مي توان نمودارهاي ديگري نيز تعريف و استفاده كرد.

آبجی
18th October 2009, 10:56 AM
روند حركت به سمت UML در جهان:


قبل از ارائه UML، زبان مدلسازي استانداردي وجود نداشت و استفاده كنندگان مجبور بودند از ميان زبانهاي مختلف موجود ‌كه تقريباً هیچ کدام كامل نبودند و تفاوتهايي با هم داشتند، يكي را انتخاب كنند. تفاوتهاي زبانهاي مدلسازي، چندان قدرت مدلسازي را افزايش نداده بود، اما در عوض باعث افول صنعت شي گرايي و سردرگمي كاربران شده بود. در چنين شرايطي طبيعي بود كه استقبال زيادي از چنین زبان مدلسازي استانداردی بشود كه ويژگيهاي بارز زيادي داشت. بسياري از شركتها در همان اوايل كار به UML روي آوردند و تعداد ديگري نيز پس از تثبيت UML، آن را به عنوان استراتژي توليد و مستندسازي خود پذيرفتند.

OMG كه كنسرسيومي است متشكل از 700 شركت معتبر آمريكا، از UML حمايت كرد و آن را به عنوان زبان مدلسازي استاندارد خود اعلام كرد. البته علاوه بر استاندارد شدن، حمايت جداگانه شركت هاي بزرگ دنيا مثل Hewlett-Packard، I-Logix، Microsoft، IBM، Oracle و بسياري ديگر، خود سبب افزايش كاربرد آن در محافل صنعتي و نرم افزاري دنيا گرديد.

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

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