زبان مدلسازی یکپارچه: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ویکیسازی رباتیک(۶.۷) >زبانهای برنامه نویسی، زبان برنامه نویسی، برنامه کاربردی، فناوری اطلاعات، [[برنامه ن... |
جز ربات ردهٔ همسنگ (۲۴) +مرتب+تمیز (۷.۷): + رده:مشخصه زبانها |
||
خط ۲:
'''زبان مدلسازی یکلخت''' {{انگلیسی|Unified Modeling Language}} یا «یو امال»، یک زبان مدلسازی همه منظوره استاندارد در زمینه [[مهندسی نرمافزار]] است که توسط [[گروه مدیریت شی]] {{انگلیسی|Object Management Group}} ایجاد شد. در حال حاضر (۲۰۱۰ میلادی) آخرین نسخه این زبان نسخه ۲٫۲ است که در سال ۲۰۰۷ میلادی مشخصات آن منتشر شد<ref>http://www.omg.org/technology/documents/formal/uml.htm| زبان مدلسازی يکلخت نسخه ۲٫۲</ref>
با استفاده از یو امال می توان تقریباً هر گونه [[برنامه کاربردی]] که ممکن است بر روی هر ترکیبی از سخت افزار، سیستم عامل، [[زبان برنامه نویسی]] و شبکه اجرا شود را مدلسازی نمود.طراحی بر پایه مفاهیم [[شی گرایی]] یو امال سبب میشود که ذاتاً با محیطها و [[زبانهای برنامه نویسی]] [[شی گرا]] (مانند [[سی پلاس پلاس]]، [[جاوا]] و [[سی شارپ]]) سازگاری کامل داشته باشد، اگرچه می توان از آن برای مدلسازی برنامههای غیر شی گرا مانند برنامه هایی که با زبانهای [[ویژوال بیسیک]]، [[کوبول]] و [[فرترن]] نوشته می شوند نیز استفاده نمود. <ref name=two>http://www.omg.org/gettingstarted/what_is_uml.htm
== مرور کلی ==
خط ۱۰:
Satish Mishra (۱۹۹۷). [http://www2.informatik.hu-berlin.de/~hs/Lehre/2004-WS_SWQS/20050107_Ex_UML.ppt "مدلسازی تصویری و زبان مدلسازی يکلخت (یو امال) : مقدمه ای بر یو امال"]. Rational Software Corporation. بازیابی شده در ۹ نوامبر ۲۰۰۸</ref>
پیش از پیدایش یو امال در اواسط دهه ۱۹۹۰، مدلسازی نرمافزار از مشکل ناسازگاری نماد گذاریهای مختلفی که توسط متخصصین مدلسازی مختلف بوجود می آمد رنج می برد و استاندارد همه گیری در این زمینه وجود نداشت. یو امال از تلفیق [[روش بوچ]] (Booch Method)، [[تکنیک مدلسازی شی]] (OMT) و [[مهندسی نرمافزار شی گرا]](OOSE) با یکدیگر در راستای جریانات
== تاریخچه ==
[[پرونده:OO-historie.jpg|بندانگشتی|320px|تاریخچه متد ها و نمادگذاریهای شی گرا.]]
روشهای تولید نرمافزار برای زبانهای [[برنامه نویسی]] سنتی دردهه1970 ظهور کرد و در دهه 1980 همه گیر شد. مهمترین این شیوهها متدولوژی طراحی و تحلیل ساختاریافته سیستم (SSADM) بود.<ref>Edward Yourdon, Larry L. "Structured Design : Fundamentals of a Discipline of Computer Program and System Design" ,Prentice Hall, 1979 ISBN 0-13-854471-9</ref>
این روشها در ابتدا توسط افرادی چون کنستانتین (Constantine)، دی مارکو(DeMarco)، ملور(Mellor)، وارد(Ward)، یوردون(Yourdon) و سایرین پدید آمدند و در حیطه سیستمهای بزرگ به ویژه سیستمهای طرف قرارداد با دولت در حوزه هوافضا و دفاع نظامی نیز نفوذ کردند. اگرچه نتایج آنها همواره رضایت بخش نبود اما این روشها متضمن ایدههای خوبی بودند که به ندرت استفاده موثری از آنها می شد. شرکتهای تجاری راغب با به کارگیری روشهای تولید نرمافزار و سیستمهای [[رایانه ای]] مهندسی نرمافزارنبودند. بیشتر آنها نرمافزارها را برای استفاده داخلی
اولین [[زبان برنامه نویسی شی گرا]] [[سیمولا]] بود که توسط [[اوله ژوهان داهل]](Ole-Johan Dahl) و [[کریستن نایگارد]] (Kristen Nygaard) در سال 1967 در نروژ طراحی شد.<ref>G.M. Birtwistle, "Simula Begin" , Van Nostrand Reinhold, 1979 , ISBN 0-88405-032-7</ref> این زبان اگرچه خود پیروان چندانی به دست نیاورد اما تاثیر زیادی بر روی بسیاری از زبانهای شی گرای بعدی داشت. کارهای داهل (Dahl) و نایگارد(Nygaard) تاثیر ژرفی بر گسترش شی گرایی داشت. جریان شی گرایی با دستیابی عمومی به زبان [[اسمال تاک|اسمالتاک]](Smalltalk) در اوایل دهه 1980 فعال شد و با پیدایش زبانهای شی گرای دیگری مانند [[سی شی گرا]] (Objective C)، [[سی پلاس پلاس]]، [[زبان برنامه سازی ایفل|ایفل]] و [[زبان برنامه نویسی کلوس|کلوس]] (CLOS) ادامه یافت. پنج سال پس از اینکه [[اسمال تاک]] در سراسر دنیا شناخته شد، اولین متدهای شی گرای تولید نرمافزار توسط ''شلایر''و ''ملور''<ref>Sally Shlaer, Stephen J. Mellor, "Object Oriented Systems Analysis: Modeling the World in Data ",Prentice Hall, 1988, ISBN 0-13-629023-X</ref> و ''کود'' و ''یوردون''<ref>Peter Coad, Edward Yourdon; "Object Oriented Analysis 2nd edition" ,Prentice Hall, 1990 , ISBN 0-13-629981-4</ref> بوجود آمد و به فاصله کوتاهی توسط سایرین همچون بوچ(Booch) و رمباف (Rambaugh) دنبال شد.<ref name="B">Grady Booch, "Object-Oriented Analysis and Design with Applications (2nd Edition)" , Addison-Wesley Professional,1993, ISBN 0-8053-5340-2</ref><ref name="R">James Rumbaugh, "Object-oriented Modelling and Design" , Prentice Hall, 1991, ISBN 81-203-1046-2</ref><ref name="T">Rebecca Wirfs-Brock, Brian Wilkerson,
برخی تلاشهای اولیه در جهت
پس از چندین سال تجربه استفاده از یو امال در صدد برآمدند تا یو امال را ارتقا دهند تا مشکلاتی که در تجربیات کاری پدیدار شده بودند را بر طرف کنند و قابلیتهای آن را گسترش دهند. طرحهای پیشنهادی ارائه شدند ومشخصات
== مفاهیم بنیادین یو امال ==
خط ۳۴:
رفتار یک سیستم و سایر دسته کننده هارا در مرور زمان توصیف می کند. یک رفتار به صورت تغییراتی در وضعیت سیستم توصیف میشود که در دید ایستا ترسیم می شوند. حوزه رفتار پویای سیستم شامل سه دید زیر است:
* '''دید ماشین وضعیت''' (State Machine View) : این دید حالتهای ممکن تاریخچه زندگی شیئی از یک کلاس را مدل می کند. یک ماشین وضعیت شامل ''وضعیت'' هایی(state) است که توسط ''گذار''ها(transition) به هم متصل می شوند. نمودار مورد استفاده در این دید [[نمودار ماشین وضعیت]] است.
* '''دید برهمکنش''' (Interaction View) : دید [[برهم کنش]]
* '''دید فعالیت''' (Activity View) : یک ''فعالیت''در واقع گردش کنترل در میان فعالیتهای محاسباتی درگیر در انجام یک محاسبه یا گردش کار می باشد.
=== چیدمان فیزیکی(Physical Layout) ===
توصیف کننده منابع رایانشی در سیستم و چگونگی پیاده سازی مصنوعات مدل روی آنها می باشد. این بخش شامل
* '''دید بکارگیری''' (Deployment View): [[نمودار به کارگیری]] مورد استفاده در این دید نمایشگر پیاده سازی فیزیکی ''مصنوعات زمان اجرا'' روی گره هاست. یک ''مصنوع'' در این نمودار یک ''واحد پیاده سازی فیزیکی'' مانند یک فایل است و یک گره در واقع یک ''منبع زمان اجرا'' مانند یک رایانه، دستگاه و یا حافظه است.
=== سازماندهی مدل(Model Organization) ===
توصیف کننده سازماندهی خود مدلها در واحدهای سلسه مراتبی می باشد. واحد ژنریک سازماندهی مدلها بسته(package) است.یک مدل در واقع سلسله مراتبی از بسته هاست که انتزاع معنایی کاملی از سیستم از یک دیدگاه خاص است. این بخش شامل یک دید است :
* '''دید مدیریت مدل''' (Model Management View) :
=== پروفایلهای یو امال (UML Profiles) ===
خط ۴۹:
== نمودارهای یو امال ==
یو امال توسط نمودارهایی ساختار و رفتار سیستم را نمایش می دهد.یک سیستم به صورت مجموعه ای از اشیای مجزا مدل میشود که برای رسیدن به هدف نهایی سیستم با یکدیگر تعامل دارند.نمودارهای یو امال نمایشگر دو دیدگاه مختلف از مدل سیستم هستند :<ref>موسسه مهندسین برق جن هلت (۲۰۰۴). ''یوام ال برای
ISBN 0-86341-354-4. p.۵۸</ref>
* دید ایستا(ساختاری): این دیدگاه تاکید بر نمایش ساختار ایستای سیستم با استفاده از اشیا، خصوصیت ها، عملیات و رابطهها دارد.نمودارهای ساختاری انواع اشیایی که برای سیستم و پیاده سازی آن اهمیت دارندو روابط بین اشیا را
* دید پویا (رفتاری): این دیدگاه تاکید برنمایش رفتار پویای سیستم با نشان دادن هماهنگی میان اشیا و تغییرات وضعیت داخلی اشیا دارد. به عنوان نمونه می توان از [[نمودار توالی]] و یا [[نمودار فعالیت]] نام برد.
خط ۸۱:
* [[نمودار فعالیت]] (Activity Diagram) : نمودار فعالیت برای توصیف قدم به قدم گردش کار تجاری و عملیاتی مولفههای سیستم استفاده می شود. نمودار فعالیت توصیف کننده گردش کنترل در سرتاسر سیستم است.
* [[نمودار ماشین وضعیت]] (UML State Machine Diagram) : این نمودار برای نمایش وضعیتهای مختلف سیستم و انتقال بین وضعیتها را نمایش می دهد.
* [[نمودار مورد کاربرد]] (Use Case Diagram) : کارکرد ارائه شده توسط یک سیستم را در قالب
<center><gallery>
خط ۹۲:
نمودارهای بر هم کنش زیر مجموعه ای از نمودارهای رفتاری هستند که بر گردش کنترل و دادهها بین ''چیز''های مختلف در سیستم مدل شده تاکید دارند.
* [[نمودار ارتباطات]] (Communication Diagram) : [[بر همکنش]] بین اشیا و یا اجزا را در قالب توالی پیامهای مبادله شده نمایش می دهد. این نمودار نمایانگر ترکیبی از اطلاعات به دست آمده از نمودارهای کلاس، توالی و مورد کاربرد است و هر دوی ساختار ایستا و رفتار پویای سیستم را توصیف می کنند.
* [[نمودارکلی برهمکنش]] (Interaction Overview Diagram) : یک [[دید کلی]] ارائه می دهد که در آن گرهها نمایانگر
* [[نمودار توالی]] (Sequence Diagram) : نشان می دهد که اشیا چگونه با یکدیگر در قالب پیامهایی متوالی ارتباط بر قرار می کنند و همچنین نمایشگر [[طول عمر]] اشیا نسبت به این پیامها می باشد.
* [[نمودارهای زمانبندی]] (Timing Diagrams) : گونه ویژه ای از نمودارهای بر هم کنش هستند که بر روی محدودیتهای زمانبندی تمرکز دارند.
خط ۱۰۹:
;عدم تطابق بین قابلیتهای یو امال و قابلیتهای زبانهای پیاده سازی : همانند سایر سیستمهای نشان گذاری، یو امال برخی از سیستمها را مختصر تر و موثر ترازبقیه سیستمها نمایش می دهد. بنابراین یک تولید کننده نرمافزار به سمت راه حلهایی کشیده میشود که در فصل مشترک تواناییهای یو امال و زبان پیاده سازی قرار می گیرند. این مشکل در مورد زبانهای پیاده سازی که سازگاری کاملی با دکترین طراحی شی گرا ندارند نمایان تر است زیرا فصل مشترک فابلیتهای این زبانها با یو امال کوچک تر است.{{مدرک}}
برخی از متخصصین مدلسازی انتقادهای تندی را متوجه این زبان کرده اند.از آن جمله اند : ''برتراند مه یر'' (Bertrand Meyer)
== جستارهای وابسته ==
* [[مقایسه ابزارهای زبان مدلسازی
== منابع ==
خط ۱۹۲:
[[رده:زبان مدلسازی یکلخت]]
[[رده:زبانهای مدل سازی]]
[[رده:مشخصه زبانها]]
[[رده:مهندسی نرمافزار]]
[[رده:نمایش دانش]]
|