زبان مدلسازی یکپارچه: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
قرار دادن {{دادههای کتابخانهای}} با اطلاعات ویکیداده |
|||
خط ۸:
یو امال تکنیکهای [[مدلسازی داده ها|مدلسازی داده]] ([[نمودار رابطه موجودیت]])، مدلسازی تجاری، مدلسازی شی و مدلسازی مولفهها را با هم ترکیب مینماید. یو امال را میتوان در تمامی پروسهها در سراسر [[چرخه توسعه نرمافزار]] به کاربرد.<ref>
Satish Mishra (
پیش از پیدایش یو امال در اواسط دهه ۱۹۹۰، مدلسازی نرمافزار از مشکل ناسازگاری نماد گذاریهای مختلفی که توسط متخصصین مدلسازی مختلف بوجود میآمد رنج میبرد و استاندارد همه گیری در این زمینه وجود نداشت. یو امال از تلفیق [[روش بوچ]] (Booch Method)، [[تکنیک مدلسازی شی]] (OMT) و [[مهندسی نرمافزار شی گرا]](OOSE) با یکدیگر در راستای جریانات یکلخت سازی بوجود آمد.<ref name="Foldoc۰۱"> [[فولداک]] (۲۰۰۱). [http://foldoc.org/index.cgi?query=UML&action=Search زبان مدلسازی یکلخت] آخرین به روز رسانی در
== تاریخچه ==
[[پرونده:OO-historie.jpg|بندانگشتی|320px|تاریخچه متدها و نمادگذاریهای شی گرا.]]
روشهای تولید نرمافزار برای زبانهای [[برنامه نویسی]] سنتی دردهه۱۹۷۰ ظهور کرد و در دهه ۱۹۸۰ همه گیر شد. مهمترین این شیوهها متدولوژی طراحی و تحلیل ساختاریافته سیستم (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) در سال ۱۹۶۷ در نروژ طراحی شد.<ref>G.M. Birtwistle, "Simula Begin" , Van Nostrand Reinhold, 1979 , ISBN 0-88405-032-7</ref> این زبان اگرچه خود پیروان چندانی به دست نیاورد اما
برخی تلاشهای اولیه در جهت یکلخت سازی مفاهیم روشهای مختلف به انجام رسید که نمونه قابل ملاحظه آن کار کلمن(Coleman) و همکارانش به نام فیوژن(Fusion) بود<ref>Derek Coleman, "Object-Oriented Development: The Fusion Method ", Prentice Hall, 1993, ISBN 0-13-338823-9</ref> که شامل مفاهیمی از [[تکنیک مدلسازی شی]]،<ref name="R"/> [[روش بوچ|بوج]]<ref name="B"/> و سی آر سی<ref name="T"/> بود. اولین تلاش موفقیت آمیز برای ترکیب و جایگزینی روشهای موجود در سال ۱۹۹۴ وقتی به وجود آمد که رمباف به شرکت رشنال سافتور رفت و به بوچ پیوست. این دو مفاهیم تکنیک مدل سازی شی و روش بوچ را ترکیب کردند و اولین طرح خود را در سال ۱۹۹۵ ارائه دادند. در این زمان یاکوبسون هم به این دو پیوست و کار مشترک خود را با آنها آغاز کرد. کار مشترک آنها ''زبان مدل سازی یکلخت'' نام گرفت. در سال ۱۹۹۶ [[گروه مدیریت شی]] (OMG) درخواست پیشنهادهایی برای استاندارد مدل سازی شی گرا را مطرح نمود. نویسندگان یو امال (یاکوبسون، بوچ و رمباف) با همکاری گروهی از برنامه نویسان و متدولوژیستهای دیگر طرح پیشنهادی خود را به OMG ارائه کردند. طرحهای دیگری هم به OMG ارائه شد که در نهایت همه پیشنهادات در طرح نهایی یو امال که در سال ۱۹۹۷ به OMG تحویل داده شد، ادغام شدند.
پس از چندین سال تجربه استفاده از یو امال در صدد برآمدند تا یو امال را
== مفاهیم بنیادین یو امال ==
مفاهیم یو امال در قالب دستههایی به نام ''دید''(view) طبقهبندی میشوند. هر "دید" در واقع زیرمجموعهای از ساختهای مدلسازی است که یک جنبه از سیستم را نمایش میدهند. در بالاترین سطح طبقهبندی دیدها به چهار حوزه کلی
===
عناصر سیستم و ارتباط آنها با سایر عناصر را توصیف میکند. برای مدل کردن عناصر سیستم از مفهوم "''دسته کننده''" (classifier) استفاده میشود. دسته کنندهها شامل کلاس، عملگر(Actor)، مورد کاربرد(Use case)، گره(Node)، همکاری(Collaboration) و مولفه(component) هستند. دسته کنندهها پایهای میسازند که رفتارهای پویای سیستم روی آن تعریف میشوند. حوزه [[طبقهبندی]] ساختاری شامل سه دید مختلف است:
* '''دید ایستا''' (Static View): این دید مفاهیم مربوط به حوزه برنامه کاربردی(Application Domain) و مفاهیم داخلی ابداع شده به عنوان بخشی از پیادهسازی برنامه کاربردی را مدل میکند. این دید، ایستا نامیده میشود زیرا رفتارهای وابسته به زمان سیستم را توصیف نمیکند. اجزای تشکیل دهنده دید ایستا عبارتند از ''[[کلاس (برنامهنویسی)|کلاسها]]'' و روابط (ارتباط و تعمیم) و
* '''دید طراحی''' (Design View): در حالی که دید ایستا مفاهیم برنامه کاربردی را از دیدگاه منطقی مدل میکند، این دید ساختار طراحی خود برنامه را مدل میکند. نمودارهای پیادهسازی که در این دید مورد استفاده قرار میگیرند عبارتند از: [[نمودار ساختار مرکب]]، [[نمودار همکاری]] و [[نمودار مولفه]]
* '''دید مورد کاربرد'''(Use Case view): این دید کارکرد یک موضوع (مثلاً یک سیستم) راآن طور که توسط عاملین خارجی که عملگر(Actor) نامیده میشوند و با موضوع مورد نظر (سیستم) در یک دیدگاه خاص تعامل دارند نمایش میدهد. یک مورد کاربرد در واقع یک واحد کارکرد است که به صورت برهمکنش میان عملگروموضوع بیان میشود. نمودار مورد استفاده در این دید [[نمودار مورد کاربرد]] است
خط ۵۰:
== نمودارهای یو امال ==
یو امال توسط نمودارهایی ساختار و رفتار سیستم را نمایش میدهد. یک سیستم به صورت مجموعهای از اشیای مجزا مدل میشود که برای رسیدن به هدف نهایی سیستم با یکدیگر تعامل دارند. نمودارهای یو امال نمایشگر دو دیدگاه مختلف از مدل سیستم هستند
ISBN 0-86341-354-4. p.
* دید ایستا (ساختاری): این دیدگاه
* دید پویا (رفتاری): این دیدگاه
یو امال ۲٫۲، ۱۴ گونه نمودار مختلف دارد که به دو دسته اصلی تقسیم میشوند.<ref>''UML Superstructure Specification Version
[[پرونده:Uml diagram2.png|وسط|سلسه مراتب نمودارهای یوام ال که، به صورت [[نمودار کلاس]] نمایش داده شدهاند]]
=== نمودارهای ساختاری(Structural Diagrams) ===
نمودارهای ساختاری بر روی ''چیز''های که باید در سیستم مورد نظر شده موجود باشند،
* [[نمودار کلاس]] (Class Diagram): ساختار سیستم را بوسیله نمایش کلاسها، خصوصیات کلاسها و روابط بین آنها توصیف میکند.
* [[نمودار مولفه]] (Component diagram): چگونگی تقسیم سیستم به مولفههای آن و وابستگی بین مولفههای سیستم را توصیف میکند.
خط ۷۹:
=== نمودارهای رفتاری(Behavior diagrams) ===
نمودارهای رفتاری بر ''چیز''هایی که باید در سیستم مدل شده اتفاق بیفتد
* [[نمودار فعالیت]] (Activity Diagram): نمودار فعالیت برای توصیف قدم به قدم گردش کار تجاری و عملیاتی مولفههای سیستم استفاده میشود. نمودار فعالیت توصیف کننده گردش کنترل در سرتاسر سیستم است.
* [[نمودار ماشین وضعیت]] (UML State Machine Diagram): این نمودار برای نمایش وضعیتهای مختلف سیستم و انتقال بین وضعیتها را نمایش میدهد.
خط ۹۱:
=== نمودارهای برهمکنش(Interaction Diagrams) ===
نمودارهای برهم کنش زیر مجموعهای از نمودارهای رفتاری هستند که بر گردش کنترل و دادهها بین ''چیز''های مختلف در سیستم مدل شده
* [[نمودار ارتباطات]] (Communication Diagram): [[بر همکنش]] بین
* [[نمودارکلی برهمکنش]] (Interaction Overview Diagram): یک [[دید کلی]] ارائه میدهد که در آن گرهها نمایانگر نمودارهای بر همکنش هستند.
* [[نمودار توالی]] (Sequence Diagram): نشان میدهد که
* [[نمودارهای زمانبندی]] (Timing Diagrams): گونه ویژهای از نمودارهای برهم کنش هستند که بر روی محدودیتهای زمانبندی تمرکز دارند.
خط ۱۰۶:
اگرچه یو امال زبانی استانداردشده و محبوب برای مدلسازی است اما انتقادهایی نیز به آن وارد میشود:
;استانداردهای حجیم: یکی از انتقادات اساسی به یو امال در مورد حجم بالای استانداردهای مورد استفاده در این زبان است. یو امال شامل بسیاری از نمودارها و ساختهایی است که یا اضافی هستند و یا به ندرت مورد استفاده قرار میگیرند. ''ایوار یاکوبسون'' (Ivar Jacobson)، یکی از طراحان یو امال، میگوید که اعتراضاتی که به اندازه یو امال ۲ میشود به اندازه کافی معتبر هستند که باعث شوند استفاده از عاملهای هوشمند را برای [[حل مسئله]] در نظر بگیریم.<ref>"ایوار یاکوبسون
؛ مشکل آموزش و به کار گرفتن یو امال: حجیم بودن یو امال یادگیری و استفاده از آن را به ویژه برای مهندسینی که مهارتها و دانش پیش نیاز آن را ندارند مشکل میسازد.<ref>مقاله [[ای سی ام|ای سی ام (ACM)را]] ''[http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 "مرگ با تب یوام ال"]'' برای بررسی بیشتر این گونه مواردببینید.</ref> در اغلب موارد افراد نمودارها را با استفاده از سمبلهای در دسترس در ابزارهای یو امال طراحی میکنند، بی آنکه بدانند این سمبلها به چه منظوری بوجود آمدهاند.
;عدم تطابق بین قابلیتهای یو امال و قابلیتهای زبانهای پیادهسازی: همانند سایر سیستمهای [[نشان گذاری]]، یو امال برخی از سیستمها را مختصر تر و
برخی از متخصصین مدلسازی انتقادهای تندی را متوجه این زبان کردهاند. از آن جملهاند: ''برتراند مه یر'' (Bertrand Meyer) در مقالهای با عنوان "یو امال: چرخش مثبت"<ref name="BMpaper">{{cite web|author=برتراند مه یر|title=یو امال: چرخش مثبت|url=http://archive.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html|تاریخ دسترسی=2008-03-31}}</ref> و برایان هندرسون-سلرز و سزار گونزالز-پرز در مقاله "استفاده و سوء استفاده از مکانیسم کلیشه در یو امال ۱و 2".<ref name="UsesAbusesStereotype">B. Henderson-Sellers; C. Gonzalez-Perez (2006). "Uses and Abuses of the Stereotype Mechanism in UML 1.x and 2.0". in: ''Model Driven Engineering Languages and Systems''. Springer Berlin / Heidelberg.</ref>
|