آشنايي با UML

زبان مدل سازي يكپارچه (UML) زباني است براي مشخص سازي ، مجسم سازي ، ساخت و مستند سازي دست آوردهاي سيستم هاي نرم افزاري و مدل سازي و كار و ديگر سيستمهاي غير نرم افزاري .

Uml مجموعه اي از بهترين تجربيات مهندسي كه موفقيتشان در مدل سازي سيستمهاي بزرگ و پيچيده به اثبات رسيده است را عرضه مي دارد.
تعريف UML شامل اسناد زير مي گردد :
معنا شناسي UML : كه مفاهيم غني و دستور نگارش وعلا ئم زبان مدلسازي يكپارچه را تعريف مي كند UMLبه وسيله بسته ها به صورت معماري گونه لا يه بندي و سازماندهي ميشود . در هر بسته عناصر مدل بر حست دستور نگارش (با استفاده از متن و عبارت زبان محدوديت شيء معروف به OCL )و معاني (با استفاده از متن دقيق) تعريف مي شوند .
راهنماي علائم UML : فكر و انديشه را تعريف مي كند و مثال هاي خوبي را ارائه مي كند. علائم UML نحو گرافيكي را براي بيان معاني توصيف شده توسط فرا مدل هاي UML ارائه مي كند.

توسعه ي UML براي فرايند شيءدر مهندسي نرم افزارو توسعه UML براي مدل سازي تچارت : اين توسعه هاي UML شامل توسعه خاص فرايند و توسعه خاص حوزه مسئله در UML برحسب مكانيزم هاي توسعه اي شان و آيكون نمودار فرايند مي گردد .
۲) فراهم آوردن مكانيزم هاي توسعه و تخصيص براي بسط مفاهيم اساسي : بدين معنا كه در عين آنكه انتظار ميرود UML براساس نيازهاي جديد در حوزه هاي خاص جفت و جور شود نمي خواهد اجبار كند تا مفاهيم اساسي و مشترك براي هر حوزه جديدي دوباره تعريف شود و پياده سازي گردد. البته مفاهيم اساسي نبايد بيش از حد تغيير يابند. بنابراين كاربران نيازمندند كه قادر باشند : ۱- مدل ها را با استفاده از مفاهيم اساسي بسازند بدون آنكه مكانيزم هاي توسعه را براي بسياري از برنامه هاي كاربردي نرمال بكار گيرند .

۲- مفاهيم و علائم جديد را اضافه كنند البته براي مواردي كه توسط اصول پوشيده نشده باشند .
۳- زماني كه هيچ اتفاق نظر روشني وجود ندارد تفاسير مختلف را از مفاهيم موجود انتخاب كنند .

۴- مفاهيم، علائم و محدوديت ها را براي حوزه هاي كاربردي خاص مشخص سازند .
۳) استقلال از زبان هاي برنامه نويسي خاص و فرايندها ي توسعه .
۴) فراهم آوردن پايه و اصولي رسمي براي درك زبان مدل سازي كه براي اين منظور UML تعريف رسمي از قالب استاتيك مدل را با استفاده از نمودار كلاس ارائه مي كند اين نمودار ، نموداري مشهور و مورد قبول در سطح وسيع براي تعييين قالب يك مدل است UML همچنين محدوديت هايي را بيا ن ميدارد كه در قالب زبان دقيق طبيعي و عبارات زبان محدوديت شيء (OCL ) بيان مي شود .

۵) تشويق به رشد بازار ابزارهاي OO .
6) حمايت و پشتيباني از مفاهيم توسعه سطح بالاتر نظير : همكاري ها ، چهارچوب ها ،الگوها و اجزاء .
۷) مجتمع سازي بهترين تجربيات : UML بدنبال آن است كه بهترين تجربيات درصنعت
حوزه هاي مسئله ، معماري ها و … را يكجا بياورد .

محدوده UML
زبان مدل سازي يكپارچه UML زباني است براي مشخص سازي ساخت ،مجسم سازي و مستند سازي دست آوردهاي يك سيستم متمركز نرم افزاري اول آنكه اين زبان از مفاهيم OOSE,OMT,BOOCH كه متدولوژيهاي متداول OOميباشند متنج شده است . دوم ، UMLبر آنچه كه در حال حاضر توسط روش هاي موجور فابل انجام همتند ، بان شده است . سوم زبا ن مدل سازي يكپارچه بر يك زبان مدل سازي استانارد تمركز مي كند و نه يك فرآيند استاندادر اگر چه UMLبايستي در زمينه يك فرايند به كارگيري شود تجرته نشان ميدهد كه در سازمان هاي مختلف و با حوزه هاي مسئله متفاوت فرايندهاي متفاوتي مورد نياز است بنابراين تلاش بر اين است كه ابتدا بر يك فرامدل مشترك (كه معاني را يكپارچه ميكند )تمركز شود و در درجه دوم بر يك علامت گذاري مشترك (كه براي فرد استنباط اين معاني را فراهم ميكند )تمركز گردد مبدعين UMLبر فرايند توسعاي تاكيد ميكنند كه مورد كاربرد گرا معماري گرال و تكراري و افزايشي است .

UML يك زبان مدلسازي را مشخص مي كند كه اتفاق نظر جماعت شيگرا بر مفاهيم اساس مدل سازي است .
۱) UMLبراي ايجار مدلها و نمرارهاي حوزه مسئله هيچ توصيه اي نميشود و اين تجربيات و يادگيري افراد است كه تشخيص استفاده از كدام نمودارها و مدل ها را به ايشان مي دهد دريك ديدگاه مدل سازي UML نمودارهاي گرافيكي زير را تعريف مي كند مورد كاربرد

نمودار مورد كاربرد diagram ) (use ca
نمودار كلاس (ClassDiagram)
نمودارهاي رفتار: (BehaviorDiagra
نمودارهاي حالت : (State Chart Diagram)
نمودار فعاليت : )Activity Diagram(
نمودارهاي تعامل Interaction Diagrams ))
نمودار توالي ((Sequence Diagram
نمودار همكاري ((Collaboration Diagram
* نمودارهاي پياده سازي) (Implementation Diagram
نمودار اجزاء (Component Diagram )
نموداراستقرار (Deployment Diagram)

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

زبان برنامه نويسي

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

ابزار

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

مقايسه UML با د يگر زبان هاي مدل سازي

UML بر اساس موفقيت هاي سه روش مدل سازي OOSE , OMT , BOOCH و ايجاد شده است و كاربران هر يك از اين سه روش ،‌ مي توانند به راحتي از UML استفاده نمايندت. UML براي استفاده شدن توسط كاربران روش هاي ديگر نيز آماده و آسان مي باشد.
UML هم اكنون روشن تر ، مستحكم تر و يك شكل تر از Booch,OMT.,OOSE و ديگر روش ها مي باشد . اين بدين معنا است كه در انتقال به UML اين ارزش وجود دارد كه به شما اجازه مي دهد تا در پروژه ها چيزهايي را مدل سازي كنيد كه قبل از اين انجام شدني نبودند.

كاربران روش هاي موجود، تغييرات اساسي و زيادي را در علامت گذاري تجربه خواهند كرد. اما اين به معناي نياز به يادگيري مجدد با تعريف مجدد مفاهيم حاضر نيست. كاربران هر يك از روش هاي OO مي توانند سرعت زيادي را در يادگيري شان انتظار داشته باشند. تكنيك هاي پيشرفته نظير به كارگيري كليشه ها و خواص ، نيازمند مطالعه هستند. البته اين موارد نيز در زمان برخورد با مسئله ، مورد نياز مي شوند.

ويژگي هاي جديد UML
هدف كليه تلاش هاي يكپارچه سازي كه در UML به كار مي رود ، حفظ سادگي است به گونه اي كه عناصر غير كاربردي روش هاي OMT, Booch,OOSE طرد شوند و عناصر مؤثر از روش هاي ديگر به آن اضافه گردند.
مفاهيم جديد زيادي در UML وارد شده اند ، نظير : مكانيزم هاي توسعه شامل كليشه ها ، مقادير ضميمه و محدوديت ها ، توزيع و همروندي (‌به عنوان مثال برا ي مدل سازي CORBA,Active/DCOM الگوها / همكاري ها ، نمودارهاي فعاليت (‌براي مدل سازي فرآيند كار ) ، پالايش (‌براي اجرا يا به كارگيري ارتباطات بين سطوح مجرد ) واسطه ها و اجزاء ، و يك زبان محدوديت .

بسياري از اين مفاهيم در نظريه ها و روش هاي انفرادي مختلف وجود داشتند و UML آنها را به دورن انسجام خودش كشاند . به علاوه اين تغييرات اساسي ، بهبودهاي ريز ديگري نيز بر اساس مفاهيم و علائم ،OOSE ,Booch.OMT وجود دارد. بنابراين بسياري از مفاهيم و علائم UML را خود نويسندگان آن ايجاد نكرده اند بلكه نقش آنها ، جمع آوري مناسب ، انتخاب و يكپارچه كردن اين مفاهيم و علائم در UML بو ه است . در اين زمينه ، موارد زير قابل ذكر است :

• نمودارهاي مورد كاربرد مشابه آنچه درOOSE ارائه شد مي باشند.
• نموداراهاي كلاس ، ذوب شده Booch،OMT و ديگر روش ها است. كليشه ها ، محدوديت و مقادير ضميمه مفاهيمي هستند كه قبلا در زبان هاي مهم مدل سازي وجود نداشتند و اكنون در UML ظهور كرده اند.
• نمودارهاي حالت اساسا مبتني بر جداول حالت David Harel مي باشند. نمندار فعاليت كه مفاهيم مشابهي را بيان مي دارد ، مشابه نمودئار جريان كار است كه توسط بسياري از منابع پيش از OO ايجاد گرديدند. شركت Jim Odell , Oracle سبب ساز ورود نمودارهاي فعاليت به UML بودند.
• نمودارهاي توالي در بسياري از روش هاي OO تحت نام هاي متفاوت (نظير : تعامل ، ردگيري پيام و ردگيري واقعه ) و نيز روزهاي قبل از OO يافت مي شدند. نمودارهاي همكاري از Booch ( با نام Object Diagram) و Fusion ( با نام Object Interaction Graph) ، و تعدادي منابع ديگر پذيرفته شدند.
• نمودارهاي پياده سازي (‌شامل نموداراهاي اجزاء و استقرار ) از نمودارهاي ماژول و فرآيند در Booch مشتق شدند، اما هم اكنون اين نمودارها به جاي آنكه ماژول گرا باشند ، اجزاء گرا هستند و خيلي بهتر به هم متصل مي شوند

• كليشه ها يكي از مكانيزم هاي توسعه هستند و مفاهيم فرامدل را بسط مي دهند. آيكون هاي تعريف شده كاربر با كليشه هاي موجود متناظر مي شوند تا UML را براي فرآيندهاي مشخصي خياطي كنند.
• زبان محدوديت شي (OCL) به وسيله UML استفاده مي گردد تا مفاهيم را مشخص سازد و به عنوان زباني براي بيان مدل سازي جاري به كار گرفته شود. OCL يك زبان بياني است كه در روش Syntropy ريشه دارد و به وسيله زبان هاي بياني ، در روش هاي ديگر نظير Catalysis مورد تاكيد واقع مي شود.
• هر يك از اين مفاهيم ، پيش فر ض ها و اثرات بسيار زياد ديگري هم دارند. OMG اعتراف مي كند كه هر فهرست خلاصه اي از اين اثرات ، ناقص است . UML محصولي از يك تاريخ عظيم انديشه ها در علم كامپيوتر و ناحيه مهندسي نرم افزار است.
UML ، گذشته ، حال و آينده

UML به وسيله شركت نرم افزاري (Ration So ftware ) و شركايش ايجاد شد . UML جانيشين هاي زبان هاي مدل سازي اي است كه در ،‌ Booch Reumbugh // OOSE Jacoboson و روش هاي ديگر يافت مي شوند. بسياري از شركت ها در حال جاي دادن UML در خود به عنوان يك استاندارد در فرآيند توسعه و محصلوات شان هستند ، كه نظام هايي نظير : مدل سازي كار ؤ مديريت نيازمندي ها ؤ تحليل و طراحي ؤ برنامه نويسي و تست را مي پوشاند.
UML0.8-0.91

زمينه UML
زبان هاي مدل سازي شي گرا از اواسط دهه ۱۹۷۰ آغاز به ظهور كردند و از اواخر دهه ۱۹۸۰ ، متدولوژيست هاي زيادي ، رويكردهاي متفاوتي را براي تحليل و طراحي شي گرا بيان كردند. تكنيك هاي متعدد ديگري نيز بر اين زبان ها اثر گذاشتند ، نظير : مدل ساز ي ارتباط موجوديت ، زبان SDL و ديگر تكنيك ها .
تعداد زبان هاي مدل سازي تعريف شده در دوره زماني بين ۱۹۸۹ تا ۱۹۹۴ ، از ۱۰ عدد به بيش از ۵۰ عدد رشد كرد. بسياري از كا ربران روش هاي OO در يافتن يك زبان مدل سازي كه رضايت كامل آنها را جلب كند ، با مشكل مواجه بودند و از طرفي در حال سوخت رساني به جنگ روش ها بودند. از اواسط دهه ۱۹۹۰ ، تكرار جديدي از اين روش ها آغاز به ظهور كرد، نظير Booch 93 ، تكامل مستمر OMT/Rumbugh و Fusion . اين روش ها آغاز به داخل كردن تكنيك هاي ديگران به روش هاي خودشان كردند و روش هايي نظير Booch93 , OMT-2.OOSE/Jacobson ايجاد گرديد . هر يك از اين روش ها نيز به نوبه خود يك روش كامل بود.

Jacobson, Rumbaugh ,Booch نيروهايشان را به هم پيوستند توسعه UML در اكتبر ۱۹۹۴ زماني كه Jim Rumbaugh,Grady Booch از شركت Rational Software Corporation كارشان را براي يكي كردن روش هاي Booch و OMT آغاز كردند ، شروع گرديد . در اكتبر ۱۹۹۵ نسخه ۸ ، از Unified Method (كه همين طور نام گذاري شده بود ) بيرون آمد . در پائيز ۱۹۹۵ ، Ivar Jacoboson و شركت Objectory اش به Rational پيوستند. و روش OOSE را نيز در آن ادغام كردند. هم اكنون از نام Objectory براي توصيف فرآيند UML استفاده مي شود.
تلاش هاي Jacobson.Rumbaugh,Booch در اصلاح و انتشار اسناد ۰٫۹-۰٫۹۱ در ژوئن و اكتبر ۱۹۹۶ به نتيجه رسيد. در سال ۱۹۹۶ ، نويسندگان UML از جامعه دعوت كردند و بازخورهايي را نيز دريافت كردند. اگر چه آنها اين بازخورها را يكپارچه كردند ، اما توجه متمركز بيشتري هنوز مورد نياز بود.
UML 1.0-1.1 و شركاي UML

در سال ۱۹۹۶ مشخص شد كه سازمان هاي متعدد ، UML را از ديد استراتژيك مي بينند. درخواست پيشنهادي كه از سوي OMG منتشر شد ، كاتاليزوري را فراهم كرد تا اين سازمان ها براي توليد يك پيشنهاد به درخواست فوق بپيوندند. Rational ، كنسرسيوم شركاي UML را با سازمان هاي چندي ايجاد كرد تا منابع شارن را براي كار كردن بر روي تعريف UML 1.0 متمركز كنند.
بيشترين مشاركت كنندگان در تعريف UML1.0 عبارت بودند از :
ICON,IBM , IntelliCrop > I-Logix, HP, Digital Equipment Corp.
Tl, Rational Software, Oracle, Microsoft, MCI Systembouse, Computing Unisys. اين همكاري ، UML 1.0 را توليد كرد كه يك زبان مدل سازي با تعريف ، بيان قدرت و كاربرد عمومي خوبي بود. اين كار در ژنوايه ۱۹۹۷ به عنوان عكس العمل اوليه به درخواست فوق به وسيله OMG پذيرفته شد.
در ژانويه ۱۹۹۷ ، شركت هاي ‍‍‍Ptech, platinum Technology و Taskon & IBM & ObjecTime SofteamوReich Technologies نيز يك پيشنهاد مجزا را به OMG ارائه كردند . اين شركت ها به شركاي UML پيوستند تا افكارشان را سهيم كنند و با يكديگر UML 1.1 را ايجاد نمايند. تمركز به UML 1.1 بهبود وضوح و روشني مفاهيم UML 1.0 و نيز شركت دادن شركاي جديد در اين همكاري بود. اين نسخه نيز توسط OMG به تصويب رسيد.