Model–view–controller - MVC
در مهندسی نرمافزار، مدل-نما-کنترلگر یا امویسی (Model–view–controller - MVC) به یک الگوی معماری نرمافزار گفته میشود. لگوی ساختاری امویسی به جداسازی دادههای کاربرد(از جملهٔ محتویات بخش مدل) از مؤلفههای ارائه شده بهصورت گرافیکی (بخش نما) و منطق مربوط به پردازش ورودیها (بخش کنترلگر) اقدام مینماید. هدف الگوی ساختاری امویسی صرفاً یکپارچگی در ساختار نرمافزار است و به کمک آن بدست گیری نرمافزار در راستای مدیریت و گسترش به سادگی انجام میگیرد.
در یکی از بینش های ابتدایی در ابتدای گسترش و پیشرفت واسط گرافیکی کاربر MVC به عنوان یکی از راه حل ها و بکار گیری ساختار نرم افزاری به عنوان یک وظیفه انتخاب شد. Trygve Reenskaug در حین ملاقات زروکس (مرکز تحقیقاتی پالو التو) در 1970 , MVC را در Smalltalk-76 معرفی کرد. در سال 1980 جیم اتوف و چند نفر دیگر یک ورژن از mvc را برای کتابخانه ی کلاس Smalltalk-80 معرفی کردند و بعدا در سال 1988 در جورنال ابجکت تکنولوژی MVC را به عنوان یک مفهوم کلی معرفی کرد. MVC به طور پیوسته در حال پیشرفت بوده و موضوع های گوناگونی مانند hierarchical model-view-controller(JMVC) و model-view-adapter(MVA) و model-view-presenter(MVP) و model-view-viewmodel(MVVM) و MVC های تطبیق داده شده ی دیگری را در موضوع های مختلف ایجاد کرده. استفاده از MVC در وب اپلیکیشن ها بعد از معرفی وب ابجکت ها ی apple که در واقع با Objective-C که عمدتا از Smalltalk گرفته شده بود نوشته شده بود در سال 1996 به صورت انفجاری افزایش یافت و به قوی تر شدن اصول MVCکمک کرد. بعدا روند MVC توسط پیشرفت دهنده های جاوا معروف شد وقتی وب ابجکت ها به جاوا مربوط شدند . فریم وورک های بعدی جاوا مانند Spring(در اکتبر 2002 منتشر شد) رابطه ی جوا و MVC را قوی تر کرد. معرفی فریم وورک ها Django (جولای 2005 برای پایتون) و Rails (دسامبر 2005 برای روبی) هر دو تاکید روی نظم دادن سریع داشتند و شهرت MVC را در خارج از محیط سنتی افزایش داد. در حال حاضر MVC framework ها سهم بزرگی از بازار را که مرتبط با non MVC Tollkit هست را دارد.