جعبه ابزار مهندسی مجدد نرم‌افزار DMS
جعبه ابزار مهندسی مجدد نرم‌افزار DMS مجموعه‌ای اختصاصی از ابزارهای تبدیل برنامه است که برای خودکارسازی برنامه منبع برنامه‌های ویژه، اصلاح، ترجمه یا تولید سیستم‌های نرم‌افزاری برای مخلوط‌های دلخواه از زبان‌های مبدأ برای سیستم‌های نرم‌افزاری در مقیاس بزرگ موجود است.
DMS برای پیاده‌سازی طیف وسیع ای از ابزارهای عملی مورد استفاده قرار گرفته‌است، شامل زبان‌های اختصاصی دامنه (مانند تولید کد برای کنترل کارخانه)، قابل پوشش تست و ابزارهای پروفایل، شناسایی clone , ابزار مهاجرت به زبان، مهندسی مجدد جزء ++C. , و برای تحقیق در مورد موضوعات پیچیده مانند قابلیت اطمینان مجدد ++C.
این مجموعه ابزار ابزاری برای تعریف دستور زبان در اختیار ما قرار می‌دهد وparser تولید می‌کند که به‌طور خودکار درخت‌های انتزاعی انتزاعی (ASTs) را ایجاد می‌کنند، و زیبا را برای تبدیل ASTهای اصلی یا اصلاح شده به متن منبع کامپایل شده تبدیل می‌کند. ضبط درختان پارس، و زیباترین چاپگرها، جزئیات کاملی در مورد برنامه منبع اصلی از جمله منبع منبع، نظرات، ردیف و قالب اعداد و غیره را بازسازی می‌کنند تا اطمینان حاصل کنند که متن منبع بازسازی شده به همان اندازه مدول متن اصلی برای یک برنامه‌نویس قابل تشخیص است. هرگونه تحول کاربردی
بسیاری از ابزارهای تجزیه و تحلیل و تحول برنامه محدود به مجموعه شخصیت‌های ASCII یا اروپای غربی مانند ISO-8859 است. DMS می‌تواند UTF-8، UTF-16، EBCDIC , Shift-JIS و انواع رمزگذاری کاراکترهای مایکروسافت را از این طریق کنترل کند.
DMS از فناوری تجزیه و تحلیل GLR استفاده می‌کند، این امکان را می‌دهد تا همه دستور زبان‌های بدون متن را عملی کند. گزاره‌های معنایی این قابلیت را به گرامرهای جالب بدون عارضه گسترش می‌دهد (Fortran نیاز به تطبیق حلقه‌های DO چندگانه با عبارات اشتراک گذاری CONTINUE مشترک با برچسب دارد؛ GLR با گزاره‌های معنایی پارسر DMS Fortran را قادر می‌سازد تا ASTها را برای حلقه‌های به‌صورت صحیح توخالی همان‌طور که تجزیه می‌کند) تولید کند.
DMS ارزیاب گرامر صفت را برای محاسبه آنالیزهای سفارشی از طریق ASTها، مانند اندازه‌گیری‌ها، و از جمله پشتیبانی ویژه برای ساخت جدول نمادها فراهم می‌کند. سایر واقعیت‌های برنامه را می‌توان با موتورهای کنترل جریان داخلی و تجزیه و تحلیل داده‌ها، تجزیه و تحلیل نشانگر محلی و جهانی، استخراج نمودار تماس با برنامه کامل، و تجزیه و تحلیل دامنه نمادین با تفسیر انتزاعی استخراج کرد.
تغییر در ASTs می‌تواند با استفاده از هر دو روش تشریفاتی رمزگذاری شده در PARLANSE و تبدیل درخت به منبع کدگذاری شده به عنوان بازنویسی قوانین با استفاده از نحو سطح شرط شده توسط هر واقعیت برنامه استخراج شده، با استفاده از زبان خصوصیات قانون DMS (RSL) انجام شود. موتور قاعده بازنویسی که از RSL پشتیبانی می‌کند، قوانین مقدماتی و ارتباطی را کنترل می‌کند. یک قانون بازنویسی برای C برای جایگزین کردن شرایط پیچیده توسط عملگر codice_1 صورت زیر نوشته می‌شود:  = " if (\e1) \v=\e2; else \v=e3; "
دستیابی به یک تغییر و تحول پیچیده بر روی کد با ارائه تعدادی از قوانین که برای دستیابی به اثر مطلوب همکاری می‌کنند، انجام می‌شود. این آیین‌نامه بر روی بخش‌هایی از برنامه توسط برنامه‌های برنامه‌نویسی رمزگذاری شده در PARLANSE متمرکز شده‌است.
یک مثال کامل از تعریف زبان و قوانین تبدیل منابع به منبع تعریف شده و کاربردی با استفاده از جبر دبیرستان و کمی حساب به عنوان یک زبان خاص دامنه نشان داده شده‌است.
DMS دارای انواع مختلفی از زبان‌های مقدماتی از پیش تعریف شده‌است که اکثر لهجه‌های واقعی C و ++C شامل C ++ 0x، C #، جاوا، پایتون، PHP , EGL، Fortran، COBOL، Visual Basic , Verilog، VHDL و حدود ۲۰ یا بیشتر را در بر می‌گیرد. زبان‌ها. زبانهای از پیش تعریف شده به شخصی سازان این امکان را می‌دهند که بلافاصله بر روی وظیفه مهندسی مجدد خود تمرکز کنند تا جزئیات جزئیات زبانهایی که باید پردازش شوند.
DMS علاوه بر این غیر معمول است که با یک زبان برنامه‌نویسی موازی، PARLANSE اجرا می‌شود، که از چند پردازنده متقارن موجود در ایستگاه‌های کاری کالا استفاده می‌کند. این DMS را قادر می‌سازد پاسخهای سریع تری را برای آنالیزها و تبدیلهای سیستم بزرگ ارائه دهد.
DMS در ابتدا توسط نظریه ای برای حفظ طرح‌های نرم‌افزاری به نام "Design Maintenance Systems" انگیزه داده شد "."
DMS و «سیستم تعمیر و نگهداری طراحی» علائم تجاری ثبت شده از طراحی‌های معنایی هستند.