یکشنبه, ۲۴ تیر, ۱۴۰۳ / 14 July, 2024
مجله ویستا

ابزار متاکیس MetaCASE tool


ابزار متاکیس MetaCASE tool

ابزار متاکیس نوعی نرم افزار کاربردی است که امکان استفاده بیش از یک metodic یا نماد گذاری در طول فرآیند توسعه نرم افزار را فراهم می سازد

ابزار متاکیس نوعی نرم‏افزار کاربردی است که امکان استفاده بیش از یک metodic یا نماد گذاری در طول فرآیند توسعه نرم‏افزار را فراهم می‏سازد.

تعریف دیگر – ابزار متاکیس، ابزارهای نرم‏افزاری هستند که طرّاحی و تولید ابزار CASE را پشتیبانی می‏کنند. به طور کلّی ابزارهای متاکیس باید مؤلّفه‏های عمومی ابزار کیس را فراهم کنند تا آن‏ها بتوانند سفارشی شده و نیز در ابزارهای کیس ویژه معرّفی شوند. هدف ابزارهای متاکیس، تسخیر خصوصیّات ابزار مورد نیاز و سپس تولید ابزار از خصوصیّات است.

● مرور کلّی بر ابزارهای کیس

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

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

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

ایزارهای کیس تعداد مشخّصی از متدولوژی‏ها را پشتیبانی می‏کنند ولی سازمان‏های توسعه نرم‏افزار به صورت پویا متدولوژی‏های پذیرفته شده خود را تغییر می‏دهند.

● تفاوت‏های بین ابزارهای متاکیس و کیس

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

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

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

● چگونه متاکیس کار می‏کند ؟

ابزارهای کیس سنّتی بر پایه یک معماری دو سطحی هستند : طرّاحی‏های سیستم در یک مخزن ذخیره شده‏اند که مدل آن‏ها در ابزار کیس برنامه نویسی و کامپایل می‏شوند. این بخش hard-coded نوع مدل‏های ساخته شده و چگونگی تحلیل آن‏ها را تعریف می‏کند. مهم‏تر این‏که، تنها فروشنده ابزار می‏تواند متد را تغییر دهد زیرا آن در کد ثابت شده است. تکنولوژی متاکیس، این محدودیّت را با به کار گیری متدهای قابل انعطاف از بین برده است.

این امر با اضافه کردن یک سطح بالای سطح متد انجام پذیر است.

ابزارهای متاکیس، یک معماری سه سطحی دارند.

(شکل مقابل – ساختار ابزار کیس و متاکیس)

۱) پایین‏ترین، سطح مدل، شبیه سطح مدل در ابزارهای CASE می‏باشد. آن شامل مدل‏ها و طرح‏های سیستم است.

۲) سطح میانی، دربرگیرنده یک مدل از متد می‏باشد؛ یعنی یک متامدل. یک متامدل شامل مفاهیم، قوانین و نماد گذاری‏های رسم نمودار متد فرضی است. به عنوان مثال، یک متامدل ممکن است در مورد مفاهیمی همچون کلاس و ارث بری تصریح کند که آن‏ها چگونه با یکدیگر رابطه دارند و یا چگونه نمایش داده می‏شوند. به هر حال، به جای این‏که کد در ابزار قرار بگیرد، در یک ابزار کیس مشخّص، متد به عنوان داده در مخزن ذخیره می‏شود. اخیرا کاربرد متامدل‏ها عمومی‏تر شده است. بسیاری از کتب متد امروزه شامل متامدل‏های متدشان و چندین نوآوری مهم هستند؛ از قبیل XMI که مبتنی بر متامدل هستند. برخلاف یک ابزار کیس، یک ابزار متاکیس به کاربر این امکان را می‏دهد تا متامدل را اصلاح کند. از این رو، متاکیس به قابلیّت انعطاف مشخّصه‏های متد بستگی دارد.

۳) این امر با داشتن لایه سوم و بالاتر به دست می‏آید که شامل زبان مدل سازی متا برای مشخّص کردن متدها می‏باشد. این سطح همان بخش hard-coded نرم‏افزار متاکیس می‏باشد.

تمامی این سطوح به شدّت باهم در ارتباطند : یک مدل مبتنی بر یک متامدل است و به نوبه خود به یک زبان متامدل سازی وابسته است. واضح است که هیچ مدل سازی بدون تعدادی از انواع متامدل ممکن نیست. این ساختار وابستگی شبیه وابستگی بین اشیا، کلاس‏ها و متاکلاس‏ها در برخی زبان‏های برنامه نویسی شی‏گرا می‏باشد.

● ابزارهای متاکیس

فهرستی از ابزارهای متاکیس در دسترس عبارتند از :

- Alfabet

- ArgoUML

- ConceptBase

- Coral

- GME

- IPSYS TOOLBUILDER

- MetaEdit+ (دنیای نرم‏افزار هدایت مدل سازی با دامنه خاص)

- Metamill

- MetaView

- OpenSoul Metamodeler

- Paradigm Plus تولید شده توسّط شرکای کامپیوتری.

▪ OpenSoul Metamodeler

OpenSoul Metamodeler یک MOF است که مبتنی بر ابزار کیس متامدل سازی است. آن برروی MDR (مخزن متاداده Netbeans) و JGraph ساخته شده است و بخش از پروژه OpenSoul است که قصد دارد تا یک framework برای به اشتراک گذاری مدل‏ها بین اعضای انجمن متامدل سازی باشد.

▪ پروژه OSM توسّط تیم کوچکی از دانشجویان و اساتید ساختمان IT دانشگاه Economy پراگ ساخته شده است. OSM به زبان جاوا ایجاد شد و مبتی بر MOF، استانداردهای OMG، JMI، مخزن متاداده Netbeans، مؤلّفه‏های JGraph و استانداردهای W۳C است. آن با برخی ابزارهای کیس و متاکیس موجود مانند MetaEdit+، DOME، ArgoUML و Poseidon برای UML و شبیه ساز ریاضی خطوط راهنمای سیاست مالی شرکت القا شده بود.

▪ Metamill

Metamill، یک ابزار مهندسی round-trip (زمانی بین ارسال یک بسته اطلاعاتی از مبدأ به مقصد و برگشت آن را round-trip نامند) است. مهندسی می‏تواند مدل‏ها را با تولید کد C++، Java، C#، C و VB.NET با کمک نشانگرهای کد ارسال کند تا تغییرات شما حفظ بماند.

سیستم متامدل مبتنی بر استاندارد UML ۲.۱ است. فایل‏های مدل، فایل‏های XML هستند که بر پایه استاندارد XMI ۲.۱ استوارند.

Metamill به خاطر نیاز به کاهش هزینه، ابزار مدل‏سازی سریع و پیشرفته UML ایجاد شد. ایده محرّک آن، پشتیبانی از مدل سازی ویژوال ابداعی است که تنها جنبه‏های مورد نیاز را پیشنهاد می‏کند.

همان‏گونه که طرّاحان شخصی برای مهندسی و مدل سازی UML به یک ابزار پیشرفته و در عین حال از نظر هزینه قابل کنترل نیازمندند، Metamill نیز برای گروه‏های مهندسی نرم‏افزار مناسب است.

● پروژه‏های تحقیقاتی متاکیس

MetaCASE در دانشگاه ساندرلند، بریتانیا.

Method Engineering در دانشگاه Twente کشور هلند.

ConceptBase از Rheinisch-Westfälische Hoschule در آخن (آلمان) که در واقع به طور قیاسی اشیا را برای پایگاه‏های داده متا مدیریّت می‏کند. آن Teloها را به همراه یک زبان مدل سازی ادراکی با خصوصیّات شی‏گرایی و قیاسی پیاده سازی می‏کند.

GOODSTEP از دانشگاه دورتموند (آلمان) یک پایگاه داده شی‏گرا برای فرآیندهای نرم‏افزاری است. در بالای پایگاه داده دو مولّد ابزار و یک سیستم مدل سازی و تصویب کننده فرآیند نرم‏افزاری ایجاد شده است.

Hardy از مؤسّسه کاربردهای هوش مصنوعی در ادینبورو (اسکاتلند)، یک ابزار ترسیم دیاگرام مبتنی بر فرامتن (hypertext) است. آن برروی سیستم‏های Sun و همچنین PCها قابل اجراست.

HotDraw از ساختمان علوم کامپیوتر واقع در دانشگاه Illinois در Urbana-Champaign (ایالات متّحده امریکا)، یک framework گرافیکی برای ویرایشگرهای ترسیم ساخت یافته با انیمیشن هستند. آن برای ایجاد بسیاری از ابزارهای گوناگون CASE به کار می‏رود.

● فواید واقعی استفاده از ابزارهای متاکیس

جکسون تفاوت اساسی بین یک دامنه کاربرد و کد آن را این‏گونه تشخیص می‏دهد : دو دنیای متفاوت، هر کدام با زبان، متخصّصان و روش‏های تفکّر خودشان .... یک برنامه کاربردی تمام شده، اشتراک بین این دو جهان را تشکیل می‏دهد. وظیفه دشوار مهندس نرم‏افزار، ساخت پلی بین این دو جهان در ضمن حلّ مسائل در هر دو جهان است.

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

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

نمونه‏های اوّلیّه تحقیق و حتّی ابزارهای متاکیس تجاری، سال‏های زیادی وجود داشته است ولی تنها اخیرا ابزارهایی به وجود آمده است که کامل شده‏اند و برای توسعه دهنده متد و نیز کاربر متد user-friendly و پایدار شده‏اند. یکی از شناخته شده‏ترین و پرکاربردترین ابزارهای متاکیس، MetaEdit+ می‏باشد.

فهرست ذیل انواع مختلفی از روش‏هایی که این ابزارها می‏توانند در طول توسعه نرم‏افزار به کار گرفته شوند را نشان می‏دهد :

- کاهش زمان و هزینه برای ایجاد یک محیط به کمک کامپیوتر

- پشتیبانی از متدهای توسعه رسمی نرم‏افزار

- پشتیبانی از تطبیق محیط‏های توسعه

- می‏توانند به عنوان یک ابزار مدل‏سازی اطّلاعاتی سیستم‏ها به کار گرفته شوند

- پشتیبانی از متدهای ساختار یافته

- پشتیبانی از طرّاحی و تحلیل شی‏گرا

- می‏توانند به عنوان یک ابزار مدل سازی منطقی استفاده شوند

- پشتیبانی از طیف وسیعی از متدها

- کمک به آموزش CASE

این ابزارها همچنین بایستی مشخّصه‏های ذیل را دارا باشند :

- ایجاد امکان برای کاربران تا بتوانند متدی را ایجاد کنند که متدهای مهندسی نرم‏افزار خودشان را با منحنی آموزشی کم، پشتیبانی کنند

- استفاده آسان از ابزار گرافیکی CASE برای پشتیبانی از تعامل‏های ساده و کارای کاربر

- توانایی بررسی پایداری مدل حتّی در زمان اجرا

- داشتن امکان تولید گزارش استاندارد

- داشتن قابلیّت تبدیل از یک متد به متد دیگر

- داشتن قابلیّت تزریق معیار متری CASE

- داشتن ابزار مدیریّت پیچیدگی برای ایجاد دیدهای محدود و نمایش‏های ریز مدل

- داشتن ورودی محاوره‏ای پیچیده و مصنوعی برای ایجاد و اصلاح داده‏های مدل

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

محمد معصومی شهربابک

منبع :

ترجمه کامل مقاله MetaCASE tool از دایره‏المعارف آزاد ویکی پدیا.