عنوان پایاننامه
استفاده از زبانهای خاص دامنه در مدلسازی معماری نرم افزار
- رشته تحصیلی
- مهندسی کامپیوتر -نرم افزار
- مقطع تحصیلی
- کارشناسی ارشد
- محل دفاع
- کتابخانه دانشکده برق و کامپیوتر شماره ثبت: 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.