استخراج معماری پویا جهت تطبیق پذیری با محیط برای سامانه های نرمافزاری موجود از روی کد منبع
First Statement of Responsibility
/حبیب ایزدخواه شیشوان
.PUBLICATION, DISTRIBUTION, ETC
Name of Publisher, Distributor, etc.
: دانشکده علوم ریاضی
PHYSICAL DESCRIPTION
Specific Material Designation and Extent of Item
۱۸۵ص
NOTES PERTAINING TO PUBLICATION, DISTRIBUTION, ETC.
Text of Note
چاپی
DISSERTATION (THESIS) NOTE
Dissertation or thesis details and type of degree
دکتری
Discipline of degree
در رشتهی ریاضی کاربردی، گرایش سیستمهای کامپیوتری
Date of degree
۱۳۹۲/۰۶/۲۵
Body granting the degree
دانشگاه تبریز
SUMMARY OR ABSTRACT
Text of Note
پویایی و تطبیقصپذیری با محیط از ویژگیصهای اصلی نسل بعدی سامانهصهای نرمصافزاری و نرمصافزارهایی با دسترسی بالا و طول عمر زیاد است .سامانه نرمصافزاری در صورت لزوم، باید بتواند عملکرد خود را در واکنش به تغییرات محیط تغییر داده و خود را با آن تطبیق دهد بنابراین، برای تطبیقصپذیر بودن باید دارای انواع معماریصها باشد .در واقع این معماری نرمصافزار است که نحوه عملکرد سامانه نرمصافزاری در شرایط مختلف و در تعامل با محیط را مشخص میصکند .تمام روشصهای ارائه شده برای ایجاد نرمصافزار پویا، روشصهایی قابل اعمال در مراحل اولیه توسعه نرمصافزار هستند و این روشصها فقط یک چارچوب کلی برای تعریف معماری فراهم آوردهصاند و هیچ الگویی برای اینصکه معماری چگونه بتواند امنیت را فراهم کند، توزیع شدگی داشته باشد، کارآیی داشته باشد یا موجب مصرف بهینه انرژی شود ارائه ندادهصاند .در این رساله دو مورد اول یعنی امنیت) با تاکید بیشتر (و توزیع شدگی بررسی شده است .در این راستا، دو تابع ریاضی ارائه شده است که بر اساس آنصها میصتوان معماریصهایی را از کد منبع استخراج نمود که امنیت و توزیع شدگی را رعایت کند .برای مورد امنیت، یک روش تحلیلی مبتنی بر ریاضیات ارائه شده است که امنیت نرمصافزار را در سطح معماری نرمصافزار ارزیابی کند .برای این منظور، ابتدا با در نظر گرفتن دادهصهای حفرهصهای امنیتی کشف شده روی مرورگر وب موزیلا فایرفاکس، ارتباط بین انواع اتصال و حفرهصهای امنیتی را نشان خواهیم داد .سپس، یک رابطه ریاضی با استفاده از مفاهیم آماری رگرسیون بین انواع اتصال و میزان آسیبصپذیری در سطح یک پیمانه ارائه داده و بعد از آن، با استفاده از مفاهیم امید ریاضی رابطهصای ریاضی برای مشخص کردن میزان آسیبصپذیری کل یک سامانه نرمصافزاری ارائه خواهیم داد .برای مورد توزیع شدگی، هدف در برنامهصهای توزیعی افزایش سرعت اجرائی با ایجاد حداکثر همروندی در اجرای قطعهصهای توزیع شده است .در برخی از مواقع، اجرای توزیعی تاثیر منفی در سرعت اجرای برنامه خواهد داشت .بنابراین بهتر است که قبل از توزیع یک برنامه مشخص شود که اجرای توزیعی آن باعث ایجاد تسریع نسبت به اجرای ترتیبی آن خواهد شد یا نه .هیچصیک از روشصها و ابزارهای موجود برای توزیع یک برنامه نمیصتوانند به این هدف مهم برسند .در این رساله، یک رابطه ریاضی ارائه خواهد شد که با بررسی انواع فراخوانیصهای داخل کد منبع، مشخص صکند آیا کد منبع یک برنامه، مناسب برای توزیع است یا نه .سپس یک تابع کیفیت بر اساس تعداد فراخوانیصها بین متدهای کلاسصها ارائه خواهد شد که میصتوان معماری مبتنی بر توزیع را بر اساس آن از کد منبع استخراج نمود
Text of Note
based software engineering technique that adopts Mozilla Firefox Browser vulnerability data. Then, we propose a mathematical weighted relationship between coupling types and vulnerability, where regression statistical analysis and Mozilla Firefox vulnerability data are used to predicate the relationship coefficients. Finally, we extract software architecture and then convert the extracted architecture into Discrete Time Markov chains, which are used to predict and compute the system over all vulnerability. For distributability, One way to speed up the process of sequential programs execution is to divide them into concurrent segments, then execute such segments in a parallel manner over a distributed computing environment. The aim of distributing of a program is to speed up by creating the maximum possible concurrency in executing the distributed segments. Transformation of calls from sequential into asynchronous calls cannot be always speedup in execution of a program; in some cases, this transformation can have negative effects on program execution speed. Therefore, before distributing of a source code, it should be determined whether its distribution could cause maximum possible concurrency. The existing methods and tools for distributing a program cannot achieve this importance. In this thesis, we are going to introduce a new method to verify distributability of an object oriented program before distributing it. To achieve this goal, we propose an objective function to measure different distributions values from a same program by considering remote and sequential calls. We compute speedup by dividing sequential execution time to minimum value of the objective function. Therefore, it will be possible to predict distributability of the source code on homogeneous and heterogeneous processors from speedup. We, then, propose a new objective function based on number of calls method for extracting distributed architecture from source code -based method for evaluating and quantifying software security using the coupling aspects of the software architecture. To achieve this goal, first, we show the relationship between coupling types and vulnerability using an empirical-Dynamism and adaptability with the environment are among the features of the next generation of software systems. A software system must be able to conform itself with an environment which is changing continuously and modify its performance as a reaction to such changes. Dynamic software systems have a dynamic architecture; therefore, software architecture has a close relationship with the dynamism and adaptability of the software system. In fact, what specifies the performance of the software system in different situations and environmental interactions is the software architecture. In different references, a dynamic architecture has been defined as the ability of the software system to change its performance encountering the environment. As to this thesis, dynamic architecture is considered as the design of the software system in a way that it can contain efficiency, security, power awareness, and distribution capability. In this thesis, we will discuss both security and distributability of source code. For security, the purpose of this thesis is to propose a mathematical