وارسی مدل

در علوم کامپیوتر، وارسی مدل  به این مسئله اشاره دارد که آیا مدل یک سیستم یک نیازمندی خاص را پشتیبانی می‌کند یا خیر. بررسی امکان بروز بن‌بست، مسابقه و حالت‌های خاصی که سیستم را از کار می‌اندازد، وظیفهٔ فرایند وارسی مدل نرم‌افزار است. به‌طور خلاصه، وارسی مدل تکنیکی است برای تأیید صحت عملکرد یک سیستم که دارای حالت‌های محدود(:en:Finate-state machine) است. این روش برای اطمینان حاصل کردن از صحت عملکرد نیازمندی‌ها و طراحی یک سیستم بلادرنگ و نهفته به کار می‌رود. این شیوهٔ صحت سنجی، تمامی حالت‌های ممکن سیستم را کاوش می‌کند و کلیهٔ سناریوهای ممکن را به روش نظاممند امتحان می‌کند.

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

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

مقایسه ابزارهای وارسی مدل

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

منابع 

 http://en.wikipedia.org/wiki/Model_checking
 http://en.wikipedia.org/wiki/List_of_model_checking_tools
 https://web.archive.org/web/20120125074747/http://babelfish.arc.nasa.gov/trac/jpf/wiki/intro/testing_vs_model_checking

 
تست نرم‌افزار
منطق در علوم کامپیوتر
مهندسی نرم‌افزار