زبان مدل‌سازی یکپارچه: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
MahdiBot (بحث | مشارکت‌ها)
جز ربات ردهٔ همسنگ (۲۴) +مرتب+تمیز (۷.۷): + رده:مشخصه زبان‌ها
خط ۲:
'''زبان مدل‌سازی یک‌لخت''' {{انگلیسی|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 مقدمه ای بر یو ام‌ال</ref>
 
== مرور کلی ==
خط ۱۰:
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) با یکدیگر در راستای جریانات يک‌لختیک‌لخت سازی بوجود آمد.<ref name="Foldoc۰۱"> [[FOLDOC]] (۲۰۰۱). [http://foldoc.org/index.cgi?query=UML&action=Search زبان مدلسازی يک‌لخت] آخرین به روز رسانی در ۲۰۰۲-۰۱-۰۳. بازیابی شده در ۶ فوریه ۲۰۰۹.</ref> پیدایش یوام ال همه چیز را تغییر داد و باعث رشد چشمگیر مدلسازی تصویری و استفاده گسترده از این زبان شد. یو ام‌ال امروزه نقش یک زبان بین‌المللی را در زمینه تولید نرم‌افزار بر عهده دارد. موسسه آماری [[گارتنر]] در سال ۲۰۰۶ تعداد متخصصان [[فناوری اطلاعات]] که از یو ام‌ال استفاده می نمودند را ۱۰ میلیون نفر برآورد نمود و همچنین تخمین زده است که در سال ۲۰۰۸ هفتاددر صد شرکتهای تولید نرم‌افزار در سراسر دنیا از یو ام‌ال استفاده کرده اند.<ref>http://uml.org/Visual_Modeling.pdf مدلسازی تصویری : گذشته، حال و آینده</ref>
 
== تاریخچه ==
[[پرونده: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, Lauren Wiener; "Designing Object-Oriented Software "; Prentice Hall, 1990, ISBN 0-13-629825-7</ref> این کتابها به مجموعه کتب قبلی در مورد طراحی زبانهای برنامه نویسی اضافه شد و فیلد متدولوژی شی گرا آغاز شد. فاز اول آن در پایان سال 1990 کامل شد. کتاب یاکوبسون<ref>Ivar Jacobson, "Object Oriented Software Engineering: A Use Case Driven Approach ", Addison-Wesley Professional,1992, ISBN 0-201-54435-0</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"/> بود. اولین تلاش موفقیت آمیز برای ترکیب و جایگزینی روشهای موجود در سال 1994 وقتی به وجود آمد که رمباف به شرکت رشنال سافتور رفت و به بوچ پیوست. این دو مفاهیم تکنیک مدل سازی شی و روش بوچ را ترکیب کردند و اولین طرح خود را در سال 1995 ارائه دادند. در این زمان یاکوبسون هم به این دو پیوست و کار مشترک خود را با آنها آغاز کرد. کار مشترک آنها ''زبان مدل سازی يک‌لخت'' نام گرفت. در سال 1996 [[گروه مدیریت شی]] (OMG) درخواست پیشنهادهایی برای استاندارد مدل سازی شی گرا را مطرح نمود. نویسندگان یو ام‌ال (یاکوبسون، بوچ و رمباف) با همکاری گروهی از برنامه نویسان و متدولوژیست‌های دیگر طرح پیشنهادی خود را به OMG ارائه کردند. طرحهای دیگری هم به OMG ارائه شد که در نهایت همه پیشنهادات در طرح نهایی یو ام‌ال که در سال 1997 به OMG تحویل داده شد، ادغام شدند.
 
پس از چندین سال تجربه استفاده از یو ام‌ال در صدد برآمدند تا یو ام‌ال را ارتقا دهند تا مشکلاتی که در تجربیات کاری پدیدار شده بودند را بر طرف کنند و قابلیت‌های آن را گسترش دهند. طرحهای پیشنهادی ارائه شدند ومشخصات یو ام‌ال 2 در سال 2003 توسط OMG پذیرفته شد. و پس از نهایی سازی در اواخر 2004 در دسترس عموم قرار کرفت.
 
== مفاهیم بنیادین یو ام‌ال ==
خط ۳۴:
رفتار یک سیستم و سایر دسته کننده هارا در مرور زمان توصیف می کند. یک رفتار به صورت تغییراتی در وضعیت سیستم توصیف می‌شود که در دید ایستا ترسیم می شوند. حوزه رفتار پویای سیستم شامل سه دید زیر است:
* '''دید ماشین وضعیت''' (State Machine View) : این دید حالتهای ممکن تاریخچه زندگی شیئی از یک کلاس را مدل می کند. یک ماشین وضعیت شامل ''وضعیت'' هایی(state) است که توسط ''گذار''ها(transition) به هم متصل می شوند. نمودار مورد استفاده در این دید [[نمودار ماشین وضعیت]] است.
* '''دید برهمکنش''' (Interaction View) : دید [[برهم کنش]] توالی پیامهای مبادله شونده بین بخشهای یک سیستم را توصیف می کند. این دید نمایی کل گرا از رفتارهای درون یک سیستم را نمایش می دهد. این دید از دو نمودار برای نمایش استفاده می‌کند که هریک روی دیدگاه خاصی تمرکز یافته اند: [[نمودار ارتباطات]] و [[نمودار توالی]]
* '''دید فعالیت''' (Activity View) : یک ''فعالیت''در واقع گردش کنترل در میان فعالیتهای محاسباتی درگیر در انجام یک محاسبه یا گردش کار می باشد. به یک مرحله محاسباتی ابتدایی، یک ''عمل'' (Action) گفته می شود. به یک گروه از ''عمل''ها و ''زیرفعالیت''ها ''گره فعالیت'' گفته می شود. فعالیتها با [[نمودار فعالیت]] نمایش داده می شوند.
 
=== چیدمان فیزیکی(Physical Layout) ===
توصیف کننده منابع رایانشی در سیستم و چگونگی پیاده سازی مصنوعات مدل روی آنها می باشد. این بخش شامل یک دید است:
* '''دید بکارگیری''' (Deployment View): [[نمودار به کارگیری]] مورد استفاده در این دید نمایشگر پیاده سازی فیزیکی ''مصنوعات زمان اجرا'' روی گره هاست. یک ''مصنوع'' در این نمودار یک ''واحد پیاده سازی فیزیکی'' مانند یک فایل است و یک گره در واقع یک ''منبع زمان اجرا'' مانند یک رایانه، دستگاه و یا حافظه است.
 
=== سازماندهی مدل(Model Organization) ===
توصیف کننده سازماندهی خود مدلها در واحدهای سلسه مراتبی می باشد. واحد ژنریک سازماندهی مدلها بسته(package) است.یک مدل در واقع سلسله مراتبی از بسته هاست که انتزاع معنایی کاملی از سیستم از یک دیدگاه خاص است. این بخش شامل یک دید است :
* '''دید مدیریت مدل''' (Model Management View) : این دید سازمان داخلی خود مدل را مدل می کند. یک مدل از مجموعه ای از ''بسته''ها (package) تشکیل می‌شود که در بر دارنده عناصر مدل ( مانند نمودارهای کلاس، ماشین وضعیت و مورد کاربرد) است. نمودار مورد استفاده در این دید [[نمودار بسته بندی]] است.
 
=== پروفایل‌های یو ام‌ال (UML Profiles) ===
خط ۴۹:
 
== نمودارهای یو ام‌ال ==
یو ام‌ال توسط نمودارهایی ساختار و رفتار سیستم را نمایش می دهد.یک سیستم به صورت مجموعه ای از اشیای مجزا مدل می‌شود که برای رسیدن به هدف نهایی سیستم با یکدیگر تعامل دارند.نمودارهای یو ام‌ال نمایشگر دو دیدگاه مختلف از مدل سیستم هستند :<ref>موسسه مهندسین برق جن هلت (۲۰۰۴). ''یوام ال برای مهندسی سیستم : تماشای چرخها '' IET, 2004
ISBN 0-86341-354-4. p.۵۸</ref>
* دید ایستا(ساختاری): این دیدگاه تاکید بر نمایش ساختار ایستای سیستم با استفاده از اشیا، خصوصیت ها، عملیات و رابطه‌ها دارد.نمودارهای ساختاری انواع اشیایی که برای سیستم و پیاده سازی آن اهمیت دارندو روابط بین اشیا را تصویر می کنند. به عنوان نمونه می توان از [[نمودار کلاس]] نام برد.
* دید پویا (رفتاری): این دیدگاه تاکید برنمایش رفتار پویای سیستم با نشان دادن هماهنگی میان اشیا و تغییرات وضعیت داخلی اشیا دارد. به عنوان نمونه می توان از [[نمودار توالی]] و یا [[نمودار فعالیت]] نام برد.
 
خط ۸۱:
* [[نمودار فعالیت]] (Activity Diagram) : نمودار فعالیت برای توصیف قدم به قدم گردش کار تجاری و عملیاتی مولفه‌های سیستم استفاده می شود. نمودار فعالیت توصیف کننده گردش کنترل در سرتاسر سیستم است.
* [[نمودار ماشین وضعیت]] (UML State Machine Diagram) : این نمودار برای نمایش وضعیت‌های مختلف سیستم و انتقال بین وضعیت‌ها را نمایش می دهد.
* [[نمودار مورد کاربرد]] (Use Case Diagram) : کارکرد ارائه شده توسط یک سیستم را در قالب بازیگران (Actor) واهداف آنها که به صورت مورد کاربرد نمایش داده می شوند و وابستگی بین موردهای کاربرد، مدلسازی می کند.
 
<center><gallery>
خط ۹۲:
نمودارهای بر هم کنش زیر مجموعه ای از نمودارهای رفتاری هستند که بر گردش کنترل و داده‌ها بین ''چیز''های مختلف در سیستم مدل شده تاکید دارند.
* [[نمودار ارتباطات]] (Communication Diagram) : [[بر همکنش]] بین اشیا و یا اجزا را در قالب توالی پیامهای مبادله شده نمایش می دهد. این نمودار نمایانگر ترکیبی از اطلاعات به دست آمده از نمودارهای کلاس، توالی و مورد کاربرد است و هر دوی ساختار ایستا و رفتار پویای سیستم را توصیف می کنند.
* [[نمودارکلی برهمکنش]] (Interaction Overview Diagram) : یک [[دید کلی]] ارائه می دهد که در آن گره‌ها نمایانگر نمودارهای بر همکنش هستند.
* [[نمودار توالی]] (Sequence Diagram) : نشان می دهد که اشیا چگونه با یکدیگر در قالب پیامهایی متوالی ارتباط بر قرار می کنند و همچنین نمایشگر [[طول عمر]] اشیا نسبت به این پیامها می باشد.
* [[نمودارهای زمانبندی]] (Timing Diagrams) : گونه ویژه ای از نمودارهای بر هم کنش هستند که بر روی محدودیت‌های زمانبندی تمرکز دارند.
خط ۱۰۹:
;عدم تطابق بین قابلیت‌های یو ام‌ال و قابلیت‌های زبان‌های پیاده سازی : همانند سایر سیستمهای نشان گذاری، یو ام‌ال برخی از سیستمها را مختصر تر و موثر ترازبقیه سیستمها نمایش می دهد. بنابراین یک تولید کننده نرم‌افزار به سمت راه حلهایی کشیده می‌شود که در فصل مشترک توانایی‌های یو ام‌ال و زبان پیاده سازی قرار می گیرند. این مشکل در مورد زبانهای پیاده سازی که سازگاری کاملی با دکترین طراحی شی گرا ندارند نمایان تر است زیرا فصل مشترک فابلیت‌های این زبانها با یو ام‌ال کوچک تر است.{{مدرک}}
 
برخی از متخصصین مدلسازی انتقادهای تندی را متوجه این زبان کرده اند.از آن جمله اند : ''برتراند مه یر'' (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> و برایان هندرسون-سلرز و سزار گونزالز-پرز در مقاله "استفاده و سوء استفاده از مکانیسم کلیشه در یو ام‌ال 1و 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>
 
== جستارهای وابسته ==
* [[مقایسه ابزارهای زبان مدل‌سازی يک‌لختیک‌لخت|سیاهه نرم‌افزارهای یو ام‌ال]]
 
== منابع ==
خط ۱۹۲:
[[رده:زبان مدل‌سازی یک‌لخت]]
[[رده:زبانهای مدل سازی]]
[[رده:مشخصه زبان‌ها]]
[[رده:مهندسی نرم‌افزار]]
[[رده:نمایش دانش]]