Hamid-Bagheri.ppt

‫تزريق نيازمنديهاي غيروظيفهمندي به‬
‫معماری نرمافزار‬
‫حميد باقری‬
‫سمينار کارشناسی ارشد مهندسی نرمافزار‬
‫دانشکدهی مهندسی کامپيوتر‬
‫دانشگاه صنعتی شريف‬
‫رئوس مطالب‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اهميت ويژگیهای کيفی‬
‫اهميت معماري نرمافزار و ارزيابی آن‬
‫هدف پروژه‬
‫تعريف معماري نرمافزار و ويژگیهای کيفی مطرح‬
‫مدلسازي ويژگيهاي کيفي و کارهاي مرتبط‬
‫چارچوبي براي مدلسازي ويژگيهاي کيفي در‬
‫معماري نرمافزار برمبناي مؤلفههاي جنبهگرا‬
‫سمينار کارشناس ی ارشد‬
‫‪2‬‬
‫حميد باقري‬
‫اهميت ويژگیهای کيفی‬
‫‪ ‬طبقهبندي سنتي نيازمنديهاي نرمافزار‬
‫‪ ‬نيازمندیهای وظيفهمند‬
‫‪ ‬نيازمندیهای غير وظيفهمند ‪ ‬ويژگیهای کيفی‬
‫‪ ‬اهميت نيازمندیهای وظيفهمند در ميزان دستيابي محصول‬
‫نرمافزاري ارائه شده به مشتري‬
‫‪ ‬زير سؤال رفتن ماهيت وجودي محصول در صورت عدم برآوردن‬
‫نيازمنديهاي وظيفهمندياش‬
‫‪ ‬به مرور زمان و در طي استفاده از محصول نرمافزاري‪ ،‬سنجش ارزش‬
‫آن بر اساس ميزان دستيابياش به ويژگيهاي کيفي‬
‫سمينار کارشناس ی ارشد‬
‫‪3‬‬
‫حميد باقري‬
‫اهميت معماري نرمافزار‬
‫‪ ‬تأکيد بررس يهاي جديد بر نقش و اهميت معماري نرمافزار در تشخيص کيفيت‬
‫نرمافزار‬
‫‪ ‬اهميت تصميمگيريهاي مختلف در هر يک از مراحل توسعه نرمافزار‬
‫‪ ‬اهميت خاص تصميمات در سطح معماري‬
‫‪ ‬نخستين و پرهزينهترين تصميمهاي اتخاذ شده در طول توسعه يک پروژه نرمافزاري‬
‫‪ ‬تاثير آن بر ويژگيهاي کيفي نرمافزار و در نتيجه بر ارزش نرمافزار‬
‫‪" ‬هنگاميکه يک معماري خوب نتواند دستيابي به اهداف کيفي را تضمين کند‪ ،‬يک‬
‫ً‬
‫معماري ضعيف قطعا از دستيابي به آن اهداف جلوگيري ميکند" ‪[C. U.‬‬
‫]‪Smith‬‬
‫سمينار کارشناس ی ارشد‬
‫‪5‬‬
‫حميد باقري‬
‫اهميت ارزيابی‬
‫‪ ‬پس از اتمام توليد نرمافزار در صورت عدم دستيابي معماري به اهداف‬
‫کيفي ‪ ‬نياز به هزينه بسيار براي ترميم و حل مشکل ايجاد شده‬
‫‪ ‬اهميت امکان ارزيابي تأثيرات تصميمگيريهاي در سطح معماري بر‬
‫روي ويژگيهاي کيفي‬
‫‪" ‬اين مطلب که آيا يک سيستم ميتواند به ويژگيهاي کيفياش دست‬
‫يابد يا خير؟ به صورت عمده به هنگام انتخاب معماري قابل تشخيص‬
‫است"]‪[P. C. Clements‬‬
‫سمينار کارشناس ی ارشد‬
‫‪6‬‬
‫حميد باقري‬
‫هدف‬
‫‪ ‬بال استفاده بودن ويژگيهاي کيفی پس از مشخص شدن در طول‬
‫مهندس ي نيازمنديها تا اتمام پيادهسازي نرمافزار‬
‫‪ ‬عدم وجود ارتباط مستقيم ميان ويژگيهاي کيفي از مرحله مهندس ي‬
‫نيازمنديها به طراحي معماري سيستم‬
‫‪ ‬خطر‪ :‬ريسک کشف خطاي ديرهنگام‬
‫‪ ‬راه حل‪ :‬مدل کردن و ارزيابي ويژگيهاي كيفي در سطح معماري نرمافزار‬
‫سمينار کارشناس ی ارشد‬
‫‪7‬‬
‫حميد باقري‬
‫معماري نرمافزار‬
‫‪ ‬تعاريف متفاوت از معماري نرمافزار‬
‫‪ ‬ساختار کلي سيستم نرمافزاري‬
‫‪ ‬مجموعهاي از مؤلفهها و ارتباطدهندهها و نحوه تراکنش بين آنها‬
‫‪" ‬معماري نرمافزار يک برنامه يا يک سيستم کامپيوتري عبارت است از‬
‫ساختار يا ساختارهايي از سيستم که از عناصر سيستم‪ ،‬خصوصياتي‬
‫از اين عناصر که از خارج آنها قابل مشاهده است و ارتباطات آنها‬
‫تشکيل ميشود‪[Kazman, et al.] ".‬‬
‫سمينار کارشناس ی ارشد‬
‫‪8‬‬
‫حميد باقري‬
‫ويژگيهاي کيفي درمعماري نرمافزار‬
‫‪" ‬توجه به اين امر که نميتوان ويژگيهاي کيفي را بعد از توليد نرمافزار بر اساس‬
‫نيازمنديهاي وظيفهمندیاش به نرمافزار افزود‪ ،‬بيانگر اهميت اين ويژگيها در‬
‫يک سيستم نرمافزاري است" ]‪[Kazman, et al.‬‬
‫‪ ‬مثال‪ :‬رهيافتی نادرست در توسعه نرمافزار] ‪:[C. U. Smith‬‬
‫‪ ” ‬اجرايش کن‪ -‬درست اجرايش کن‪ -‬سريع اجرايش کن”‬
‫‪ ‬ويژگيهای کيفي اساس ي سيستمهاي نرمافزاري‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫قابليت دسترس ي‬
‫قابليت تغيير‬
‫کارايي‬
‫امنيت‬
‫آزمونپذيري‬
‫قابليت استفاده‬
‫سمينار کارشناس ی ارشد‬
‫‪9‬‬
‫حميد باقري‬
‫مدلسازي ويژگيهاي کيفي‬
‫‪ ‬به منظور ارزيابی معماري نرمافزار بر اساس ويژگيهاي کيفي‬
‫‪ ‬الزم است در ابتدا اين نيازمنديها در سطح معماري نرمافزار مدلسازي‬
‫شوند‬
‫ً‬
‫ر‬
‫‪ ‬از آنجا که اين ويژگيها معموال به صو ت رفتارهاي متقاطع در نظر‬
‫گرفته ميشوند‬
‫‪ ‬قطعهبندي ويژگيهاي کيفي به مؤلفههاي جنبهگرا‬
‫سمينار کارشناس ی ارشد‬
‫‪10‬‬
‫حميد باقري‬
‫کارهاي مرتبط‬
‫‪ ‬توسعه مدلهاي مبتني بر ‪UML‬‬
‫‪ ‬مدلسازي ويژگيهاي کيفي بر اساس‪:‬‬
‫‪ ‬اعمال توسعه بر روي يکي از مدلها همچون مدل موارد کاربرد‬
‫‪ ‬روش مبتني بر محصول و ويژگيهاي کيفي خاص‬
‫‪ ‬به منظور برآوردن ويژگي کيفي خاص ي همچون قابليت اطمينان‬
‫‪ ‬اندازهگيري ميزان تطابق سيستم نرمافزاري با ويژگيهاي کيفي که ميبايست برآورده سازد‬
‫‪ ‬پروسههايي که به طور صريح با ويژگيهاي کيفي برخورد میکنند‬
‫‪ ‬شامل تکنيکهايي براي بررس ي تصميمات طراحي بر روي حضور و يا عدمحضور‬
‫نيازمنديها و تأثيرشان بر روي معماري نرمافزار‬
‫سمينار کارشناس ی ارشد‬
‫‪11‬‬
‫حميد باقري‬
‫چارچوبي براي مدلسازي ويژگيهاي کيفي در‬
‫معماري نرمافزاربرمبناي مؤلفههاي جنبهگرا‬
‫‪ ‬استراتژي‪ :‬اصل جداسازي مسئوليتها‬
‫‪ ‬توسعه اين اصل بر روي معماري نرمافزار‬
‫‪ ‬نيازمنديهاي وظيفهمندي يک سيستم و ويژگيهاي کيفي آن‪ ،‬دو مفهوم متنافرند‬
‫‪ ‬به اين معنا که ميتوان هر سطحي از هر ويژگي کيفي را براي هر يک از نيازمنديهاي‬
‫وظيفهمند سيستم تصور نمود‬
‫‪ ‬مشابه ايده به کار رفته در برنامهسازي جنبهگرا‬
‫‪ ‬بدون جداسازي نيازمنديهاي وظيفهمند و ويژگيهاي کيفي‪ ،‬مدلسازي و تحليل معماري‬
‫نرمافزار به صورتي درهم پيچيده و مبهم خواهد شد‬
‫سمينار کارشناس ی ارشد‬
‫‪12‬‬
‫حميد باقري‬
‫مدل طراحي مفهومي معماري نرمافزار‬
‫‪ ‬استفاده از مؤلفههاي جنبهگرا به منظور برآوردهساختن ويژگيهاي کيفي‬
‫‪ ‬تفاوت در قواعد و نيازمنديهاي مؤلفههاي جنبهگرا نسبت به ديگر مؤلفههاي‬
‫مورد استفاده در معماري نرمافزار‬
‫‪ ‬مدل طراحي مفهومي معماري نرمافزار‪:‬‬
‫‪ ‬مدل معماري نرمافزار متداول‪ :‬اليه بنيادين و زيربنايي‬
‫‪ ‬مؤلفههاي جنبهگرا‪ :‬مسئول مدلسازي عمليات مربوط به برآوردهساختن ويژگيهاي کيفي‬
‫‪ ‬نگاشتکننده جنبه‪ :‬نگاشتکننده مؤلفههاي جنبهگرا بر مؤلفههاي معماري نرمافزار‬
‫سمينار کارشناس ی ارشد‬
‫‪13‬‬
‫حميد باقري‬
‫زبانهاي توصيف معماري‬
‫‪ ‬زبانهايي نمادين براي بيان و توصيف معماري سيستمهاي نرمافزاري‬
‫‪ ‬عليرغم گسترش زبانهاي توصيف معماري‬
‫‪ ‬عدم اتفاق نظر در مجامع علمي بر روي ويژگيهاي يک زبان توصيف معماري‬
‫‪ ‬حداقل نياز زبانهاي توصيف معماري‪:‬‬
‫‪ ‬توانايي مدلکردن مؤلفه‪ ،‬رابط و پيکربندي سيستم‬
‫سمينار کارشناس ی ارشد‬
‫‪14‬‬
‫حميد باقري‬
‫زبان ‪xADL 2.0‬‬
‫‪ ‬يک زبان توصيف معماري پيمانهاي قابل گسترش مبتني بر ‪XML‬‬
‫‪:xArch ‬‬
‫‪ ‬هسته اصلي اين زبان‬
‫‪ ‬براي نمايش عناصر اصلي مدل معماري نرمافزار‪ ،‬شامل‪:‬‬
‫‪ ‬مؤلفه‪ ،‬رابط و پيکربندي سيستم‬
‫سمينار کارشناس ی ارشد‬
‫‪15‬‬
‫حميد باقري‬
‫زبان چارچوب ارائه شده‬
‫‪ ‬در چارچوب ارائه شده‪ ،‬افزودن بخش توصيف نگاشتکننده جنبه و توسعه زبان‬
‫‪xADL 2.0‬‬
‫‪ ‬فراهم آوردن امکانات الزم براي‬
‫‪ ‬توصيف معماري نرمافزار‬
‫‪ ‬مدلسازي ويژگيهاي کيفي در معماري نرمافزار بر مبناي مؤلفههاي جنبهگرا‬
‫‪ ‬توسعه انجام شده با افزودن شماي ‪ Aspect.xsd‬به مجموعه شماهاي زبان‬
‫‪ xADL 2.0‬حاصل شده است‬
‫‪ ‬مزيت‪:‬‬
‫‪ ‬طراحي معماري اوليه نرمافزار بر مبناي نيازمنديهاي وظيفهمندي‬
‫‪ ‬بر آوردن ويژگيهاي کيفي‪ ،‬با افزودن مؤلفه جنبهگراي مورد نياز به معماري سيستم‬
‫‪ ‬افزايش قابليت نگهداري و استفاده مجدد در معماري نرمافزار‬
‫سمينار کارشناس ی ارشد‬
‫‪16‬‬
‫حميد باقري‬
‫تعريف شما‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫تعريف مجموعهاي از نگاشتکنندههاي‬
‫مؤلفههاي جنبهگرا در اين شما‬
‫هر نگاشتکننده شامل مجموعهاي از‪:‬‬
‫‪Point cuts ‬‬
‫‪Advice ‬‬
‫‪:Point cut‬‬
‫‪ ‬شرايط تطبيق در مؤلفههاي معماري‬
‫نرمافزار‬
‫‪ ‬ويژگي کيفي در نقطه تالقي به معماري‬
‫نرمافزار افزوده ميشود‬
‫‪:Advice‬‬
‫‪ ‬ابزاري براي اعمال رفتارهاي متقاطع‬
‫تعريف شده در مؤلفههاي جنبهگرا‬
‫بر روي مؤلفههاي معماري منطبق‬
‫شده با شرايط‬
‫سمينار کارشناس ی ارشد‬
‫‪17‬‬
‫بررس ی موردی‬
‫حميد باقري‬
‫کارهاي پيشرو‬
‫‪ ‬بررس ي دقيق امکانسنجي افزودن ويژگيهاي کيفي مختلف بر اساس الگوهاي‬
‫موجود در زمينه معماري نرمافزار به همراه تکميل و توسعه مکانيزم وارس ي مدل‬
‫پيشنهاد شده‬
‫‪ ‬زمانبندی‪:‬‬
‫‪ ‬مطالعه و بررس ي شيوههاي مختلف ارزيابي معماري نرمافزار (‪ 2‬ماه)‬
‫‪ ‬بيان دقيق ويژگيهاي کيفي بر اساس زبان توصيف معماري مذکور (‪ 3‬ماه)‬
‫‪ ‬تعريف يک مطالعه موردي و بررس ي نتايج تالش صورت گرفته در مراحل قبلي (‪ 2‬ماه)‬
‫‪ ‬نگارش پاياننامه (‪ 2‬ماه)‬
‫سمينار کارشناس ی ارشد‬
‫‪19‬‬
‫حميد باقري‬
‫با تشکر‬
‫سمينار کارشناس ی ارشد‬
‫‪20‬‬
‫حميد باقري‬
‫مراجع‬








[1] L. Bass, P. Clements, R. Kazman, Software Architecture in Practic, AddsionWeisly, 2nd edition, 2003.
[2] L. Chung, B. Nixon, E. Yu, and J. Mylopoulos, Non-Functional Requirements in
Software Engineering, Kluwer Academic, 2000.
[3] L. G. Williams, C. U. Smith, “PASASM: A Method for the Performance
Assessment of Software Architectures”, Workshop on Software and Performance
2002, pp. 179-188.
[4] Y. Yu, J.C. Leite, J. Mylopoulos. “From Goals to Aspects: Discovering Aspects
from Goal Models”, RE’04, 2004.
[5] Architectures Group at UC Irvine, xADL 2.0, Highly-extensible Architecture
Description Language for Software and System, January 4, 2005;
http://www.isr.uci.edu/projects/xarchuci/
[6] E., Dashfy, xArch, http://www.isr.uci.edu/architecture/xarch/.
[7] P. C. Clements and L. M. Northrup, “Software Architecture: An Executive
Overview”, Technical Report No. CMU/ SEI-96-TR-003, Carnegie Mellon
University, Pittsburgh, PA, February, 1996.
[8] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier,
and J. Irwin. “Aspect oriented programming”, LNCS, 1241:220–242, Oct. 1997.
‫حميد باقري‬
21
‫سمينار کارشناس ی ارشد‬
‫مراجع‬







[9] Lihua Xu, Hadar Ziv, Debra Richardson, Zhixiong Liu. “Towards Modeling
Non-Functional Requirements in Software Architecture”, In Proceedings of
Aspect-Oriented Software Design, Workshop on Aspect-Oriented Requirements
Engineering and Architecture Design, Chicago, Illi-nois, March 2005.
[10] L. Cysneiros, J. Leite, "Nonfunctional Requirements: From elicitation to
Conceptual Models", IEEE Transaction on Software Engineering, vol.30, no.5,
May 2004.
[11] M. Bishop, Computer Security: Art and Science, Addison Wesley, 2002.
[12] T.G. Kirner and A.M. Davis, “Nonfunctional Requirements of Real-Time
Systems”, Advances in Computers, vol. 42, pp. 1-38, 1996.
[13] IEEE Recommended Practice for Software Requirements Specification,
Standard for Information Technology IEEE, 1998.
[14] B. Boehm and H. Hoh, “Identifying Quality-Requirement Conflicts”, IEEE
Software, pp. 25-36, Mar. 1996.
[15] S. Tonu, Incorporating Non-Functional Requirements with UML Models, MSc
Thesis, Department of Electrical and Computer Engineering, University of Waterloo,
Ontario, Canada, 2006.
‫حميد باقري‬
22
‫سمينار کارشناس ی ارشد‬
‫مراجع‬






[16] S. Tonu and L. Tahvildari, “Towards a framework to incorporate NFRs into
UML models”, In Proceedings of the 1st International Workshop on Revers
Engineering to Requirements (RETR), pp. 13-18, Pittsburgh, Pennsylvania, USA,
November 2005.
[17] C. Kaewkasi, W. Rivepiboon, “Aspect-Oriented Extension for Capturing
Requirements In Use-Case Model”, The 15th Conference on Advanced Information
Systems Engineering, CAiSE' 03, Austria, June 2003.
[18] J. Zhang, J. Gray, Y. Lin, and R. Tairas, “Aspect Mining from a Modeling
Perspective”, Special issue of the International Journal of Computer Applications in
Technology, Fall 2006.
[19] G. Sousa, S. Soares, P. Borba, and J. Castro, “Separation of crosscutting
concerns from requirements to design: Adapting the use case driven approach”,
Early Aspects Workshop at AOSD 2004, March 2004.
[20] IEEE Std 1471-2000 IEEE, Recommended Practice for Architectural
Description of Software-Intensive Systems – Description, IEEE, 2003.
[21] N., Medvidovic, N. R., Taylor, “A Classification and Comparison Framework
for Software Architecture Description Languages,” IEEE Transactions on Software
Engineering, vol. 26, 2000, pp. 79-93.
‫حميد باقري‬
23
‫سمينار کارشناس ی ارشد‬
‫مراجع‬
‫‪ [22] ‬ن‪ .‬نوروزي‪ ،‬توصيف و وارس ي سيستمهاي نرمافزاري قابل بازپيکربندي‪ :‬روش ي مبتني برمعماري‬
‫تطبيقپذير‪ ،‬پاياننامه کارشناس ي ارشد‪ ،‬دانشکده مهندس ي کامپيوتر‪ ،‬دانشگاه صنعتي شريف‪ ،‬مهر ‪.1385‬‬
‫‪ [23] ‬س‪ .‬ش‪ .‬فخرايي‪ ،‬استخراج جنبه از مدل طراحي نرمافزار‪ ،‬پاياننامه کارشناس ي ارشد‪ ،‬دانشکده‬
‫مهندس ي کامپيوتر‪ ،‬دانشگاه صنعتي شريف‪ ،‬خرداد ‪.1385‬‬
‫سمينار کارشناس ی ارشد‬
‫‪24‬‬
‫حميد باقري‬