Applying genetic algorithm for automatic service identification based on quality metrics
Subject Areas : SpecialJan Mohammad Rajabi 1 , saeed parsa 2 , masoud bagheri 3 , ali akbar 4
1 -
2 - University of Science and Technology
3 -
4 -
Keywords: Service oriented Architecture, Identification service, Genetic Algorithm, TOPSIS method,
Abstract :
Service-oriented architecture improves the stability and operational capability of software systems for passive defense measures. Automatic identification of services using quality of service measures ensures the successful deployment of service-oriented architecture and is great importance to speed up software development life cycle. Little attention to non-functional requirements, no considerations for concurrent effects of business activities and entities and non-automated ranking of candidate services are the major issues with current approaches. The approach proposed in this paper considers both the business processes and entities, simultaneously to detect services. Applying a genetic algorithm, candidate services are identified based on quality metrics i.e. granularity, coupling, cohesion and convergence. These metrics are obtained from breaking goals to requirements of level. The TOPSIS method is applied to rank the candidate services. The illustrated case study is shown that high quality services can be identified automatically with minimal software developer’s interventions.
فصلنامة علمي- پژوهشي فناوري اطلاعات و ارتباطات ایران | سال ششم، شمارههاي 19 و 20، بهار و تابستان 1393 صص: 59-78 |
|
بهکارگیری الگوریتم ژنتیک جهت شناسایی خودکار سرویسها
با توجّه به معيارهاي كيفي سرویس
*سعید پارسا **مسعود باقری ***جانمحمد رجبی ***علیاکبر عزیزخانی
*دانشیار، دانشکدة کامپیوتر، دانشگاه علم و صنعت ایران، تهران
**مربی، دانشکده و پژوهشکدة فناوری اطلاعات و ارتباطات، دانشگاه جامع امام حسین(ع)، تهران
***کارشناس ارشد، دانشکده و پژوهشکدة فناوری اطلاعات و ارتباطات، دانشگاه جامع امام حسین(ع)، تهران
تاریخ دریافت:25/5/1392 تاریخ پذیرش: 16/11/1392
چکیده
معماری سرویسگرا سبب ارتقاء پایداری و قابلیت عملیاتی نرمافزارها در راستای شاخصهای پدافند غیرعامل میشود. شناسایی خودکار سرویسها با استفاده از شاخصهای کیفی سرویس، تضمینکنندة بهکارگیری موفّق معماری سرویسگرا است و میتواند گام مؤثری در جهت تسریع فرآیند تولید نرمافزار سرویسگرا باشد. کم توجّهی به نیازهای کیفی، عدم توجّه همزمان به ارتباط فعالیتها و موجودیتهای کسبوکار و خودکار نبودن رتبهبندی کیفی سرویسهای نامزد از جمله مهمترین مشکلات روشهای خودکار موجود است. روش ارائه شده در این مقاله هم فرآیندهای کسبوکار و هم موجودیتها را باهم در نظر میگیرد، سپس با استفاده از الگوریتم ژنتیک سرویسهای نامزد براساس شاخصهای کیفی دانهبندی، چسبندگی، پیوستگی و همگرایی مشخص میشوند. این شاخصها از شکستن اهداف تا سطح نیازها حاصل میشوند. سرویسهای نامزد با استفاده از روش تاپسیس بهصورت خودکار رتبهبندي میشوند. در مطالعة موردی انجام شده با استفاده از این روش، سرویسهای کسبوکار، با کمترین وابستگی به معمار شناسایی شد.
واژههای کلیدی: معماری سرویس گرا، شناسایی سرویس، الگوریتم ژنتیک، روش تاپسیس
مقدمه
نویسندة عهدهدار مکاتبات: جانمحمد رجبی rajabi.m@baharan.ir |
معماري سرويسگرا و مدل فرآيندهای کسبوکار از دهۀ90 در محافل علمي و تخصصي و صنعتي هر يك بهصورت جداگانه مورد استفاده قرار میگرفتند. اما از سال 2005 تركيب اين دو مفهوم با يكديگر مطرح شد. رويكردهاي متفاوتي براي شناسايي سرویسها وجود دارد. استفاده از مدل فرآیندی کسبوکار جهت شناسایی خودکار سرویس با توجّه به شاخصهای کیفی مناسب در همة تحقیقات انجام شده مورد توجّه قرار نگرفته است. بعضی از روشهای شناسایی سرویس به سیستمهای موروثی وابستگی دارند [4] اما باید توجّه داشت که نمیتوان تضمین کرد که در همة سازمآنها سیستمهای موروثی کاملی وجود داشته باشد، بنابراین این روش همیشه و در همه جا کاربرد ندارد، در پژوهش جاری شناسایی سرویس مستقل از سامانههای موروثی است. بعضی دیگر با رويكرد تجزيه و تحليل سطح مدل شي به دنبال شناسایی سرویسها بودهاند[5]. دستیابی به مدل شی نیاز به پیمودن مسیر طولانی در چرخه حیات متدلوژیهای نرمافزاری است، لذا شناسایی سرویسهای کسبوکار از این طریق بسیار دشوار است، زیرا سرویسهای شناسایی شده در سطح پیادهسازی هستند. در این مقاله سرویسهای کسبوکار قابل پیادهسازی به صورت خودکار شناسایی میشوند. دستهای دیگر از تحقیقات، شناسایی سرویسها را در قالب تعیین وظایف مرتبط در مدل فرآیندی کسب وکار انجام دادهاند [6] [7][8]. ارتباط بین وظایف با خوشهبندی وظایف بر اساس دو معیار میزان چسبندگی و اتصال در حالت کلّی مشخص میشود. علاوه بر این معیار دانهبندی نیز مطرح شده است. از طرف دیگر، عملکرد وظایف بر روی موجودیتهای(منابع) مشترک نیز رویکردی برای تشخیص سرویسها در قالب وظایف مرتبط بوده است. در این مقاله نشان داده شده که علاوه بر تعیین میزان همکاری بین وظایف[9] در قالب معیارهای چسبندگی و اتصال، میزان استفادة مجدد از وظایف در جهت حصول به یک یا چند هدف خاص و ایجاد رابطی برای یک یا چند موجودیت خاص میتواند از جمله معیارهای تشخیص سرویس باشد. البته، استخراج شاخصهای کیفی در راستای اهداف تدوین شده است. به این ترتیب برای شناسایی خودکار سرویسها وظایف استخراج شده از مدل BPMN برای سیستم مطلوب، همراه با ارتباط وظایف با موجودیتها بهعنوان ورودی مورد استفاده قرار گرفته و در طی یک فرآیند تکاملی سرویسها در قالب خوشههایی از وظایف (کروموزوم) که بهترین کیفیت را داشتهاند، انتخاب میشوند. در طی فرآیند تکاملی، خروجی جوابهای پارتو2 مستخرج از الگوریتم ژنتیک توسط روش تاپسیس بر اساس کمینة فاصلة هر کروموزوم نسبت به بهترین مقادیر شاخصها رتبهبندی میشوند.
در بخش دوم کارهای مرتبط تشریح شده است. در بخش سوم مسئله شناسايي سرويس توصیف شده و در بخش چهارم روش پیشنهادی توضیح داده میشود. در بخش پنجم مفاهیم پایه مسئله شناسایی سرویس بيان شده است. روش استخراج شاخصهای کیفی با استفاده از مدل اهداف و فرمولهای محاسبة شاخصها در بخش ششم بیان شده است. در بخش هفتم الگوریتم ژنتیک پيشنهادي ارائه شده است. انتخاب مجموعة سرويس مناسب توسط روش تاپسیس در بخش هشتم تشریح گرديده است. پیادهسازی مسئله شناسایی سرویس بر روی یک فرآیند برنامه در بخش نهم انجام شده است. درنهايت نتيجهگيري و پيشنهادات آتي در بخش دهم آورده شده است.
· کارهای مرتبط
روشهای شناسایی سرویس به سه دستة کلّی تقسیم میشوند ]7[. این روشها شامل روشهای تجویزی(دستی)، روشهای نیمه خودکار و روشهای خودکار است. ما در این پژوهش ضمن خودداری از مرور روشهای غیر خودکار، روشهای خودکار و نیمه خودکار را بررسی کرده و نقاط ضعف و قدرت آنها را بیان مینماییم. گو ]10[ بیش از ۲۰۰ پژوهش در حوزة شناسایی سرویس مطالعه و به مقایسة ۳۰ روش برتر پرداخته است که جهت مرور روشهای غیر خودکار میتوان بدان مراجعه کرد.
جين و همكارانش [6] رويكردي جهت شناسايي سرويسهاي تحت وب شرح دادهاند. اين رويكرد تجزيه و تحليل سطح مدل شي3 را به عنوان ورودي و نشاندهندة حوزة كسب وكار در نظر گرفته و كلاسهاي موجود در مدل شي را بر اساس روابط ايستا و پويا بين كلاسها به وب سرويسهاي مناسب گروهبندي ميكند. گروهبندي سلسله مراتب اولية كلاسها با استفاده از الگوريتم درخت پوشا صورت میپذیرد. همچنين، مجموعهاي از اهداف مديريتي جهت ارزيابي طرحهاي جايگزين بر اساس استراتژي كسب وكار وب سرويس ارائه شده است. از آنجا كه اهداف مديريتي مرتبط متناقض با هم هستند، يك الگوريتم ژنيك چند هدفه جهت جستجوي جوابهاي هم ارز طراحي شده است كه البته رتبهبندی جهت انتخاب سرویسهای مناسب بر اساس نظر خبره صورت ميپذيرد. در نقد روش ارائه شده میتوان گفت که در مدل شیگرایی، پيادهسازي سرويسها، در قالب كلاسها صورت میپذیرد و در مرحلة محققسازی سرويسها، كلاسها استخراج میشوند [11]. در صورتي كه در روش جين و همكارانش شناسایی سرویسها با استفاده از نمودار کلاسها یک نوع حرکت عکس از فاز محققسازی سرویسها به فاز شناسایی سرویس است. اشكال ديگر اين روش دستي بودن رتبهبندی جوابها توسط خبره است. جهت رفع اين مشكلات، در اين مقاله شناسايي سرويسها، وابستگي به كلاسها ندارد و همچنين جهت رتبهبندي جوابهاي هم ارز(پارتو) از روش خودكار تاپسيس بهره گرفته شده است. ژنگ و همكارانش[5] رویکردی جهت نوينسازي محيطهاي سنتی به سرويسگرا ارائه كردهاند. در روش ارائه شده، مبناي حرکت از سامانههای سنتی نرمافزاری به معماری سرویسگرا است كه اساس آن مبتنی بر سیستمهای نرمافزاری موروثی است. شناسایی سرویسها بر مبنای اجزاء سامانههای موجود و توسعة آنها است. آنها تكنيكهاي خوشهبندي را جهت تحليل اطلاعات ساختار بازيابي شده و شناسايي ماژولهاي مرتبط در راستاي فرآيند شناسايي سرويس بكار گرفتند. اشکال این روش این است که اگر در سازمانی سیستمهای موروثی موجود نباشد نمیتوان سرویسها را با استفاده از آن شناسایی کرد. روش خودكار ارائه شده در اين مقاله وابستگي به سيستمهاي خاصي ندارد و به عنوان يك چارچوب شناسايي سرويس قابليت استفاده را در تمامي سازمانها خواهد داشت. جمشيدي و همكارانش[9] سعي در خودكارسازي فرآيند شناسايي سرويس نمودهاند و بدين منظور از مدل فرآيندهاي كسب وكار به عنوان ورودي استفاده كردهاند. بر اساس مدل فرآيندها، ماتريسي از موجوديتها و فرآيندهاي سازمان تشكيل شده و ارتباط آنها را با مدل4CRUD مشخص ميشود. سپس با استفاده از الگوريتم خوشهبندي و تابع هدف مشخص، فعاليتهايي كه داراي چسبندگي، انسجام و استفادة مجدد هستند در قالب سرويس معرفي میشوند. مهمترین مشکل این روش بی توجّهی به ارتباط فعالیتها در فرآیند کسبوکار است. شدّت ارتباط فعالیتها با یکدیگر درجة استفادة مجدد آنها را نشان میدهد و همان طوری که میدانیم استفادة مجدد سرویسهای یک پارامتر در معماری سرویس گرا بسیارمهم است. در اين تحقيق با تكيه بر شدّت ارتباط بين فعاليتها و ارتباط بين موجودیتها با فعاليتها در فرآيند كسبوكار، شناسايي سرويس صورت ميپذيرد. كاظمي و همكارانش[7] يك روش خودكار جهت شناسايي سرويسهاي كسبوكار با اقتباس از شاخصهاي طراحي بر اساس فرآيندهاي تجزيهسازي بالا به پايين را پيشنهاد كردهاند. اين روش يك مجموعهاي از فرآيندهاي كسبوكار را به عنوان ورودي در نظر گرفته و يك مجموعه جوابهاي غير مغلوب را با بكارگيري الگوريتم ژنتيك ارائه ميدهد. مشكل اين روش اين است كه در مرحلة انتخاب بهترين جواب از بين مجموعه سرويسهاي غيرمغلوب، خبره نظر ميدهد و عملاً ادعاي خودكار بودن شناسايي سرويس تحت تأثير نظرات فردي قرار دارد. همچنين در فرآيندهاي كسب وكار، تكرار موجوديتها بين فعاليتهاي فرآيند كه تأثير بسزايي در ارتباط آنها در سرويسها دارد، در نظر گرفته نشده است كه در اين تحقيق بدان پرداخته شده است. بهعلاوه، يكي از نوآوريهاي اين مقاله، رتبهبندي جوابهاي پارتو بدون دخالت خبره، توسط روش تاپسيس است. ليوپولد و مندلينگ [8] تلاش كردهاند با ارائة چند دستورالعمل و تبدیل آن به الگوریتمهای نرمافزاری از مدل فرآیندی و موجودیتهای کسبوکار به سرویسهای مناسب دست پیدا نمایند. آنها در مرحلة اول، فعاليتهایي كه بيش از يك بار تكرار ميشوند را به عنوان سرويسهاي منفرد معرفي ميكنند. سپس در مرحلة حاشيهنويسي رابطة بين فعاليتها و اشيا، رابطه اشياء با يكديگر شناسايي شده و توسط الگوریتم پیشنهادی و با استفاده از اين روابط سرويسهاي تركيبي مشخص ميشوند. یکی از مشكلات اين روش، این است که تکرار فعالیتها نمیتواند تنها معیار تشخیص سرویس باشد. در واقع عامل ارتباطی که در تشخیص سرویس بر آن تأکید شده است، شیهای مرتبط است. این درحالی است که باید به ارتباط فعالیتها با یکدیگر و موجودیتهای در جریان بین آنها بهصورت همزمان توجّه نمود. مشکل دیگر روش، وابستگي زياد آن به معمار در مرحلة حاشيهنويسي است. همچنین، اين روش از الگوريتمهاي استاندارد جهت شناسايي سرويس استفاده نكرده و صحت الگوريتم ارائه شده توسط محققين ارزيابي نگرديده است. جهت رفع اين معايب در اين تحقيق، هم از رابطة بین فعالیتها و موجودیتهای مرتبط با فعالیتها در ماتریس وزندار فعالیت موجودیت استفاده شده است و از الگوريتم كارا و استاندارد ژنتيك و روش تاپسیس بهکارگیری شده است.
· توصیف مسئله شناسايي سرويس
مسئله شناسایی سرویس با یک گراف نمایش داده میشود. فرآیندهای کسبوکار وضع مطلوب5 با یک گراف (BA,DF)M= نشان داده میشوند. در این گراف فرض بر این است که ارتباط بین فعالیتها BA از طریق DF انجام میشود. BA مجموعهای از گرهها و DF مجموعهای از يالها است. همچنين يك يال ازگرهi به گرهj متصل میشود اگر جريان دادهاي بين فعاليت i و فعاليت j وجود داشته باشد. لذا مسئلة شناسایی سرویس ميتواند بهعنوان تفكيكپذير بر روی گرافها تعريف شود. گراف بايد به روشي تفكيك شود كه سرويسها شناسايي گردند(هر قسمت از گراف مرتبط با يك سرويس است). براي فرمولبندي اين مسئله از مدلهاي بهينهسازي چند هدفه بهره گرفته ميشود. از آنجاييكه مسئلة چند هدفه فرمولبندي شده يك مسئله NP-complete است، از الگوريتم ژنتيك براي حل مسئله بهره ميگيريم. در اينجا، بردار هدف، ويژگيهاي كيفي سرويسها هستند كه بايد در جهت اهداف كسبوكار قرار گيرند. راه حل ارائه شده براي اين مسئله (يك تفكيكپذيري شدني، كه مرتبط به يك مجموعه سرويس است)پارتو ناميده ميشود. اگر هيچ راهحل ديگري از بردار هدف، بر بردار هدف جواب پارتو جاري غالب نباشد. يك بردار هدف U بر بردار هدف V غالب است، اگر هر موجوديت بردار U بهتر از هر موجوديت متناظر در بردارV باشد. مجموعه جوابهاي پارتو بهعنوان مجموعة بهينة پارتو ناميده ميشود. در شکل 1 يك مثال گراف شامل 8 فعاليت و جريان داده بين آنها نشان داده شده است.
شکل 1. یک مثال از گراف نمایش دهندة فرآیند کسبوکار]7[
· روش پیشنهادی
در اين تحقيق بعد از تعریف مفاهیم پایه و توصیف مسئله، شناسایی سرویسهاي وظايف كسبوكار بهصورت فرآیندی مدلسازي ميشوند، سپس شاخصها با استفاده از مدل اهداف مشخص میشوند. بعد از آن از طریق الگوریتم ژنتیک سرویسهای کاندید شناسایی شده و با توجّه به معیارهای کیفی و با استفاده از روش تاپسیس سرویسهای نهایی معرفی میشوند. روش تاپسیس مشكل روشهای پیشین در ارزیابی سرویسهای کاندید منتج شده از الگوریتم ژنتیک را که در تحقیقات پیشین تحت تأثیر نظر خبرگان بود را رفع مینماید. لذا، سرویسهای نهایی بهصورت خودكار ارزیابی شده و معرفی میشوند. در نهايت مدل پيشنهادي در يك مطالعة موردي، سرويسهاي فرآيند تهية برنامة خريد، مورد مطالعه و ارزيابي قرار ميگيرد.
قابليتهاي خودكارسازي، بكارگيري شاخصهاي كيفي جهت ارزيابي، در نظر گرفتن اهداف مختلف بهصورت همزمان و كاربردي بودن روش پيشنهادي از مهمترين ويژگيهاي روش ارائه شده در اين تحقيق است. تمامي تحقيقات ارائه شدة پيشين، ويژگيهاي ياد شده را با هم در نظر نگرفتهاند. اكثر آنها قابليت خودكارسازي نداشته و وابسته به عامل انساني در فاز ارزيابي هستند.
در كنار شناسايي سرويس، ارزيابي سرويسهاي شناسايي شده حائز اهميت است. منظور از ارزيابي، اطمينان ازتناسب سرويسهاي شناسايي شده با اهداف تعيين شده براي كسبوكار است. هرچه سرويس داراي سطح مطلوبي از ويژگيهاي كيفي باشد، گوييم سرويس مناسبتر است. ارزيابي سرويسهاي نرمافزاري با توجّه به ويژگيهاي مطرح براي سرويس در معماري سرويسگرا و همچنين مناسب بودن آن با توجّه به نيازمنديهاي كسبوكارصورت ميگيرد. هر ارزيابي موفّق نيازمند تعريف دقيق شاخصهايي جهت اندازهگيري ويژگيهاي كیفي است. كويين و همكارانش[12] روشي را جهت ارزيابي سرويسهاي نرم افزاري ارائه كردهاند. در اين روش پيشنهاد شده است كه ارزيابي كمّي بوسيلة اعمال فناوريهاي اندازهگيري براي تجزية فرآيندهاي كسبوكار مبتني بر سرويس انجام گيرد. آنها يك مجموعه از شاخصها را براي اندازهگيري ويژگيهاي گوناگون سرويسهاي شناسايي شده را ارائه دادهاند. هيرزالا و همكارانش[13] شاخصهايي براي ارزيابي سرويسها از منظر انعطافپذيري و پيچيدگي ارائه دادهاند. شاخصهاي ارائه شده به دو دسته تقسيمبندي شدهاند: شاخصهايي كه در فاز طراحي و شاخصهاي مربوط به فاز پيادهسازي و اجرا. شيم و همكارانش[14] يك مدل كيفي براي ارزيابي سرويسها ارائه و شاخصهايي براي اندازهگيري اين ويژگيهايي كيفي بيان كردهاند. در اين روش يك مدل 4 سطحي براي اندازهگيري ويژگيهاي كيفي بيان شده است كه عبارتند از: 1) ويژگيهاي كيفي معماري سرويسگرا، 2) ويژگيهاي طراحي معماري سرويسگرا، 3)شاخصهاي طراحي معماري سرويسگرا ، 4) مؤلفههاي طراحي معماري سرويسگرا. هدف اصلی این تحقیق ارائة روشی جهت شناسایی خودکار سرویسها است، و در مورد معرفی شاخصها جهت ارزیابی سرویسهای شناسایی شده از پژوهشهای پیشین استفاده شده است.
يك فرآيند گام به گام براي اين موضوع تعريف شده، كه در شكل 2 نمایش داده شده است.
[1] .TOPSIS
[2] . Pareto
[3] . Object Model
[4] . Create, Read,Update,Delete
[5] . To Be
مرحله اول: مدل سازی کسب و کار و تعريف شاخص |
مرحله سوم: انتخاب مجموعه سرویس مناسب
|
مرحله دوم: شناسايي مجموعههايسرويس |
شكل2. مدل پيشنهادي
شکل2. مدل پیشنهادی
· مفاهیم پایه
در اين قسمت اصطلاحات علمي و مفاهيم مرتبط تعريف ميشود.
تعريفا-(فرآيندهاي كسبوكار)- فرآيند كسبوكار1 مجموعهايي از فعاليتها هستند كه جهت دستيابي به يك هدف خاص داراي ارتباط منطقي با يكديگر هستند. فرآيندهاي كسبوكار در راستاي اهداف كسبوكار قرار دارند]15[.
تعريف2-(فعاليت كسبوكار)-وظايف جزئي در فرآيندهاي كسبوكار را فعاليت كسبوكار گويند]15[.
تعريف3-(جريان داده)- تعامل بين فعاليتهاي كسبوكار است. براي مثال خروجي يك فعاليت بهعنوان ورودي فعاليت ديگر بكار گرفته شود. هر جريان داده يك يا چند موجوديت كسبوكار را در بر ميگيرد كه به عنوان پيغام بين فعاليتها مبادله ميشود]16[.
تعريف4-(موجوديت كسبوكار)-موجوديت كسبوكار به عنوان يك واحد داده، غالب است. هر موجوديت كسبوكار داراي روابط مركبي بوده كه طراح بايد بر اساس تجربيات خود آنها را پيشبيني نمايد]16[.
تعريف5-(بهينهسازي چند هدفه): مسئلة بهينهسازي چند هدفه بهصورت زير تعريف ميشود]16[.
Min f(x)={f1(x),f2(x), …,fM(x)}X
Max g(x)={g1(x),g2(x), …,gM(x)}X
s.t. k(x)≥0,h=0
X بردار متغيرهاي تصميم محدود شده در فضاي جواب X است و f مجموعهاي از اهداف است كه بايد كمينه شوند و g مجموعهاي از اهداف است كه بايد بیشینه شوند.
تعريف6-(بهينگي پارتو)-يك راه حلّي xΩ است كه بهينگي پارتو گفته ميشود و مرتبط است بهΩ اگر و فقط اگر Ω x’ وجود نداشته باشد. بطوري كهv=f’(X)=(f1(x’)……fk(x’) بر u=F(x)=(F1(x),…..,Fk(x)) غالب باشد. به بيان ديگر، يك جواب به عنوان مجموعه بهينة پارتو است، اگر مجموعة ديگري شبيه آن مجموعه بر آن غالب نباشد.
تعريف7-(غلبگي پارتو)- يك بردارu=(u1, ……,uk) بر يك بردار ديگرv=(v1,….,vk) غالب است (uv) اگر و فقط اگر بطور مشخصu كوچكتر از vباشد وii
تعريف 8- (مجموعة بهينة پارتو )-مجموعة بهينة پارتو تعريفي شبيه به تعريف زير دارد]16[.
P*={xΩF(x) ≤ F (x)}
معني آن اين است كه راه حل پارتو مجموعه راه حلي است كه توسط هيچ راه حل ديگري مغلوب نشده است.
· تعيين شاخصها
در فرآیند تولید نرمافزار نیازمند شاخصهايي براي ویژگیهای مطلوب سیستم نرمافزاری از دیدگاه مشتري هستيم. نیازها منتج از اهداف و اهداف منتج از چشمانداز و مأموریت سازمانها هستند. لذا براي واضح و روشن نمودن نیازمندیها شیوة هدفگرا در مهندسی نرم افزار پيشنهاد شده است]17[. اهداف در مهندسی نرم افزار از اهمیت بالایی برخوردار است چرا که اهداف مبین چراها همانند چه چیزی که یک سیستم باید انجام دهد هستند. ارتباط مؤثر نیازمندیهای سازمانی با عملیاتی که سیستمهای اطلاعاتی انجام میدهند بهتر است از طریق پرسش چرا برای اهداف و چه چیزی برای عملیات برقرار شود. رابطة بین اهداف را میتوان در قالب مدل اهداف، سازماندهی نمود که در بالاترین سطح شامل اهداف اصلی سازمان بوده و در پایینترین سطح و در برگها به نیازمندیها، خاتمه مییابد]18[. در واقع مدل اهداف در قالب یک ساختار شبه درختی شامل اهداف، زیر اهداف، فعالیتها و منابع لازم برای حصول به اهداف میتواند مبنایی برای برآورد هزینهها و منابع و همچنین تعیین عملکردهای لازم جهت تولید سیستم نرمافزاری در راستای چشمانداز و مأموریتهای سازمان باشد.
در طول زمان روشهاي متعددي در اين عرصه معرفي شدهاند که بعضاً نتايج مطلوبي را بدست آوردهاند. روشهاي هدفگرا وظيفه دارند تا اهداف را شرح و بسط داده تا نيازها مشخص شوند. در ادامه، شاخصهای کیفی بر اساس نیازها مشخص میشوند. براي رسيدن به اين مقصود هر يک از اين روشها مراحل خاصي را مد نظر گرفتهاند. روشهاي هدفگرا در مهندسي نيازها ترکيبي از فرآيندهاي بالا به پايين و پايين به بالا بوده که منجر به ساخت مدل اهداف میشوند. مدل اهداف با پرسشهاي چرا و چگونه در مورد اطلاعاتي که از اسناد و مصاحبهها بدست ميآيد ايجاد میشود]19[. در این پژوهش روش GBRAM2 به صورت مختصر تشریح شده است. مدل اهداف مطالعه موردی، با استفاده از این روش ترسیم شده است.
1. روش GBRAM
روش GBRAM يا روش مدلسازي تحليل نيازها مبتني بر هدف در دستة روشهاي بالا به پايين قرار ميگيرد. آنتون در اين روش نقطة شروع کار خود را مأموريت سازمان، سياستها و شروط، گزارشهای سازماني و مصاحبهها دانسته و بر اساس آن استخراج اهداف صورت ميگيرد. در ادامه اهداف و صفات پالايش شده تا به نيازها ختم شوند.
ويژگي بارز اين روش ارائة يک روية جستجو و راهنمايي جهت پي بردن به اهداف جديد بر اساس اهداف اوليه است. اين روش بر پاية سطوح مختلف قرار دارد. در اين سطوح اهداف از منابع موجود استخراج، جزئيات آنها تعيين، ارتباطاتشان مشخص و در پايان به نيازها ختم میشوند. دنبالپذيري و امکان دنبال کردن اهداف از جمله مزيتهاي خاص اين روش است. در مقابل عدم ارائة راهکار جهت پالايش تداخل نيازها، عدم در نظر گرفتن اولويت و عدم دستهبندي اهداف مهمترين معايب ذکر شده براي اين روش است. در اين روش تنها از AND و OR براي نمايش روابط نيازها استفاده شده است]19[.
فرض بر این است که دو هدف اصلی کسبوکار در مطالعه موردی وجود دارد که عبارتند از: امنیت و افزایش ارزش افزودة کسب وکار. اهداف اصلی شکسته شده و در نهایت به نیازمندی تبدیل میشوند. یک مجموعه شاخصها در راستای اهداف کسبوکار طراحی شده باید در فاز اول انتخاب یا طراحی شوند. در حقیقت بسیاری از نیازمندیهاي تعریف شده با شاخصهای قابل اندازهگیری مطابقت داده میشوند]20[.
در مطالعه موردی، 6 شاخص، طراحی و انتخاب شده است. این شاخصها عبارتند از: چسبندگی3، اتصال سست4، دانهبندی5، همگرایی فرآیند کسبوکار6، تصدیق هویت7، مجوز دسترسی8. اهداف و ویژگیهای کیفی در شكل 3 و جدول 1 نشان داده شده است. انتخاب شاخصهای فوق پایه این حقیقت است که آنها به آسانی قابلیت استخراج دارند و به آسانی در استخراج خودکار سرویسها قابلیت بهکارگیری دارند. شاخصها جهت اندازهگیری صفات سرویسها در سطح طراحی تعریف شدهاند. شناسایی سرویسهای با کیفیت، سبب افزایش کیفیت محصول نهایی است. از طرف دیگر شناسایی سرویسهای درست باعث کاهش هزینة معماری سرویسگرا در گامهای بعدی میشود.در روشهای قبلی طراحان باید از تجربیاتشان برای تجزیة فرآیندهای کسبوکار استفاده میکردند. آنها فرآیندها را به مجموعهای از قانون اصلی تجزیه میکردند. برای مثال یک سرویس باید اتصال سست و چسبندگی بالایی داشته باشد.
2. تعريف شاخصها
استفاده از شاخصهای طراحی شده، ارزیابی سرویسهای شناسایی شده را ممکن میسازد. تعیین شاخصها با هدف خودکارسازی شناسایی سرویسها است. این شاخصها قابل اندازهگیری و مبتنی بر فرآیندهای کسبوکار در یک سازمان ایجاد شدهاند. سرانجام این شاخصها صفات کیفی را با اهداف کسب وکار تحت پوشش قرار میدهند. در این مقاله با توجّه به دلایل فوق این شاخصها انتخاب شدهاند.
نحوة محاسبة شاخصهای ارائه شده در جدول 1 توسط کاین و همکارانش]12[ بیان شده است که در ادامه بر اساس شرایط مسئله پیشنهادی بروزرسانی گردیده است.
2.1.دانهبندی سرویسها:
دانهبندی سرویسها یک محدودة وظیفهمندی برای هر سرویس در محیط، در نظر میگیرد. بنابراین دانهبندی سرویس یک معدل برای فعالیتهای کسبوکار در نظر میگیرد که یک سرویس انجام میدهد. سرویسهای درشت باعث خودکارسازی فرآیندها میشود. اما استفادة مجدد نیاز به سرویسهایی با دانهبندی کوچکتر دارد. بنابراین در شناسایی سرویسها باید نقطة بهینه بین این دو هدف مدّ نظر قرار گیرد. نحوة محاسبة دانهبندي سرويس بهصورت زير است:
بطوري كهa بيانگر تعداد كل فعاليتهاي كسبوكار و s تعداد همة سرويسها است.
2.2.اتصال سرویسها:
اتصال سرویس نشان میدهد که یک سرویس تا چه اندازهاي دارای وابستگی به سرویسهای دیگراست. از آنجا که همنوايي فرآيند کسبوکار با فراخوانی سرويسها بر اساس جريان كنترلي فرآیند کسبوکار انجام میشود، پس ممکن است ورودی یک سرویس از خروجی سایر سرویسها بدست آيد، كه باعث اتصال دو سرویس ميشود. یک درخواست به یک سرویس از طریق یک پیام است که به عملیات سرویس فرستاده میشود. تعداد پیام، نشاندهندة درجة اتصال است که وابسته به تعداد موجودیتهای اطلاعاتی در پیام است. در اين مقاله، اتصال سرويسها بر اساس ارتباط فعاليتهاي دو سرويس مختلف بهصورت زير محاسبه ميشود.
[1] .Business Process (BP)
[2] .Goal Base Requirement Analysis Modeling
[3] .Cohesion
[4] .Coupling
[5] .Granularity
[6] .business Entity Convergence
[7] .Authentication
[8] .Authorization
شكل3. ارتباط بين اهداف كسب وكار، شاخصهاي كيفي و شاخصها
جدول1. ارتباط بين اهداف كسب وكار، شاخصهاي كيفي و شاخصها
| اهداف سطح دوم | نیازها (ویژگیهای کیفی) | شاخص |
ارزش افزوده | چابکی | بیشینه بودن دانهبندی | Vgranu_Max |
کمینة اتصال سرويسها | Vcoupling Min | ||
خودکار سازی | |||
دانهبندی درشت | Vgranu_Max | ||
همگرایی موجودیتهای کسبوکار | Vconve Max | ||
استفادة مجدد از سرویسها | |||
بیشینة چسبندگی | Vchos Max | ||
امنیت | محرمانگی | مجوز دسترسی به دادههای مورد نیاز | Vauthorization |
دسترس پذیری | تصدیق هویت | Vauthenticate |
: بيانگر همة سرويسهايي است كه از سرويس به سرويس فرستاده ميشود.
:تعداد ارتباط موجوديتهاي اطلاعاتي پيامt كه از سرويس به سرويس فرستاده ميشود.
2.3.چسبندگی سرویس:
چسبندگی سرویس به درجهای از ارتباط بین فعالیتهای داخل یک سرویس اشاره دارد. بنابراین درجة انسجام بستگی به دو عامل دارد: نخست، تعداد فعالیت در داخل سرویسها و دوم، شدّت ارتباط بین فعالیتهای داخل سرویس. بالاترين چسبندگي زماني است كه يك سرويس تنها يك فعاليت را انجام دهد. چسبندگي سرويس به صورت زير قابل محاسبه خواهد بود:
: 1 اگر فعاليت iام در سرويس sام باشد، 0 در غير اينصورت.
: تعدادكل موجوديتهاي اطلاعاتي درون جريان دادهاي كسبوكاربين فعاليت و
2.4.همگرایی موجودیتها:
از منظر اطلاعاتي، يك فرآیند کسبوکار شامل فعالیتهایی است که چرخش اطلاعات از طریق فعالیتهای آن فرآیند انجام میشود]12[. موجودیتهای
کسبوکار یک راه حل طبیعی برای انجام افراز فعالیتهای کسبوکار سرویس فراهم میآورند که در آن هر فعالیت کسبوکار قسمتی از پردازش روی موجودیت کسبوکار را انجام میدهند. بنابراین سرویسها باید در راستای دو فاکتور باشند. اولاً، هر سرویس باید حداقل عملیات را روی موجودیت کسب وکار انجام دهد. ثانیاً، بهتر است فعالیتهایی که بر روی موجودیتهاي يكسان عمل میکنند در یک سرویس قرار گیرند. نحوة محاسبة همگرايي بهصورت زير است:
:Yis تعداد موجوديتهاي كسب وكار كه توسط فعاليتiام در سرويس sام پردازش ميشود، 0 در غير اينصورت.
:Zij تعداد سرويسهايي كه فعاليت iام روي موجوديتjام عمل ميكند.
B: تعداد کل موجوديتهاي كسب وكار
2.5.تصدیق هویت:
باید تضمین شود اطلاعات در دسترس افرادی که دسترسی آنها غیر مجاز نیست و نیاز به اطلاعات دارند قرار گیرد]17[. تصدیق هویت باید با رعایت اصول شناسایی کاربران و رمز عبور و سایر تمهیدات انجام پذیرد.
2.6.مجوز دسترسی:
منظور محافظت اطلاعات ازخوانده شدن از طریق دسترسیهای غیر مجاز است. حریم خصوصی اغلب وقتی به کار میرود که باید اطلاعات برای افراد خاصی محافظت شود]20[. بنابراین باید کنترل دسترسی بهصورت صحیحی اعمال شود.
· مدلسازي شناسايي سرويس با استفاده از الگوريتم ژنتيك
سيستمهاي تكاملي اولين بار بين سالهاي 1650 و 1960 به عنوان ابزاري جهت بهينهسازي مسائل مهندسي توسط محققين علوم كامپيوتري مورد بررسي قرار گرفتند. ايدة بكار رفته در تمام اين سيستمها بكارگيري عملگرهاي الهام گرفته از تغييرات ژنتيكي طبيعي و انتخاب طبيعي جهت تكامل جمعيتي از جوابهاي كانديداي مسئلة مورد نظر بود. الگوريتم ژنتيك اولين بار توسط جان هالند ارائه شده است. طبق تعريف هالند الگوريتم ژنتيك، يك تكنيك جستجوي رياضي است كه بر اساس قواعد انتخاب طبيعي و تركيبدهي مجدد ژنتيك عمل ميكند ]21[. با توجّه به اين تعريف هر الگوريتم ژنتيك در سادهترين حالت داراي دو جزء اصلي است: جمعيت جوابهاي اوليه و عملگرهاي ژنتيك. نحوة تعريف جوابهاي اوليه و عملگرها ميزان كارايي الگوريتم ارائه شده را براي بهينهسازي مسئله مورد نظر مشخص ميكنند. الگوریتم ژنتیک مرتبسازی غیرمغلوبII1 بخاطر پتانسیل بالای آن به عنوان یک رویکرد جدید به مسائل بهینهسازی چند هدفه که تحت عنوان روشهای تکاملی یا بهینهسازی چند هدفة ژنتیک شناخته میشود، توجّه خاصی شده است.
از آنجاييكه ويژگيهاي مختلف سرويس با هم متناقض هستند، امكان دارد يك جواب واحد بهينه براي ويژگيها وجود نداشته باشد. بنابراين، ما مسئلة شناسايي سرويس را به عنوان مسئلة بهينهسازي چند هدفه در نظر ميگيريم و به دنبال جوابهاي كارا نسبت به ساير جوابها هستيم. اين جوابها تحت عنوان جوابهاي بهينة پارتو شناخته ميشوند]16[. بعد از يافتن مجموعة جوابهاي بهينة پارتو، تصميم گرفته ميشود كه كدام يك از آنها به عنوان هدف كسبوكار مناسب است.
1. كدگذاري
الگوريتم ژنتيك بجاي كار بر روي متغيرهاي مسئله، با جوابهای كد شده، يعني كروموزومها سر و كار دارد. در حقيقت عمل كد كردن جواب، اولين گام در پيادهسازي الگوريتم ژنتيك است. روشهاي متنوعي براي كدگذاري وجود دارد كه كدگذاري دودويي، حقيقي، ترتيبي و درختي از آن جملهاند. يك فرآيند كسبوكار ميتواند به حداكثر n سرويس تقسيم شود كه n تعداد فعاليتهاي موجود در فرآيند كسبوكار است. به بيان ديگر، فعاليتها در يك فرآيند كسبوكار ميتوانند در يك سرويس، دو سرويس، سه سرويس و يا n سرويس جداگانه قرار گيرند. طول هر كروموزوم بيانگر تعداد فعاليتهاي موجود است كه شامل n ژن است. عدد درون هر ژن نشاندهندة شمارة سرويسي است كه فعاليت مربوطه، به آن تخصيص مييابد كه بين 2 تا nاست. يعني فعاليتها در حداكثر n سرويس قرار ميگيرند. جمعيت اوليه با ايجاد تعداي از كروموزومها بدست ميآيد. كروموزم پيشنهادي شاملn ژن است كه n بيانگر تعداد فعاليتهاي فرآيند كسبوكار است. در هر ژن يك عدد صحيح مثبت قرار دارد بدين معني كه فعاليت Nام در سرويسSام به عنوان يك عمليات قرار دارد. بنابراين، هر كروموزم شامل يك ماتريس 1×n است. فرض كنيد يك فرآيند كسبوكار داراي 10 فعاليت است. كروموزم شكل 4 را در نظر بگيريد كه روندي از انجام فعاليتها را در 3 سرويس نشان ميدهد. ژن سوم شامل مقدار 2 است. يعني فعاليت سوم توسط سرويس دوم انجام ميشود. لذا فعاليتهاي كسبوكار مفروض با سه سرويس بهصورت توالي زير انجام ميشود:
S1 : | A1, A2, A6, A8 , A9 |
S2 : | A3, A5 |
S3 : | A4, A7, A10 |
1×n | 3 | 1 | 1 | 3 | 1 | 2 | 3 | 2 | 1 | 1 |
شكل4. كروموزم پيشنهادي
2. عملگر تقاطع و عملگر جهش
يكي از جنبههاي مهم الگوريتم ژنتيك كه نقش زيادي را در بازتركيب كروموزومها بازي ميكند، عملگر تقاطع است. در اين تحقيق، يك عملگر تقاطع كه عملگر سرويس ناميده ميشود، استفاده شده است. يك فرزند C1 از دو والد P1وP2 بهصورت زير ايجاد ميشود:
1- بهصورت تصادفي iعدد از يك فرآيند كسبوكار با n فعاليت انتخاب كنيد (i = 1, 2… n-1).i عددتصادفي انتخاب شده
2- فعاليتهايي (ژنهايي) هستند كه از والد به فرزند توسط هر والد منتقل ميشود.
3- ژنهاي انتخاب شده بهصورت مستقيم از P1 به C1 كپي ميشود.
4- ژنهاي باقي مانده از P2 به C1 كپي ميشود.
عملگر تقاطع پيشنهادي را در شكل 5 مشاهده ميكنيد. فرآيند كسـبوكار مفروض داراي 12 فعاليت است. دو والد
P1وP2 را در نظر بگيريد. بهصورت تصادفي4عدد 1و3و8و12 انتخاب شده است. 4 ژن انتخاب شده از والد P1 به فرزند كپي ميشود. ساير ژنها از والد P2 به فرزند منتقل ميشود.
بعد از انجام عملگر تقاطع، كروموزومها جهش داده ميشوند. منطق استفاده از عملگر جهش در الگوريتم ژنتيك اين است كه الگوريتم در خلال فرآيند جستجو در نقاط محلي به دام نيافتد و مناطق بيشتري از فضاي جواب را به جستجو بپردازد. جهش پيشنهادي بهصورت زير است:
دو ژن با سرويس متفاوت از يك كروموزوم بهصورت تصادفي انتخاب شده و جاي سرويسها در دو ژن تعويض میشود. شكل 6 عملگر جهش پيشنهادي را نشان ميدهد. در عملگر مورد نظر ژنهاي 1 و3 با دو سرويس متفاوت انتخاب شده و جاي سرويسهاي آنها عوض گرديده است.
[1] 14.Non-dominated Sorting Genetic Algorithm-II (NSGA-II)
iعدد تصادفي انتخاب شده |
P1 | 1 | 1 | 2 | 3 | 2 | 1 | 3 | 1 | 2 | 3 | 1 | 1 |
|
| |||||||||||
P2 | 2 | 1 | 2 | 2 | 3 | 1 | 4 | 4 | 3 | 3 | 2 | 3 |
C1 | 1 | 1 | 2 | 2 | 3 | 1 | 4 | 1 | 3 | 3 | 2 | 1 |
شكل 5. عملگر تقاطع پيشنهادي
1 | 1 | 2 | 2 | 3 | 1 | 4 | 1 | 3 | 1 | 2 | 1 |
2 | 1 | 1 | 2 | 3 | 1 | 4 | 1 | 3 | 1 | 2 | 1 |
شكل 6. عملگر جهش پيشنهادي
· ارزیابی سرويسهای کاندید
يكي از اهداف اصلي اين مقاله انتخاب مجموعة سرويس مناسب از بین سرویسهای کاندید بدون تاثیرپذیری از نظر معمار است. لذا بكارگيري روش مناسب براي ارزیابی جوابهاي پارتو مدّ نظر است. در اين مقاله، با استفاده از روش تاپسيس، جهت انتخاب بهترین مجموعة سرویس، جوابهاي پارتو ارزیابی میشوند. روش تاپسيس جوابهاي پارتو را رتبهبندي نموده و يك جواب را به عنوان مجموعة سرويس مناسب معرفي ميكند. در ادامه روش تاپسيس معرفی شده است.
یونوهوانگ تكنیكي براي اولويتبندي گزينهها براساس شباهت به راهحل ایدهآل ارائه كرد]22[. تاپسيس بر این مفهوم استوار است که گزینة انتخابی باید کمترین فاصله را با راهحل ایدهآل مثبت و بيشترين فاصله را با راهحل ایدهآل منفی داشته باشد. بهترين ارزش موجود از يك شاخص نشاندهندة ايدهآل بودن آن و بدترين ارزش موجود از آن مشخصكنندة ايدهآل منفي آن خواهد بود. در این روش m گزینه بوسیلة n شاخص مورد ارزیابی قرار میگیرند و هر مسئله را میتوان به عنوان یک سیستم هندسی شامل m نقطه در یک فضای n بعدی در نظر گرفت. روش تاپسيس شامل 6 گام بهصورت زير است:
گام اول: بهدست آوردن ماتریس تصمیم- در این روش ماتریس تصمیمDارزیابی میشود که شامل m گزینه و n شاخص است.
كه Ai بيانگر گزينه i ام و Xj بيانگر شاخص jام و Xijمقدار عددي بدست آمده از گزينة i ام با شاخص jام است.
گام دوم: نرماليزه کردن ماتریس تصمیم در این گام مقیاسهای موجود در ماتریس تصمیم را بدون مقیاس میکنیم. به این ترتیب که هر کدام از مقادیر بر اندازة بردار مربوط به همان شاخص تقسیم میشود. در نتیجه هر درایه rij از رابطة زیر به دست میآید:
گام سوم: وزندهی به ماتریس نرماليزه شده، ماتریس تصمیم در واقع پارامتری بوده و لازم است کمّی شود، به این منظور تصمیمگیرنده برای هر شاخص وزنی را معین میکند. مجموعة وزنها((wدر ماتریس نرمالیز شده(R) ضرب میشود.
گام چهارم: تعیین گزينة ایدهآل و گزينة ایدهآل منفی دو گزینة A+و A- را بهصورت زیر تعریف میکنیم:
بطوري كه:jهاي مربوط به شاخصهايي كه بايد بيشينه گردندjهاي مربوط به شاخصهايي كه بايد كمينه گردند
دو گزینة A+و A- ایجاد شده در واقع بهترین و بدترين گزينهها هستند.
گام پنجم: محاسبة اندازة فاصلهها – فاصلة بین هر گزینة n بعدی را از روش اقلیدسی میسنجیم. یعنی فاصلة گزینة iام را از گزینههای ایدهآل مثبت () و منفی ()محاسبه ميكنيم.
گام پنجم: محاسبة نزدیکی نسبی به گزينة ایدهآل، اين نزديكي نسبي به صورت زير محاسبه ميشود:
; ;
اگر Ai=A+شود آنگاه بوده و خواهد بود و اگر Ai= A-شود آنگاه بوده و خواهد بود. مشخص است که هر چه فاصلة گزینة Aiاز گزينة ایدهآل کمتر باشد ارزش به 1 نزدیکتر خواهد بود.
گام ششم: رتبهبندی گزینهها، در پايان گزینهها را بر اساس ترتیب نزولی رتبهبندی میکنیم.
· پياده سازي
در این بخش جهت پیادهسازی روش پیشنهادی فرآیند کسبوکار تهیة برنامة خرید یک سازمان نظامی در شکل 7 نشان داده شده است. در مطالعه موردی، سازمان به طور متمرکز دارای یک ادارة کل پیشتیبانی و در هر استان دارای یک ادارة تدارکات است. با توجّه به برآوردهای صورت گرفته توسط ادارة تدارکات هر استان و تهیة برنامة خرید با توجّه به ویژگیهای تامینکنندگان برنامة خرید کل تهیّه و ابلاغ میشود. شكل 7 مدل فرايند كسبوكار را نشان ميدهد که شامل 11 فعاليت است. اهداف و ويژگيهاي استفاده شده، در جدول1 و شكل 3 مشخص شدهاند. بنابراین با توجّه به 4 شاخص چسبندگي، اتصال سست، دانهبندي و همگرايي به دنبال يافتن مجموعة سرويسهاي با کیفیت براي پيادهسازي مدل كسبوكار مورد نظر هستیم.
در مرحلة دوم روش پيشنهادي شكل 2، استفاده از الگوريتم ژنتيك جهت يافتن جوابهاي بهينة پارتو است.
فرض ميكنيم، هر نسل جمعیتی برابر با 300 کروموزم دارد. جمعیت اولیه بهصورت تصادفی تولید میشود. از استراتژی نخبهگرایی برای تولید مجدد استفاده میشود. پس از کدگشایی هر کروموزم نتایج شاخصها محاسبه میشود و کروموزومهای غالب تعیین میشوند. با استفاده از عملگر تقاطع 95% کروموزمهای نسل بعد تولید میشوند. نحوة اجرای این عملگر تقاطع به این صورت است که دو کروموزم بهصورت تصادفی در نسل فعّلی انتخاب میشوند. 5% از کروموزمهای باقیماندة نسل بعد با استفاده از عملگر جهش از طریق تولید کروموزمهای تصادفی جدید تکمیل میشود. شروط توقف مختلفی برای پایان یافتن این رویه وجود دارند که عبارتند از: تکرار تا پیدا کردن یک جواب خوب، چند نسل بدون بهبود، اجرای الگوریتم برای یک مدت زمانی و یا اجرای الگوریتم برای تعداد نسلی معین. در این مقاله اگر در 20 نسل متوالی جواب بدون بهبود باشد، اجرای الگوریتم متوقف میشود.
برای فراهم آمدن امکان اجرای الگوریتم ژنتیک بايد امکان محاسبة شاخصهاي معرفي شده بوجود آید. با تأمل در فرمولهای ارائه شده در بخش 6-2 متوجّه میشویم که نیاز به تشکیل دو ماتریس فعاليت- فعاليت و ماتریس موجودیت-فعاليت است. ماتريس فعاليت- فعاليت يك ماتريس n×n است كه n بيانگر تعداد فعاليتهاي موجود در فرآیند كسبوكار است. هر دراية ماتريس فعاليت- فعاليت شامل عدد 0 يا 1 است كه عدد 1 بيانگر وجود ارتباط مستقيم بين دو فعاليت است که این ماتریس در جدول 2 برای فرآیند کسبوکار مطالعه موردی نشان داده شده است. تکرار در فراخواني كردن1 يكي از شاخصهاي مهم در شناسايي سرويسها است كه رويكرد ما در اين مقاله جهت بكارگيري آن بدين صورت است كه ميزان فراخواني مجدد فعاليتها در مدل كسب وكار در ماتريس فعاليت- فعاليت اثر داده شود. لذا ميتوان ماتريس فعاليت- فعاليت را بروزرساني نمود. يعني به ازاي هر مرتبهاي كه فعاليت 1، فعاليت 2 را فراخواني ميكند، يك مقدار به دراية متناظر آنها در ماتريس فعاليت- فعاليت اضافه ميشود.
لذا با يك ماتريس فعاليت-فعاليت وزن دار مواجه هستيم كه درايههاي ماتريس شامل اعداد صحيح مثبت خواهد بود. اگر مقدار يك درايه مثبت باشد، بيانگر تعداد فراخوانيهاي دو فعاليت در مدل كسبوكار است. مثلاً با توجّه به جدول 3، عدد موجود در دراية سطر اول و ستون چهارم برابر 2 است، يعني فعاليت اول به فعاليت دوم در مدل كسبوكار دو بار فراخواني ميشوند. یکی دیگر از
[1] .Reuse
عوامل تأثیرگذار بر روی شناسایی سرویسها موجودیتهای رد و بدل شده بین فعالیتها است، لذا برای در نظر گرفتن این تأثیرپذیری میتوان ماتریس فعالیت-فعالیت را بروزرسانی کرد که این ماتریس در جدول 4 نشان داده شده است. برای مثال بین فعالیتهای 9 و 10 ارتباط وجود دارد که این ارتباط در فرآیند کسبوکار دو بار فراخوانی شده است، که در هر بار فراخوانی دو موجودیتنامه و برنامة خرید نقش دارند. لذا مقدار درایة سطر نهم و ستون دهم در ماتریس جدول 4، برابر چهار است. درايههاي ماتريس موجوديت- فعاليت شامل اعداد 0 و1 است، بدين معني كه آيا موجوديتي در فعالیت مشخصي كاربرد دارد يا خير. با توجّه به مدل كسبوكار شكل 7، ماتريس موجوديت- فعاليت بهترتيب در جدول 5 نشان داده شدهاند. حال با استفاده از فرمولهاي ارائه شده در بخش 6-2 و اين دو ماتريس قابليت محاسبة شاخصها براي هر كروموزم وجود دارد. الگوريتم ژنتيك پيشنهادي براي حل مسئلة مورد نظر توسط زبان برنامهنويسي جاوا
پيادهسازي شده است. بعد از حل الگوريتم ژنتيك مجموعة جوابهاي بهينة پارتو بدست آمده در جدول 6 نشان داده شده است.
در مرحلة سوم مدل پيشنهادي با بكارگيري روش تاپسيس معرفي شده در بخش 7، با رتبهبندي جوابهاي بهينة پارتو، بهترين مجموعة سرويس را انتخاب ميكنيم. وزنهای در نظر گرفته شده با توجّه به اهمیت هریک از شاخصها بهصورت زیر است:
VGrand=0.15 | Vconve=0.3 | Vchoes=0.3 | Vcopl=0.25 |
گامهای اجرای روش تاپسیس برای جوابهای بهینة پارتو به شرح زیر است:
گام اول: ماتریس تصمیم که شامل 4گزینه و 4شاخص است در جدول 6 نشان داده شده است.
گام دوم: ماتریس تصمیم نرماليزه شده در شکل 7 نشان داده شده است:
شكل7. مدل کسبوکار
|
گام سوم: ماتریس تصمیم نرماليزه شده، بهصورت زیر وزن دهی شده است:
گام چهارم: گزينة ایدهآل مثبت و گزينة ایدهآل منفی( A+و A- ) بهصورت زیر محاسبه شده است:
گام پنجم: اندازة فاصلهها از گزینههای ایدهآل مثبت () و منفی () بهصورت زیر محاسبه شده است:
گام ششم: نزدیکی نسبی به گزينة ایدهآل مثبت بهصورت زیر محاسبه شده است:
نتيجة رتبهبندي مجموعة سرويسها بهصورت زير است كه بهترين مجموعة سرويس مربوط به گزينه C2 است:
C2=0.9894 - C3=0.7046 - C1= 0.2605 - C4= 0.032
جدول 2. ماتریس فعالیت- فعالیت
|
جدول3. ماتریس فعالیت-فعالیت با در نظر گرفتن تکرار روابط
فعاليت |
| ||||||||||||
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | ارسال برآورد مصوب | 1 | فعاليت |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | دریافت برآورد مصوب | 2 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | آمادهسازی برنامهریزی خرید | 3 | |
0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | بررسی برنامة خرید | 4 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | نوشتن نظرات | 5 | |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | ارسال نظرات | 6 | |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | اصلاح برنامة خرید | 7 | |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | آمادهسازی نامة ابلاغ خرید | 8 | |
0 | 2 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | ارزیابی نامة ابلاغ | 9 | |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | امضاء نامة ابلاغ برنامة خرید | 10 | |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ابلاغ نامة خرید | 11 |
جدول4. ماتریس فعالیت-فعالیت با در نظر گرفتن تکرار روابط و موجودیتها
فعاليت |
| ||||||||||||
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | ارسال برآورد مصوب | 1 | فعاليت |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | دریافت برآورد مصوب | 2 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | آماده سازی برنامهریزی خرید | 3 | |
0 | 0 | 0 | 1 | 0 | 1 | 2 | 0 | 1 | 0 | 0 | بررسی برنامة خرید | 4 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | نوشتن نظرات | 5 | |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | ارسال نظرات | 6 | |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | اصلاح برنامة خرید | 7 | |
0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | آمادهسازی نامة ابلاغ خرید | 8 | |
0 | 4 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | ارزیابی نامة ابلاغ | 9 | |
2 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | امضاء نامة ابلاغ برنامة خرید | 10 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ابلاغ نامة خرید | 11 |
جدول 5. ماتريس موجوديت- فعاليت
فعاليت |
| |||||||||||
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | ||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | برنامة خرید | موجوديت |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | برآورد | |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | نامه | |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | ویژگیهای تأمین کنندگان |
جدول6. نتايج بدست آمده از الگوريتم ژنتيك
VGrand | Vconve | Vchoes | Vcopl | جوابهاي كارا |
|
3.66 | 11.58 | 19 | 5 | S1(A1, A2, A3, A4, A5), S2(A6, A7, A8), S3(A9, A10, A11) | A1 |
5.5 | 15.5 | 24 | 3 | S1(A1, A2, A3, A4, A5, A6,A7), S2(,A8, A9, A10, A11) | A2 |
5.5 | 15.75 | 23 | 4 | S1(A1, A2, A3,A4, A5, A6, ), S2(A7, A8, A9, A10,A11) | A3 |
3.66 | 10.8 | 21 | 6 | S1(A1, A2), S2(A3, A4, A5, A6, A7), S3(A8, A9, A10, A11) | A4 |
جدول7. سرویس های شناسایی شده
سرویسهای شناسایی شده | وظایف هر سرویس |
تهیّة برنامة خرید | ارسال برآورد، دریافت برآورد، آماده سازی برنامهریزی خرید ، بررسی برنامة خرید ، نوشتن نظرات، ارسال نظرات، اصلاح برنامة خرید |
ابلاغ برنامة خرید | تهیّة نامة ابلاغ، ارزیابی نامة ابلاغ، امضاء نامة ابلاغ و ابلاغ برنامه |
· نتيجه گيري
در اين مقاله، يك روش جديد جهت شناسايي خودكار سرويسهاي نرمافزاري ارائه شده است. ابتدا، با استفاده از روش مدلسازي تحليل نيازها مبتني بر هدف، به شكستن اهداف و تعيين ويژگيها و مجموعة شاخصهاي مرتبط با آن پرداخته شده است. سپس با بكارگيري الگوريتم ژنتيك مرتبسازی غیرمغلوب با در نظر گرفتن معيارهاي كيفي دانهبندي، همبستگي، چسبندگي و همگرايي به عنوان شاخصهای کیفی، يك مجموعه جوابهاي بهينة پارتو انتخاب شدهاند. از آنجاييكه اين جوابها داراي ويژگيهاي متفاوتي هستند، به كمك روش تاپسيس، رتبهبندي و انتخاب بهترين مجموعه سرويس به عنوان مجموعة سرويسهاي بهينه صورت پذيرفته است. از نوآوريهاي اين مقاله ميتوان به 1) بهكارگيري روش مدلسازي تحليل نيازها مبتني بر هدف براي شكستن اهداف تا سطح نیاز و تعيين شاخصها 2) لحاظ نمودن تأثیرپذیری تکرار روابط فعالیتها و موجودیتهای(منابع) انتقال یافته بین فعالیتها بهصورت همزمان جهت محاسبة دقیق مقادیر شاخصها 3) بهكارگيري روش الگوريتم ژنتيك مرتبسازی غیرمغلوب جهت تعيين جوابهاي بهينة پارتو 4) استفاده از روش تاپسيس جهت رتبهبندي خودكار جوابهاي پارتو بدون نیاز به نظر معمار اشاره نمود. البته در کارهای آتی برای افزایش دقت ارزیابی و انتخاب مجموعة سرویس مناسب، میتوان وزنهاي پیشنهادی در روش تاپسيس را بهصورت فازي در نظر گرفت.
منابع
1.Arsanjani, A. “Service-Oriented Modeling and Architecture (SOMA)”; IBM developerWorks; 2004.
2.Ramollari, E.; Dranidis, D.; Simons, A.J.H. “A Survey of Service Oriented Development Methodologies”; The 2nd European Young Researchers Workshop on Service Oriented Computing 2007.
3.Zimmermann, O.; Krogdahl, P.; Gee, C. “Elements of Service-Oriented Analysis and Design”; IBM developer Works; 2004.
4.Zhang, Z.; Liu, R.; Yang, H. “Service Identification and Packaging in Service Oriented Reengineering”; Proceeding of the 17th International Conference on Software Engineering and Knowledge Engineering 2005.
5.Jain, H.; Zhao, H.; Chinta, N.R. (2004), “A Spanning Tree Based Approach to Identifying Web Services”; International Journal of Web Services Research; 2004; 1(1), 1-20.
6.Abdollahi, M.; Bagheri, M.; “Software Services Elicitation and Their Compliance with Organizational Goals”; Passive Defence Sci. & Tech; 2011; 2(2), 133-138(in persian).
7.Kazemi, A.; Rostampour, A.; Jamshidi, P.; Nazemi, E.; Shams, F.; Nasirzadeh Azizkandi, A. “A Genetic Algorithm Based Approach to Service Identification”; IEEE World Congress on Services 2011, 339-346.
8.Leopold, H.; Mendling, J. “Automatic Derivation of Service Candidates from Business Process Model Repositories”; Lecture Notes in Business Information Processing; 2012; 117, 84-95.
9.Jamshidi, P.; Sharifi, M.; Mansour, S. “To establish enterprise service model from enterprise business model”; IEEE International Conference on Services Computing 2008, 93-100.
10.Gu, Q.; Lago, P. “Service identification methods: A systematic literature review, Towards a Service-Based Internet”; Lecture Notes in Computer Science, Springer; 2010; 6481, 37-50.
11.Marbouti, M.; Shams, F. “An Automated Service Realization Method”; International Journal of Computer Science Issues; 2012; 9(4), 188-195.
12.Qian, M.; Zhou, N.; Zhu, Y.; Wang, H. “Evaluating service identification with design metrics on business process decomposition”; IEEE International Conference on Services Computing 2009, 160-167.
13.Hirzalla, M.; Cleland-Huang, J.; Arsanjani, A. “A metrics suite for evaluating flexibility and structural complexityin servicr oriented architectures”; Service-Oriented Computing, Lecture Notes in Computer Science; 2009; 5472, 41-52.
14.Shim, B.; Choue, S.; Kim, S.; Park S. “A design quality model for service-oriented architecture”; 15th Asia-Pacific Software Engineering Conference 2008, 403-410.
15.Kumaran, S.; Liu, R.; Wu, F.Y. “On the duality of information-centric and activity-centric models of business processes”; Advanced Information Systems Engineering, Lecture Notes in Computer Science, Springer; 2008; 5074, 32-47.
16.Coello Coello, C.A.; Lamont, G. B.; Van Veldhuizen, D.V. “Evolutionary algorithms for solving multi-objective problems”; Second Edition, Genetic and Evolutionary Computation Series, Springer, 2007.
17.Regev, G.; Wegmann, A. “Where do goals come from: The underlying principles of goal-oriented requirements engineering”; 13th IEEE International Conference on Requirements Engineering 2005, 253-262.
18.Liu, L.; Yu, E. “From requirements to architectural design -using goals and scenarios”; 23rd International Conference on Software Engineering 2001.
19.Van Lamsweerde, A. “Goal-oriented requirements enginering: A roundtrip from research to practice”; 12th IEEE International Requirements Engineering Conference 2004, 4-7.
20.Martin Langlands, M.; Edwards, C. “Business vs. system use cases”; 2009; Avalable in: http://www.agileea.com/Whitepapers/
21.Sivanandam, S.N.; Deepa, S.N. “Introduction to genetic algorithms”, Springer, 2008.
22.Yue , Z. “A method for group decision-making based on determining weights of decision makers using TOPSIS”; Appl Math Model; 2011; 35(4), 1926-1936.