عنوان پایان‌نامه

استفاده از زبانهای خاص دامنه در مدلسازی معماری نرم افزار



    دانشجو در تاریخ ۲۹ بهمن ۱۳۸۷ ، به راهنمایی ، پایان نامه با عنوان "استفاده از زبانهای خاص دامنه در مدلسازی معماری نرم افزار" را دفاع نموده است.


    محل دفاع
    کتابخانه دانشکده برق و کامپیوتر شماره ثبت: E1539;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 40518;کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 1539
    تاریخ دفاع
    ۲۹ بهمن ۱۳۸۷
    استاد راهنما
    رامتین خسروی

    توسعه دهندگان سیستم های نرم افزاری از جمله مهمترین استفاده کنندگان توصیف معماری هر سیستم نرم افزاری به شمار می روند، از این روی حداقل یک نما در مستندات معماری برای رفع نیاز آنها باید وجود داشته باشد. با این حال مدل های موجود برای پوشش این نیاز، به ندرت از حد توصیف های زبان طبیعی و فهرست موارد مورد بررسی فراتر می روند. این ضعف می تواند به روند مخرّب فرسایش معماری منجر شود. هدف از این پژوهش ارائه راه حلِ مؤثر و مقرون به صرفه ای برای توصیف نمای توسعه سیستم های نرم افزاری می باشد. به طوری که نتایج بدست آمده از این پژوهش می بایست در درجه اول معمار را در توصیفِ واضح و روشنِ الگوی پیاده سازی یاری کند تا پیاده سازی صحیحی بر اساس آن شکل بگیرد. در قدم بعد روشی برای بررسی و تأیید رعایت قواعد مورد نظر معمار در پیاده سازی سیستم ارائه شده است. برای قادر ساختن معمار به بیان ضوابط مورد نظر خود هنگام توسعه سیستم، استفاده از نموداری به نام «متا -مدل توسعه» پیشنهاد شده است. برای تکمیل قدرت توصیفی متامدل توسعه و همچنین ایجاد امکانی برای پردازش خودکار توصیفات حاصله، از زبان های خاص-دامنه به عنوان ابزار اصلی حل این مسئله استفاده شده است. در این پژوهش زبان خاص-دامنه‌ای مبتنی بر زبان جاوا ساخته و به کارگرفته شده است. سپس با درج حاشیه‌نویسی در متن برنامه و یا استخراج و پردازش درخت نحوی برنامه، آزمون‌های انطباق محصول نهایی با معماری پیاده‌سازی شده‌اند. با استفاده از نتایج این پژوهش درک برنامه¬نویسان از مدل برنامه نویسی بهتر و ساده تر می شود و در نتیجه اشتباهات آنها کاهش پیدا می کند و موارد عدم انطباق پیاده¬سازی با معماری نرم افزار کشف می شود.
    Abstract
    The developers of a system are considered as one of the most important users of an architecture description, thus there should be at least one view that satisfies their needs. However, available models for such purposes barely transcend natural language descriptions or checklists. This deficiency can lead to a damaging architecture erosion process. The goal of this research is to suggest a cost-effective solution to describe the development view of software systems. The results of this research, firstly, enable the architect to produce a clear description of the programming model, so that a correct implementation can be achieved. Secondly, the results offer a technique for checking the conformance of the final implementation to the constraints stated by the architect. Utilization of a model called the “Development Metamodel” is proposed to enable the architect to describe his/her intended constraints over the development phase. A domain-specific language is used as the main vehicle to enhance the description abilities of the Development Metamodel and also for the automatic processing of the final description. In this research, a domain-specific language is built on top of the Java language. The conformance of the final product to the intended architecture is checked via Java annotations and extraction and processing of abstract syntax trees. Exploiting the outcomes of this research facilitates programmers’ interpretation of the programming model, hence reducing their mistakes. Instances of deviation of the implementation from the architecture are also detected.