نمایش نتایج 1 تا 15 از 15

نام تاپیک: دیاگرامهای UML و ارتباط بین آنها

  1. #1
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    دیاگرامهای UML و ارتباط بین آنها

    مقاله ساده ولی کاربردی گیر اوردم که گفتم حتما به درد شما هم می خوره. به همین جهت ترجمه اونو براتون در این تاپیک قرار می دم. امیدوارم براتون سودمند باشه و کاربردی.
    این مقاله توسط João Oliveira نوشته شده. و اگر در Google هم جستجو کنید تحت عنوان
    UML DIAGRAMS AND RELATIONS BETWEEN THEM
    Pdf اونو می تونید پیدا کنید.

    توضیح: هر آنچه در این مقاله خواهید خواند عینا نظرات نویسنده است . و هر انچه مربوط به من باشه اون رو مشخص خواهم کرد و خوشحال می شم که در موردشون بتونیم بحث و تبادل نظر کنیم.

    و حالا مقاله:
    1. دیاگرامهای Use case:
    دیاگرام use case چیست؟
    دیاگرامهای use case با استفده از Use case و Actor عملکرد (Functionality) سیستم رامدلسازی می کنند.

    Use case چیست؟
    Use Case ها که در فاز آنالیز پروژه برای شناساسیی و تقسیم بندی فعالیت های سیستم استفاده می شوند و می تونند به عنوان سرویس ها یا کارکردهایی که سیستم برای کاربران خودش فراهم می کنه نیز توصیف بشوند.
    دو دیدگاه وجود دارد: یکی داخلی , دید ساختاری و دیگری خارجی و دید وظیفه گرایی(task Oriented)
    در دیدگاه اول ما باید کلاسها و متدها را تعریف کنیم و سپس واسطهای کاربری (user interface)را تعریف کنیم. مشکل اینجاست که برای کاربر مهمترین چیز رفتار سیستم است ولی واسطهای کاربری تنها قسمت آخر فرآیند را تعریف می کنند. و این مارو به سمت مشکلاتی می بره نظیر اینکه سیستم تمام کارکردهایی که ما می خواهیم در اختیارمون قرار نمی ده و یا کارکردهایی رو داره که مورد نیاز ما نبوده.
    در دید دوم ،سیستم از Actor ها و فعالیتها و کلاسهایی که به فعالیتها وصل شده اند پشتیبانی می کند.در این دیدگاه هیچ کار ناخواسته ای وجود ندارد و سیستم تمام فعالیتهای کاربر را پشتیبانی می کند که همه آنها در Use case Diagram نمایش داده می شود.

    Actor چیست؟
    Actor ها نقشهایی را ارائه می دهند که توسط کاربران سیستمهای اطلاعاتی(Information System=IS) انجام می شه. این Actor ها می تونند انسانها ,کامپیوترها , سخت افزارها و حتی نرم افزار ها باشند.تنها چیزی که اونها را Actor می کنه اینه که آنها باید بیرون قسمتی باشند که توسط سیستم به use case ها تقسیم شده است ویکسری ورودی برای سیستمهای اطلاعاتی فراهم می کنند و یکسری از آنها خروجی می گیرند.


    ارتباطات بین use case ها چگونه است؟
    ارتباط بین use case ها یا به صورت Extends است و یا به صورت Uses. Uses دلالت بر این دارد که یک use case برای انجام وظیفه و فعالیتش نیازمند use case دیگری است.Extends دلالت بر این دارد که use case ی یک امکان و گزینه اختیاری برای use case دیگر است که در بعضی شرایط از آن استفاده می کند.

    در باره سیستمهای اطلاعاتی
    یک سیستم اطلاعاتی ، مثل اغلب چیزها ، محدودیتهایی دارد.ما تمام use case ها و ارتباطاتشان را با یکدیگر در سیستم قرار می دهیم و با محدوده ای (Boundary) مشخص می کنیم و Actor ها در بیرون این مجموعه می گذاریم. بنابراین سیستم محدوده ها ومرزهای IS را مشخص و برقرار می کند.

    چه زمان باید از use case ها استفاده کرد؟
    Use Case ها باید برای متصور ساختن نیازمندیها ، برای برنامه ریزی و کنترل یک پروژه تکرار پذیر (Iterative Project) استفاده شود. و خیلی می تونه براتون مفید باشه وقتی که دارین پیش نویس و طرحی از نیازمندی ها رو آماده می کنید , ارتباطات بین کاربران و سیستم می تونه خیلی کمکتون کنه که بدونید چه چیزهایی رو فراموش کردید.
    Use case ها نمی تونند بهتون داخل یک فرآیند و پروسس رو نشون بدن(خودم- فقط اعلام می کنند که چنین فرآیند و فعالیتی وجود دارد) و برای دیدن داخل یک فعالیت و فرآیند بهتر از Activity Diagram و یا Iteration diagram ها استفاده کنید.

    چه زمان باید از Uses و Extends استفاده کرد؟
    Uses را زمانی استفاده کنید که استفاده از Use case دوم اجباری است
    Extends رو زمانی استفاده کنید که استفاده از use case دوم اختیاری است
    (خودم- یک Actor می تواند یک Use case که extend شده را مستقیما استفاده کند , اما نمی تواند ارتباط مستقیم با یک Use case ی داشته باشد که جایی Use شده.)


    دیاگرام:




    قسمت بعدی Class Diagram
    عکس های ضمیمه عکس های ضمیمه  
    آخرین ویرایش به وسیله Elham_gh : دوشنبه 22 مهر 1387 در 12:49 عصر

  2. #2
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    2. دیاگرامهای Class:
    Class Diagram چیست؟
    این دیاگرام استخوانبندی و پایه و اساس تقریبا تمام روشهای Object Orient مبتنی بر UML است.آنها انواع Object های سیستم را تعریف و توصیف می کنند و انواع ارتباطاط استاتیکی بین آنهاست را نمایش می دهند. در برنامه های مبتنی بر Object Oriented هر Class ها دارای یکسری Attribute ، Operation هستند و با سایر کلاسها در ارتباطند

    چگونه کلاسها عینیت خارجی پیدا می کنند؟
    می توانید از علامتهای Visibility استفاده کنید که تعیین می کند که چگونه می توانند به اطلاعات داخل ملاس دسترسی داشته باشند. (اصطلاحا می گویند Visibility را تعیین می کنند) اگر Visibility را Private تعیین کنید، اطلاعات از هر چیزی خارج از کلاس مخفی می ماند. اگر Visibility را Public در نظر بگیرید ، این اجازه را داده اید که همه به اطلاعت دسترسی داشته باشند و اگر Visibility را Protected فرض کنید تنها خود کلاس و کلاسهای فرزندش امکان دسترسی به اطلاعات را دارند.

    ارتباط با سایر کلاسها چگونه است؟
    Association ها:
    Association ها ارتباطات استاتیک بین کلاسها را بر قرار می کنند. هر Association دو نقش دارد (Role). که هر نقش می گوید که هر کلاس در این Association چی کار می کند.(یعنی هر کلاس شرکت کننده در Association یک نقش دارد). همچنین هر نقش هم یک کثرت(Multiplicity یا cardinality) دارد.
    Multiplicity :
    یک عدد یا علامت است. این علائم نشون می دهند که چند نمونه از یک کلاس به یک نمونه از کلاس دیگر طرف Association مرتبط می شوند. مثلا یک شرکت می تواند یک یا چند کارمند داشته باشد(1..*) اما هر کارمند فقط برای یک کمپانی کار می کند(1)
    محدودیتها(Constraints):
    محدودیتها داخل کروشه نمایش داده می شوند و روی ارتباطات تعریف می شوند ت محدودیتهای ارتباطی را بیان کنند. البته نمی توان گاهی تمام محدودیتها را روی ارتباط نشان داد، در اینصورت فقط محدودیتهای مهم را نمایش می دهند.
    سلسله مراتبی(Generalization):
    سلسله مراتب نام دیگریست برای وراثت و ارتباط بین 2 کلاس اشاره می کند که یک کلاس حالت خاص شده ای از کلاس دیگر است.از دید پیاده سازی می توان گفت که اون کلاس خاص شده subclass یا زیر کلاس از کلاس عمومی تر است و خصوصیات و عملکردهای آن کلاس را به ارث می برد با این امکان که می تواند بعضی از آنها را مجددا باز سازی کند انجور که خودش لازم دارد.
    ترکیب و تجمیع(Composition & Aggregation):
    تجمیع یا aggregation نوعی ارتباط بین دو کلاس است که بیان می کند یک کلاس جزئی از کلاس دیگر است. مشکل شباهتهای بین aggregation و composition است.ترکیب یا composition حالت خاصی از aggregation است که مشخص میکند یک مالکیت قوی بین کلاس اول (کلاس کل) و کلاس دیگر(کلاس جزء) است. به زبان ساده تر در composition شما می توانید بعضی از خصوصیات sub-class را تغییر دهید ولی نمی توانید آنچه از Super-class میاد تغییر دهید.Composition یک ارتباط بسیار قوی تری نسبت به aggregation تعرف می کند.



    چه موقع باید از Class Diagram استفاده کنیم؟
    این دیاگرام را اغلب اوقات میشه استفاده کرد. این دیاگرامها بسیار مفید هستند ، وقتی که کلاسهای سیستم را بررسی و طراحی می کنید و ارتباطات بین آنها را بدست می آورید.


    دیاگرام:



    قسمت بعدی دیاگرامهای Iteration
    عکس های ضمیمه عکس های ضمیمه  

  3. #3

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    سلام مرس از درس

  4. #4

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    خیلی عالی بود. شما که کارت درسته اگه در مورد sequence digram, collaboration diagram, activity diagram, state diagram هم مطلب داشته باشی فکر کنم به یک مقاله کامل و بی‌نظیر تبدیل میشه. بازم از زحمتی که کشیدی تشکر می‌کنم.

  5. #5
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    نقل قول نوشته شده توسط behzadnet مشاهده تاپیک
    خیلی عالی بود. شما که کارت درسته اگه در مورد sequence digram, collaboration diagram, activity diagram, state diagram هم مطلب داشته باشی فکر کنم به یک مقاله کامل و بی‌نظیر تبدیل میشه. بازم از زحمتی که کشیدی تشکر می‌کنم.
    از دوستان عزيزم تشكر مي كنم.
    راستش اون زمان ديدمكسي پيگير اين مقاله نيست رهاش كردم.
    اما چشم، ادامش رو هم مي ذارم

  6. #6
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    3. دیاگرامهای Iteration:
    درباره دیاگرامهای Iteration
    دياگرامهاي Iteration نشان مي دهند چگونه object ها در بعضي رفتارها(Behavior) با هم مشاركت دارند.اين نمودارها Objectها و پيغامهاي ردو بدل شده را در يك use case مشخص نشان مي دهند. دو نوع نمودار Iteration وجود دارد:
    نمودار Sequence
    نمودار Collaboration

    Object naming schema:
    يكياز جزئئياتي كه بايد بهش اشاره بشه Object naming schema است كه در داخل Class role ها از آن استفاده مي شود. و به فرم object name: Class name است كه هم اسم object و هم اسم كلاس را مي توان حذف كرد اما هميشه : را باقي مي گذاريم كه معلوم شود كه اين فيلد به چي چيزي شاره مي كند.


    3.1. دیاگرامهای Sequence:
    در باره دیاگرامهای Sequence
    نمودارهاي Sequence ، عكس العملهاي متقابل كلاسها را توصيف مي كنه، به اصطلاح ردو بدل پيغامهاي يك lifeline.

    پیغامها
    پيغامها فلشهايي هستند كه ارتباطات بين object ها در زمان حيات object را نشان مي دهند.
    اين زمان حيات خطي عمودي است كه lifeline(خط عمر) ناميده مي شود كه مدت حيات يك object را در مدت iteration يا عكس العملها نشان مي دهد. پيغامهاي خاص نيز وجود دارند مثل پيغام self delegation كه object پيغامي رو به خودش در همان lifeline ارسال مي كند.
    ما مي توانيم به پيغامها بيتهاي كنترلي هم اضافه كنيم. 2 بيت كنترلي وجود دارد:
    شرط(condition) :يك گزاره منطقي استكه تعيين مي كند كي پيغام فرستاده شود(فقط زماني كه شرط درست باشد)

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

    فرآیند های همزمان
    از نمودار Sequence براي نمايش دادن فرآيندهاي همزمان نيز استفاده مي شود.در اين نوع نمودارها ، ما مي تونيم Activationها ، پيغامهاي غير همزمان (asynchronous) و حذفيات(deletions) به عنوان add-ones ببينيم.
    Activationها: بلكهايي از زمان هستند كه تععين مي كنند كه چه زماني يك فرايند مشخص فعال مي شود.
    پيغام غير همزمان:از object ي فرستاده مي شود كه قبل ادامه كارش منتظر پاسخي از گيرنده پيغام نيست (مترجم-يعني پيغام مي فرستد ، بدون اينكه منتظر جوابي بماند به بقيه كارش ادامه مي دهد. معمولا اين گونه پيغامها به 3 منظور استفاده مي شوند:
    • ايجاد thread جديد
    • ساختن object جديد
    • ارتباط با thread ي كه در حال حاضر در حال اجراست.

    حذفيات(deletions): براي نمايش دادن حذف يك object استفاده مي شود. يك object مي تواند خودش ، خودش را نابود كند يا توسط پيغامي از object ديگر نابود شود.
    حلقه ها(loops): تكرار يا حلقه در نمودار Sequence به صورت يك مستطيل نمايش داده مي شود.

    دیاگرام



    3.2. دیاگرامهای Collaboration:
    درباره دیاگرامهای Collaboration
    در نمودار Collaboration ،به جاي يك باكس در بالاي نمودار(مثل نمودار Sequence ) ، هر object با يك آيكن نشون داده مي شود وترتيب پيغامها با شماره مشخص مي شود.
    به خاطر اينكه ديدن و متوجه شدن نمودار Sequence سخت تر است ،نمودار هاي Collaboration تمركزشون روي همكاري Objectهاست، (اينكه چطور با هم ارتباط دارند).


    شماره گذاری سریال و پشت سر هم
    براي نمايش توالي مي توان از شماره گذاري ساده يا اعشاري پيغامها استفاده كرد. با شماره گذاري ساده پيغامها پيگيري توالي راحتتر است. هر چند در UML شماره گذاري اعشاري هم استفاده مي شود ، براي اينكه بتوان فهميدكدام operation ، ديگر Operation هاي جديد را فراخواني مي كند.

    دیاگرام



    مقایسه دایاگرامهای Sequence و Collaboration
    همانطور كه قبلا گفته شد، نمودار Sequence روي توالي تمركز دارد در حاليكه نمودار Collaboration بر اين تمركز دارد كه چطور Object هاي مختلف با هم ارتباط دارند.
    نكته مهم اينه كه چه نمودار Sequence و چه مودار Collaboration يك مشخه اصلي دارند و آن هم سادگي است.(مترجم-بايد ساده و به دور از پيچيدگي پياده سازي شوند)


    چه زمان باید از دیاگرامهای Iteration استفاده کرد؟
    همانطور كه قبلا گفته شد، نمودارهاي iteration براي نمايش رفتار object ها متفاوت داخل يك use case ساده ، استفاده مي شوند. مشخصه اصليشون سادگي است به همين جهت اگر بخواهيد رفتارهاي پيچيده بيشتري به آنها اضافه كنيد وضوح خود را از دست خواهند داد. اين نمودارها براي نمايش همكاري بين object ها مناسبند ، اما به يك طريق.


    قسمت بعدیState diagram
    عکس های ضمیمه عکس های ضمیمه   

  7. #7

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    دوست خوبم به خاطر اطلاعات خوبی که در اختیارمون گذاشتین تشکر می کنم.برکت باشد

  8. #8

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    با سلام و خسته نباشید. دو تا سوال ؟
    ۱- منظورتون از use همون <<include>> هستش ؟
    ۲- چرا یک اکتور نمینوته مستقیم با usecase در رابطه باشه ؟

  9. #9
    کاربر دائمی آواتار Elham_gh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    Tehran
    سن
    48
    پست
    718

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    نقل قول نوشته شده توسط nasha260 مشاهده تاپیک
    با سلام و خسته نباشید. دو تا سوال ؟
    ۱- منظورتون از use همون <<include>> هستش ؟
    ۲- چرا یک اکتور نمینوته مستقیم با usecase در رابطه باشه ؟
    در جواب سوال اول بله
    در جواب سوال دوم، کی گفته نمی تونه؟ اتفاقاً باهم مستقیماً رابطه دارند.

  10. #10
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: دیاگرامهای UML و ارتباط بین آنها


    State diagram
    ق
    سمت بعدی رو هم لطفا آموزش بدید بسیار کاربردی و مفید بود
    باتشکر از پیگیری

  11. #11

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    با سلام.یه سوال داشتم.این دیاگرام ها رو باید برای همه ویندوز فرمهای برنامه کشید؟فرض کنید یه برنامه 15 تا فرم داره،یعنی باید 15 تا دیاگرام activity بکشیم ?

  12. #12
    کاربر تازه وارد آواتار png_92
    تاریخ عضویت
    دی 1391
    محل زندگی
    تهران
    پست
    98

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    سلام
    ممنون از توضیحاتتون استفاده کردم. اگه ممکنه درباره domain model هم توضیحاتی بذارید.
    و اینکه چطور با مشخص کردن concept ها میتونیم دامین مدل رو رسم کنیم؟؟؟
    فرق بین دامین مدل با کلاس دیاگرام چی هست؟
    مرسی

  13. #13
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    از چه ابزاری برای رسم دیاگرامها استفاده میکنید مثلا viso یا خود visual studio

  14. #14
    کاربر تازه وارد آواتار png_92
    تاریخ عضویت
    دی 1391
    محل زندگی
    تهران
    پست
    98

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    مگه فرقی میکنه؟؟!!
    یکی از ابزاری که استفاده کردم staruml ه...

  15. #15

    نقل قول: دیاگرامهای UML و ارتباط بین آنها

    سلام در خصوص دیاگرام خودتون فرمودید که یه اکتور نمیتونه یوس کیسی رو که use شده استفاده کنه ولی در دیاگرام actor 2 داره مستقیما یه چنین use case رو استفاده میکنه!!!

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •