مدلسازی نرمافزار و UML
مدلسازی نرمافزار یک سیستم را از طریق انتزاعاتی که ساختار و رفتار آن را به تصویر میکشند، نمایش میدهد و زبان مدلسازی یکپارچه (UML) نماد گرافیکی استاندارد برای بیان چنین مدلهایی است.
Definition
مدلسازی نرمافزار عبارت است از ساخت نمایشهای انتزاعی از یک سیستم نرمافزاری برای تحلیل، طراحی و برقراری ارتباط در مورد آن، و UML یک زبان مدلسازی استاندارد شده و عمومی است که مجموعهای یکپارچه از انواع نمودارها را برای این نمایشها فراهم میکند.
Scope
این موضوع شامل مدلهای ساختاری مانند نمودارهای کلاس، مؤلفه و استقرار؛ مدلهای رفتاری مانند نمودارهای مورد کاربرد، توالی، فعالیت و ماشین حالت؛ نقش مدلها در تحلیل، طراحی و ارتباطات؛ مهندسی مدلمحور و تولید کد؛ و سطح مناسب دقت مدلسازی برای یک پروژه معین میشود.
Core questions
- کدام جنبههای یک سیستم توسط مدلهای ساختاری در مقابل مدلهای رفتاری به تصویر کشیده میشوند؟
- انواع اصلی نمودارهای UML چگونه یک طراحی را نمایش میدهند؟
- چه میزان دقت مدلسازی برای یک پروژه معین مناسب است؟
- چه زمانی تولید خودکار کد از مدلها ارزشمند است؟
Key theories
- نماهای چندگانه از یک سیستم
- یک سیستم از دیدگاههای مکمل – ساختار ایستا، تعاملات، رفتار حالت و استقرار – مدلسازی میشود که هر یک توسط انواع نمودارهای مناسب به تصویر کشیده میشوند، زیرا هیچ نمای واحدی تمام اطلاعات طراحی مرتبط را منتقل نمیکند.
- مهندسی مدلمحور
- مدلها میتوانند به عنوان مصنوعات اصلی توسعه عمل کنند که از طریق تبدیلها، پیادهسازیها به صورت جزئی یا کلی از آنها تولید میشوند، که سطح انتزاع را بالا برده و طراحی را مستقیماً به کد مرتبط میکند.
Clinical relevance
مدلها قصد طراحی را صریح میکنند، از تحلیل قبل از وجود کد پشتیبانی میکنند و یک زبان مشترک را در سراسر تیم فراهم میآورند؛ ارزش آنها به استفاده از مقدار مناسب مدلسازی بستگی دارد، زیرا مدلهای بیش از حد یا منسوخ شده بدون فایده، هزینه ایجاد میکنند.
Evidence & guidelines
مشخصات OMG UML نماد و معناشناسی استاندارد را تعریف میکند و استانداردهای مرتبط OMG مانند SysML و MOF مدلسازی را به مهندسی سیستمها و فرامدلسازی گسترش میدهند.
History
UML در اواسط دهه ۱۹۹۰ از یکپارچهسازی روشهای Booch، OMT و Objectory پدید آمد، در سال ۱۹۹۷ به عنوان یک استاندارد OMG پذیرفته شد و از طریق UML 2 تکامل یافت؛ رویکردهای مدلمحور و طراحیهای سبک با بحثهایی در مورد میزان سودآوری مدلسازی رسمی همزیستی دارند.
Debates
- توسعه مدلمحور سنگین در مقابل طراحی سبک
- اینکه آیا مدلها باید مصنوعات معتبری باشند که تولید کد را هدایت میکنند یا طرحهای غیررسمی برای ارتباطات، مورد بحث است؛ دیدگاه مدل به عنوان برنامه، وعده سازگاری میدهد، در حالی که استفاده از طرحمحور، به سربار کم و سازگاری ارزش میدهد.
Key figures
- Grady Booch
- James Rumbaugh
- Ivar Jacobson
- Martin Fowler
Related topics
Seminal works
- booch2005
- omg2017uml
- fowler2003
Frequently asked questions
- آیا UML هنوز در توسعه چابک مرتبط است؟
- بله، اگرچه اغلب به صورت سبکتر استفاده میشود. تیمهای چابک تمایل دارند از نمودارهای UML به عنوان طرحهای غیررسمی برای برقراری ارتباط و استدلال در مورد طراحی استفاده کنند تا به عنوان مشخصات جامع، و تنها به اندازه کافی مدلسازی میکنند تا مشکل مورد نظر را روشن سازند.
- آیا مدلسازی به UML نیاز دارد؟
- خیر. UML پرکاربردترین نماد استاندارد شده است، اما مدلسازی میتواند از نمادهای دیگر یا زبانهای خاص دامنه استفاده کند؛ ایده اصلی انتزاع ساختار و رفتار است که UML یکی از گزینههای خوب پشتیبانی شده برای آن است.