SUPERVISOR
Mohammad Ali Montazeri,Mohammad DavarpanahJazi
محمدعلی منتظری (استاد راهنما) محمد داورپناه جزی (استاد راهنما)
STUDENT
Zeinab Haji hadi riseh
زینب حاجی هادی ریسه
FACULTY - DEPARTMENT
دانشکده مهندسی برق و کامپیوتر
DEGREE
Master of Science (MSc)
YEAR
1388
TITLE
A New Methodology for Agent Oriented Software Engineering and its Industrial Acceptance
Software engineering is a collection of principles, methods and tools to develop software professionally and deals with all aspects of software production from early stages of characterization system through to maintaining stage and extending. Complex software systems, which usually are industrial software, include a large number of parts with a lot of interactions. This complexity is not accidental and it is an innate property of the types of tasks for which software is used, therefore the role of software engineering is to provide structures and techniques that make it easier to handle this complexity. Agent-oriented techniques provide new concepts for analyze, design and building complex software systems. Agent-oriented software engineering techniques are related to using agents in the construction of distributed systems. Especially for dynamic environments which require autonomous processes accompanied by interaction and cooperation. They are able to improve the current process of software engineering, in addition, they have provided the ability of making many applications practicable. In this regard, and to use agent concept based software engineering techniques effectively, some instructions are needed that enable an engineer to find a solution for a set of specific issues. Multiplicity of proposed methodologies, complex concepts used in some methodologies, unlimited domain of approaches, existence special tools for some approaches and at the same time necessity of choosing a methodology for agent based software projects and also problems of effective and proper selection of methodology have caused industrial rejection of various innovative methodologies concepts of agent oriented software engineering. Therefore introduction a structured path along with using general software tools that is familiar for software engineers, maintain the advantages of existing mature methods and also try to eliminate their weaknesses, would help to construct agent-oriented applications and their industrial acceptance in future. Gaia is an Agent-oriented software engineering methodology that despite being powerful in many aspects including using and iiration of the organizational and managerial concepts that used in human organizations, also its popularity among many researchers, on the other hand it has some weaknesses such as not covering all software engineering processes and not recommending any tools to support this method. Tropos is also an Agent-oriented software engineering methodology that in spite of some advantages like coverage all phases of software engineering and providing specific tools in order to support this method, unfortunately it has not been able to obtain public acceptance that using specific tools to support this method is one of its reasons. In this research, we have tried to reduce the said problems in order to gain industrial acceptance by introduce a new method that has combined two agent-oriented methodology, Gaia and Tropos in agent oriented software engineering. In the new methodology that we call extended Gaia methodology have tried to use from strengths of Gaia and Tropos, object oriented concepts, unified modeling language diagrams and introduce structured rules in various phases of software development to reduce problems for industrial acceptance of this approach. Key words Agent-oriented software engineering (AOSE), methodology, Gaia, Tropos
مهندسی نرم افزار اصول مهندسی در ارتباط با تئوریها ، روشها و ابزار برای ساخت نرم افزارها به صورت حرفه ای است و با همه جنبههای تولید نرم افزار از مراحل اولیه تعیین خصوصیات سیستم تا مرحله نگهداری و توسعه افزایشی آن سر و کار دارد. برای سیستمهای پیچیده نرم¬افزاری که معمولا صنعتی هستند قسمتهای زیادی وجود دارد که با هم تعامل دارند .این پیچیدگی تصادفی نیست و یک خصوصیت ذاتی است پس نقش مهندسی نرم افزار این است که ساختارها و تکنیکهایی را فراهم کند که بررسی این پیچیدگیها را ساده سازد. تکنیکهای عاملگرا معانی جدیدی را در باب آنالیز، طراحی و ساخت سیستمهای پیچیده نرمافزاری در اختیار گذاشته است. تکنیکهای مهندسی نرمافزار عاملگرا به استفاده از عاملها در ساخت سیستمهای توزیع شده مربوط میشود. مخصوصا محیطهای پویا که به فرایندهای خود مختار همراه با تعامل و همکاری نیاز دارد. آنها توانایی بهبود روند فعلی مهندسی نرمافزار را دارند و حتی توانایی عملی شدن بسیاری از کاربردها را نیز فراهم نموده اند. در این راستا و برای استفاده موثر از تکنیکهای مهندسی نرمافزار مبتنی بر مفهوم عامل به دستور العملهایی نیاز است که یک مهندس را قادر سازد تا یک راهحل برای مجموعهای از مسائل خاص پیدا کند. تعدد روشهای ارائه شده، مفاهیم پیچیده مورد استفاده در برخی روشها، دامنه نامحدود روشها، وجود ابزارهای خاص برای استفاده از برخی روشها و در عین حال لزوم انتخاب یک متدلوژی برای اجرای پروژههای نرمافزاری مبتنی بر عامل و مشکلات انتخاب صحیح و موثر باعث عدم پذیرش صنعتی انواع مفاهیم متدلوژیهای ابداعی برای مهندسی نرمافزار عاملگرا شده است. لذا ابداع روشی ساختاریافته همراه با استفاده از ابزارهای عام مورد پذیرش مهندسین نرمافزار که در عین حفظ مزیتهای برخی از روشهای نسبتا بالغ موجود سعی در از بین بردن ضعفهای آن روشها دارد، در ساخت کاربردهای عاملگرا و پذیرش صنعتی این تکنیکها در آینده کمک خواهد نمود. روش گایا یکی از روش¬های مهندسی نرم¬افزار عامل¬گراست که علیرغم قدرتمند بودن از بسیاری جهات از جمله استفاده از استعاره سازمانی و الهام گرفتن از مفاهیم مدیریتی و سازمانی مورد استفاده در سازمانهای انسانی و مقبولیت آن در میان بسیاری از پژوهشگران دارای ضعفهایی است که از مهمترین آنها میتوان به عدم پوشش کلیه فرایندهای مهندسی نرمافزار و عدم معرفی ابزار برای پشتیبانی از این روش اشاره نمود. روش تروپوس نیز علیرغم دارا بودن مزایای بسیار از جمله پوشش کلیه فازهای مهندسی نرمافزار و نیز ارائه ابزارهای خاص که برای پشتیبانی از این روش طراحی شدهاند، متاسفانه با مقبولیت عمومی رو به رو نشده است که یکی از علتهای عدم مقبولیت آن همان استفاده از ابزارهای خاص برای پشتیبانی از این روش بوده است. در این تحقیق سعی شده است ضمن معرفی یک روش جدید با استفاده از تلفیق دو روش عامل-گرای گایا و تروپوس در مهندسی نرم¬افزار عامل¬گرا، ضمن حفظ قابلیت¬ها و مزایای این دو روش، استفاده از مفاهیم شیءگرایی، دیاگرامهای زبان مدل¬سازی یکپارچه و نیز ارائه قوانین ساخت یافته در فازهای مختلف ساخت نرم¬افزار، مشکلات بیان شده برای پذیرش صنعتی این رویکرد را کاهش داد. کلمات کلیدی: 1- مهندسی نرمافزار عاملگرا، 2- متدلوژی، 3- گایا، 4- تروپوس