Presentation is loading. Please wait.

Presentation is loading. Please wait.

تزريق نيازمندي‌هاي غيروظيفه‌مندي به معماری نرم‌افزار

Similar presentations


Presentation on theme: "تزريق نيازمندي‌هاي غيروظيفه‌مندي به معماری نرم‌افزار"— Presentation transcript:

1 تزريق نيازمندي‌هاي غيروظيفه‌مندي به معماری نرم‌افزار
تزريق نيازمندي‌هاي غيروظيفه‌مندي به معماری نرم‌افزار حميد باقری سمينار کارشناسی ارشد مهندسی نرم‌افزار دانشکده‌ی مهندسی کامپيوتر دانشگاه صنعتی شريف

2 رئوس مطالب اهميت ويژگی‌های کيفی اهميت معماري نرم‌افزار و ارزيابی آن
هدف پروژه تعريف معماري نرم‌افزار و ويژگی‌های کيفی مطرح مدل‌سازي ويژگي‌هاي کيفي‌ و کارهاي مرتبط چارچوبي براي مدل‌سازي ويژگي‌هاي کيفي در معماري نرم‌افزار برمبناي مؤلفه‌هاي جنبه‌گرا

3 اهميت ويژگی‌های کيفی طبقه‌بندي سنتي نيازمندي‌هاي نرم‌افزار
نيازمندی‌های وظيفه‌مند نيازمندی‌های غير وظيفه‌مند  ويژگی‌های کيفی اهميت نيازمندی‌های وظيفه‌مند در ميزان دستيابي محصول نرم‌افزاري ‌‌‌ارائه شده به مشتري‌ زير سؤال رفتن ماهيت وجودي محصول در صورت عدم برآوردن نيازمندي‌‌‌هاي‌‌ وظيفه‌مندي‌‌‌اش به مرور زمان و در طي‌‌‌ استفاده از محصول نرم‌افزاري‌، سنجش ارزش آن بر اساس ميزان دستيابي‌‌‌اش به ويژگي‌‌هاي‌ کيفي

4 اهميت معماري نرم‌افزار
تأکيد بررسي‌هاي جديد بر نقش و اهميت معماري نرم‌افزار در تشخيص کيفيت نرم‌افزار اهميت تصميم‌گيري‌هاي مختلف در هر يک از مراحل توسعه نرم‌افزار اهميت خاص تصميمات در سطح معماري نخستين و پر‌هزينه‌ترين تصميم‌هاي اتخاذ شده در طول توسعه يک پروژه نرم‌افزاري تاثير آن بر ويژگي‌هاي کيفي نرم‌افزار و در نتيجه بر ارزش نرم‌افزار "هنگاميکه يک معماري خوب نتواند دستيابي به اهداف کيفي را تضمين کند، يک معماري ضعيف قطعاً از دستيابي به آن اهداف جلوگيري مي‌کند"[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 cut: Advice:
تعريف مجموعه‌اي از نگاشت‌کننده‌هاي مؤلفه‌هاي جنبه‌گرا در اين شما هر نگاشت‌کننده شامل مجموعه‌اي از: Point cuts Advice Point cut: شرايط تطبيق در مؤلفه‌هاي معماري نرم‌افزار ويژگي کيفي در نقطه تلاقي به معماري نرم‌افزار افزوده مي‌شود Advice: ابزاري براي اعمال رفتارهاي متقاطع تعريف شده در مؤلفه‌هاي جنبه‌گرا بر روي مؤلفه‌هاي معماري منطبق شده با شرايط بررسی موردی

17 کارهاي پيش‌رو بررسي دقيق امکان‌سنجي افزودن ويژگي‌هاي کيفي مختلف بر اساس الگوهاي موجود در زمينه معماري نرم‌افزار به همراه تکميل و توسعه مکانيزم وارسي مدل پيشنهاد شده زمان‌بندی: مطالعه و بررسي شيوه‌‌هاي مختلف ارزيابي معماري نرم‌افزار (2 ماه) بيان دقيق ويژگي‌هاي کيفي بر اساس زبان توصيف معماري مذکور (3 ماه) تعريف يک مطالعه موردي و بررسي نتايج تلاش صورت گرفته در مراحل قبلي (2 ماه) نگارش پايان‌نامه (2 ماه)

18 با تشکر ?

19 مراجع [1] L. Bass, P. Clements, R. Kazman, Software Architecture in Practic, Addsion-Weisly, 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 [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; [6] E., Dashfy, 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

20 مراجع [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 , Mar [15] S. Tonu, Incorporating Non-Functional Requirements with UML Models, MSc Thesis, Department of Electrical and Computer Engineering, University of Waterloo, Ontario, Canada, 2006.

21 مراجع [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 , 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 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

22 مراجع ]22[ ن. نوروزي، توصيف و وارسي سيستم‌هاي نرم‌افزاري قابل بازپيکربندي: روشي مبتني بر معماري تطبيق‌پذير، پايان‌نامه کارشناسي ارشد، دانشکده مهندسي کامپيوتر، دانشگاه صنعتي شريف، مهر 1385. ]23[ س. ش. فخرايي، استخراج جنبه از مدل طراحي نرم‌افزار، پايان‌نامه کارشناسي ارشد، دانشکده مهندسي کامپيوتر، دانشگاه صنعتي شريف، خرداد 1385.


Download ppt "تزريق نيازمندي‌هاي غيروظيفه‌مندي به معماری نرم‌افزار"

Similar presentations


Ads by Google