خانه - لپ تاپ ها
ویژگی های طبقه بندی هدف نمودارهای Uml. مدل سازی UML

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

برنامه عملیاتی

در بخش توضیحات، مجموعه اصلی نمادهای نمودار وضعیت مورد نیاز برای خواندن نمودارها را بیاموزید.

پس از خواندن سایر بخش ها (مثال، برنامه)، می توانید خودتان سعی کنید نمودارهای حالت را ایجاد کنید.

یادداشت ها (توضیحات)

در اینجا مجموعه شخصیت های اصلی است نمودارهای حالت، برای خواندن نمودار لازم است. پس از خواندن سایر بخش ها («مثال»، «کاربرد») می توانید بنویسید نمودارهای حالتبدون کمک دیگری!

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

نحوه استفاده از تکنیک های خلاقیت

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

همه نمودارهای حالت را طبیعی نمی دانند. مراقب نحوه کار کارشناسان با آنها باشید. این امکان وجود دارد که اعضای تیم شما فکر نمی کنند که نمودارهای حالت برای سبک کاری آنها مناسب است. این بزرگترین مشکل نیست. باید به یاد داشته باشید که از تکنیک های مختلف کار با هم استفاده کنید.

اگر از نمودارهای حالت استفاده می کنید، سعی نکنید آنها را برای هر کلاس از سیستم ترسیم کنید. این رویکرد اغلب به منظور کامل بودن کاملاً دقیق استفاده می شود، اما تقریباً همیشه هدر دادن تلاش است. از نمودارهای حالت فقط برای کلاس هایی استفاده کنید که رفتار جالبی از خود نشان می دهند، در جایی که ترسیم نمودار وضعیت به شما کمک می کند بفهمید که چگونه اتفاق می افتد.

بسیاری از کارشناسان معتقدند که ویرایشگر رابط کاربری و اشیاء کنترل دارای عملکردی هستند که هنگام نمایش با استفاده از نمودار وضعیت مفید است.

چگونه یاد بگیریم

در اینجا ما سعی کرده‌ایم تا حد امکان راهی ساده برای یادگیری ارائه کنیم نمودارهای وضعیت UML.

مانند بسیاری از زبان های دیگر، از مجموعه ای از نمادها برای توصیف استفاده می کند. معنی این علائم را می توان در جدول در بخش "یادداشت ها (توضیحات)" مشاهده کرد. هر علامت نام (اصطلاح) و املای خاص خود را دارد. همچنین، برای درک سریع ماهیت اصلی هر اصطلاح، توضیح مختصری ارائه شده است.

در مرحله بعد، توصیه می کنیم به بخش "نمونه ها" بروید نمودارهای حالتتا دست خود را در خواندن نمودارهای مختلف امتحان کنید. سپس ارزش مطالعه بخش "برنامه" را دارد، زیرا اگرچه تعداد انواع نمودارها در UML کم است، تنها در صورت استفاده از نمودارهای مربوطه برای هدف مورد نظر، می توانید حداکثر مزایای استفاده از آنها را به دست آورید.

مثال استفاده

نمودارهای ماشین حالتیک فناوری شناخته شده برای توصیف رفتار یک سیستم است. نمودارهای حالت به هر شکلی از سال 1960 وجود داشته است و در روزهای اولیه برنامه نویسی شی گرا از آنها برای نمایش رفتار یک سیستم استفاده می شد. در رویکردهای شی گرا، نمودار حالت یک کلاس را ترسیم می کنید تا رفتار یک شی منفرد را در طول عمر آن نشان دهید.

هر زمان که در مورد ماشین های حالت محدود نوشته می شود، نمونه ها ناگزیر شامل سیستم های کروز کنترل یا ماشین های فروش خودکار می شوند.
ما تصمیم گرفتیم از یک کنترلر پنل کنترل مخفی در یک قلعه گوتیک استفاده کنیم. در این قلعه می‌خواهیم گنجینه‌های خود را پنهان کنیم تا یافتن آنها دشوار باشد. برای دسترسی به قفل گاوصندوق باید شمع استراتژیک را از روی شمعدان خارج کنیم اما قفل فقط در صورت بسته بودن در ظاهر می شود. بعد از ظاهر شدن قفل، می توانیم کلید را داخل آن قرار داده و گاوصندوق را باز کنیم. برای امنیت بیشتر، ما آن را طوری ساخته‌ایم که گاوصندوق را فقط پس از برداشتن شمع می‌توان باز کرد. اگر دزد به این احتیاط توجه نکند، هیولای نفرت انگیزی را رها می کنیم که دزد را می بلعد.

در شکل 10.1 نشان داده شده است نمودار حالتیک کلاس کنترل کننده که سیستم امنیتی فانتزی من را مدیریت می کند. نمودار حالت با وضعیت شی کنترلر در حال ایجاد شروع می شود: state صبر کن. این در نمودار نشان داده شده است شبه دولت اولیه، که یک حالت نیست اما دارای یک فلش است که به حالت اولیه اشاره می کند.
نمودار نشان می دهد که کنترل کننده می تواند در یکی از سه حالت باشد: صبر کنید، قفل کنید و باز کنید. نمودار همچنین قوانینی را نشان می دهد که توسط آن کنترل کننده از یک حالت به حالت دیگر منتقل می شود. این قوانین در قالب انتقال - خطوط اتصال حالت ها ارائه شده است.

انتقال یعنی حرکت از حالتی به حالت دیگر. هر انتقال دارای برچسب مخصوص به خود است که از سه بخش تشکیل شده است:
trigger-signature /activity. همه آنها اختیاری هستند. معمولا، trigger-idتنها رویدادی است که می تواند باعث تغییر حالت شود.

نگهبان در صورت مشخص شدن شرط منطقی است که برای انجام انتقال باید رعایت شود. فعالیت برخی از رفتارهای سیستم در طول یک انتقال است. این می تواند هر نوع بیان رفتاری باشد. شکل کامل یک ماشه شناسه می‌تواند شامل چندین رویداد و پارامتر باشد. انتقال از حالت انتظار (شکل 10.1) به حالت دیگر را می توان به صورت "در حالت انتظار، اگر شمع برداشته شود، یک قفل می بینید و به حالت قفل می روید."

هر سه بخش از توضیحات انتقال اختیاری هستند. رد شدن از فعالیت به این معنی است که در طول انتقال هیچ اتفاقی نمی افتد. Skip Shields به این معنی است که اگر یک رویداد ماشه ای رخ دهد، انتقال همیشه انجام می شود. شناسه ماشه به ندرت گم می شود، اما این اتفاق می افتد. این بدان معنی است که انتقال بلافاصله رخ می دهد، که عمدتاً در حالت های فعال قابل مشاهده است.

هنگامی که یک رویداد در یک وضعیت خاص رخ می دهد، تنها یک انتقال می تواند از این حالت انجام شود، برای مثال، در حالت قفل (شکل 10.1)، حفاظت ها باید متقابلاً منحصر به فرد باشند. اگر رویدادی رخ دهد اما هیچ انتقال مجاز وجود نداشته باشد - برای مثال، بستن گاوصندوق در حالت انتظار یا برداشتن شمع در زمان در باز، - رویداد نادیده گرفته می شود.

حالت نهایی ( حالت نهایی) به این معنی است که ماشین حالت به پایان رسیده است و باعث می شود شی کنترلر حذف شود. بنابراین برای کسانی که به اندازه کافی بی دقت بودند که به دام بیفتند، از آنجایی که شی کنترلر دیگر وجود ندارد، ما مجبور می شویم خرگوش را دوباره در قفس بگذاریم، کف را تمیز کنیم و سیستم را دوباره راه اندازی کنیم.

به یاد داشته باشید که ماشین های حالت فقط می توانند اشیایی را نشان دهند که مستقیماً مشاهده می شوند یا روی آنها عمل می شود. بنابراین، در حالی که ممکن است انتظار داشته باشید وقتی در باز است، چیزی را داخل گاوصندوق بگذاریم یا چیزی را بیرون بیاوریم، ما این را روی نمودار علامت گذاری نکردیم زیرا کنترلر نمی تواند چیزی در مورد آن به ما بگوید.

هنگامی که توسعه دهندگان در مورد اشیا صحبت می کنند، اغلب به وضعیت اشیا اشاره می کنند، یعنی ترکیبی از تمام داده های موجود در فیلدهای اشیاء. با این حال، یک حالت در نمودار ماشین حالت یک مفهوم انتزاعی تر از حالت است. نکته این است که حالات مختلف دلالت دارند راه های مختلفواکنش به رویدادها

فعالیت های داخلی در نمودار وضعیتی

دولت‌ها می‌توانند بدون استفاده از انتقال به رویدادها واکنش نشان دهند فعالیت های داخلی (فعالیت های داخلی) که در این صورت رویداد، حفاظت و فعالیت در داخل مستطیل حالت قرار می گیرد.

در شکل 10.2 وضعیت را با فعالیت های نماد داخلی و رویدادهای سیستم کمکی را نشان می دهد که می توانید در آنها مشاهده کنید فیلدهای متنیویرایشگر UI. فعالیت درونی مانند یک خود گذار است - انتقالی که به همان حالت باز می گردد. نحو فعالیت های داخلی بر اساس همان طرح منطقی رویدادها، حفاظت ها و رویه ها ساخته شده است.

در شکل 10.2 همچنین فعالیت های ویژه را نشان می دهد: فعالیت های ورودی و خروجی. فعالیت ورودیهر زمان که وارد یک وضعیت شوید اجرا می شود. فعالیت خروجی- هر زمان که ایالت را ترک کردید. با این حال، فعالیت های داخلی آغاز نشده است فعالیت های ورودی و خروجی; این تفاوت بین فعالیت های داخلی وخود انتقالی ها .

حالت های فعالیت در نمودار حالت

در حالت هایی که تاکنون توضیح دادیم، شی ساکت است و قبل از انجام هر کاری منتظر رویداد بعدی است. با این حال، حالت هایی ممکن است که در آنها شیء فعالیتی از خود نشان می دهد.

حالت جستجوکردندر شکل 10.3 چنین حالتی است وضعیت فعالیت: فعالیت در حال انجام با یک نماد نشان داده می شود انجام دادن/; از این رو اصطلاح انجام فعالیت (فعال باش). پس از تکمیل جستجو، انتقال بدون فعالیت انجام می شود، مانند نمایش تجهیزات جدید (نمایش سخت افزار جدید). اگر یک رویداد لغو در طول یک فعالیت رخ دهد ( لغو) آن انجام فعالیتفقط قطع می کند و ما به حالت برمی گردیم به روز رسانی پنجره سخت افزار.

هم انجام فعالیت ها و هم فعالیت های معمولی نشان دهنده تجلی برخی رفتارها هستند. تفاوت اساسی بین این دو این است که فعالیت‌های عادی "فوری" اتفاق می‌افتند و نمی‌توان آنها را با رویدادهای عادی قطع کرد، در حالی که فعالیت‌ها می‌توانند برای مدتی محدود اجرا شوند و می‌توانند قطع شوند، همانطور که در شکل 1 نشان داده شده است. 10.3. لحظه ای بودن برای سیستم های مختلف متفاوت تفسیر می شود. برای سیستم های بلادرنگ ممکن است چندین دستورالعمل ماشین طول بکشد و برای نرم افزار دسکتاپ ممکن است چندین ثانیه طول بکشد.

که در UML 1فعالیت های معمولی با این اصطلاح مشخص می شد عمل(عمل)، و اصطلاح فعالیت(فعالیت) فقط برای استفاده شد انجام فعالیت ها.

ابر دولت ها

اغلب اتفاق می افتد که چندین دولت دارای انتقال و فعالیت های داخلی مشترک هستند. در چنین مواردی، می توان آنها را به حالت های فرعی تبدیل کرد و رفتار کلی را می توان به یک ابرحالت منتقل کرد، همانطور که در شکل 1 نشان داده شده است. 10.4. بدون ابردولت، ما باید یک انتقال ترسیم کنیم لغو(لغو) برای هر سه ایالت در یک ایالت جزئیات اتصال را وارد کنید.

ایالت های موازی

حالت ها را می توان به چندین حالت موازی تقسیم کرد که به طور همزمان اجرا می شوند. در شکل شکل 10.5 یک ساعت زنگ دار ساده را نشان می دهد که می تواند سی دی یا رادیو را روشن کند و زمان فعلی یا زمان زنگ را نشان دهد.

گزینه های CD/Radio و Current Time/Alarm Time موازی هستند. اگر می‌خواهید این را با استفاده از نمودار حالت غیر موازی نشان دهید، در صورت نیاز به اضافه کردن حالت‌ها، با یک نمودار درهم و برهم مواجه می‌شوید. تفکیک دو حوزه رفتاری به دو نمودار حالت، آن را بسیار واضح تر می کند.

برنج. 10.5 نیز شامل می شود وضعیت ماقبل تاریخ(دولت کاذب تاریخی). این بدان معناست که وقتی ساعت روشن می شود، گزینه رادیو/سی دی به حالتی می رود که ساعت در زمان خاموش شدن در آن قرار داشت. پیکانی که از ماقبل تاریخ بیرون می آید نشان می دهد که در ابتدا چه حالتی وجود داشته است، زمانی که ماقبل تاریخ وجود نداشته است.

اجرای نمودارهای وضعیتی

نمودار حالت را می توان به سه روش اصلی پیاده سازی کرد: با استفاده از دستور سوئیچ تودرتو، الگوی حالت و جدول وضعیت. مستقیم ترین رویکرد برای کار با نمودار حالت، عبارت سوئیچ تودرتو است، مانند شکل 1. 10.6.

اگرچه این روش ساده است، اما حتی برای این مورد ساده بسیار طولانی است. علاوه بر این، با این رویکرد از دست دادن کنترل بسیار آسان است، بنابراین استفاده از آن را حتی در شرایط ابتدایی توصیه نمی کنیم.
الگوی State نشان دهنده سلسله مراتبی از کلاس های حالت برای مدیریت رفتار حالت است. هر حالت در نمودار حالت دارای زیر کلاس حالت خاص خود است. کنترل کننده برای هر رویداد متدهایی دارد که به سادگی به کلاس state ارسال می شود. نمودار وضعیت نشان داده شده در شکل. 10.1 را می توان با استفاده از کلاس های ارائه شده در شکل پیاده سازی کرد. 10.7.

بالای سلسله مراتب یک کلاس انتزاعی است که شامل توصیفی از تمام متدهایی است که رویدادها را پردازش می کنند، اما بدون پیاده سازی.
برای هر حالت خاص، کافی است متد handler را برای یک رویداد خاص که انتقال از حالت را آغاز می کند، بازنویسی کنیم.
جدول حالت یک نمودار حالت را به عنوان داده نشان می دهد.

بنابراین، نمودار در شکل. 10.1 را می توان در قالب یک جدول ارائه کرد. 10.1.
سپس یک مفسر می سازیم که از جدول حالت زمان اجرا استفاده می کند، یا یک مولد کد که کلاس هایی را از آن جدول تولید می کند.

بدیهی است که بیشتر کار روی جدول حالت یک بار انجام می شود، اما هر زمان که یک مشکل ایالتی نیاز به حل داشته باشد می توان از آن استفاده کرد. جدول حالت زمان اجرا را می توان بدون کامپایل مجدد تغییر داد، که تا حدودی راحت است. قالب حالت ساده‌تر جمع‌آوری می‌شود، و اگرچه هر حالت به یک کلاس جداگانه نیاز دارد، مقدار کدی که باید نوشته شود بسیار کم است.

پیاده سازی های نشان داده شده تقریباً حداقل هستند، اما ایده ای از نحوه استفاده را ارائه می دهند نمودارهای حالت. در هر مورد، اجرای مدل‌های حالت منجر به یک برنامه کلیشه‌ای می‌شود، بنابراین معمولاً بهتر است برای رسیدن به این هدف به نوعی از تولید کد متوسل شوید.

در اخبار سایت مشترک شوید؛ فرم اشتراک را می توانید در ستون سمت راست سایت پیدا کنید.

اگر می خواهید کار حرفه ای به عنوان فریلنسر را بیاموزید، شما را به دوره "" دعوت می کنیم.

        زبان مدلسازی یکپارچه (UML) زبانی است برای مشخصات، تجسم، طراحی و مستندسازی سیستم های نرم افزاریو همچنین مدل های تجاری و سایر سیستم های غیر نرم افزاری. UML ترکیبی از تکنیک های مهندسی است که قبلا با موفقیت برای مدل سازی سیستم های بزرگ و پیچیده استفاده شده است

        سازندگان UML آن را به عنوان زبانی برای تعریف، نمایش، طراحی و مستندسازی سیستم‌های نرم‌افزاری، سیستم‌های تجاری و دیگر سیستم‌های با ماهیت‌های مختلف ارائه می‌کنند. UML یک نماد و یک متامدل را تعریف می کند. نشانه گذاری مجموعه ای از اشیاء گرافیکی است که در مدل ها استفاده می شود. این نحو زبان مدلسازی است.

        UML ابزارهای بیانی برای ایجاد فراهم می کند مدل های بصری، که:

  • همه توسعه دهندگان درگیر در پروژه به طور یکسان درک می کنند.
  • ابزاری برای ارتباط در داخل پروژه هستند.

        زبان مدلسازی یکپارچه (UML):

  • به زبان های برنامه نویسی شی گرا (OO) وابسته نیست.
  • به متدولوژی توسعه پروژه مورد استفاده بستگی ندارد.
  • می تواند از هر زبان برنامه نویسی OO پشتیبانی کند.

        UML باز است و دارای ابزارهایی برای گسترش هسته اصلی است. UML می تواند برای توصیف معنی دار کلاس ها، اشیاء و مؤلفه ها در حوزه های موضوعی مختلف، اغلب بسیار متفاوت از یکدیگر استفاده شود.

نمودارهای UML

        Rational Rose انواع نمودارهای زیر را در اختیار طراح سیستم قرار می دهد که ایجاد متوالی آنها به شما امکان می دهد تصویر کاملی از کل سیستم طراحی شده و اجزای جداگانه آن بدست آورید:

  • نمودار مورد استفاده؛
  • نمودار استقرار (نمودار توپولوژی)؛
  • نمودار استیتچارت؛
  • نمودار تعامل؛ نمودار فعالیت؛
  • نمودار توالی؛
  • نمودار همکاری؛
  • نمودار کلاس؛
  • نمودار اجزاء (نمودار اجزا);
  • نمودارهای رفتار؛
  • نمودار فعالیت؛
  • نمودارهای پیاده سازی؛

        هر یک از این نمودارها ایده های مختلفی را در مورد مدل سیستم مشخص می کند. در عین حال، نمودار مورد استفاده نشان دهنده یک مدل مفهومی از سیستم است که نقطه شروع برای ساخت تمام نمودارهای دیگر است. نمودار کلاس یک مدل منطقی است که جنبه های ایستا طراحی ساختاری یک سیستم را منعکس می کند و نمودارهای رفتاری که انواعی از یک مدل منطقی نیز هستند، جنبه های دینامیکی عملکرد آن را منعکس می کنند. نمودارهای پیاده سازی برای نمایش اجزای یک سیستم و ارجاع به مدل فیزیکی آن خدمت می کنند.

        از نمودارهای ذکر شده در بالا، برخی برای تعیین دو یا چند زیرگونه استفاده می شوند. نمودارهای زیر به عنوان نمایش مستقل استفاده می شوند: موارد استفاده، کلاس ها، حالت ها، فعالیت ها، توالی ها، همکاری، اجزا و استقرار.

        برای نمودارهای UML، سه نوع نماد بصری وجود دارد که از نظر اطلاعاتی که دارند مهم هستند:

  • ارتباطات، که با خطوط مختلف در هواپیما نشان داده می شوند.
  • متن، موجود در مرزهای اشکال هندسی فردی؛
  • نمادهای گرافیکی، در نزدیکی عناصر بصری نمودارها به تصویر کشیده شده است.

        هنگام به تصویر کشیدن نمودارها به صورت گرافیکی، توصیه می شود قوانین زیر را رعایت کنید:

  • هر نمودار باید نمایش کاملی از بخشی از محدوده موضوع مدل شده باشد.
  • موجودیت های مدل ارائه شده در نمودار باید از همان سطح مفهومی باشند.
  • تمام اطلاعات مربوط به نهادها باید به وضوح در نمودار ارائه شود.
  • نمودارها نباید حاوی اطلاعات متناقض باشند.
  • نمودارها نباید با اطلاعات متنی بیش از حد بارگذاری شوند.
  • هر نمودار باید برای تفسیر صحیح همه عناصرش خودکفا باشد.
  • تعداد انواع نمودارهای مورد نیاز برای توصیف یک سیستم خاص کاملاً ثابت نیست و توسط توسعه دهنده تعیین می شود.
  • مدل‌های سیستم باید فقط شامل عناصری باشند که در نماد UML تعریف شده‌اند.

موجودیت ها در UML

        چهار نوع موجودیت در UML تعریف شده است: ساختاری، رفتاری، گروه بندی و حاشیه نویسی. موجودیت ها عناصر اصلی شی گرا زبان هستند که مدل ها با آنها ایجاد می شوند.

        نهادهای ساختاریاسامی در مدل های UML هستند. به طور معمول، آنها بخش های ثابت مدل را نشان می دهند که مربوط به عناصر مفهومی یا فیزیکی سیستم است. نمونه‌هایی از موجودیت‌های ساختاری عبارتند از «کلاس»، «رابط»، «همکاری»، «مورد استفاده»، «کامپوننت»، «گره»، «عملگر».

        موجودیت های رفتاریاجزای پویا مدل UML هستند. اینها افعالی هستند که رفتار مدل را در زمان و مکان توصیف می کنند. دو نوع اصلی از موجودیت های رفتاری وجود دارد:

  • تعامل رفتاری است که ماهیت آن تبادل پیام بین اشیاء در یک زمینه خاص برای رسیدن به یک هدف خاص است.
  • خودکار - یک الگوریتم رفتاری که دنباله ای از حالت ها را تعریف می کند که از طریق آن یک شی یا تعامل در پاسخ به رویدادهای مختلف عبور می کند.

        گروه بندی موجودیت هابخش های سازمان دهنده مدل UML هستند. اینها بلوک هایی هستند که مدل را می توان در آنها تجزیه کرد. چنین موجودیت اولیه در یک نسخه وجود دارد - این یک بسته است.

        بسته‌ها مکانیزمی جهانی برای سازماندهی عناصر در گروه‌ها هستند. موجودیت های ساختاری، رفتاری و دیگر گروه بندی ها را می توان در یک بسته قرار داد. برخلاف مؤلفه‌هایی که واقعاً در حین اجرای برنامه وجود دارند، بسته‌ها ماهیت صرفاً مفهومی دارند، یعنی فقط در طول فرآیند توسعه وجود دارند.

        نهادهای حاشیه نویسی- اینها بخش های توضیحی مدل UML هستند: نظرات برای توضیحات اضافی، شفاف سازی یا اظهار نظر در مورد هر عنصر مدل. فقط یکی هست نوع پایهعناصر حاشیه نویسی - توجه داشته باشید. یادداشت‌ها برای ارائه نمودارهایی با نظرات یا محدودیت‌هایی که در متن غیررسمی یا رسمی بیان می‌شوند، استفاده می‌شوند.

روابط در UML

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

        وابستگی- این یک رابطه معنایی بین دو نهاد است که در آن تغییر در یکی از آنها، مستقل، می تواند بر معناشناسی دیگری، وابسته تأثیر بگذارد.

        اتحادیه- یک رابطه ساختاری که مجموعه ای از ارتباطات معنایی یا منطقی بین اشیا را توصیف می کند.

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

        تحققیک رابطه معنایی بین طبقه‌بندی‌کننده‌ها است که در آن یک طبقه‌بندی تعهد را تعریف می‌کند و دیگری انجام آن را تضمین می‌کند. روابط پیاده سازی در دو حالت رخ می دهد:

  • بین رابط ها و کلاس ها یا مؤلفه هایی که آنها را پیاده سازی می کنند.
  • بین سوابق و همکاری هایی که آنها را اجرا می کند.

مکانیسم های رایج UML

        برای توصیف دقیق یک سیستم در UML، مکانیسم‌های به اصطلاح کلی استفاده می‌شود:

  • مشخصات فنی؛
  • اضافات (زیور آلات)؛
  • تقسیمات مشترک؛
  • پسوندها (مکانیسم های توسعه پذیری).

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

        تقریبا هر عنصر UML دارای یک نمایش گرافیکی منحصر به فرد است که نمایشی بصری از مهمترین ویژگی های آن را ارائه می دهد. نماد موجودیت "class" حاوی نام، ویژگی ها و عملیات آن است. مشخصات کلاس ممکن است شامل جزئیات دیگری مانند قابل مشاهده بودن ویژگی ها و عملیات، نظرات یا نشانه ای از انتزاعی بودن کلاس باشد. بسیاری از این جزئیات را می توان به صورت گرافیک یا متن تجسم کرد. اضافاتبه یک مستطیل استاندارد که نشان دهنده کلاس است.

        هنگام مدل‌سازی سیستم‌های شی گرا، یک تقسیمنهادهای نمایندگی

        در ابتدا، تقسیم بندی به کلاس ها و اشیا وجود دارد. یک کلاس یک انتزاع است و یک شی تجسم عینی آن انتزاع است. در این راستا، تقریباً تمام ساختارهای زبان با دوگانگی کلاس/ابژه مشخص می‌شوند. بنابراین، مقدمات و مصادیق مقدمات، اجزاء و مصادیق اجزاء، گره ها و مصادیق گره ها وجود دارد. در یک نمایش گرافیکی، مرسوم است که برای یک شیء از همان علامت کلاس استفاده می شود و زیر نام آن خط می کشد.

        در مرحله دوم، یک تقسیم به یک رابط و اجرای آن وجود دارد. یک رابط تعهدات را اعلام می کند، و یک پیاده سازی نشان دهنده اجرای دقیق آن تعهدات است و تضمین می کند که معنایی اعلام شده دقیقاً دنبال می شود. به همین دلیل، تقریباً تمام ساختارهای UML با دوگانگی رابط/پیاده‌سازی مشخص می‌شوند. به عنوان مثال، پیشینه ها با همکاری ها و عملیات ها با روش ها اجرا می شوند.

        UML یک زبان باز است، یعنی به برنامه‌های افزودنی کنترل‌شده اجازه می‌دهد تا ویژگی‌های مدل‌های دامنه را منعکس کنند.

مکانیسم‌های پسوند UML         عبارتند از:

  • کلیشه ها (کلیشه) - واژگان UML را گسترش دهید و به شما امکان می دهد واژگان جدیدی را بر اساس عناصر زبان موجود ایجاد کنید که بر حل یک مشکل خاص متمرکز است.
  • مقادیر برچسب‌گذاری شده - ویژگی‌های ساختارهای UML اصلی را گسترش می‌دهد و اجازه می‌دهد اطلاعات اضافی در مشخصات عنصر گنجانده شود.
  • محدودیت ها (محدودیت ها) - معنای سازه های UML را گسترش می دهد، به شما امکان می دهد قوانین جدید ایجاد کنید و قوانین موجود را لغو کنید.

        با هم، این سه مکانیسم توسعه زبان به شما امکان می‌دهند آن را مطابق با نیازهای پروژه یا ویژگی‌های فناوری توسعه تغییر دهید.

از نمودار موردی استفاده کنید

        این نوع نمودار به شما امکان می دهد لیستی از عملیاتی که سیستم انجام می دهد ایجاد کنید. اغلب این نوع نمودار را نمودار تابع می نامند، زیرا بر اساس مجموعه ای از این نمودارها، فهرستی از الزامات سیستم ایجاد می شود و مجموعه عملکردهای انجام شده توسط سیستم تعیین می شود.


شکل - 1. نمودار مورد استفاده

        نمودارهای مورد استفاده عملکرد یک سیستم یا آنچه که سیستم قرار است انجام دهد را توصیف می کند. توسعه نمودار دارای اهداف زیر است:

  • تعیین مرزهای کلی و زمینه حوزه موضوعی مدل شده؛
  • تدوین الزامات عمومی برای رفتار عملکردی سیستم طراحی شده؛
  • توسعه یک مدل مفهومی اولیه از سیستم برای جزئیات بعدی آن در قالب مدل های منطقی و فیزیکی؛
  • مستندات اولیه را برای تعامل توسعه دهندگان سیستم با مشتریان و کاربران خود آماده می کند.

        ماهیت نمودار استفاده به شرح زیر است. سیستم در حال طراحی به عنوان مجموعه ای از موجودیت ها یا بازیگرانی نمایش داده می شود که از طریق موارد استفاده با سیستم تعامل دارند. در این حالت کنشگر یا کنشگر هر موجودی است که از بیرون با سیستم در تعامل باشد. میتونه یه نفر باشه دستگاه فنی، برنامه یا هر سیستم دیگری که می تواند به عنوان منبع نفوذ بر روی سیستم شبیه سازی شده که توسط خود توسعه دهنده تعیین می شود، عمل کند. مورد استفادهدر خدمت توصیف خدماتی است که سیستم به بازیگر ارائه می دهد.

        هدف یک مورد استفاده تعریف یک جنبه کامل یا قطعه ای از رفتار یک موجودیت بدون آشکار ساختن ساختار داخلی آن است. چنین موجودی می تواند یک سیستم یا هر عنصری از مدل باشد که رفتار خاص خود را دارد.

        هر مورد استفاده مربوط به سرویس جداگانه‌ای است که موجودیت مدل‌سازی شده به درخواست بازیگر ارائه می‌دهد، یعنی نحوه استفاده از این موجودیت را تعیین می‌کند. سرویسی که به درخواست یک بازیگر مقدار دهی اولیه می شود، یک توالی کامل و غیرقابل تقسیم از اقدامات است. این بدان معناست که پس از اتمام پردازش درخواست، سیستم باید به آن بازگردد حالت اولیهبرای درخواست های زیر آماده باشد

        موارد استفاده را می توان هم برای تعیین الزامات خارجی برای سیستم در حال طراحی و هم برای تعیین رفتار عملکردی از قبل استفاده کرد. سیستم موجود. مجموعه موارد استفاده به عنوان یک کل باید تمام جنبه های ممکن رفتار مورد انتظار سیستم را تعریف کند. بعلاوه، موارد استفاده به طور ضمنی الزاماتی را تعیین می کند که نحوه تعامل بازیگران با سیستم را تعیین می کند تا بتوانند خدمات ارائه شده را به درستی اجرا کنند. برای راحتی، بسیاری از موارد استفاده را می توان به عنوان یک بسته جداگانه در نظر گرفت.

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

نمودار کلاس

        جایگاه اصلی در برنامه نویسی شی گرا، توسعه یک مدل منطقی از سیستم در قالب یک نمودار کلاس است. یک نمودار کلاس برای نشان دادن ساختار ایستا یک مدل سیستم در اصطلاح کلاس های برنامه نویسی شی گرا استفاده می شود. یک نمودار کلاس می‌تواند به‌ویژه روابط مختلف بین موجودیت‌های حوزه منفرد، مانند اشیا و زیرسیستم‌ها را منعکس کند، و همچنین ساختار داخلی و انواع روابط را توصیف کند.


شکل - 2. نمودار کلاس

        نمادهای نمودار به شما امکان می دهد سلسله مراتب پیچیده ای از سیستم ها، روابط بین کلاس ها (کلاس ها) و رابط ها (اینترفیس ها) را نمایش دهید. این نوع نمودار از نظر محتوا در مقابل نمودار Collaboration است که اشیاء سیستم را نمایش می دهد. Rational Rose به شما امکان می دهد کلاس هایی را با استفاده از این نوع نمودار در نمادهای مختلف ایجاد کنید. شبیه ابر بنابراین، یک کلاس فقط یک الگو است که بر اساس آن یک شی خاص در آینده ایجاد می شود.

        نمودار کلاس نموداری است که رئوس آن عناصری از نوع "طبقه‌بند" هستند، متصل انواع مختلفروابط ساختاری یک نمودار کلاس همچنین می تواند شامل رابط ها، بسته ها، روابط و حتی نمونه های فردی مانند اشیا و روابط باشد.

        کلاسدر زبان UML، مجموعه ای از اشیاء را نشان می دهد که ساختار، رفتار و روابط مشابهی با اشیاء کلاس های دیگر دارند. از نظر گرافیکی، کلاس به صورت یک مستطیل به تصویر کشیده می شود که می توان آن را نیز تقسیم کرد خطوط افقیبه بخش ها یا بخش ها. این بخش ها می توانند شامل نام کلاس، ویژگی ها (متغیرها) و عملیات (روش ها) باشند.

نمودار وضعیت

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

نمودارهای حالت         اغلب برای توصیف رفتار تک تک اشیاء استفاده می شود، اما همچنین می تواند برای مشخص کردن عملکرد سایر اجزای مدل مانند موارد استفاده، بازیگران، زیرسیستم ها، عملیات و روش ها استفاده شود.



شکل - 2. نمودار حالت

        نمودار حالت نوع خاصی از نمودار است که نشان دهنده یک خودکار خاص است. رئوس نمودار حالت های ممکن ماشین است که با نمادهای گرافیکی مربوطه نشان داده می شود و کمان ها انتقال آن از حالتی به حالت دیگر را نشان می دهند. نمودارهای حالت را می توان برای ارائه نمایش دقیق تری از عناصر مدل تکی تو در تو قرار داد.

        در متامدل UML دستگاهبسته ای است که بسیاری از مفاهیم لازم برای نمایش رفتار موجودیت مدل شده را در قالب یک فضای گسسته با تعداد محدود حالت ها و انتقال ها تعریف می کند.

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

        رفتار خودکار به صورت حرکت متوالی در امتداد نمودار از راس به راس، با در نظر گرفتن جهت قوس‌هایی که آنها را به هم متصل می‌کنند، مدل‌سازی می‌شود.

        شرایط اجباری زیر برای دستگاه باید رعایت شود:

  • حالتی که یک شی می تواند به آن برود فقط با وضعیت فعلی آن تعیین می شود و به تاریخ قبلی آن بستگی ندارد.
  • در هر لحظه از زمان، خودکار می تواند تنها در یکی از حالت های خود باشد. در عین حال، اگر هیچ رویدادی اتفاق نیفتد، خودکار می‌تواند تا زمانی که بخواهید در یک حالت جداگانه باقی بماند.
  • مدت زمانی که ماشین در یک حالت قرار دارد و همچنین مدت زمانی که برای دستیابی به یک وضعیت لازم است به هیچ وجه مشخص نشده است.
  • تعداد حالت های خودکار باید محدود باشد و همه آنها به صراحت مشخص شوند. شبه حالت های فردی ممکن است مشخصات (حالت های اولیه و نهایی) نداشته باشند. در این حالت، هدف و معناشناسی آنها کاملاً از بافت مدل و نمودار حالت مورد بررسی مشخص می شود.
  • نمودار خودکار نباید شامل حالات و انتقال های جدا شده باشد. برای هر حالت، به جز حالت اولیه، باید یک حالت قبلی تعیین شود و هر انتقال باید دو حالت ماشین را به هم متصل کند.
  • هنگامی که شی می تواند به طور همزمان به دو یا چند حالت بعدی (به استثنای مورد زیر اتوماتای ​​موازی) انتقال یابد، خودکار نباید دارای انتقال متناقض باشد. در UML، رفع تعارض با معرفی شرایط نگهبان امکان پذیر است.

حالتنه تنها در متامدل زبان UML، بلکه در تحلیل سیستم های کاربردی نیز اساسی است. کل مفهوم یک سیستم پویا مبتنی بر مفهوم دولت است. معناشناسی حالت در زبان UML دارای تعدادی ویژگی خاص است.

        در UML، حالت یک متاکلاس انتزاعی است که برای مدل‌سازی یک موقعیت خاص که در طی آن شرایط خاصی برآورده می‌شود، استفاده می‌شود. State را می توان به عنوان مجموعه ای از مقادیر مشخص کلاس یا شی مشخص کرد. تغییرات در مقادیر مشخصه منفرد، تغییرات در وضعیت کلاس یا شیء مورد مدل‌سازی را منعکس می‌کند.

نمودار فعالیت

        هنگام مدلسازی رفتار یک سیستم در حال طراحی یا تجزیه و تحلیل، نه تنها ارائه فرآیند تغییر حالات آن ضروری است، بلکه جزئیات اجرای الگوریتمی و منطقی عملیات انجام شده توسط سیستم نیز ضروری است.

        در واقع این نوعنمودارها همچنین می توانند برای انعکاس حالات شی مدل شده استفاده شوند، با این حال، هدف اصلی نمودار Activity منعکس کردن فرآیندهای تجاری شی است. این نوع نمودار به شما این امکان را می دهد که نه تنها توالی فرآیندها، بلکه انشعاب و حتی هماهنگ سازی فرآیندها را نیز نشان دهید.

        این نوع نمودار به شما امکان می دهد الگوریتم هایی را برای رفتار اشیاء با هر پیچیدگی طراحی کنید، از جمله می توان از آنها برای ترسیم نمودارهای بلوکی استفاده کرد.

        برای مدلسازی فرآیند انجام عملیات در زبان UML از نمودارهای فعالیت استفاده می شود. نماد گرافیکی استفاده شده در آنها از بسیاری جهات شبیه نماد یک نمودار حالت است، زیرا این نمودارها همچنین حاوی نمادهای حالت و انتقال هستند. هر حالت در یک نمودار فعالیت مربوط به تکمیل برخی عملیات ابتدایی است و انتقال به حالت بعدی تنها زمانی رخ می دهد که این عملیات تکمیل شود.

        بنابراین، نمودارهای فعالیت را می توان مورد خاصی از نمودارهای حالت در نظر گرفت. آنها به شما امکان می دهند به دلیل تکمیل فعالیت ها و اقدامات داخلی، ویژگی های کنترل رویه ای و همزمان را در زبان UML پیاده سازی کنید. استفاده اصلی از نمودارهای فعالیت، تجسم ویژگی های پیاده سازی عملیات کلاس است، زمانی که لازم است الگوریتم هایی برای اجرای آنها ارائه شود.

        در زمینه زبان UML فعالیتمجموعه ای از محاسبات فردی است که توسط یک خودکار انجام می شود که منجر به نتیجه یا عمل می شود. نمودار فعالیت منطق و توالی انتقال از یک فعالیت به فعالیت دیگر را نشان می دهد و توجه تحلیلگر را بر نتایج متمرکز می کند. نتیجه یک فعالیت ممکن است منجر به تغییر در وضعیت سیستم یا بازگشت مقداری شود.

        حالت عملیک مورد خاص از یک حالت با مقداری کنش ورودی و حداقل یک گذار خروج از حالت است. این انتقال به طور ضمنی فرض می کند که عملکرد ورودی قبلاً تکمیل شده است. حالت عمل نمی تواند انتقال داخلی داشته باشد زیرا ابتدایی است. استفاده متداول از حالت اقدام، مدل سازی یک مرحله در اجرای یک الگوریتم (رویه) یا جریان کنترل است.

نمودار توالی

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

        فقط آنها اشیاء، که مستقیماً در تعامل دخالت دارند. نکته کلیدیبرای نمودارهای توالی پویایی تعامل اشیاء در طول زمان است.

        در UML، نمودار توالی دو بعد دارد. اولین مورد از چپ به راست به شکل خطوط عمودی است که هر یک از آنها خط زندگی یک شی جداگانه را نشان می دهد که در تعامل شرکت می کند. شیء سمت چپ نمودار همان چیزی است که تعامل را آغاز می کند. در سمت راست شی دیگری است که مستقیماً با اولی تعامل دارد. بنابراین، تمام اشیاء در یک نمودار دنباله‌ای، ترتیبی را تشکیل می‌دهند که توسط ترتیب یا درجه فعالیت اشیاء در هنگام تعامل با یکدیگر تعیین می‌شود.

        از نظر گرافیکی، هر شی به صورت یک مستطیل به تصویر کشیده می شود و در قسمت بالای خط زندگی خود قرار دارد. در داخل مستطیل، نام شی و نام کلاس را بنویسید که با دو نقطه از هم جدا شده اند. در این مورد، کل رکورد تأکید می شود که نشانه ای از شی است.

        بعد دوم نمودار دنباله ای، محور زمانی عمودی است که از بالا به پایین هدایت می شود. بالاترین قسمت نمودار مربوط به لحظه اولیه زمان است. فعل و انفعالات شی از طریق پیام هایی که توسط یک شی به شی دیگر ارسال می شود، اجرا می شود. پیام ها به صورت فلش های افقی با نام پیام نشان داده می شوند و ترتیب آنها بر اساس زمان وقوع مشخص می شود. یعنی پیام هایی که در نمودار توالی بالاتر قرار دارند قبل از پیام هایی که در پایین تر قرار دارند آغاز می شوند. مقیاس در محور زمان نشان داده نشده است، زیرا نمودار دنباله ای فقط ترتیب زمانی تعاملات "زودتر-بعد" را مدل می کند.

نمودار همکاری

        ویژگی اصلینمودارهای همکاری توانایی نمایش گرافیکی نه تنها توالی تعامل، بلکه همچنین تمام روابط ساختاری بین اشیاء شرکت کننده در این تعامل است.


شکل - 3. نمودار همکاری

        این نوع نمودار به شما امکان می دهد تا تعاملات اشیاء را با انتزاع از توالی انتقال پیام توصیف کنید. این نوع نمودار تمام پیام های دریافتی و ارسالی یک شی خاص و انواع این پیام ها را به صورت فشرده نشان می دهد.

        اول از همه، نمودار همکاری اشیاء شرکت کننده در تعامل را به شکل مستطیل نشان می دهد که حاوی نام شی، کلاس آن و احتمالاً مقادیر ویژگی است. علاوه بر این، همانطور که در نمودار کلاس، ارتباط بین اشیاء در قالب خطوط اتصال مختلف نشان داده شده است. در این صورت می توانید به صراحت نام انجمن و نقش هایی که اشیا در این انجمن ایفا می کنند را مشخص کنید. علاوه بر این، اتصالات پویا - جریان پیام - را می توان به تصویر کشید. آنها همچنین به عنوان خطوط اتصال بین اشیا نشان داده می شوند، که در بالای آنها یک فلش وجود دارد که جهت، نام پیام و شماره دنباله را در توالی کلی اولیه سازی پیام نشان می دهد.

        برخلاف نمودار توالی، یک نمودار همکاری فقط روابط بین اشیایی را نشان می‌دهد که نقش‌های خاصی در تعامل دارند. این نمودار زمان را به عنوان یک بعد جداگانه نشان نمی دهد. بنابراین، توالی برهمکنش ها و جریان های موازی را می توان با استفاده از اعداد دنباله ای تعیین کرد. بنابراین، اگر نیاز دارید که روابط بین اشیاء را در زمان واقعی مشخص کنید، بهتر است این کار را در نمودار توالی انجام دهید.

مفهوم         مشارکتیکی از مفاهیم اساسی در زبان UML است. این برای تعیین مجموعه ای از اشیاء در تعامل با یک هدف خاص در زمینه کلی سیستم مدل سازی شده است. هدف از این همکاری، مشخص کردن ویژگی‌های پیاده‌سازی مهم‌ترین عملیات‌های فردی در سیستم است. همکاری ساختار رفتار سیستم را بر اساس تعامل شرکت کنندگان در این همکاری تعریف می کند.

        همکاری را می توان در دو سطح نشان داد:

  • سطح مشخصات - نقش طبقه بندی کننده ها و نقش انجمن ها را در تعامل مورد بررسی نشان می دهد.
  • سطح مثال - موارد و ارتباطاتی را نشان می دهد که نقش های فردی را در همکاری تشکیل می دهند.

        نمودار همکاری سطح مشخصات نقش‌هایی را که عناصر درگیر در تعامل بازی می‌کنند نشان می‌دهد. عناصر همکاری در این سطح، طبقات و انجمن ها هستند که نشان دهنده نقش های فردی طبقه بندی کننده ها و انجمن ها بین شرکت کنندگان در همکاری هستند.

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

        یک پیامد مهم از این نتیجه می گیرد. مجموعه یکسانی از اشیاء می تواند در همکاری های مختلف شرکت کند. بسته به همکاری مورد بررسی، هم خصوصیات اشیاء منفرد و هم ارتباط بین آنها می تواند تغییر کند. این همان چیزی است که یک نمودار همکاری را از یک نمودار کلاس متمایز می کند، که باید تمام ویژگی ها و ارتباط بین عناصر نمودار را نشان دهد.

نمودار مولفه

        این نوع نمودار برای توزیع کلاسها و اشیاء بین اجزا در طول طراحی فیزیکی یک سیستم در نظر گرفته شده است. این نوع نمودار اغلب نمودارهای ماژول نامیده می شود.



شکل - 4. نمودار جزء

        پروژه سیستم نرم افزاری کامل مجموعه ای از مدل های منطقی و سطوح فیزیکی، که باید با یکدیگر همخوانی داشته باشند. زبان UML از نمودارهای پیاده سازی برای نمایش فیزیکی مدل های سیستم استفاده می کند که شامل نمودار جزءو نمودار استقرار.

        یک نمودار جزء، بر خلاف نمودارهای قبلاً بحث شده، ویژگی های نمایش فیزیکی سیستم را توصیف می کند. این به شما امکان می دهد معماری سیستم در حال توسعه را با ایجاد وابستگی بین اجزای نرم افزار، که می تواند کد منبع و اجرایی باشد، تعیین کنید. عناصر گرافیکی اصلی نمودار کامپوننت، اجزا، واسط ها و وابستگی های بین آنها هستند.

        نمودار مؤلفه برای اهداف زیر ایجاد شده است:

  • تجسم ساختار کلی کد منبعسیستم نرم افزاری؛
  • مشخصات نسخه اجرایی سیستم نرم افزار؛
  • اطمینان از استفاده مجدد از قطعات منفرد کد برنامه;
  • نمایش طرحواره های پایگاه داده مفهومی و فیزیکی

        هم تحلیلگران سیستم و هم معماران و هم برنامه نویسان در توسعه نمودارهای کامپوننت مشارکت دارند. یک نمودار مؤلفه یک انتقال ثابت از یک نمایش منطقی به یک اجرای واقعی یک پروژه در قالب کد نرم افزاری را ارائه می دهد. برخی از مؤلفه ها فقط در مرحله کامپایل کد برنامه می توانند وجود داشته باشند، برخی دیگر در مرحله اجرای آن. یک نمودار مؤلفه، وابستگی های کلی بین مؤلفه ها را منعکس می کند و دومی را به عنوان طبقه بندی کننده در نظر می گیرد.

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

نمودار استقرار

        این نوع نمودار برای تجزیه و تحلیل سخت افزار سیستم، یعنی سخت افزار، نه برنامه ها در نظر گرفته شده است. Deployment که مستقیماً از انگلیسی ترجمه شده است به معنای "استقرار" است، اما اصطلاح "توپولوژی" با دقت بیشتری ماهیت این نوع نمودار را منعکس می کند.


شکل - 5. نمودار استقرار

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

        نمودارهای استقرار برای نمایش پیکربندی و توپولوژی کلی یک سیستم نرم افزاری توزیع شده در UML استفاده می شود.

        نمودار استقرار برای تجسم عناصر و اجزای یک برنامه طراحی شده است که فقط در مرحله اجرا وجود دارد. در این مورد، تنها مؤلفه های نمونه برنامه، که فایل های اجرایی یا کتابخانه های پویا هستند، نمایش داده می شوند. اجزایی که در زمان اجرا استفاده نمی شوند در نمودار استقرار نشان داده نشده اند. بنابراین، اجزای دارای کد منبع برنامه فقط می توانند در نمودار مؤلفه وجود داشته باشند. آنها در نمودار استقرار نشان داده نشده اند.

        نمودار استقرار شامل تصاویر گرافیکیپردازنده ها، دستگاه ها، فرآیندها و اتصالات بین آنها. برخلاف نمودارهای نمایش منطقی، یک نمودار استقرار برای کل سیستم یکنواخت است، زیرا باید به طور کامل ویژگی های پیاده سازی آن را منعکس کند. توسعه یک نمودار استقرار معمولاً آخرین مرحله در تعیین مدل سیستم نرم افزاری است.

        هنگام توسعه یک نمودار استقرار، اهداف زیر دنبال می‌شوند:

  • تعیین توزیع اجزای سیستم در گره های فیزیکی آن؛
  • نشان دادن اتصالات فیزیکی بین تمام گره های اجرای سیستم در مرحله اجرای آن؛
  • شناسایی تنگناهای سیستم و پیکربندی مجدد توپولوژی آن برای دستیابی به عملکرد مورد نیاز.

نمودارهای استقرار         به طور مشترک توسط تحلیلگران سیستم، مهندسان شبکه و تکنسین های سیستم توسعه داده می شوند.

ویژگی های رابط کاری Rational Rose

        ابزار Rational Rose CASE استانداردهای عمومی پذیرفته شده را برای رابط عملیاتی برنامه، شبیه به محیط های برنامه نویسی بصری معروف، پیاده سازی می کند. پس از نصب Rational Rose بر روی رایانه کاربر، که عملاً هیچ مشکلی را حتی برای مبتدیان ایجاد نمی کند، راه اندازی این برنامه در MS Windows 95/98 منجر به ظاهر شدن یک رابط کار بر روی صفحه نمایش می شود (شکل 6).


شکل - 6.نمای کلی رابط کاری برنامه Rational Rose

        رابط عملیاتی Rational Rose از عناصر مختلفی تشکیل شده است که مهمترین آنها عبارتند از:

  • منوی اصلی برنامه
  • پنجره نمودار
  • پنجره مستندات
  • پنجره مرورگر
  • پنجره ورود

اجازه دهید به طور خلاصه به هدف و کارکردهای اصلی هر یک از این عناصر بپردازیم.

منوی اصلی برنامه

منوی اصلی برنامه در استاندارد عمومی پذیرفته شده ساخته شده است و به نظر می رسد (شکل 7).

آیتم های منوی فردی، که هدف آنها از نام آنها مشخص است، عملیات مشابه مربوط به کل پروژه را به عنوان یک کل ترکیب می کنند. برخی از آیتم های منو حاوی عملکردهای شناخته شده ای هستند (باز کردن پروژه، چاپ نمودارها، کپی کردن و چسباندن عناصر مختلف نمودار از کلیپ بورد). برخی دیگر آنقدر خاص هستند که ممکن است برای مطالعه به تلاش بیشتری نیاز داشته باشند (گزینه های تولید کد، بررسی سازگاری مدل، اتصال ماژول های اضافی).

شکل - 7. ظاهرمنوی اصلی برنامه

نوار ابزار استاندارد

نوار ابزار استاندارد در زیر منوی اصلی برنامه قرار دارد و به شکل زیر است (شکل 8). برخی از ابزارها در دسترس نیستند (پروژه جدید هیچ عنصری ندارد). نوار ابزار استاندارد دسترسی سریع به دستورات منو را فراهم می کند که توسعه دهندگان اغلب از آنها استفاده می کنند.

شکل 8.ظاهر نوار ابزار استاندارد

کاربر می تواند ظاهر این پنل را به صلاحدید خود شخصی سازی کند. برای انجام این کار، آیتم منو Tools -> Options را انتخاب کرده و تب Toolbars را باز کنید. به این ترتیب می توانید دکمه های ابزار مختلف را نشان داده یا پنهان کنید و اندازه آنها را تغییر دهید.

پنجره مرورگر

پنجره پیش فرض مرورگر در سمت چپ رابط کار در زیر نوار ابزار استاندارد قرار دارد (شکل 9).

مرورگر نماهای مدل را در یک ساختار سلسله مراتبی سازماندهی می کند که ناوبری را ساده می کند و به شما امکان می دهد هر عنصر مدل را در پروژه پیدا کنید. در این حالت، هر عنصری که توسعه دهنده به مدل اضافه می کند، بلافاصله در پنجره مرورگر نمایش داده می شود. بر این اساس، با انتخاب یک عنصر در پنجره مرورگر، می توانیم آن را در پنجره نمودار تجسم کنیم یا مشخصات آن را تغییر دهیم. مرورگر همچنین به شما امکان می دهد عناصر مدل را در بسته ها سازماندهی کنید و عناصر را بین نماهای مختلف مدل منتقل کنید. در صورت تمایل، پنجره مرورگر را می توان در مکان دیگری در رابط کاری قرار داد یا با استفاده از آیتم منوی View به طور کلی پنهان کرد. همچنین می توانید اندازه مرورگر را با کشیدن قاب بیرونی آن با ماوس تغییر دهید.

شکل - 9.ظاهر مرورگر

نوار ابزار ویژه

یک نوار ابزار ویژه بین پنجره مرورگر و پنجره نمودار در قسمت میانی رابط کاری قرار دارد. به طور پیش فرض، یک نوار ابزار برای ساخت یک نمودار کلاس مدل ارائه می شود (شکل 10).

شکل - 10.ظاهر یک نوار ابزار ویژه برای نمودار کلاس

با جابجایی قاب پنل به محل مورد نظر می توان محل نوار ابزار ویژه را تغییر داد. همچنین می‌توانید ترکیب پانل را با افزودن یا حذف دکمه‌های جداگانه مربوط به ابزارهای خاص سفارشی کنید. تخصیص دکمه ها را می توان از نکات ابزاری که پس از نشانگر ماوس روی دکمه مربوطه ظاهر می شود، یاد گرفت.

پنجره نمودار

پنجره نمودار، منطقه کار اصلی رابط آن است که در آن نماهای مختلفی از مدل پروژه تجسم می شود. به طور پیش فرض، پنجره نمودار در سمت راست رابط کار قرار دارد، اما مکان و اندازه آن نیز قابل تغییر است. هنگام توسعه یک پروژه جدید، اگر از Project Wizard استفاده نشده باشد، پنجره نمودار یک ناحیه خالی است که حاوی هیچ عنصر مدل نیست (شکل 11).

نام نموداری که در این پنجره قرار دارد در نوار عنوان برنامه (بالاترین خط برنامه) یا اگر پنجره به حالت تمام صفحه حداکثر نشده است، در نوار عنوان پنجره نمودار نشان داده شده است. چندین نمودار می تواند همزمان در پنجره نمودار وجود داشته باشد، اما تنها یکی از آنها می تواند فعال باشد. به عنوان مثال، در شکل. 11 نمودار فعال، نمودار استقرار است، اگرچه نمودارهای دیگری نیز وجود دارد. جابجایی بین نمودارها را می توان با انتخاب نمای مورد نظر در نوار ابزار استاندارد یا از طریق آیتم منوی Window انجام داد. هنگامی که یک نمای نمودار جداگانه را فعال می کنید، ظاهر یک نوار ابزار خاص تغییر می کند که برای نمای نمودار خاص سفارشی شده است.


شکل - 11.ظاهر پنجره نمودار با انواع نماهای مدل

پنجره مستندات

پنجره اسناد ممکن است به طور پیش فرض روی صفحه نمایش وجود نداشته باشد. در این صورت می توان آن را از طریق آیتم منو View -> Documentation فعال کرد و پس از آن در زیر مرورگر ظاهر می شود (شکل 12).

پنجره مستندات همانطور که از نامش پیداست برای مستندسازی عناصر یک نمای مدل طراحی شده است. شما می توانید طیف گسترده ای از اطلاعات را در آن ثبت کنید، و آنچه مهم است - به زبان روسی. این اطلاعات متعاقباً به نظرات تبدیل می شود و به هیچ وجه بر منطق اجرای کد برنامه تأثیر نمی گذارد.

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

درست مانند سایر پنجره های رابط کاری، می توانید اندازه و موقعیت پنجره اسناد را تغییر دهید.

شکل - 12.ظاهر پنجره اسناد

پنجره ورود

پنجره Log به گونه ای طراحی شده است که به طور خودکار اطلاعات سرویس های مختلف تولید شده در حین کار با برنامه را ضبط می کند. گزارش زمان و ماهیت اقدامات انجام شده توسط توسعه دهنده را ثبت می کند، مانند به روز رسانی مدل، سفارشی کردن منوها و نوار ابزار، و همچنین پیام های خطایی که در طول تولید کد رخ می دهد.

پنجره log همیشه روی رابط کاری در ناحیه پنجره نمودار وجود دارد (شکل 13). با این حال، ممکن است توسط سایر پنجره های نمودار پنهان یا به حداقل برسد. شما می توانید پنجره log را از طریق منوی Window->Log فعال کنید. در این حالت، در بالای پنجره های دیگر در ناحیه سمت راست رابط کاری نمایش داده می شود. این پنجره را نمی توان به طور کامل حذف کرد، فقط می توان آن را به حداقل رساند.

شکل - 13.ظاهر پنجره ورود به سیستم

نتیجه

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

        در این راستا، اهمیت زبان UML به طور قابل توجهی در حال افزایش است، زیرا به طور فزاینده ای ویژگی های یک زبان بازنمایی دانش را به دست می آورد. در عین حال، وجود ابزار بصری در زبان UML برای نمایش ساختار و رفتار مدل، دستیابی به بازنمایی کافی از دانش اعلامی و رویه‌ای را امکان‌پذیر می‌سازد و، نه کمتر مهم، ایجاد مطابقت معنایی بین این اشکال دانش تمام این ویژگی های زبان UML به ما این امکان را می دهد که به این نتیجه برسیم که جدی ترین چشم اندازها را در آینده نزدیک دارد.

این مقاله به بررسی دوران جدید توسعه نرم‌افزار، چگونگی تأثیر آن بر الزامات جدید UML و بهترین روش‌ها برای برآورده کردن آنها می‌پردازد.
  7. "مدل سازی داده ها در Rational Rose" سرگئی تروفیموف مدل سازی نمایش فیزیکی داده ها را با استفاده از Rational Rose توصیف می کند.
  8. زبان UML. درک عمومی زبان UML: ساختارها، عناصر گرافیکیو نمودارهای زبان
  9. UML عملی. این سند ترجمه ای از سند "UML عملی. مقدمه عملی برای توسعه دهندگان" است. معرفی کاربردی برای توسعه دهندگان
  10. "زبان مدلسازی شی گرا استاندارد UML" وندروف الکساندر میخایلوویچ. تاریخچه UML
  11. UML – زبان مدلسازی یکپارچه. این مطالب حاوی اطلاعات اولیه در مورد روش های توصیف سیستم های نرم افزاری و نمادهای مورد استفاده در UML است
  12. زبان UML. راهنمای کاربر. نویسندگان: گریدی بوچ، جیمز رامبو، ایوار جاکوبسون
  13. "نمودار UML در رز گویا" سرگئی تروفیموف
  14. "تحلیل و طراحی. مدلسازی بصری (UML) Rational Rose" Konstantin Domolego
  15. کتابخانه گنادی ورنیکوف. توضیحات کامل استانداردهای طراحی و مدلسازی.
  16. "نمونه ای از توصیف یک حوزه موضوعی با استفاده از UML هنگام توسعه سیستم های نرم افزاری" E.B. زولوتوخینا، R.V. آلفیموف. این مقاله از یک مثال خاص برای نشان دادن رویکرد احتمالی به مدل‌سازی دامنه بر اساس استفاده از زبان مدل‌سازی یکپارچه (UML) استفاده می‌کند.

       

UML یا Unified Modeling Language یک زبان توصیفی گرافیکی برای مدل‌سازی شی در زمینه توسعه نرم‌افزار است. اما استفاده از UML به فناوری اطلاعات محدود نمی شود، یکی دیگر از حوزه های وسیع کاربرد عملی UML مدل سازی فرآیندهای تجاری، طراحی سیستم و نقشه برداری ساختارهای سازمانی است. UML توسعه دهندگان نرم افزار را قادر می سازد تا بر روی نمادهای گرافیکی برای نمایش توافق کنند مفاهیم کلیو بر طراحی و توسعه تمرکز کنید.

مزایای UML

  • UML از نمادهای گرافیکی برای عناصر سیستم در حال مدل‌سازی استفاده می‌کند و نمودارهای UML به راحتی قابل درک هستند.
  • UML با در نظر گرفتن جنبه های مختلف، تقریباً از تمام دیدگاه های ممکن، سیستم ها را توصیف می کند.
  • UML شی گرا است: روش های تحلیل و ساخت آن از نظر معنایی به روش های برنامه نویسی مورد استفاده در زبان های OOP مدرن نزدیک است.
  • UML یک استاندارد باز است. این استاندارد از نسخه ای به نسخه دیگر توسعه یافته و تکامل می یابد و مدرن ترین الزامات را برای توصیف سیستم ها برآورده می کند.
  • دارای مکانیزم فرمت است که به شما امکان می دهد متن و انواع گرافیکی اضافی را وارد کنید، که استفاده از UML را نه تنها در زمینه IT امکان پذیر می کند.

انواع نمودار UML

14 نوع نمودار در UML وجود دارد. آنها را می توان به 2 دسته تقسیم کرد:

  • ساختاری، نمایانگر ساختار اطلاعاتی؛
  • رفتاری، نشان دهنده رفتار سیستم و جنبه های مختلف تعاملات است. زیرگروه جداگانه ای از نمودارهای رفتاری در نظر گرفته شده است نمودارهای تعامل.

سلسله مراتب انواع نمودار UML، با یک نمودار کلاس نشان داده شده است

نمودارهای ساختاری

  1. نمودار کلاسیک عنصر کلیدی در مدل سازی شی گرا است. با استفاده از این نمودار (در واقع، از طریق کلاس ها، آنها ویژگی های, مواد و روش هاو وابستگی بین کلاس ها) مدل دامنه و ساختار سیستم مدل شده را توصیف می کند.
  2. نمودار مؤلفهتجزیه کد برنامه را به بلوک های بزرگ (اجزای ساختاری) نمایش می دهد و نشان می دهد وابستگی هابین آنها. کامپوننت ها می توانند بسته ها، ماژول ها، کتابخانه ها، فایل ها و غیره باشند.
  3. نمودار شییک برش کامل یا جزئی از سیستم شبیه سازی شده را در یک نقطه زمانی معین نشان می دهد. این نمونه های کلاس (اشیاء)، وضعیت آنها (مقادیر ویژگی فعلی) و روابط بین آنها را نشان می دهد.
  4. نمودار ساختار مرکبساختار داخلی کلاس ها و در صورت امکان، تعاملات بین عناصر این ساختار را نشان می دهد.
  5. نمودار بستهبسته ها و روابط بین آنها را نشان می دهد. این نوع نمودار برای ساده سازی ساختار مدل (و بر این اساس، کار با آن) از طریق ترکیب عناصر مدل در گروه ها بر اساس معیارهای خاص استفاده می کند.
  6. نمودار استقراراستقرار را شبیه سازی می کند اجزای نرم افزار ov ( مصنوعات) در مورد منابع محاسباتی / اجزای سخت افزاری ( گره ها).
  7. نمودار نمایهمکانیزم توسعه ای را توصیف می کند که به UML اجازه می دهد تا با حوزه های موضوعی و صنایع مختلف سازگار شود.

مثال نمودار کلاس UML

نمودارهای رفتار

  1. نمودار فعالیتاعمال را نشان می دهد ( اقدامات) که برخی از فعالیت ها شامل ( فعالیت). نمودارهای فعالیت برای مدل‌سازی فرآیندهای تجاری، فرآیندهای فناوری، محاسبات متوالی و موازی استفاده می‌شوند.
  2. از نمودار موردی استفاده کنید(یا نمودار مورد استفاده) رابطه بین بازیگران (بازیگران) و موارد استفاده از سیستم مدل سازی شده (قابلیت های آن) را توصیف می کند. هدف اصلی نمودار این است که یک ابزار جهانی برای مشتریان، توسعه دهندگان و کاربران نهایی باشد تا به طور مشترک درباره سیستم - قابلیت ها و رفتار آن بحث کنند.
  3. نمودار حالترفتار پویای یک موجود را به تصویر می‌کشد و نشان می‌دهد که این موجودیت بسته به وضعیت فعلی خود، چگونه به رویدادهای مختلف واکنش نشان می‌دهد. این در اصل یک نمودار حالت از نظریه اتم است.
  4. نمودار ارتباطی(V نسخه های قبلی نمودار همکاری) تعاملات بین اجزای ساختار ترکیبی و نقش های همکاری را نشان می دهد. نمودار به صراحت روابط بین عناصر (اشیاء) را نشان می دهد.
  5. نمودار توالیبرای تجسم دنباله ای از تعاملات اشیاء استفاده می شود. چرخه زندگی یک شی معین و تعامل بازیگران (بازیگران) را در یک مورد خاص، دنباله پیام هایی که آنها مبادله می کنند را نشان می دهد.
  6. نمودار نمای کلی تعاملشامل بخشی از نمودار توالی و طراحی جریان کنترل است. به در نظر گرفتن تعامل اشیاء از دیدگاه های مختلف کمک می کند.
  7. نمودار زمان بندی- یک زیرگروه جداگانه از نمودارهای تعامل متخصص در زمان بندی. از این نوع نمودارها برای مطالعه رفتار اجسام در یک بازه زمانی معین استفاده می شود.

UML یک زبان مدل سازی گرافیکی یکپارچه برای توصیف، تجسم، طراحی و مستندسازی سیستم های OO است. UML برای پشتیبانی از فرآیند مدل‌سازی نرم‌افزار بر اساس رویکرد OO، سازمان‌دهی رابطه مفاهیم مفهومی و برنامه‌ای و بازتاب مشکلات مقیاس‌گذاری سیستم‌های پیچیده طراحی شده است. مدل های UML در تمام مراحل چرخه عمر نرم افزار، از تجزیه و تحلیل کسب و کار گرفته تا تعمیر و نگهداری سیستم، استفاده می شوند. سازمان‌های مختلف بسته به حوزه‌های مشکل‌شان و فناوری‌هایی که استفاده می‌کنند، ممکن است از UML استفاده کنند.

تاریخچه مختصری از UML

در اواسط دهه 90، نویسندگان مختلف چندین روش مدل‌سازی OO را پیشنهاد کردند که هر کدام از نمادهای گرافیکی خود استفاده می‌کردند. در همان زمان، هر یک از این روش ها نقاط قوت خود را داشت، اما اجازه ساخت یک مدل به اندازه کافی کامل از PS را نمی داد، آن را "از همه طرف" نشان می داد، یعنی تمام پیش بینی های لازم را (به مقاله 1 مراجعه کنید). علاوه بر این، فقدان استاندارد مدل سازی OO، انتخاب مناسب ترین روش را برای توسعه دهندگان دشوار می کرد، که مانع از پذیرش گسترده رویکرد OO برای توسعه نرم افزار شد.

به درخواست گروه مدیریت اشیاء (OMG)، سازمانی که مسئول پذیرش استانداردها در زمینه فناوری های شی و پایگاه داده است، مشکل فوری یکسان سازی و استانداردسازی توسط نویسندگان سه روش محبوب OO حل شد - G. بوچ، دی. رمبو و آ. جاکوبسون، که با هم تلاش کردند نسخه UML 1.1 را ایجاد کردند که توسط OMG در سال 1997 به عنوان یک استاندارد تأیید شد.

UML یک زبان است

هر زبانی شامل واژگان و قوانینی برای ترکیب کلمات برای ایجاد ساختارهای معنادار است. این به ویژه نحوه ساختار زبان های برنامه نویسی است، مانند UML. ویژگی بارز آن این است که فرهنگ لغت زبان توسط عناصر گرافیکی تشکیل شده است. هر نماد گرافیکی دارای معنای خاصی است که با آن مرتبط است، بنابراین یک مدل ایجاد شده توسط یک توسعه دهنده می تواند توسط دیگری و همچنین توسط یک ابزار نرم افزاری که UML را تفسیر می کند به وضوح درک شود. از اینجا، به ویژه، نتیجه می شود که یک مدل نرم افزار ارائه شده در UML می تواند به طور خودکار به یک زبان برنامه نویسی OO (مانند Java، C++، VisualBasic) ترجمه شود، یعنی اگر یک ابزار مدل سازی بصری خوب وجود داشته باشد که از UML پشتیبانی می کند، مدل ساخته شده، ما همچنین یک کد برنامه نمونه مربوط به این مدل را دریافت خواهیم کرد.

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

فرهنگ لغت UML

مدل در قالب موجودیت ها و روابط بین آنها نشان داده شده است که در نمودارها نشان داده شده است.

موجودیت هاانتزاعاتی هستند که عناصر اصلی مدل ها هستند. چهار نوع موجودیت وجود دارد - ساختاری (کلاس، رابط، جزء، مورد استفاده، همکاری، گره)، رفتاری (تعامل، حالت)، گروه بندی (بسته ها) و حاشیه نویسی (نظر). هر نوع موجودیت خاص خود را دارد نمایش گرافیکی. هنگام مطالعه نمودارها، نهادها به تفصیل مورد بحث قرار خواهند گرفت.

ارتباطنشان می دهد اتصالات مختلفبین نهادها UML انواع روابط زیر را تعریف می کند:

  • اعتیادچنین ارتباطی را بین دو موجود نشان می دهد که تغییر در یکی از آنها - مستقل - می تواند بر معناشناسی دیگری - وابسته تأثیر بگذارد. وابستگی با یک فلش نقطه‌دار نشان داده می‌شود که از موجودیت وابسته به موجودیت مستقل هدایت می‌شود.
  • اتحادیهیک رابطه ساختاری است که نشان می دهد اشیاء یک موجود با اشیاء موجودی دیگر مرتبط هستند. از لحاظ گرافیکی، یک ارتباط به صورت خطی نشان داده می شود که موجودیت های مرتبط را به هم متصل می کند. انجمن ها برای حرکت بین اشیاء استفاده می کنند. به عنوان مثال، ارتباط بین کلاس‌های «سفارش» و «محصول» می‌تواند از یک سو برای یافتن تمام محصولات مشخص‌شده در یک سفارش خاص، یا از سوی دیگر برای یافتن همه سفارش‌هایی که حاوی این محصول هستند، استفاده شود. واضح است که برنامه های مربوطه باید مکانیزمی را اجرا کنند که چنین ناوبری را فراهم کند. اگر پیمایش فقط در یک جهت مورد نیاز باشد، با یک فلش در انتهای ارتباط نشان داده می شود. یک مورد خاص از تداعی تجمع است - رابطه ای به شکل "کل" - "بخش". از نظر گرافیکی، با یک الماس در انتها نزدیک به ذات-کل برجسته شده است.
  • تعمیمرابطه بین یک موجودیت اصلی و یک موجودیت فرزند است. اساساً، این رابطه منعکس کننده خاصیت وراثت برای کلاس ها و اشیا است. تعمیم به صورت خطی نشان داده می شود که با یک مثلث به سمت موجودیت اصلی ختم می شود. کودک ساختار (ویژگی ها) و رفتار (روش) والدین را به ارث می برد، اما در عین حال می تواند دارای عناصر ساختاری جدید و روش های جدید باشد. UML امکان ارث بری چندگانه را فراهم می کند، جایی که یک موجودیت به بیش از یک موجودیت اصلی مرتبط است.
  • پیاده سازی- رابطه بین موجودی که یک ویژگی رفتار (رابط) را با موجودی که اجرای این رفتار را تعریف می کند (کلاس، جزء). این رابطه معمولاً هنگام مدل‌سازی اجزا استفاده می‌شود و در مقالات بعدی با جزئیات بیشتر توضیح داده خواهد شد.

نمودارها UML نمودارهای زیر را ارائه می دهد:

  • نمودارهایی که رفتار سیستم را توصیف می کنند:
    • نمودارهای حالت
    • نمودارهای فعالیت،
    • نمودارهای اشیاء،
    • نمودارهای توالی،
    • نمودارهای همکاری؛
  • نمودارهایی که پیاده سازی فیزیکی سیستم را توصیف می کنند:
    • نمودارهای اجزاء؛
    • نمودارهای استقرار

نمای کنترل مدل. بسته ها

قبلاً گفتیم که برای اینکه یک مدل به خوبی توسط انسان ها درک شود، لازم است که آن را به صورت سلسله مراتبی سازماندهی کنیم و تعداد کمی موجودیت در هر سطح از سلسله مراتب باقی بماند. UML شامل ابزاری برای سازماندهی نمایش سلسله مراتبی یک مدل - بسته ها است. هر مدلی شامل مجموعه‌ای از بسته‌ها است که ممکن است شامل کلاس‌ها، موارد استفاده و سایر موجودیت‌ها و نمودارها باشد. یک بسته می تواند حاوی بسته های دیگری باشد که امکان ایجاد سلسله مراتب را فراهم می کند. UML نمودارهای بسته جداگانه ارائه نمی دهد، اما ممکن است در نمودارهای دیگر ظاهر شوند. بسته به صورت یک مستطیل با یک نشانک به تصویر کشیده شده است.

آنچه UML ارائه می دهد.

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

و آخرین مورد ...

با وجود تمام جذابیت های UML، استفاده از آن در مدل سازی نرم افزار واقعی بدون ابزارهای مدل سازی بصری دشوار خواهد بود. چنین ابزارهایی به شما این امکان را می دهند که نمودارها را به سرعت بر روی صفحه نمایش ارائه دهید، آنها را مستند کنید، الگوهای کد برنامه را در زبان های برنامه نویسی مختلف OO ایجاد کنید و طرحواره های پایگاه داده ایجاد کنید. اکثر آنها شامل امکان مهندسی مجدد کدهای برنامه هستند - بازیابی پیش بینی های خاصی از مدل نرم افزار با تجزیه و تحلیل خودکار کدهای منبع برنامه ها، که برای اطمینان از انطباق بین مدل و کدها و هنگام طراحی سیستم هایی که عملکرد سیستم های قبلی را به ارث می برند بسیار مهم است.

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

UML چیست؟

اگر به تصاویر داخل نگاه کنید موتورهای جستجو، سپس مشخص می شود که UML- چیزی در مورد نمودارها، فلش ها و مربع هاست. آنچه مهم است این است که UML به عنوان ترجمه می شود زبان مدلسازی یکپارچه. کلمه Unified در اینجا مهم است. یعنی تصاویر ما نه تنها توسط ما، بلکه توسط دیگرانی که UML را می شناسند نیز درک می شوند. معلومه که اینجوریه زبان بین المللیرسم نمودارها

همانطور که ویکی پدیا می گوید

UML یک زبان توصیف گرافیکی برای مدل‌سازی شی در توسعه نرم‌افزار، مدل‌سازی فرآیند کسب‌وکار، طراحی سیستم‌ها و نمایش ساختارهای سازمانی است.
جالب ترین چیزی که همه به آن فکر نمی کنند یا متوجه نمی شوند این است که UML دارای مشخصات است. علاوه بر این، حتی یک مشخصات UML2 نیز وجود دارد. جزئیات بیشتر در مورد مشخصات را می توانید در وب سایت Object Management Group بیابید. در واقع، این گروه در حال توسعه مشخصات UML هستند. همچنین جالب است که UML به توصیف ساختار کلاس ها محدود نمی شود. انواع مختلفی از نمودارهای UML وجود دارد. شرح مختصری از انواع نمودارهای UML را می توان در همان ویکی پدیا مشاهده کرد: UML - نمودارها یا در ویدیوی تیمور باتیرشینوف نمای کلی نمودارهای UML. UML همچنین به طور گسترده برای توصیف فرآیندهای مختلف استفاده می شود، به عنوان مثال در اینجا: Single sign-on با استفاده از JWT. در بازگشت به استفاده از نمودارهای کلاس UML، شایان ذکر است که کتاب Head First: Design Patterns، که در آن الگوها با همان نمودارهای UML نشان داده شده اند. معلوم می شود که UML واقعاً در حال استفاده است. و معلوم می شود که دانش و درک کاربرد آن یک مهارت کاملا مفید است.

کاربرد

بیایید ببینیم چگونه می توانید با همین UML از IDE کار کنید. بیایید به عنوان IDE در نظر بگیریم ایده IntelliJ. اگر استفاده می کنید IntelliJ Idea Ultimate، سپس افزونه را "خارج از جعبه" نصب خواهیم کرد پشتیبانی UML". به شما امکان می دهد به طور خودکار نمودارهای کلاس زیبایی ایجاد کنید. به عنوان مثال، از طریق Ctrl+N یا آیتم منو "Navigate" -> "Class" به کلاس می رویم. ArrayList. در حال حاضر، از طریق منوی زمینهبا نام کلاس، "Diagram" -> "Show diagram popup" را انتخاب کنید. در نتیجه، یک نمودار زیبا دریافت می کنیم:

اما اگر بخواهید خودتان آن را بکشید، و حتی نسخه نهایی ایده را ندارید، چه؟ اگر از IntelliJ Idea Community Edition استفاده کنیم، چاره دیگری نداریم. برای انجام این کار، باید بدانید که چگونه چنین نمودار UML ساختار یافته است. ابتدا باید Graphviz را نصب کنیم. این مجموعه ای از ابزارهای کاربردی برای تجسم نمودارها است. توسط افزونه ای که ما از آن استفاده خواهیم کرد استفاده می شود. پس از نصب باید یک دایرکتوری اضافه کنید صندوقچهاز دایرکتوری نصب شده گرافویز V متغیر محیطیمحیط مسیر. پس از آن، در IntelliJ Idea، File -> Settings را از منو انتخاب کنید. در پنجره «تنظیمات»، دسته «افزونه‌ها» را انتخاب کنید، روی دکمه «مرور مخازن» کلیک کنید و افزونه ادغام PlantUML را نصب کنید. چرا این یکی انقدر خوبه؟ PlantUML? از یک زبان توصیف گراف به نام " نقطه"و این به آن اجازه می دهد تا جهانی تر باشد، زیرا این زبان نه تنها توسط PlantUML استفاده می شود. علاوه بر این، هر کاری که در زیر انجام می دهیم نه تنها در IDE، بلکه در سرویس آنلاین planttext.com. پس از نصب پلاگین PlantUML، ما قادر خواهیم بود نمودارهای UML را از طریق "File" -> "New" ایجاد کنیم. بیایید یک نمودار از نوع "کلاس UML" ایجاد کنیم. در طی این فرآیند، یک الگو با یک مثال به طور خودکار تولید می شود. بیایید محتویات آن را حذف کنیم و مقاله خود را با یک مقاله از Habr بسازیم: روابط طبقاتی - از UML تا کد. و برای اینکه بفهمیم چگونه می توان این را در متن به تصویر کشید، از کتابچه راهنمای PlantUML استفاده می کنیم: class-diagram plantuml. در ابتدا جدولی وجود دارد که نحوه توصیف اتصالات را نشان می دهد:

همچنین می‌توانیم به خود اتصالات در اینجا نگاه کنیم: «روابط بین کلاس‌ها در UML. مثال‌ها». بر اساس این مواد، بیایید شروع به ایجاد نمودار UML خود کنیم. بیایید محتوای زیر را برای توصیف دو کلاس اضافه کنیم: @startuml class ArrayList ( ) class LinkedList ( ) @enduml برای دیدن نتیجه در Idea، "View" -> "Tool Windows" -> "PlantUML" را انتخاب کنید. ما فقط دو مربع به نمایندگی از کلاس ها دریافت می کنیم. همانطور که می دانیم، هر دوی این کلاس ها رابط List را پیاده سازی می کنند. این رابطه کلاسی پیاده سازی نامیده می شود. برای به تصویر کشیدن چنین ارتباطی، از یک فلش با یک خط نقطه استفاده کنید. بیایید آن را به تصویر بکشیم: فهرست فهرست رابط< | . . ArrayList List < | . . LinkedList List - один из дочерних классов Collection . То есть он наследуется от Collection. Эта связь называется обобщением (generalization). Выглядит как стрелка с обычной непрерывной линией. Изобразим её: interface Collection Collection < | -- List Для نوع بعدیاتصال، به توضیحات کلاس ArrayList مدخلی در مورد آن اضافه می کنیم بسته خصوصیآرایه عناصر: ~ Object elementData اکنون می خواهیم نشان دهیم که ArrayList حاوی برخی از اشیاء است. در این مورد، نوع اتصال خواهد بود - تجمع(تجمع). جمع در این مورد ArrayList است، زیرا شامل اشیاء دیگری است. ما تجمیع را انتخاب می کنیم زیرا اشیاء موجود در لیست می توانند بدون لیست زندگی کنند: آنها بخش جدایی ناپذیر آن نیستند. طول عمر آنها به طول عمر لیست گره خورده نیست. آگرگات از لاتین به "مجموعه" ترجمه شده است، یعنی چیزی که از چیزی ساخته شده است. به عنوان مثال، در زندگی، یک واحد پمپاژ وجود دارد که از یک پمپ و یک موتور تشکیل شده است. خود واحد می تواند جدا شود و برخی از اجزای آن باقی بماند. به عنوان مثال، برای فروش یا قرار دادن در یک واحد دیگر. لیست هم همینطور. و این به صورت یک الماس خالی در نزدیکی واحد و یک خط پیوسته بیان می شود. بیایید آن را به صورت زیر ترسیم کنیم: کلاس Object ( ) ArrayList o- Object اکنون می خواهیم نشان دهیم که برخلاف ArrayList، کلاس LinkedList حاوی Node - کانتینرهایی است که به داده های ذخیره شده اشاره دارد. در این مورد، Nodes بخشی از خود LinkedList است و نمی تواند به طور جداگانه زندگی کند. Node مستقیماً محتوا را ذخیره نمی کند، بلکه فقط حاوی یک پیوند به آن است. به عنوان مثال، وقتی یک ردیف را به LinkedList اضافه می کنیم، یک Node جدید اضافه می کنیم که حاوی پیوندی به آن سطر و همچنین پیوندی به گره قبلی و بعدی است. این نوع اتصال نامیده می شود ترکیب بندی(ترکیب بندی). برای نمایش یک کامپوزیت (که از قطعات تشکیل شده است)، یک الماس رنگی ترسیم می شود که یک خط پیوسته به آن منتهی می شود. بیایید اکنون این را به شکل یک نمایش متنی اتصال بنویسیم: کلاس Node ( ) LinkedList * -- Node و اکنون باید یاد بگیریم که چگونه نوع مهم دیگری از اتصال را نمایش دهیم - اعتیاد(رابطه وابستگی). زمانی استفاده می‌شود که یک کلاس از کلاس دیگر استفاده می‌کند، و کلاس شامل کلاس مورد استفاده نیست و نسل آن نیست. به عنوان مثال، LinkedList و ArrayList می توانند یک ListIterator ایجاد کنند. بیایید این را به صورت فلش هایی با خط نقطه چین نشان دهیم: class ListIterator ListIterator< . . . ArrayList : create ListIterator < . . . LinkedList : create Выглядеть после всего это будет следующим образом:

می توانید تا جایی که لازم است وارد جزئیات شوید. همه نام‌ها در اینجا نشان داده شده است: "PlantUML - نمودار کلاس". علاوه بر این، هیچ چیز ماوراء طبیعی در ترسیم چنین نموداری وجود ندارد و هنگام کار بر روی وظایف خود، می توانید به سرعت آن را با دست ترسیم کنید. این امر مهارت های تفکر را از طریق معماری برنامه توسعه می دهد و به شناسایی کاستی ها در ساختار کلاس برنامه کمک می کند. مرحله اولیه، نه زمانی که قبلاً یک روز را صرف اجرای مدل اشتباه کرده اید. فکر می کنم این دلیل خوبی برای امتحان کردن است؟)

اتوماسیون

راه های مختلفی وجود دارد تولید خودکارنمودارهای PlantUML به عنوان مثال، در اندیشهیک پلاگین SketchIT وجود دارد، اما آنها را به درستی ترسیم نمی کند. به عنوان مثال، پیاده سازی اینترفیس ها به اشتباه ترسیم شده است (به عنوان وراثت نمایش داده می شود). همچنین نمونه هایی در اینترنت وجود دارد که چگونه می توان این را در چرخه عمر ساخت پروژه خود قرار داد. بیایید بگوییم برای ماونمثالی از استفاده از uml-java-docklet وجود دارد. برای نشان دادن نحوه انجام این کار، از Maven Archetype برای ایجاد سریع پروژه Maven استفاده می کنیم. بیایید دستور: mvn archetype:generate را در مورد سوال انتخاب فیلتر ( یک عدد انتخاب کنید یا فیلتر اعمال کنید) به سادگی با فشردن Enter پیش فرض را ترک کنید. همیشه خواهد بود" maven-archetype-quickstart". آخرین نسخه را انتخاب کنید. سپس به سوالات پاسخ دهید و ایجاد پروژه را کامل کنید:

از آنجایی که Maven تمرکز این مقاله نیست، پاسخ به سوالات Maven خود را می توانید در مرکز کاربران Maven پیدا کنید. در پروژه تولید شده، فایل توضیحات پروژه را برای ویرایش باز کنید، pom.xml. بیایید محتویات مربوط به نصب uml-java-docklet را در آن کپی کنیم. مصنوع مورد استفاده در توضیحات در مخزن مرکزی Maven یافت نشد. اما برای من با این کار کرد: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. یعنی فقط باید در آن توضیحات جایگزین کنید شناسه گروهبا " info.leadinglight" بر " com.chfourie"و نسخه را نصب کنید" 1.0.0 بعد از این می توانیم در دایرکتوری که فایل در آن قرار دارد اجرا کنیم pom.xmlاین دستورات: mvn clean install و mvn javadoc:javadoc. حال اگر مستندات تولید شده (explorer target\site\apidocs\index.html) را باز کنیم، نمودارهای UML را مشاهده خواهیم کرد. به هر حال، پیاده سازی قبلاً به درستی در اینجا نمایش داده شده است)

نتیجه

همانطور که می بینید، UML به شما اجازه می دهد تا ساختار برنامه خود را تجسم کنید. علاوه بر این، UML فقط به این محدود نمی شود. با استفاده از UML، می توانید فرآیندهای مختلف در شرکت خود را توصیف کنید یا فرآیند کسب و کار را که در آن عملکردی که می نویسید عمل می کند، توصیف کنید. اینکه UML چقدر برای شما مفید است بستگی به خود شما دارد، اما وقت گذاشتن برای خواندن جزئیات بیشتر در هر صورت مفید خواهد بود. #ویاچسلاو نسخه انگلیسی این پست: نمودار UML جاوا در CodeGym

 


خواندن:



استفاده از تابع isnull()

استفاده از تابع isnull()

2017/06/27 NULL، ISNULL() و IS NULL در جستارهای 1C NULL NULL چیست در نتیجه یک پرس و جو به معنای عدم وجود یک مقدار است (این خالی نیست...

موارد در مورد موقعیت های آموزشی

موارد در مورد موقعیت های آموزشی

وزارت آموزش و پرورش و علوم موسسه آموزشی دولتی فدرال روسیه آموزش عالی حرفه ای "ایالت خاکاس...

نگهبان پراچت (ترجمه S. Zhuzhunava، ویرایش A. Zhikarentsev) دانلود fb2. نقل قول از کتاب «نگهبانان! نگهبانان! تری پرچت

نگهبان پراچت  (ترجمه S. Zhuzhunava، ویرایش A. Zhikarentsev) دانلود fb2.  نقل قول از کتاب «نگهبانان!  نگهبانان!  تری پرچت

2 فوریه 2017 نگهبان! نگهبانان! Terry Pratchett (هنوز هیچ امتیازی وجود ندارد) عنوان: Guard! نگهبانان! نویسنده: Terry Pratchett سال: 1989 ژانر: خارجی...

نامگذاری در حسابداری 1s 8

نامگذاری در حسابداری 1s 8

حساب‌های حسابداری مورد کجا تغییر می‌کنند (1C Accounting 8.3، نسخه 3.0) 2016-12-08T11:33:27+00:00 بیشتر و بیشتر، حسابداران از من می‌پرسند که کجا...

فید-تصویر RSS