# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > تحلیل و طراحی نرم افزار > سوال: فرق uml با dfd

## SAMANEH_E

سلام 
شاید به نظرتون این سوال من مسخره بیاد. ولی من دارم برای یه پروژه بازی مستندات درست می کنم. استادم گفت با dfdیا umlپیاده کن. منم یه چیز هایی از جفتش می دونستم . در حین کامل کردن اطلا عاتم در این دو مبحث یه سوال برام پیش اومد..جدا از مبحث umlدر باره dfd تا اونجایی که ما کار کردیم بیشتر برای پروژه های وب و برنامه های به گمونم تجاری و .......استفاده میشه(سطح صفر و ....).حالا سوال بنده اینه میشه از dfd برای یه بازی هم استفاده کرد؟هر چی درباره مو جودیت این بازی فکر کردم چیز خاصی پیدا نکردم(tic tac toe)

----------


## Elham_gh

دوست من سئوال شما و گفته استادتون کاملا اشتباه است.
DFD با UML قابل مقایسه نیست.چون DFD یک نوع نمودار است در حالی که UML یک زبان مدلسازی است.شاید بتوان DFD را با یکی از نمودارهای UML مقایسه کرد.
data flow diagram (DFD) , گردش اطلاعات در سیستم را نشان می دهد. که در سطوح مختلف کشیده می شود. در سطوح اولیه نمودارها کلی تر و در سطوح بالاتر نمودارها به جزئیات بیستری می پردازند. به نمودار سطح صفر DFD , می گویندContext Diagram. 
DFD یکی از نموارهای تحلیل و طراحی به روش ساخیافته یا همون SSADM است.
اما اساس UML بر پایه Object Oriented است.
زبانهای جدید برنامه نویسی اکثر بر مبنای Object Oriented هستند پس منطقی است که زبان مدلسازی در تحلیل و طراحی هم Object Oriented باشد یعنی UML.

----------


## abedini_prg

*1. تكامل :*

 زبان مدل های متحد (UML) زبانی  برای معین كردن ، به تصویر كشیدن ، ساختن و مستند كردن محصولات سیستم های  نرم افزاری ، سیستم های تجاری و سایر سیستم های غیر نرم افزاری است. UML  برای نشان دادن یك همكاری عالی مهندسی علمی كه موفقیت آنها در مدل های  سیستم های بزرگ و كامل ثابت شده است می باشد.

* تعاریف  UML  عبارتند از :*


  :  (Semantics) UML  معنای تركیب توصیفات و معنایی UML را تعریف می كند .UML را می توان از  لایه های معماری شده و سازمان داده شده درست شده و میان هر بسته ، عناصر  مدل را در دوره هایی كه از تركیب انتزاعی خودش ( با استفاده از توضیحات  دیاكرام كلاس ) ، نقش فرم های صحیح ( استفاده از متن و توضیح زبان ساختار )  و معناها ( با استفاده از متن های دقیق ) تعریف نمود . و شامل دو ضمیمه :  عناصر استاندارد و فهرست لغات UML می باشد.
 یاداشت های راهنمای UML :  یاداشتها و تهیه مثالهای پشتیبانی را تعریف می كند . یاداشتهای UML تركیب  گرافیكی برای توضیح معنایی توصیفات با UML MetaModel را نشان می دهد.

 گسترش UML در پردازش های شئی گرا برای مهندسی نرم افزار و گسترش UML برای  مدل های تجاری : توسعه UML ، توسعه پردازش ها است و دامنه معین در UML در  تصویر دیاگرام در دوره های كه مكانیسم توسعه و پردازش خاص دارند را شامل می  شود.

 OCL در UML استفاده می شود كه برای تفكیك تعریف مستند قید  شئی زبان معین (Object Constraint Language Specification) به كار می رو  د.

*1.1 معنی برای بینندگان :*

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

*3. هدف UML اولین اهداف در طراحی UML  عبارت بودند از :*


1 ) آماده سازی كاربران خواندن  برای استفاده ، توضیح زبان مدل تصویری چنان كه بتوان آن را گسترش و تغییر  مدل داد .
2 ) میسر ساختن توسعه پذیری و مكانیسمهای تخصصی  در برابر مفاهیم هسته داخلی
3 ) وجود استقلال از زبان های  برنامه نویسی خاص و گسترش پردازش .
4 )آماده سازی یك  قرارداد اساسی برای فهمیدن زبانهای مدل .
5) تفویت رشد از  طرف بازار ابزارهای مدلهای شئی گرا.
6) پشتیبانی سطح بالا  از گسترش مفهوم از قبیل همكاری ها ، چهار چوب ها ، الگوها ، و اجزاء .
7)  یكپارچكی بهترین تمرین است .

 این هدف ها كه در زیر آمده اند  قابل بحث می باشند :
 آماده سازی كاربران خواندن برای استفاده ، توضیح  زبان مدل تصویری چنان كه بتوان آن را گسترش و تغییر مدل داد . این از  مهمترین چیزهایی است كه استاندارد OOAD یك زبان مدل پشتیبانی می كند كه می  توان " خارج از جعبه " در برابر وظایف عادی مدل هایی كه مقصود آنها عمومی  می باشد استفاده كرد .
 اگر استانداردهای انحصاری تهیه كنندگان به  صورت meta-meta-description كه نیاز به تصیحح برای یك مجموعه خاص از  مفهومهای مدل ، كه نمی خواهند به مقاصدی دست یابند كه كاربران اجازه  تغییرات مدل بدون گم شدن اطلاعات یا كارهای بیش از حد به نقشه های مدل  خودشان برای هر فرم جداگانه را تحمیل كنند.
 UML محكم سازی یك  مجموعه از مفهومهای درونی و اصلی مدل را كه عموما در سراسر متد ها و ابزار  های مدل در حال جریان را به عهده دارد. این مفهومها در چندین یا بیشتر  برنامه های كاربردی نیاز است .اگر چه هر مفهومی نیازمند هر فسمت از هر  برنامه كاربردی نیست . ویژگی مفاهیم یك فرمت meta-meta-level برای كاربران  مدل كافی نیست ، زیرا مفاهیم باید از مدل های واقعی رخدادی ، محكم ساخته  شده باشند. اگر مفاهیم در چندین منطقه برنامه كاربردی چندین اساس را دار  بودند سپس این قبیل قدرت كار كردن نزدیك تری دارند ، اما اساس داخلی یك  مفهوم نیازمند بیشترین مناطق استفاده كه شبیه و دلیلی برای پشتیبانی مستقیم  با استاندارد بدون نیاز به لایه های دیگر هستند .

 میسر ساختن  توسعه پذیری و مكانیسمهای تخصصی در برابر مفاهیم هسته داخلی . ما انتظار  داریم كه UML خواهد توانست تصیحح نیاز های جدید را پوشش دهد و دامنه ها را  معین نماید . در بعضی از مواقع ما نمی خواهیم در هسته داخلی مفاهیم عمومی  برای دوباره تعریف كردن یا پیاده سازی هر منطقه اصلاحی نفوذ كنیم. از اینرو  ما كم كم مكانیسمی را كه می بایست از پشتیبانی بواسطه قالب عمومی نسبت به  نیاز های شروع برای پیاده سازی هسته OOA&D مفهومی خودشان انحراف داشته  باشند را توسعه می دهیم .
 هسته های مفهومی برای اینكه موفق باشند  نمی بایست تغییرات داشته باشند . كاربرانی نیاز دارند كه توانایی های همچون  زیر را داشته باشند .

1)ساخت مدلهای قابل استفاده  مفاهیم هسته بدون استفاده از مكانیسم توسعه برای بیشتر كاربرد های عادی
  2) اضافه كردن مفاهیم و یاداشت های جدید برای خارج نشدن پوشش هسته
  3) انتخاب از میان مفاد گوناگون موجود در مفاهیم موجود ، زمانی كه  توافقات جمع از بین نرفته باشد.
 4) مفاهیم ، یاداشت ها و  قیدها ی ویژه برای دامنه های كاربردهای خاص .

 وجود استقلال از زبان های برنامه نویسی خاص و گسترش  پردازش .UML باید و بتواند از همه زبانهای مستدل برنامه نویسی پشتیبانی  نماید .آن همچنین باید و بتواند از متد ها و پردازش های گوناگون مدل های  ساخته شده پشتیبانی نماید . UML بدون هیچ اشكالی می تواند از چندن زبان  برنامه نویسی و متد های در حال گسترش پشتیبانی نماید .

 آماده  سازی یك قرارداد اساسی برای فهمیدن زبانهای مدل .زیرا كاربران می خواهند به  صورت مرسوم از كمك(Help) برای زبانهایی كه نمی دانند استفاده می كنند . آن  می بایست مختصرو مفید و معنای نزدیك را برساند یك كسری از این دو اندازه  ای ضرر دارد كه آن را غیر مفید می سازد . به طور مرسوم نیازی به لایه لایه و  غیر مستقیم بودن ندارد .
 استفاده از ریاضی سطح پایین غیر صمیمی از  دامنه مدل ها ، به طوری كه مجموعه ای از یاداشت های تئوری ، یا تعاریف  موثرآن برای برنامه نویسی یك پیاده سازی یكسان باشد. UML یك معنی عادی را  از یك فرمت ساكن از مدل استفاده شده در MetaModelكه در دیاگرامهای كلاس UML  بیان شده آماده می كند .این قرار داد قابل دسترس پذیرفته شده ، محبوب و  وسیع است كه برای فرمت های خاص از یك مدل و راهنمایی مستقیم برای پیادسازی  فرمت های تغییر یافته می باشد .
 UML اجبارا  تركیبی خوب در زبان های جامع طبیعی به اضافه اشیاء زبان را بیان می كند  .UML معانی قابل استفاده كه بیشتر در نهاد زبان مختصر و مفید است را بیان  می كند. یك قرارداد نزدیكی كامل به زبان های خاص دارد به طوری كه Algol-68  به اندازه كافی به این مقصود نزدیك نبود

 تقویت رشد از طرف بازار  ابزارهای مدلهای شئی گراء . فعالیت فروشندگان برای پشتیبانی از استاندارد  های زبان مدل و استفاده كردن بیشتر كاربران و ابزار ها ، مفید بودن این  صنعت را نشان می دهد . ازمانی كه فروشندگان هنوز می توانند مقادیر را در  ابزار پیاده سازی اضافه كنند فعالیت در آن ضرورت دارد. فعالیت در آن نیاز  مند مدل ها، بدون گم شدن اطلاعات ، كه بتوانند میان كاربران و ابزار مبادله  كنند. این فقط اگر ابزار روی فرمت و معنی با همه مفهوم مطابقت داشته باشند  می تواند رخ دهد . استفاده از یك meta-level سطح بالا راه حلی مناسب نیست  مگر اینكه نگاشت های مفهومی شامل استاندارد های سطح كاربر باشد.

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

 یكپارچكی بهترین تمرین است . یك كلید محرك در میان UML در حال پردازش كه  یكپارچگی دارد بهترین تمرین در صنعت ، شامل تغییرات وسیع مناظر اساسی روی  سطوح مجرد ، دامنه ها ، معماری ، مراحل چرخه حیات ، تكنولوژی پیاده سازی و  غیره است . بدرستی كه UML بهترین یك یكپارچگی برای تمرین است.
*  4 . میدان دید در UML :*


زبان مدل متحد (UML) زبانی  خاص ، ساخت یافته ، متجسم و مستند كه محصولی از سیستم نرم افزاری متمركز می  باشد است .
اولین و بهترین ، زبان متحد مدل از مفاهیم  Boochf, OMT و OOSE تركیب شده است. این نتایج منفرد ، عمومی ،و استفاده ای  وسیع در زبان های مدل برای كاربران خود و سایر متد دارد .

دومین  جلو برنده زبان های متحد مدل پوششی است كه می توانند با متد های موجود  صورت پذیرد..برای مثال ،هدف نویسندگان UML مدلسازی همزمان سیستم های توزیع  شده، برای مجاب كردن آدرسدهی كافی UML در دامنه های خودش است .

سومین  ، متمركز شدن زبان متحد مدل روی استاندارد های زبان مدل و نه روی پردازش  زبان است ، اگرچه UML می بایست در پردازش مفاهیم بكار رود ، این تجربه ای  است كه چندین سازمان و دامنه های مسائل نیاز به پردازش های مختلف دارند . (  برا ی مثال ، گسترش پردازش برای نرم افزار های فشرده كوچك بسیار چالب است  اما ساخت نرم افزار های فشرده كوچك با وسعت مختلف در سیستم های خودكار منوط  به زندگی آن است .)

 از اینرو اولین تلاش برای تمركز روی یك مدل  برتر عمومی ( كه معانی متحد دارند ) و دومی روی یك یاداشت عمومی (كه یك  فرد را برای ترجمه معانی خودش آماده می سازد) می باشد . نویسندگان UML  گسترش پردازش روی راهبری UseCase ها، معماری مركزی ، و توسعه و تكراری را  ترویج داده اند .
 UML تعیین كننده یك زبان مدل ، كه متحد كننده اجتماع  موافق شئی گرا روی هسته اصلی مدل های مفهومی می باشد . این اجازه انحراف  توضیحات در دوره های كه مكانیسم توسعه دارند را می دهد . توسعه هایی كه UML  دارد پیروی از قابل مشاهده بودن مفاهیم در طول اجرا است



*این  توسعه ها عبارتند از :*


• آمادگی كافی معنی شناسی و  نماد ها برای آدرسهای وسیع مركب از موضوعات مدل های همزمان در یك هدایت و  سبك اقتصادی . • آمادگی كافی معنی شناسی برای  همانند سازی آدرس مورد انتظار مدل های نمونه آینده ، وابستگی ویژه برای  تكنولوژی اجزاء ، محاسبه بدنه توزیع شده ، و اجرا پذیری .
 • آمادگی مكانیسم توسعه پذیری به طوری كه یك پروژه مستقل  بتواند MetaModel را برای كاربرد ها به سوی ارزش پایین گسترش دهد . ما نمی  خواهیم كه كاربران نیاز داشته باشند كه خودشان را با UML MetaModel وقف  دهند.
 • آمادگی مكانیسم توسعه پذیری به  طوری در آینده ، مدل های های در حال رشد به UML نزدیك باشند .
 • آمادگی كافی معنی شناسی برای كمك كردن مدل در حال  تفییر در میان انواع گوناگون از ابزار .
 •  آمادگی كافی معنی شناسی برای واسطه های معین در برابر مخازن برای تقسیم  بندی و ذخیره سازی محصولات مدل.


* اولین محصولات UML 3.1 :*


چه  چیزهایی محصولات اولیه UML هستند ؟ این پاسخ می تواند دو جنبه مختلف داشته  باشد . UML خودش و آن چیزهای كه محصولات پروژه ها استفاده می كنند را  تعریف می نماید.
* تعاریف محصولات UML 3.1.1 :*


اولین  درك ، از محصولاتی است كه خودشان زبان مدل متحد را تشكیل داده اند ، این  سند شامل مجموعه از معناها UML ،راهنمای یاداشت های UML ، و مستندات  الحاقات UML ، به اضافه ضمایم است. بعضی از این مفاهیم در زیر آمده است .  در اضافه این مستندات ، كتاب ها تدابیری كانونی برای درك ، مثال ها و  اصطلاحات كاربردی عمومی ما هستند .

*مفاهیم UML :*

مدارك  مفاهیم UML زبان تعریف استفاده از سه عبارت را بیان می كند :
 تركیب  انتزاعی دیاگرام كلاس های UML ،MetaModel های UML كه مفاهیم (MetaModel) ،  ارتباطات ، و خود كنترل ها را نشان می دهد. كه مفاهیم شامل شده را بیان می  كند.
  قواعد فرم بندی خوب قواعد و خود  كنترل كننده ها روی یك مدل صحیح تعریف می شوند ، قواعد ، توضیح به نثر  درآمده انگلیسی و در یك زبان خود كنترل شئی(OCL) دقیق و مختصرشده است.OCL  یك زبان ویژه كه منطقا ساده برای خواص یكسان معین از سیستم های كه شامل  مجموعه ها و ارتباطات بین مجموعه ها است .
 مفاهیم مفاهیم مدل برای به  نثر در آوردن توصیحات انگلیسی به كار می رود ، این چشم اندازی برای تشكیل  یك تعریف قرارداد در UMLاست. بیشتر قراردادها می توانند به صورت توضیحات  ریاضی وارد شوند كه بیشتر افراد می توانند به طور مستقیم آن را درك نمایند.

یك متا مدل (MetaModel) زبانی برای مدلهای معین ، و در قالب یك شئی  مدل است . در كلمات دیگر مدلی
 برای مدل عناصر است . مقصود UML از  متا مدل آماده سازی یك فرد ، عموم ، و تعریف توضیح از علم نحو و مفاهیم  عناصر UML است . پیش از این متا مدل هایی ساخته شده بودند كه امكانی برای  گسترش ترتیب روی مفاهیم غیر زوج از نمونه مفاهیم كه آن مفاهیم می خواهند  بهترین منتقل كننده باشند را دارا بود.
 اضافا ، متامدل برای  به وجود آوردن امكان برای تیم هایی كه كاوش راه ها را در به وسیله زبان های  مدل خیلی ساده، در كنار مفاد، عناصر یكی شده ، از زبان مدل متحد ساخته  شده، بود ( برای مثال ، عموما میان مفاهیم كلاس ، الگو ها ، و قالب های  مورد اسبفاده را پوشش می داد ) . نویسندگان انتظار دارند شخصا این متا مدل  زوج بیشتر توصیفات جامع را توضیح دهند . استفاده از این مفاهیم تكنیكی  قراردادی است .

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



*یاداشت های راهنمای UML :*


راهنمای  یاداشت های UML ، یاداشت ها UML و مثال های آماده آن را توضیح می دهد .  یاداشت های گرافیكی و تركیب متنی بیشتر برای قسمت های قابل دید UML ( از  دید خارجی ) كه افراد و ابزار ها سیستم مدل استفاده می كند است . اینها  نشان دهنده سطح مدل كاربر ، كه كدام مفاهیم نمونه ای از متا مدل در UML است  را بیان می كند. انواع دیاگرام استاندارد در قسمت 4.1.2 در پایین لیست شده  اند . یاداشت های راهنما همچنین خلاصه ای از مفاهیم UMLهستند ; به هر حال  مفاهیم مستندات UML محتوی تعاریف است..


*الحاقات UML :*


الحاقات  تعریف شده توسط كاربران در UML قادرند در سرتا سر قالب ها ، مقادیر ضمیمه و  خود كنترل استفاده شوند . دو نوع الحاق در حال جریان به صورت  زیر تعریف می شوند.
 1 – پردازش شئی
 2-مهندسی  تجاری

 كاربرد UMLوسیع است بدون الحاقات ، همینطور شركت  ها و پروژه ها می توانند تعریف شوند الحاقات را فقط زمانی  برای  معرفییادداشت جدید و كلمات فنی ضرورتپیدا كردند می توان استفاده نمود.  الحاقات نمی خواهند به صورت عمومی درك ، پشتیبانی و ترتیب دهنده برروی خود  UML باشند .
 در مراحلی كه برای كاهش عوامل اشتباه زا اطرافیك  فروشندهپیادهساز در دوره های متناوب تعریف می شود كه دوره های آن عبارت  است از :
 گوناگونی UMLكه زبانی بامفاهیمخوش تعریف كه روی متا مدلیك متا  مدل UMLساخته شده است.این می تواندویژگی متا مدل UMLبدونتغییرات هر  UMLازمفاهیمیا دوباره تعریف كردن هر دور از آن باشد ( برای مثال ایننمی  تواند در جزء ای كه ساخته شده دوباره تعریف گردد.)

 الحاقات UML  مجموعه ای از قبل تعریف شده از قالب ، مقادیر برچسب دار و خود كنترل ها و  شمایلیادداشت ها كه توسعه ای مجتمع و تصیحح UML برای دامنه ای معین یا  پردازشی ، برنامه ای الحاقی پردازشی دارند است

* بر گرفته از سایت اینترنتی رشد

*

----------

