ابزارهایی برای رسم نمودارهای UML. مدل سازی در UML نمودارهای عمومی مثالی از نمودارها در زبان uml

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 ایجاد کنید و طرحواره های پایگاه داده ایجاد کنید. اکثر آنها شامل امکان مهندسی مجدد کدهای برنامه هستند - بازیابی پیش بینی های خاصی از مدل نرم افزار با تجزیه و تحلیل خودکار کدهای منبع برنامه ها، که برای اطمینان از انطباق بین مدل و کدها و هنگام طراحی سیستم هایی که عملکرد سیستم های قبلی را به ارث می برند بسیار مهم است.

10.4. نمودارهای UML

10.4.1. انواع نمودارهای تصویری UML

UML به شما امکان می دهد چندین نوع نمودار بصری ایجاد کنید:

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

نمودارهای توالی؛

نمودارهای تعاونی;

نمودارهای کلاس؛

نمودارهای حالت؛

نمودارهای اجزاء؛

نمودارهای قرارگیری

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

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

نمودارهای مورد استفاده تعامل بین موارد استفاده را نشان می‌دهند که عملکردهای یک سیستم را نشان می‌دهند و بازیگرانی که نشان‌دهنده افراد یا سیستم‌هایی هستند که اطلاعات را دریافت یا ارسال می‌کنند. این سیستم. یک نمونه نمودار مورد استفاده برای یک دستگاه باجه خودکار (ATM) در شکل نشان داده شده است. 10.1.

برنج. 10.1.از نمودار موردی استفاده کنید

نمودار نشان دهنده تعاملات بین موارد استفاده و بازیگران است. این نیازهای سیستم را از دیدگاه کاربر منعکس می کند. بنابراین، موارد استفاده عملکردهایی هستند که توسط سیستم انجام می شود و بازیگران ذینفعان در ارتباط با سیستم در حال ایجاد هستند. نمودارها نشان می دهد که کدام بازیگران موارد استفاده را آغاز می کنند. آنها همچنین نشان می دهند که یک بازیگر اطلاعاتی را از یک مورد استفاده دریافت می کند. در اصل، نمودار مورد استفاده می تواند الزامات سیستم را نشان دهد. در مثال ما، مشتری بانک موارد استفاده مختلفی را آغاز می کند: "برداشت پول از حساب"، "انتقال پول"، "واریز پول به حساب"، "نمایش موجودی"، "تغییر شماره شناسه"، "پرداخت". کارمند بانک می تواند مورد استفاده از تغییر شماره شناسایی را آغاز کند. از مورد استفاده "پرداخت" یک فلش به سمت سیستم اعتباری وجود دارد. بازیگران می توانند باشند سیستم های خارجی، در این مورد، سیستم اعتباری دقیقاً به عنوان یک بازیگر نشان داده می شود - خارج از سیستم ATM است. فلشی که از یک مورد استفاده به یک بازیگر اشاره می کند نشان می دهد که مورد استفاده اطلاعاتی را در اختیار بازیگر قرار می دهد. در این حالت، مورد استفاده Make Payment اطلاعاتی در مورد پرداخت با کارت اعتباری در اختیار سیستم اعتباری قرار می دهد.

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

10.4.3. نمودارهای توالی

نمودارهای دنباله ای جریان رویدادهایی را که در یک مورد استفاده رخ می دهند را به تصویر می کشند. به عنوان مثال، مورد استفاده «برداشت پول» چندین توالی ممکن را ارائه می‌کند: برداشت پول، تلاش برای برداشت پول زمانی که پول کافی در حساب وجود ندارد، تلاش برای برداشت پول با استفاده از شماره شناسایی نادرست، و برخی موارد دیگر. یک سناریوی عادی برای برداشت 20 دلار از یک حساب (در صورت عدم وجود مشکلاتی مانند شماره شناسایی نادرست یا وجوه کافی در حساب) در شکل نشان داده شده است. 10.2.

شکل 10.2.نمودار توالی برای مشتری جو که 20 دلار از حساب خود برداشت می کند

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

مورد استفاده زمانی شروع می شود که مشتری کارت خود را در خواننده قرار می دهد - این شی در مستطیل بالای نمودار نشان داده شده است. شماره کارت را می خواند، شیء Joe Account را باز می کند و صفحه ATM را مقداردهی اولیه می کند. صفحه از جو شماره ثبتش را می خواهد. مشتری شماره 1234 را وارد می کند. صفحه شماره را در برابر شی حساب جو بررسی می کند و متوجه می شود که صحیح است. سپس صفحه منویی را برای انتخاب به جو نشان می‌دهد و او «Witdraw Money» را انتخاب می‌کند. صفحه از او می پرسد که چقدر می خواهد برداشت کند و جو 20 دلار را وارد می کند. صفحه نمایش پول را از حساب برداشت می کند. با انجام این کار، یک سری از فرآیندهای انجام شده توسط شی "حساب جو" را آغاز می کند. در عین حال، تأیید می شود که این حساب مطابق با حداقل، 20 دلار و مبلغ مورد نیاز از صورت حساب کسر می شود. سپس به صندوق دستور داده می شود که "یک چک و 20 دلار وجه نقد صادر کند." در نهایت، همان شی «حساب جو» به کارتخوان دستور می دهد تا کارت را برگرداند.

بنابراین، این نمودار sequence دنباله ای از اقدامات را نشان می دهد که مورد استفاده «برداشت پول از حساب» را با استفاده از مثال خاص مشتری جو که 20 دلار برداشت کرده است، اجرا می کند. با مشاهده این نمودار، کاربران با ویژگی های کار خود آشنا می شوند. تحلیلگران دنباله (جریان) اقدامات را می بینند، توسعه دهندگان اشیایی را که باید ایجاد شوند و عملیات آنها را می بینند. متخصصان کنترل کیفیت جزئیات فرآیند را درک خواهند کرد و می توانند آزمایش هایی را برای تأیید آنها ایجاد کنند. بنابراین، نمودارهای توالی برای همه افراد درگیر در یک پروژه مفید است.

10.4.4. نمودارهای تعاونی

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

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

برنج. 10.3.نمودار تعاونی روند برداشت پول از حساب را شرح می دهد

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

10.4.5. نمودارهای کلاس

نمودارهای کلاس، تعاملات بین کلاس ها را در یک سیستم منعکس می کنند. به عنوان مثال، "حساب جو" یک شی است. نوع چنین شی را می توان به طور کلی یک حساب در نظر گرفت، یعنی "Account" یک کلاس است. کلاس ها حاوی داده ها و رفتار (عملکردهایی) هستند که بر آن داده ها تأثیر می گذارد. بنابراین، کلاس Account شامل شماره شناسایی مشتری و اقداماتی است که آن را تأیید می کند. در نمودار کلاس، یک کلاس برای هر نوع شی از Sequence Diagrams یا Cooperative Diagrams ایجاد می شود. نمودار کلاس برای مورد استفاده از پول برداشت در شکل نشان داده شده است. 10.4.

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

برنج. 10.4.نمودار کلاس

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

10.4.6. نمودارهای حالت

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

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

برنج. 10.5.نمودار حالت برای کلاس حساب

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

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

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

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

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

نمودارهای حالت عمدتاً برای مستندسازی مورد نیاز است.

10.4.7. نمودارهای اجزاء

نمودارهای مؤلفه نشان می دهد که مدل در چه شکلی به نظر می رسد سطح فیزیکی. اجزا را نشان می دهد نرم افزارسیستم شما و ارتباطات بین آنها دو نوع مؤلفه وجود دارد: مؤلفه های اجرایی و کتابخانه های کد.

در شکل شکل 10.6 یکی از نمودارهای اجزای یک سیستم ATM را نشان می دهد. این نمودار اجزای یک کلاینت سیستم خودپرداز را نشان می دهد. در این مورد، تیم توسعه تصمیم گرفت سیستم را با استفاده از زبان C++ بسازد. هر کلاس فایل هدر و فایل پسوند خود را دارد. CPP، به طوری که هر کلاس به اجزای خود در نمودار تبدیل می شود. جزء تاریک انتخاب شده نامیده می شود مشخصات بستهو مربوط به فایل بدنه کلاس ATM در C++ (فایل با پسوند . CPP) است. یک جزء انتخاب نشده مشخصات بسته نیز نامیده می شود، اما مربوط به فایل سرآیند کلاس زبان C++ (فایل با پسوند .H) است. جزء ATM. EXE یک مشخصات وظیفه است و جریان پردازش اطلاعات را نشان می دهد. در این مورد، موضوع پردازش، برنامه اجرایی است.

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

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

برنج. 10.6.نمودار مولفه

10.4.8. نمودارهای قرارگیری

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

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

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

10.7. نمودار قرارگیری

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

از کتاب مایکروسافت آفیس نویسنده لئونتیف ویتالی پتروویچ

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

از کتاب کامپیوتر برای 100. شروع کنیم ویندوز ویستا نویسنده زوزولیا یوری

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

برگرفته از کتاب کار اداری موثر نویسنده پتاشینسکی ولادیمیر سرگیویچ

نمودارها بصری ترین قابلیت اکسلارائه نتایج محاسباتی یا داده های انباشته شده در قالب نمودارها (نمودار) است: گاهی اوقات چشمگیرترین اعداد به روشی که حتی با گرافیک های ساده قابل انجام است نمی توانند متقاعد شوند. اکسل دارد

از کتاب کار اکسل. دوره چند رسانه ای نویسنده مدینوف اولگ

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

از کتاب Word 2007. آموزش محبوب نویسنده Krainsky I

ساختن نمودار برای مثال اول، باید جدول نشان داده شده در شکل را ایجاد کنید. 8.1. برنج. 8.1. جدول اندازه گیری دما بر اساس داده های این جدول یک نمودار ساده از تغییرات دما می سازیم. محدوده پر شده را در جدول انتخاب کنید. رفتن به

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

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

برگرفته از کتاب تجزیه و تحلیل و طراحی شی گرا با نمونه هایی از کاربردها در C++ توسط بوچ گریدی

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

برگرفته از کتاب فناوری های برنامه نویسی نویسنده Kamaev V A

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

برگرفته از کتاب مدلسازی فرآیند کسب و کار با BPwin 4.0 نویسنده مالاکوف سرگئی ولادیمیرویچ

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

از کتاب OrCAD PSpice. تحلیل و بررسی مدارهای الکتریکی توسط کیون جی.

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

از کتاب VBA برای Dummies توسط استیو کامینگز

10.4. نمودارهای UML 10.4.1. انواع نمودارهای تصویری UMLUML به شما امکان می دهد چندین نوع نمودار بصری ایجاد کنید: از نمودارهای موردی استفاده کنید. نمودارهای دنباله ای؛ نمودارهای تعاونی؛ نمودارهای کلاس؛ نمودارهای حالت؛ نمودارها

برگرفته از کتاب راهنمای خودآموزی برای کار بر روی مکینتاش نویسنده سوفیا اسکریلینا

1.2.6. قاب نمودار در شکل. شکل 1.2.26 یک نمونه معمولی از یک نمودار تجزیه با جعبه های مرزی به نام قاب نمودار را نشان می دهد. برنج. 1.2.26. نمونه ای از نمودار تجزیه با یک قاب سیمی. Wireframe حاوی عنوان ( قسمت بالاقاب ها) و زیرزمین (قسمت پایین).

از کتاب نویسنده

نمودارهای زمان بندی برای به دست آوردن نمودارهای زمان بندی ولتاژ ورودی و خروجی، باید فایل ورودی را کمی تغییر دهید. مانند مثال قبلی، از یک ولتاژ ورودی سینوسی استفاده خواهد شد: Vi 1 0 sin (0 0. 5V 5kHz) همراه با آنالیز گذرا

از کتاب نویسنده

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

از کتاب نویسنده

5.1.14. نمودارها نمودارها نمایش گرافیکی داده های عددی در یک جدول هستند. صفحات چندین نوع نمودار ارائه می دهد: ستون، ستون پشته ای، نمودار میله ای، نمودار میله ای انباشته، خط، ناحیه، ناحیه پشته ای

از کتاب نویسنده

5.2.8. نمودارها نمودار یک نمایش گرافیکی از داده ها از یک محدوده انتخاب شده است.برای ساختن یک نمودار، الگوریتم1 زیر را دنبال کنید. جدولی از مقادیر محاسبه شده ایجاد کنید.2. محدوده مورد نظر را انتخاب کنید (ممکن است شامل مستطیل های غیر مجاور باشد

من فکر می کنم همه در کودکی چنین ضرب المثلی را شنیده اند که " هفت بار برش را یک بار اندازه بگیرید". در برنامه نویسی هم همینطور است. همیشه بهتر است قبل از صرف زمان برای اجرای آن به پیاده سازی فکر کنید. هنگام پیاده سازی آن، اغلب باید کلاس هایی ایجاد کنید و تعامل آنها را ایجاد کنید. و اغلب یک نمایش بصری از آن می تواند کمک کند. مشکل را به درست ترین راه حل کنید اینجاست که ما کمک می کنیم 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 را نصب کنیم. این مجموعه ای از ابزارهای کاربردی برای تجسم نمودارها است. توسط افزونه ای که ما از آن استفاده خواهیم کرد استفاده می شود. پس از نصب باید یک دایرکتوری اضافه کنید صندوقچهاز دایرکتوری نصب شده گرافویزبه متغیر محیطی مسیر. پس از آن، در 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" -> " را انتخاب کنید. ابزار ویندوز" -> "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

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

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

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

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

چرا به چندین نوع نمودار نیاز دارید

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

سیستم- مجموعه ای از زیرسیستم های کنترل شده به هم پیوسته که با هدف مشترک عملیات متحد شده اند.

بله، خیلی آموزنده نیست. پس سیستم فرعی چیست؟ برای روشن شدن وضعیت، بیایید به کلاسیک ها بپردازیم:

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

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

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

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

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

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

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

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

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

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

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

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

انواع نمودار

UML 1.5 تعریف شده است دوازده نوع نمودار، به سه گروه تقسیم می شود:

  • چهار نوع نمودار نشان دهنده ساختار استاتیک برنامه است.
  • پنج نشان دهنده جنبه های رفتاری سیستم هستند.
  • سه نشان دهنده جنبه های فیزیکی عملکرد سیستم هستند (نمودار پیاده سازی).

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

با این حال، تعداد دقیق نمودارهای متعارفبرای ما کاملاً بی اهمیت است، زیرا ما نه همه آنها، بلکه فقط برخی را در نظر خواهیم گرفت - به این دلیل که تعداد انواع نمودار برای یک مدل خاص از یک برنامه خاص به شدت ثابت نیست. برای کاربردهای ساده نیازی به ساخت تک تک نمودارها نیست. به عنوان مثال، برای یک برنامه محلی، نیازی به ساخت یک نمودار استقرار نیست. درک این نکته مهم است که لیست نمودارها به مشخصات پروژه در حال توسعه بستگی دارد و توسط خود توسعه دهنده تعیین می شود. اگر خواننده کنجکاو همچنان بخواهد در مورد تمام نمودارهای UML بداند، او را به استاندارد UML ارجاع می دهیم (http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML). یادآور می‌شویم که هدف از این دوره توصیف مطلق تمام قابلیت‌های UML نیست، بلکه تنها معرفی این زبان و ارائه یک ایده اولیه از این فناوری است.

بنابراین، ما به طور خلاصه به انواع نمودارهایی مانند:

  • نمودار مورد استفاده;
  • نمودار کلاس؛
  • نمودار شی;
  • نمودار توالی؛
  • نمودار تعامل؛
  • نمودار حالت؛
  • نمودار فعالیت;
  • نمودار استقرار.

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

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

هر سیستم (از جمله نرم افزار) با در نظر گرفتن این واقعیت طراحی می شود که در طول عملیات آنها توسط افراد استفاده می شود و / یا با سیستم های دیگر تعامل دارند. موجوداتی که سیستم در حین کار با آنها تعامل دارد نامیده می شوند بازیگرانو هر بازیگر انتظار دارد که سیستم به شیوه ای کاملاً تعریف شده و قابل پیش بینی رفتار کند. بیایید سعی کنیم تعریف دقیق تری از اکتور ارائه دهیم. برای این کار از یک فرهنگ لغت تصویری فوق العاده برای UML استفاده می کنیم مربی زیکام:

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

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

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


برنج. 2.1.

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

مورد استفاده- توصیف یک جنبه جداگانه از رفتار سیستم از دیدگاه کاربر (Butch).

تعریف کاملاً واضح و جامع است، اما با استفاده از همان می توان آن را بیشتر توضیح داد مربی زیکام"om:

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

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

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

    زبان مدلسازی یکپارچه (UML) در حال حاضر استاندارد عملی برای توصیف (مستند کردن) نتایج طراحی و توسعه سیستم های شی گرا است. توسعه UML در سال 1994 توسط Grady Booch و James Rumbaugh که در Rational Software کار می کردند آغاز شد. در پاییز 1995، ایوار جاکوبسون به آنها پیوست و در اکتبر همان سال، نسخه اولیه 0.8 روش Unified Method منتشر شد. از آن زمان، چندین نسخه از مشخصات UML منتشر شده است که دو مورد از آنها دارای وضعیت استاندارد بین المللی هستند:

    UML 1.4.2 - "ISO/IEC 19501:2005. فناوری اطلاعات. پردازش توزیع باز زبان مدلسازی یکپارچه (UML). نسخه 1.4.2" (انگلیسی "فناوری اطلاعات. پردازش توزیع شده باز. زبان مدل سازی یکپارچه (UML). نسخه 1.4.2").

    UML 2.4.1 - "ISO/IEC 19505-1:2012. فناوری اطلاعات. زبان مدلسازی یکپارچه گروه مدیریت شیء (OMG UML). بخش 1. زیرساخت" (eng. "فناوری اطلاعات -- گروه مدیریت شیء زبان مدلسازی واحد (OMG) UML) - قسمت 1: زیرساخت") و "ISO/IEC 19505-2:2012. فناوری اطلاعات. گروه مدیریت اشیاء زبان مدلسازی یکپارچه (OMG UML). قسمت 2. روبنا" (eng. "فناوری اطلاعات -- گروه مدیریت اشیا" زبان مدلسازی یکپارچه (OMG UML) - قسمت 2: روبنا").

    آخرین مشخصات زبان رسمی را می توان در www.omg.org یافت.

    ساختار کلی UML در شکل زیر نشان داده شده است.

    برنج. 11.1. ساختار UML

    11.2. معنای UML و نحو

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

    نحو - روش های ترکیب کلمات و اشکال آنها در عبارات و جملات، ترکیب جملات در جملات پیچیده، روش های ایجاد عبارات به عنوان بخشی از یک متن.

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

    11.3. نماد UML

    نشانه گذاری یک تفسیر گرافیکی از معناشناسی برای نمایش بصری آن است.

    UML سه تعریف می کند نوع موجودیت :

    ساختاری - انتزاعی که بازتابی از یک شی مفهومی یا فیزیکی است.

    گروه بندی - عنصری که برای ترکیب معنایی عناصر نمودار استفاده می شود.

    توضیحی (تشخیری) - نظر در مورد یک عنصر نمودار.

    جدول زیر نشان می دهد توضیح کوتاهموجودیت های اصلی مورد استفاده در نمادهای گرافیکی و روش های اصلی نمایش آنها.

    جدول 11.1. موجودیت ها

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

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

    (بازیگر)

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

    (مورد استفاده)
    شرح اقدامات انجام شده توسط سیستم که منجر به نتیجه قابل توجهی برای بازیگر می شود

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

    (جزء)
    بخش فیزیکی سیستم (فایل)، از جمله ماژول های سیستم که اجرای مجموعه ای از رابط ها را ارائه می دهد

    (رابط)

    iCalculation
    مجموعه ای از عملیات که یک سرویس (مجموعه خدمات) ارائه شده توسط یک کلاس یا جزء را تعریف می کند

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

    (قطعه)
    ناحیه تعامل خاص بین نمونه های بازیگر و اشیاء

    (پارتیشن فعالیت)
    گروهی از عملیات (حوزه مسئولیت) که توسط یک موجودیت (عملگر، شی، جزء، گره و غیره) انجام می شود.

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

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

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

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

    جدول 11.3. ارتباط

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

    برای تداعی، تجمع و ترکیب را می توان مشخص کرد کثرت (eng. multiplicity)، مشخص کردن تعداد کل نمونه‌های موجودیت‌های شرکت‌کننده در رابطه. معمولاً در هر طرف رابطه در نزدیکی موجودیت مربوطه نشان داده می شود. تعدد را می توان به روش های زیر نشان داد:

    - * - هر تعداد کپی، از جمله هیچ کدام.

    عدد صحیح غیر منفی - تعدد به شدت ثابت و برابر با عدد مشخص شده است (به عنوان مثال: 1، 2 یا 5).

    محدوده اعداد صحیح غیر منفی "عدد اول.. عدد دوم" (به عنوان مثال: 1..5، 2..10 یا 0..5).

    محدوده ای از اعداد از یک مقدار اولیه خاص تا یک "نخستین عدد.. *" نهایی دلخواه (به عنوان مثال: 1..*، 5..* یا 0..*)؛

    فهرست کردن اعداد صحیح و محدوده های غیر منفی که با کاما از هم جدا شده اند (به عنوان مثال: 1، 3..5، 10، 15..*).

    اگر تعدد مشخص نشده باشد، مقدار آن 1 در نظر گرفته می شود. تعدد نمونه های موجود در وابستگی، تعمیم و اجرا همیشه 1 فرض می شود.

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

    جدول 11.4. مکانیسم های گسترش

    نام تعیین تعریف (معناشناسی)
    کلیشه
    (کلیشه)
    « » نامگذاری که معنای یک عنصر نمادگذاری را مشخص می کند (به عنوان مثال: یک وابستگی با کلیشه "شامل" یک رابطه شامل در نظر گرفته می شود، و یک کلاس با کلیشه "مرز" یک کلاس مرزی است)
    وضعیت نگهبانی
    (شرایط نگهبانی)
    شرط بولی (به عنوان مثال: یا [شناسایی تکمیل شد])
    محدودیت
    (محدودیت)
    { } قاعده ای که معنای یک عنصر مدل را محدود می کند (به عنوان مثال، (زمان اجرا کمتر از 10 میلی ثانیه))
    مقدار پرچم گذاری شده
    (برچسب ارزش)
    { } ویژگی جدید یا شفاف کننده یک عنصر نشانه گذاری (به عنوان مثال: (نسخه = 3.2))

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

    الف) تعیین استاندارد ب) تعیین استاندارد
    با کلیشه متن
    ج) کلیشه گرافیکی

    برنج. 11.2. نمونه هایی از نمایش کلاس استاندارد و کلیشه ای

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

    جدول 11.5. نمودارها

    نمودار هدف
    با توجه به درجه اجرای فیزیکی با نمایش دینامیک با جنبه نمایش داده شده

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

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

    (بسته)
    مجموعه ای از بسته ها و روابط بین آنها را نمایش می دهد منطقی یا
    فیزیکی
    استاتیک جزء
    رفتار
    (رفتار - اخلاق)

    (ماشین دولتی)
    وضعیت یک موجودیت و انتقال بین آنها را در طول چرخه عمر آن نشان می دهد منطقی پویا رفتاری

    (فعالیت)
    نمایش فرآیندهای تجاری در سیستم (توضیح الگوریتم های رفتار)
    فعل و انفعالات
    (اثر متقابل)

    (توالی)
    دنباله ای از ارسال پیام بین اشیا و بازیگران را نشان می دهد

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

    (جزء)
    اجزای سیستم (برنامه ها، کتابخانه ها، جداول و غیره) و اتصالات بین آنها را نمایش می دهد فیزیکی استاتیک جزء

    (گسترش)
    محل قرارگیری اجزاء در گره های شبکه و همچنین پیکربندی آن را نمایش می دهد

    استاندارد UML 2.x همچنین نمودارهای اضافی و بسیار تخصصی را تعریف می کند:

    نمودار شی - مشابه، اما اشیا به جای کلاس ها نمایش داده می شوند.

    نمودار زمان - وضعیت یک شی را در طول زمان توصیف می کند.

    نمودار ساختار ترکیبی - پورت ها (شامل رابط ها) یک کلاس را برای تعامل با کلاس های دیگر توصیف می کند.

    نمودار نمایه - مشابه با شرح کلاس های موجود در آنها؛

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

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

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

    جدول 11.6. رابطه بین مدل ها و نمودارها

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

    برخی از نمودارها پس از ساخت نیاز به توسعه و شفاف سازی به عنوان بخشی از توسعه مدل بعدی دارند. فرآیند تکنولوژیکی). بنابراین، برای مثال، آنها باید در طول توسعه روشن شوند. در مدل ها

    4. مفهوم " " را تعریف کنید.