750 likes | 1.3k Views
UML. “ U nified M odeling L anguge“. اهداف ارائه. مفهوم مدل سازی و فوائد آن آشنایی با uml و تاریخچه آن فازهای uml نمودارهای uml و به طور کلی ، فهمیدن گامهای اولیه برای تولید یک سیستم نرم افزاری
E N D
UML “Unified Modeling Languge“
اهداف ارائه • مفهوم مدل سازیو فوائد آن • آشنایی با uml و تاریخچه آن • فازهای uml • نمودارهای uml • و به طور کلی ، • فهمیدن گامهای اولیه برای تولید یک سیستم نرم افزاری • وتوانایی ایجاد و تحلیل نمودارهای مهم uml از جمله دیاگرام های class، sequence، use case،state، interaction، ...
مدلسازی (Modelling) چيست؟ مدلسازی به طور كلی يعنی شبيهسازی يك محيط با اندازههای متفاوت از محيط واقعی و احتمالا مواد و مصالحی متمايز از جنس مواد و مصالح محيط مدل شده مدل سازی فرایند نرم افزار یک نمایش ساده از فرایند نرم افزار است که از یک دیدگاه بخوصوص ارائه می شود.مثلا از دیدگاه نقش – فعالیت (اینکه چه کسی چه کاری را انجام دهد) در نرمافزار، روشهای توليد نرمافزار مانند,RUPدر واقع روشهای مدلسازی میباشند. هر روش مدلسازی طبيعتا نيازمند مصالحی برای ساخت مدل میباشد كه در روشهای مدلسازی نرمافزاری مصالح لازم برای توليد مدل، زبانهای مدلسازی میباشند.
فوائد مدل • سیستمى را كه در حال ساختن آن مىباشیم بهتر درك كنیم • ساختار و رفتار سیستم را مشخص كنیم • معمارى سیستم خود را كنترل كنیم • مدلها تصمیماتى را كه در جهت كاربردى سیستم باید گرفته شوند مستند مىكنند • كاربران تصویرى ازمحصول نهایى را مشاهده كنند • ریسكهاى پروژه را مدیریت كنیم • امكانReuseرا در سیستم داشته باشیم
UML چيست؟ Uml زبانیشي گرا برای مشخص سازی، ساخت و مستند سازی یک سیستم نرم افزاری است Uml یک زبان مدل سازی استاندارد است نه یک فرایند استاندارد Uml برای ایجاد نمودارها هیچ توصیه ای ارائه نمی دهد. بلکه تجربیات و یادگیری افراد است که تشخیص استفاده از کدام نمودارها را به استفاده کنندگان می دهد Uml دارای ساختار کامل ودقیقی است اما به گونه ای طراحی گردیده است تا کاربران بتوانند براساس نیاز های خود بخش هایی به آن اضافه کنند
تاریخچه UML Unified Modelling Languageيك زبان مدلسازی است كه درسال 1995 به وسيله شركتRational معرفی شد. پس از ارائه مفاهيم شیگرائی در ابتدای دهه 80 ميلادی به تدريج روشهای شیگرائی توليد نرمافزار ارائه گرديد.از مهمترين اين روشها میتوان به OMT,BOOCH,OOSE…. اشاره كرد. با هدف ارائه يك زبان استاندارد فراگير شركت Rational با گردآوری سه نفر از ارائهكنندگان معتبرترين روشهای شیگرا يعنی Irar jacobson مبدع روش OOSE,BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوقالذكر، يك زبان استاندارد به نامUML ارائه كرد. پس از ارائه، اين زباناز سوی (Object Mamgement Group)، به عنوان يك استاندارد جهانیپذيرفته شد و در حال حاضر به عنوان قدرتمندترين زبان مدلسازی در دنيای نرمافزار مطرح است.
فازهای UML گرچه uml مستقل از فرایند است ولی ایجاد کنندگان آن فرایندی را طراحی کرده اند که به طور کامل از uml پشتیبانی می کند. عموما هر فرایندی شامل فازهای زیر است : • آنالیز نیازها(Requirement Analysis) • آنالیز (Analysis) • طراحی (Design) • پیاده سازی (Implementation) • تست (Test)
آنالیز نیازها(Requirement Analysis) در uml، use caseها هستند که نیازمندی های مشتری را توصیف می کنند. Actor ها و use caseها با ارتباطات مدل می شوند. هرuse case به صورت متنی نیازمندی های مشتری را توضیح می دهد. چه چیزهایی مشتری از سیستم توقع دارد بدون اینکه کوچکترین اطلاعی در مورد پیاده سازی برنامه داشته باشد.
آنالیز (Analysis) در این فاز کلاسها و اشیاء اولیه که در دامنه مسئله حضور دارند تهیه می شوند. همکاری کلاسها برای اجرای use caseها توضیح داده می شود. در آنالیز فقط کلاس هایی که در دامنه مسئله (مفاهیم دنیای واقعی) قرار دارند به کلاسهایی تکنیکی که در سیستمهای نرم افزاری مثل پایگاه داده و...تعریف می شوند مدل میشوند.
طراحی (Design) در فاز طراحی، نتیجه آنالیز به راه حل تکنیکی ختم می شود. کلاسهای جدید به مدل اضافه می شوند. نتیجه طراحی در فاز ساختاری این است که وارد جزئیات می شود و مدلها را آماده برای پیاده سازی می کند.
(Implementation) پیاده سازی در این فاز کلاس هایی که در مرحله طراحی تهیه شده بودند به کدهای واقعی به زبانهای برنامه نویسی OO تبدیل می شوند. فاز آنالیز و طراحی بهتر است از لحاظ ذهنی به کد توجه نشود.
(Test) تست پس ازاتمام فازهای مذکوربرنامه را تست می کنیم عیوب آن را مشخص می کنیم و به عقب بر می گردیم. این فاز دو یا چند بار تکرار می شود تا برنامه به کمال مطلوب برسد.
دياگرام های UML UML يک ابزار ويژوال بوده و از انواع متفاوتی دياگرام استفاده می نمايد . هر يک از دياگرام های UML ، امکان مشاهده يک سيستم نرم افزاری را از ديدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختيار پياده کنندگان قرار می دهد.دياگرام های UML عبارتند از : • نمودارهاي ساختاري این نوع نمودارها به منظور مدل سازی جنبه های ثابت و ساختاری سیستم به کار می روند. • نمودارهاي رفتاري این نوع نمودارها به منظور مدل سازی جنبه های پویا و رفتاری سیستم به کار می روند.
نمودارهاي ساختاري • Class Diagram • Object Diagram • Component Diagram • Deployment Diagram
نمودار كلاس(Class Diagram) در روش object-oriented مركزيت با نمودار كلاس است. نمودار كلاس انواع اشياء درون سيستم و انواع مختلف ارتباطات ساختاري آنها را نمايش مي دهد. عناصر يك نمودار كلاس عبارتند از: -كلاس ها -روابط بين كلاس ها كلاس خود شامل بخش هاي زير است: -صفات (Attributes) -اعمال (Operations)
براي بيان صفات يك كلاس در UML قاعدهي زير بكار مي رود: Visibility name [multiplicity]:type=initial-value • ديد(Visibility) : ديد عمومي + ديد محافظت شده # ديد خصوصي - • نوع(type) : Boolean Long Integer String Date انواع ديگري از نوع وجود دارد كه تعاريف، قواعد و دستورالعمل بكارگيري آنها در OCL موجود است. • مقدار اوليه در صفات(initial-value)
براي بيان اعمال يك كلاس طبق UML قاعده زير بكار مي رود: Visibility name (param-list) : return-list • ديد • فهرست پارامترها: Direction name :type=default-value - جهت: مشخص كننده ورودي و خروجي بودن پارامتر است. In Out Inout - مقدار پيش فرض • نوع برگشتي در اعمال
روابط بين كلاسها • رابطهي انجمني (Association) -رابطهي تجمع (Aggregation) -رابطهي تركيب (Composition) • رابطهي وابستگي(Dependency) • رابطهي تعميم (Generalization)
رابطهي انجمني رابطهي Aggregation: -يك حالت خاص از رابطهي انجمني است. -زماني كه بخواهيم نشان دهيم كه اجتماع چند شيء يك شيء كلان تر بوجود مي آورد از اين نوع رابطه استفاده مي كنيم. -در صورت از بين رفتن كلاس، كلاس هاي جزء از بين نمي روند. -ارتباط كلاس هاي ديگر با كلاس جزء مي تواند بدون ارتباط و دخالت كلاس كل برقرار شود. رابطهي Composition: -علاوه بر مفهوم كلي رابطه تجمع كه از اجتماع چند شيء يك شيء كلي تر تشكيل مي شود، بيانگر آن است كه با از بين رفتن شيء كلي تر كليه اشياء جزئي اش نيز از بين مي رود. -هر كلاس كه بخواهد با كلاس هاي جزء از يك كلاس كل ارتباط برقرار كند، بدون واسطه و دخالت كلاس كل اين امر امكان پذير نيست.
رابطهي وابستگي بيان كننده نوعي وابستگي بين دو كلاس است.
رابطهي تعميم براي خلاصه سازي در بيان صفات و اعمال استفاده مي شود. داراي خواص توارث و جايگزيني است. توارث: كلاسهاي تخصيص همه صفات،اعمال و ارتباطات كلاس تعميم را به ارث مي برند و مي توانند داراي صفات،اعمال و ارتباطات خاص خود باشند. جايگزيني: هر كلاس يا شيء تخصيص مي تواند در هر جا كه كلاس يا شيء تعميم وجود دارد، بجاي آن بنشيند.
(Object Diagram)نمودار شيء وضعيت اشياء درون سيستم را در نقطه اي از زمان نشان مي دهد. كاملا مشابه يك نمودار كلاس است كه بجاي كلاس و ارتباطات به ترتيب نمونه كلاس(شيء) و نمونه ارتباط رسم مي شود. براي كنترل صحت نمودارهاي كلاس مي توان وضعيت خاصي را از نحوهي ارتباطات اشياء بوسيلهي نمودارش ايجاد كرد تا ببينيم كه آيا در نمودار كلاس نيز چنين ارتباطي داريم يا نه! در حالتي كه نام شيء مهم نباشد و فقط مي خواهيم يك شيء از كلاس خاصي را بيان كنيم، مي توان تنها نام كلاس را ذكر كرد.
(Component Diagram)نمودار قطعات در انتهاي گام پياده سازي سيستم، لازم است تا مدل معماري سيستم نيز ارائه گردد. مدل سازي وضعيت نرم افزاري سيستم قطعه: بخشي نرم افزاري، فيزيكي و قابل جايگزين است كه مجموعه اي از يك يا چند واسط را پياده سازي مي كند. هر قطعه داراي نامي است كه آنرا از ساير قطعات متمايز مي كند. هر قطعه واسط هاي خاصي را پياده سازي مي كند . قطعه خود مي تواند داراي نمونه باشد. واسطها هميشه يك رفتار را بيان مي كنند و مي توانند به شكل هاي مختلف پيادهسازي شوند. قطعات مي توانند همانند هر عنصر ديگرuml در بسته ها قرار گيرند و از پيچيدگي سيستم بكاهند. روابط در قطعات: تعميم، انجمني، وابستگي واسطها مجموعه اي از اعمال هستند كه خدمتي از يك كلاس يا قطعه را مشخص مي كنند. دو قطعه بدون استثناءبه وسيله يك واسط به هم مرتبط مي شوند.
(Deployment Diagram)نمودار استقرار • هر يك از قطعات نرم افزاري كه كل سيستم را مي سازند، چگونه روي سخت افزار ها توزيع مي شوند. • گره: عنصري سخت افزاري و فيزيكي است كه در زمان اجرا وجود دارد. پروسسورها،دستگاه هاي جانبي و سخت افزارهايي نظير چاپگر،نوار مغناطيسي... • يك گره مي تواند همانند كلاس داراي صفات و متد باشد.
نمودار های رفتاری اين گونه نمودار ها با استفاده از اجزای خود بر هم کنش اشياء درون سيستم را نشان ميدهند و رفتار سيستم را توصيف می كنند • نمودار مورد کاربرد (use case diagram) • نمودار تعامل (intraction diagram) - نمودار ترتيب (sequence diagram) - نمودار همکاری (collaboration diagram) • نمودار حالت (State diagram) • نمودار فعاليت (activity diagram)
نمودار مورد کاربرد (Use Case Diagram) اين نمودار عملکرد سيستم را نشان می دهد و اين که چه کسانی با چه سيستم هايی از سيستم مورد نظر در ارتباط هستند. ارتباط آن ها با سيستم چگونه است و چه انتظارتی از سيستم دارند.در اين نمودار هدف تعيين نياز ها است نه تعيين چگونگی بر آورده شدن آن ها. نمودارuse caseشامل 3 بخش است: • مورد کاربرد (use case) • کنشگر (actor) • خط ارتباطی(association)
مورد کاربرد (use case) در use case يکی از نيازمندی های سيستم درج می شود. مجموعه اي از عمليات متوالی که سيستم جهت در اختيار قرار دادن يک نتيجه ملموس و مورد نظر کنشگر انجام می دهد. در واقع مورد کاربرد نشان دهنده رفتاری از سيستم يا زير سيستم است. نحوه نمايش
کنشگر (actor) نقشی که کاربر در ارتباط با سيستم ايفا ميکند، کنشگر ناميده می شود کنشگر آغاز کننده فعاليتی در سيستم است. در اينجا توجه به نقش کاربر است و نه شخص کاربر کليه کاربران از جمله ساير سيستم ها actor سيستم محسوب ميشوند نحوه نمايش
مثال Incorrect Correct
مثال Incorrect Correct
Subscription Subsystem Order Subsystem Maintain Member Submit Change of Submit New Potential Member Order Address Subscription initiates initiates Club Member initiates Place New Submit initiates Member Order Resubscription initiates initiates Submit Past Make Purchase Submit New Past Member Member Inquiry Member Resubscription Subscription Program Program initiates Operations Subsystem Promotion Subsystem initiates initiates Make Account Generate Quarterly Inquiry Membership Time Marketing Analysis initiates Generate Annual Generate Quarterly Submit New initiates initiates Sales Analysis initiates Promotion Analysis Promotion initiates initiates Generate Quarterly Generate Annual Sales Analysis Membership Analysis
نمودار تعامل (intraction diagram) چگونگی تعامل و همکاری مجموعه اي از اشياء را از نظر رفتاری توصيف ميکند. رفتاری که مدل می شود ميتواند رفتار اشياء يک مورد کاربر باشد يا ارتباط پيامیبين يک شی از يک کلاس با اشياء کلاس ديگر سيستم باشد نمودار تعامل(intraction diagram) بر 2 قسم است: • نمودار ترتيب (sequence diagram) • نمودار همکاری (collaboration diagram)
نمودار ترتيب (sequence diagram) نمودار ترتيب (sequence diagram)رفتار سيستم را مدل ميکند. تاکيد در اين نمودار بر زمان و ترتيب ارسال پيام ها است. مجموعه اي از اشياء با ارسال پيام با هم ارتباط برقرار ميکنند.
The light blue vertical rectangles the objects activation the green vertical dashed lines represent the life of the object. The represents when the object is destroyed.
نمودار همکاری (collaboration diagram) نمودار همکاری (collaboration diagram)، نمودار تعاملي استکه بر رابطه اشياء ارسال کننده و دريافت کننده پيام تاکيد دارد. همان اطلاعات نمودار را در قالبی ديگر نمايش می دهد
نمودار حالت (State diagram) نمودار حالت، نموداری برای مدل سازی رفتاری سيستم است. رفتار را می توان به صورت واکنش در مقابل رويداد مشخص کرد هر رويداد موثر موجب تغيير حالت شی از حالت کنونی به حالت ديگر می شود نمودار حالت در واقع يک گراف است که گره های آن را حالت مختلف شی مشخص می کنند رويداد ها موجب گذر از يک حالت به حالت ديگر می شود.
Order Backordered Not all product available Product received Order pending awaiting payment or additional member information In Process Pending Member Order initial state Order submitted Response received from member Order released to the warehouse Order Released Order Filled Order filled by the warehouse Order shipped to club member Order rejected based on Member's past history Order Shipped Order Invoiced Invoice sent to member for payment Final payment received Order Closed Member Order final state Member order archived after 90 days Member Order final state
نمودار فعاليت (activity diagram) فعاليت عملی است که به وسيله انسان يا کامپيوتر انجام ميشود و در ديدگاه پياده سازی، متد است. نمودار فعاليت يک فلوچارت است که برای نمايش جريان کنترل از يک فعاليت به فعاليت ديگر به کار می رود. از بسياری جهات شبيه state diagram است. نمودار فعاليت برای نمايش جريان کار و نمايش رفتاری که پردازش های موازی دارند مناسب است. در اين نمودار صرف نظر از اينکه فاعل رفتار چه کسی است،ميتوان رفتار را به خوبی با تقدم و تاخّر و بيان شرط های لازم نمايش داد.